@monorepolint/rules 0.6.0-alpha.3 → 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 (62) 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 +73 -74
  5. package/.turbo/turbo-transpile-typescript.log +4 -4
  6. package/CHANGELOG.md +10 -0
  7. package/build/js/index.js +104 -69
  8. package/build/js/index.js.map +1 -1
  9. package/build/tsconfig.tsbuildinfo +1 -1
  10. package/build/types/bannedDependencies.d.ts.map +1 -1
  11. package/build/types/forceError.d.ts +4 -0
  12. package/build/types/forceError.d.ts.map +1 -0
  13. package/build/types/index.d.ts +2 -0
  14. package/build/types/index.d.ts.map +1 -1
  15. package/build/types/mustSatisfyPeerDependencies.d.ts.map +1 -1
  16. package/build/types/nestedWorkspaces.d.ts.map +1 -1
  17. package/build/types/oncePerPackage.d.ts +11 -0
  18. package/build/types/oncePerPackage.d.ts.map +1 -0
  19. package/build/types/requireDependency.d.ts.map +1 -1
  20. package/build/types/util/packageDependencyGraphService.d.ts.map +1 -1
  21. package/coverage/clover.xml +516 -469
  22. package/coverage/coverage-final.json +12 -10
  23. package/coverage/index.html +15 -15
  24. package/coverage/src/alphabeticalDependencies.ts.html +6 -6
  25. package/coverage/src/alphabeticalScripts.ts.html +1 -1
  26. package/coverage/src/bannedDependencies.ts.html +7 -10
  27. package/coverage/src/consistentDependencies.ts.html +7 -13
  28. package/coverage/src/consistentVersions.ts.html +31 -46
  29. package/coverage/src/fileContents.ts.html +1 -1
  30. package/coverage/src/forceError.ts.html +184 -0
  31. package/coverage/src/index.html +73 -43
  32. package/coverage/src/index.ts.html +10 -4
  33. package/coverage/src/mustSatisfyPeerDependencies.ts.html +16 -61
  34. package/coverage/src/nestedWorkspaces.ts.html +10 -22
  35. package/coverage/src/oncePerPackage.ts.html +181 -0
  36. package/coverage/src/packageEntry.ts.html +1 -1
  37. package/coverage/src/packageOrder.ts.html +1 -1
  38. package/coverage/src/packageScript.ts.html +1 -1
  39. package/coverage/src/requireDependency.ts.html +7 -13
  40. package/coverage/src/standardTsconfig.ts.html +6 -6
  41. package/coverage/src/util/checkAlpha.ts.html +1 -1
  42. package/coverage/src/util/createRuleFactory.ts.html +1 -1
  43. package/coverage/src/util/index.html +10 -10
  44. package/coverage/src/util/makeDirectory.ts.html +1 -1
  45. package/coverage/src/util/packageDependencyGraphService.ts.html +7 -13
  46. package/package.json +4 -4
  47. package/src/__tests__/fileContents.spec.ts +1 -5
  48. package/src/__tests__/nestedWorkspaces.spec.ts +1 -2
  49. package/src/__tests__/packageEntry.spec.ts +1 -6
  50. package/src/__tests__/packageOrder.spec.ts +1 -6
  51. package/src/__tests__/packageScript.spec.ts +1 -6
  52. package/src/bannedDependencies.ts +1 -2
  53. package/src/consistentDependencies.ts +1 -3
  54. package/src/consistentVersions.ts +24 -29
  55. package/src/forceError.ts +33 -0
  56. package/src/index.ts +2 -0
  57. package/src/mustSatisfyPeerDependencies.ts +10 -25
  58. package/src/nestedWorkspaces.ts +4 -8
  59. package/src/oncePerPackage.ts +32 -0
  60. package/src/requireDependency.ts +1 -3
  61. package/src/util/packageDependencyGraphService.ts +1 -3
  62. package/vitest.config.mjs +1 -5
@@ -0,0 +1,181 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/oncePerPackage.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> oncePerPackage.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>31/31</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/0</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>31/31</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
99
+ <span class="cline-any cline-neutral">&nbsp;</span>
100
+ <span class="cline-any cline-yes">1x</span>
101
+ <span class="cline-any cline-yes">1x</span>
102
+ <span class="cline-any cline-yes">1x</span>
103
+ <span class="cline-any cline-yes">1x</span>
104
+ <span class="cline-any cline-yes">1x</span>
105
+ <span class="cline-any cline-yes">1x</span>
106
+ <span class="cline-any cline-yes">1x</span>
107
+ <span class="cline-any cline-yes">1x</span>
108
+ <span class="cline-any cline-yes">1x</span>
109
+ <span class="cline-any cline-yes">1x</span>
110
+ <span class="cline-any cline-yes">1x</span>
111
+ <span class="cline-any cline-yes">1x</span>
112
+ <span class="cline-any cline-yes">1x</span>
113
+ <span class="cline-any cline-yes">1x</span>
114
+ <span class="cline-any cline-yes">1x</span>
115
+ <span class="cline-any cline-yes">1x</span>
116
+ <span class="cline-any cline-yes">1x</span>
117
+ <span class="cline-any cline-yes">1x</span>
118
+ <span class="cline-any cline-yes">1x</span>
119
+ <span class="cline-any cline-yes">1x</span>
120
+ <span class="cline-any cline-yes">1x</span>
121
+ <span class="cline-any cline-yes">1x</span>
122
+ <span class="cline-any cline-yes">1x</span>
123
+ <span class="cline-any cline-yes">1x</span>
124
+ <span class="cline-any cline-yes">1x</span>
125
+ <span class="cline-any cline-yes">1x</span>
126
+ <span class="cline-any cline-yes">1x</span>
127
+ <span class="cline-any cline-yes">1x</span>
128
+ <span class="cline-any cline-yes">1x</span>
129
+ <span class="cline-any cline-yes">1x</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import * as r from "runtypes";
131
+ import { createRuleFactory } from "./util/createRuleFactory.js";
132
+ &nbsp;
133
+ export const Options = r.Record({
134
+ singletonKey: r.String.Or(r.Symbol),
135
+ customMessage: r.String.optional(),
136
+ });
137
+ &nbsp;
138
+ export type Options = r.Static&lt;typeof Options&gt;;
139
+ &nbsp;
140
+ const visitedMap = new Map&lt;string | symbol, Set&lt;string&gt;&gt;();
141
+ &nbsp;
142
+ export const oncePerPackage = createRuleFactory&lt;Options&gt;({
143
+ name: "oncePerPackage",
144
+ &nbsp;
145
+ check: async (context, options) =&gt; {
146
+ const visited = visitedMap.get(options.singletonKey) ?? new Set&lt;string&gt;();
147
+ visitedMap.set(options.singletonKey, visited);
148
+ &nbsp;
149
+ if (visited.has(context.getName())) {
150
+ context.addError({
151
+ message: "This package has already been visited for this key: "
152
+ + options.singletonKey.toString(),
153
+ file: context.getPackageJsonPath(),
154
+ });
155
+ } else {
156
+ visited.add(context.getName());
157
+ }
158
+ },
159
+ &nbsp;
160
+ validateOptions: Options.assert,
161
+ });
162
+ &nbsp;</pre></td></tr></table></pre>
163
+
164
+ <div class='push'></div><!-- for sticky footer -->
165
+ </div><!-- /wrapper -->
166
+ <div class='footer quiet pad2 space-top1 center small'>
167
+ Code coverage generated by
168
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
169
+ at 2025-01-31T21:00:08.068Z
170
+ </div>
171
+ <script src="../prettify.js"></script>
172
+ <script>
173
+ window.onload = function () {
174
+ prettyPrint();
175
+ };
176
+ </script>
177
+ <script src="../sorter.js"></script>
178
+ <script src="../block-navigation.js"></script>
179
+ </body>
180
+ </html>
181
+
@@ -361,7 +361,7 @@ export function createExpectedEntryErrorMessage(key: string) {
361
361
  <div class='footer quiet pad2 space-top1 center small'>
362
362
  Code coverage generated by
363
363
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
364
- at 2025-01-22T17:39:11.886Z
364
+ at 2025-01-31T21:00:08.068Z
365
365
  </div>
366
366
  <script src="../prettify.js"></script>
367
367
  <script>
@@ -457,7 +457,7 @@ function isOrderFunction(
457
457
  <div class='footer quiet pad2 space-top1 center small'>
458
458
  Code coverage generated by
459
459
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
460
- at 2025-01-22T17:39:11.886Z
460
+ at 2025-01-31T21:00:08.068Z
461
461
  </div>
462
462
  <script src="../prettify.js"></script>
463
463
  <script>
@@ -421,7 +421,7 @@ export const packageScript = createRuleFactory&lt;Options&gt;({
421
421
  <div class='footer quiet pad2 space-top1 center small'>
422
422
  Code coverage generated by
423
423
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
424
- at 2025-01-22T17:39:11.886Z
424
+ at 2025-01-31T21:00:08.068Z
425
425
  </div>
426
426
  <script src="../prettify.js"></script>
427
427
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">87.83% </span>
26
+ <span class="strong">90.27% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>65/74</span>
28
+ <span class='fraction'>65/72</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">87.83% </span>
47
+ <span class="strong">90.27% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>65/74</span>
49
+ <span class='fraction'>65/72</span>
50
50
  </div>
51
51
 
52
52
 
@@ -149,9 +149,7 @@
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>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
152
+ <a name='L87'></a><a href='#L87'>87</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
155
153
  <span class="cline-any cline-neutral">&nbsp;</span>
156
154
  <span class="cline-any cline-neutral">&nbsp;</span>
157
155
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -202,8 +200,6 @@
202
200
  <span class="cline-any cline-no">&nbsp;</span>
203
201
  <span class="cline-any cline-no">&nbsp;</span>
204
202
  <span class="cline-any cline-no">&nbsp;</span>
205
- <span class="cline-any cline-no">&nbsp;</span>
206
- <span class="cline-any cline-no">&nbsp;</span>
207
203
  <span class="cline-any cline-yes">3x</span>
208
204
  <span class="cline-any cline-yes">3x</span>
209
205
  <span class="cline-any cline-yes">3x</span>
@@ -285,9 +281,7 @@ export const requireDependency = createRuleFactory({
285
281
  fixer: <span class="fstat-no" title="function not covered" >() =&gt; {</span>
286
282
  <span class="cstat-no" title="statement not covered" > mutateJson&lt;PackageJson&gt;(packageJsonPath, context.host, (input) =&gt; {</span>
287
283
  <span class="cstat-no" title="statement not covered" > input[type] = Object.fromEntries(</span>
288
- <span class="cstat-no" title="statement not covered" > Object.entries(expectedEntries).filter(([, v]) =&gt;</span>
289
- <span class="cstat-no" title="statement not covered" > v !== undefined</span>
290
- <span class="cstat-no" title="statement not covered" > ),</span>
284
+ <span class="cstat-no" title="statement not covered" > Object.entries(expectedEntries).filter(([, v]) =&gt; v !== undefined),</span>
291
285
  <span class="cstat-no" title="statement not covered" > ) as Record&lt;string, string&gt;;</span>
292
286
  <span class="cstat-no" title="statement not covered" > return input;</span>
293
287
  <span class="cstat-no" title="statement not covered" > });</span>
@@ -334,7 +328,7 @@ export const requireDependency = createRuleFactory({
334
328
  <div class='footer quiet pad2 space-top1 center small'>
335
329
  Code coverage generated by
336
330
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
337
- at 2025-01-22T17:39:11.886Z
331
+ at 2025-01-31T21:00:08.068Z
338
332
  </div>
339
333
  <script src="../prettify.js"></script>
340
334
  <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'>152/152</span>
28
+ <span class='fraction'>155/155</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'>152/152</span>
49
+ <span class='fraction'>155/155</span>
50
50
  </div>
51
51
 
52
52
 
@@ -221,9 +221,9 @@
221
221
  <a name='L156'></a><a href='#L156'>156</a>
222
222
  <a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
223
223
  <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-yes">1x</span>
225
+ <span class="cline-any cline-yes">1x</span>
226
+ <span class="cline-any cline-yes">1x</span>
227
227
  <span class="cline-any cline-yes">1x</span>
228
228
  <span class="cline-any cline-yes">1x</span>
229
229
  <span class="cline-any cline-yes">1x</span>
@@ -538,7 +538,7 @@ function makeGenerator(
538
538
  <div class='footer quiet pad2 space-top1 center small'>
539
539
  Code coverage generated by
540
540
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
541
- at 2025-01-22T17:39:11.886Z
541
+ at 2025-01-31T21:00:08.068Z
542
542
  </div>
543
543
  <script src="../prettify.js"></script>
544
544
  <script>
@@ -256,7 +256,7 @@ export function createIncorrectOrderErrorMessage(
256
256
  <div class='footer quiet pad2 space-top1 center small'>
257
257
  Code coverage generated by
258
258
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
259
- at 2025-01-22T17:39:11.886Z
259
+ at 2025-01-31T21:00:08.068Z
260
260
  </div>
261
261
  <script src="../../prettify.js"></script>
262
262
  <script>
@@ -181,7 +181,7 @@ export function createRuleFactory&lt;X&gt;({
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
184
- at 2025-01-22T17:39:11.886Z
184
+ at 2025-01-31T21:00:08.068Z
185
185
  </div>
186
186
  <script src="../../prettify.js"></script>
187
187
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">92.3% </span>
26
+ <span class="strong">92.25% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>144/156</span>
28
+ <span class='fraction'>143/155</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">92.3% </span>
47
+ <span class="strong">92.25% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>144/156</span>
49
+ <span class='fraction'>143/155</span>
50
50
  </div>
51
51
 
52
52
 
@@ -125,17 +125,17 @@
125
125
 
126
126
  <tr>
127
127
  <td class="file high" data-value="packageDependencyGraphService.ts"><a href="packageDependencyGraphService.ts.html">packageDependencyGraphService.ts</a></td>
128
- <td data-value="87.17" class="pic high">
128
+ <td data-value="87.01" class="pic high">
129
129
  <div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
130
130
  </td>
131
- <td data-value="87.17" class="pct high">87.17%</td>
132
- <td data-value="78" class="abs high">68/78</td>
131
+ <td data-value="87.01" class="pct high">87.01%</td>
132
+ <td data-value="77" class="abs high">67/77</td>
133
133
  <td data-value="61.53" class="pct medium">61.53%</td>
134
134
  <td data-value="13" class="abs medium">8/13</td>
135
135
  <td data-value="100" class="pct high">100%</td>
136
136
  <td data-value="4" class="abs high">4/4</td>
137
- <td data-value="87.17" class="pct high">87.17%</td>
138
- <td data-value="78" class="abs high">68/78</td>
137
+ <td data-value="87.01" class="pct high">87.01%</td>
138
+ <td data-value="77" class="abs high">67/77</td>
139
139
  </tr>
140
140
 
141
141
  </tbody>
@@ -146,7 +146,7 @@
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage generated by
148
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at 2025-01-22T17:39:11.886Z
149
+ at 2025-01-31T21:00:08.068Z
150
150
  </div>
151
151
  <script src="../../prettify.js"></script>
152
152
  <script>
@@ -142,7 +142,7 @@ export function makeDirectoryRecursively(directoryPath: string) {
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at 2025-01-22T17:39:11.886Z
145
+ at 2025-01-31T21:00:08.068Z
146
146
  </div>
147
147
  <script src="../../prettify.js"></script>
148
148
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">87.17% </span>
26
+ <span class="strong">87.01% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>68/78</span>
28
+ <span class='fraction'>67/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">87.17% </span>
47
+ <span class="strong">87.01% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>68/78</span>
49
+ <span class='fraction'>67/77</span>
50
50
  </div>
51
51
 
52
52
 
@@ -202,9 +202,7 @@
202
202
  <a name='L137'></a><a href='#L137'>137</a>
203
203
  <a name='L138'></a><a href='#L138'>138</a>
204
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
205
+ <a name='L140'></a><a href='#L140'>140</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
208
206
  <span class="cline-any cline-neutral">&nbsp;</span>
209
207
  <span class="cline-any cline-neutral">&nbsp;</span>
210
208
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -247,8 +245,6 @@
247
245
  <span class="cline-any cline-yes">1x</span>
248
246
  <span class="cline-any cline-neutral">&nbsp;</span>
249
247
  <span class="cline-any cline-yes">1x</span>
250
- <span class="cline-any cline-neutral">&nbsp;</span>
251
- <span class="cline-any cline-yes">1x</span>
252
248
  <span class="cline-any cline-yes">1x</span>
253
249
  <span class="cline-any cline-yes">1x</span>
254
250
  <span class="cline-any cline-yes">1x</span>
@@ -385,9 +381,7 @@ export interface IPackageDependencyGraphService {
385
381
  }
386
382
  &nbsp;
387
383
  /** Default implementation of the package dependency graph service. */
388
- export class PackageDependencyGraphService
389
- implements IPackageDependencyGraphService
390
- {
384
+ export class PackageDependencyGraphService implements IPackageDependencyGraphService {
391
385
  /** Construct a graph of package dependencies and return the root node. */
392
386
  public buildDependencyGraph(
393
387
  startPackageJsonPath: string,
@@ -493,7 +487,7 @@ export class PackageDependencyGraphService
493
487
  <div class='footer quiet pad2 space-top1 center small'>
494
488
  Code coverage generated by
495
489
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
496
- at 2025-01-22T17:39:11.886Z
490
+ at 2025-01-31T21:00:08.068Z
497
491
  </div>
498
492
  <script src="../../prettify.js"></script>
499
493
  <script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monorepolint/rules",
3
- "version": "0.6.0-alpha.3",
3
+ "version": "0.6.0-alpha.4",
4
4
  "author": "Eric L Anderson (https://github.com/ericanderson)",
5
5
  "contributors": [
6
6
  "Mac Lockard (https://github.com/maclockard)"
@@ -28,9 +28,9 @@
28
28
  "runtypes": "^6.7.0",
29
29
  "semver": "^7.6.3",
30
30
  "tslib": "^2.8.1",
31
- "@monorepolint/core": "^0.6.0-alpha.3",
32
- "@monorepolint/utils": "^0.6.0-alpha.3",
33
- "@monorepolint/config": "^0.6.0-alpha.3"
31
+ "@monorepolint/config": "^0.6.0-alpha.4",
32
+ "@monorepolint/core": "^0.6.0-alpha.4",
33
+ "@monorepolint/utils": "^0.6.0-alpha.4"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/semver": "^7.5.8",
@@ -9,11 +9,7 @@
9
9
  import { AddErrorOptions, Failure } from "@monorepolint/config";
10
10
  import { beforeEach, describe, expect, it, MockInstance, vi } from "vitest";
11
11
  import { fileContents } from "../fileContents.js";
12
- import {
13
- createTestingWorkspace,
14
- HOST_FACTORIES,
15
- TestingWorkspace,
16
- } from "./utils.js";
12
+ import { createTestingWorkspace, HOST_FACTORIES, TestingWorkspace } from "./utils.js";
17
13
 
18
14
  const EXPECTED_FOO_FILE = "hello world";
19
15
 
@@ -139,8 +139,7 @@ describe("nestedWorkspaces", () => {
139
139
  expect(spy).toHaveBeenCalledTimes(1);
140
140
  expect(spy).toHaveBeenCalledWith({
141
141
  file: packageJsonPath,
142
- message:
143
- "The \"workspace\" field is missing one or more values: packages/deep/star. "
142
+ message: "The \"workspace\" field is missing one or more values: packages/deep/star. "
144
143
  + "You may be able to use a glob to avoid listing each workspace individually, e.g. \"packages/nested-workspace/*\".",
145
144
  });
146
145
  });
@@ -14,12 +14,7 @@ import {
14
14
  createStandardizedEntryErrorMessage,
15
15
  packageEntry,
16
16
  } from "../packageEntry.js";
17
- import {
18
- AddErrorSpy,
19
- createTestingWorkspace,
20
- HOST_FACTORIES,
21
- TestingWorkspace,
22
- } from "./utils.js";
17
+ import { AddErrorSpy, createTestingWorkspace, HOST_FACTORIES, TestingWorkspace } from "./utils.js";
23
18
 
24
19
  const PACKAGE_MISSING_ENTRY = JSON.stringify(
25
20
  {
@@ -9,12 +9,7 @@
9
9
  import { Context, Failure } from "@monorepolint/config";
10
10
  import { beforeEach, describe, expect, it, vi } from "vitest";
11
11
  import { packageOrder } from "../packageOrder.js";
12
- import {
13
- AddErrorSpy,
14
- createTestingWorkspace,
15
- HOST_FACTORIES,
16
- TestingWorkspace,
17
- } from "./utils.js";
12
+ import { AddErrorSpy, createTestingWorkspace, HOST_FACTORIES, TestingWorkspace } from "./utils.js";
18
13
 
19
14
  const PACKAGE_UNORDERED = JSON.stringify(
20
15
  {
@@ -9,12 +9,7 @@
9
9
  import { Context, Failure } from "@monorepolint/config";
10
10
  import { beforeEach, describe, expect, it, vi } from "vitest";
11
11
  import { packageScript } from "../packageScript.js";
12
- import {
13
- AddErrorSpy,
14
- createTestingWorkspace,
15
- HOST_FACTORIES,
16
- TestingWorkspace,
17
- } from "./utils.js";
12
+ import { AddErrorSpy, createTestingWorkspace, HOST_FACTORIES, TestingWorkspace } from "./utils.js";
18
13
 
19
14
  const json = (a: unknown) => JSON.stringify(a, undefined, 2) + "\n";
20
15
 
@@ -95,8 +95,7 @@ export const bannedDependencies = createRuleFactory<Options>({
95
95
  if (violations.size > 0) {
96
96
  context.addError({
97
97
  file: packagePath,
98
- message:
99
- `Found ${violations.size} banned dependencies of package.json:\n\t`
98
+ message: `Found ${violations.size} banned dependencies of package.json:\n\t`
100
99
  + Array.from(violations)
101
100
  .map((v) => `'${v}'`)
102
101
  .join(", "),
@@ -92,9 +92,7 @@ function omit<T>(
92
92
  ): Record<string, T> {
93
93
  const newObj: Record<string, T> = {};
94
94
 
95
- const filtered = Object.entries(obj).filter(([key]) =>
96
- !keysToOmit.includes(key)
97
- );
95
+ const filtered = Object.entries(obj).filter(([key]) => !keysToOmit.includes(key));
98
96
  for (const [key, value] of filtered) {
99
97
  newObj[key] = value;
100
98
  }