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,643 +1,2 @@
1
1
  /* generated - don't edit */
2
-
3
- module.exports = {
4
- title: "dependency-cruiser output format",
5
- $schema: "http://json-schema.org/draft-07/schema#",
6
- $id: "https://dependency-cruiser.js.org/schema/cruise-result.schema.json",
7
- type: "object",
8
- required: ["summary", "modules"],
9
- additionalProperties: false,
10
- properties: {
11
- modules: { $ref: "#/definitions/ModulesType" },
12
- folders: { $ref: "#/definitions/FoldersType" },
13
- summary: { $ref: "#/definitions/SummaryType" },
14
- },
15
- definitions: {
16
- ModulesType: { type: "array", items: { $ref: "#/definitions/ModuleType" } },
17
- ModuleType: {
18
- type: "object",
19
- required: ["source", "dependencies", "valid"],
20
- additionalProperties: false,
21
- properties: {
22
- source: { type: "string" },
23
- valid: { type: "boolean" },
24
- dependencies: { $ref: "#/definitions/DependenciesType" },
25
- dependents: { type: "array", items: { type: "string" } },
26
- followable: { type: "boolean" },
27
- matchesDoNotFollow: { type: "boolean" },
28
- matchesFocus: { type: "boolean" },
29
- coreModule: { type: "boolean" },
30
- couldNotResolve: { type: "boolean" },
31
- dependencyTypes: {
32
- type: "array",
33
- items: { $ref: "#/definitions/DependencyTypeType" },
34
- },
35
- license: { type: "string" },
36
- orphan: { type: "boolean" },
37
- reachable: {
38
- type: "array",
39
- items: { $ref: "#/definitions/ReachableType" },
40
- },
41
- reaches: {
42
- type: "array",
43
- items: { $ref: "#/definitions/ReachesType" },
44
- },
45
- rules: {
46
- type: "array",
47
- items: { $ref: "#/definitions/RuleSummaryType" },
48
- },
49
- consolidated: { type: "boolean" },
50
- instability: { type: "number" },
51
- },
52
- },
53
- ReachableType: {
54
- type: "object",
55
- required: ["value", "asDefinedInRule", "matchedFrom"],
56
- additionalProperties: false,
57
- properties: {
58
- value: { type: "boolean" },
59
- asDefinedInRule: { type: "string" },
60
- matchedFrom: { type: "string" },
61
- },
62
- },
63
- ReachesType: {
64
- type: "object",
65
- required: ["modules", "asDefinedInRule"],
66
- additionalProperties: false,
67
- properties: {
68
- modules: {
69
- type: "array",
70
- items: {
71
- type: "object",
72
- required: ["source", "via"],
73
- additionalProperties: false,
74
- properties: {
75
- source: { type: "string" },
76
- via: { type: "array", items: { type: "string" } },
77
- },
78
- },
79
- },
80
- asDefinedInRule: { type: "string" },
81
- },
82
- },
83
- DependenciesType: {
84
- type: "array",
85
- items: { $ref: "#/definitions/DependencyType" },
86
- },
87
- DependencyType: {
88
- type: "object",
89
- required: [
90
- "circular",
91
- "coreModule",
92
- "couldNotResolve",
93
- "dependencyTypes",
94
- "exoticallyRequired",
95
- "dynamic",
96
- "followable",
97
- "module",
98
- "moduleSystem",
99
- "resolved",
100
- "valid",
101
- ],
102
- additionalProperties: false,
103
- properties: {
104
- module: { type: "string" },
105
- protocol: { type: "string", enum: ["data:", "file:", "node:"] },
106
- mimeType: { type: "string" },
107
- resolved: { type: "string" },
108
- coreModule: { type: "boolean" },
109
- dependencyTypes: {
110
- type: "array",
111
- items: { $ref: "#/definitions/DependencyTypeType" },
112
- },
113
- license: { type: "string" },
114
- followable: { type: "boolean" },
115
- dynamic: { type: "boolean" },
116
- exoticallyRequired: { type: "boolean" },
117
- exoticRequire: { type: "string" },
118
- matchesDoNotFollow: { type: "boolean" },
119
- couldNotResolve: { type: "boolean" },
120
- preCompilationOnly: { type: "boolean" },
121
- typeOnly: { type: "boolean" },
122
- circular: { type: "boolean" },
123
- cycle: { type: "array", items: { type: "string" } },
124
- moduleSystem: { $ref: "#/definitions/ModuleSystemType" },
125
- valid: { type: "boolean" },
126
- rules: {
127
- type: "array",
128
- items: { $ref: "#/definitions/RuleSummaryType" },
129
- },
130
- },
131
- },
132
- DependencyTypeType: {
133
- type: "string",
134
- enum: [
135
- "aliased",
136
- "core",
137
- "deprecated",
138
- "local",
139
- "localmodule",
140
- "npm",
141
- "npm-bundled",
142
- "npm-dev",
143
- "npm-no-pkg",
144
- "npm-optional",
145
- "npm-peer",
146
- "npm-unknown",
147
- "undetermined",
148
- "unknown",
149
- "type-only",
150
- ],
151
- },
152
- ModuleSystemType: { type: "string", enum: ["cjs", "es6", "amd", "tsd"] },
153
- RuleSummaryType: {
154
- type: "object",
155
- required: ["name", "severity"],
156
- additionalProperties: false,
157
- properties: {
158
- name: { type: "string" },
159
- severity: { $ref: "#/definitions/SeverityType" },
160
- },
161
- },
162
- SeverityType: { type: "string", enum: ["error", "warn", "info", "ignore"] },
163
- FoldersType: { type: "array", items: { $ref: "#/definitions/FolderType" } },
164
- FolderType: {
165
- type: "object",
166
- required: ["name", "moduleCount"],
167
- additionalProperties: false,
168
- properties: {
169
- name: { type: "string" },
170
- dependents: { type: "array", items: { type: "string" } },
171
- dependencies: { type: "array", items: { type: "string" } },
172
- moduleCount: { type: "number" },
173
- afferentCouplings: { type: "number" },
174
- efferentCouplings: { type: "number" },
175
- instability: { type: "number" },
176
- },
177
- },
178
- SummaryType: {
179
- type: "object",
180
- required: [
181
- "violations",
182
- "error",
183
- "warn",
184
- "info",
185
- "totalCruised",
186
- "optionsUsed",
187
- ],
188
- additionalProperties: false,
189
- properties: {
190
- violations: { $ref: "#/definitions/ViolationsType" },
191
- error: { type: "number" },
192
- warn: { type: "number" },
193
- info: { type: "number" },
194
- ignore: { type: "number" },
195
- totalCruised: { type: "number" },
196
- totalDependenciesCruised: { type: "number" },
197
- ruleSetUsed: { $ref: "#/definitions/RuleSetType" },
198
- optionsUsed: { $ref: "#/definitions/OptionsUsedType" },
199
- },
200
- },
201
- ViolationsType: {
202
- type: "array",
203
- items: { $ref: "#/definitions/ViolationType" },
204
- },
205
- ViolationType: {
206
- type: "object",
207
- required: ["from", "to", "rule"],
208
- additionalProperties: false,
209
- properties: {
210
- from: { type: "string" },
211
- to: { type: "string" },
212
- rule: { $ref: "#/definitions/RuleSummaryType" },
213
- cycle: { type: "array", items: { type: "string" } },
214
- via: { type: "array", items: { type: "string" } },
215
- },
216
- },
217
- RuleSetType: {
218
- type: "object",
219
- additionalProperties: false,
220
- properties: {
221
- forbidden: {
222
- type: "array",
223
- items: { $ref: "#/definitions/ForbiddenRuleType" },
224
- },
225
- allowed: {
226
- type: "array",
227
- items: { $ref: "#/definitions/AllowedRuleType" },
228
- },
229
- allowedSeverity: { $ref: "#/definitions/SeverityType" },
230
- required: {
231
- type: "array",
232
- items: { $ref: "#/definitions/RequiredRuleType" },
233
- },
234
- },
235
- },
236
- AllowedRuleType: {
237
- oneOf: [
238
- { $ref: "#/definitions/RegularAllowedRuleType" },
239
- { $ref: "#/definitions/ReachabilityAllowedRuleType" },
240
- ],
241
- },
242
- RegularAllowedRuleType: {
243
- type: "object",
244
- required: ["from", "to"],
245
- additionalProperties: false,
246
- properties: {
247
- comment: { type: "string" },
248
- from: { $ref: "#/definitions/FromRestrictionType" },
249
- to: { $ref: "#/definitions/ToRestrictionType" },
250
- },
251
- },
252
- ReachabilityAllowedRuleType: {
253
- type: "object",
254
- required: ["from", "to"],
255
- additionalProperties: false,
256
- properties: {
257
- comment: { type: "string" },
258
- from: { $ref: "#/definitions/ReachabilityFromRestrictionType" },
259
- to: { $ref: "#/definitions/ReachabilityToRestrictionType" },
260
- },
261
- },
262
- ForbiddenRuleType: {
263
- oneOf: [
264
- { $ref: "#/definitions/RegularForbiddenRuleType" },
265
- { $ref: "#/definitions/ReachabilityForbiddenRuleType" },
266
- { $ref: "#/definitions/DependentsForbiddenRuleType" },
267
- ],
268
- },
269
- RegularForbiddenRuleType: {
270
- type: "object",
271
- required: ["from", "to"],
272
- additionalProperties: false,
273
- properties: {
274
- name: { type: "string" },
275
- severity: { $ref: "#/definitions/SeverityType" },
276
- comment: { type: "string" },
277
- from: { $ref: "#/definitions/FromRestrictionType" },
278
- to: { $ref: "#/definitions/ToRestrictionType" },
279
- },
280
- },
281
- DependentsForbiddenRuleType: {
282
- type: "object",
283
- required: ["module", "from"],
284
- additionalProperties: false,
285
- properties: {
286
- name: { type: "string" },
287
- severity: { $ref: "#/definitions/SeverityType" },
288
- comment: { type: "string" },
289
- module: { $ref: "#/definitions/DependentsModuleRestrictionType" },
290
- from: { $ref: "#/definitions/DependentsFromRestrictionType" },
291
- },
292
- },
293
- ReachabilityForbiddenRuleType: {
294
- type: "object",
295
- required: ["from", "to"],
296
- additionalProperties: false,
297
- properties: {
298
- name: { type: "string" },
299
- severity: { $ref: "#/definitions/SeverityType" },
300
- comment: { type: "string" },
301
- from: { $ref: "#/definitions/ReachabilityFromRestrictionType" },
302
- to: { $ref: "#/definitions/ReachabilityToRestrictionType" },
303
- },
304
- },
305
- RequiredRuleType: {
306
- type: "object",
307
- required: ["module", "to"],
308
- additionalProperties: false,
309
- properties: {
310
- name: { type: "string" },
311
- severity: { $ref: "#/definitions/SeverityType" },
312
- comment: { type: "string" },
313
- module: { $ref: "#/definitions/RequiredModuleRestrictionType" },
314
- to: { $ref: "#/definitions/RequiredToRestrictionType" },
315
- },
316
- },
317
- FromRestrictionType: {
318
- type: "object",
319
- additionalProperties: false,
320
- properties: {
321
- path: { $ref: "#/definitions/REAsStringsType" },
322
- pathNot: { $ref: "#/definitions/REAsStringsType" },
323
- orphan: { type: "boolean" },
324
- },
325
- },
326
- ReachabilityFromRestrictionType: {
327
- type: "object",
328
- additionalProperties: false,
329
- properties: {
330
- path: { $ref: "#/definitions/REAsStringsType" },
331
- pathNot: { $ref: "#/definitions/REAsStringsType" },
332
- },
333
- },
334
- ToRestrictionType: {
335
- type: "object",
336
- additionalProperties: false,
337
- properties: {
338
- path: { $ref: "#/definitions/REAsStringsType" },
339
- pathNot: { $ref: "#/definitions/REAsStringsType" },
340
- couldNotResolve: { type: "boolean" },
341
- circular: { type: "boolean" },
342
- dynamic: { type: "boolean" },
343
- exoticallyRequired: { type: "boolean" },
344
- exoticRequire: { $ref: "#/definitions/REAsStringsType" },
345
- exoticRequireNot: { $ref: "#/definitions/REAsStringsType" },
346
- preCompilationOnly: { type: "boolean" },
347
- dependencyTypes: {
348
- type: "array",
349
- items: { $ref: "#/definitions/DependencyTypeType" },
350
- },
351
- dependencyTypesNot: {
352
- type: "array",
353
- items: { $ref: "#/definitions/DependencyTypeType" },
354
- },
355
- moreThanOneDependencyType: { type: "boolean" },
356
- license: { $ref: "#/definitions/REAsStringsType" },
357
- licenseNot: { $ref: "#/definitions/REAsStringsType" },
358
- via: { $ref: "#/definitions/REAsStringsType" },
359
- viaNot: { $ref: "#/definitions/REAsStringsType" },
360
- },
361
- },
362
- DependentsModuleRestrictionType: {
363
- required: [],
364
- type: "object",
365
- additionalProperties: false,
366
- properties: {
367
- path: { $ref: "#/definitions/REAsStringsType" },
368
- pathNot: { $ref: "#/definitions/REAsStringsType" },
369
- numberOfDependentsLessThan: {
370
- type: "integer",
371
- minimum: 0,
372
- maximum: 100,
373
- },
374
- numberOfDependentsMoreThan: {
375
- type: "integer",
376
- minimum: 0,
377
- maximum: 100,
378
- },
379
- },
380
- },
381
- DependentsFromRestrictionType: {
382
- required: [],
383
- type: "object",
384
- additionalProperties: false,
385
- properties: {
386
- path: { $ref: "#/definitions/REAsStringsType" },
387
- pathNot: { $ref: "#/definitions/REAsStringsType" },
388
- },
389
- },
390
- ReachabilityToRestrictionType: {
391
- required: ["reachable"],
392
- type: "object",
393
- additionalProperties: false,
394
- properties: {
395
- path: { $ref: "#/definitions/REAsStringsType" },
396
- pathNot: { $ref: "#/definitions/REAsStringsType" },
397
- reachable: { type: "boolean" },
398
- },
399
- },
400
- RequiredModuleRestrictionType: {
401
- required: [],
402
- type: "object",
403
- additionalProperties: false,
404
- properties: {
405
- path: { $ref: "#/definitions/REAsStringsType" },
406
- pathNot: { $ref: "#/definitions/REAsStringsType" },
407
- },
408
- },
409
- RequiredToRestrictionType: {
410
- required: [],
411
- type: "object",
412
- additionalProperties: false,
413
- properties: { path: { $ref: "#/definitions/REAsStringsType" } },
414
- },
415
- REAsStringsType: {
416
- oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }],
417
- },
418
- OptionsUsedType: {
419
- type: "object",
420
- additionalProperties: false,
421
- properties: {
422
- doNotFollow: { $ref: "#/definitions/CompoundDoNotFollowType" },
423
- exclude: { $ref: "#/definitions/CompoundExcludeType" },
424
- includeOnly: {
425
- oneOf: [
426
- { $ref: "#/definitions/REAsStringsType" },
427
- { $ref: "#/definitions/CompoundIncludeOnlyType" },
428
- ],
429
- },
430
- focus: { $ref: "#/definitions/CompoundFocusType" },
431
- knownViolations: { $ref: "#/definitions/ViolationsType" },
432
- collapse: { type: "string" },
433
- maxDepth: { type: "integer", minimum: 0, maximum: 99 },
434
- moduleSystems: { $ref: "#/definitions/ModuleSystemsType" },
435
- prefix: { type: "string" },
436
- preserveSymlinks: { type: "boolean" },
437
- combinedDependencies: { type: "boolean" },
438
- tsConfig: {
439
- type: "object",
440
- additionalProperties: false,
441
- properties: { fileName: { type: "string" } },
442
- },
443
- tsPreCompilationDeps: {
444
- oneOf: [{ type: "boolean" }, { type: "string", enum: ["specify"] }],
445
- },
446
- extraExtensionsToScan: { type: "array", items: { type: "string" } },
447
- externalModuleResolutionStrategy: {
448
- type: "string",
449
- enum: ["node_modules", "yarn-pnp"],
450
- },
451
- forceDeriveDependents: { type: "boolean" },
452
- webpackConfig: {
453
- type: "object",
454
- additionalProperties: false,
455
- properties: {
456
- fileName: { type: "string" },
457
- env: { oneOf: [{ type: "object" }, { type: "string" }] },
458
- arguments: { type: "object" },
459
- },
460
- },
461
- enhancedResolveOptions: {
462
- type: "object",
463
- additionalProperties: false,
464
- properties: {
465
- exportsFields: { type: "array", items: { type: "string" } },
466
- conditionNames: { type: "array", items: { type: "string" } },
467
- extensions: { type: "array", items: { type: "string" } },
468
- cachedInputFileSystem: {
469
- type: "object",
470
- additionalProperties: false,
471
- properties: {
472
- cacheDuration: {
473
- type: "integer",
474
- minimum: 0,
475
- maximum: 1800000,
476
- },
477
- },
478
- },
479
- },
480
- },
481
- babelConfig: {
482
- type: "object",
483
- additionalProperties: false,
484
- properties: { fileName: { type: "string" } },
485
- },
486
- parser: { type: "string", enum: ["acorn", "swc", "tsc"] },
487
- exoticRequireStrings: { type: "array", items: { type: "string" } },
488
- reporterOptions: { $ref: "#/definitions/ReporterOptionsType" },
489
- progress: {
490
- type: "object",
491
- additionalProperties: false,
492
- properties: {
493
- type: {
494
- type: "string",
495
- enum: ["cli-feedback", "performance-log", "none"],
496
- },
497
- },
498
- },
499
- baseDir: { type: "string" },
500
- args: { type: "string" },
501
- rulesFile: { type: "string" },
502
- outputTo: { type: "string" },
503
- outputType: { $ref: "#/definitions/OutputType" },
504
- },
505
- },
506
- ModuleSystemsType: {
507
- type: "array",
508
- items: { $ref: "#/definitions/ModuleSystemType" },
509
- },
510
- OutputType: {
511
- oneOf: [
512
- {
513
- type: "string",
514
- enum: [
515
- "json",
516
- "html",
517
- "dot",
518
- "ddot",
519
- "cdot",
520
- "archi",
521
- "fdot",
522
- "flat",
523
- "csv",
524
- "err",
525
- "err-long",
526
- "err-html",
527
- "teamcity",
528
- "anon",
529
- "text",
530
- "metrics",
531
- ],
532
- },
533
- { type: "string", pattern: "^plugin:[^:]+$" },
534
- ],
535
- },
536
- CompoundExcludeType: {
537
- type: "object",
538
- additionalProperties: false,
539
- properties: {
540
- path: { $ref: "#/definitions/REAsStringsType" },
541
- dynamic: { type: "boolean" },
542
- },
543
- },
544
- CompoundDoNotFollowType: {
545
- type: "object",
546
- additionalProperties: false,
547
- properties: {
548
- path: { $ref: "#/definitions/REAsStringsType" },
549
- dependencyTypes: {
550
- type: "array",
551
- items: { $ref: "#/definitions/DependencyTypeType" },
552
- },
553
- },
554
- },
555
- CompoundIncludeOnlyType: {
556
- type: "object",
557
- additionalProperties: false,
558
- properties: { path: { $ref: "#/definitions/REAsStringsType" } },
559
- },
560
- CompoundFocusType: {
561
- type: "object",
562
- additionalProperties: false,
563
- properties: { path: { $ref: "#/definitions/REAsStringsType" } },
564
- },
565
- ReporterOptionsType: {
566
- type: "object",
567
- additionalProperties: false,
568
- properties: {
569
- anon: { $ref: "#/definitions/AnonReporterOptionsType" },
570
- archi: { $ref: "#/definitions/DotReporterOptionsType" },
571
- dot: { $ref: "#/definitions/DotReporterOptionsType" },
572
- ddot: { $ref: "#/definitions/DotReporterOptionsType" },
573
- flat: { $ref: "#/definitions/DotReporterOptionsType" },
574
- metrics: { $ref: "#/definitions/MetricsReporterOptionsType" },
575
- },
576
- },
577
- AnonReporterOptionsType: {
578
- type: "object",
579
- additionalProperties: false,
580
- properties: { wordlist: { type: "array", items: { type: "string" } } },
581
- },
582
- MetricsReporterOptionsType: {
583
- type: "object",
584
- additionalProperties: false,
585
- properties: {
586
- orderBy: {
587
- type: "string",
588
- enum: [
589
- "instability",
590
- "moduleCount",
591
- "afferentCouplings",
592
- "efferentCouplings",
593
- "name",
594
- ],
595
- },
596
- hideModules: { type: "boolean" },
597
- hideFolders: { type: "boolean" },
598
- },
599
- },
600
- DotReporterOptionsType: {
601
- type: "object",
602
- additionalProperties: false,
603
- properties: {
604
- collapsePattern: { $ref: "#/definitions/REAsStringsType" },
605
- filters: { $ref: "#/definitions/ReporterFiltersType" },
606
- theme: { $ref: "#/definitions/DotThemeType" },
607
- },
608
- },
609
- DotThemeType: {
610
- type: "object",
611
- additionalProperties: false,
612
- properties: {
613
- replace: { type: "boolean" },
614
- graph: { type: "object" },
615
- node: { type: "object" },
616
- edge: { type: "object" },
617
- modules: { $ref: "#/definitions/DotThemeArrayType" },
618
- dependencies: { $ref: "#/definitions/DotThemeArrayType" },
619
- },
620
- },
621
- DotThemeArrayType: {
622
- type: "array",
623
- items: { $ref: "#/definitions/DotThemeEntryType" },
624
- },
625
- DotThemeEntryType: {
626
- type: "object",
627
- additionalProperties: false,
628
- properties: {
629
- criteria: { type: "object" },
630
- attributes: { type: "object" },
631
- },
632
- },
633
- ReporterFiltersType: {
634
- type: "object",
635
- additionalProperties: false,
636
- properties: {
637
- exclude: { $ref: "#/definitions/CompoundExcludeType" },
638
- includeOnly: { $ref: "#/definitions/CompoundIncludeOnlyType" },
639
- focus: { $ref: "#/definitions/CompoundFocusType" },
640
- },
641
- },
642
- },
643
- };
2
+ module.exports={"title":"dependency-cruiser output format","$schema":"http://json-schema.org/draft-07/schema#","$id":"https://dependency-cruiser.js.org/schema/cruise-result.schema.json","type":"object","required":["summary","modules"],"additionalProperties":false,"properties":{"modules":{"$ref":"#/definitions/ModulesType"},"folders":{"$ref":"#/definitions/FoldersType"},"summary":{"$ref":"#/definitions/SummaryType"}},"definitions":{"ModulesType":{"type":"array","items":{"$ref":"#/definitions/ModuleType"}},"ModuleType":{"type":"object","required":["source","dependencies","valid"],"additionalProperties":false,"properties":{"source":{"type":"string"},"valid":{"type":"boolean"},"dependencies":{"$ref":"#/definitions/DependenciesType"},"dependents":{"type":"array","items":{"type":"string"}},"followable":{"type":"boolean"},"matchesDoNotFollow":{"type":"boolean"},"matchesFocus":{"type":"boolean"},"coreModule":{"type":"boolean"},"couldNotResolve":{"type":"boolean"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"license":{"type":"string"},"orphan":{"type":"boolean"},"reachable":{"type":"array","items":{"$ref":"#/definitions/ReachableType"}},"reaches":{"type":"array","items":{"$ref":"#/definitions/ReachesType"}},"rules":{"type":"array","items":{"$ref":"#/definitions/RuleSummaryType"}},"consolidated":{"type":"boolean"},"instability":{"type":"number"}}},"ReachableType":{"type":"object","required":["value","asDefinedInRule","matchedFrom"],"additionalProperties":false,"properties":{"value":{"type":"boolean"},"asDefinedInRule":{"type":"string"},"matchedFrom":{"type":"string"}}},"ReachesType":{"type":"object","required":["modules","asDefinedInRule"],"additionalProperties":false,"properties":{"modules":{"type":"array","items":{"type":"object","required":["source","via"],"additionalProperties":false,"properties":{"source":{"type":"string"},"via":{"type":"array","items":{"type":"string"}}}}},"asDefinedInRule":{"type":"string"}}},"DependenciesType":{"type":"array","items":{"$ref":"#/definitions/DependencyType"}},"DependencyType":{"type":"object","required":["circular","coreModule","couldNotResolve","dependencyTypes","exoticallyRequired","dynamic","followable","module","moduleSystem","resolved","valid"],"additionalProperties":false,"properties":{"module":{"type":"string"},"protocol":{"type":"string","enum":["data:","file:","node:"]},"mimeType":{"type":"string"},"resolved":{"type":"string"},"coreModule":{"type":"boolean"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"license":{"type":"string"},"followable":{"type":"boolean"},"dynamic":{"type":"boolean"},"exoticallyRequired":{"type":"boolean"},"exoticRequire":{"type":"string"},"matchesDoNotFollow":{"type":"boolean"},"couldNotResolve":{"type":"boolean"},"preCompilationOnly":{"type":"boolean"},"typeOnly":{"type":"boolean"},"circular":{"type":"boolean"},"cycle":{"type":"array","items":{"type":"string"}},"moduleSystem":{"$ref":"#/definitions/ModuleSystemType"},"valid":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/RuleSummaryType"}},"instability":{"type":"number"}}},"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"]},"ModuleSystemType":{"type":"string","enum":["cjs","es6","amd","tsd"]},"RuleSummaryType":{"type":"object","required":["name","severity"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"}}},"SeverityType":{"type":"string","enum":["error","warn","info","ignore"]},"FoldersType":{"type":"array","items":{"$ref":"#/definitions/FolderType"}},"FolderType":{"type":"object","required":["name","moduleCount"],"additionalProperties":false,"properties":{"name":{"type":"string"},"dependents":{"type":"array","items":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string"}}}},"dependencies":{"type":"array","items":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string"},"instability":{"type":"number"}}}},"moduleCount":{"type":"number"},"afferentCouplings":{"type":"number"},"efferentCouplings":{"type":"number"},"instability":{"type":"number"}}},"SummaryType":{"type":"object","required":["violations","error","warn","info","totalCruised","optionsUsed"],"additionalProperties":false,"properties":{"violations":{"$ref":"#/definitions/ViolationsType"},"error":{"type":"number"},"warn":{"type":"number"},"info":{"type":"number"},"ignore":{"type":"number"},"totalCruised":{"type":"number"},"totalDependenciesCruised":{"type":"number"},"ruleSetUsed":{"$ref":"#/definitions/RuleSetType"},"optionsUsed":{"$ref":"#/definitions/OptionsUsedType"}}},"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"}}}}}}},"ViolationTypeType":{"type":"string","enum":["dependency","module","reachability","cycle","instability"]},"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"}}},"REAsStringsType":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"OptionsUsedType":{"type":"object","additionalProperties":false,"properties":{"doNotFollow":{"$ref":"#/definitions/CompoundDoNotFollowType"},"exclude":{"$ref":"#/definitions/CompoundExcludeType"},"includeOnly":{"oneOf":[{"$ref":"#/definitions/REAsStringsType"},{"$ref":"#/definitions/CompoundIncludeOnlyType"}]},"focus":{"$ref":"#/definitions/CompoundFocusType"},"knownViolations":{"$ref":"#/definitions/ViolationsType"},"collapse":{"type":"string"},"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"},"args":{"type":"string"},"rulesFile":{"type":"string"},"outputTo":{"type":"string"},"outputType":{"$ref":"#/definitions/OutputType"}}},"ModuleSystemsType":{"type":"array","items":{"$ref":"#/definitions/ModuleSystemType"}},"OutputType":{"oneOf":[{"type":"string","enum":["json","html","dot","ddot","cdot","archi","fdot","flat","csv","err","err-long","err-html","teamcity","anon","text","metrics"]},{"type":"string","pattern":"^plugin:[^:]+$"}]},"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"}}}}}