dependency-cruiser 17.3.2 → 17.3.3-beta-2

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 (232) hide show
  1. package/bin/depcruise-baseline.mjs +43 -43
  2. package/bin/depcruise-fmt.mjs +89 -89
  3. package/bin/dependency-cruise.mjs +171 -171
  4. package/configs/plugins/3d-reporter-plugin.mjs +36 -36
  5. package/configs/plugins/stats-reporter-plugin.mjs +51 -51
  6. package/configs/recommended-strict.cjs +5 -5
  7. package/configs/recommended-warn-only.cjs +5 -5
  8. package/configs/recommended.cjs +22 -22
  9. package/configs/rules/no-circular.cjs +10 -10
  10. package/configs/rules/no-deprecated-core.cjs +10 -10
  11. package/configs/rules/no-duplicate-dependency-types.cjs +17 -17
  12. package/configs/rules/no-non-package-json.cjs +11 -11
  13. package/configs/rules/no-orphans.cjs +18 -18
  14. package/configs/rules/not-to-deprecated.cjs +10 -10
  15. package/configs/rules/not-to-unresolvable.cjs +10 -10
  16. package/package.json +170 -170
  17. package/src/cache/cache.mjs +139 -139
  18. package/src/cache/content-strategy.mjs +88 -88
  19. package/src/cache/find-content-changes.mjs +58 -58
  20. package/src/cache/helpers.mjs +52 -52
  21. package/src/cache/metadata-strategy.mjs +83 -83
  22. package/src/cache/options-compatible.mjs +56 -109
  23. package/src/cli/assert-node-environment-suitable.mjs +7 -7
  24. package/src/cli/defaults.mjs +5 -5
  25. package/src/cli/format-meta-info.mjs +22 -22
  26. package/src/cli/format.mjs +28 -28
  27. package/src/cli/index.mjs +145 -145
  28. package/src/cli/init-config/build-config.mjs +94 -94
  29. package/src/cli/init-config/environment-helpers.mjs +77 -77
  30. package/src/cli/init-config/find-extensions.mjs +27 -27
  31. package/src/cli/init-config/get-user-input.mjs +151 -151
  32. package/src/cli/init-config/index.mjs +88 -88
  33. package/src/cli/init-config/normalize-init-options.mjs +47 -47
  34. package/src/cli/init-config/utl.mjs +4 -4
  35. package/src/cli/init-config/validators.mjs +10 -10
  36. package/src/cli/init-config/write-config.mjs +21 -21
  37. package/src/cli/init-config/write-run-scripts-to-manifest.mjs +103 -107
  38. package/src/cli/listeners/cli-feedback.mjs +49 -49
  39. package/src/cli/listeners/ndjson.mjs +66 -66
  40. package/src/cli/listeners/performance-log/format-helpers.mjs +63 -63
  41. package/src/cli/listeners/performance-log/handlers.mjs +56 -56
  42. package/src/cli/listeners/performance-log/index.mjs +37 -37
  43. package/src/cli/normalize-cli-options.mjs +182 -182
  44. package/src/cli/tools/wrap-stream-in-html.mjs +37 -37
  45. package/src/cli/utl/assert-file-existence.mjs +7 -7
  46. package/src/cli/utl/io.mjs +28 -31
  47. package/src/config-utl/extract-babel-config.mjs +69 -69
  48. package/src/config-utl/extract-depcruise-config/index.mjs +54 -54
  49. package/src/config-utl/extract-depcruise-config/merge-configs.mjs +63 -63
  50. package/src/config-utl/extract-depcruise-config/read-config.mjs +9 -9
  51. package/src/config-utl/extract-depcruise-options.mjs +9 -9
  52. package/src/config-utl/extract-known-violations.mjs +49 -49
  53. package/src/config-utl/extract-ts-config.mjs +46 -48
  54. package/src/config-utl/extract-webpack-resolve-config.mjs +88 -88
  55. package/src/config-utl/make-absolute.mjs +5 -5
  56. package/src/enrich/add-validations.mjs +13 -13
  57. package/src/enrich/derive/circular.mjs +49 -49
  58. package/src/enrich/derive/dependents.mjs +27 -27
  59. package/src/enrich/derive/folders/aggregate-to-folders.mjs +104 -104
  60. package/src/enrich/derive/folders/index.mjs +19 -19
  61. package/src/enrich/derive/folders/utl.mjs +18 -18
  62. package/src/enrich/derive/metrics/get-module-metrics.mjs +27 -27
  63. package/src/enrich/derive/metrics/index.mjs +8 -8
  64. package/src/enrich/derive/module-utl.mjs +18 -18
  65. package/src/enrich/derive/orphan/index.mjs +18 -18
  66. package/src/enrich/derive/orphan/is-orphan.mjs +9 -9
  67. package/src/enrich/derive/reachable.mjs +165 -168
  68. package/src/enrich/enrich-modules.mjs +25 -25
  69. package/src/enrich/index.mjs +15 -15
  70. package/src/enrich/soften-known-violations.mjs +90 -90
  71. package/src/enrich/summarize/add-rule-set-used.mjs +13 -13
  72. package/src/enrich/summarize/get-stats.mjs +17 -17
  73. package/src/enrich/summarize/index.mjs +18 -18
  74. package/src/enrich/summarize/is-same-violation.mjs +30 -30
  75. package/src/enrich/summarize/summarize-folders.mjs +35 -35
  76. package/src/enrich/summarize/summarize-modules.mjs +97 -97
  77. package/src/enrich/summarize/summarize-options.mjs +71 -71
  78. package/src/extract/acorn/estree-helpers.mjs +66 -66
  79. package/src/extract/acorn/extract-amd-deps.mjs +63 -64
  80. package/src/extract/acorn/extract-cjs-deps.mjs +83 -83
  81. package/src/extract/acorn/extract-es6-deps.mjs +54 -54
  82. package/src/extract/acorn/extract-stats.mjs +4 -4
  83. package/src/extract/acorn/extract.mjs +28 -28
  84. package/src/extract/acorn/parse.mjs +37 -37
  85. package/src/extract/clear-caches.mjs +7 -7
  86. package/src/extract/extract-dependencies.mjs +109 -109
  87. package/src/extract/extract-stats.mjs +21 -21
  88. package/src/extract/gather-initial-sources.mjs +64 -64
  89. package/src/extract/helpers.mjs +73 -71
  90. package/src/extract/index.mjs +120 -120
  91. package/src/extract/resolve/determine-dependency-types.mjs +166 -169
  92. package/src/extract/resolve/external-module-helpers.mjs +76 -76
  93. package/src/extract/resolve/get-manifest.mjs +79 -79
  94. package/src/extract/resolve/index.mjs +175 -164
  95. package/src/extract/resolve/is-built-in.mjs +22 -24
  96. package/src/extract/resolve/merge-manifests.mjs +43 -43
  97. package/src/extract/resolve/module-classifiers.mjs +229 -229
  98. package/src/extract/resolve/resolve-amd.mjs +44 -44
  99. package/src/extract/resolve/resolve-cjs.mjs +40 -40
  100. package/src/extract/resolve/resolve-helpers.mjs +20 -20
  101. package/src/extract/resolve/resolve.mjs +26 -26
  102. package/src/extract/swc/dependency-visitor.mjs +211 -211
  103. package/src/extract/swc/extract-swc-deps.mjs +4 -4
  104. package/src/extract/swc/extract.mjs +7 -7
  105. package/src/extract/swc/parse.mjs +12 -12
  106. package/src/extract/transpile/babel-wrap.mjs +9 -9
  107. package/src/extract/transpile/coffeescript-wrap.mjs +21 -21
  108. package/src/extract/transpile/index.mjs +47 -47
  109. package/src/extract/transpile/javascript-wrap.mjs +6 -6
  110. package/src/extract/transpile/livescript-wrap.mjs +5 -5
  111. package/src/extract/transpile/meta.mjs +80 -80
  112. package/src/extract/transpile/svelte-preprocess.mjs +73 -73
  113. package/src/extract/transpile/svelte-wrap.mjs +19 -19
  114. package/src/extract/transpile/try-import-available.mjs +26 -27
  115. package/src/extract/transpile/typescript-wrap.mjs +39 -39
  116. package/src/extract/transpile/vue-template-wrap.cjs +43 -43
  117. package/src/extract/tsc/extract-stats.mjs +4 -4
  118. package/src/extract/tsc/extract-typescript-deps.mjs +429 -398
  119. package/src/extract/tsc/extract.mjs +22 -22
  120. package/src/extract/tsc/parse.mjs +21 -21
  121. package/src/graph-utl/add-focus.mjs +35 -35
  122. package/src/graph-utl/compare.mjs +24 -24
  123. package/src/graph-utl/consolidate-module-dependencies.mjs +35 -35
  124. package/src/graph-utl/consolidate-modules.mjs +33 -33
  125. package/src/graph-utl/consolidate-to-folder.mjs +13 -13
  126. package/src/graph-utl/consolidate-to-pattern.mjs +34 -34
  127. package/src/graph-utl/filter-bank.mjs +74 -69
  128. package/src/graph-utl/indexed-module-graph.mjs +227 -225
  129. package/src/graph-utl/match-facade.mjs +3 -3
  130. package/src/graph-utl/rule-set.mjs +20 -20
  131. package/src/graph-utl/strip-self-transitions.mjs +6 -6
  132. package/src/main/cruise.mjs +81 -81
  133. package/src/main/files-and-dirs/normalize.mjs +7 -7
  134. package/src/main/format.mjs +11 -14
  135. package/src/main/helpers.mjs +25 -25
  136. package/src/main/index.mjs +8 -8
  137. package/src/main/options/assert-validity.mjs +100 -100
  138. package/src/main/options/defaults.mjs +11 -11
  139. package/src/main/options/normalize.mjs +158 -160
  140. package/src/main/report-wrap.mjs +37 -37
  141. package/src/main/resolve-options/normalize.mjs +127 -128
  142. package/src/main/rule-set/assert-validity.mjs +67 -73
  143. package/src/main/rule-set/normalize.mjs +81 -79
  144. package/src/meta.cjs +15 -16
  145. package/src/report/anon/anonymize-path-element.mjs +20 -34
  146. package/src/report/anon/anonymize-path.mjs +11 -11
  147. package/src/report/anon/index.mjs +119 -119
  148. package/src/report/anon/random-string.mjs +23 -23
  149. package/src/report/azure-devops.mjs +75 -99
  150. package/src/report/baseline.mjs +9 -9
  151. package/src/report/csv.mjs +13 -13
  152. package/src/report/d2.mjs +105 -105
  153. package/src/report/dot/default-theme.mjs +152 -152
  154. package/src/report/dot/index.mjs +146 -146
  155. package/src/report/dot/module-utl.mjs +72 -72
  156. package/src/report/dot/prepare-custom-level.mjs +20 -20
  157. package/src/report/dot/prepare-flat-level.mjs +11 -11
  158. package/src/report/dot/prepare-folder-level.mjs +12 -13
  159. package/src/report/dot/theming.mjs +73 -73
  160. package/src/report/dot-webpage/dot-module.mjs +36 -36
  161. package/src/report/dot-webpage/svg-in-html-snippets/script.cjs +208 -210
  162. package/src/report/dot-webpage/svg-in-html-snippets/style.css +51 -51
  163. package/src/report/dot-webpage/wrap-in-html.mjs +7 -7
  164. package/src/report/error-html/index.mjs +49 -49
  165. package/src/report/error-html/utl.mjs +99 -99
  166. package/src/report/error-long.mjs +1 -1
  167. package/src/report/error.mjs +93 -93
  168. package/src/report/html/index.mjs +48 -48
  169. package/src/report/identity.mjs +4 -4
  170. package/src/report/index.mjs +33 -33
  171. package/src/report/json.mjs +4 -4
  172. package/src/report/markdown.mjs +120 -120
  173. package/src/report/mermaid.mjs +111 -111
  174. package/src/report/metrics.mjs +185 -185
  175. package/src/report/null.mjs +4 -4
  176. package/src/report/plugins.mjs +41 -41
  177. package/src/report/teamcity.mjs +150 -150
  178. package/src/report/text.mjs +42 -42
  179. package/src/report/utl/dependency-to-incidence-transformer.mjs +32 -32
  180. package/src/report/utl/index.mjs +53 -53
  181. package/src/schema/configuration.validate.mjs +1 -0
  182. package/src/schema/cruise-result.validate.mjs +1 -0
  183. package/src/schema/utl.mjs +6 -0
  184. package/src/utl/array-util.mjs +25 -25
  185. package/src/utl/bus.mjs +12 -12
  186. package/src/utl/extract-root-module-name.cjs +8 -8
  187. package/src/utl/find-all-files.mjs +54 -54
  188. package/src/utl/get-extension.mjs +2 -2
  189. package/src/utl/object-util.mjs +21 -22
  190. package/src/utl/path-to-posix.mjs +5 -5
  191. package/src/utl/regex-util.mjs +20 -20
  192. package/src/utl/try-import.mjs +42 -41
  193. package/src/utl/try-require.cjs +23 -23
  194. package/src/utl/wrap-and-indent.mjs +33 -33
  195. package/src/validate/index.mjs +65 -65
  196. package/src/validate/match-dependency-rule.mjs +47 -47
  197. package/src/validate/match-folder-dependency-rule.mjs +27 -27
  198. package/src/validate/match-module-rule-helpers.mjs +76 -76
  199. package/src/validate/match-module-rule.mjs +12 -12
  200. package/src/validate/matchers.mjs +162 -162
  201. package/src/validate/rule-classifiers.mjs +9 -9
  202. package/src/validate/violates-required-rule.mjs +23 -23
  203. package/types/cache-options.d.mts +27 -27
  204. package/types/config-utl/extract-babel-config.d.mts +1 -1
  205. package/types/config-utl/extract-depcruise-config.d.mts +3 -3
  206. package/types/config-utl/extract-depcruise-options.d.mts +1 -1
  207. package/types/config-utl/extract-ts-config.d.mts +1 -1
  208. package/types/config-utl/extract-webpack-resolve-config.d.mts +3 -3
  209. package/types/configuration.d.mts +10 -10
  210. package/types/cruise-result.d.mts +414 -414
  211. package/types/dependency-cruiser.d.mts +52 -52
  212. package/types/filter-types.d.mts +45 -45
  213. package/types/options.d.mts +430 -430
  214. package/types/plugins/3d-reporter-plugin.d.mts +9 -9
  215. package/types/plugins/mermaid-reporter-plugin.d.mts +10 -10
  216. package/types/plugins/stats-reporter-plugin.d.mts +9 -9
  217. package/types/reporter-options.d.mts +196 -196
  218. package/types/resolve-options.d.mts +23 -23
  219. package/types/restrictions.d.mts +174 -174
  220. package/types/rule-set.d.mts +132 -132
  221. package/types/rule-summary.d.mts +14 -14
  222. package/types/shared-types.d.mts +89 -89
  223. package/types/strict-filter-types.d.mts +52 -52
  224. package/types/strict-options.d.mts +34 -34
  225. package/types/strict-restrictions.d.mts +25 -25
  226. package/types/strict-rule-set.d.mts +36 -36
  227. package/types/violations.d.mts +40 -40
  228. package/src/schema/README.md +0 -5
  229. package/src/schema/baseline-violations.schema.mjs +0 -1
  230. package/src/schema/configuration.schema.mjs +0 -1
  231. package/src/schema/cruise-result.schema.mjs +0 -1
  232. package/types/README.md +0 -1
@@ -1,142 +1,142 @@
1
1
  import { EOL } from "node:os";
2
2
  import { styleText } from "node:util";
3
3
  import {
4
- formatPercentage,
5
- formatViolation as _formatViolation,
4
+ formatPercentage,
5
+ formatViolation as _formatViolation,
6
6
  } from "./utl/index.mjs";
7
7
  import { findRuleByName } from "#graph-utl/rule-set.mjs";
8
8
  import wrapAndIndent from "#utl/wrap-and-indent.mjs";
9
9
 
10
10
  const SEVERITY2COLOR = new Map([
11
- ["error", "red"],
12
- ["warn", "yellow"],
13
- ["info", "cyan"],
14
- ["ignore", "gray"],
11
+ ["error", "red"],
12
+ ["warn", "yellow"],
13
+ ["info", "cyan"],
14
+ ["ignore", "gray"],
15
15
  ]);
16
16
 
17
17
  const EXTRA_PATH_INFORMATION_INDENT = 6;
18
18
 
19
19
  function formatMiniDependency(pMiniDependency) {
20
- return EOL.concat(
21
- wrapAndIndent(
22
- pMiniDependency.map(({ name }) => name).join(` → ${EOL}`),
23
- EXTRA_PATH_INFORMATION_INDENT,
24
- ),
25
- );
20
+ return EOL.concat(
21
+ wrapAndIndent(
22
+ pMiniDependency.map(({ name }) => name).join(` → ${EOL}`),
23
+ EXTRA_PATH_INFORMATION_INDENT,
24
+ ),
25
+ );
26
26
  }
27
27
 
28
28
  function formatModuleViolation(pViolation) {
29
- return styleText("bold", pViolation.from);
29
+ return styleText("bold", pViolation.from);
30
30
  }
31
31
 
32
32
  function formatDependencyViolation(pViolation) {
33
- return `${styleText("bold", pViolation.from)} → ${styleText("bold", pViolation.to)}`;
33
+ return `${styleText("bold", pViolation.from)} → ${styleText("bold", pViolation.to)}`;
34
34
  }
35
35
 
36
36
  function formatCycleViolation(pViolation) {
37
- return `${styleText("bold", pViolation.from)} → ${formatMiniDependency(pViolation.cycle)}`;
37
+ return `${styleText("bold", pViolation.from)} → ${formatMiniDependency(pViolation.cycle)}`;
38
38
  }
39
39
 
40
40
  function formatReachabilityViolation(pViolation) {
41
- return `${styleText("bold", pViolation.from)} → ${styleText("bold", pViolation.to)}${formatMiniDependency(pViolation.via)}`;
41
+ return `${styleText("bold", pViolation.from)} → ${styleText("bold", pViolation.to)}${formatMiniDependency(pViolation.via)}`;
42
42
  }
43
43
 
44
44
  function formatInstabilityViolation(pViolation) {
45
- return `${formatDependencyViolation(pViolation)}${EOL}${styleText(
46
- "dim",
47
- wrapAndIndent(
48
- `instability: ${formatPercentage(pViolation.metrics.from.instability)} → ${formatPercentage(pViolation.metrics.to.instability)}`,
49
- EXTRA_PATH_INFORMATION_INDENT,
50
- ),
51
- )}`;
45
+ return `${formatDependencyViolation(pViolation)}${EOL}${styleText(
46
+ "dim",
47
+ wrapAndIndent(
48
+ `instability: ${formatPercentage(pViolation.metrics.from.instability)} → ${formatPercentage(pViolation.metrics.to.instability)}`,
49
+ EXTRA_PATH_INFORMATION_INDENT,
50
+ ),
51
+ )}`;
52
52
  }
53
53
 
54
54
  function formatViolation(pViolation) {
55
- const lViolationType2Formatter = {
56
- module: formatModuleViolation,
57
- dependency: formatDependencyViolation,
58
- cycle: formatCycleViolation,
59
- reachability: formatReachabilityViolation,
60
- instability: formatInstabilityViolation,
61
- };
62
- const lFormattedViolators = _formatViolation(
63
- pViolation,
64
- lViolationType2Formatter,
65
- formatDependencyViolation,
66
- );
67
-
68
- return (
69
- `${styleText(
70
- SEVERITY2COLOR.get(pViolation.rule.severity),
71
- pViolation.rule.severity,
72
- )} ${pViolation.rule.name}: ${lFormattedViolators}` +
73
- `${
74
- pViolation.comment
75
- ? `${EOL}${styleText("dim", wrapAndIndent(pViolation.comment))}${EOL}`
76
- : ""
77
- }`
78
- );
55
+ const lViolationType2Formatter = {
56
+ module: formatModuleViolation,
57
+ dependency: formatDependencyViolation,
58
+ cycle: formatCycleViolation,
59
+ reachability: formatReachabilityViolation,
60
+ instability: formatInstabilityViolation,
61
+ };
62
+ const lFormattedViolators = _formatViolation(
63
+ pViolation,
64
+ lViolationType2Formatter,
65
+ formatDependencyViolation,
66
+ );
67
+
68
+ return (
69
+ `${styleText(
70
+ SEVERITY2COLOR.get(pViolation.rule.severity),
71
+ pViolation.rule.severity,
72
+ )} ${pViolation.rule.name}: ${lFormattedViolators}` +
73
+ `${
74
+ pViolation.comment
75
+ ? `${EOL}${styleText("dim", wrapAndIndent(pViolation.comment))}${EOL}`
76
+ : ""
77
+ }`
78
+ );
79
79
  }
80
80
 
81
81
  function formatMeta(pMeta) {
82
- return `${pMeta.error} errors, ${pMeta.warn} warnings`;
82
+ return `${pMeta.error} errors, ${pMeta.warn} warnings`;
83
83
  }
84
84
 
85
85
  function sumMeta(pMeta) {
86
- return pMeta.error + pMeta.warn + pMeta.info;
86
+ return pMeta.error + pMeta.warn + pMeta.info;
87
87
  }
88
88
 
89
89
  function formatSummary(pSummary) {
90
- let lMessage = `${EOL}x ${sumMeta(
91
- pSummary,
92
- )} dependency violations (${formatMeta(pSummary)}). ${
93
- pSummary.totalCruised
94
- } modules, ${pSummary.totalDependenciesCruised} dependencies cruised.${EOL}`;
90
+ let lMessage = `${EOL}x ${sumMeta(
91
+ pSummary,
92
+ )} dependency violations (${formatMeta(pSummary)}). ${
93
+ pSummary.totalCruised
94
+ } modules, ${pSummary.totalDependenciesCruised} dependencies cruised.${EOL}`;
95
95
 
96
- return pSummary.error > 0 ? styleText("red", lMessage) : lMessage;
96
+ return pSummary.error > 0 ? styleText("red", lMessage) : lMessage;
97
97
  }
98
98
 
99
99
  function addExplanation(pRuleSet, pLong) {
100
- return pLong
101
- ? (pViolation) => ({
102
- ...pViolation,
103
- comment: findRuleByName(pRuleSet, pViolation.rule.name)?.comment ?? "-",
104
- })
105
- : (pViolation) => pViolation;
100
+ return pLong
101
+ ? (pViolation) => ({
102
+ ...pViolation,
103
+ comment: findRuleByName(pRuleSet, pViolation.rule.name)?.comment ?? "-",
104
+ })
105
+ : (pViolation) => pViolation;
106
106
  }
107
107
 
108
108
  function formatIgnoreWarning(pNumberOfIgnoredViolations) {
109
- if (pNumberOfIgnoredViolations > 0) {
110
- return styleText(
111
- "yellow",
112
- `‼ ${pNumberOfIgnoredViolations} known violations ignored. Run with --no-ignore-known to see them.${EOL}`,
113
- );
114
- }
115
- return "";
109
+ if (pNumberOfIgnoredViolations > 0) {
110
+ return styleText(
111
+ "yellow",
112
+ `‼ ${pNumberOfIgnoredViolations} known violations ignored. Run with --no-ignore-known to see them.${EOL}`,
113
+ );
114
+ }
115
+ return "";
116
116
  }
117
117
 
118
118
  function report(pResults, pLong) {
119
- const lNonIgnorableViolations = pResults.summary.violations.filter(
120
- (pViolation) => pViolation.rule.severity !== "ignore",
121
- );
122
-
123
- if (lNonIgnorableViolations.length === 0) {
124
- return `${EOL}${styleText("green", "✔")} no dependency violations found (${
125
- pResults.summary.totalCruised
126
- } modules, ${
127
- pResults.summary.totalDependenciesCruised
128
- } dependencies cruised)${EOL}${formatIgnoreWarning(
129
- pResults.summary.ignore,
130
- )}${EOL}`;
131
- }
132
-
133
- return lNonIgnorableViolations
134
- .reverse()
135
- .map(addExplanation(pResults.summary.ruleSetUsed, pLong))
136
- .reduce((pAll, pThis) => `${pAll} ${formatViolation(pThis)}${EOL}`, EOL)
137
- .concat(formatSummary(pResults.summary))
138
- .concat(formatIgnoreWarning(pResults.summary.ignore))
139
- .concat(EOL);
119
+ const lNonIgnorableViolations = pResults.summary.violations.filter(
120
+ (pViolation) => pViolation.rule.severity !== "ignore",
121
+ );
122
+
123
+ if (lNonIgnorableViolations.length === 0) {
124
+ return `${EOL}${styleText("green", "✔")} no dependency violations found (${
125
+ pResults.summary.totalCruised
126
+ } modules, ${
127
+ pResults.summary.totalDependenciesCruised
128
+ } dependencies cruised)${EOL}${formatIgnoreWarning(
129
+ pResults.summary.ignore,
130
+ )}${EOL}`;
131
+ }
132
+
133
+ return lNonIgnorableViolations
134
+ .reverse()
135
+ .map(addExplanation(pResults.summary.ruleSetUsed, pLong))
136
+ .reduce((pAll, pThis) => `${pAll} ${formatViolation(pThis)}${EOL}`, EOL)
137
+ .concat(formatSummary(pResults.summary))
138
+ .concat(formatIgnoreWarning(pResults.summary.ignore))
139
+ .concat(EOL);
140
140
  }
141
141
 
142
142
  /**
@@ -153,8 +153,8 @@ function report(pResults, pLong) {
153
153
  * exitCode: the number of errors found
154
154
  */
155
155
  export default function error(pResults, pOptions) {
156
- return {
157
- output: report(pResults, (pOptions || {}).long),
158
- exitCode: pResults.summary.error,
159
- };
156
+ return {
157
+ output: report(pResults, (pOptions || {}).long),
158
+ exitCode: pResults.summary.error,
159
+ };
160
160
  }
@@ -7,71 +7,71 @@ import templateText from "./html-template.mjs";
7
7
  const EOL = "\n";
8
8
 
9
9
  function addShowTitle(pDependencyEntry) {
10
- return {
11
- ...pDependencyEntry,
12
- incidences: pDependencyEntry.incidences.map((pIncidence) => ({
13
- ...pIncidence,
14
- hasRelation: pIncidence.incidence !== "false",
15
- })),
16
- };
10
+ return {
11
+ ...pDependencyEntry,
12
+ incidences: pDependencyEntry.incidences.map((pIncidence) => ({
13
+ ...pIncidence,
14
+ hasRelation: pIncidence.incidence !== "false",
15
+ })),
16
+ };
17
17
  }
18
18
 
19
19
  function getClasses(pModule, pOtherClasses) {
20
- let lClasses = pOtherClasses || [];
21
- if (pModule.coreModule) {
22
- lClasses.push("cell-core-module");
23
- }
24
- if (pModule.couldNotResolve) {
25
- lClasses.push("cell-unresolvable-module");
26
- }
27
- return lClasses.length > 0 ? ` class="${lClasses.join(" ")}"` : "";
20
+ let lClasses = pOtherClasses || [];
21
+ if (pModule.coreModule) {
22
+ lClasses.push("cell-core-module");
23
+ }
24
+ if (pModule.couldNotResolve) {
25
+ lClasses.push("cell-unresolvable-module");
26
+ }
27
+ return lClasses.length > 0 ? ` class="${lClasses.join(" ")}"` : "";
28
28
  }
29
29
 
30
30
  function constructTableHead(pModules) {
31
- return pModules
32
- .map(
33
- (pModule) =>
34
- `<th><div${getClasses(pModule)}>${pModule.source}</div></th>`,
35
- )
36
- .join("");
31
+ return pModules
32
+ .map(
33
+ (pModule) =>
34
+ `<th><div${getClasses(pModule)}>${pModule.source}</div></th>`,
35
+ )
36
+ .join("");
37
37
  }
38
38
 
39
39
  function constructTableCellTitle(pModule, pIncidence) {
40
- let lTitleLines = [];
41
- if (pIncidence.rule) {
42
- lTitleLines.push(`${pIncidence.rule}:`);
43
- }
44
- if (pIncidence.hasRelation) {
45
- lTitleLines.push(`${pModule.source} -> ${pIncidence.to}`);
46
- }
47
- return lTitleLines.length > 0 ? ` title="${lTitleLines.join(EOL)}"` : "";
40
+ let lTitleLines = [];
41
+ if (pIncidence.rule) {
42
+ lTitleLines.push(`${pIncidence.rule}:`);
43
+ }
44
+ if (pIncidence.hasRelation) {
45
+ lTitleLines.push(`${pModule.source} -> ${pIncidence.to}`);
46
+ }
47
+ return lTitleLines.length > 0 ? ` title="${lTitleLines.join(EOL)}"` : "";
48
48
  }
49
49
 
50
50
  function constructTableCell(pModule) {
51
- return (pIncidence) => {
52
- const lReturnValue = `<td class="cell cell-${
53
- pIncidence.incidence
54
- }"${constructTableCellTitle(pModule, pIncidence)}></td>`;
55
- return lReturnValue;
56
- };
51
+ return (pIncidence) => {
52
+ const lReturnValue = `<td class="cell cell-${
53
+ pIncidence.incidence
54
+ }"${constructTableCellTitle(pModule, pIncidence)}></td>`;
55
+ return lReturnValue;
56
+ };
57
57
  }
58
58
 
59
59
  function constructTableRow(pModule) {
60
- const lReturnValue = `
60
+ const lReturnValue = `
61
61
  <tr>
62
62
  <td${getClasses(pModule, ["first-cell"])}>${pModule.source}</td>
63
63
  ${pModule.incidences.map(constructTableCell(pModule)).join("")}
64
64
  <td${getClasses(pModule, ["first-cell"])}>${pModule.source}</td>
65
65
  </tr>`;
66
- return lReturnValue;
66
+ return lReturnValue;
67
67
  }
68
68
 
69
69
  function constructTableBody(pModules) {
70
- return pModules.map(constructTableRow).join("");
70
+ return pModules.map(constructTableRow).join("");
71
71
  }
72
72
 
73
73
  function constructTable(pModules) {
74
- const lReturnValue = `
74
+ const lReturnValue = `
75
75
  <table id="table-rotated">
76
76
  <thead>
77
77
  <tr>
@@ -96,14 +96,14 @@ function constructTable(pModules) {
96
96
  </table>
97
97
  `;
98
98
 
99
- return lReturnValue;
99
+ return lReturnValue;
100
100
  }
101
101
 
102
102
  function report(pResults) {
103
- const lModules = dependencyToIncidenceTransformer(pResults.modules).map(
104
- addShowTitle,
105
- );
106
- return templateText.replace("{{table-here}}", constructTable(lModules));
103
+ const lModules = dependencyToIncidenceTransformer(pResults.modules).map(
104
+ addShowTitle,
105
+ );
106
+ return templateText.replace("{{table-here}}", constructTable(lModules));
107
107
  }
108
108
 
109
109
  /**
@@ -113,8 +113,8 @@ function report(pResults) {
113
113
  * @returns {import("../../../types/dependency-cruiser.js").IReporterOutput}
114
114
  */
115
115
  export default function html(pResults) {
116
- return {
117
- output: report(pResults),
118
- exitCode: 0,
119
- };
116
+ return {
117
+ output: report(pResults),
118
+ exitCode: 0,
119
+ };
120
120
  }
@@ -5,8 +5,8 @@
5
5
  * @returns {import("../../types/dependency-cruiser").IReporterOutput}
6
6
  */
7
7
  export default function identity(pResults) {
8
- return {
9
- output: pResults,
10
- exitCode: 0,
11
- };
8
+ return {
9
+ output: pResults,
10
+ exitCode: 0,
11
+ };
12
12
  }
@@ -1,29 +1,29 @@
1
1
  import { getExternalPluginReporter } from "./plugins.mjs";
2
2
 
3
3
  const TYPE2MODULE = new Map([
4
- ["anon", "./anon/index.mjs"],
5
- ["archi", "./dot/dot-custom.mjs"],
6
- ["azure-devops", "./azure-devops.mjs"],
7
- ["baseline", "./baseline.mjs"],
8
- ["cdot", "./dot/dot-custom.mjs"],
9
- ["csv", "./csv.mjs"],
10
- ["d2", "./d2.mjs"],
11
- ["ddot", "./dot/dot-folder.mjs"],
12
- ["dot", "./dot/dot-module.mjs"],
13
- ["err-html", "./error-html/index.mjs"],
14
- ["err-long", "./error-long.mjs"],
15
- ["err", "./error.mjs"],
16
- ["fdot", "./dot/dot-flat.mjs"],
17
- ["flat", "./dot/dot-flat.mjs"],
18
- ["html", "./html/index.mjs"],
19
- ["json", "./json.mjs"],
20
- ["markdown", "./markdown.mjs"],
21
- ["mermaid", "./mermaid.mjs"],
22
- ["metrics", "./metrics.mjs"],
23
- ["null", "./null.mjs"],
24
- ["teamcity", "./teamcity.mjs"],
25
- ["text", "./text.mjs"],
26
- ["x-dot-webpage", "./dot-webpage/dot-module.mjs"],
4
+ ["anon", "./anon/index.mjs"],
5
+ ["archi", "./dot/dot-custom.mjs"],
6
+ ["azure-devops", "./azure-devops.mjs"],
7
+ ["baseline", "./baseline.mjs"],
8
+ ["cdot", "./dot/dot-custom.mjs"],
9
+ ["csv", "./csv.mjs"],
10
+ ["d2", "./d2.mjs"],
11
+ ["ddot", "./dot/dot-folder.mjs"],
12
+ ["dot", "./dot/dot-module.mjs"],
13
+ ["err-html", "./error-html/index.mjs"],
14
+ ["err-long", "./error-long.mjs"],
15
+ ["err", "./error.mjs"],
16
+ ["fdot", "./dot/dot-flat.mjs"],
17
+ ["flat", "./dot/dot-flat.mjs"],
18
+ ["html", "./html/index.mjs"],
19
+ ["json", "./json.mjs"],
20
+ ["markdown", "./markdown.mjs"],
21
+ ["mermaid", "./mermaid.mjs"],
22
+ ["metrics", "./metrics.mjs"],
23
+ ["null", "./null.mjs"],
24
+ ["teamcity", "./teamcity.mjs"],
25
+ ["text", "./text.mjs"],
26
+ ["x-dot-webpage", "./dot-webpage/dot-module.mjs"],
27
27
  ]);
28
28
 
29
29
  /**
@@ -36,15 +36,15 @@ const TYPE2MODULE = new Map([
36
36
  * and returns an IReporterOutput
37
37
  */
38
38
  export async function getReporter(pOutputType) {
39
- let lReturnValue = {};
40
- if (pOutputType?.startsWith("plugin:")) {
41
- lReturnValue = await getExternalPluginReporter(pOutputType);
42
- } else {
43
- const lModuleToImport = TYPE2MODULE.get(pOutputType) ?? "./identity.mjs";
44
- const lModule = await import(lModuleToImport);
45
- lReturnValue = lModule.default;
46
- }
47
- return lReturnValue;
39
+ let lReturnValue = {};
40
+ if (pOutputType?.startsWith("plugin:")) {
41
+ lReturnValue = await getExternalPluginReporter(pOutputType);
42
+ } else {
43
+ const lModuleToImport = TYPE2MODULE.get(pOutputType) ?? "./identity.mjs";
44
+ const lModule = await import(lModuleToImport);
45
+ lReturnValue = lModule.default;
46
+ }
47
+ return lReturnValue;
48
48
  }
49
49
 
50
50
  /**
@@ -53,5 +53,5 @@ export async function getReporter(pOutputType) {
53
53
  * @returns {import("../../types/shared-types.js").OutputType[]} -
54
54
  */
55
55
  export function getAvailableReporters() {
56
- return Array.from(TYPE2MODULE.keys());
56
+ return Array.from(TYPE2MODULE.keys());
57
57
  }
@@ -6,8 +6,8 @@ const EOL = "\n";
6
6
  * @returns {import("../../types/dependency-cruiser").IReporterOutput}
7
7
  */
8
8
  export default function json(pResults) {
9
- return {
10
- output: JSON.stringify(pResults, null, " ") + EOL,
11
- exitCode: 0,
12
- };
9
+ return {
10
+ output: JSON.stringify(pResults, null, " ") + EOL,
11
+ exitCode: 0,
12
+ };
13
13
  }