dependency-cruiser 10.8.0 → 11.2.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 (54) hide show
  1. package/README.md +1 -1
  2. package/package.json +22 -16
  3. package/src/enrich/clear-caches.js +1 -1
  4. package/src/enrich/derive/circular/get-cycle.js +1 -1
  5. package/src/enrich/derive/dependents/get-dependents.js +1 -1
  6. package/src/enrich/derive/{metrics/get-stability-metrics.js → folders/aggregate-to-folders.js} +39 -30
  7. package/src/enrich/derive/folders/index.js +9 -0
  8. package/src/enrich/derive/folders/utl.js +44 -0
  9. package/src/enrich/derive/metrics/get-module-metrics.js +39 -0
  10. package/src/enrich/derive/metrics/index.js +14 -0
  11. package/src/enrich/derive/{utl.js → module-utl.js} +28 -0
  12. package/src/enrich/derive/orphan/is-orphan.js +1 -1
  13. package/src/enrich/derive/reachable/get-path.js +1 -1
  14. package/src/enrich/derive/reachable/index.js +1 -1
  15. package/src/enrich/enrich-modules.js +2 -2
  16. package/src/enrich/index.js +2 -2
  17. package/src/enrich/summarize/summarize-modules.js +24 -5
  18. package/src/extract/get-dependencies.js +11 -6
  19. package/src/extract/parse/to-typescript-ast.js +24 -8
  20. package/src/extract/utl/get-extension.js +9 -5
  21. package/src/main/options/normalize.js +28 -0
  22. package/src/meta.js +1 -1
  23. package/src/report/dot/dot.template.js +1 -1
  24. package/src/report/dot/index.js +7 -2
  25. package/src/report/dot/module-utl.js +47 -19
  26. package/src/report/dot/prepare-custom-level.js +2 -2
  27. package/src/report/dot/prepare-flat-level.js +2 -2
  28. package/src/report/dot/prepare-folder-level.js +2 -2
  29. package/src/report/error-html/error-html.template.js +1 -1
  30. package/src/report/error-html/utl.js +50 -7
  31. package/src/report/error.js +55 -21
  32. package/src/report/teamcity.js +37 -11
  33. package/src/report/utl/index.js +16 -0
  34. package/src/schema/baseline-violations.schema.js +1 -35
  35. package/src/schema/configuration.schema.js +1 -493
  36. package/src/schema/cruise-result.schema.js +1 -642
  37. package/src/utl/regex-util.js +57 -0
  38. package/src/validate/match-dependency-rule.js +19 -32
  39. package/src/validate/match-module-rule.js +1 -1
  40. package/src/validate/matchers.js +58 -48
  41. package/src/validate/violates-required-rule.js +1 -1
  42. package/types/baseline-violations.d.ts +1 -1
  43. package/types/cruise-result.d.ts +11 -50
  44. package/types/options.d.ts +5 -0
  45. package/types/reporter-options.d.ts +6 -0
  46. package/types/restrictions.d.ts +12 -0
  47. package/types/rule-summary.d.ts +23 -0
  48. package/types/shared-types.d.ts +7 -0
  49. package/types/violations.d.ts +43 -0
  50. package/src/enrich/derive/metrics/folder.js +0 -9
  51. package/src/enrich/derive/metrics/module-utl.js +0 -27
  52. package/src/enrich/derive/metrics/module.js +0 -29
  53. package/src/enrich/derive/metrics/utl.js +0 -28
  54. package/src/validate/utl.js +0 -31
@@ -1,36 +1,2 @@
1
1
  /* generated - don't edit */
2
-
3
- module.exports = {
4
- title: "dependency-cruiser baseline ('known errors') format",
5
- $schema: "http://json-schema.org/draft-07/schema#",
6
- $id: "https://dependency-cruiser.js.org/schema/baseline-violations.schema.json",
7
- $ref: "#/definitions/ViolationsType",
8
- definitions: {
9
- ViolationsType: {
10
- type: "array",
11
- items: { $ref: "#/definitions/ViolationType" },
12
- },
13
- ViolationType: {
14
- type: "object",
15
- required: ["from", "to", "rule"],
16
- additionalProperties: false,
17
- properties: {
18
- from: { type: "string" },
19
- to: { type: "string" },
20
- rule: { $ref: "#/definitions/RuleSummaryType" },
21
- cycle: { type: "array", items: { type: "string" } },
22
- via: { type: "array", items: { type: "string" } },
23
- },
24
- },
25
- RuleSummaryType: {
26
- type: "object",
27
- required: ["name", "severity"],
28
- additionalProperties: false,
29
- properties: {
30
- name: { type: "string" },
31
- severity: { $ref: "#/definitions/SeverityType" },
32
- },
33
- },
34
- SeverityType: { type: "string", enum: ["error", "warn", "info", "ignore"] },
35
- },
36
- };
2
+ module.exports={"title":"dependency-cruiser baseline ('known errors') format","$schema":"http://json-schema.org/draft-07/schema#","$id":"https://dependency-cruiser.js.org/schema/baseline-violations.schema.json","$ref":"#/definitions/ViolationsType","definitions":{"ViolationsType":{"type":"array","items":{"$ref":"#/definitions/ViolationType"}},"ViolationType":{"type":"object","required":["from","to","rule"],"additionalProperties":false,"properties":{"from":{"type":"string"},"to":{"type":"string"},"type":{"$ref":"#/definitions/ViolationTypeType"},"rule":{"$ref":"#/definitions/RuleSummaryType"},"cycle":{"type":"array","items":{"type":"string"}},"via":{"type":"array","items":{"type":"string"}},"metrics":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"from":{"type":"object","required":["instability"],"additionalProperties":false,"properties":{"instability":{"type":"number"}}},"to":{"type":"object","required":["instability"],"additionalProperties":false,"properties":{"instability":{"type":"number"}}}}}}},"RuleSummaryType":{"type":"object","required":["name","severity"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"}}},"SeverityType":{"type":"string","enum":["error","warn","info","ignore"]},"ViolationTypeType":{"type":"string","enum":["dependency","module","reachability","cycle","instability"]}}}
@@ -1,494 +1,2 @@
1
1
  /* generated - don't edit */
2
-
3
- module.exports = {
4
- title: "dependency-cruiser configuration",
5
- $schema: "http://json-schema.org/draft-07/schema#",
6
- $id: "https://dependency-cruiser.js.org/schema/configuration.schema.json",
7
- type: "object",
8
- additionalProperties: false,
9
- properties: {
10
- $schema: { type: "string" },
11
- forbidden: {
12
- type: "array",
13
- items: { $ref: "#/definitions/ForbiddenRuleType" },
14
- },
15
- allowed: {
16
- type: "array",
17
- items: { $ref: "#/definitions/AllowedRuleType" },
18
- },
19
- allowedSeverity: { $ref: "#/definitions/SeverityType" },
20
- required: {
21
- type: "array",
22
- items: { $ref: "#/definitions/RequiredRuleType" },
23
- },
24
- options: { $ref: "#/definitions/OptionsType" },
25
- extends: { $ref: "#/definitions/ExtendsType" },
26
- },
27
- definitions: {
28
- RuleSetType: {
29
- type: "object",
30
- additionalProperties: false,
31
- properties: {
32
- forbidden: {
33
- type: "array",
34
- items: { $ref: "#/definitions/ForbiddenRuleType" },
35
- },
36
- allowed: {
37
- type: "array",
38
- items: { $ref: "#/definitions/AllowedRuleType" },
39
- },
40
- allowedSeverity: { $ref: "#/definitions/SeverityType" },
41
- required: {
42
- type: "array",
43
- items: { $ref: "#/definitions/RequiredRuleType" },
44
- },
45
- },
46
- },
47
- AllowedRuleType: {
48
- oneOf: [
49
- { $ref: "#/definitions/RegularAllowedRuleType" },
50
- { $ref: "#/definitions/ReachabilityAllowedRuleType" },
51
- ],
52
- },
53
- RegularAllowedRuleType: {
54
- type: "object",
55
- required: ["from", "to"],
56
- additionalProperties: false,
57
- properties: {
58
- comment: { type: "string" },
59
- from: { $ref: "#/definitions/FromRestrictionType" },
60
- to: { $ref: "#/definitions/ToRestrictionType" },
61
- },
62
- },
63
- ReachabilityAllowedRuleType: {
64
- type: "object",
65
- required: ["from", "to"],
66
- additionalProperties: false,
67
- properties: {
68
- comment: { type: "string" },
69
- from: { $ref: "#/definitions/ReachabilityFromRestrictionType" },
70
- to: { $ref: "#/definitions/ReachabilityToRestrictionType" },
71
- },
72
- },
73
- ForbiddenRuleType: {
74
- oneOf: [
75
- { $ref: "#/definitions/RegularForbiddenRuleType" },
76
- { $ref: "#/definitions/ReachabilityForbiddenRuleType" },
77
- { $ref: "#/definitions/DependentsForbiddenRuleType" },
78
- ],
79
- },
80
- RegularForbiddenRuleType: {
81
- type: "object",
82
- required: ["from", "to"],
83
- additionalProperties: false,
84
- properties: {
85
- name: { type: "string" },
86
- severity: { $ref: "#/definitions/SeverityType" },
87
- comment: { type: "string" },
88
- from: { $ref: "#/definitions/FromRestrictionType" },
89
- to: { $ref: "#/definitions/ToRestrictionType" },
90
- },
91
- },
92
- DependentsForbiddenRuleType: {
93
- type: "object",
94
- required: ["module", "from"],
95
- additionalProperties: false,
96
- properties: {
97
- name: { type: "string" },
98
- severity: { $ref: "#/definitions/SeverityType" },
99
- comment: { type: "string" },
100
- module: { $ref: "#/definitions/DependentsModuleRestrictionType" },
101
- from: { $ref: "#/definitions/DependentsFromRestrictionType" },
102
- },
103
- },
104
- ReachabilityForbiddenRuleType: {
105
- type: "object",
106
- required: ["from", "to"],
107
- additionalProperties: false,
108
- properties: {
109
- name: { type: "string" },
110
- severity: { $ref: "#/definitions/SeverityType" },
111
- comment: { type: "string" },
112
- from: { $ref: "#/definitions/ReachabilityFromRestrictionType" },
113
- to: { $ref: "#/definitions/ReachabilityToRestrictionType" },
114
- },
115
- },
116
- RequiredRuleType: {
117
- type: "object",
118
- required: ["module", "to"],
119
- additionalProperties: false,
120
- properties: {
121
- name: { type: "string" },
122
- severity: { $ref: "#/definitions/SeverityType" },
123
- comment: { type: "string" },
124
- module: { $ref: "#/definitions/RequiredModuleRestrictionType" },
125
- to: { $ref: "#/definitions/RequiredToRestrictionType" },
126
- },
127
- },
128
- FromRestrictionType: {
129
- type: "object",
130
- additionalProperties: false,
131
- properties: {
132
- path: { $ref: "#/definitions/REAsStringsType" },
133
- pathNot: { $ref: "#/definitions/REAsStringsType" },
134
- orphan: { type: "boolean" },
135
- },
136
- },
137
- ReachabilityFromRestrictionType: {
138
- type: "object",
139
- additionalProperties: false,
140
- properties: {
141
- path: { $ref: "#/definitions/REAsStringsType" },
142
- pathNot: { $ref: "#/definitions/REAsStringsType" },
143
- },
144
- },
145
- ToRestrictionType: {
146
- type: "object",
147
- additionalProperties: false,
148
- properties: {
149
- path: { $ref: "#/definitions/REAsStringsType" },
150
- pathNot: { $ref: "#/definitions/REAsStringsType" },
151
- couldNotResolve: { type: "boolean" },
152
- circular: { type: "boolean" },
153
- dynamic: { type: "boolean" },
154
- exoticallyRequired: { type: "boolean" },
155
- exoticRequire: { $ref: "#/definitions/REAsStringsType" },
156
- exoticRequireNot: { $ref: "#/definitions/REAsStringsType" },
157
- preCompilationOnly: { type: "boolean" },
158
- dependencyTypes: {
159
- type: "array",
160
- items: { $ref: "#/definitions/DependencyTypeType" },
161
- },
162
- dependencyTypesNot: {
163
- type: "array",
164
- items: { $ref: "#/definitions/DependencyTypeType" },
165
- },
166
- moreThanOneDependencyType: { type: "boolean" },
167
- license: { $ref: "#/definitions/REAsStringsType" },
168
- licenseNot: { $ref: "#/definitions/REAsStringsType" },
169
- via: { $ref: "#/definitions/REAsStringsType" },
170
- viaNot: { $ref: "#/definitions/REAsStringsType" },
171
- },
172
- },
173
- DependentsModuleRestrictionType: {
174
- required: [],
175
- type: "object",
176
- additionalProperties: false,
177
- properties: {
178
- path: { $ref: "#/definitions/REAsStringsType" },
179
- pathNot: { $ref: "#/definitions/REAsStringsType" },
180
- numberOfDependentsLessThan: {
181
- type: "integer",
182
- minimum: 0,
183
- maximum: 100,
184
- },
185
- numberOfDependentsMoreThan: {
186
- type: "integer",
187
- minimum: 0,
188
- maximum: 100,
189
- },
190
- },
191
- },
192
- DependentsFromRestrictionType: {
193
- required: [],
194
- type: "object",
195
- additionalProperties: false,
196
- properties: {
197
- path: { $ref: "#/definitions/REAsStringsType" },
198
- pathNot: { $ref: "#/definitions/REAsStringsType" },
199
- },
200
- },
201
- ReachabilityToRestrictionType: {
202
- required: ["reachable"],
203
- type: "object",
204
- additionalProperties: false,
205
- properties: {
206
- path: { $ref: "#/definitions/REAsStringsType" },
207
- pathNot: { $ref: "#/definitions/REAsStringsType" },
208
- reachable: { type: "boolean" },
209
- },
210
- },
211
- RequiredModuleRestrictionType: {
212
- required: [],
213
- type: "object",
214
- additionalProperties: false,
215
- properties: {
216
- path: { $ref: "#/definitions/REAsStringsType" },
217
- pathNot: { $ref: "#/definitions/REAsStringsType" },
218
- },
219
- },
220
- RequiredToRestrictionType: {
221
- required: [],
222
- type: "object",
223
- additionalProperties: false,
224
- properties: { path: { $ref: "#/definitions/REAsStringsType" } },
225
- },
226
- DependencyTypeType: {
227
- type: "string",
228
- enum: [
229
- "aliased",
230
- "core",
231
- "deprecated",
232
- "local",
233
- "localmodule",
234
- "npm",
235
- "npm-bundled",
236
- "npm-dev",
237
- "npm-no-pkg",
238
- "npm-optional",
239
- "npm-peer",
240
- "npm-unknown",
241
- "undetermined",
242
- "unknown",
243
- "type-only",
244
- ],
245
- },
246
- REAsStringsType: {
247
- oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }],
248
- },
249
- SeverityType: { type: "string", enum: ["error", "warn", "info", "ignore"] },
250
- OptionsType: {
251
- type: "object",
252
- additionalProperties: false,
253
- properties: {
254
- doNotFollow: {
255
- oneOf: [
256
- { $ref: "#/definitions/REAsStringsType" },
257
- { $ref: "#/definitions/CompoundDoNotFollowType" },
258
- ],
259
- },
260
- exclude: {
261
- oneOf: [
262
- { $ref: "#/definitions/REAsStringsType" },
263
- { $ref: "#/definitions/CompoundExcludeType" },
264
- ],
265
- },
266
- includeOnly: {
267
- oneOf: [
268
- { $ref: "#/definitions/REAsStringsType" },
269
- { $ref: "#/definitions/CompoundIncludeOnlyType" },
270
- ],
271
- },
272
- focus: {
273
- oneOf: [
274
- { $ref: "#/definitions/REAsStringsType" },
275
- { $ref: "#/definitions/CompoundFocusType" },
276
- ],
277
- },
278
- knownViolations: { $ref: "#/definitions/ViolationsType" },
279
- collapse: {
280
- oneOf: [
281
- { type: "string" },
282
- { type: "integer", minimum: 1, maximum: 9 },
283
- ],
284
- },
285
- maxDepth: { type: "integer", minimum: 0, maximum: 99 },
286
- moduleSystems: { $ref: "#/definitions/ModuleSystemsType" },
287
- prefix: { type: "string" },
288
- preserveSymlinks: { type: "boolean" },
289
- combinedDependencies: { type: "boolean" },
290
- tsConfig: {
291
- type: "object",
292
- additionalProperties: false,
293
- properties: { fileName: { type: "string" } },
294
- },
295
- tsPreCompilationDeps: {
296
- oneOf: [{ type: "boolean" }, { type: "string", enum: ["specify"] }],
297
- },
298
- extraExtensionsToScan: { type: "array", items: { type: "string" } },
299
- externalModuleResolutionStrategy: {
300
- type: "string",
301
- enum: ["node_modules", "yarn-pnp"],
302
- },
303
- forceDeriveDependents: { type: "boolean" },
304
- webpackConfig: {
305
- type: "object",
306
- additionalProperties: false,
307
- properties: {
308
- fileName: { type: "string" },
309
- env: { oneOf: [{ type: "object" }, { type: "string" }] },
310
- arguments: { type: "object" },
311
- },
312
- },
313
- enhancedResolveOptions: {
314
- type: "object",
315
- additionalProperties: false,
316
- properties: {
317
- exportsFields: { type: "array", items: { type: "string" } },
318
- conditionNames: { type: "array", items: { type: "string" } },
319
- extensions: { type: "array", items: { type: "string" } },
320
- cachedInputFileSystem: {
321
- type: "object",
322
- additionalProperties: false,
323
- properties: {
324
- cacheDuration: {
325
- type: "integer",
326
- minimum: 0,
327
- maximum: 1800000,
328
- },
329
- },
330
- },
331
- },
332
- },
333
- babelConfig: {
334
- type: "object",
335
- additionalProperties: false,
336
- properties: { fileName: { type: "string" } },
337
- },
338
- parser: { type: "string", enum: ["acorn", "swc", "tsc"] },
339
- exoticRequireStrings: { type: "array", items: { type: "string" } },
340
- reporterOptions: { $ref: "#/definitions/ReporterOptionsType" },
341
- progress: {
342
- type: "object",
343
- additionalProperties: false,
344
- properties: {
345
- type: {
346
- type: "string",
347
- enum: ["cli-feedback", "performance-log", "none"],
348
- },
349
- },
350
- },
351
- baseDir: { type: "string" },
352
- },
353
- },
354
- ModuleSystemType: { type: "string", enum: ["cjs", "es6", "amd", "tsd"] },
355
- ModuleSystemsType: {
356
- type: "array",
357
- items: { $ref: "#/definitions/ModuleSystemType" },
358
- },
359
- CompoundExcludeType: {
360
- type: "object",
361
- additionalProperties: false,
362
- properties: {
363
- path: { $ref: "#/definitions/REAsStringsType" },
364
- dynamic: { type: "boolean" },
365
- },
366
- },
367
- CompoundDoNotFollowType: {
368
- type: "object",
369
- additionalProperties: false,
370
- properties: {
371
- path: { $ref: "#/definitions/REAsStringsType" },
372
- dependencyTypes: {
373
- type: "array",
374
- items: { $ref: "#/definitions/DependencyTypeType" },
375
- },
376
- },
377
- },
378
- CompoundIncludeOnlyType: {
379
- type: "object",
380
- additionalProperties: false,
381
- properties: { path: { $ref: "#/definitions/REAsStringsType" } },
382
- },
383
- CompoundFocusType: {
384
- type: "object",
385
- additionalProperties: false,
386
- properties: { path: { $ref: "#/definitions/REAsStringsType" } },
387
- },
388
- ReporterOptionsType: {
389
- type: "object",
390
- additionalProperties: false,
391
- properties: {
392
- anon: { $ref: "#/definitions/AnonReporterOptionsType" },
393
- archi: { $ref: "#/definitions/DotReporterOptionsType" },
394
- dot: { $ref: "#/definitions/DotReporterOptionsType" },
395
- ddot: { $ref: "#/definitions/DotReporterOptionsType" },
396
- flat: { $ref: "#/definitions/DotReporterOptionsType" },
397
- metrics: { $ref: "#/definitions/MetricsReporterOptionsType" },
398
- },
399
- },
400
- AnonReporterOptionsType: {
401
- type: "object",
402
- additionalProperties: false,
403
- properties: { wordlist: { type: "array", items: { type: "string" } } },
404
- },
405
- MetricsReporterOptionsType: {
406
- type: "object",
407
- additionalProperties: false,
408
- properties: {
409
- orderBy: {
410
- type: "string",
411
- enum: [
412
- "instability",
413
- "moduleCount",
414
- "afferentCouplings",
415
- "efferentCouplings",
416
- "name",
417
- ],
418
- },
419
- hideModules: { type: "boolean" },
420
- hideFolders: { type: "boolean" },
421
- },
422
- },
423
- DotReporterOptionsType: {
424
- type: "object",
425
- additionalProperties: false,
426
- properties: {
427
- collapsePattern: { $ref: "#/definitions/REAsStringsType" },
428
- filters: { $ref: "#/definitions/ReporterFiltersType" },
429
- theme: { $ref: "#/definitions/DotThemeType" },
430
- },
431
- },
432
- DotThemeType: {
433
- type: "object",
434
- additionalProperties: false,
435
- properties: {
436
- replace: { type: "boolean" },
437
- graph: { type: "object" },
438
- node: { type: "object" },
439
- edge: { type: "object" },
440
- modules: { $ref: "#/definitions/DotThemeArrayType" },
441
- dependencies: { $ref: "#/definitions/DotThemeArrayType" },
442
- },
443
- },
444
- DotThemeArrayType: {
445
- type: "array",
446
- items: { $ref: "#/definitions/DotThemeEntryType" },
447
- },
448
- DotThemeEntryType: {
449
- type: "object",
450
- additionalProperties: false,
451
- properties: {
452
- criteria: { type: "object" },
453
- attributes: { type: "object" },
454
- },
455
- },
456
- ReporterFiltersType: {
457
- type: "object",
458
- additionalProperties: false,
459
- properties: {
460
- exclude: { $ref: "#/definitions/CompoundExcludeType" },
461
- includeOnly: { $ref: "#/definitions/CompoundIncludeOnlyType" },
462
- focus: { $ref: "#/definitions/CompoundFocusType" },
463
- },
464
- },
465
- ViolationsType: {
466
- type: "array",
467
- items: { $ref: "#/definitions/ViolationType" },
468
- },
469
- ViolationType: {
470
- type: "object",
471
- required: ["from", "to", "rule"],
472
- additionalProperties: false,
473
- properties: {
474
- from: { type: "string" },
475
- to: { type: "string" },
476
- rule: { $ref: "#/definitions/RuleSummaryType" },
477
- cycle: { type: "array", items: { type: "string" } },
478
- via: { type: "array", items: { type: "string" } },
479
- },
480
- },
481
- RuleSummaryType: {
482
- type: "object",
483
- required: ["name", "severity"],
484
- additionalProperties: false,
485
- properties: {
486
- name: { type: "string" },
487
- severity: { $ref: "#/definitions/SeverityType" },
488
- },
489
- },
490
- ExtendsType: {
491
- oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }],
492
- },
493
- },
494
- };
2
+ module.exports={"title":"dependency-cruiser configuration","$schema":"http://json-schema.org/draft-07/schema#","$id":"https://dependency-cruiser.js.org/schema/configuration.schema.json","type":"object","additionalProperties":false,"properties":{"$schema":{"type":"string"},"forbidden":{"type":"array","items":{"$ref":"#/definitions/ForbiddenRuleType"}},"allowed":{"type":"array","items":{"$ref":"#/definitions/AllowedRuleType"}},"allowedSeverity":{"$ref":"#/definitions/SeverityType"},"required":{"type":"array","items":{"$ref":"#/definitions/RequiredRuleType"}},"options":{"$ref":"#/definitions/OptionsType"},"extends":{"$ref":"#/definitions/ExtendsType"}},"definitions":{"RuleSetType":{"type":"object","additionalProperties":false,"properties":{"forbidden":{"type":"array","items":{"$ref":"#/definitions/ForbiddenRuleType"}},"allowed":{"type":"array","items":{"$ref":"#/definitions/AllowedRuleType"}},"allowedSeverity":{"$ref":"#/definitions/SeverityType"},"required":{"type":"array","items":{"$ref":"#/definitions/RequiredRuleType"}}}},"AllowedRuleType":{"oneOf":[{"$ref":"#/definitions/RegularAllowedRuleType"},{"$ref":"#/definitions/ReachabilityAllowedRuleType"}]},"RegularAllowedRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"comment":{"type":"string"},"from":{"$ref":"#/definitions/FromRestrictionType"},"to":{"$ref":"#/definitions/ToRestrictionType"}}},"ReachabilityAllowedRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"comment":{"type":"string"},"from":{"$ref":"#/definitions/ReachabilityFromRestrictionType"},"to":{"$ref":"#/definitions/ReachabilityToRestrictionType"}}},"ForbiddenRuleType":{"oneOf":[{"$ref":"#/definitions/RegularForbiddenRuleType"},{"$ref":"#/definitions/ReachabilityForbiddenRuleType"},{"$ref":"#/definitions/DependentsForbiddenRuleType"}]},"RegularForbiddenRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"comment":{"type":"string"},"from":{"$ref":"#/definitions/FromRestrictionType"},"to":{"$ref":"#/definitions/ToRestrictionType"}}},"DependentsForbiddenRuleType":{"type":"object","required":["module","from"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"comment":{"type":"string"},"module":{"$ref":"#/definitions/DependentsModuleRestrictionType"},"from":{"$ref":"#/definitions/DependentsFromRestrictionType"}}},"ReachabilityForbiddenRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"comment":{"type":"string"},"from":{"$ref":"#/definitions/ReachabilityFromRestrictionType"},"to":{"$ref":"#/definitions/ReachabilityToRestrictionType"}}},"RequiredRuleType":{"type":"object","required":["module","to"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"comment":{"type":"string"},"module":{"$ref":"#/definitions/RequiredModuleRestrictionType"},"to":{"$ref":"#/definitions/RequiredToRestrictionType"}}},"FromRestrictionType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"orphan":{"type":"boolean"}}},"ReachabilityFromRestrictionType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"}}},"ToRestrictionType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"couldNotResolve":{"type":"boolean"},"circular":{"type":"boolean"},"dynamic":{"type":"boolean"},"exoticallyRequired":{"type":"boolean"},"exoticRequire":{"$ref":"#/definitions/REAsStringsType"},"exoticRequireNot":{"$ref":"#/definitions/REAsStringsType"},"preCompilationOnly":{"type":"boolean"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"dependencyTypesNot":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"moreThanOneDependencyType":{"type":"boolean"},"license":{"$ref":"#/definitions/REAsStringsType"},"licenseNot":{"$ref":"#/definitions/REAsStringsType"},"via":{"$ref":"#/definitions/REAsStringsType"},"viaNot":{"$ref":"#/definitions/REAsStringsType"},"moreUnstable":{"type":"boolean"}}},"DependentsModuleRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"numberOfDependentsLessThan":{"type":"integer","minimum":0,"maximum":100},"numberOfDependentsMoreThan":{"type":"integer","minimum":0,"maximum":100}}},"DependentsFromRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"}}},"ReachabilityToRestrictionType":{"required":["reachable"],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"reachable":{"type":"boolean"}}},"RequiredModuleRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"}}},"RequiredToRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"}}},"DependencyTypeType":{"type":"string","enum":["aliased","core","deprecated","local","localmodule","npm","npm-bundled","npm-dev","npm-no-pkg","npm-optional","npm-peer","npm-unknown","undetermined","unknown","type-only"]},"REAsStringsType":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"SeverityType":{"type":"string","enum":["error","warn","info","ignore"]},"OptionsType":{"type":"object","additionalProperties":false,"properties":{"doNotFollow":{"oneOf":[{"$ref":"#/definitions/REAsStringsType"},{"$ref":"#/definitions/CompoundDoNotFollowType"}]},"exclude":{"oneOf":[{"$ref":"#/definitions/REAsStringsType"},{"$ref":"#/definitions/CompoundExcludeType"}]},"includeOnly":{"oneOf":[{"$ref":"#/definitions/REAsStringsType"},{"$ref":"#/definitions/CompoundIncludeOnlyType"}]},"focus":{"oneOf":[{"$ref":"#/definitions/REAsStringsType"},{"$ref":"#/definitions/CompoundFocusType"}]},"knownViolations":{"$ref":"#/definitions/ViolationsType"},"collapse":{"oneOf":[{"type":"string"},{"type":"integer","minimum":1,"maximum":9}]},"maxDepth":{"type":"integer","minimum":0,"maximum":99},"moduleSystems":{"$ref":"#/definitions/ModuleSystemsType"},"prefix":{"type":"string"},"preserveSymlinks":{"type":"boolean"},"combinedDependencies":{"type":"boolean"},"tsConfig":{"type":"object","additionalProperties":false,"properties":{"fileName":{"type":"string"}}},"tsPreCompilationDeps":{"oneOf":[{"type":"boolean"},{"type":"string","enum":["specify"]}]},"extraExtensionsToScan":{"type":"array","items":{"type":"string"}},"externalModuleResolutionStrategy":{"type":"string","enum":["node_modules","yarn-pnp"]},"forceDeriveDependents":{"type":"boolean"},"webpackConfig":{"type":"object","additionalProperties":false,"properties":{"fileName":{"type":"string"},"env":{"oneOf":[{"type":"object"},{"type":"string"}]},"arguments":{"type":"object"}}},"enhancedResolveOptions":{"type":"object","additionalProperties":false,"properties":{"exportsFields":{"type":"array","items":{"type":"string"}},"conditionNames":{"type":"array","items":{"type":"string"}},"extensions":{"type":"array","items":{"type":"string"}},"cachedInputFileSystem":{"type":"object","additionalProperties":false,"properties":{"cacheDuration":{"type":"integer","minimum":0,"maximum":1800000}}}}},"babelConfig":{"type":"object","additionalProperties":false,"properties":{"fileName":{"type":"string"}}},"parser":{"type":"string","enum":["acorn","swc","tsc"]},"exoticRequireStrings":{"type":"array","items":{"type":"string"}},"reporterOptions":{"$ref":"#/definitions/ReporterOptionsType"},"progress":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["cli-feedback","performance-log","none"]}}},"metrics":{"type":"boolean"},"baseDir":{"type":"string"}}},"ModuleSystemType":{"type":"string","enum":["cjs","es6","amd","tsd"]},"ModuleSystemsType":{"type":"array","items":{"$ref":"#/definitions/ModuleSystemType"}},"CompoundExcludeType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"dynamic":{"type":"boolean"}}},"CompoundDoNotFollowType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}}}},"CompoundIncludeOnlyType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"}}},"CompoundFocusType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"}}},"ReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"anon":{"$ref":"#/definitions/AnonReporterOptionsType"},"archi":{"$ref":"#/definitions/DotReporterOptionsType"},"dot":{"$ref":"#/definitions/DotReporterOptionsType"},"ddot":{"$ref":"#/definitions/DotReporterOptionsType"},"flat":{"$ref":"#/definitions/DotReporterOptionsType"},"metrics":{"$ref":"#/definitions/MetricsReporterOptionsType"}}},"AnonReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"wordlist":{"type":"array","items":{"type":"string"}}}},"MetricsReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"orderBy":{"type":"string","enum":["instability","moduleCount","afferentCouplings","efferentCouplings","name"]},"hideModules":{"type":"boolean"},"hideFolders":{"type":"boolean"}}},"DotReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"collapsePattern":{"$ref":"#/definitions/REAsStringsType"},"filters":{"$ref":"#/definitions/ReporterFiltersType"},"showMetrics":{"type":"boolean"},"theme":{"$ref":"#/definitions/DotThemeType"}}},"DotThemeType":{"type":"object","additionalProperties":false,"properties":{"replace":{"type":"boolean"},"graph":{"type":"object"},"node":{"type":"object"},"edge":{"type":"object"},"modules":{"$ref":"#/definitions/DotThemeArrayType"},"dependencies":{"$ref":"#/definitions/DotThemeArrayType"}}},"DotThemeArrayType":{"type":"array","items":{"$ref":"#/definitions/DotThemeEntryType"}},"DotThemeEntryType":{"type":"object","additionalProperties":false,"properties":{"criteria":{"type":"object"},"attributes":{"type":"object"}}},"ReporterFiltersType":{"type":"object","additionalProperties":false,"properties":{"exclude":{"$ref":"#/definitions/CompoundExcludeType"},"includeOnly":{"$ref":"#/definitions/CompoundIncludeOnlyType"},"focus":{"$ref":"#/definitions/CompoundFocusType"}}},"ViolationsType":{"type":"array","items":{"$ref":"#/definitions/ViolationType"}},"ViolationType":{"type":"object","required":["from","to","rule"],"additionalProperties":false,"properties":{"from":{"type":"string"},"to":{"type":"string"},"type":{"$ref":"#/definitions/ViolationTypeType"},"rule":{"$ref":"#/definitions/RuleSummaryType"},"cycle":{"type":"array","items":{"type":"string"}},"via":{"type":"array","items":{"type":"string"}},"metrics":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"from":{"type":"object","required":["instability"],"additionalProperties":false,"properties":{"instability":{"type":"number"}}},"to":{"type":"object","required":["instability"],"additionalProperties":false,"properties":{"instability":{"type":"number"}}}}}}},"RuleSummaryType":{"type":"object","required":["name","severity"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"}}},"ViolationTypeType":{"type":"string","enum":["dependency","module","reachability","cycle","instability"]},"ExtendsType":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}}}