@monorepolint/rules 0.6.0-alpha.5 → 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 +446 -94
- package/.turbo/turbo-transpile-typescript.log +5 -5
- package/CHANGELOG.md +102 -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 +1454 -1442
- 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 +34 -34
- 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 +60 -60
- package/coverage/src/index.html +127 -112
- 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 +59 -59
- 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 +193 -193
- 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 +14 -14
- 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
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>143/143</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'>40/40</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
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
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>143/143</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -180,7 +180,56 @@
|
|
|
180
180
|
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
181
|
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
182
|
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
-
<a name='L118'></a><a href='#L118'>118</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>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
184
233
|
<span class="cline-any cline-neutral"> </span>
|
|
185
234
|
<span class="cline-any cline-neutral"> </span>
|
|
186
235
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -191,6 +240,8 @@
|
|
|
191
240
|
<span class="cline-any cline-yes">1x</span>
|
|
192
241
|
<span class="cline-any cline-yes">1x</span>
|
|
193
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>
|
|
194
245
|
<span class="cline-any cline-neutral"> </span>
|
|
195
246
|
<span class="cline-any cline-yes">1x</span>
|
|
196
247
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -203,6 +254,17 @@
|
|
|
203
254
|
<span class="cline-any cline-yes">1x</span>
|
|
204
255
|
<span class="cline-any cline-yes">1x</span>
|
|
205
256
|
<span class="cline-any cline-yes">1x</span>
|
|
257
|
+
<span class="cline-any cline-yes">1x</span>
|
|
258
|
+
<span class="cline-any cline-yes">1x</span>
|
|
259
|
+
<span class="cline-any cline-yes">1x</span>
|
|
260
|
+
<span class="cline-any cline-yes">1x</span>
|
|
261
|
+
<span class="cline-any cline-yes">1x</span>
|
|
262
|
+
<span class="cline-any cline-yes">1x</span>
|
|
263
|
+
<span class="cline-any cline-yes">1x</span>
|
|
264
|
+
<span class="cline-any cline-yes">1x</span>
|
|
265
|
+
<span class="cline-any cline-yes">1x</span>
|
|
266
|
+
<span class="cline-any cline-yes">1x</span>
|
|
267
|
+
<span class="cline-any cline-yes">1x</span>
|
|
206
268
|
<span class="cline-any cline-neutral"> </span>
|
|
207
269
|
<span class="cline-any cline-neutral"> </span>
|
|
208
270
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -211,90 +273,126 @@
|
|
|
211
273
|
<span class="cline-any cline-yes">1x</span>
|
|
212
274
|
<span class="cline-any cline-yes">1x</span>
|
|
213
275
|
<span class="cline-any cline-yes">1x</span>
|
|
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">
|
|
218
|
-
<span class="cline-any cline-yes">4x</span>
|
|
219
|
-
<span class="cline-any cline-yes">4x</span>
|
|
220
|
-
<span class="cline-any cline-yes">2x</span>
|
|
221
|
-
<span class="cline-any cline-yes">2x</span>
|
|
222
|
-
<span class="cline-any cline-yes">2x</span>
|
|
223
|
-
<span class="cline-any cline-yes">2x</span>
|
|
224
|
-
<span class="cline-any cline-yes">2x</span>
|
|
225
|
-
<span class="cline-any cline-yes">2x</span>
|
|
226
|
-
<span class="cline-any cline-yes">2x</span>
|
|
227
|
-
<span class="cline-any cline-yes">2x</span>
|
|
228
|
-
<span class="cline-any cline-yes">2x</span>
|
|
229
|
-
<span class="cline-any cline-yes">4x</span>
|
|
230
|
-
<span class="cline-any cline-yes">4x</span>
|
|
231
|
-
<span class="cline-any cline-yes">4x</span>
|
|
232
|
-
<span class="cline-any cline-yes">12x</span>
|
|
233
|
-
<span class="cline-any cline-yes">12x</span>
|
|
234
|
-
<span class="cline-any cline-yes">12x</span>
|
|
235
|
-
<span class="cline-any cline-yes">12x</span>
|
|
236
|
-
<span class="cline-any cline-yes">12x</span>
|
|
237
|
-
<span class="cline-any cline-neutral"> </span>
|
|
238
|
-
<span class="cline-any cline-yes">12x</span>
|
|
239
|
-
<span class="cline-any cline-yes">4x</span>
|
|
240
|
-
<span class="cline-any cline-yes">4x</span>
|
|
241
|
-
<span class="cline-any cline-yes">12x</span>
|
|
276
|
+
<span class="cline-any cline-yes">48x</span>
|
|
277
|
+
<span class="cline-any cline-yes">48x</span>
|
|
278
|
+
<span class="cline-any cline-yes">8x</span>
|
|
279
|
+
<span class="cline-any cline-yes">8x</span>
|
|
242
280
|
<span class="cline-any cline-yes">8x</span>
|
|
243
|
-
<span class="cline-any cline-yes">14x</span>
|
|
244
|
-
<span class="cline-any cline-yes">4x</span>
|
|
245
|
-
<span class="cline-any cline-yes">4x</span>
|
|
246
|
-
<span class="cline-any cline-yes">14x</span>
|
|
247
|
-
<span class="cline-any cline-yes">14x</span>
|
|
248
281
|
<span class="cline-any cline-yes">8x</span>
|
|
249
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">6x</span>
|
|
287
|
+
<span class="cline-any cline-yes">6x</span>
|
|
288
|
+
<span class="cline-any cline-yes">6x</span>
|
|
289
|
+
<span class="cline-any cline-yes">6x</span>
|
|
290
|
+
<span class="cline-any cline-yes">6x</span>
|
|
250
291
|
<span class="cline-any cline-yes">8x</span>
|
|
251
292
|
<span class="cline-any cline-yes">8x</span>
|
|
293
|
+
<span class="cline-any cline-yes">8x</span>
|
|
294
|
+
<span class="cline-any cline-yes">48x</span>
|
|
295
|
+
<span class="cline-any cline-yes">48x</span>
|
|
296
|
+
<span class="cline-any cline-yes">48x</span>
|
|
297
|
+
<span class="cline-any cline-yes">48x</span>
|
|
298
|
+
<span class="cline-any cline-yes">48x</span>
|
|
299
|
+
<span class="cline-any cline-yes">48x</span>
|
|
252
300
|
<span class="cline-any cline-neutral"> </span>
|
|
301
|
+
<span class="cline-any cline-yes">48x</span>
|
|
253
302
|
<span class="cline-any cline-yes">12x</span>
|
|
254
|
-
<span class="cline-any cline-neutral"> </span>
|
|
255
|
-
<span class="cline-any cline-yes">12x</span>
|
|
256
|
-
<span class="cline-any cline-yes">12x</span>
|
|
257
|
-
<span class="cline-any cline-yes">10x</span>
|
|
258
303
|
<span class="cline-any cline-yes">12x</span>
|
|
259
|
-
<span class="cline-any cline-yes">
|
|
304
|
+
<span class="cline-any cline-yes">48x</span>
|
|
260
305
|
<span class="cline-any cline-neutral"> </span>
|
|
261
306
|
<span class="cline-any cline-yes">10x</span>
|
|
262
307
|
<span class="cline-any cline-yes">10x</span>
|
|
263
308
|
<span class="cline-any cline-yes">10x</span>
|
|
264
|
-
<span class="cline-any cline-yes">
|
|
265
|
-
<span class="cline-any cline-yes">
|
|
266
|
-
<span class="cline-any cline-yes">
|
|
267
|
-
<span class="cline-any cline-yes">8x</span>
|
|
268
|
-
<span class="cline-any cline-yes">8x</span>
|
|
269
|
-
<span class="cline-any cline-yes">8x</span>
|
|
270
|
-
<span class="cline-any cline-yes">8x</span>
|
|
271
|
-
<span class="cline-any cline-yes">4x</span>
|
|
272
|
-
<span class="cline-any cline-yes">4x</span>
|
|
273
|
-
<span class="cline-any cline-yes">4x</span>
|
|
274
|
-
<span class="cline-any cline-yes">4x</span>
|
|
275
|
-
<span class="cline-any cline-yes">8x</span>
|
|
276
|
-
<span class="cline-any cline-yes">8x</span>
|
|
277
|
-
<span class="cline-any cline-yes">8x</span>
|
|
278
|
-
<span class="cline-any cline-yes">8x</span>
|
|
279
|
-
<span class="cline-any cline-yes">8x</span>
|
|
280
|
-
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-yes">36x</span>
|
|
310
|
+
<span class="cline-any cline-yes">26x</span>
|
|
311
|
+
<span class="cline-any cline-yes">56x</span>
|
|
281
312
|
<span class="cline-any cline-yes">10x</span>
|
|
313
|
+
<span class="cline-any cline-yes">56x</span>
|
|
282
314
|
<span class="cline-any cline-yes">10x</span>
|
|
283
315
|
<span class="cline-any cline-yes">10x</span>
|
|
316
|
+
<span class="cline-any cline-yes">56x</span>
|
|
317
|
+
<span class="cline-any cline-yes">56x</span>
|
|
318
|
+
<span class="cline-any cline-yes">26x</span>
|
|
319
|
+
<span class="cline-any cline-yes">22x</span>
|
|
320
|
+
<span class="cline-any cline-yes">26x</span>
|
|
321
|
+
<span class="cline-any cline-yes">22x</span>
|
|
322
|
+
<span class="cline-any cline-yes">26x</span>
|
|
323
|
+
<span class="cline-any cline-yes">26x</span>
|
|
284
324
|
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-yes">48x</span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
328
|
+
<span class="cline-any cline-yes">48x</span>
|
|
285
329
|
<span class="cline-any cline-yes">10x</span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-yes">6x</span>
|
|
332
|
+
<span class="cline-any cline-yes">6x</span>
|
|
333
|
+
<span class="cline-any cline-yes">6x</span>
|
|
334
|
+
<span class="cline-any cline-yes">6x</span>
|
|
335
|
+
<span class="cline-any cline-yes">6x</span>
|
|
336
|
+
<span class="cline-any cline-yes">6x</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">6x</span>
|
|
340
|
+
<span class="cline-any cline-yes">6x</span>
|
|
341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
342
|
+
<span class="cline-any cline-yes">6x</span>
|
|
343
|
+
<span class="cline-any cline-yes">6x</span>
|
|
344
|
+
<span class="cline-any cline-yes">6x</span>
|
|
345
|
+
<span class="cline-any cline-yes">6x</span>
|
|
346
|
+
<span class="cline-any cline-yes">6x</span>
|
|
347
|
+
<span class="cline-any cline-yes">6x</span>
|
|
348
|
+
<span class="cline-any cline-neutral"> </span>
|
|
286
349
|
<span class="cline-any cline-yes">10x</span>
|
|
287
350
|
<span class="cline-any cline-yes">10x</span>
|
|
351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
352
|
+
<span class="cline-any cline-yes">38x</span>
|
|
353
|
+
<span class="cline-any cline-yes">38x</span>
|
|
354
|
+
<span class="cline-any cline-yes">34x</span>
|
|
355
|
+
<span class="cline-any cline-yes">48x</span>
|
|
356
|
+
<span class="cline-any cline-yes">32x</span>
|
|
357
|
+
<span class="cline-any cline-neutral"> </span>
|
|
358
|
+
<span class="cline-any cline-yes">32x</span>
|
|
359
|
+
<span class="cline-any cline-yes">32x</span>
|
|
360
|
+
<span class="cline-any cline-yes">30x</span>
|
|
361
|
+
<span class="cline-any cline-yes">32x</span>
|
|
362
|
+
<span class="cline-any cline-yes">26x</span>
|
|
363
|
+
<span class="cline-any cline-yes">26x</span>
|
|
364
|
+
<span class="cline-any cline-yes">24x</span>
|
|
365
|
+
<span class="cline-any cline-yes">24x</span>
|
|
366
|
+
<span class="cline-any cline-yes">24x</span>
|
|
367
|
+
<span class="cline-any cline-yes">24x</span>
|
|
368
|
+
<span class="cline-any cline-yes">24x</span>
|
|
288
369
|
<span class="cline-any cline-yes">10x</span>
|
|
289
|
-
<span class="cline-any cline-yes">
|
|
290
|
-
<span class="cline-any cline-yes">
|
|
291
|
-
<span class="cline-any cline-yes">
|
|
292
|
-
<span class="cline-any cline-yes">
|
|
293
|
-
<span class="cline-any cline-yes">
|
|
294
|
-
<span class="cline-any cline-yes">
|
|
295
|
-
<span class="cline-any cline-yes">
|
|
296
|
-
<span class="cline-any cline-yes">
|
|
297
|
-
<span class="cline-any cline-
|
|
370
|
+
<span class="cline-any cline-yes">24x</span>
|
|
371
|
+
<span class="cline-any cline-yes">14x</span>
|
|
372
|
+
<span class="cline-any cline-yes">14x</span>
|
|
373
|
+
<span class="cline-any cline-yes">24x</span>
|
|
374
|
+
<span class="cline-any cline-yes">24x</span>
|
|
375
|
+
<span class="cline-any cline-yes">24x</span>
|
|
376
|
+
<span class="cline-any cline-yes">24x</span>
|
|
377
|
+
<span class="cline-any cline-yes">26x</span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-yes">32x</span>
|
|
380
|
+
<span class="cline-any cline-yes">32x</span>
|
|
381
|
+
<span class="cline-any cline-yes">32x</span>
|
|
382
|
+
<span class="cline-any cline-neutral"> </span>
|
|
383
|
+
<span class="cline-any cline-yes">32x</span>
|
|
384
|
+
<span class="cline-any cline-yes">32x</span>
|
|
385
|
+
<span class="cline-any cline-yes">32x</span>
|
|
386
|
+
<span class="cline-any cline-yes">32x</span>
|
|
387
|
+
<span class="cline-any cline-yes">32x</span>
|
|
388
|
+
<span class="cline-any cline-yes">32x</span>
|
|
389
|
+
<span class="cline-any cline-yes">32x</span>
|
|
390
|
+
<span class="cline-any cline-yes">32x</span>
|
|
391
|
+
<span class="cline-any cline-yes">32x</span>
|
|
392
|
+
<span class="cline-any cline-yes">32x</span>
|
|
393
|
+
<span class="cline-any cline-yes">32x</span>
|
|
394
|
+
<span class="cline-any cline-yes">48x</span>
|
|
395
|
+
<span class="cline-any cline-yes">48x</span>
|
|
298
396
|
<span class="cline-any cline-yes">1x</span>
|
|
299
397
|
<span class="cline-any cline-yes">1x</span>
|
|
300
398
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*!
|
|
@@ -306,22 +404,35 @@
|
|
|
306
404
|
|
|
307
405
|
import { mutateJson, PackageJson } from "@monorepolint/utils";
|
|
308
406
|
import { diff } from "jest-diff";
|
|
309
|
-
import
|
|
407
|
+
import { z } from "zod";
|
|
408
|
+
import { REMOVE } from "./REMOVE.js";
|
|
310
409
|
import { createRuleFactory } from "./util/createRuleFactory.js";
|
|
410
|
+
import { ZodRemove } from "./util/zodSchemas.js";
|
|
311
411
|
|
|
312
|
-
export const Options =
|
|
313
|
-
scripts:
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
412
|
+
export const Options = z.object({
|
|
413
|
+
scripts: z.record(
|
|
414
|
+
z.string(),
|
|
415
|
+
z.union([
|
|
416
|
+
z.string(),
|
|
417
|
+
ZodRemove, // Allow direct REMOVE values like { "build": REMOVE }
|
|
418
|
+
z.object({
|
|
419
|
+
options: z.array(z.union([
|
|
420
|
+
z.string(),
|
|
421
|
+
z.undefined(),
|
|
422
|
+
ZodRemove,
|
|
423
|
+
])),
|
|
424
|
+
fixValue: z.union([
|
|
425
|
+
z.string(),
|
|
426
|
+
z.undefined(),
|
|
427
|
+
z.literal(false),
|
|
428
|
+
ZodRemove,
|
|
429
|
+
]).optional(),
|
|
319
430
|
}),
|
|
320
|
-
),
|
|
321
|
-
), // string => string
|
|
431
|
+
]),
|
|
432
|
+
), // string => string | REMOVE | object
|
|
322
433
|
});
|
|
323
434
|
|
|
324
|
-
export type Options =
|
|
435
|
+
export type Options = z.infer<typeof Options>;
|
|
325
436
|
|
|
326
437
|
export const MSG_NO_SCRIPTS_BLOCK = "No scripts block in package.json";
|
|
327
438
|
|
|
@@ -347,27 +458,62 @@ export const packageScript = createRuleFactory<Options>({
|
|
|
347
458
|
return;
|
|
348
459
|
}
|
|
349
460
|
for (const [name, value] of Object.entries(options.scripts)) {
|
|
350
|
-
const allowedValues = new Set<string | undefined>();
|
|
351
|
-
let fixValue: string | undefined | false;
|
|
461
|
+
const allowedValues = new Set<string | undefined | typeof REMOVE>();
|
|
462
|
+
let fixValue: string | undefined | false | typeof REMOVE;
|
|
352
463
|
let allowEmpty = false;
|
|
353
464
|
let fixToEmpty = false;
|
|
465
|
+
let fixToRemove = false;
|
|
354
466
|
|
|
355
467
|
if (typeof value === "string") {
|
|
356
468
|
allowedValues.add(value);
|
|
357
469
|
fixValue = value;
|
|
470
|
+
} else if (value === REMOVE) {
|
|
471
|
+
// Handle direct REMOVE value: script should be removed
|
|
472
|
+
allowedValues.add(REMOVE);
|
|
473
|
+
fixValue = REMOVE;
|
|
474
|
+
fixToRemove = true;
|
|
358
475
|
} else {
|
|
359
476
|
for (const q of value.options) {
|
|
360
477
|
if (q === undefined) {
|
|
361
478
|
allowEmpty = true;
|
|
479
|
+
} else if (q === REMOVE) {
|
|
480
|
+
allowEmpty = true;
|
|
362
481
|
}
|
|
363
482
|
allowedValues.add(q);
|
|
364
483
|
}
|
|
365
484
|
fixToEmpty = Object.prototype.hasOwnProperty.call(value, "fixValue")
|
|
366
485
|
&& value.fixValue === undefined;
|
|
486
|
+
fixToRemove = Object.prototype.hasOwnProperty.call(value, "fixValue")
|
|
487
|
+
&& value.fixValue === REMOVE;
|
|
367
488
|
fixValue = value.fixValue;
|
|
368
489
|
}
|
|
369
490
|
|
|
370
491
|
const actualValue = packageJson.scripts[name];
|
|
492
|
+
|
|
493
|
+
// Special handling for direct REMOVE: only error if script exists
|
|
494
|
+
if (value === REMOVE) {
|
|
495
|
+
if (actualValue !== undefined) {
|
|
496
|
+
// Script exists but should be removed
|
|
497
|
+
const fixer = () => {
|
|
498
|
+
mutateJson<PackageJson>(
|
|
499
|
+
context.getPackageJsonPath(),
|
|
500
|
+
context.host,
|
|
501
|
+
(input) => {
|
|
502
|
+
delete input.scripts![name];
|
|
503
|
+
return input;
|
|
504
|
+
},
|
|
505
|
+
);
|
|
506
|
+
};
|
|
507
|
+
|
|
508
|
+
context.addError({
|
|
509
|
+
file: context.getPackageJsonPath(),
|
|
510
|
+
message: `Script '${name}' should be removed`,
|
|
511
|
+
fixer,
|
|
512
|
+
});
|
|
513
|
+
}
|
|
514
|
+
// If script doesn't exist, no error needed
|
|
515
|
+
continue;
|
|
516
|
+
}
|
|
371
517
|
|
|
372
518
|
if (
|
|
373
519
|
!allowedValues.has(actualValue)
|
|
@@ -376,7 +522,8 @@ export const packageScript = createRuleFactory<Options>({
|
|
|
376
522
|
let fixer;
|
|
377
523
|
|
|
378
524
|
if (
|
|
379
|
-
fixValue !== false
|
|
525
|
+
fixValue !== false
|
|
526
|
+
&& (fixValue !== undefined || fixToEmpty === true || fixToRemove === true)
|
|
380
527
|
) {
|
|
381
528
|
const q = fixValue;
|
|
382
529
|
fixer = () => {
|
|
@@ -384,10 +531,10 @@ export const packageScript = createRuleFactory<Options>({
|
|
|
384
531
|
context.getPackageJsonPath(),
|
|
385
532
|
context.host,
|
|
386
533
|
(input) => {
|
|
387
|
-
if (fixToEmpty && q === undefined) {
|
|
534
|
+
if ((fixToEmpty && q === undefined) || (fixToRemove && q === REMOVE)) {
|
|
388
535
|
delete input.scripts![name];
|
|
389
536
|
} else {
|
|
390
|
-
input.scripts![name] = q
|
|
537
|
+
input.scripts![name] = q as string;
|
|
391
538
|
}
|
|
392
539
|
return input;
|
|
393
540
|
},
|
|
@@ -396,7 +543,7 @@ export const packageScript = createRuleFactory<Options>({
|
|
|
396
543
|
}
|
|
397
544
|
|
|
398
545
|
const validOptionsString = Array.from(allowedValues.values())
|
|
399
|
-
.map((a) => (a === undefined ? "(empty)" : `'${a}'`))
|
|
546
|
+
.map((a) => (a === undefined || a === REMOVE ? "(empty)" : `'${a}'`))
|
|
400
547
|
.join(", ");
|
|
401
548
|
|
|
402
549
|
context.addError({
|
|
@@ -412,7 +559,7 @@ export const packageScript = createRuleFactory<Options>({
|
|
|
412
559
|
}
|
|
413
560
|
}
|
|
414
561
|
},
|
|
415
|
-
validateOptions: Options.
|
|
562
|
+
validateOptions: Options.parse,
|
|
416
563
|
});
|
|
417
564
|
</pre></td></tr></table></pre>
|
|
418
565
|
|
|
@@ -421,7 +568,7 @@ export const packageScript = createRuleFactory<Options>({
|
|
|
421
568
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
422
569
|
Code coverage generated by
|
|
423
570
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
424
|
-
at 2025-
|
|
571
|
+
at 2025-11-07T18:00:58.549Z
|
|
425
572
|
</div>
|
|
426
573
|
<script src="../prettify.js"></script>
|
|
427
574
|
<script>
|