@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
|
@@ -23,16 +23,16 @@
|
|
|
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'>45/45</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>10/10</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">
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>45/45</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -136,57 +136,57 @@
|
|
|
136
136
|
<span class="cline-any cline-yes">1x</span>
|
|
137
137
|
<span class="cline-any cline-neutral"> </span>
|
|
138
138
|
<span class="cline-any cline-yes">1x</span>
|
|
139
|
+
<span class="cline-any cline-yes">16x</span>
|
|
140
|
+
<span class="cline-any cline-yes">16x</span>
|
|
141
|
+
<span class="cline-any cline-yes">16x</span>
|
|
142
|
+
<span class="cline-any cline-yes">16x</span>
|
|
143
|
+
<span class="cline-any cline-yes">16x</span>
|
|
144
|
+
<span class="cline-any cline-neutral"> </span>
|
|
145
|
+
<span class="cline-any cline-yes">16x</span>
|
|
146
|
+
<span class="cline-any cline-neutral"> </span>
|
|
147
|
+
<span class="cline-any cline-yes">16x</span>
|
|
148
|
+
<span class="cline-any cline-yes">8x</span>
|
|
149
|
+
<span class="cline-any cline-yes">8x</span>
|
|
150
|
+
<span class="cline-any cline-neutral"> </span>
|
|
151
|
+
<span class="cline-any cline-yes">8x</span>
|
|
152
|
+
<span class="cline-any cline-yes">8x</span>
|
|
153
|
+
<span class="cline-any cline-neutral"> </span>
|
|
154
|
+
<span class="cline-any cline-yes">16x</span>
|
|
139
155
|
<span class="cline-any cline-yes">4x</span>
|
|
140
156
|
<span class="cline-any cline-yes">4x</span>
|
|
141
157
|
<span class="cline-any cline-yes">4x</span>
|
|
142
158
|
<span class="cline-any cline-yes">4x</span>
|
|
143
159
|
<span class="cline-any cline-yes">4x</span>
|
|
144
|
-
<span class="cline-any cline-neutral"> </span>
|
|
145
160
|
<span class="cline-any cline-yes">4x</span>
|
|
146
161
|
<span class="cline-any cline-neutral"> </span>
|
|
147
162
|
<span class="cline-any cline-yes">4x</span>
|
|
148
|
-
<span class="cline-any cline-
|
|
149
|
-
<span class="cline-any cline-
|
|
163
|
+
<span class="cline-any cline-yes">12x</span>
|
|
164
|
+
<span class="cline-any cline-yes">4x</span>
|
|
150
165
|
<span class="cline-any cline-neutral"> </span>
|
|
151
166
|
<span class="cline-any cline-yes">4x</span>
|
|
152
167
|
<span class="cline-any cline-yes">4x</span>
|
|
153
|
-
<span class="cline-any cline-neutral"> </span>
|
|
154
168
|
<span class="cline-any cline-yes">4x</span>
|
|
155
|
-
<span class="cline-any cline-yes">2x</span>
|
|
156
|
-
<span class="cline-any cline-yes">2x</span>
|
|
157
|
-
<span class="cline-any cline-yes">2x</span>
|
|
158
|
-
<span class="cline-any cline-yes">2x</span>
|
|
159
|
-
<span class="cline-any cline-yes">2x</span>
|
|
160
|
-
<span class="cline-any cline-yes">2x</span>
|
|
161
|
-
<span class="cline-any cline-neutral"> </span>
|
|
162
|
-
<span class="cline-any cline-yes">2x</span>
|
|
163
|
-
<span class="cline-any cline-yes">6x</span>
|
|
164
|
-
<span class="cline-any cline-yes">2x</span>
|
|
165
|
-
<span class="cline-any cline-neutral"> </span>
|
|
166
|
-
<span class="cline-any cline-yes">2x</span>
|
|
167
|
-
<span class="cline-any cline-yes">2x</span>
|
|
168
|
-
<span class="cline-any cline-yes">2x</span>
|
|
169
|
-
<span class="cline-any cline-yes">2x</span>
|
|
170
|
-
<span class="cline-any cline-yes">2x</span>
|
|
171
|
-
<span class="cline-any cline-yes">2x</span>
|
|
172
169
|
<span class="cline-any cline-yes">4x</span>
|
|
173
|
-
<span class="cline-any cline-neutral"> </span>
|
|
174
170
|
<span class="cline-any cline-yes">4x</span>
|
|
175
171
|
<span class="cline-any cline-yes">4x</span>
|
|
172
|
+
<span class="cline-any cline-yes">16x</span>
|
|
173
|
+
<span class="cline-any cline-neutral"> </span>
|
|
176
174
|
<span class="cline-any cline-yes">8x</span>
|
|
177
|
-
<span class="cline-any cline-yes">2x</span>
|
|
178
|
-
<span class="cline-any cline-yes">2x</span>
|
|
179
175
|
<span class="cline-any cline-yes">8x</span>
|
|
180
|
-
<span class="cline-any cline-
|
|
181
|
-
<span class="cline-any cline-yes">2x</span>
|
|
182
|
-
<span class="cline-any cline-yes">2x</span>
|
|
183
|
-
<span class="cline-any cline-neutral"> </span>
|
|
184
|
-
<span class="cline-any cline-yes">1x</span>
|
|
185
|
-
<span class="cline-any cline-yes">4x</span>
|
|
176
|
+
<span class="cline-any cline-yes">16x</span>
|
|
186
177
|
<span class="cline-any cline-yes">4x</span>
|
|
187
178
|
<span class="cline-any cline-yes">4x</span>
|
|
179
|
+
<span class="cline-any cline-yes">16x</span>
|
|
180
|
+
<span class="cline-any cline-neutral"> </span>
|
|
188
181
|
<span class="cline-any cline-yes">4x</span>
|
|
189
182
|
<span class="cline-any cline-yes">4x</span>
|
|
183
|
+
<span class="cline-any cline-neutral"> </span>
|
|
184
|
+
<span class="cline-any cline-yes">1x</span>
|
|
185
|
+
<span class="cline-any cline-yes">8x</span>
|
|
186
|
+
<span class="cline-any cline-yes">8x</span>
|
|
187
|
+
<span class="cline-any cline-yes">8x</span>
|
|
188
|
+
<span class="cline-any cline-yes">8x</span>
|
|
189
|
+
<span class="cline-any cline-yes">8x</span>
|
|
190
190
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*!
|
|
191
191
|
* Copyright 2019 Palantir Technologies, Inc.
|
|
192
192
|
*
|
|
@@ -206,9 +206,9 @@ export function checkAlpha(
|
|
|
206
206
|
|
|
207
207
|
const blockToSort = packageJson[block];
|
|
208
208
|
|
|
209
|
-
if (blockToSort === undefined)
|
|
210
|
-
|
|
211
|
-
|
|
209
|
+
if (blockToSort === undefined) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
212
|
|
|
213
213
|
const actualOrder = Object.keys(blockToSort);
|
|
214
214
|
const expectedOrder = actualOrder.slice().sort(); // sort mutates, so we need to copy the previous result
|
|
@@ -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-
|
|
259
|
+
at 2025-11-07T18:00:58.549Z
|
|
260
260
|
</div>
|
|
261
261
|
<script src="../../prettify.js"></script>
|
|
262
262
|
<script>
|
|
@@ -119,24 +119,24 @@
|
|
|
119
119
|
<span class="cline-any cline-neutral"> </span>
|
|
120
120
|
<span class="cline-any cline-yes">1x</span>
|
|
121
121
|
<span class="cline-any cline-yes">1x</span>
|
|
122
|
-
<span class="cline-any cline-yes">
|
|
123
|
-
<span class="cline-any cline-yes">
|
|
124
|
-
<span class="cline-any cline-yes">
|
|
125
|
-
<span class="cline-any cline-yes">
|
|
126
|
-
<span class="cline-any cline-yes">
|
|
127
|
-
<span class="cline-any cline-yes">
|
|
128
|
-
<span class="cline-any cline-yes">
|
|
129
|
-
<span class="cline-any cline-yes">
|
|
130
|
-
<span class="cline-any cline-yes">
|
|
131
|
-
<span class="cline-any cline-neutral"> </span>
|
|
132
|
-
<span class="cline-any cline-yes">
|
|
133
|
-
<span class="cline-any cline-yes">
|
|
134
|
-
<span class="cline-any cline-yes">
|
|
135
|
-
<span class="cline-any cline-yes">
|
|
136
|
-
<span class="cline-any cline-yes">
|
|
137
|
-
<span class="cline-any cline-yes">
|
|
138
|
-
<span class="cline-any cline-yes">
|
|
139
|
-
<span class="cline-any cline-yes">
|
|
122
|
+
<span class="cline-any cline-yes">15x</span>
|
|
123
|
+
<span class="cline-any cline-yes">15x</span>
|
|
124
|
+
<span class="cline-any cline-yes">15x</span>
|
|
125
|
+
<span class="cline-any cline-yes">15x</span>
|
|
126
|
+
<span class="cline-any cline-yes">15x</span>
|
|
127
|
+
<span class="cline-any cline-yes">15x</span>
|
|
128
|
+
<span class="cline-any cline-yes">254x</span>
|
|
129
|
+
<span class="cline-any cline-yes">254x</span>
|
|
130
|
+
<span class="cline-any cline-yes">254x</span>
|
|
131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
132
|
+
<span class="cline-any cline-yes">254x</span>
|
|
133
|
+
<span class="cline-any cline-yes">254x</span>
|
|
134
|
+
<span class="cline-any cline-yes">254x</span>
|
|
135
|
+
<span class="cline-any cline-yes">254x</span>
|
|
136
|
+
<span class="cline-any cline-yes">254x</span>
|
|
137
|
+
<span class="cline-any cline-yes">254x</span>
|
|
138
|
+
<span class="cline-any cline-yes">254x</span>
|
|
139
|
+
<span class="cline-any cline-yes">15x</span>
|
|
140
140
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Context, RuleEntry, RuleModule } from "@monorepolint/config";
|
|
141
141
|
|
|
142
142
|
export type ValidateOptionsFn<X> = (options: unknown) => asserts options is X;
|
|
@@ -181,7 +181,7 @@ export function createRuleFactory<X>({
|
|
|
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-
|
|
184
|
+
at 2025-11-07T18:00:58.549Z
|
|
185
185
|
</div>
|
|
186
186
|
<script src="../../prettify.js"></script>
|
|
187
187
|
<script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">93.71% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>149/159</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">83.87% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>26/31</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">
|
|
47
|
+
<span class="strong">93.71% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>149/159</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,17 +80,17 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file high" data-value="checkAlpha.ts"><a href="checkAlpha.ts.html">checkAlpha.ts</a></td>
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
83
|
+
<td data-value="100" class="pic high">
|
|
84
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="45" class="abs high">
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="10" class="abs high">
|
|
86
|
+
<td data-value="100" class="pct high">100%</td>
|
|
87
|
+
<td data-value="45" class="abs high">45/45</td>
|
|
88
|
+
<td data-value="100" class="pct high">100%</td>
|
|
89
|
+
<td data-value="10" class="abs high">10/10</td>
|
|
90
90
|
<td data-value="100" class="pct high">100%</td>
|
|
91
91
|
<td data-value="4" class="abs high">4/4</td>
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="45" class="abs high">
|
|
92
|
+
<td data-value="100" class="pct high">100%</td>
|
|
93
|
+
<td data-value="45" class="abs high">45/45</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
@@ -138,6 +138,21 @@
|
|
|
138
138
|
<td data-value="77" class="abs high">67/77</td>
|
|
139
139
|
</tr>
|
|
140
140
|
|
|
141
|
+
<tr>
|
|
142
|
+
<td class="file high" data-value="zodSchemas.ts"><a href="zodSchemas.ts.html">zodSchemas.ts</a></td>
|
|
143
|
+
<td data-value="100" class="pic high">
|
|
144
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
145
|
+
</td>
|
|
146
|
+
<td data-value="100" class="pct high">100%</td>
|
|
147
|
+
<td data-value="4" class="abs high">4/4</td>
|
|
148
|
+
<td data-value="100" class="pct high">100%</td>
|
|
149
|
+
<td data-value="1" class="abs high">1/1</td>
|
|
150
|
+
<td data-value="100" class="pct high">100%</td>
|
|
151
|
+
<td data-value="0" class="abs high">0/0</td>
|
|
152
|
+
<td data-value="100" class="pct high">100%</td>
|
|
153
|
+
<td data-value="4" class="abs high">4/4</td>
|
|
154
|
+
</tr>
|
|
155
|
+
|
|
141
156
|
</tbody>
|
|
142
157
|
</table>
|
|
143
158
|
</div>
|
|
@@ -146,7 +161,7 @@
|
|
|
146
161
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
147
162
|
Code coverage generated by
|
|
148
163
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
149
|
-
at 2025-
|
|
164
|
+
at 2025-11-07T18:00:58.549Z
|
|
150
165
|
</div>
|
|
151
166
|
<script src="../../prettify.js"></script>
|
|
152
167
|
<script>
|
|
@@ -100,17 +100,17 @@
|
|
|
100
100
|
<span class="cline-any cline-yes">1x</span>
|
|
101
101
|
<span class="cline-any cline-neutral"> </span>
|
|
102
102
|
<span class="cline-any cline-neutral"> </span>
|
|
103
|
-
<span class="cline-any cline-yes">
|
|
104
|
-
<span class="cline-any cline-yes">
|
|
105
|
-
<span class="cline-any cline-yes">
|
|
103
|
+
<span class="cline-any cline-yes">95x</span>
|
|
104
|
+
<span class="cline-any cline-yes">95x</span>
|
|
105
|
+
<span class="cline-any cline-yes">404x</span>
|
|
106
106
|
<span class="cline-any cline-neutral"> </span>
|
|
107
|
-
<span class="cline-any cline-yes">
|
|
108
|
-
<span class="cline-any cline-yes">
|
|
109
|
-
<span class="cline-any cline-yes">
|
|
110
|
-
<span class="cline-any cline-yes">
|
|
111
|
-
<span class="cline-any cline-yes">
|
|
112
|
-
<span class="cline-any cline-yes">
|
|
113
|
-
<span class="cline-any cline-yes">
|
|
107
|
+
<span class="cline-any cline-yes">309x</span>
|
|
108
|
+
<span class="cline-any cline-yes">309x</span>
|
|
109
|
+
<span class="cline-any cline-yes">84x</span>
|
|
110
|
+
<span class="cline-any cline-yes">84x</span>
|
|
111
|
+
<span class="cline-any cline-yes">309x</span>
|
|
112
|
+
<span class="cline-any cline-yes">404x</span>
|
|
113
|
+
<span class="cline-any cline-yes">95x</span>
|
|
114
114
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*!
|
|
115
115
|
* Copyright 2019 Palantir Technologies, Inc.
|
|
116
116
|
*
|
|
@@ -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-
|
|
145
|
+
at 2025-11-07T18:00:58.549Z
|
|
146
146
|
</div>
|
|
147
147
|
<script src="../../prettify.js"></script>
|
|
148
148
|
<script>
|
|
@@ -487,7 +487,7 @@ export class PackageDependencyGraphService implements IPackageDependencyGraphSer
|
|
|
487
487
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
488
488
|
Code coverage generated by
|
|
489
489
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
490
|
-
at 2025-
|
|
490
|
+
at 2025-11-07T18:00:58.549Z
|
|
491
491
|
</div>
|
|
492
492
|
<script src="../../prettify.js"></script>
|
|
493
493
|
<script>
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/util/zodSchemas.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/util</a> zodSchemas.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'>4/4</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'>1/1</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'>4/4</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
82
|
+
<span class="cline-any cline-neutral"> </span>
|
|
83
|
+
<span class="cline-any cline-neutral"> </span>
|
|
84
|
+
<span class="cline-any cline-neutral"> </span>
|
|
85
|
+
<span class="cline-any cline-neutral"> </span>
|
|
86
|
+
<span class="cline-any cline-neutral"> </span>
|
|
87
|
+
<span class="cline-any cline-neutral"> </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-neutral"> </span>
|
|
91
|
+
<span class="cline-any cline-neutral"> </span>
|
|
92
|
+
<span class="cline-any cline-neutral"> </span>
|
|
93
|
+
<span class="cline-any cline-neutral"> </span>
|
|
94
|
+
<span class="cline-any cline-neutral"> </span>
|
|
95
|
+
<span class="cline-any cline-yes">1x</span>
|
|
96
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*!
|
|
97
|
+
* Copyright 2019 Palantir Technologies, Inc.
|
|
98
|
+
*
|
|
99
|
+
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
100
|
+
*
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
import { z } from "zod";
|
|
104
|
+
import { REMOVE } from "../REMOVE.js";
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Reusable Zod schema for the REMOVE symbol.
|
|
108
|
+
* This schema validates that a value is exactly the REMOVE symbol.
|
|
109
|
+
*/
|
|
110
|
+
export const ZodRemove = z.custom<typeof REMOVE>((x) => x === REMOVE);
|
|
111
|
+
</pre></td></tr></table></pre>
|
|
112
|
+
|
|
113
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
114
|
+
</div><!-- /wrapper -->
|
|
115
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
116
|
+
Code coverage generated by
|
|
117
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
118
|
+
at 2025-11-07T18:00:58.549Z
|
|
119
|
+
</div>
|
|
120
|
+
<script src="../../prettify.js"></script>
|
|
121
|
+
<script>
|
|
122
|
+
window.onload = function () {
|
|
123
|
+
prettyPrint();
|
|
124
|
+
};
|
|
125
|
+
</script>
|
|
126
|
+
<script src="../../sorter.js"></script>
|
|
127
|
+
<script src="../../block-navigation.js"></script>
|
|
128
|
+
</body>
|
|
129
|
+
</html>
|
|
130
|
+
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monorepolint/rules",
|
|
3
|
-
"version": "0.6.0-alpha.
|
|
3
|
+
"version": "0.6.0-alpha.6",
|
|
4
4
|
"author": "Eric L Anderson (https://github.com/ericanderson)",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Mac Lockard (https://github.com/maclockard)"
|
|
@@ -23,25 +23,25 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"globby": "^14.1.0",
|
|
26
|
-
"jest-diff": "^
|
|
26
|
+
"jest-diff": "^30.1.2",
|
|
27
27
|
"resolve-package-path": "^4.0.3",
|
|
28
|
-
"
|
|
29
|
-
"semver": "^7.7.1",
|
|
28
|
+
"semver": "^7.7.2",
|
|
30
29
|
"tslib": "^2.8.1",
|
|
31
|
-
"
|
|
32
|
-
"@monorepolint/
|
|
33
|
-
"@monorepolint/utils": "^0.6.0-alpha.
|
|
30
|
+
"zod": "^4.1.5",
|
|
31
|
+
"@monorepolint/config": "^0.6.0-alpha.6",
|
|
32
|
+
"@monorepolint/utils": "^0.6.0-alpha.6",
|
|
33
|
+
"@monorepolint/core": "^0.6.0-alpha.6"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@types/semver": "^7.7.
|
|
36
|
+
"@types/semver": "^7.7.1",
|
|
37
37
|
"@types/tmp": "^0.2.6",
|
|
38
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
39
|
-
"@typescript-eslint/parser": "^8.
|
|
40
|
-
"eslint": "^9.
|
|
41
|
-
"tmp": "^0.2.
|
|
38
|
+
"@typescript-eslint/eslint-plugin": "^8.43.0",
|
|
39
|
+
"@typescript-eslint/parser": "^8.43.0",
|
|
40
|
+
"eslint": "^9.35.0",
|
|
41
|
+
"tmp": "^0.2.5",
|
|
42
42
|
"tslib": "^2.8.1",
|
|
43
|
-
"tsup": "^8.
|
|
44
|
-
"typescript": "^5.
|
|
43
|
+
"tsup": "^8.5.0",
|
|
44
|
+
"typescript": "^5.9.2"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
package/src/REMOVE.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const REMOVE = Symbol.for("monorepolint/REMOVE");
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2019 Palantir Technologies, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// tslint:disable:no-console
|
|
9
|
+
import { Context, Failure } from "@monorepolint/config";
|
|
10
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
11
|
+
import { alphabeticalDependencies } from "../alphabeticalDependencies.js";
|
|
12
|
+
import { createIncorrectOrderErrorMessage } from "../util/checkAlpha.js";
|
|
13
|
+
import {
|
|
14
|
+
AddErrorSpy,
|
|
15
|
+
createTestingWorkspace,
|
|
16
|
+
HOST_FACTORIES,
|
|
17
|
+
jsonToString,
|
|
18
|
+
TestingWorkspace,
|
|
19
|
+
} from "./utils.js";
|
|
20
|
+
|
|
21
|
+
const PACKAGE_DEPENDENCIES_SORTED = jsonToString({
|
|
22
|
+
name: "foo-lib",
|
|
23
|
+
dependencies: {
|
|
24
|
+
a: "^1.0.0",
|
|
25
|
+
b: "^2.0.0",
|
|
26
|
+
c: "^3.0.0",
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const PACKAGE_DEPENDENCIES_UNSORTED = jsonToString({
|
|
31
|
+
name: "foo-lib",
|
|
32
|
+
dependencies: {
|
|
33
|
+
c: "^3.0.0",
|
|
34
|
+
a: "^1.0.0",
|
|
35
|
+
b: "^2.0.0",
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
describe.each(HOST_FACTORIES)("alphabeticalDependencies ($name)", (hostFactory) => {
|
|
40
|
+
describe("fix: true", () => {
|
|
41
|
+
let workspace: TestingWorkspace;
|
|
42
|
+
let spy: AddErrorSpy;
|
|
43
|
+
let context: Context;
|
|
44
|
+
|
|
45
|
+
beforeEach(async () => {
|
|
46
|
+
workspace = await createTestingWorkspace({
|
|
47
|
+
fixFlag: true,
|
|
48
|
+
host: hostFactory.make(),
|
|
49
|
+
});
|
|
50
|
+
context = workspace.context; // minimizing delta
|
|
51
|
+
|
|
52
|
+
spy = vi.spyOn(workspace.context, "addError");
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it("fixes unsorted dependencies", () => {
|
|
56
|
+
workspace.writeFile("package.json", PACKAGE_DEPENDENCIES_UNSORTED);
|
|
57
|
+
|
|
58
|
+
alphabeticalDependencies({}).check(context);
|
|
59
|
+
|
|
60
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
61
|
+
|
|
62
|
+
const failure: Failure = spy.mock.calls[0][0];
|
|
63
|
+
expect(failure).toMatchObject(
|
|
64
|
+
workspace.failureMatcher({
|
|
65
|
+
file: "package.json",
|
|
66
|
+
hasFixer: true,
|
|
67
|
+
message: createIncorrectOrderErrorMessage("dependencies", "foo-lib"),
|
|
68
|
+
}),
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
expect(workspace.readFile("package.json")).toEqual(
|
|
72
|
+
PACKAGE_DEPENDENCIES_SORTED,
|
|
73
|
+
);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it("does nothing if already sorted", () => {
|
|
77
|
+
workspace.writeFile("package.json", PACKAGE_DEPENDENCIES_SORTED);
|
|
78
|
+
|
|
79
|
+
alphabeticalDependencies({}).check(context);
|
|
80
|
+
|
|
81
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
describe("Options Validation", () => {
|
|
86
|
+
it("should accept undefined options", () => {
|
|
87
|
+
const ruleModule = alphabeticalDependencies({ options: undefined });
|
|
88
|
+
expect(() => ruleModule.validateOptions(undefined)).not.toThrow();
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it("has empty validation - accepts any input", () => {
|
|
92
|
+
const ruleModule = alphabeticalDependencies({ options: undefined });
|
|
93
|
+
// Note: This rule has an empty validation function, so it accepts anything
|
|
94
|
+
// @ts-expect-error testing invalid input
|
|
95
|
+
expect(() => ruleModule.validateOptions({})).not.toThrow();
|
|
96
|
+
// @ts-expect-error testing invalid input
|
|
97
|
+
expect(() => ruleModule.validateOptions("string")).not.toThrow();
|
|
98
|
+
// @ts-expect-error testing invalid input
|
|
99
|
+
expect(() => ruleModule.validateOptions([])).not.toThrow();
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
});
|
|
@@ -81,4 +81,22 @@ describe.each(HOST_FACTORIES)("alphabeticalScripts ($name)", (hostFactory) => {
|
|
|
81
81
|
expect(spy).toHaveBeenCalledTimes(0);
|
|
82
82
|
});
|
|
83
83
|
});
|
|
84
|
+
|
|
85
|
+
describe("Options Validation", () => {
|
|
86
|
+
it("should accept undefined options", () => {
|
|
87
|
+
const ruleModule = alphabeticalScripts({ options: undefined });
|
|
88
|
+
expect(() => ruleModule.validateOptions(undefined)).not.toThrow();
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it("has empty validation - accepts any input", () => {
|
|
92
|
+
const ruleModule = alphabeticalScripts({ options: undefined });
|
|
93
|
+
// Note: This rule has an empty validation function, so it accepts anything
|
|
94
|
+
// @ts-expect-error testing invalid input
|
|
95
|
+
expect(() => ruleModule.validateOptions({})).not.toThrow();
|
|
96
|
+
// @ts-expect-error testing invalid input
|
|
97
|
+
expect(() => ruleModule.validateOptions("string")).not.toThrow();
|
|
98
|
+
// @ts-expect-error testing invalid input
|
|
99
|
+
expect(() => ruleModule.validateOptions([])).not.toThrow();
|
|
100
|
+
});
|
|
101
|
+
});
|
|
84
102
|
});
|