@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.
Files changed (85) hide show
  1. package/.turbo/turbo-clean.log +1 -1
  2. package/.turbo/turbo-compile-typescript.log +1 -1
  3. package/.turbo/turbo-lint.log +1 -1
  4. package/.turbo/turbo-test.log +161 -102
  5. package/.turbo/turbo-transpile-typescript.log +4 -4
  6. package/CHANGELOG.md +19 -0
  7. package/build/js/index.js +429 -241
  8. package/build/js/index.js.map +1 -1
  9. package/build/tsconfig.tsbuildinfo +1 -1
  10. package/build/types/__tests__/utils.d.ts +0 -1
  11. package/build/types/__tests__/utils.d.ts.map +1 -1
  12. package/build/types/bannedDependencies.d.ts.map +1 -1
  13. package/build/types/fileContents.d.ts.map +1 -1
  14. package/build/types/forceError.d.ts +4 -0
  15. package/build/types/forceError.d.ts.map +1 -0
  16. package/build/types/index.d.ts +5 -3
  17. package/build/types/index.d.ts.map +1 -1
  18. package/build/types/mustSatisfyPeerDependencies.d.ts.map +1 -1
  19. package/build/types/nestedWorkspaces.d.ts.map +1 -1
  20. package/build/types/oncePerPackage.d.ts +11 -0
  21. package/build/types/oncePerPackage.d.ts.map +1 -0
  22. package/build/types/packageEntry.d.ts.map +1 -1
  23. package/build/types/packageOrder.d.ts.map +1 -1
  24. package/build/types/packageScript.d.ts.map +1 -1
  25. package/build/types/requireDependency.d.ts +12 -12
  26. package/build/types/requireDependency.d.ts.map +1 -1
  27. package/build/types/util/checkAlpha.d.ts.map +1 -1
  28. package/build/types/util/createRuleFactory.d.ts.map +1 -1
  29. package/build/types/util/packageDependencyGraphService.d.ts.map +1 -1
  30. package/coverage/clover.xml +1201 -813
  31. package/coverage/coverage-final.json +20 -18
  32. package/coverage/index.html +20 -20
  33. package/coverage/src/alphabeticalDependencies.ts.html +11 -11
  34. package/coverage/src/alphabeticalScripts.ts.html +5 -5
  35. package/coverage/src/bannedDependencies.ts.html +76 -28
  36. package/coverage/src/consistentDependencies.ts.html +51 -18
  37. package/coverage/src/consistentVersions.ts.html +144 -48
  38. package/coverage/src/fileContents.ts.html +47 -23
  39. package/coverage/src/forceError.ts.html +184 -0
  40. package/coverage/src/index.html +96 -66
  41. package/coverage/src/index.ts.html +39 -33
  42. package/coverage/src/mustSatisfyPeerDependencies.ts.html +323 -80
  43. package/coverage/src/nestedWorkspaces.ts.html +47 -20
  44. package/coverage/src/oncePerPackage.ts.html +181 -0
  45. package/coverage/src/packageEntry.ts.html +40 -19
  46. package/coverage/src/packageOrder.ts.html +30 -12
  47. package/coverage/src/packageScript.ts.html +81 -27
  48. package/coverage/src/requireDependency.ts.html +77 -32
  49. package/coverage/src/standardTsconfig.ts.html +84 -21
  50. package/coverage/src/util/checkAlpha.ts.html +18 -9
  51. package/coverage/src/util/createRuleFactory.ts.html +16 -4
  52. package/coverage/src/util/index.html +17 -17
  53. package/coverage/src/util/makeDirectory.ts.html +5 -5
  54. package/coverage/src/util/packageDependencyGraphService.ts.html +94 -19
  55. package/package.json +4 -5
  56. package/src/__tests__/alphabeticalScripts.spec.ts +12 -4
  57. package/src/__tests__/bannedDependencies.spec.ts +45 -16
  58. package/src/__tests__/consistentDependencies.spec.ts +11 -5
  59. package/src/__tests__/consistentVersions.spec.ts +72 -18
  60. package/src/__tests__/fileContents.spec.ts +5 -5
  61. package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +191 -76
  62. package/src/__tests__/nestedWorkspaces.spec.ts +10 -7
  63. package/src/__tests__/packageEntry.spec.ts +48 -47
  64. package/src/__tests__/packageOrder.spec.ts +72 -71
  65. package/src/__tests__/packageScript.spec.ts +19 -10
  66. package/src/__tests__/requireDependency.spec.ts +12 -6
  67. package/src/__tests__/utils.ts +16 -7
  68. package/src/bannedDependencies.ts +32 -16
  69. package/src/consistentDependencies.ts +19 -8
  70. package/src/consistentVersions.ts +70 -38
  71. package/src/fileContents.ts +19 -11
  72. package/src/forceError.ts +33 -0
  73. package/src/index.ts +5 -3
  74. package/src/mustSatisfyPeerDependencies.ts +141 -60
  75. package/src/nestedWorkspaces.ts +19 -10
  76. package/src/oncePerPackage.ts +32 -0
  77. package/src/packageEntry.ts +18 -11
  78. package/src/packageOrder.ts +9 -3
  79. package/src/packageScript.ts +37 -19
  80. package/src/requireDependency.ts +26 -11
  81. package/src/standardTsconfig.ts +31 -10
  82. package/src/util/checkAlpha.ts +5 -2
  83. package/src/util/createRuleFactory.ts +6 -2
  84. package/src/util/packageDependencyGraphService.ts +38 -13
  85. package/vitest.config.mjs +6 -7
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.54% </span>
26
+ <span class="strong">94.62% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>1414/1480</span>
28
+ <span class='fraction'>1762/1862</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">87.8% </span>
33
+ <span class="strong">87.95% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>288/328</span>
35
+ <span class='fraction'>292/332</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95.54% </span>
47
+ <span class="strong">94.62% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>1414/1480</span>
49
+ <span class='fraction'>1762/1862</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,32 +80,32 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="src"><a href="src/index.html">src</a></td>
83
- <td data-value="95.83" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
83
+ <td data-value="94.84" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
85
85
  </td>
86
- <td data-value="95.83" class="pct high">95.83%</td>
87
- <td data-value="1346" class="abs high">1290/1346</td>
88
- <td data-value="88.59" class="pct high">88.59%</td>
89
- <td data-value="298" class="abs high">264/298</td>
86
+ <td data-value="94.84" class="pct high">94.84%</td>
87
+ <td data-value="1707" class="abs high">1619/1707</td>
88
+ <td data-value="88.74" class="pct high">88.74%</td>
89
+ <td data-value="302" class="abs high">268/302</td>
90
90
  <td data-value="91.66" class="pct high">91.66%</td>
91
91
  <td data-value="48" class="abs high">44/48</td>
92
- <td data-value="95.83" class="pct high">95.83%</td>
93
- <td data-value="1346" class="abs high">1290/1346</td>
92
+ <td data-value="94.84" class="pct high">94.84%</td>
93
+ <td data-value="1707" class="abs high">1619/1707</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
97
  <td class="file high" data-value="src/util"><a href="src/util/index.html">src/util</a></td>
98
- <td data-value="92.53" class="pic high">
98
+ <td data-value="92.25" class="pic high">
99
99
  <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
100
100
  </td>
101
- <td data-value="92.53" class="pct high">92.53%</td>
102
- <td data-value="134" class="abs high">124/134</td>
101
+ <td data-value="92.25" class="pct high">92.25%</td>
102
+ <td data-value="155" class="abs high">143/155</td>
103
103
  <td data-value="80" class="pct high">80%</td>
104
104
  <td data-value="30" class="abs high">24/30</td>
105
105
  <td data-value="100" class="pct high">100%</td>
106
106
  <td data-value="11" class="abs high">11/11</td>
107
- <td data-value="92.53" class="pct high">92.53%</td>
108
- <td data-value="134" class="abs high">124/134</td>
107
+ <td data-value="92.25" class="pct high">92.25%</td>
108
+ <td data-value="155" class="abs high">143/155</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2025-01-17T16:18:41.406Z
119
+ at 2025-01-31T21:00:08.068Z
120
120
  </div>
121
121
  <script src="prettify.js"></script>
122
122
  <script>
@@ -25,7 +25,7 @@
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'>10/10</span>
28
+ <span class='fraction'>18/18</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
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'>10/10</span>
49
+ <span class='fraction'>18/18</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,14 +84,14 @@
84
84
  <a name='L19'></a><a href='#L19'>19</a>
85
85
  <a name='L20'></a><a href='#L20'>20</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
86
86
  <span class="cline-any cline-neutral">&nbsp;</span>
87
- <span class="cline-any cline-neutral">&nbsp;</span>
88
- <span class="cline-any cline-neutral">&nbsp;</span>
89
- <span class="cline-any cline-neutral">&nbsp;</span>
90
- <span class="cline-any cline-neutral">&nbsp;</span>
91
- <span class="cline-any cline-neutral">&nbsp;</span>
92
- <span class="cline-any cline-neutral">&nbsp;</span>
93
- <span class="cline-any cline-neutral">&nbsp;</span>
94
- <span class="cline-any cline-neutral">&nbsp;</span>
87
+ <span class="cline-any cline-yes">1x</span>
88
+ <span class="cline-any cline-yes">1x</span>
89
+ <span class="cline-any cline-yes">1x</span>
90
+ <span class="cline-any cline-yes">1x</span>
91
+ <span class="cline-any cline-yes">1x</span>
92
+ <span class="cline-any cline-yes">1x</span>
93
+ <span class="cline-any cline-yes">1x</span>
94
+ <span class="cline-any cline-yes">1x</span>
95
95
  <span class="cline-any cline-yes">1x</span>
96
96
  <span class="cline-any cline-yes">1x</span>
97
97
  <span class="cline-any cline-yes">1x</span>
@@ -127,7 +127,7 @@ export const alphabeticalDependencies = createRuleFactory&lt;undefined&gt;({
127
127
  <div class='footer quiet pad2 space-top1 center small'>
128
128
  Code coverage generated by
129
129
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
130
- at 2025-01-17T16:18:41.406Z
130
+ at 2025-01-31T21:00:08.068Z
131
131
  </div>
132
132
  <script src="../prettify.js"></script>
133
133
  <script>
@@ -25,7 +25,7 @@
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'>8/8</span>
28
+ <span class='fraction'>10/10</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
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'>8/8</span>
49
+ <span class='fraction'>10/10</span>
50
50
  </div>
51
51
 
52
52
 
@@ -87,8 +87,8 @@
87
87
  <span class="cline-any cline-neutral">&nbsp;</span>
88
88
  <span class="cline-any cline-neutral">&nbsp;</span>
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
- <span class="cline-any cline-neutral">&nbsp;</span>
91
- <span class="cline-any cline-neutral">&nbsp;</span>
90
+ <span class="cline-any cline-yes">1x</span>
91
+ <span class="cline-any cline-yes">1x</span>
92
92
  <span class="cline-any cline-neutral">&nbsp;</span>
93
93
  <span class="cline-any cline-yes">1x</span>
94
94
  <span class="cline-any cline-yes">1x</span>
@@ -121,7 +121,7 @@ export const alphabeticalScripts = createRuleFactory&lt;undefined&gt;({
121
121
  <div class='footer quiet pad2 space-top1 center small'>
122
122
  Code coverage generated by
123
123
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
124
- at 2025-01-17T16:18:41.406Z
124
+ at 2025-01-31T21:00:08.068Z
125
125
  </div>
126
126
  <script src="../prettify.js"></script>
127
127
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">98.24% </span>
26
+ <span class="strong">97.03% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>112/114</span>
28
+ <span class='fraction'>131/135</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">98.24% </span>
47
+ <span class="strong">97.03% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>112/114</span>
49
+ <span class='fraction'>131/135</span>
50
50
  </div>
51
51
 
52
52
 
@@ -221,10 +221,23 @@
221
221
  <a name='L156'></a><a href='#L156'>156</a>
222
222
  <a name='L157'></a><a href='#L157'>157</a>
223
223
  <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-neutral">&nbsp;</span>
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>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
228
241
  <span class="cline-any cline-neutral">&nbsp;</span>
229
242
  <span class="cline-any cline-neutral">&nbsp;</span>
230
243
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -232,6 +245,12 @@
232
245
  <span class="cline-any cline-neutral">&nbsp;</span>
233
246
  <span class="cline-any cline-neutral">&nbsp;</span>
234
247
  <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-yes">1x</span>
249
+ <span class="cline-any cline-yes">1x</span>
250
+ <span class="cline-any cline-yes">1x</span>
251
+ <span class="cline-any cline-yes">1x</span>
252
+ <span class="cline-any cline-yes">1x</span>
253
+ <span class="cline-any cline-yes">1x</span>
235
254
  <span class="cline-any cline-neutral">&nbsp;</span>
236
255
  <span class="cline-any cline-neutral">&nbsp;</span>
237
256
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -250,12 +269,10 @@
250
269
  <span class="cline-any cline-yes">1x</span>
251
270
  <span class="cline-any cline-yes">1x</span>
252
271
  <span class="cline-any cline-yes">1x</span>
253
- <span class="cline-any cline-neutral">&nbsp;</span>
254
272
  <span class="cline-any cline-yes">1x</span>
255
273
  <span class="cline-any cline-yes">1x</span>
256
274
  <span class="cline-any cline-yes">1x</span>
257
275
  <span class="cline-any cline-yes">1x</span>
258
- <span class="cline-any cline-neutral">&nbsp;</span>
259
276
  <span class="cline-any cline-yes">1x</span>
260
277
  <span class="cline-any cline-yes">1x</span>
261
278
  <span class="cline-any cline-yes">1x</span>
@@ -283,8 +300,14 @@
283
300
  <span class="cline-any cline-yes">13x</span>
284
301
  <span class="cline-any cline-yes">13x</span>
285
302
  <span class="cline-any cline-yes">13x</span>
303
+ <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-yes">13x</span>
305
+ <span class="cline-any cline-no">&nbsp;</span>
286
306
  <span class="cline-any cline-neutral">&nbsp;</span>
287
307
  <span class="cline-any cline-yes">13x</span>
308
+ <span class="cline-any cline-yes">13x</span>
309
+ <span class="cline-any cline-yes">13x</span>
310
+ <span class="cline-any cline-yes">13x</span>
288
311
  <span class="cline-any cline-neutral">&nbsp;</span>
289
312
  <span class="cline-any cline-yes">13x</span>
290
313
  <span class="cline-any cline-yes">13x</span>
@@ -317,7 +340,6 @@
317
340
  <span class="cline-any cline-yes">8x</span>
318
341
  <span class="cline-any cline-yes">8x</span>
319
342
  <span class="cline-any cline-yes">8x</span>
320
- <span class="cline-any cline-yes">8x</span>
321
343
  <span class="cline-any cline-neutral">&nbsp;</span>
322
344
  <span class="cline-any cline-yes">13x</span>
323
345
  <span class="cline-any cline-yes">1x</span>
@@ -338,6 +360,10 @@
338
360
  <span class="cline-any cline-neutral">&nbsp;</span>
339
361
  <span class="cline-any cline-yes">3x</span>
340
362
  <span class="cline-any cline-yes">3x</span>
363
+ <span class="cline-any cline-yes">3x</span>
364
+ <span class="cline-any cline-yes">3x</span>
365
+ <span class="cline-any cline-yes">3x</span>
366
+ <span class="cline-any cline-yes">3x</span>
341
367
  <span class="cline-any cline-yes">6x</span>
342
368
  <span class="cline-any cline-yes">2x</span>
343
369
  <span class="cline-any cline-yes">2x</span>
@@ -361,11 +387,17 @@
361
387
  <span class="cline-any cline-yes">1x</span>
362
388
  <span class="cline-any cline-yes">1x</span>
363
389
  <span class="cline-any cline-yes">1x</span>
390
+ <span class="cline-any cline-yes">1x</span>
391
+ <span class="cline-any cline-yes">1x</span>
392
+ <span class="cline-any cline-yes">1x</span>
364
393
  <span class="cline-any cline-yes">5x</span>
365
394
  <span class="cline-any cline-yes">4x</span>
366
395
  <span class="cline-any cline-neutral">&nbsp;</span>
367
396
  <span class="cline-any cline-yes">2x</span>
368
397
  <span class="cline-any cline-yes">2x</span>
398
+ <span class="cline-any cline-yes">2x</span>
399
+ <span class="cline-any cline-yes">2x</span>
400
+ <span class="cline-any cline-yes">2x</span>
369
401
  <span class="cline-any cline-neutral">&nbsp;</span>
370
402
  <span class="cline-any cline-yes">2x</span>
371
403
  <span class="cline-any cline-yes">2x</span>
@@ -392,7 +424,10 @@ import { AggregateTiming } from "@monorepolint/utils";
392
424
  import * as path from "node:path";
393
425
  import * as r from "runtypes";
394
426
  import { createRuleFactory } from "./util/createRuleFactory.js";
395
- import { IPackageDependencyGraphNode, PackageDependencyGraphService } from "./util/packageDependencyGraphService.js";
427
+ import {
428
+ IPackageDependencyGraphNode,
429
+ PackageDependencyGraphService,
430
+ } from "./util/packageDependencyGraphService.js";
396
431
  // FIXME: This rule is messed. bannedTransitiveDependencies doesnt glob
397
432
  &nbsp;
398
433
  const bannedDepGlobsField = r.Union(
@@ -400,7 +435,7 @@ const bannedDepGlobsField = r.Union(
400
435
  r.Record({
401
436
  glob: r.Array(r.String).optional(),
402
437
  exact: r.Array(r.String).optional(),
403
- })
438
+ }),
404
439
  );
405
440
  &nbsp;
406
441
  const Options = r.Union(
@@ -408,16 +443,14 @@ const Options = r.Union(
408
443
  bannedDependencies: bannedDepGlobsField,
409
444
  bannedTransitiveDependencies: r.Undefined.optional(),
410
445
  }),
411
- &nbsp;
412
446
  r.Record({
413
447
  bannedDependencies: bannedDepGlobsField.optional(),
414
448
  bannedTransitiveDependencies: r.Array(r.String),
415
449
  }),
416
- &nbsp;
417
450
  r.Record({
418
451
  bannedDependencies: bannedDepGlobsField.optional(),
419
452
  bannedTransitiveDependencies: r.Array(r.String).optional(),
420
- })
453
+ }),
421
454
  );
422
455
  &nbsp;
423
456
  export type Options = r.Static&lt;typeof Options&gt;;
@@ -438,11 +471,17 @@ export const bannedDependencies = createRuleFactory&lt;Options&gt;({
438
471
  const packageJson = context.getPackageJson();
439
472
  const packagePath = context.getPackageJsonPath();
440
473
  &nbsp;
441
- const curDeps = packageJson.dependencies &amp;&amp; Object.keys(packageJson.dependencies);
442
- const curDevDeps = packageJson.<span class="branch-0 cbranch-no" title="branch not covered" >devDependencies &amp;&amp; Object.keys(packageJson.devDependencies);</span>
443
- const curPeerDeps = packageJson.<span class="branch-0 cbranch-no" title="branch not covered" >peerDependencies &amp;&amp; Object.keys(packageJson.peerDependencies);</span>
474
+ const curDeps = packageJson.dependencies
475
+ &amp;&amp; Object.keys(packageJson.dependencies);
476
+ const curDevDeps = packageJson.<span class="branch-0 cbranch-no" title="branch not covered" >devDependencies</span>
477
+ <span class="cstat-no" title="statement not covered" > &amp;&amp; Object.keys(packageJson.devDependencies);</span>
478
+ const curPeerDeps = packageJson.<span class="branch-0 cbranch-no" title="branch not covered" >peerDependencies</span>
479
+ <span class="cstat-no" title="statement not covered" > &amp;&amp; Object.keys(packageJson.peerDependencies);</span>
444
480
  &nbsp;
445
- const { bannedDependencies: banned, bannedTransitiveDependencies: transitives } = opts;
481
+ const {
482
+ bannedDependencies: banned,
483
+ bannedTransitiveDependencies: transitives,
484
+ } = opts;
446
485
  &nbsp;
447
486
  const globs = banned &amp;&amp; (Array.isArray(banned) ? banned : banned.glob);
448
487
  const exacts = banned &amp;&amp; (Array.isArray(banned) ? undefined : banned.exact);
@@ -469,9 +508,8 @@ export const bannedDependencies = createRuleFactory&lt;Options&gt;({
469
508
  if (violations.size &gt; 0) {
470
509
  context.addError({
471
510
  file: packagePath,
472
- message:
473
- `Found ${violations.size} banned dependencies of package.json:\n\t` +
474
- Array.from(violations)
511
+ message: `Found ${violations.size} banned dependencies of package.json:\n\t`
512
+ + Array.from(violations)
475
513
  .map((v) =&gt; `'${v}'`)
476
514
  .join(", "),
477
515
  });
@@ -494,7 +532,11 @@ export const bannedDependencies = createRuleFactory&lt;Options&gt;({
494
532
  <span class="cstat-no" title="statement not covered" > },</span>
495
533
  });
496
534
  &nbsp;
497
- function populateProblemsExact(banned: Set&lt;string&gt;, dependencies: ReadonlyArray&lt;string&gt;, violations: Set&lt;string&gt;) {
535
+ function populateProblemsExact(
536
+ banned: Set&lt;string&gt;,
537
+ dependencies: ReadonlyArray&lt;string&gt;,
538
+ violations: Set&lt;string&gt;,
539
+ ) {
498
540
  for (const dependency of dependencies) {
499
541
  if (banned.has(dependency)) {
500
542
  violations.add(dependency);
@@ -505,7 +547,7 @@ function populateProblemsExact(banned: Set&lt;string&gt;, dependencies: Readonly
505
547
  function populateProblemsGlobs(
506
548
  bannedDependencyGlobs: ReadonlyArray&lt;string&gt;,
507
549
  dependencies: ReadonlyArray&lt;string&gt;,
508
- violations: Set&lt;string&gt;
550
+ violations: Set&lt;string&gt;,
509
551
  ) {
510
552
  for (const dependency of dependencies) {
511
553
  if (matchesAnyGlob(dependency, bannedDependencyGlobs)) {
@@ -517,13 +559,19 @@ function populateProblemsGlobs(
517
559
  // This function is slow. God help you if you use this on a big repo
518
560
  function checkTransitives(context: Context, banned: Set&lt;string&gt;) {
519
561
  const graphService = new PackageDependencyGraphService();
520
- const root = graphService.buildDependencyGraph(path.resolve(context.getPackageJsonPath()), context.host);
562
+ const root = graphService.buildDependencyGraph(
563
+ path.resolve(context.getPackageJsonPath()),
564
+ context.host,
565
+ );
521
566
  for (const { dependencies, importPath } of graphService.traverse(root)) {
522
567
  for (const [dependency] of dependencies) {
523
568
  if (banned.has(dependency)) {
524
569
  // Remove the starting package since it's obvious in CLI output.
525
570
  const [, ...importPathWithoutRoot] = importPath;
526
- const pathing = [...importPathWithoutRoot.map(nameOrPackageJsonPath), dependency].join(" -&gt; ");
571
+ const pathing = [
572
+ ...importPathWithoutRoot.map(nameOrPackageJsonPath),
573
+ dependency,
574
+ ].join(" -&gt; ");
527
575
  &nbsp;
528
576
  context.addError({
529
577
  file: root.paths.packageJsonPath,
@@ -544,7 +592,7 @@ function nameOrPackageJsonPath(node: IPackageDependencyGraphNode): string {
544
592
  <div class='footer quiet pad2 space-top1 center small'>
545
593
  Code coverage generated by
546
594
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
547
- at 2025-01-17T16:18:41.406Z
595
+ at 2025-01-31T21:00:08.068Z
548
596
  </div>
549
597
  <script src="../prettify.js"></script>
550
598
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">96.82% </span>
26
+ <span class="strong">97.4% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>61/63</span>
28
+ <span class='fraction'>75/77</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">96.82% </span>
47
+ <span class="strong">97.4% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>61/63</span>
49
+ <span class='fraction'>75/77</span>
50
50
  </div>
51
51
 
52
52
 
@@ -153,10 +153,18 @@
153
153
  <a name='L88'></a><a href='#L88'>88</a>
154
154
  <a name='L89'></a><a href='#L89'>89</a>
155
155
  <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
157
- <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
160
168
  <span class="cline-any cline-neutral">&nbsp;</span>
161
169
  <span class="cline-any cline-neutral">&nbsp;</span>
162
170
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -169,6 +177,9 @@
169
177
  <span class="cline-any cline-yes">1x</span>
170
178
  <span class="cline-any cline-yes">1x</span>
171
179
  <span class="cline-any cline-yes">1x</span>
180
+ <span class="cline-any cline-yes">1x</span>
181
+ <span class="cline-any cline-yes">1x</span>
182
+ <span class="cline-any cline-yes">1x</span>
172
183
  <span class="cline-any cline-neutral">&nbsp;</span>
173
184
  <span class="cline-any cline-neutral">&nbsp;</span>
174
185
  <span class="cline-any cline-yes">1x</span>
@@ -187,12 +198,15 @@
187
198
  <span class="cline-any cline-yes">14x</span>
188
199
  <span class="cline-any cline-yes">14x</span>
189
200
  <span class="cline-any cline-yes">14x</span>
190
- <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-yes">14x</span>
202
+ <span class="cline-any cline-yes">14x</span>
191
203
  <span class="cline-any cline-yes">14x</span>
192
204
  <span class="cline-any cline-yes">14x</span>
193
205
  <span class="cline-any cline-neutral">&nbsp;</span>
194
206
  <span class="cline-any cline-yes">14x</span>
195
207
  <span class="cline-any cline-yes">14x</span>
208
+ <span class="cline-any cline-neutral">&nbsp;</span>
209
+ <span class="cline-any cline-yes">14x</span>
196
210
  <span class="cline-any cline-yes">14x</span>
197
211
  <span class="cline-any cline-yes">13x</span>
198
212
  <span class="cline-any cline-yes">1x</span>
@@ -221,11 +235,16 @@
221
235
  <span class="cline-any cline-yes">14x</span>
222
236
  <span class="cline-any cline-neutral">&nbsp;</span>
223
237
  <span class="cline-any cline-yes">7x</span>
238
+ <span class="cline-any cline-yes">7x</span>
239
+ <span class="cline-any cline-yes">7x</span>
240
+ <span class="cline-any cline-yes">7x</span>
224
241
  <span class="cline-any cline-neutral">&nbsp;</span>
225
242
  <span class="cline-any cline-yes">7x</span>
226
243
  <span class="cline-any cline-neutral">&nbsp;</span>
227
244
  <span class="cline-any cline-yes">7x</span>
228
245
  <span class="cline-any cline-yes">7x</span>
246
+ <span class="cline-any cline-yes">7x</span>
247
+ <span class="cline-any cline-yes">7x</span>
229
248
  <span class="cline-any cline-yes">4x</span>
230
249
  <span class="cline-any cline-yes">4x</span>
231
250
  <span class="cline-any cline-yes">7x</span>
@@ -235,6 +254,9 @@
235
254
  <span class="cline-any cline-neutral">&nbsp;</span>
236
255
  <span class="cline-any cline-yes">1x</span>
237
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>
238
260
  <span class="cline-any cline-neutral">&nbsp;</span>
239
261
  <span class="cline-any cline-yes">1x</span>
240
262
  <span class="cline-any cline-yes">1x</span>
@@ -273,7 +295,11 @@ export const consistentDependencies = createRuleFactory&lt;Options&gt;({
273
295
  validateOptions: Options.check,
274
296
  });
275
297
  &nbsp;
276
- function checkDeps(context: Context, args: Options, block: "dependencies" | "devDependencies" | "peerDependencies") {
298
+ function checkDeps(
299
+ context: Context,
300
+ args: Options,
301
+ block: "dependencies" | "devDependencies" | "peerDependencies",
302
+ ) {
277
303
  const packageJson = context.getPackageJson();
278
304
  const packagePath = context.getPackageJsonPath();
279
305
  const dependencies = packageJson[block];
@@ -282,10 +308,9 @@ function checkDeps(context: Context, args: Options, block: "dependencies" | "dev
282
308
  const workspaceDependencies = workspacePackageJson[block];
283
309
  &nbsp;
284
310
  const ignoredDeps = args?.ignoredDependencies ?? [];
285
- const depsToCheck =
286
- workspaceDependencies == null || ignoredDeps.length === 0
287
- ? workspaceDependencies
288
- : omit(workspaceDependencies, ignoredDeps);
311
+ const depsToCheck = workspaceDependencies == null || ignoredDeps.length === 0
312
+ ? workspaceDependencies
313
+ : omit(workspaceDependencies, ignoredDeps);
289
314
  &nbsp;
290
315
  if (dependencies === undefined || depsToCheck === undefined) {
291
316
  return;
@@ -310,12 +335,17 @@ function checkDeps(context: Context, args: Options, block: "dependencies" | "dev
310
335
  }
311
336
  }
312
337
  &nbsp;
313
- function filterKeys(ob: Record&lt;string, string&gt;, filterOb: Record&lt;string, string&gt;) {
338
+ function filterKeys(
339
+ ob: Record&lt;string, string&gt;,
340
+ filterOb: Record&lt;string, string&gt;,
341
+ ) {
314
342
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
315
343
  const newOb: Record&lt;string, any&gt; = {};
316
344
  &nbsp;
317
345
  for (const key of Object.keys(filterOb)) {
318
- if (ob[key] !== undefined &amp;&amp; skippedVersions.indexOf(filterOb[key]) === -1) {
346
+ if (
347
+ ob[key] !== undefined &amp;&amp; skippedVersions.indexOf(filterOb[key]) === -1
348
+ ) {
319
349
  newOb[key] = ob[key];
320
350
  }
321
351
  }
@@ -323,7 +353,10 @@ function filterKeys(ob: Record&lt;string, string&gt;, filterOb: Record&lt;string
323
353
  return newOb;
324
354
  }
325
355
  &nbsp;
326
- function omit&lt;T&gt;(obj: Record&lt;string, T&gt;, keysToOmit: readonly string[]): Record&lt;string, T&gt; {
356
+ function omit&lt;T&gt;(
357
+ obj: Record&lt;string, T&gt;,
358
+ keysToOmit: readonly string[],
359
+ ): Record&lt;string, T&gt; {
327
360
  const newObj: Record&lt;string, T&gt; = {};
328
361
  &nbsp;
329
362
  const filtered = Object.entries(obj).filter(([key]) =&gt; !keysToOmit.includes(key));
@@ -340,7 +373,7 @@ function omit&lt;T&gt;(obj: Record&lt;string, T&gt;, keysToOmit: readonly string
340
373
  <div class='footer quiet pad2 space-top1 center small'>
341
374
  Code coverage generated by
342
375
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
343
- at 2025-01-17T16:18:41.406Z
376
+ at 2025-01-31T21:00:08.068Z
344
377
  </div>
345
378
  <script src="../prettify.js"></script>
346
379
  <script>