@monorepolint/rules 0.6.0-alpha.2 → 0.6.0-alpha.3

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 (77) 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 +160 -100
  5. package/.turbo/turbo-transpile-typescript.log +4 -4
  6. package/CHANGELOG.md +9 -0
  7. package/build/js/index.js +399 -246
  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/index.d.ts +3 -3
  15. package/build/types/index.d.ts.map +1 -1
  16. package/build/types/mustSatisfyPeerDependencies.d.ts.map +1 -1
  17. package/build/types/nestedWorkspaces.d.ts.map +1 -1
  18. package/build/types/packageEntry.d.ts.map +1 -1
  19. package/build/types/packageOrder.d.ts.map +1 -1
  20. package/build/types/packageScript.d.ts.map +1 -1
  21. package/build/types/requireDependency.d.ts +12 -12
  22. package/build/types/requireDependency.d.ts.map +1 -1
  23. package/build/types/util/checkAlpha.d.ts.map +1 -1
  24. package/build/types/util/createRuleFactory.d.ts.map +1 -1
  25. package/build/types/util/packageDependencyGraphService.d.ts.map +1 -1
  26. package/coverage/clover.xml +1159 -818
  27. package/coverage/coverage-final.json +18 -18
  28. package/coverage/index.html +20 -20
  29. package/coverage/src/alphabeticalDependencies.ts.html +8 -8
  30. package/coverage/src/alphabeticalScripts.ts.html +5 -5
  31. package/coverage/src/bannedDependencies.ts.html +77 -26
  32. package/coverage/src/consistentDependencies.ts.html +58 -19
  33. package/coverage/src/consistentVersions.ts.html +169 -58
  34. package/coverage/src/fileContents.ts.html +47 -23
  35. package/coverage/src/index.html +67 -67
  36. package/coverage/src/index.ts.html +32 -32
  37. package/coverage/src/mustSatisfyPeerDependencies.ts.html +373 -85
  38. package/coverage/src/nestedWorkspaces.ts.html +59 -20
  39. package/coverage/src/packageEntry.ts.html +40 -19
  40. package/coverage/src/packageOrder.ts.html +30 -12
  41. package/coverage/src/packageScript.ts.html +81 -27
  42. package/coverage/src/requireDependency.ts.html +83 -32
  43. package/coverage/src/standardTsconfig.ts.html +81 -18
  44. package/coverage/src/util/checkAlpha.ts.html +18 -9
  45. package/coverage/src/util/createRuleFactory.ts.html +16 -4
  46. package/coverage/src/util/index.html +17 -17
  47. package/coverage/src/util/makeDirectory.ts.html +5 -5
  48. package/coverage/src/util/packageDependencyGraphService.ts.html +101 -20
  49. package/package.json +4 -5
  50. package/src/__tests__/alphabeticalScripts.spec.ts +12 -4
  51. package/src/__tests__/bannedDependencies.spec.ts +45 -16
  52. package/src/__tests__/consistentDependencies.spec.ts +11 -5
  53. package/src/__tests__/consistentVersions.spec.ts +72 -18
  54. package/src/__tests__/fileContents.spec.ts +9 -5
  55. package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +191 -76
  56. package/src/__tests__/nestedWorkspaces.spec.ts +10 -6
  57. package/src/__tests__/packageEntry.spec.ts +54 -48
  58. package/src/__tests__/packageOrder.spec.ts +77 -71
  59. package/src/__tests__/packageScript.spec.ts +25 -11
  60. package/src/__tests__/requireDependency.spec.ts +12 -6
  61. package/src/__tests__/utils.ts +16 -7
  62. package/src/bannedDependencies.ts +32 -15
  63. package/src/consistentDependencies.ts +22 -9
  64. package/src/consistentVersions.ts +84 -47
  65. package/src/fileContents.ts +19 -11
  66. package/src/index.ts +3 -3
  67. package/src/mustSatisfyPeerDependencies.ts +162 -66
  68. package/src/nestedWorkspaces.ts +23 -10
  69. package/src/packageEntry.ts +18 -11
  70. package/src/packageOrder.ts +9 -3
  71. package/src/packageScript.ts +37 -19
  72. package/src/requireDependency.ts +28 -11
  73. package/src/standardTsconfig.ts +31 -10
  74. package/src/util/checkAlpha.ts +5 -2
  75. package/src/util/createRuleFactory.ts +6 -2
  76. package/src/util/packageDependencyGraphService.ts +41 -14
  77. package/vitest.config.mjs +10 -7
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">96.96% </span>
26
+ <span class="strong">98% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>32/33</span>
28
+ <span class='fraction'>49/50</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.96% </span>
47
+ <span class="strong">98% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>32/33</span>
49
+ <span class='fraction'>49/50</span>
50
50
  </div>
51
51
 
52
52
 
@@ -123,17 +123,30 @@
123
123
  <a name='L58'></a><a href='#L58'>58</a>
124
124
  <a name='L59'></a><a href='#L59'>59</a>
125
125
  <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-neutral">&nbsp;</span>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
131
140
  <span class="cline-any cline-neutral">&nbsp;</span>
132
141
  <span class="cline-any cline-neutral">&nbsp;</span>
133
142
  <span class="cline-any cline-neutral">&nbsp;</span>
134
143
  <span class="cline-any cline-neutral">&nbsp;</span>
135
144
  <span class="cline-any cline-neutral">&nbsp;</span>
136
145
  <span class="cline-any cline-neutral">&nbsp;</span>
146
+ <span class="cline-any cline-yes">1x</span>
147
+ <span class="cline-any cline-yes">1x</span>
148
+ <span class="cline-any cline-yes">1x</span>
149
+ <span class="cline-any cline-yes">1x</span>
137
150
  <span class="cline-any cline-neutral">&nbsp;</span>
138
151
  <span class="cline-any cline-yes">1x</span>
139
152
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -147,6 +160,9 @@
147
160
  <span class="cline-any cline-neutral">&nbsp;</span>
148
161
  <span class="cline-any cline-neutral">&nbsp;</span>
149
162
  <span class="cline-any cline-yes">6x</span>
163
+ <span class="cline-any cline-yes">6x</span>
164
+ <span class="cline-any cline-yes">6x</span>
165
+ <span class="cline-any cline-yes">6x</span>
150
166
  <span class="cline-any cline-neutral">&nbsp;</span>
151
167
  <span class="cline-any cline-yes">6x</span>
152
168
  <span class="cline-any cline-no">&nbsp;</span>
@@ -161,15 +177,23 @@
161
177
  <span class="cline-any cline-yes">1x</span>
162
178
  <span class="cline-any cline-yes">1x</span>
163
179
  <span class="cline-any cline-yes">1x</span>
180
+ <span class="cline-any cline-yes">1x</span>
164
181
  <span class="cline-any cline-neutral">&nbsp;</span>
165
182
  <span class="cline-any cline-neutral">&nbsp;</span>
166
183
  <span class="cline-any cline-yes">6x</span>
184
+ <span class="cline-any cline-yes">7x</span>
185
+ <span class="cline-any cline-yes">6x</span>
167
186
  <span class="cline-any cline-neutral">&nbsp;</span>
168
187
  <span class="cline-any cline-neutral">&nbsp;</span>
169
188
  <span class="cline-any cline-yes">6x</span>
189
+ <span class="cline-any cline-yes">6x</span>
190
+ <span class="cline-any cline-yes">6x</span>
191
+ <span class="cline-any cline-yes">6x</span>
170
192
  <span class="cline-any cline-neutral">&nbsp;</span>
171
193
  <span class="cline-any cline-neutral">&nbsp;</span>
172
194
  <span class="cline-any cline-yes">6x</span>
195
+ <span class="cline-any cline-yes">8x</span>
196
+ <span class="cline-any cline-yes">6x</span>
173
197
  <span class="cline-any cline-neutral">&nbsp;</span>
174
198
  <span class="cline-any cline-yes">6x</span>
175
199
  <span class="cline-any cline-yes">1x</span>
@@ -177,6 +201,8 @@
177
201
  <span class="cline-any cline-yes">1x</span>
178
202
  <span class="cline-any cline-yes">1x</span>
179
203
  <span class="cline-any cline-yes">1x</span>
204
+ <span class="cline-any cline-yes">1x</span>
205
+ <span class="cline-any cline-yes">1x</span>
180
206
  <span class="cline-any cline-neutral">&nbsp;</span>
181
207
  <span class="cline-any cline-yes">1x</span>
182
208
  <span class="cline-any cline-yes">1x</span>
@@ -206,38 +232,51 @@ export const nestedWorkspaces = createRuleFactory({
206
232
  const rootPackageJson = context.getWorkspaceContext().getPackageJson();
207
233
  &nbsp;
208
234
  // Expand a set of globs covering all package.json files in the entire repo (except the root)
209
- const packageJsonPaths = globby.globbySync(["*/**/package.json", "!**/node_modules/**"]);
235
+ const packageJsonPaths = globby.globbySync([
236
+ "*/**/package.json",
237
+ "!**/node_modules/**",
238
+ ]);
210
239
  &nbsp;
211
240
  const workspaces = Array.isArray(rootPackageJson.workspaces<span class="branch-0 cbranch-no" title="branch not covered" >)</span>
212
241
  <span class="cstat-no" title="statement not covered" > ? rootPackageJson.workspaces</span>
213
242
  : rootPackageJson.workspaces !== undefined
214
- ? rootPackageJson.workspaces.packages
215
- : undefined;
243
+ ? rootPackageJson.workspaces.packages
244
+ : undefined;
216
245
  &nbsp;
217
246
  if (workspaces === undefined &amp;&amp; packageJsonPaths.length &gt; 0) {
218
247
  context.addError({
219
248
  file: context.getPackageJsonPath(),
220
- message: 'The "workspace" field is missing, even though there are workspaces in the repository.',
249
+ message:
250
+ "The \"workspace\" field is missing, even though there are workspaces in the repository.",
221
251
  });
222
252
  return;
223
253
  }
224
254
  &nbsp;
225
255
  // Build a set of globs for each package.json that exists in packages specified by a workspace.
226
- const workspacePackageJsons = (workspaces || []).map((item) =&gt; `${item}/package.json`);
256
+ const workspacePackageJsons = (workspaces || []).map((item) =&gt;
257
+ `${item}/package.json`
258
+ );
227
259
  &nbsp;
228
260
  // Expand the globs to get an array of all package.json files that are in packages specified by a workspace.
229
- const expandedWorkspacesGlobs = globby.globbySync([...workspacePackageJsons, "!**/node_modules/**"]);
261
+ const expandedWorkspacesGlobs = globby.globbySync([
262
+ ...workspacePackageJsons,
263
+ "!**/node_modules/**",
264
+ ]);
230
265
  &nbsp;
231
266
  // Ensure there are no package.jsons which are not included in the globbed workspaces set
232
- const difference = packageJsonPaths.filter((packageJsonPath) =&gt; !expandedWorkspacesGlobs.includes(packageJsonPath));
267
+ const difference = packageJsonPaths.filter((packageJsonPath) =&gt;
268
+ !expandedWorkspacesGlobs.includes(packageJsonPath)
269
+ );
233
270
  &nbsp;
234
271
  if (difference.length !== 0) {
235
- const differencesList = difference.map((packageJsonPath) =&gt; path.dirname(packageJsonPath)).join(", ");
272
+ const differencesList = difference.map((packageJsonPath) =&gt;
273
+ path.dirname(packageJsonPath)
274
+ ).join(", ");
236
275
  context.addError({
237
276
  file: context.getPackageJsonPath(),
238
277
  message:
239
- `The "workspace" field is missing one or more values: ${differencesList}. ` +
240
- 'You may be able to use a glob to avoid listing each workspace individually, e.g. "packages/nested-workspace/*".',
278
+ `The "workspace" field is missing one or more values: ${differencesList}. `
279
+ + "You may be able to use a glob to avoid listing each workspace individually, e.g. \"packages/nested-workspace/*\".",
241
280
  });
242
281
  }
243
282
  },
@@ -250,7 +289,7 @@ export const nestedWorkspaces = createRuleFactory({
250
289
  <div class='footer quiet pad2 space-top1 center small'>
251
290
  Code coverage generated by
252
291
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
253
- at 2025-01-17T16:18:41.406Z
292
+ at 2025-01-22T17:39:11.886Z
254
293
  </div>
255
294
  <script src="../prettify.js"></script>
256
295
  <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'>71/71</span>
28
+ <span class='fraction'>82/82</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'>71/71</span>
49
+ <span class='fraction'>82/82</span>
50
50
  </div>
51
51
 
52
52
 
@@ -153,17 +153,24 @@
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>
160
- <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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
161
164
  <span class="cline-any cline-neutral">&nbsp;</span>
162
165
  <span class="cline-any cline-neutral">&nbsp;</span>
163
166
  <span class="cline-any cline-neutral">&nbsp;</span>
164
167
  <span class="cline-any cline-neutral">&nbsp;</span>
165
168
  <span class="cline-any cline-neutral">&nbsp;</span>
166
169
  <span class="cline-any cline-neutral">&nbsp;</span>
170
+ <span class="cline-any cline-yes">1x</span>
171
+ <span class="cline-any cline-yes">1x</span>
172
+ <span class="cline-any cline-yes">1x</span>
173
+ <span class="cline-any cline-yes">1x</span>
167
174
  <span class="cline-any cline-neutral">&nbsp;</span>
168
175
  <span class="cline-any cline-yes">1x</span>
169
176
  <span class="cline-any cline-yes">1x</span>
@@ -204,6 +211,9 @@
204
211
  <span class="cline-any cline-yes">8x</span>
205
212
  <span class="cline-any cline-yes">8x</span>
206
213
  <span class="cline-any cline-yes">8x</span>
214
+ <span class="cline-any cline-yes">8x</span>
215
+ <span class="cline-any cline-yes">8x</span>
216
+ <span class="cline-any cline-yes">8x</span>
207
217
  <span class="cline-any cline-yes">6x</span>
208
218
  <span class="cline-any cline-yes">6x</span>
209
219
  <span class="cline-any cline-yes">8x</span>
@@ -219,6 +229,10 @@
219
229
  <span class="cline-any cline-yes">6x</span>
220
230
  <span class="cline-any cline-yes">6x</span>
221
231
  <span class="cline-any cline-yes">6x</span>
232
+ <span class="cline-any cline-yes">6x</span>
233
+ <span class="cline-any cline-yes">6x</span>
234
+ <span class="cline-any cline-yes">6x</span>
235
+ <span class="cline-any cline-yes">6x</span>
222
236
  <span class="cline-any cline-yes">8x</span>
223
237
  <span class="cline-any cline-yes">8x</span>
224
238
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -263,7 +277,7 @@ export const Options = r.Union(
263
277
  .And(
264
278
  r.Partial({
265
279
  entriesExist: r.Undefined,
266
- })
280
+ }),
267
281
  ),
268
282
  r
269
283
  .Record({
@@ -272,12 +286,12 @@ export const Options = r.Union(
272
286
  .And(
273
287
  r.Partial({
274
288
  entries: r.Undefined,
275
- })
289
+ }),
276
290
  ),
277
291
  r.Record({
278
292
  entries: r.Dictionary(r.Unknown), // string =&gt; unknown, enforces existence of keys and their values
279
293
  entriesExist: r.Array(r.String),
280
- })
294
+ }),
281
295
  );
282
296
  &nbsp;
283
297
  export type Options = r.Static&lt;typeof Options&gt;;
@@ -291,21 +305,28 @@ export const packageEntry = createRuleFactory&lt;Options&gt;({
291
305
  for (const key of Object.keys(options.entries)) {
292
306
  const value = options.entries[key];
293
307
  &nbsp;
294
- const entryDiff = diff(JSON.stringify(value) + "\n", (JSON.stringify(packageJson[key]) || "") + "\n");
308
+ const entryDiff = diff(
309
+ JSON.stringify(value) + "\n",
310
+ (JSON.stringify(packageJson[key]) || "") + "\n",
311
+ );
295
312
  if (
296
- (typeof value !== "object" &amp;&amp; value !== packageJson[key]) ||
297
- entryDiff == null ||
298
- !entryDiff.includes("Compared values have no visual difference")
313
+ (typeof value !== "object" &amp;&amp; value !== packageJson[key])
314
+ || entryDiff == null
315
+ || !entryDiff.includes("Compared values have no visual difference")
299
316
  ) {
300
317
  context.addError({
301
318
  file: context.getPackageJsonPath(),
302
319
  message: createStandardizedEntryErrorMessage(key),
303
320
  longMessage: entryDiff,
304
321
  fixer: () =&gt; {
305
- mutateJson&lt;PackageJson&gt;(context.getPackageJsonPath(), context.host, (input) =&gt; {
306
- input[key] = value;
307
- return input;
308
- });
322
+ mutateJson&lt;PackageJson&gt;(
323
+ context.getPackageJsonPath(),
324
+ context.host,
325
+ (input) =&gt; {
326
+ input[key] = value;
327
+ return input;
328
+ },
329
+ );
309
330
  },
310
331
  });
311
332
  }
@@ -340,7 +361,7 @@ export function createExpectedEntryErrorMessage(key: string) {
340
361
  <div class='footer quiet pad2 space-top1 center small'>
341
362
  Code coverage generated by
342
363
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
343
- at 2025-01-17T16:18:41.406Z
364
+ at 2025-01-22T17:39:11.886Z
344
365
  </div>
345
366
  <script src="../prettify.js"></script>
346
367
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">99% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>91/91</span>
28
+ <span class='fraction'>99/100</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">100% </span>
47
+ <span class="strong">99% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>91/91</span>
49
+ <span class='fraction'>99/100</span>
50
50
  </div>
51
51
 
52
52
 
@@ -186,10 +186,13 @@
186
186
  <a name='L121'></a><a href='#L121'>121</a>
187
187
  <a name='L122'></a><a href='#L122'>122</a>
188
188
  <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
190
- <span class="cline-any cline-neutral">&nbsp;</span>
191
- <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-neutral">&nbsp;</span>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
193
196
  <span class="cline-any cline-neutral">&nbsp;</span>
194
197
  <span class="cline-any cline-neutral">&nbsp;</span>
195
198
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -197,6 +200,9 @@
197
200
  <span class="cline-any cline-neutral">&nbsp;</span>
198
201
  <span class="cline-any cline-neutral">&nbsp;</span>
199
202
  <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-yes">1x</span>
204
+ <span class="cline-any cline-yes">1x</span>
205
+ <span class="cline-any cline-yes">1x</span>
200
206
  <span class="cline-any cline-neutral">&nbsp;</span>
201
207
  <span class="cline-any cline-neutral">&nbsp;</span>
202
208
  <span class="cline-any cline-yes">1x</span>
@@ -246,8 +252,12 @@
246
252
  <span class="cline-any cline-yes">8x</span>
247
253
  <span class="cline-any cline-neutral">&nbsp;</span>
248
254
  <span class="cline-any cline-yes">8x</span>
255
+ <span class="cline-any cline-no">&nbsp;</span>
256
+ <span class="cline-any cline-yes">8x</span>
249
257
  <span class="cline-any cline-neutral">&nbsp;</span>
250
258
  <span class="cline-any cline-yes">8x</span>
259
+ <span class="cline-any cline-yes">2x</span>
260
+ <span class="cline-any cline-yes">6x</span>
251
261
  <span class="cline-any cline-neutral">&nbsp;</span>
252
262
  <span class="cline-any cline-yes">8x</span>
253
263
  <span class="cline-any cline-yes">8x</span>
@@ -309,6 +319,8 @@
309
319
  <span class="cline-any cline-yes">8x</span>
310
320
  <span class="cline-any cline-yes">8x</span>
311
321
  <span class="cline-any cline-yes">8x</span>
322
+ <span class="cline-any cline-yes">8x</span>
323
+ <span class="cline-any cline-yes">8x</span>
312
324
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*!
313
325
  * Copyright 2019 Palantir Technologies, Inc.
314
326
  *
@@ -368,9 +380,13 @@ export const packageOrder = createRuleFactory&lt;Options&gt;({
368
380
  const packageJson = context.getPackageJson();
369
381
  const packagePath = context.getPackageJsonPath();
370
382
  &nbsp;
371
- const order: string[] | OrderFunction = opts === <span class="branch-0 cbranch-no" title="branch not covered" >undefined ? defaultKeyOrder : o</span>pts.order;
383
+ const order: string[] | OrderFunction = opts === <span class="branch-0 cbranch-no" title="branch not covered" >undefined</span>
384
+ <span class="cstat-no" title="statement not covered" > ? defaultKeyOrder</span>
385
+ : opts.order;
372
386
  &nbsp;
373
- const comparator = isOrderFunction(order) ? order(context) : createComparator(order);
387
+ const comparator = isOrderFunction(order)
388
+ ? order(context)
389
+ : createComparator(order);
374
390
  &nbsp;
375
391
  const actualOrder = Object.keys(packageJson);
376
392
  const expectedOrder = actualOrder.slice().sort(comparator); // sort mutates, so we need to copy the previous result
@@ -429,7 +445,9 @@ function createComparator(order: ReadonlyArray&lt;string&gt;) {
429
445
  };
430
446
  }
431
447
  &nbsp;
432
- function isOrderFunction(order: ReadonlyArray&lt;string&gt; | OrderFunction): order is OrderFunction {
448
+ function isOrderFunction(
449
+ order: ReadonlyArray&lt;string&gt; | OrderFunction,
450
+ ): order is OrderFunction {
433
451
  return !Array.isArray(order);
434
452
  }
435
453
  &nbsp;</pre></td></tr></table></pre>
@@ -439,7 +457,7 @@ function isOrderFunction(order: ReadonlyArray&lt;string&gt; | OrderFunction): or
439
457
  <div class='footer quiet pad2 space-top1 center small'>
440
458
  Code coverage generated by
441
459
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
442
- at 2025-01-17T16:18:41.406Z
460
+ at 2025-01-22T17:39:11.886Z
443
461
  </div>
444
462
  <script src="../prettify.js"></script>
445
463
  <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'>78/78</span>
28
+ <span class='fraction'>100/100</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'>78/78</span>
49
+ <span class='fraction'>100/100</span>
50
50
  </div>
51
51
 
52
52
 
@@ -162,17 +162,35 @@
162
162
  <a name='L97'></a><a href='#L97'>97</a>
163
163
  <a name='L98'></a><a href='#L98'>98</a>
164
164
  <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
166
- <span class="cline-any cline-neutral">&nbsp;</span>
167
- <span class="cline-any cline-neutral">&nbsp;</span>
168
- <span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
170
184
  <span class="cline-any cline-neutral">&nbsp;</span>
171
185
  <span class="cline-any cline-neutral">&nbsp;</span>
172
186
  <span class="cline-any cline-neutral">&nbsp;</span>
173
187
  <span class="cline-any cline-neutral">&nbsp;</span>
174
188
  <span class="cline-any cline-neutral">&nbsp;</span>
175
189
  <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-yes">1x</span>
191
+ <span class="cline-any cline-yes">1x</span>
192
+ <span class="cline-any cline-yes">1x</span>
193
+ <span class="cline-any cline-yes">1x</span>
176
194
  <span class="cline-any cline-neutral">&nbsp;</span>
177
195
  <span class="cline-any cline-yes">1x</span>
178
196
  <span class="cline-any cline-yes">1x</span>
@@ -204,6 +222,10 @@
204
222
  <span class="cline-any cline-yes">2x</span>
205
223
  <span class="cline-any cline-yes">2x</span>
206
224
  <span class="cline-any cline-yes">2x</span>
225
+ <span class="cline-any cline-yes">2x</span>
226
+ <span class="cline-any cline-yes">2x</span>
227
+ <span class="cline-any cline-yes">2x</span>
228
+ <span class="cline-any cline-yes">2x</span>
207
229
  <span class="cline-any cline-yes">4x</span>
208
230
  <span class="cline-any cline-yes">4x</span>
209
231
  <span class="cline-any cline-yes">4x</span>
@@ -224,15 +246,24 @@
224
246
  <span class="cline-any cline-yes">14x</span>
225
247
  <span class="cline-any cline-yes">14x</span>
226
248
  <span class="cline-any cline-yes">8x</span>
249
+ <span class="cline-any cline-yes">6x</span>
227
250
  <span class="cline-any cline-yes">8x</span>
228
251
  <span class="cline-any cline-yes">8x</span>
229
252
  <span class="cline-any cline-neutral">&nbsp;</span>
230
253
  <span class="cline-any cline-yes">12x</span>
231
254
  <span class="cline-any cline-neutral">&nbsp;</span>
232
255
  <span class="cline-any cline-yes">12x</span>
256
+ <span class="cline-any cline-yes">12x</span>
257
+ <span class="cline-any cline-yes">10x</span>
258
+ <span class="cline-any cline-yes">12x</span>
233
259
  <span class="cline-any cline-yes">10x</span>
234
260
  <span class="cline-any cline-neutral">&nbsp;</span>
235
261
  <span class="cline-any cline-yes">10x</span>
262
+ <span class="cline-any cline-yes">10x</span>
263
+ <span class="cline-any cline-yes">10x</span>
264
+ <span class="cline-any cline-yes">8x</span>
265
+ <span class="cline-any cline-yes">8x</span>
266
+ <span class="cline-any cline-yes">8x</span>
236
267
  <span class="cline-any cline-yes">8x</span>
237
268
  <span class="cline-any cline-yes">8x</span>
238
269
  <span class="cline-any cline-yes">8x</span>
@@ -245,6 +276,7 @@
245
276
  <span class="cline-any cline-yes">8x</span>
246
277
  <span class="cline-any cline-yes">8x</span>
247
278
  <span class="cline-any cline-yes">8x</span>
279
+ <span class="cline-any cline-yes">8x</span>
248
280
  <span class="cline-any cline-neutral">&nbsp;</span>
249
281
  <span class="cline-any cline-yes">10x</span>
250
282
  <span class="cline-any cline-yes">10x</span>
@@ -257,6 +289,10 @@
257
289
  <span class="cline-any cline-yes">10x</span>
258
290
  <span class="cline-any cline-yes">10x</span>
259
291
  <span class="cline-any cline-yes">10x</span>
292
+ <span class="cline-any cline-yes">10x</span>
293
+ <span class="cline-any cline-yes">10x</span>
294
+ <span class="cline-any cline-yes">10x</span>
295
+ <span class="cline-any cline-yes">10x</span>
260
296
  <span class="cline-any cline-yes">12x</span>
261
297
  <span class="cline-any cline-yes">16x</span>
262
298
  <span class="cline-any cline-yes">1x</span>
@@ -280,8 +316,8 @@ export const Options = r.Record({
280
316
  r.Record({
281
317
  options: r.Array(r.String.Or(r.Undefined)),
282
318
  fixValue: r.Union(r.String, r.Undefined, r.Literal(false)).optional(),
283
- })
284
- )
319
+ }),
320
+ ),
285
321
  ), // string =&gt; string
286
322
  });
287
323
  &nbsp;
@@ -298,10 +334,14 @@ export const packageScript = createRuleFactory&lt;Options&gt;({
298
334
  file: context.getPackageJsonPath(),
299
335
  message: MSG_NO_SCRIPTS_BLOCK,
300
336
  fixer: () =&gt; {
301
- mutateJson&lt;PackageJson&gt;(context.getPackageJsonPath(), context.host, (input) =&gt; {
302
- input.scripts = {};
303
- return input;
304
- });
337
+ mutateJson&lt;PackageJson&gt;(
338
+ context.getPackageJsonPath(),
339
+ context.host,
340
+ (input) =&gt; {
341
+ input.scripts = {};
342
+ return input;
343
+ },
344
+ );
305
345
  },
306
346
  });
307
347
  return;
@@ -322,26 +362,36 @@ export const packageScript = createRuleFactory&lt;Options&gt;({
322
362
  }
323
363
  allowedValues.add(q);
324
364
  }
325
- fixToEmpty = Object.prototype.hasOwnProperty.call(value, "fixValue") &amp;&amp; value.fixValue === undefined;
365
+ fixToEmpty = Object.prototype.hasOwnProperty.call(value, "fixValue")
366
+ &amp;&amp; value.fixValue === undefined;
326
367
  fixValue = value.fixValue;
327
368
  }
328
369
  &nbsp;
329
370
  const actualValue = packageJson.scripts[name];
330
371
  &nbsp;
331
- if (!allowedValues.has(actualValue) &amp;&amp; !(allowEmpty === true &amp;&amp; actualValue === undefined)) {
372
+ if (
373
+ !allowedValues.has(actualValue)
374
+ &amp;&amp; !(allowEmpty === true &amp;&amp; actualValue === undefined)
375
+ ) {
332
376
  let fixer;
333
377
  &nbsp;
334
- if (fixValue !== false &amp;&amp; (fixValue !== undefined || fixToEmpty === true)) {
378
+ if (
379
+ fixValue !== false &amp;&amp; (fixValue !== undefined || fixToEmpty === true)
380
+ ) {
335
381
  const q = fixValue;
336
382
  fixer = () =&gt; {
337
- mutateJson&lt;PackageJson&gt;(context.getPackageJsonPath(), context.host, (input) =&gt; {
338
- if (fixToEmpty &amp;&amp; q === undefined) {
339
- delete input.scripts![name];
340
- } else {
341
- input.scripts![name] = q!;
342
- }
343
- return input;
344
- });
383
+ mutateJson&lt;PackageJson&gt;(
384
+ context.getPackageJsonPath(),
385
+ context.host,
386
+ (input) =&gt; {
387
+ if (fixToEmpty &amp;&amp; q === undefined) {
388
+ delete input.scripts![name];
389
+ } else {
390
+ input.scripts![name] = q!;
391
+ }
392
+ return input;
393
+ },
394
+ );
345
395
  };
346
396
  }
347
397
  &nbsp;
@@ -351,8 +401,12 @@ export const packageScript = createRuleFactory&lt;Options&gt;({
351
401
  &nbsp;
352
402
  context.addError({
353
403
  file: context.getPackageJsonPath(),
354
- message: `Expected standardized script entry for '${name}'. Valid options: ${validOptionsString}`,
355
- longMessage: diff(validOptionsString + "\n", (packageJson.scripts[name] || "") + "\n"),
404
+ message:
405
+ `Expected standardized script entry for '${name}'. Valid options: ${validOptionsString}`,
406
+ longMessage: diff(
407
+ validOptionsString + "\n",
408
+ (packageJson.scripts[name] || "") + "\n",
409
+ ),
356
410
  fixer,
357
411
  });
358
412
  }
@@ -367,7 +421,7 @@ export const packageScript = createRuleFactory&lt;Options&gt;({
367
421
  <div class='footer quiet pad2 space-top1 center small'>
368
422
  Code coverage generated by
369
423
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
370
- at 2025-01-17T16:18:41.406Z
424
+ at 2025-01-22T17:39:11.886Z
371
425
  </div>
372
426
  <script src="../prettify.js"></script>
373
427
  <script>