@monorepolint/rules 0.5.0-beta.8 → 0.5.0

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 (87) hide show
  1. package/.turbo/turbo-clean.log +4 -0
  2. package/.turbo/turbo-compile-typescript.log +4 -0
  3. package/.turbo/turbo-lint.log +4 -0
  4. package/.turbo/turbo-test.log +666 -0
  5. package/.turbo/turbo-transpile-typescript.log +14 -0
  6. package/CHANGELOG.md +42 -0
  7. package/build/js/index.js +1422 -0
  8. package/build/js/index.js.map +1 -0
  9. package/build/tsconfig.tsbuildinfo +1 -0
  10. package/build/types/__tests__/alphabeticalScripts.spec.d.ts +8 -0
  11. package/build/types/__tests__/alphabeticalScripts.spec.d.ts.map +1 -0
  12. package/build/types/__tests__/bannedDependencies.spec.d.ts +2 -0
  13. package/build/types/__tests__/bannedDependencies.spec.d.ts.map +1 -0
  14. package/build/types/__tests__/consistentDependencies.spec.d.ts +2 -0
  15. package/build/types/__tests__/consistentDependencies.spec.d.ts.map +1 -0
  16. package/build/types/__tests__/consistentVersions.spec.d.ts +8 -0
  17. package/build/types/__tests__/consistentVersions.spec.d.ts.map +1 -0
  18. package/build/types/__tests__/fileContents.spec.d.ts +8 -0
  19. package/build/types/__tests__/fileContents.spec.d.ts.map +1 -0
  20. package/build/types/__tests__/mustSatisfyPeerDependencies.spec.d.ts +8 -0
  21. package/build/types/__tests__/mustSatisfyPeerDependencies.spec.d.ts.map +1 -0
  22. package/build/types/__tests__/nestedWorkspaces.spec.d.ts +2 -0
  23. package/build/types/__tests__/nestedWorkspaces.spec.d.ts.map +1 -0
  24. package/build/types/__tests__/packageEntry.spec.d.ts +8 -0
  25. package/build/types/__tests__/packageEntry.spec.d.ts.map +1 -0
  26. package/build/types/__tests__/packageOrder.spec.d.ts +8 -0
  27. package/build/types/__tests__/packageOrder.spec.d.ts.map +1 -0
  28. package/build/types/__tests__/packageScript.spec.d.ts +8 -0
  29. package/build/types/__tests__/packageScript.spec.d.ts.map +1 -0
  30. package/build/types/__tests__/requireDependency.spec.d.ts +2 -0
  31. package/build/types/__tests__/requireDependency.spec.d.ts.map +1 -0
  32. package/build/types/__tests__/utils.d.ts +81 -0
  33. package/build/types/__tests__/utils.d.ts.map +1 -0
  34. package/build/types/alphabeticalDependencies.d.ts +8 -0
  35. package/build/types/alphabeticalDependencies.d.ts.map +1 -0
  36. package/build/types/alphabeticalScripts.d.ts +8 -0
  37. package/build/types/alphabeticalScripts.d.ts.map +1 -0
  38. package/build/types/bannedDependencies.d.ts +48 -0
  39. package/build/types/bannedDependencies.d.ts.map +1 -0
  40. package/build/types/consistentDependencies.d.ts +16 -0
  41. package/build/types/consistentDependencies.d.ts.map +1 -0
  42. package/build/types/consistentVersions.d.ts +19 -0
  43. package/build/types/consistentVersions.d.ts.map +1 -0
  44. package/build/types/fileContents.d.ts +24 -0
  45. package/build/types/fileContents.d.ts.map +1 -0
  46. package/build/types/index.d.ts +21 -0
  47. package/build/types/index.d.ts.map +1 -0
  48. package/build/types/mustSatisfyPeerDependencies.d.ts +333 -0
  49. package/build/types/mustSatisfyPeerDependencies.d.ts.map +1 -0
  50. package/build/types/nestedWorkspaces.d.ts +10 -0
  51. package/build/types/nestedWorkspaces.d.ts.map +1 -0
  52. package/build/types/packageEntry.d.ts +43 -0
  53. package/build/types/packageEntry.d.ts.map +1 -0
  54. package/build/types/packageOrder.d.ts +10 -0
  55. package/build/types/packageOrder.d.ts.map +1 -0
  56. package/build/types/packageScript.d.ts +32 -0
  57. package/build/types/packageScript.d.ts.map +1 -0
  58. package/build/types/requireDependency.d.ts +29 -0
  59. package/build/types/requireDependency.d.ts.map +1 -0
  60. package/build/types/standardTsconfig.d.ts +29 -0
  61. package/build/types/standardTsconfig.d.ts.map +1 -0
  62. package/build/types/util/checkAlpha.d.ts +10 -0
  63. package/build/types/util/checkAlpha.d.ts.map +1 -0
  64. package/build/types/util/createRuleFactory.d.ts +14 -0
  65. package/build/types/util/createRuleFactory.d.ts.map +1 -0
  66. package/build/types/util/makeDirectory.d.ts +8 -0
  67. package/build/types/util/makeDirectory.d.ts.map +1 -0
  68. package/build/types/util/packageDependencyGraphService.d.ts +37 -0
  69. package/build/types/util/packageDependencyGraphService.d.ts.map +1 -0
  70. package/package.json +4 -4
  71. package/src/alphabeticalDependencies.ts +2 -2
  72. package/src/alphabeticalScripts.ts +2 -2
  73. package/src/bannedDependencies.ts +2 -2
  74. package/src/consistentDependencies.ts +2 -2
  75. package/src/consistentVersions.ts +2 -2
  76. package/src/fileContents.ts +2 -2
  77. package/src/index.ts +8 -0
  78. package/src/mustSatisfyPeerDependencies.ts +2 -2
  79. package/src/nestedWorkspaces.ts +4 -4
  80. package/src/packageEntry.ts +2 -2
  81. package/src/packageOrder.ts +2 -2
  82. package/src/packageScript.ts +2 -2
  83. package/src/requireDependency.ts +2 -2
  84. package/src/standardTsconfig.ts +2 -2
  85. package/src/util/createRuleFactory.ts +33 -0
  86. package/src/public/util.ts +0 -1
  87. package/src/util/makeRule.ts +0 -29
@@ -0,0 +1,666 @@
1
+
2
+ > @monorepolint/rules@0.5.0 test /home/runner/work/monorepolint/monorepolint/packages/rules
3
+ > NODE_OPTIONS=--experimental-vm-modules jest --colors --passWithNoTests
4
+
5
+ ts-jest[ts-compiler] (WARN) Unable to process '/home/runner/work/monorepolint/monorepolint/packages/core/build/js/index.js', falling back to original file content. You can also configure Jest config option `transformIgnorePatterns` to ignore /home/runner/work/monorepolint/monorepolint/packages/core/build/js/index.js from transformation or make sure that `outDir` in your tsconfig is neither `''` or `'.'`
6
+ ts-jest[ts-compiler] (WARN) Unable to process '/home/runner/work/monorepolint/monorepolint/packages/utils/build/js/index.js', falling back to original file content. You can also configure Jest config option `transformIgnorePatterns` to ignore /home/runner/work/monorepolint/monorepolint/packages/utils/build/js/index.js from transformation or make sure that `outDir` in your tsconfig is neither `''` or `'.'`
7
+ ts-jest[ts-compiler] (WARN) Unable to process '/home/runner/work/monorepolint/monorepolint/packages/core/build/js/index.js', falling back to original file content. You can also configure Jest config option `transformIgnorePatterns` to ignore /home/runner/work/monorepolint/monorepolint/packages/core/build/js/index.js from transformation or make sure that `outDir` in your tsconfig is neither `''` or `'.'`
8
+ (node:3094) ExperimentalWarning: VM Modules is an experimental feature and might change at any time
9
+ (Use `node --trace-warnings ...` to show where the warning was created)
10
+  PASS  src/__tests__/consistentVersions.spec.ts (6.303 s)
11
+ consistentVersions
12
+ standard tests
13
+ ✓ Does nothing when arguments are empty (11 ms)
14
+ ✓ Fixes packages that have an incorrect dependency version (4 ms)
15
+ ✓ Ignores packages that have a correct dependency version (2 ms)
16
+ ✓ Fixes packages that have an incorrect devDependency version (3 ms)
17
+ ✓ Ignores packages that have a correct devDependency version (2 ms)
18
+ ✓ Fixes packages that have an incorrect dependency and devDependency versions (2 ms)
19
+ Multiple accepted versions tests
20
+ ✓ Accepts a match when multiple versions are configured (8 ms)
21
+ ✓ Errors when version does not match (2 ms)
22
+
23
+ ts-jest[ts-compiler] (WARN) Unable to process '/home/runner/work/monorepolint/monorepolint/packages/utils/build/js/index.js', falling back to original file content. You can also configure Jest config option `transformIgnorePatterns` to ignore /home/runner/work/monorepolint/monorepolint/packages/utils/build/js/index.js from transformation or make sure that `outDir` in your tsconfig is neither `''` or `'.'`
24
+ (node:3093) ExperimentalWarning: VM Modules is an experimental feature and might change at any time
25
+ (Use `node --trace-warnings ...` to show where the warning was created)
26
+  PASS  src/__tests__/mustSatisfyPeerDependencies.spec.ts (6.666 s)
27
+ mustSatisfyPeerDependencies
28
+ ✓ Flags overloaded dependency (entry in regular dependencies and peer dependencies) (5 ms)
29
+ ✓ Flags conflicting peer dependencies (4 ms)
30
+ ✓ Flags unsatisfied peer dependencies (test package has regular dep) (3 ms)
31
+ ✓ Flags missing peer dependencies (NO regular dependency present) (4 ms)
32
+ ✓ Flags unsatisfied peer dependencies (test package has peer dep) (4 ms)
33
+ ✓ Honors dependencyWhitelist (4 ms)
34
+ ✓ Honors dependencyBlacklist (3 ms)
35
+ regex tests
36
+ ✓ Properly matches any version range regex (34 ms)
37
+ ✓ Properly matches greator or equal version range regex (14 ms)
38
+ ✓ Properly matches major version range regex (11 ms)
39
+ ✓ Properly matches allowed range regex (16 ms)
40
+ Determines dependencies satisfaction correctly
41
+ ✓ version is version (2 ms)
42
+ ✓ version satisfies a range (3 ms)
43
+ ✓ higher version satisfies a range (3 ms)
44
+ ✓ version satisfies a greator or equal version range (1 ms)
45
+ ✓ higher version satisfies a greator or equal version range (1 ms)
46
+ ✓ version satisfies 'any' range (1 ms)
47
+ ✓ greator or equal version range satisfies 'any' range (1 ms)
48
+ ✓ range satisfies 'any' range (1 ms)
49
+ ✓ union range satisfies 'any' range (1 ms)
50
+ ✓ version found in union start (1 ms)
51
+ ✓ version found in union end (1 ms)
52
+ ✓ version satisfies a range in union start (1 ms)
53
+ ✓ version satisfies a range in union end (1 ms)
54
+ ✓ higher version satisfies a range in union start (1 ms)
55
+ ✓ higher version satisfies a range in union end (2 ms)
56
+ ✓ range found in union start (1 ms)
57
+ ✓ range found in union end (1 ms)
58
+ ✓ union satisfies greator or equal version range (3 ms)
59
+ ✓ greator or equal version range satisfies greator or equal version range (1 ms)
60
+ ✓ equivalent greator or equal version ranges satisfy each other (1 ms)
61
+ ✓ higher range satisfies a range in union start (1 ms)
62
+ ✓ higher range satisfies a range in union end (1 ms)
63
+ ✓ equivalent 'any' ranges satisfy each other (1 ms)
64
+ ✓ equivalent major ranges satisfy each other (5 ms)
65
+ ✓ version missing in union (1 ms)
66
+ ✓ range missing in union (1 ms)
67
+ Determines dependencies intersections correctly
68
+ ✓ equivalence (2 ms)
69
+ ✓ exact vs any (1 ms)
70
+ ✓ major vs any
71
+ ✓ greater or equal vs any (1 ms)
72
+ ✓ any vs any
73
+ ✓ exact vs greater or equal (2 ms)
74
+ ✓ major vs greater or equal (1 ms)
75
+ ✓ greater or equal vs greater or equal (1 ms)
76
+ ✓ exact vs major (1 ms)
77
+ ✓ major vs major (1 ms)
78
+ ✓ exact vs union (1 ms)
79
+ ✓ major vs union (1 ms)
80
+ ✓ union vs union (1 ms)
81
+
82
+ console.log
83
+ package-without-scripts (/tmp/tmp-3095-nrg1Lc0Kpq2N)
84
+ 
85
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
86
+
87
+ console.error
88
+  Error! package.json: No scripts block in package.json
89
+ 
90
+    149 | }
91
+   150 | // tslint:disable-next-line:no-console
92
+  > 151 | console.error(this.getMessage(str, depth));
93
+   | ^
94
+   152 | }
95
+   153 |
96
+   154 | private getMessage(str: string, depth: number) {
97
+ 
98
+  at WorkspaceContextImpl.printError (../core/src/PackageContext.ts:151:13)
99
+  at WorkspaceContextImpl.addErrorSyncOrAsync (../core/src/PackageContext.ts:85:12)
100
+  at WorkspaceContextImpl.addError (../core/src/PackageContext.ts:68:10)
101
+  at check (src/packageScript.ts:34:15)
102
+  at Object.check (src/util/createRuleFactory.ts:26:27)
103
+  at Object.<anonymous> (src/__tests__/packageScript.spec.ts:56:10)
104
+
105
+ console.log
106
+ package-without-scripts (/tmp/tmp-3095-mSGvyoHwcNZ1)
107
+ 
108
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
109
+
110
+ console.log
111
+ Fixed! package.json: No scripts block in package.json
112
+ 
113
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
114
+
115
+ console.log
116
+ package-with-scripts (/tmp/tmp-3095-s0yafv7EMI5x)
117
+ 
118
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
119
+
120
+ console.log
121
+ Fixed! package.json: Expected standardized script entry for 'missing'. Valid options: 'missing value'
122
+ 
123
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
124
+
125
+ console.log
126
+ package-with-scripts (/tmp/tmp-3095-g024NjVuSq55)
127
+ 
128
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
129
+
130
+ console.error
131
+  Error! package.json: Expected standardized script entry for 'foo'. Valid options: 'a', 'b'
132
+ 
133
+    149 | }
134
+   150 | // tslint:disable-next-line:no-console
135
+  > 151 | console.error(this.getMessage(str, depth));
136
+   | ^
137
+   152 | }
138
+   153 |
139
+   154 | private getMessage(str: string, depth: number) {
140
+ 
141
+  at WorkspaceContextImpl.printError (../core/src/PackageContext.ts:151:13)
142
+  at WorkspaceContextImpl.addErrorSyncOrAsync (../core/src/PackageContext.ts:85:12)
143
+  at WorkspaceContextImpl.addError (../core/src/PackageContext.ts:68:10)
144
+  at check (src/packageScript.ts:89:17)
145
+  at Object.check (src/util/createRuleFactory.ts:26:27)
146
+  at Object.<anonymous> (src/__tests__/packageScript.spec.ts:169:10)
147
+
148
+ console.log
149
+ package-with-scripts (/tmp/tmp-3095-vgJvBTudNUjh)
150
+ 
151
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
152
+
153
+ console.log
154
+ Fixed! package.json: Expected standardized script entry for 'foo'. Valid options: 'a', 'b'
155
+ 
156
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
157
+
158
+ console.log
159
+ package-with-scripts (/tmp/tmp-3095-YAD6B8pWxhRg)
160
+ 
161
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
162
+
163
+ console.log
164
+ Fixed! package.json: Expected standardized script entry for 'exists'. Valid options: 'a', (empty)
165
+ 
166
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
167
+
168
+ console.log
169
+ package-with-scripts (/tmp/tmp-3095-WltTy8gswzhE)
170
+ 
171
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
172
+
173
+ console.log
174
+ Fixed! package.json: Expected standardized script entry for 'exists'. Valid options: (empty)
175
+ 
176
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
177
+
178
+ (node:3095) ExperimentalWarning: VM Modules is an experimental feature and might change at any time
179
+ console.log
180
+ (Use `node --trace-warnings ...` to show where the warning was created)
181
+ package-without-scripts (/tmp/tmp-3095-t9x2AfmwyHmd)
182
+ 
183
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
184
+
185
+ console.error
186
+  Error! package.json: No scripts block in package.json
187
+ 
188
+    149 | }
189
+   150 | // tslint:disable-next-line:no-console
190
+  > 151 | console.error(this.getMessage(str, depth));
191
+   | ^
192
+   152 | }
193
+   153 |
194
+   154 | private getMessage(str: string, depth: number) {
195
+ 
196
+  at WorkspaceContextImpl.printError (../core/src/PackageContext.ts:151:13)
197
+  at WorkspaceContextImpl.addErrorSyncOrAsync (../core/src/PackageContext.ts:85:12)
198
+  at WorkspaceContextImpl.addError (../core/src/PackageContext.ts:68:10)
199
+  at check (src/packageScript.ts:34:15)
200
+  at Object.check (src/util/createRuleFactory.ts:26:27)
201
+  at Object.<anonymous> (src/__tests__/packageScript.spec.ts:56:10)
202
+
203
+ console.log
204
+ package-without-scripts (/tmp/tmp-3095-uslqqfRbnBml)
205
+ 
206
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
207
+
208
+ console.log
209
+ Fixed! package.json: No scripts block in package.json
210
+ 
211
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
212
+
213
+ console.log
214
+ package-with-scripts (/tmp/tmp-3095-72aNYiJDPcRe)
215
+ 
216
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
217
+
218
+ console.log
219
+ Fixed! package.json: Expected standardized script entry for 'missing'. Valid options: 'missing value'
220
+ 
221
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
222
+
223
+ console.log
224
+ package-with-scripts (/tmp/tmp-3095-Fm7jl1EE7ZGI)
225
+ 
226
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
227
+
228
+ console.error
229
+  Error! package.json: Expected standardized script entry for 'foo'. Valid options: 'a', 'b'
230
+ 
231
+    149 | }
232
+   150 | // tslint:disable-next-line:no-console
233
+  > 151 | console.error(this.getMessage(str, depth));
234
+   | ^
235
+   152 | }
236
+   153 |
237
+   154 | private getMessage(str: string, depth: number) {
238
+ 
239
+  at WorkspaceContextImpl.printError (../core/src/PackageContext.ts:151:13)
240
+  at WorkspaceContextImpl.addErrorSyncOrAsync (../core/src/PackageContext.ts:85:12)
241
+  at WorkspaceContextImpl.addError (../core/src/PackageContext.ts:68:10)
242
+  at check (src/packageScript.ts:89:17)
243
+  at Object.check (src/util/createRuleFactory.ts:26:27)
244
+  at Object.<anonymous> (src/__tests__/packageScript.spec.ts:169:10)
245
+
246
+ console.log
247
+ package-with-scripts (/tmp/tmp-3095-gwG2mVpxPZP6)
248
+ 
249
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
250
+
251
+ console.log
252
+ Fixed! package.json: Expected standardized script entry for 'foo'. Valid options: 'a', 'b'
253
+ 
254
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
255
+
256
+ console.log
257
+ package-with-scripts (/tmp/tmp-3095-pu3xdqGfx15G)
258
+ 
259
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
260
+
261
+ console.log
262
+ Fixed! package.json: Expected standardized script entry for 'exists'. Valid options: 'a', (empty)
263
+ 
264
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
265
+
266
+ console.log
267
+ package-with-scripts (/tmp/tmp-3095-BuHUHCt7DDm6)
268
+ 
269
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
270
+
271
+ console.log
272
+ Fixed! package.json: Expected standardized script entry for 'exists'. Valid options: (empty)
273
+ 
274
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
275
+
276
+  PASS  src/__tests__/packageScript.spec.ts (6.846 s)
277
+ expectPackageScript (SimpleHost)
278
+ fix: false
279
+ ✓ handles an empty script section (77 ms)
280
+ fix: true
281
+ ✓ fixes an empty script section (10 ms)
282
+ ✓ adds a script (7 ms)
283
+ ✓ does nothing if the value exists (2 ms)
284
+ ✓ errors if long form is used and no value matches and there is no fixValue (23 ms)
285
+ ✓ uses the fixValue for fixing if provided (12 ms)
286
+ ✓ can fix to empty (5 ms)
287
+ ✓ can allow only empty (7 ms)
288
+ expectPackageScript (CachingHost)
289
+ fix: false
290
+ ✓ handles an empty script section (16 ms)
291
+ fix: true
292
+ ✓ fixes an empty script section (15 ms)
293
+ ✓ adds a script (6 ms)
294
+ ✓ does nothing if the value exists (2 ms)
295
+ ✓ errors if long form is used and no value matches and there is no fixValue (6 ms)
296
+ ✓ uses the fixValue for fixing if provided (4 ms)
297
+ ✓ can fix to empty (5 ms)
298
+ ✓ can allow only empty (3 ms)
299
+
300
+  PASS  src/__tests__/bannedDependencies.spec.ts
301
+ bannedDependencies
302
+ ✓ Flags banned dependencies correctly (8 ms)
303
+ ✓ Flags banned dependencies correctly w legacy globs (2 ms)
304
+ ✓ Flags banned dependencies correctly w new globs (2 ms)
305
+ ✓ Flags banned dependencies correctly w exact (2 ms)
306
+ ✓ Flags banned transitives correctly (6 ms)
307
+
308
+ console.log
309
+ package (/tmp/tmp-3093-cQevdDV3gGjN)
310
+ 
311
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
312
+
313
+ console.log
314
+ Fixed! package.json: Expected standardized entry for 'license'
315
+ 
316
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
317
+
318
+ console.log
319
+ package (/tmp/tmp-3093-JICvMAgdv62P)
320
+ 
321
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
322
+
323
+ console.log
324
+ Fixed! package.json: Expected standardized entry for 'repository'
325
+ 
326
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
327
+
328
+ console.log
329
+ package (/tmp/tmp-3093-YnKIHX5Y4jOt)
330
+ 
331
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
332
+
333
+ console.error
334
+  Error! package.json: Expected entry for 'bugs' to exist
335
+ 
336
+    149 | }
337
+   150 | // tslint:disable-next-line:no-console
338
+  > 151 | console.error(this.getMessage(str, depth));
339
+   | ^
340
+   152 | }
341
+   153 |
342
+   154 | private getMessage(str: string, depth: number) {
343
+ 
344
+  at WorkspaceContextImpl.printError (../core/src/PackageContext.ts:151:13)
345
+  at WorkspaceContextImpl.addErrorSyncOrAsync (../core/src/PackageContext.ts:85:12)
346
+  at WorkspaceContextImpl.addError (../core/src/PackageContext.ts:68:10)
347
+  at check (src/packageEntry.ts:73:19)
348
+  at Object.check (src/util/createRuleFactory.ts:26:27)
349
+  at Object.<anonymous> (src/__tests__/packageEntry.spec.ts:158:10)
350
+
351
+ console.log
352
+ package (/tmp/tmp-3093-kwEPMVNOrcTj)
353
+ 
354
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
355
+
356
+  PASS  src/__tests__/nestedWorkspaces.spec.ts
357
+ nestedWorkspaces
358
+ ✓ checks correctly when no packages (13 ms)
359
+ ✓ checks correctly when one level packages (5 ms)
360
+ ✓ checks fail when one level packages with no workspaces field (5 ms)
361
+ ✓ checks correctly when two level packages with two level workspaces field (6 ms)
362
+ ✓ checks fail when two level packages with one level workspaces field (5 ms)
363
+ ✓ checks correctly when three level packages with three level workspaces field (7 ms)
364
+
365
+ console.error
366
+  Error! package.json: Expected entry for 'bugs' to exist
367
+ 
368
+    149 | }
369
+   150 | // tslint:disable-next-line:no-console
370
+  > 151 | console.error(this.getMessage(str, depth));
371
+   | ^
372
+   152 | }
373
+   153 |
374
+   154 | private getMessage(str: string, depth: number) {
375
+ 
376
+  at WorkspaceContextImpl.printError (../core/src/PackageContext.ts:151:13)
377
+  at WorkspaceContextImpl.addErrorSyncOrAsync (../core/src/PackageContext.ts:85:12)
378
+  at WorkspaceContextImpl.addError (../core/src/PackageContext.ts:68:10)
379
+  at check (src/packageEntry.ts:73:19)
380
+  at Object.check (src/util/createRuleFactory.ts:26:27)
381
+  at Object.<anonymous> (src/__tests__/packageEntry.spec.ts:186:10)
382
+
383
+ console.log
384
+ Fixed! package.json: Expected standardized entry for 'repository'
385
+ 
386
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
387
+
388
+ console.log
389
+ package (/tmp/tmp-3093-dsrRyBxIC6XM)
390
+ 
391
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
392
+
393
+ console.log
394
+ Fixed! package.json: Expected standardized entry for 'license'
395
+ 
396
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
397
+
398
+ console.log
399
+ package (/tmp/tmp-3093-S45iJGp5ltGo)
400
+ 
401
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
402
+
403
+ console.log
404
+ Fixed! package.json: Expected standardized entry for 'repository'
405
+ 
406
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
407
+
408
+ console.log
409
+ package (/tmp/tmp-3093-6Rj3bMVjjrik)
410
+ 
411
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
412
+
413
+ console.error
414
+  Error! package.json: Expected entry for 'bugs' to exist
415
+ 
416
+    149 | }
417
+   150 | // tslint:disable-next-line:no-console
418
+  > 151 | console.error(this.getMessage(str, depth));
419
+   | ^
420
+   152 | }
421
+   153 |
422
+   154 | private getMessage(str: string, depth: number) {
423
+ 
424
+  at WorkspaceContextImpl.printError (../core/src/PackageContext.ts:151:13)
425
+  at WorkspaceContextImpl.addErrorSyncOrAsync (../core/src/PackageContext.ts:85:12)
426
+  at WorkspaceContextImpl.addError (../core/src/PackageContext.ts:68:10)
427
+  at check (src/packageEntry.ts:73:19)
428
+  at Object.check (src/util/createRuleFactory.ts:26:27)
429
+  at Object.<anonymous> (src/__tests__/packageEntry.spec.ts:158:10)
430
+
431
+ console.log
432
+ package (/tmp/tmp-3093-uLpWOXymaDmO)
433
+ 
434
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
435
+
436
+ console.error
437
+  Error! package.json: Expected entry for 'bugs' to exist
438
+ 
439
+    149 | }
440
+   150 | // tslint:disable-next-line:no-console
441
+  > 151 | console.error(this.getMessage(str, depth));
442
+   | ^
443
+   152 | }
444
+   153 |
445
+   154 | private getMessage(str: string, depth: number) {
446
+ 
447
+  at WorkspaceContextImpl.printError (../core/src/PackageContext.ts:151:13)
448
+  at WorkspaceContextImpl.addErrorSyncOrAsync (../core/src/PackageContext.ts:85:12)
449
+  at WorkspaceContextImpl.addError (../core/src/PackageContext.ts:68:10)
450
+  at check (src/packageEntry.ts:73:19)
451
+  at Object.check (src/util/createRuleFactory.ts:26:27)
452
+  at Object.<anonymous> (src/__tests__/packageEntry.spec.ts:186:10)
453
+
454
+ console.log
455
+ Fixed! package.json: Expected standardized entry for 'repository'
456
+ 
457
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
458
+
459
+  PASS  src/__tests__/packageEntry.spec.ts
460
+ expectPackageEntries (SimpleHost)
461
+ fix: true
462
+ ✓ fixes missing entries (91 ms)
463
+ ✓ fixes missing nested entries (6 ms)
464
+ ✓ doesn't error for nested entries that are defined (3 ms)
465
+ ✓ errors for keys that are missing (13 ms)
466
+ ✓ handles both entries and entriesExist (18 ms)
467
+ expectPackageEntries (CachingHost)
468
+ fix: true
469
+ ✓ fixes missing entries (8 ms)
470
+ ✓ fixes missing nested entries (4 ms)
471
+ ✓ doesn't error for nested entries that are defined (1 ms)
472
+ ✓ errors for keys that are missing (7 ms)
473
+ ✓ handles both entries and entriesExist (6 ms)
474
+
475
+  PASS  src/__tests__/requireDependency.spec.ts
476
+ requireDependency
477
+ ✓ checks correctly (29 ms)
478
+ ✓ fixes correctly (5 ms)
479
+
480
+  PASS  src/__tests__/consistentDependencies.spec.ts
481
+ consistentDependencies
482
+ ✓ checks correctly (10 ms)
483
+ ✓ fixes correctly (4 ms)
484
+ ✓ ignores ignored dependencies (2 ms)
485
+
486
+ console.log
487
+ package (/tmp/tmp-3095-OUXBaHTL4GHu)
488
+ 
489
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
490
+
491
+ console.log
492
+ Fixed! package.json: Incorrect order of fields in package.json
493
+ 
494
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
495
+
496
+ console.log
497
+ package-unknown-keys (/tmp/tmp-3095-bPFxhm9NQ0DB)
498
+ 
499
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
500
+
501
+ console.log
502
+ Fixed! package.json: Incorrect order of fields in package.json
503
+ 
504
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
505
+
506
+ console.log
507
+ package (/tmp/tmp-3095-OiYsBMyGRCDl)
508
+ 
509
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
510
+
511
+ console.log
512
+ Fixed! package.json: Incorrect order of fields in package.json
513
+ 
514
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
515
+
516
+ console.log
517
+ package (/tmp/tmp-3095-yr8uBPL9H5zg)
518
+ 
519
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
520
+
521
+ console.log
522
+ Fixed! package.json: Incorrect order of fields in package.json
523
+ 
524
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
525
+
526
+ console.log
527
+ package-unknown-keys (/tmp/tmp-3095-KnF4ZVlxCGcX)
528
+ 
529
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
530
+
531
+ console.log
532
+ Fixed! package.json: Incorrect order of fields in package.json
533
+ 
534
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
535
+
536
+ console.log
537
+ package (/tmp/tmp-3095-VqlKasqBfvOL)
538
+ 
539
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
540
+
541
+ console.log
542
+ Fixed! package.json: Incorrect order of fields in package.json
543
+ 
544
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
545
+
546
+  PASS  src/__tests__/packageOrder.spec.ts
547
+ expectPackageOrder (SimpleHost)
548
+ fix: true
549
+ ✓ fixes order for expected keys (16 ms)
550
+ ✓ fixes order for unexpected keys (17 ms)
551
+ ✓ fixes order using function (5 ms)
552
+ ✓ does nothing if already order (1 ms)
553
+ expectPackageOrder (CachingHost)
554
+ fix: true
555
+ ✓ fixes order for expected keys (15 ms)
556
+ ✓ fixes order for unexpected keys (5 ms)
557
+ ✓ fixes order using function (4 ms)
558
+ ✓ does nothing if already order (2 ms)
559
+
560
+ console.log
561
+ foo-lib (/tmp/tmp-3093-XOkYbcM0k40g)
562
+ 
563
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
564
+
565
+ console.log
566
+ Fixed! package.json: Incorrect order of scripts in foo-lib's package.json
567
+ 
568
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
569
+
570
+ console.log
571
+ foo-lib (/tmp/tmp-3093-LCMbFTkpKNBy)
572
+ 
573
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
574
+
575
+ console.log
576
+ Fixed! package.json: Incorrect order of scripts in foo-lib's package.json
577
+ 
578
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
579
+
580
+  PASS  src/__tests__/alphabeticalScripts.spec.ts
581
+ alphabeticalScripts (SimpleHost)
582
+ fix: true
583
+ ✓ fixes unsorted scripts (10 ms)
584
+ ✓ does nothing if already sorted (1 ms)
585
+ alphabeticalScripts (CachingHost)
586
+ fix: true
587
+ ✓ fixes unsorted scripts (9 ms)
588
+ ✓ does nothing if already sorted (1 ms)
589
+
590
+ console.log
591
+ rootProject (/tmp/tmp-3094-uzHzQ9Pst5Ff)
592
+ 
593
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
594
+
595
+ console.log
596
+ Fixed! foo.txt: Expect file contents to match
597
+ 
598
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
599
+
600
+ console.log
601
+ rootProject (/tmp/tmp-3094-rVh6VOGKTGTk)
602
+ 
603
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
604
+
605
+ console.log
606
+ Fixed! foo.txt: Expect file contents to match
607
+ 
608
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
609
+
610
+ console.log
611
+ rootProject (/tmp/tmp-3094-nzm9Mrr43ohZ)
612
+ 
613
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
614
+
615
+ console.log
616
+ Fixed! nested/foo.txt: Expect file contents to match
617
+ 
618
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
619
+
620
+ console.log
621
+ rootProject (/tmp/tmp-3094-TngL5qghdGQr)
622
+ 
623
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
624
+
625
+ console.log
626
+ Fixed! foo.txt: Expect file contents to match
627
+ 
628
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
629
+
630
+ console.log
631
+ rootProject (/tmp/tmp-3094-MJNrAd6yyCrb)
632
+ 
633
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
634
+
635
+ console.log
636
+ Fixed! foo.txt: Expect file contents to match
637
+ 
638
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
639
+
640
+ console.log
641
+ rootProject (/tmp/tmp-3094-m2VWiANmyeQq)
642
+ 
643
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
644
+
645
+ console.log
646
+ Fixed! nested/foo.txt: Expect file contents to match
647
+ 
648
+  at WorkspaceContextImpl.print (../core/src/PackageContext.ts:133:13)
649
+
650
+  PASS  src/__tests__/fileContents.spec.ts
651
+ fileContents (SimpleHost)
652
+ fix: true
653
+ ✓ works with async generator (46 ms)
654
+ ✓ fixes missing file (2 ms)
655
+ ✓ fixes missing nested file (3 ms)
656
+ fileContents (CachingHost)
657
+ fix: true
658
+ ✓ works with async generator (5 ms)
659
+ ✓ fixes missing file (3 ms)
660
+ ✓ fixes missing nested file (2 ms)
661
+
662
+ Test Suites: 11 passed, 11 total
663
+ Tests: 118 passed, 118 total
664
+ Snapshots: 0 total
665
+ Time: 9.419 s
666
+ Ran all test suites.