@monorepolint/rules 0.6.0-alpha.4 → 0.6.0-alpha.6
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 +443 -92
- package/.turbo/turbo-transpile-typescript.log +5 -5
- package/CHANGELOG.md +112 -0
- package/build/js/index.js +413 -368
- package/build/js/index.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/REMOVE.d.ts +2 -0
- package/build/types/REMOVE.d.ts.map +1 -0
- package/build/types/__tests__/alphabeticalDependencies.spec.d.ts +8 -0
- package/build/types/__tests__/alphabeticalDependencies.spec.d.ts.map +1 -0
- package/build/types/__tests__/forceError.spec.d.ts +8 -0
- package/build/types/__tests__/forceError.spec.d.ts.map +1 -0
- package/build/types/__tests__/oncePerPackage.spec.d.ts +8 -0
- package/build/types/__tests__/oncePerPackage.spec.d.ts.map +1 -0
- package/build/types/__tests__/standardTsconfig.spec.d.ts +8 -0
- package/build/types/__tests__/standardTsconfig.spec.d.ts.map +1 -0
- package/build/types/bannedDependencies.d.ts +9 -33
- package/build/types/bannedDependencies.d.ts.map +1 -1
- package/build/types/consistentDependencies.d.ts +6 -6
- package/build/types/consistentDependencies.d.ts.map +1 -1
- package/build/types/consistentVersions.d.ts +6 -10
- package/build/types/consistentVersions.d.ts.map +1 -1
- package/build/types/fileContents.d.ts +3 -2
- package/build/types/fileContents.d.ts.map +1 -1
- package/build/types/index.d.ts +1 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/mustSatisfyPeerDependencies.d.ts +12 -190
- package/build/types/mustSatisfyPeerDependencies.d.ts.map +1 -1
- package/build/types/nestedWorkspaces.d.ts +2 -2
- package/build/types/nestedWorkspaces.d.ts.map +1 -1
- package/build/types/oncePerPackage.d.ts +6 -6
- package/build/types/oncePerPackage.d.ts.map +1 -1
- package/build/types/packageEntry.d.ts +11 -33
- package/build/types/packageEntry.d.ts.map +1 -1
- package/build/types/packageOrder.d.ts +2 -1
- package/build/types/packageOrder.d.ts.map +1 -1
- package/build/types/packageScript.d.ts +13 -22
- package/build/types/packageScript.d.ts.map +1 -1
- package/build/types/requireDependency.d.ts +5 -20
- package/build/types/requireDependency.d.ts.map +1 -1
- package/build/types/standardTsconfig.d.ts +12 -19
- package/build/types/standardTsconfig.d.ts.map +1 -1
- package/build/types/util/zodSchemas.d.ts +14 -0
- package/build/types/util/zodSchemas.d.ts.map +1 -0
- package/coverage/block-navigation.js +1 -1
- package/coverage/clover.xml +1420 -1452
- package/coverage/coverage-final.json +21 -19
- package/coverage/index.html +27 -27
- package/coverage/sorter.js +21 -7
- package/coverage/src/REMOVE.ts.html +88 -0
- package/coverage/src/alphabeticalDependencies.ts.html +15 -15
- package/coverage/src/alphabeticalScripts.ts.html +5 -5
- package/coverage/src/bannedDependencies.ts.html +20 -53
- package/coverage/src/consistentDependencies.ts.html +20 -14
- package/coverage/src/consistentVersions.ts.html +330 -183
- package/coverage/src/fileContents.ts.html +223 -88
- package/coverage/src/forceError.ts.html +31 -31
- package/coverage/src/index.html +104 -89
- package/coverage/src/index.ts.html +11 -5
- package/coverage/src/mustSatisfyPeerDependencies.ts.html +15 -501
- package/coverage/src/nestedWorkspaces.ts.html +5 -5
- package/coverage/src/oncePerPackage.ts.html +31 -31
- package/coverage/src/packageEntry.ts.html +121 -91
- package/coverage/src/packageOrder.ts.html +44 -14
- package/coverage/src/packageScript.ts.html +235 -88
- package/coverage/src/requireDependency.ts.html +241 -82
- package/coverage/src/standardTsconfig.ts.html +212 -212
- package/coverage/src/util/checkAlpha.ts.html +40 -40
- package/coverage/src/util/createRuleFactory.ts.html +19 -19
- package/coverage/src/util/index.html +30 -15
- package/coverage/src/util/makeDirectory.ts.html +11 -11
- package/coverage/src/util/packageDependencyGraphService.ts.html +1 -1
- package/coverage/src/util/zodSchemas.ts.html +130 -0
- package/package.json +15 -15
- package/src/REMOVE.ts +1 -0
- package/src/__tests__/alphabeticalDependencies.spec.ts +102 -0
- package/src/__tests__/alphabeticalScripts.spec.ts +18 -0
- package/src/__tests__/bannedDependencies.spec.ts +49 -0
- package/src/__tests__/consistentDependencies.spec.ts +23 -0
- package/src/__tests__/consistentVersions.spec.ts +142 -0
- package/src/__tests__/fileContents.spec.ts +348 -0
- package/src/__tests__/forceError.spec.ts +70 -0
- package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +44 -0
- package/src/__tests__/nestedWorkspaces.spec.ts +14 -0
- package/src/__tests__/oncePerPackage.spec.ts +75 -0
- package/src/__tests__/packageEntry.spec.ts +177 -0
- package/src/__tests__/packageOrder.spec.ts +22 -0
- package/src/__tests__/packageScript.spec.ts +549 -0
- package/src/__tests__/requireDependency.spec.ts +259 -2
- package/src/__tests__/standardTsconfig.spec.ts +91 -0
- package/src/bannedDependencies.ts +14 -25
- package/src/consistentDependencies.ts +10 -8
- package/src/consistentVersions.ts +132 -83
- package/src/fileContents.ts +80 -35
- package/src/index.ts +2 -0
- package/src/mustSatisfyPeerDependencies.ts +10 -172
- package/src/nestedWorkspaces.ts +4 -4
- package/src/oncePerPackage.ts +6 -6
- package/src/packageEntry.ts +60 -50
- package/src/packageOrder.ts +19 -9
- package/src/packageScript.ts +67 -18
- package/src/requireDependency.ts +84 -31
- package/src/standardTsconfig.ts +26 -26
- package/src/util/zodSchemas.ts +15 -0
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>118/118</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>23/23</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/4</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>118/118</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -149,7 +149,60 @@
|
|
|
149
149
|
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
150
|
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
151
|
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
-
<a name='L87'></a><a href='#L87'>87</a
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
153
206
|
<span class="cline-any cline-neutral"> </span>
|
|
154
207
|
<span class="cline-any cline-neutral"> </span>
|
|
155
208
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -161,6 +214,8 @@
|
|
|
161
214
|
<span class="cline-any cline-yes">1x</span>
|
|
162
215
|
<span class="cline-any cline-yes">1x</span>
|
|
163
216
|
<span class="cline-any cline-yes">1x</span>
|
|
217
|
+
<span class="cline-any cline-yes">1x</span>
|
|
218
|
+
<span class="cline-any cline-yes">1x</span>
|
|
164
219
|
<span class="cline-any cline-neutral"> </span>
|
|
165
220
|
<span class="cline-any cline-yes">1x</span>
|
|
166
221
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -168,71 +223,122 @@
|
|
|
168
223
|
<span class="cline-any cline-yes">1x</span>
|
|
169
224
|
<span class="cline-any cline-yes">1x</span>
|
|
170
225
|
<span class="cline-any cline-yes">1x</span>
|
|
226
|
+
<span class="cline-any cline-yes">1x</span>
|
|
227
|
+
<span class="cline-any cline-yes">1x</span>
|
|
228
|
+
<span class="cline-any cline-yes">1x</span>
|
|
229
|
+
<span class="cline-any cline-yes">1x</span>
|
|
230
|
+
<span class="cline-any cline-yes">1x</span>
|
|
231
|
+
<span class="cline-any cline-yes">1x</span>
|
|
232
|
+
<span class="cline-any cline-yes">1x</span>
|
|
233
|
+
<span class="cline-any cline-yes">1x</span>
|
|
234
|
+
<span class="cline-any cline-yes">1x</span>
|
|
235
|
+
<span class="cline-any cline-yes">1x</span>
|
|
236
|
+
<span class="cline-any cline-yes">1x</span>
|
|
237
|
+
<span class="cline-any cline-yes">1x</span>
|
|
238
|
+
<span class="cline-any cline-yes">1x</span>
|
|
239
|
+
<span class="cline-any cline-yes">1x</span>
|
|
240
|
+
<span class="cline-any cline-yes">1x</span>
|
|
241
|
+
<span class="cline-any cline-yes">1x</span>
|
|
242
|
+
<span class="cline-any cline-yes">1x</span>
|
|
243
|
+
<span class="cline-any cline-yes">1x</span>
|
|
244
|
+
<span class="cline-any cline-yes">1x</span>
|
|
245
|
+
<span class="cline-any cline-yes">1x</span>
|
|
246
|
+
<span class="cline-any cline-yes">1x</span>
|
|
247
|
+
<span class="cline-any cline-yes">1x</span>
|
|
248
|
+
<span class="cline-any cline-yes">1x</span>
|
|
249
|
+
<span class="cline-any cline-yes">1x</span>
|
|
171
250
|
<span class="cline-any cline-neutral"> </span>
|
|
172
251
|
<span class="cline-any cline-neutral"> </span>
|
|
173
252
|
<span class="cline-any cline-neutral"> </span>
|
|
174
253
|
<span class="cline-any cline-yes">1x</span>
|
|
175
254
|
<span class="cline-any cline-yes">1x</span>
|
|
176
255
|
<span class="cline-any cline-yes">1x</span>
|
|
177
|
-
<span class="cline-any cline-yes">
|
|
178
|
-
<span class="cline-any cline-yes">
|
|
256
|
+
<span class="cline-any cline-yes">17x</span>
|
|
257
|
+
<span class="cline-any cline-yes">17x</span>
|
|
258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
259
|
+
<span class="cline-any cline-yes">17x</span>
|
|
260
|
+
<span class="cline-any cline-yes">17x</span>
|
|
261
|
+
<span class="cline-any cline-yes">17x</span>
|
|
262
|
+
<span class="cline-any cline-yes">17x</span>
|
|
263
|
+
<span class="cline-any cline-yes">17x</span>
|
|
264
|
+
<span class="cline-any cline-yes">17x</span>
|
|
265
|
+
<span class="cline-any cline-yes">60x</span>
|
|
266
|
+
<span class="cline-any cline-yes">60x</span>
|
|
267
|
+
<span class="cline-any cline-yes">35x</span>
|
|
268
|
+
<span class="cline-any cline-yes">35x</span>
|
|
269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
271
|
+
<span class="cline-any cline-yes">25x</span>
|
|
272
|
+
<span class="cline-any cline-yes">25x</span>
|
|
273
|
+
<span class="cline-any cline-yes">25x</span>
|
|
274
|
+
<span class="cline-any cline-yes">25x</span>
|
|
275
|
+
<span class="cline-any cline-yes">25x</span>
|
|
276
|
+
<span class="cline-any cline-yes">25x</span>
|
|
277
|
+
<span class="cline-any cline-neutral"> </span>
|
|
278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
279
|
+
<span class="cline-any cline-yes">60x</span>
|
|
179
280
|
<span class="cline-any cline-neutral"> </span>
|
|
180
281
|
<span class="cline-any cline-yes">7x</span>
|
|
282
|
+
<span class="cline-any cline-yes">6x</span>
|
|
283
|
+
<span class="cline-any cline-yes">6x</span>
|
|
284
|
+
<span class="cline-any cline-yes">6x</span>
|
|
285
|
+
<span class="cline-any cline-yes">6x</span>
|
|
286
|
+
<span class="cline-any cline-yes">1x</span>
|
|
287
|
+
<span class="cline-any cline-yes">1x</span>
|
|
288
|
+
<span class="cline-any cline-yes">1x</span>
|
|
289
|
+
<span class="cline-any cline-yes">1x</span>
|
|
290
|
+
<span class="cline-any cline-yes">1x</span>
|
|
291
|
+
<span class="cline-any cline-yes">6x</span>
|
|
292
|
+
<span class="cline-any cline-yes">6x</span>
|
|
181
293
|
<span class="cline-any cline-yes">7x</span>
|
|
182
294
|
<span class="cline-any cline-yes">7x</span>
|
|
183
|
-
<span class="cline-any cline-yes">7x</span>
|
|
184
|
-
<span class="cline-any cline-yes">7x</span>
|
|
185
|
-
<span class="cline-any cline-yes">7x</span>
|
|
186
|
-
<span class="cline-any cline-yes">28x</span>
|
|
187
|
-
<span class="cline-any cline-yes">28x</span>
|
|
188
|
-
<span class="cline-any cline-yes">14x</span>
|
|
189
|
-
<span class="cline-any cline-yes">14x</span>
|
|
190
295
|
<span class="cline-any cline-neutral"> </span>
|
|
191
|
-
<span class="cline-any cline-yes">28x</span>
|
|
192
|
-
<span class="cline-any cline-yes">3x</span>
|
|
193
|
-
<span class="cline-any cline-yes">3x</span>
|
|
194
|
-
<span class="cline-any cline-yes">3x</span>
|
|
195
|
-
<span class="cline-any cline-yes">3x</span>
|
|
196
|
-
<span class="cline-any cline-no"> </span>
|
|
197
|
-
<span class="cline-any cline-no"> </span>
|
|
198
|
-
<span class="cline-any cline-no"> </span>
|
|
199
|
-
<span class="cline-any cline-no"> </span>
|
|
200
|
-
<span class="cline-any cline-no"> </span>
|
|
201
|
-
<span class="cline-any cline-no"> </span>
|
|
202
|
-
<span class="cline-any cline-no"> </span>
|
|
203
|
-
<span class="cline-any cline-yes">3x</span>
|
|
204
|
-
<span class="cline-any cline-yes">3x</span>
|
|
205
|
-
<span class="cline-any cline-yes">3x</span>
|
|
206
296
|
<span class="cline-any cline-neutral"> </span>
|
|
207
|
-
<span class="cline-any cline-yes">
|
|
297
|
+
<span class="cline-any cline-yes">60x</span>
|
|
208
298
|
<span class="cline-any cline-yes">16x</span>
|
|
209
|
-
<span class="cline-any cline-yes">
|
|
210
|
-
<span class="cline-any cline-yes">
|
|
211
|
-
<span class="cline-any cline-yes">
|
|
212
|
-
<span class="cline-any cline-yes">
|
|
213
|
-
<span class="cline-any cline-yes">
|
|
214
|
-
<span class="cline-any cline-yes">
|
|
215
|
-
<span class="cline-any cline-yes">
|
|
216
|
-
<span class="cline-any cline-yes">
|
|
217
|
-
<span class="cline-any cline-yes">5x</span>
|
|
299
|
+
<span class="cline-any cline-yes">13x</span>
|
|
300
|
+
<span class="cline-any cline-yes">13x</span>
|
|
301
|
+
<span class="cline-any cline-yes">13x</span>
|
|
302
|
+
<span class="cline-any cline-yes">13x</span>
|
|
303
|
+
<span class="cline-any cline-yes">13x</span>
|
|
304
|
+
<span class="cline-any cline-yes">13x</span>
|
|
305
|
+
<span class="cline-any cline-yes">13x</span>
|
|
306
|
+
<span class="cline-any cline-yes">13x</span>
|
|
218
307
|
<span class="cline-any cline-yes">5x</span>
|
|
219
308
|
<span class="cline-any cline-yes">5x</span>
|
|
220
309
|
<span class="cline-any cline-yes">5x</span>
|
|
221
310
|
<span class="cline-any cline-yes">5x</span>
|
|
222
|
-
<span class="cline-any cline-yes">1x</span>
|
|
223
|
-
<span class="cline-any cline-yes">1x</span>
|
|
224
311
|
<span class="cline-any cline-yes">5x</span>
|
|
225
|
-
<span class="cline-any cline-yes">4x</span>
|
|
226
|
-
<span class="cline-any cline-yes">4x</span>
|
|
227
312
|
<span class="cline-any cline-yes">5x</span>
|
|
228
313
|
<span class="cline-any cline-yes">5x</span>
|
|
229
314
|
<span class="cline-any cline-yes">5x</span>
|
|
230
315
|
<span class="cline-any cline-yes">5x</span>
|
|
231
|
-
<span class="cline-any cline-yes">
|
|
232
|
-
<span class="cline-any cline-yes">
|
|
316
|
+
<span class="cline-any cline-yes">13x</span>
|
|
317
|
+
<span class="cline-any cline-yes">13x</span>
|
|
233
318
|
<span class="cline-any cline-yes">16x</span>
|
|
234
|
-
<span class="cline-any cline-
|
|
235
|
-
<span class="cline-any cline-
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-yes">60x</span>
|
|
322
|
+
<span class="cline-any cline-yes">10x</span>
|
|
323
|
+
<span class="cline-any cline-yes">6x</span>
|
|
324
|
+
<span class="cline-any cline-yes">6x</span>
|
|
325
|
+
<span class="cline-any cline-yes">6x</span>
|
|
326
|
+
<span class="cline-any cline-yes">6x</span>
|
|
327
|
+
<span class="cline-any cline-yes">5x</span>
|
|
328
|
+
<span class="cline-any cline-yes">5x</span>
|
|
329
|
+
<span class="cline-any cline-yes">5x</span>
|
|
330
|
+
<span class="cline-any cline-yes">5x</span>
|
|
331
|
+
<span class="cline-any cline-yes">5x</span>
|
|
332
|
+
<span class="cline-any cline-yes">5x</span>
|
|
333
|
+
<span class="cline-any cline-yes">5x</span>
|
|
334
|
+
<span class="cline-any cline-yes">5x</span>
|
|
335
|
+
<span class="cline-any cline-yes">5x</span>
|
|
336
|
+
<span class="cline-any cline-yes">5x</span>
|
|
337
|
+
<span class="cline-any cline-yes">6x</span>
|
|
338
|
+
<span class="cline-any cline-yes">6x</span>
|
|
339
|
+
<span class="cline-any cline-yes">10x</span>
|
|
340
|
+
<span class="cline-any cline-yes">17x</span>
|
|
341
|
+
<span class="cline-any cline-yes">17x</span>
|
|
236
342
|
<span class="cline-any cline-yes">1x</span>
|
|
237
343
|
<span class="cline-any cline-yes">1x</span>
|
|
238
344
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*!
|
|
@@ -245,17 +351,43 @@
|
|
|
245
351
|
import { Context } from "@monorepolint/config";
|
|
246
352
|
import { mutateJson, PackageJson } from "@monorepolint/utils";
|
|
247
353
|
import { diff } from "jest-diff";
|
|
248
|
-
import
|
|
354
|
+
import { z } from "zod";
|
|
355
|
+
import { REMOVE } from "./REMOVE.js";
|
|
249
356
|
import { createRuleFactory } from "./util/createRuleFactory.js";
|
|
357
|
+
import { ZodRemove } from "./util/zodSchemas.js";
|
|
250
358
|
|
|
251
|
-
const Options =
|
|
252
|
-
dependencies:
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
359
|
+
const Options = z.object({
|
|
360
|
+
dependencies: z.record(
|
|
361
|
+
z.string(),
|
|
362
|
+
z.union([
|
|
363
|
+
z.string(),
|
|
364
|
+
ZodRemove,
|
|
365
|
+
]).optional(),
|
|
366
|
+
).optional(),
|
|
367
|
+
devDependencies: z.record(
|
|
368
|
+
z.string(),
|
|
369
|
+
z.union([
|
|
370
|
+
z.string(),
|
|
371
|
+
ZodRemove,
|
|
372
|
+
]).optional(),
|
|
373
|
+
).optional(),
|
|
374
|
+
peerDependencies: z.record(
|
|
375
|
+
z.string(),
|
|
376
|
+
z.union([
|
|
377
|
+
z.string(),
|
|
378
|
+
ZodRemove,
|
|
379
|
+
]).optional(),
|
|
380
|
+
).optional(),
|
|
381
|
+
optionalDependencies: z.record(
|
|
382
|
+
z.string(),
|
|
383
|
+
z.union([
|
|
384
|
+
z.string(),
|
|
385
|
+
ZodRemove,
|
|
386
|
+
]).optional(),
|
|
387
|
+
).optional(),
|
|
388
|
+
}).partial();
|
|
257
389
|
|
|
258
|
-
type Options =
|
|
390
|
+
type Options = z.infer<typeof Options>;
|
|
259
391
|
|
|
260
392
|
export const requireDependency = createRuleFactory({
|
|
261
393
|
name: "requireDependency",
|
|
@@ -274,29 +406,40 @@ export const requireDependency = createRuleFactory({
|
|
|
274
406
|
return;
|
|
275
407
|
}
|
|
276
408
|
|
|
409
|
+
// Separate additions from removals upfront
|
|
410
|
+
const dependenciesToAdd = Object.entries(expectedEntries).filter(
|
|
411
|
+
([, version]) => version !== REMOVE && version !== undefined,
|
|
412
|
+
);
|
|
413
|
+
const dependenciesToRemove = Object.entries(expectedEntries).filter(
|
|
414
|
+
([, version]) => version === REMOVE,
|
|
415
|
+
);
|
|
416
|
+
|
|
417
|
+
// Handle missing dependency block
|
|
277
418
|
if (packageJson[type] === undefined) {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
419
|
+
// Only create block if there are dependencies to add (REMOVE entries shouldn't create blocks)
|
|
420
|
+
if (dependenciesToAdd.length > 0) {
|
|
421
|
+
context.addError({
|
|
422
|
+
file: packageJsonPath,
|
|
423
|
+
message: `No ${type} block, cannot add required ${type}.`,
|
|
424
|
+
fixer: () => {
|
|
425
|
+
mutateJson<PackageJson>(packageJsonPath, context.host, (input) => {
|
|
426
|
+
input[type] = Object.fromEntries(dependenciesToAdd) as Record<string, string>;
|
|
427
|
+
return input;
|
|
428
|
+
});
|
|
429
|
+
},
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
return; // Can't remove from non-existent block
|
|
291
433
|
}
|
|
292
434
|
|
|
293
|
-
|
|
435
|
+
// Process additions
|
|
436
|
+
for (const [dep, version] of dependenciesToAdd) {
|
|
294
437
|
if (packageJson[type]?.[dep] !== version) {
|
|
295
438
|
context.addError({
|
|
296
439
|
file: packageJsonPath,
|
|
297
|
-
message: `Expected dependency ${dep}@${version}`,
|
|
440
|
+
message: `Expected dependency ${dep}@${version as string}`,
|
|
298
441
|
longMessage: diff(
|
|
299
|
-
`${dep}@${version}\n`,
|
|
442
|
+
`${dep}@${version as string}\n`,
|
|
300
443
|
`${dep}@${packageJson[type]![dep] || "missing"}\n`,
|
|
301
444
|
)!,
|
|
302
445
|
fixer: () => {
|
|
@@ -304,12 +447,28 @@ export const requireDependency = createRuleFactory({
|
|
|
304
447
|
packageJsonPath,
|
|
305
448
|
context.host,
|
|
306
449
|
(input) => {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
450
|
+
input[type] = { ...input[type], [dep]: version as string };
|
|
451
|
+
return input;
|
|
452
|
+
},
|
|
453
|
+
);
|
|
454
|
+
},
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
// Process removals
|
|
460
|
+
for (const [dep] of dependenciesToRemove) {
|
|
461
|
+
if (packageJson[type]?.[dep] !== undefined) {
|
|
462
|
+
context.addError({
|
|
463
|
+
file: packageJsonPath,
|
|
464
|
+
message: `Dependency ${dep} should be removed`,
|
|
465
|
+
fixer: () => {
|
|
466
|
+
mutateJson<PackageJson>(
|
|
467
|
+
packageJsonPath,
|
|
468
|
+
context.host,
|
|
469
|
+
(input) => {
|
|
470
|
+
input[type] = { ...input[type] };
|
|
471
|
+
delete input[type][dep];
|
|
313
472
|
return input;
|
|
314
473
|
},
|
|
315
474
|
);
|
|
@@ -319,7 +478,7 @@ export const requireDependency = createRuleFactory({
|
|
|
319
478
|
}
|
|
320
479
|
});
|
|
321
480
|
},
|
|
322
|
-
validateOptions: Options.
|
|
481
|
+
validateOptions: Options.parse,
|
|
323
482
|
});
|
|
324
483
|
</pre></td></tr></table></pre>
|
|
325
484
|
|
|
@@ -328,7 +487,7 @@ export const requireDependency = createRuleFactory({
|
|
|
328
487
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
329
488
|
Code coverage generated by
|
|
330
489
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
331
|
-
at 2025-
|
|
490
|
+
at 2025-11-07T18:00:58.549Z
|
|
332
491
|
</div>
|
|
333
492
|
<script src="../prettify.js"></script>
|
|
334
493
|
<script>
|