@monorepolint/rules 0.6.0-alpha.2 → 0.6.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-clean.log +1 -1
- package/.turbo/turbo-compile-typescript.log +1 -1
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test.log +161 -102
- package/.turbo/turbo-transpile-typescript.log +4 -4
- package/CHANGELOG.md +19 -0
- package/build/js/index.js +429 -241
- package/build/js/index.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/__tests__/utils.d.ts +0 -1
- package/build/types/__tests__/utils.d.ts.map +1 -1
- package/build/types/bannedDependencies.d.ts.map +1 -1
- package/build/types/fileContents.d.ts.map +1 -1
- package/build/types/forceError.d.ts +4 -0
- package/build/types/forceError.d.ts.map +1 -0
- package/build/types/index.d.ts +5 -3
- package/build/types/index.d.ts.map +1 -1
- package/build/types/mustSatisfyPeerDependencies.d.ts.map +1 -1
- package/build/types/nestedWorkspaces.d.ts.map +1 -1
- package/build/types/oncePerPackage.d.ts +11 -0
- package/build/types/oncePerPackage.d.ts.map +1 -0
- package/build/types/packageEntry.d.ts.map +1 -1
- package/build/types/packageOrder.d.ts.map +1 -1
- package/build/types/packageScript.d.ts.map +1 -1
- package/build/types/requireDependency.d.ts +12 -12
- package/build/types/requireDependency.d.ts.map +1 -1
- package/build/types/util/checkAlpha.d.ts.map +1 -1
- package/build/types/util/createRuleFactory.d.ts.map +1 -1
- package/build/types/util/packageDependencyGraphService.d.ts.map +1 -1
- package/coverage/clover.xml +1201 -813
- package/coverage/coverage-final.json +20 -18
- package/coverage/index.html +20 -20
- package/coverage/src/alphabeticalDependencies.ts.html +11 -11
- package/coverage/src/alphabeticalScripts.ts.html +5 -5
- package/coverage/src/bannedDependencies.ts.html +76 -28
- package/coverage/src/consistentDependencies.ts.html +51 -18
- package/coverage/src/consistentVersions.ts.html +144 -48
- package/coverage/src/fileContents.ts.html +47 -23
- package/coverage/src/forceError.ts.html +184 -0
- package/coverage/src/index.html +96 -66
- package/coverage/src/index.ts.html +39 -33
- package/coverage/src/mustSatisfyPeerDependencies.ts.html +323 -80
- package/coverage/src/nestedWorkspaces.ts.html +47 -20
- package/coverage/src/oncePerPackage.ts.html +181 -0
- package/coverage/src/packageEntry.ts.html +40 -19
- package/coverage/src/packageOrder.ts.html +30 -12
- package/coverage/src/packageScript.ts.html +81 -27
- package/coverage/src/requireDependency.ts.html +77 -32
- package/coverage/src/standardTsconfig.ts.html +84 -21
- package/coverage/src/util/checkAlpha.ts.html +18 -9
- package/coverage/src/util/createRuleFactory.ts.html +16 -4
- package/coverage/src/util/index.html +17 -17
- package/coverage/src/util/makeDirectory.ts.html +5 -5
- package/coverage/src/util/packageDependencyGraphService.ts.html +94 -19
- package/package.json +4 -5
- package/src/__tests__/alphabeticalScripts.spec.ts +12 -4
- package/src/__tests__/bannedDependencies.spec.ts +45 -16
- package/src/__tests__/consistentDependencies.spec.ts +11 -5
- package/src/__tests__/consistentVersions.spec.ts +72 -18
- package/src/__tests__/fileContents.spec.ts +5 -5
- package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +191 -76
- package/src/__tests__/nestedWorkspaces.spec.ts +10 -7
- package/src/__tests__/packageEntry.spec.ts +48 -47
- package/src/__tests__/packageOrder.spec.ts +72 -71
- package/src/__tests__/packageScript.spec.ts +19 -10
- package/src/__tests__/requireDependency.spec.ts +12 -6
- package/src/__tests__/utils.ts +16 -7
- package/src/bannedDependencies.ts +32 -16
- package/src/consistentDependencies.ts +19 -8
- package/src/consistentVersions.ts +70 -38
- package/src/fileContents.ts +19 -11
- package/src/forceError.ts +33 -0
- package/src/index.ts +5 -3
- package/src/mustSatisfyPeerDependencies.ts +141 -60
- package/src/nestedWorkspaces.ts +19 -10
- package/src/oncePerPackage.ts +32 -0
- package/src/packageEntry.ts +18 -11
- package/src/packageOrder.ts +9 -3
- package/src/packageScript.ts +37 -19
- package/src/requireDependency.ts +26 -11
- package/src/standardTsconfig.ts +31 -10
- package/src/util/checkAlpha.ts +5 -2
- package/src/util/createRuleFactory.ts +6 -2
- package/src/util/packageDependencyGraphService.ts +38 -13
- package/vitest.config.mjs +6 -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.
|
|
26
|
+
<span class="strong">94.25% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>558/592</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.
|
|
47
|
+
<span class="strong">94.25% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>558/592</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -807,13 +807,88 @@
|
|
|
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
|
|
811
|
-
<
|
|
812
|
-
<
|
|
813
|
-
<
|
|
814
|
-
<
|
|
815
|
-
<
|
|
816
|
-
<
|
|
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
817
892
|
<span class="cline-any cline-neutral"> </span>
|
|
818
893
|
<span class="cline-any cline-neutral"> </span>
|
|
819
894
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -821,6 +896,12 @@
|
|
|
821
896
|
<span class="cline-any cline-neutral"> </span>
|
|
822
897
|
<span class="cline-any cline-neutral"> </span>
|
|
823
898
|
<span class="cline-any cline-neutral"> </span>
|
|
899
|
+
<span class="cline-any cline-yes">1x</span>
|
|
900
|
+
<span class="cline-any cline-yes">1x</span>
|
|
901
|
+
<span class="cline-any cline-yes">1x</span>
|
|
902
|
+
<span class="cline-any cline-yes">1x</span>
|
|
903
|
+
<span class="cline-any cline-yes">1x</span>
|
|
904
|
+
<span class="cline-any cline-yes">1x</span>
|
|
824
905
|
<span class="cline-any cline-neutral"> </span>
|
|
825
906
|
<span class="cline-any cline-yes">1x</span>
|
|
826
907
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -1086,9 +1167,24 @@
|
|
|
1086
1167
|
<span class="cline-any cline-yes">14x</span>
|
|
1087
1168
|
<span class="cline-any cline-yes">14x</span>
|
|
1088
1169
|
<span class="cline-any cline-yes">14x</span>
|
|
1170
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1171
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1172
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1173
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1174
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1089
1175
|
<span class="cline-any cline-neutral"> </span>
|
|
1090
1176
|
<span class="cline-any cline-neutral"> </span>
|
|
1091
1177
|
<span class="cline-any cline-yes">14x</span>
|
|
1178
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1179
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1180
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1181
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1182
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1183
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1184
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1185
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1186
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1187
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1092
1188
|
<span class="cline-any cline-yes">18x</span>
|
|
1093
1189
|
<span class="cline-any cline-yes">4x</span>
|
|
1094
1190
|
<span class="cline-any cline-yes">4x</span>
|
|
@@ -1101,28 +1197,49 @@
|
|
|
1101
1197
|
<span class="cline-any cline-yes">3x</span>
|
|
1102
1198
|
<span class="cline-any cline-yes">3x</span>
|
|
1103
1199
|
<span class="cline-any cline-yes">3x</span>
|
|
1104
|
-
<span class="cline-any cline-yes">3x</span>
|
|
1105
1200
|
<span class="cline-any cline-yes">18x</span>
|
|
1106
1201
|
<span class="cline-any cline-neutral"> </span>
|
|
1107
1202
|
<span class="cline-any cline-neutral"> </span>
|
|
1108
1203
|
<span class="cline-any cline-yes">14x</span>
|
|
1109
1204
|
<span class="cline-any cline-neutral"> </span>
|
|
1205
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1206
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1110
1207
|
<span class="cline-any cline-neutral"> </span>
|
|
1111
1208
|
<span class="cline-any cline-yes">14x</span>
|
|
1112
1209
|
<span class="cline-any cline-yes">4x</span>
|
|
1210
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1211
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1212
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1113
1213
|
<span class="cline-any cline-yes">10x</span>
|
|
1114
1214
|
<span class="cline-any cline-yes">14x</span>
|
|
1115
1215
|
<span class="cline-any cline-yes">38x</span>
|
|
1116
1216
|
<span class="cline-any cline-yes">38x</span>
|
|
1217
|
+
<span class="cline-any cline-yes">38x</span>
|
|
1218
|
+
<span class="cline-any cline-yes">38x</span>
|
|
1219
|
+
<span class="cline-any cline-yes">38x</span>
|
|
1220
|
+
<span class="cline-any cline-no"> </span>
|
|
1117
1221
|
<span class="cline-any cline-no"> </span>
|
|
1118
1222
|
<span class="cline-any cline-no"> </span>
|
|
1223
|
+
<span class="cline-any cline-no"> </span>
|
|
1224
|
+
<span class="cline-any cline-yes">38x</span>
|
|
1225
|
+
<span class="cline-any cline-yes">38x</span>
|
|
1119
1226
|
<span class="cline-any cline-yes">38x</span>
|
|
1120
1227
|
<span class="cline-any cline-yes">38x</span>
|
|
1121
1228
|
<span class="cline-any cline-yes">38x</span>
|
|
1122
1229
|
<span class="cline-any cline-yes">8x</span>
|
|
1123
1230
|
<span class="cline-any cline-yes">8x</span>
|
|
1231
|
+
<span class="cline-any cline-yes">30x</span>
|
|
1232
|
+
<span class="cline-any cline-yes">30x</span>
|
|
1233
|
+
<span class="cline-any cline-yes">30x</span>
|
|
1234
|
+
<span class="cline-any cline-yes">30x</span>
|
|
1124
1235
|
<span class="cline-any cline-yes">38x</span>
|
|
1125
1236
|
<span class="cline-any cline-yes">32x</span>
|
|
1237
|
+
<span class="cline-any cline-yes">32x</span>
|
|
1238
|
+
<span class="cline-any cline-yes">32x</span>
|
|
1239
|
+
<span class="cline-any cline-yes">32x</span>
|
|
1240
|
+
<span class="cline-any cline-yes">32x</span>
|
|
1241
|
+
<span class="cline-any cline-yes">32x</span>
|
|
1242
|
+
<span class="cline-any cline-yes">32x</span>
|
|
1126
1243
|
<span class="cline-any cline-yes">6x</span>
|
|
1127
1244
|
<span class="cline-any cline-yes">6x</span>
|
|
1128
1245
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1134,14 +1251,22 @@
|
|
|
1134
1251
|
<span class="cline-any cline-no"> </span>
|
|
1135
1252
|
<span class="cline-any cline-no"> </span>
|
|
1136
1253
|
<span class="cline-any cline-no"> </span>
|
|
1254
|
+
<span class="cline-any cline-no"> </span>
|
|
1137
1255
|
<span class="cline-any cline-yes">32x</span>
|
|
1138
1256
|
<span class="cline-any cline-yes">13x</span>
|
|
1139
1257
|
<span class="cline-any cline-yes">13x</span>
|
|
1140
1258
|
<span class="cline-any cline-yes">26x</span>
|
|
1141
1259
|
<span class="cline-any cline-yes">26x</span>
|
|
1260
|
+
<span class="cline-any cline-yes">26x</span>
|
|
1261
|
+
<span class="cline-any cline-yes">26x</span>
|
|
1262
|
+
<span class="cline-any cline-yes">26x</span>
|
|
1142
1263
|
<span class="cline-any cline-yes">30x</span>
|
|
1143
1264
|
<span class="cline-any cline-neutral"> </span>
|
|
1144
1265
|
<span class="cline-any cline-yes">14x</span>
|
|
1266
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1267
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1268
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1269
|
+
<span class="cline-any cline-yes">14x</span>
|
|
1145
1270
|
<span class="cline-any cline-neutral"> </span>
|
|
1146
1271
|
<span class="cline-any cline-yes">13x</span>
|
|
1147
1272
|
<span class="cline-any cline-yes">13x</span>
|
|
@@ -1149,6 +1274,10 @@
|
|
|
1149
1274
|
<span class="cline-any cline-yes">13x</span>
|
|
1150
1275
|
<span class="cline-any cline-yes">13x</span>
|
|
1151
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>
|
|
1279
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1280
|
+
<span class="cline-any cline-yes">13x</span>
|
|
1152
1281
|
<span class="cline-any cline-yes">13x</span>
|
|
1153
1282
|
<span class="cline-any cline-yes">13x</span>
|
|
1154
1283
|
<span class="cline-any cline-yes">6x</span>
|
|
@@ -1158,6 +1287,9 @@
|
|
|
1158
1287
|
<span class="cline-any cline-yes">13x</span>
|
|
1159
1288
|
<span class="cline-any cline-yes">7x</span>
|
|
1160
1289
|
<span class="cline-any cline-yes">7x</span>
|
|
1290
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1291
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1292
|
+
<span class="cline-any cline-yes">7x</span>
|
|
1161
1293
|
<span class="cline-any cline-yes">2x</span>
|
|
1162
1294
|
<span class="cline-any cline-yes">2x</span>
|
|
1163
1295
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -1188,6 +1320,9 @@
|
|
|
1188
1320
|
<span class="cline-any cline-no"> </span>
|
|
1189
1321
|
<span class="cline-any cline-no"> </span>
|
|
1190
1322
|
<span class="cline-any cline-no"> </span>
|
|
1323
|
+
<span class="cline-any cline-no"> </span>
|
|
1324
|
+
<span class="cline-any cline-no"> </span>
|
|
1325
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1191
1326
|
<span class="cline-any cline-yes">4x</span>
|
|
1192
1327
|
<span class="cline-any cline-yes">2x</span>
|
|
1193
1328
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -1227,6 +1362,12 @@
|
|
|
1227
1362
|
<span class="cline-any cline-no"> </span>
|
|
1228
1363
|
<span class="cline-any cline-no"> </span>
|
|
1229
1364
|
<span class="cline-any cline-no"> </span>
|
|
1365
|
+
<span class="cline-any cline-no"> </span>
|
|
1366
|
+
<span class="cline-any cline-no"> </span>
|
|
1367
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1368
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1369
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1370
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1230
1371
|
<span class="cline-any cline-yes">9x</span>
|
|
1231
1372
|
<span class="cline-any cline-yes">2x</span>
|
|
1232
1373
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -1259,6 +1400,7 @@
|
|
|
1259
1400
|
<span class="cline-any cline-yes">50x</span>
|
|
1260
1401
|
<span class="cline-any cline-yes">50x</span>
|
|
1261
1402
|
<span class="cline-any cline-yes">44x</span>
|
|
1403
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1262
1404
|
<span class="cline-any cline-yes">50x</span>
|
|
1263
1405
|
<span class="cline-any cline-yes">10x</span>
|
|
1264
1406
|
<span class="cline-any cline-yes">10x</span>
|
|
@@ -1267,6 +1409,9 @@
|
|
|
1267
1409
|
<span class="cline-any cline-neutral"> </span>
|
|
1268
1410
|
<span class="cline-any cline-yes">11x</span>
|
|
1269
1411
|
<span class="cline-any cline-yes">11x</span>
|
|
1412
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1413
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1414
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1270
1415
|
<span class="cline-any cline-yes">10x</span>
|
|
1271
1416
|
<span class="cline-any cline-yes">10x</span>
|
|
1272
1417
|
<span class="cline-any cline-yes">11x</span>
|
|
@@ -1279,6 +1424,8 @@
|
|
|
1279
1424
|
<span class="cline-any cline-yes">1x</span>
|
|
1280
1425
|
<span class="cline-any cline-yes">1x</span>
|
|
1281
1426
|
<span class="cline-any cline-yes">1x</span>
|
|
1427
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1428
|
+
<span class="cline-any cline-yes">1x</span>
|
|
1282
1429
|
<span class="cline-any cline-neutral"> </span>
|
|
1283
1430
|
<span class="cline-any cline-yes">1x</span>
|
|
1284
1431
|
<span class="cline-any cline-yes">11x</span>
|
|
@@ -1314,6 +1461,9 @@
|
|
|
1314
1461
|
<span class="cline-any cline-neutral"> </span>
|
|
1315
1462
|
<span class="cline-any cline-yes">1x</span>
|
|
1316
1463
|
<span class="cline-any cline-yes">69x</span>
|
|
1464
|
+
<span class="cline-any cline-yes">69x</span>
|
|
1465
|
+
<span class="cline-any cline-yes">69x</span>
|
|
1466
|
+
<span class="cline-any cline-yes">69x</span>
|
|
1317
1467
|
<span class="cline-any cline-yes">22x</span>
|
|
1318
1468
|
<span class="cline-any cline-yes">69x</span>
|
|
1319
1469
|
<span class="cline-any cline-yes">16x</span>
|
|
@@ -1383,9 +1533,19 @@
|
|
|
1383
1533
|
<span class="cline-any cline-neutral"> </span>
|
|
1384
1534
|
<span class="cline-any cline-yes">25x</span>
|
|
1385
1535
|
<span class="cline-any cline-yes">25x</span>
|
|
1536
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1537
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1538
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1539
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1540
|
+
<span class="cline-any cline-yes">10x</span>
|
|
1386
1541
|
<span class="cline-any cline-yes">35x</span>
|
|
1387
1542
|
<span class="cline-any cline-yes">4x</span>
|
|
1388
|
-
<span class="cline-any cline-yes">
|
|
1543
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1544
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1545
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1546
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1547
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1548
|
+
<span class="cline-any cline-yes">6x</span>
|
|
1389
1549
|
<span class="cline-any cline-yes">6x</span>
|
|
1390
1550
|
<span class="cline-any cline-yes">6x</span>
|
|
1391
1551
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1483,6 +1643,8 @@
|
|
|
1483
1643
|
<span class="cline-any cline-yes">172x</span>
|
|
1484
1644
|
<span class="cline-any cline-yes">172x</span>
|
|
1485
1645
|
<span class="cline-any cline-yes">172x</span>
|
|
1646
|
+
<span class="cline-any cline-yes">172x</span>
|
|
1647
|
+
<span class="cline-any cline-yes">172x</span>
|
|
1486
1648
|
<span class="cline-any cline-neutral"> </span>
|
|
1487
1649
|
<span class="cline-any cline-yes">253x</span>
|
|
1488
1650
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1542,14 +1704,14 @@
|
|
|
1542
1704
|
<span class="cline-any cline-neutral"> </span>
|
|
1543
1705
|
<span class="cline-any cline-yes">4x</span>
|
|
1544
1706
|
<span class="cline-any cline-yes">4x</span>
|
|
1545
|
-
<span class="cline-any cline-yes">
|
|
1546
|
-
<span class="cline-any cline-yes">
|
|
1707
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1708
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1547
1709
|
<span class="cline-any cline-yes">1x</span>
|
|
1548
1710
|
<span class="cline-any cline-yes">1x</span>
|
|
1549
|
-
<span class="cline-any cline-yes">
|
|
1550
|
-
<span class="cline-any cline-yes">
|
|
1551
|
-
<span class="cline-any cline-yes">
|
|
1552
|
-
<span class="cline-any cline-yes">
|
|
1711
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1712
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1713
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1714
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1553
1715
|
<span class="cline-any cline-yes">4x</span>
|
|
1554
1716
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*!
|
|
1555
1717
|
* Copyright 2020 Palantir Technologies, Inc.
|
|
@@ -1561,9 +1723,9 @@
|
|
|
1561
1723
|
import { Context } from "@monorepolint/config";
|
|
1562
1724
|
import { Host, mutateJson, PackageJson } from "@monorepolint/utils";
|
|
1563
1725
|
import * as path from "node:path";
|
|
1726
|
+
import resolvePackagePath from "resolve-package-path";
|
|
1564
1727
|
import * as r from "runtypes";
|
|
1565
1728
|
import { coerce } from "semver";
|
|
1566
|
-
import resolvePackagePath from "resolve-package-path";
|
|
1567
1729
|
import { createRuleFactory } from "./util/createRuleFactory.js";
|
|
1568
1730
|
|
|
1569
1731
|
const Options = r.Union(
|
|
@@ -1582,7 +1744,7 @@ const Options = r.Union(
|
|
|
1582
1744
|
dependencyWhitelist: r.Undefined,
|
|
1583
1745
|
dependencyBlacklist: r.Undefined,
|
|
1584
1746
|
enforceForDevDependencies: r.Undefined,
|
|
1585
|
-
})
|
|
1747
|
+
}),
|
|
1586
1748
|
),
|
|
1587
1749
|
r
|
|
1588
1750
|
.Record({
|
|
@@ -1593,7 +1755,7 @@ const Options = r.Union(
|
|
|
1593
1755
|
skipUnparseableRanges: r.Undefined,
|
|
1594
1756
|
dependencyBlacklist: r.Undefined,
|
|
1595
1757
|
enforceForDevDependencies: r.Undefined,
|
|
1596
|
-
})
|
|
1758
|
+
}),
|
|
1597
1759
|
),
|
|
1598
1760
|
r
|
|
1599
1761
|
.Record({
|
|
@@ -1604,7 +1766,7 @@ const Options = r.Union(
|
|
|
1604
1766
|
skipUnparseableRanges: r.Undefined,
|
|
1605
1767
|
dependencyWhitelist: r.Undefined,
|
|
1606
1768
|
enforceForDevDependencies: r.Undefined,
|
|
1607
|
-
})
|
|
1769
|
+
}),
|
|
1608
1770
|
),
|
|
1609
1771
|
r
|
|
1610
1772
|
.Record({
|
|
@@ -1615,7 +1777,7 @@ const Options = r.Union(
|
|
|
1615
1777
|
skipUnparseableRanges: r.Undefined,
|
|
1616
1778
|
dependencyWhitelist: r.Undefined,
|
|
1617
1779
|
dependencyBlacklist: r.Undefined,
|
|
1618
|
-
})
|
|
1780
|
+
}),
|
|
1619
1781
|
),
|
|
1620
1782
|
r
|
|
1621
1783
|
.Record({
|
|
@@ -1626,7 +1788,7 @@ const Options = r.Union(
|
|
|
1626
1788
|
r.Partial({
|
|
1627
1789
|
dependencyBlacklist: r.Undefined,
|
|
1628
1790
|
enforceForDevDependencies: r.Undefined,
|
|
1629
|
-
})
|
|
1791
|
+
}),
|
|
1630
1792
|
),
|
|
1631
1793
|
r
|
|
1632
1794
|
.Record({
|
|
@@ -1637,7 +1799,7 @@ const Options = r.Union(
|
|
|
1637
1799
|
r.Partial({
|
|
1638
1800
|
dependencyWhitelist: r.Undefined,
|
|
1639
1801
|
enforceForDevDependencies: r.Undefined,
|
|
1640
|
-
})
|
|
1802
|
+
}),
|
|
1641
1803
|
),
|
|
1642
1804
|
r
|
|
1643
1805
|
.Record({
|
|
@@ -1648,7 +1810,7 @@ const Options = r.Union(
|
|
|
1648
1810
|
r.Partial({
|
|
1649
1811
|
dependencyWhitelist: r.Undefined,
|
|
1650
1812
|
dependencyBlacklist: r.Undefined,
|
|
1651
|
-
})
|
|
1813
|
+
}),
|
|
1652
1814
|
),
|
|
1653
1815
|
r
|
|
1654
1816
|
.Record({
|
|
@@ -1659,7 +1821,7 @@ const Options = r.Union(
|
|
|
1659
1821
|
r.Partial({
|
|
1660
1822
|
skipUnparseableRanges: r.Undefined,
|
|
1661
1823
|
enforceForDevDependencies: r.Undefined,
|
|
1662
|
-
})
|
|
1824
|
+
}),
|
|
1663
1825
|
),
|
|
1664
1826
|
r
|
|
1665
1827
|
.Record({
|
|
@@ -1670,7 +1832,7 @@ const Options = r.Union(
|
|
|
1670
1832
|
r.Partial({
|
|
1671
1833
|
skipUnparseableRanges: r.Undefined,
|
|
1672
1834
|
dependencyBlacklist: r.Undefined,
|
|
1673
|
-
})
|
|
1835
|
+
}),
|
|
1674
1836
|
),
|
|
1675
1837
|
r
|
|
1676
1838
|
.Record({
|
|
@@ -1681,7 +1843,7 @@ const Options = r.Union(
|
|
|
1681
1843
|
r.Partial({
|
|
1682
1844
|
skipUnparseableRanges: r.Undefined,
|
|
1683
1845
|
dependencyWhitelist: r.Undefined,
|
|
1684
|
-
})
|
|
1846
|
+
}),
|
|
1685
1847
|
),
|
|
1686
1848
|
r
|
|
1687
1849
|
.Record({
|
|
@@ -1692,7 +1854,7 @@ const Options = r.Union(
|
|
|
1692
1854
|
.And(
|
|
1693
1855
|
r.Partial({
|
|
1694
1856
|
enforceForDevDependencies: r.Undefined,
|
|
1695
|
-
})
|
|
1857
|
+
}),
|
|
1696
1858
|
),
|
|
1697
1859
|
r
|
|
1698
1860
|
.Record({
|
|
@@ -1703,7 +1865,7 @@ const Options = r.Union(
|
|
|
1703
1865
|
.And(
|
|
1704
1866
|
r.Partial({
|
|
1705
1867
|
dependencyBlacklist: r.Undefined,
|
|
1706
|
-
})
|
|
1868
|
+
}),
|
|
1707
1869
|
),
|
|
1708
1870
|
r
|
|
1709
1871
|
.Record({
|
|
@@ -1714,7 +1876,7 @@ const Options = r.Union(
|
|
|
1714
1876
|
.And(
|
|
1715
1877
|
r.Partial({
|
|
1716
1878
|
dependencyWhitelist: r.Undefined,
|
|
1717
|
-
})
|
|
1879
|
+
}),
|
|
1718
1880
|
),
|
|
1719
1881
|
r
|
|
1720
1882
|
.Record({
|
|
@@ -1725,14 +1887,14 @@ const Options = r.Union(
|
|
|
1725
1887
|
.And(
|
|
1726
1888
|
r.Partial({
|
|
1727
1889
|
skipUnparseableRanges: r.Undefined,
|
|
1728
|
-
})
|
|
1890
|
+
}),
|
|
1729
1891
|
),
|
|
1730
1892
|
r.Record({
|
|
1731
1893
|
skipUnparseableRanges: r.Boolean,
|
|
1732
1894
|
dependencyWhitelist: r.Array(r.String),
|
|
1733
1895
|
dependencyBlacklist: r.Array(r.String),
|
|
1734
1896
|
enforceForDevDependencies: r.Boolean,
|
|
1735
|
-
})
|
|
1897
|
+
}),
|
|
1736
1898
|
);
|
|
1737
1899
|
|
|
1738
1900
|
export type Options = r.Static<typeof Options>;
|
|
@@ -1823,7 +1985,12 @@ interface IResolvedPeerDependencyRequirement {
|
|
|
1823
1985
|
}
|
|
1824
1986
|
|
|
1825
1987
|
function checkSatisfyPeerDependencies(context: Context, opts: Options) {
|
|
1826
|
-
const {
|
|
1988
|
+
const {
|
|
1989
|
+
dependencyBlacklist,
|
|
1990
|
+
dependencyWhitelist,
|
|
1991
|
+
enforceForDevDependencies,
|
|
1992
|
+
skipUnparseableRanges,
|
|
1993
|
+
} = opts;
|
|
1827
1994
|
const packageJsonPath = path.resolve(context.getPackageJsonPath());
|
|
1828
1995
|
const packageJson = context.host.readJson(packageJsonPath) as PackageJson;
|
|
1829
1996
|
const packageDependencies = packageJson.<span class="branch-0 cbranch-no" title="branch not covered" >dependencies || {};</span>
|
|
@@ -1832,8 +1999,18 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
|
|
|
1832
1999
|
const packageName = packageJson.<span class="branch-0 cbranch-no" title="branch not covered" >name || packageJsonPath;</span>
|
|
1833
2000
|
|
|
1834
2001
|
// check that no peer dependencies are also declared as regular dependencies
|
|
1835
|
-
for (
|
|
1836
|
-
|
|
2002
|
+
for (
|
|
2003
|
+
const [peerDependencyName, peerDependencyRange] of Object.entries(
|
|
2004
|
+
packagePeerDependencies,
|
|
2005
|
+
)
|
|
2006
|
+
) {
|
|
2007
|
+
if (
|
|
2008
|
+
shouldSkipPackage({
|
|
2009
|
+
dependencyBlacklist,
|
|
2010
|
+
dependencyWhitelist,
|
|
2011
|
+
packageName: peerDependencyName,
|
|
2012
|
+
})
|
|
2013
|
+
) {
|
|
1837
2014
|
continue;
|
|
1838
2015
|
}
|
|
1839
2016
|
|
|
@@ -1841,37 +2018,59 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
|
|
|
1841
2018
|
if (dependencyRange != null) {
|
|
1842
2019
|
context.addError({
|
|
1843
2020
|
file: packageJsonPath,
|
|
1844
|
-
message:
|
|
1845
|
-
`
|
|
1846
|
-
`Peer dependency '${peerDependencyRange}' and regular dependency '${dependencyRange}'.`,
|
|
2021
|
+
message: `[0] Package ${packageName} has overloaded ${peerDependencyName} dependencies.\n\t`
|
|
2022
|
+
+ `Peer dependency '${peerDependencyRange}' and regular dependency '${dependencyRange}'.`,
|
|
1847
2023
|
});
|
|
1848
2024
|
}
|
|
1849
2025
|
}
|
|
1850
2026
|
|
|
1851
2027
|
// map of all inherited peer dependency requirements
|
|
1852
|
-
const allRequiredPeerDependencies: {
|
|
2028
|
+
const allRequiredPeerDependencies: {
|
|
2029
|
+
[peerDependencyName: string]: IPeerDependencyRequirement[];
|
|
2030
|
+
} = {};
|
|
1853
2031
|
|
|
1854
2032
|
// for each of this package's dependencies, add the dependency's peer requirements into `allRequiredPeerDependencies`
|
|
1855
2033
|
const allDependencies = enforceForDevDependencies
|
|
1856
|
-
? [
|
|
2034
|
+
? [
|
|
2035
|
+
...Object.keys(packageDependencies),
|
|
2036
|
+
...Object.keys(packageDevDependencies),
|
|
2037
|
+
]
|
|
1857
2038
|
: Object.keys(packageDependencies);
|
|
1858
2039
|
for (const dependency of allDependencies) {
|
|
1859
|
-
const dependencyPackageJsonPath = resolvePackagePath(
|
|
2040
|
+
const dependencyPackageJsonPath = resolvePackagePath(
|
|
2041
|
+
dependency,
|
|
2042
|
+
path.dirname(packageJsonPath),
|
|
2043
|
+
);
|
|
1860
2044
|
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(
|
|
2045
|
+
<span class="cstat-no" title="statement not covered" > throw new Error(</span>
|
|
2046
|
+
<span class="cstat-no" title="statement not covered" > `Could not resolve ${dependency} from ${path.dirname(packageJsonPath)}`,</span>
|
|
2047
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
1862
2048
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1863
|
-
const dependencyPackageJson = context.host.readJson(
|
|
2049
|
+
const dependencyPackageJson = context.host.readJson(
|
|
2050
|
+
dependencyPackageJsonPath,
|
|
2051
|
+
) as PackageJson;
|
|
1864
2052
|
const requiredPeerDependencies = dependencyPackageJson.peerDependencies;
|
|
1865
2053
|
if (requiredPeerDependencies == null) {
|
|
1866
2054
|
continue;
|
|
1867
2055
|
}
|
|
1868
|
-
for (
|
|
1869
|
-
|
|
2056
|
+
for (
|
|
2057
|
+
const [peerDependencyName, range] of Object.entries(
|
|
2058
|
+
requiredPeerDependencies,
|
|
2059
|
+
)
|
|
2060
|
+
) {
|
|
2061
|
+
if (
|
|
2062
|
+
shouldSkipPackage({
|
|
2063
|
+
dependencyBlacklist,
|
|
2064
|
+
dependencyWhitelist,
|
|
2065
|
+
packageName: peerDependencyName,
|
|
2066
|
+
})
|
|
2067
|
+
) {
|
|
1870
2068
|
continue;
|
|
1871
2069
|
}
|
|
1872
2070
|
|
|
1873
2071
|
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
|
|
2072
|
+
<span class="cstat-no" title="statement not covered" > const message =</span>
|
|
2073
|
+
<span class="cstat-no" title="statement not covered" > `Unable to parse ${dependencyPackageJson.name}'s ${peerDependencyName} peer dependency range '${range}'.`;</span>
|
|
1875
2074
|
<span class="cstat-no" title="statement not covered" > if (skipUnparseableRanges) {</span>
|
|
1876
2075
|
<span class="cstat-no" title="statement not covered" > context.addWarning({ file: dependencyPackageJsonPath, message });</span>
|
|
1877
2076
|
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
@@ -1881,26 +2080,40 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
|
|
|
1881
2080
|
if (allRequiredPeerDependencies[peerDependencyName] == null) {
|
|
1882
2081
|
allRequiredPeerDependencies[peerDependencyName] = [];
|
|
1883
2082
|
}
|
|
1884
|
-
allRequiredPeerDependencies[peerDependencyName].push({
|
|
2083
|
+
allRequiredPeerDependencies[peerDependencyName].push({
|
|
2084
|
+
fromPackageName: dependencyPackageJson.name!,
|
|
2085
|
+
range,
|
|
2086
|
+
});
|
|
1885
2087
|
}
|
|
1886
2088
|
}
|
|
1887
2089
|
|
|
1888
|
-
for (
|
|
2090
|
+
for (
|
|
2091
|
+
const [peerDependencyName, peerDependencyRequirements] of Object.entries(
|
|
2092
|
+
allRequiredPeerDependencies,
|
|
2093
|
+
)
|
|
2094
|
+
) {
|
|
1889
2095
|
// for each inherited peer dependency, determine the strictest range
|
|
1890
2096
|
let mostStrictPeerRequirement: IResolvedPeerDependencyRequirement = {
|
|
1891
2097
|
fromPeerDependencyRequirements: [peerDependencyRequirements[0]],
|
|
1892
2098
|
range: peerDependencyRequirements[0].range,
|
|
1893
2099
|
};
|
|
1894
2100
|
for (const peerRequirement of peerDependencyRequirements) {
|
|
1895
|
-
if (
|
|
2101
|
+
if (
|
|
2102
|
+
doesASatisfyB(mostStrictPeerRequirement.range, peerRequirement.range)
|
|
2103
|
+
) {
|
|
1896
2104
|
continue;
|
|
1897
|
-
} else if (
|
|
2105
|
+
} else if (
|
|
2106
|
+
doesASatisfyB(peerRequirement.range, mostStrictPeerRequirement.range)
|
|
2107
|
+
) {
|
|
1898
2108
|
mostStrictPeerRequirement = {
|
|
1899
2109
|
fromPeerDependencyRequirements: [peerRequirement],
|
|
1900
2110
|
range: peerRequirement.range,
|
|
1901
2111
|
};
|
|
1902
2112
|
} else {
|
|
1903
|
-
const maybeIntersection = findIntersection(
|
|
2113
|
+
const maybeIntersection = findIntersection(
|
|
2114
|
+
peerRequirement.range,
|
|
2115
|
+
mostStrictPeerRequirement.range,
|
|
2116
|
+
);
|
|
1904
2117
|
if (maybeIntersection !== undefined) {
|
|
1905
2118
|
mostStrictPeerRequirement = {
|
|
1906
2119
|
fromPeerDependencyRequirements: [
|
|
@@ -1913,9 +2126,9 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
|
|
|
1913
2126
|
context.addError({
|
|
1914
2127
|
file: packageJsonPath,
|
|
1915
2128
|
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),
|
|
2129
|
+
`[1] Package ${packageName} has conflicting inherited ${peerDependencyName} peer dependencies.\n\t`
|
|
2130
|
+
+ `Dependency ${peerRequirement.fromPackageName} requires '${peerRequirement.range}' but\n\t`
|
|
2131
|
+
+ getMostStrictStatement(mostStrictPeerRequirement),
|
|
1919
2132
|
});
|
|
1920
2133
|
}
|
|
1921
2134
|
}
|
|
@@ -1926,18 +2139,21 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
|
|
|
1926
2139
|
const packageDependencyRange = packageDependencies[peerDependencyName];
|
|
1927
2140
|
if (packageDependencyRange != null) {
|
|
1928
2141
|
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
|
|
2142
|
+
<span class="cstat-no" title="statement not covered" > const message =</span>
|
|
2143
|
+
<span class="cstat-no" title="statement not covered" > `Unable to parse ${packageName}'s ${peerDependencyName} dependency range '${packageDependencyRange}'.`;</span>
|
|
1930
2144
|
<span class="cstat-no" title="statement not covered" > if (skipUnparseableRanges) {</span>
|
|
1931
2145
|
<span class="cstat-no" title="statement not covered" > context.addWarning({ file: packageJsonPath, message });</span>
|
|
1932
2146
|
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
1933
2147
|
<span class="cstat-no" title="statement not covered" > throw new Error(message);</span>
|
|
1934
2148
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1935
|
-
} else if (
|
|
2149
|
+
<span class="cstat-no" title="statement not covered" > } else if (</span>
|
|
2150
|
+
!doesASatisfyB(packageDependencyRange, mostStrictPeerRequirement.range)
|
|
2151
|
+
) {
|
|
1936
2152
|
context.addError({
|
|
1937
2153
|
file: packageJsonPath,
|
|
1938
2154
|
message:
|
|
1939
|
-
`[2] Package ${packageName} dependency on ${peerDependencyName} '${packageDependencyRange}' does not satisfy inherited peer dependencies.\n\t`
|
|
1940
|
-
getMostStrictStatement(mostStrictPeerRequirement),
|
|
2155
|
+
`[2] Package ${packageName} dependency on ${peerDependencyName} '${packageDependencyRange}' does not satisfy inherited peer dependencies.\n\t`
|
|
2156
|
+
+ getMostStrictStatement(mostStrictPeerRequirement),
|
|
1941
2157
|
});
|
|
1942
2158
|
}
|
|
1943
2159
|
}
|
|
@@ -1949,8 +2165,8 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
|
|
|
1949
2165
|
context.addError({
|
|
1950
2166
|
file: packageJsonPath,
|
|
1951
2167
|
message:
|
|
1952
|
-
`[3] Package ${packageName} is missing required ${peerDependencyName} dependency.\n\t`
|
|
1953
|
-
getMostStrictStatement(mostStrictPeerRequirement),
|
|
2168
|
+
`[3] Package ${packageName} is missing required ${peerDependencyName} dependency.\n\t`
|
|
2169
|
+
+ getMostStrictStatement(mostStrictPeerRequirement),
|
|
1954
2170
|
fixer: getAddDependencyTypeFixer({
|
|
1955
2171
|
packageJsonPath,
|
|
1956
2172
|
dependencyType: "peerDependencies",
|
|
@@ -1965,18 +2181,24 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
|
|
|
1965
2181
|
// the range must be equal to or stricter than `mostStrictPeerRequirement`
|
|
1966
2182
|
if (packagePeerDependencyRange != null) {
|
|
1967
2183
|
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
|
|
2184
|
+
<span class="cstat-no" title="statement not covered" > const message =</span>
|
|
2185
|
+
<span class="cstat-no" title="statement not covered" > `Unable to parse ${packageName}'s ${peerDependencyName} peer dependency range '${packagePeerDependencyRange}'.`;</span>
|
|
1969
2186
|
<span class="cstat-no" title="statement not covered" > if (skipUnparseableRanges) {</span>
|
|
1970
2187
|
<span class="cstat-no" title="statement not covered" > context.addWarning({ file: packageJsonPath, message });</span>
|
|
1971
2188
|
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
1972
2189
|
<span class="cstat-no" title="statement not covered" > throw new Error(message);</span>
|
|
1973
2190
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1974
|
-
} else if (
|
|
2191
|
+
<span class="cstat-no" title="statement not covered" > } else if (</span>
|
|
2192
|
+
!doesASatisfyB(
|
|
2193
|
+
packagePeerDependencyRange,
|
|
2194
|
+
mostStrictPeerRequirement.range,
|
|
2195
|
+
)
|
|
2196
|
+
) {
|
|
1975
2197
|
context.addError({
|
|
1976
2198
|
file: packageJsonPath,
|
|
1977
2199
|
message:
|
|
1978
|
-
`[4] Package ${packageName} peer dependency on ${peerDependencyName} '${packagePeerDependencyRange}' is not strict enough.\n\t`
|
|
1979
|
-
getMostStrictStatement(mostStrictPeerRequirement),
|
|
2200
|
+
`[4] Package ${packageName} peer dependency on ${peerDependencyName} '${packagePeerDependencyRange}' is not strict enough.\n\t`
|
|
2201
|
+
+ getMostStrictStatement(mostStrictPeerRequirement),
|
|
1980
2202
|
fixer: getAddDependencyTypeFixer({
|
|
1981
2203
|
packageJsonPath,
|
|
1982
2204
|
dependencyType: "peerDependencies",
|
|
@@ -2001,28 +2223,34 @@ function shouldSkipPackage({
|
|
|
2001
2223
|
}) {
|
|
2002
2224
|
// blacklist should take precedance
|
|
2003
2225
|
if (
|
|
2004
|
-
(dependencyBlacklist != null && dependencyBlacklist.includes(packageName))
|
|
2005
|
-
(dependencyWhitelist != null
|
|
2226
|
+
(dependencyBlacklist != null && dependencyBlacklist.includes(packageName))
|
|
2227
|
+
|| (dependencyWhitelist != null
|
|
2228
|
+
&& !dependencyWhitelist.includes(packageName))
|
|
2006
2229
|
) {
|
|
2007
2230
|
return true;
|
|
2008
2231
|
}
|
|
2009
2232
|
return false;
|
|
2010
2233
|
}
|
|
2011
2234
|
|
|
2012
|
-
function getMostStrictStatement(
|
|
2235
|
+
function getMostStrictStatement(
|
|
2236
|
+
mostStrictPeerRequirement: IResolvedPeerDependencyRequirement,
|
|
2237
|
+
) {
|
|
2013
2238
|
if (mostStrictPeerRequirement.fromPeerDependencyRequirements.length === 1) {
|
|
2014
|
-
const dependencyName = mostStrictPeerRequirement.fromPeerDependencyRequirements[0]
|
|
2239
|
+
const dependencyName = mostStrictPeerRequirement.fromPeerDependencyRequirements[0]
|
|
2240
|
+
.fromPackageName;
|
|
2015
2241
|
return `Dependency ${dependencyName} requires '${mostStrictPeerRequirement.range}'.`;
|
|
2016
2242
|
} else {
|
|
2017
|
-
const dependencyNames = mostStrictPeerRequirement
|
|
2243
|
+
const dependencyNames = mostStrictPeerRequirement
|
|
2244
|
+
.fromPeerDependencyRequirements
|
|
2018
2245
|
.map((peerDependencyRequirement) => peerDependencyRequirement.fromPackageName)
|
|
2019
2246
|
.join(", ");
|
|
2020
|
-
const dependencyRequirements = mostStrictPeerRequirement
|
|
2247
|
+
const dependencyRequirements = mostStrictPeerRequirement
|
|
2248
|
+
.fromPeerDependencyRequirements
|
|
2021
2249
|
.map((peerDependencyRequirement) => `'${peerDependencyRequirement.range}'`)
|
|
2022
2250
|
.join(", ");
|
|
2023
2251
|
return (
|
|
2024
|
-
`Dependencies [${dependencyNames}] require [${dependencyRequirements}] respectively, `
|
|
2025
|
-
`resolving to '${mostStrictPeerRequirement.range}'.`
|
|
2252
|
+
`Dependencies [${dependencyNames}] require [${dependencyRequirements}] respectively, `
|
|
2253
|
+
+ `resolving to '${mostStrictPeerRequirement.range}'.`
|
|
2026
2254
|
);
|
|
2027
2255
|
}
|
|
2028
2256
|
}
|
|
@@ -2056,7 +2284,10 @@ function getMostStrictStatement(mostStrictPeerRequirement: IResolvedPeerDependen
|
|
|
2056
2284
|
* @param b version range that matches `RANGE_REGEX`
|
|
2057
2285
|
* @returns the maximum intersecting `ValidRange`, or `undefined` if there is no intersection
|
|
2058
2286
|
*/
|
|
2059
|
-
export function findIntersection(
|
|
2287
|
+
export function findIntersection(
|
|
2288
|
+
a: ValidRange,
|
|
2289
|
+
b: ValidRange,
|
|
2290
|
+
): ValidRange | undefined {
|
|
2060
2291
|
if (doesASatisfyB(a, b)) {
|
|
2061
2292
|
return a;
|
|
2062
2293
|
} else if (doesASatisfyB(b, a)) {
|
|
@@ -2127,9 +2358,19 @@ export function findIntersection(a: ValidRange, b: ValidRange): ValidRange | und
|
|
|
2127
2358
|
// there is no intersecting `b` major version for this `a` major version
|
|
2128
2359
|
return undefined;
|
|
2129
2360
|
}
|
|
2130
|
-
if (
|
|
2361
|
+
if (
|
|
2362
|
+
doesASatisfyB(
|
|
2363
|
+
aVersion as ValidRange,
|
|
2364
|
+
majorMatchingBVersion as ValidRange,
|
|
2365
|
+
)
|
|
2366
|
+
) {
|
|
2131
2367
|
return aVersion;
|
|
2132
|
-
} else if (
|
|
2368
|
+
} else if (
|
|
2369
|
+
doesASatisfyB(
|
|
2370
|
+
majorMatchingBVersion as ValidRange,
|
|
2371
|
+
aVersion as ValidRange,
|
|
2372
|
+
)
|
|
2373
|
+
) {
|
|
2133
2374
|
return majorMatchingBVersion;
|
|
2134
2375
|
<span class="branch-0 cbranch-no" title="branch not covered" > } else {</span>
|
|
2135
2376
|
<span class="cstat-no" title="statement not covered" > return undefined;</span>
|
|
@@ -2226,7 +2467,9 @@ export function doesASatisfyB(a: ValidRange, b: ValidRange): boolean {
|
|
|
2226
2467
|
|
|
2227
2468
|
const aVersionIsRange = isMajorVersionRange(aVersion);
|
|
2228
2469
|
const majorMatchingBSemVer = coerce(majorMatchingBVersion)!;
|
|
2229
|
-
const majorMatchingBVersionIsRange = isMajorVersionRange(
|
|
2470
|
+
const majorMatchingBVersionIsRange = isMajorVersionRange(
|
|
2471
|
+
majorMatchingBVersion,
|
|
2472
|
+
);
|
|
2230
2473
|
|
|
2231
2474
|
if (majorMatchingBVersionIsRange) {
|
|
2232
2475
|
// `a` satisfies `b` so long as `aSemVer` is greater than or equal to `majorMatchingBSemVer`
|
|
@@ -2302,7 +2545,7 @@ function getAddDependencyTypeFixer({
|
|
|
2302
2545
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2303
2546
|
Code coverage generated by
|
|
2304
2547
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2305
|
-
at 2025-01-
|
|
2548
|
+
at 2025-01-31T21:00:08.068Z
|
|
2306
2549
|
</div>
|
|
2307
2550
|
<script src="../prettify.js"></script>
|
|
2308
2551
|
<script>
|