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,165 +1,165 @@
1
1
  import type { SeverityType, RuleScopeType } from "./shared-types.mjs";
2
2
  import type {
3
- IBaseRestrictionType,
4
- IFromRestriction,
5
- IToRestriction,
6
- IReachabilityToRestrictionType,
7
- IRequiredToRestrictionType,
8
- IDependentsModuleRestrictionType,
3
+ IBaseRestrictionType,
4
+ IFromRestriction,
5
+ IToRestriction,
6
+ IReachabilityToRestrictionType,
7
+ IRequiredToRestrictionType,
8
+ IDependentsModuleRestrictionType,
9
9
  } from "./restrictions.mjs";
10
10
 
11
11
  interface IBaseRuleType {
12
- /**
13
- * A short name for the rule - will appear in reporters to enable customers to
14
- * quickly identify a violated rule. Try to keep them short, eslint style.
15
- * E.g. 'not-to-core' for a rule forbidding dependencies on core modules, or
16
- * 'not-to-unresolvable' for one that prevents dependencies on modules that
17
- * probably don't exist.
18
- */
19
- name?: string;
20
- /**
21
- * How severe a violation of the rule is. The 'error' severity will make some
22
- * reporters return a non-zero exit code, so if you want e.g. a build to stop
23
- * when there's a rule violated: use that.
24
- */
25
- severity?: SeverityType;
26
- /**
27
- * You can use this field to document why the rule is there.
28
- */
29
- comment?: string;
12
+ /**
13
+ * A short name for the rule - will appear in reporters to enable customers to
14
+ * quickly identify a violated rule. Try to keep them short, eslint style.
15
+ * E.g. 'not-to-core' for a rule forbidding dependencies on core modules, or
16
+ * 'not-to-unresolvable' for one that prevents dependencies on modules that
17
+ * probably don't exist.
18
+ */
19
+ name?: string;
20
+ /**
21
+ * How severe a violation of the rule is. The 'error' severity will make some
22
+ * reporters return a non-zero exit code, so if you want e.g. a build to stop
23
+ * when there's a rule violated: use that.
24
+ */
25
+ severity?: SeverityType;
26
+ /**
27
+ * You can use this field to document why the rule is there.
28
+ */
29
+ comment?: string;
30
30
  }
31
31
 
32
32
  export interface IRegularForbiddenRuleType extends IBaseRuleType {
33
- /**
34
- * Criteria the 'from' end of a dependency should match to be caught by this
35
- * rule. Leave it empty if you want any module to be matched.
36
- */
37
- from: IFromRestriction;
38
- /**
39
- * Criteria the 'to' end of a dependency should match to be caught by this
40
- * rule. Leave it empty if you want any module to be matched.
41
- */
42
- to: IToRestriction;
43
- /**
44
- * What to apply the rule to - modules (the default) or folders. Switching
45
- * the scope to 'folder' can be useful in rules where this makes a difference
46
- * like those regarding circular dependencies or instability.
47
- * Only the to.moreUnstable, to.circular, and path (both from and to)
48
- * attributes work at the moment. Other attributes will follow suit in later
49
- * releases (depending on demand).
50
- */
51
- scope?: RuleScopeType;
33
+ /**
34
+ * Criteria the 'from' end of a dependency should match to be caught by this
35
+ * rule. Leave it empty if you want any module to be matched.
36
+ */
37
+ from: IFromRestriction;
38
+ /**
39
+ * Criteria the 'to' end of a dependency should match to be caught by this
40
+ * rule. Leave it empty if you want any module to be matched.
41
+ */
42
+ to: IToRestriction;
43
+ /**
44
+ * What to apply the rule to - modules (the default) or folders. Switching
45
+ * the scope to 'folder' can be useful in rules where this makes a difference
46
+ * like those regarding circular dependencies or instability.
47
+ * Only the to.moreUnstable, to.circular, and path (both from and to)
48
+ * attributes work at the moment. Other attributes will follow suit in later
49
+ * releases (depending on demand).
50
+ */
51
+ scope?: RuleScopeType;
52
52
  }
53
53
 
54
54
  export interface IReachabilityForbiddenRuleType extends IBaseRuleType {
55
- /**
56
- * Criteria the 'from' end of a dependency should match to be caught by this
57
- * rule. Leave it empty if you want any module to be matched.
58
- */
59
- from: IBaseRestrictionType;
60
- /**
61
- * Criteria the 'to' end of a dependency should match to be caught by this
62
- * rule. Leave it empty if you want any module to be matched.
63
- */
64
- to: IReachabilityToRestrictionType;
55
+ /**
56
+ * Criteria the 'from' end of a dependency should match to be caught by this
57
+ * rule. Leave it empty if you want any module to be matched.
58
+ */
59
+ from: IBaseRestrictionType;
60
+ /**
61
+ * Criteria the 'to' end of a dependency should match to be caught by this
62
+ * rule. Leave it empty if you want any module to be matched.
63
+ */
64
+ to: IReachabilityToRestrictionType;
65
65
  }
66
66
 
67
67
  export interface IDependentsForbiddenRuleType extends IBaseRuleType {
68
- /**
69
- * Criteria to select the module(s) this restriction should apply to
70
- */
71
- module: IDependentsModuleRestrictionType;
72
- /**
73
- * Criteria at least one dependency of each matching module must
74
- * adhere to.
75
- */
76
- from: IBaseRestrictionType;
68
+ /**
69
+ * Criteria to select the module(s) this restriction should apply to
70
+ */
71
+ module: IDependentsModuleRestrictionType;
72
+ /**
73
+ * Criteria at least one dependency of each matching module must
74
+ * adhere to.
75
+ */
76
+ from: IBaseRestrictionType;
77
77
  }
78
78
 
79
79
  export interface IReachabilityAllowedRuleType {
80
- /**
81
- * You can use this field to document why the rule is there.
82
- */
83
- comment?: string;
84
- /**
85
- * Criteria the 'from' end of a dependency should match to be caught by this rule.
86
- * Leave it empty if you want any module to be matched.
87
- */
88
- from: IBaseRestrictionType;
89
- /**
90
- * Criteria the 'to' end of a dependency should match to be caught by this rule.
91
- * Leave it empty if you want any module to be matched.
92
- */
93
- to: IReachabilityToRestrictionType;
80
+ /**
81
+ * You can use this field to document why the rule is there.
82
+ */
83
+ comment?: string;
84
+ /**
85
+ * Criteria the 'from' end of a dependency should match to be caught by this rule.
86
+ * Leave it empty if you want any module to be matched.
87
+ */
88
+ from: IBaseRestrictionType;
89
+ /**
90
+ * Criteria the 'to' end of a dependency should match to be caught by this rule.
91
+ * Leave it empty if you want any module to be matched.
92
+ */
93
+ to: IReachabilityToRestrictionType;
94
94
  }
95
95
 
96
96
  export type IForbiddenRuleType =
97
- | IRegularForbiddenRuleType
98
- | IReachabilityForbiddenRuleType
99
- | IDependentsForbiddenRuleType;
97
+ | IRegularForbiddenRuleType
98
+ | IReachabilityForbiddenRuleType
99
+ | IDependentsForbiddenRuleType;
100
100
 
101
101
  export interface IRequiredRuleType extends IBaseRuleType {
102
- /**
103
- * Criteria to select the module(s) this restriction should apply to
104
- */
105
- module: IBaseRestrictionType;
106
- /**
107
- * Criteria at least one dependency of each matching module must
108
- * adhere to.
109
- */
110
- to: IRequiredToRestrictionType;
102
+ /**
103
+ * Criteria to select the module(s) this restriction should apply to
104
+ */
105
+ module: IBaseRestrictionType;
106
+ /**
107
+ * Criteria at least one dependency of each matching module must
108
+ * adhere to.
109
+ */
110
+ to: IRequiredToRestrictionType;
111
111
  }
112
112
 
113
113
  export interface IRegularAllowedRuleType {
114
- /**
115
- * You can use this field to document why the rule is there.
116
- */
117
- comment?: string;
118
- /**
119
- * Criteria the 'from' end of a dependency should match to be caught by this rule.
120
- * Leave it empty if you want any module to be matched.
121
- */
122
- from: IFromRestriction;
123
- /**
124
- * Criteria the 'to' end of a dependency should match to be caught by this rule.
125
- * Leave it empty if you want any module to be matched.
126
- */
127
- to: IToRestriction;
114
+ /**
115
+ * You can use this field to document why the rule is there.
116
+ */
117
+ comment?: string;
118
+ /**
119
+ * Criteria the 'from' end of a dependency should match to be caught by this rule.
120
+ * Leave it empty if you want any module to be matched.
121
+ */
122
+ from: IFromRestriction;
123
+ /**
124
+ * Criteria the 'to' end of a dependency should match to be caught by this rule.
125
+ * Leave it empty if you want any module to be matched.
126
+ */
127
+ to: IToRestriction;
128
128
  }
129
129
 
130
130
  export type IAllowedRuleType =
131
- | IRegularAllowedRuleType
132
- | IReachabilityAllowedRuleType;
131
+ | IRegularAllowedRuleType
132
+ | IReachabilityAllowedRuleType;
133
133
 
134
134
  export type IAnyRuleType =
135
- | IForbiddenRuleType
136
- | IAllowedRuleType
137
- | IRequiredRuleType;
135
+ | IForbiddenRuleType
136
+ | IAllowedRuleType
137
+ | IRequiredRuleType;
138
138
 
139
139
  export interface IFlattenedRuleSet {
140
- /**
141
- * A list of rules that describe dependencies that are not allowed.
142
- * dependency-cruiser will emit a separate error (warning/ informational)
143
- * messages for each violated rule.
144
- */
145
- forbidden?: IForbiddenRuleType[];
146
- /**
147
- * A list of rules that describe dependencies that are allowed.
148
- * dependency-cruiser will emit the warning message 'not-in-allowed' for
149
- * each dependency that does not at least one of them.
150
- */
151
- allowed?: IAllowedRuleType[];
152
- /**
153
- * Severity to use when a dependency is not in the 'allowed' set of rules.
154
- * Defaults to 'warn'
155
- */
156
- allowedSeverity?: SeverityType;
157
- /**
158
- * A list of rules that describe what dependencies modules _must_ have.
159
- * E.g.
160
- * - every controller needs to (directly) depend on a base controller.
161
- * - each source file should be the dependency of a spec file with the same
162
- * base name
163
- */
164
- required?: IRequiredRuleType[];
140
+ /**
141
+ * A list of rules that describe dependencies that are not allowed.
142
+ * dependency-cruiser will emit a separate error (warning/ informational)
143
+ * messages for each violated rule.
144
+ */
145
+ forbidden?: IForbiddenRuleType[];
146
+ /**
147
+ * A list of rules that describe dependencies that are allowed.
148
+ * dependency-cruiser will emit the warning message 'not-in-allowed' for
149
+ * each dependency that does not at least one of them.
150
+ */
151
+ allowed?: IAllowedRuleType[];
152
+ /**
153
+ * Severity to use when a dependency is not in the 'allowed' set of rules.
154
+ * Defaults to 'warn'
155
+ */
156
+ allowedSeverity?: SeverityType;
157
+ /**
158
+ * A list of rules that describe what dependencies modules _must_ have.
159
+ * E.g.
160
+ * - every controller needs to (directly) depend on a base controller.
161
+ * - each source file should be the dependency of a spec file with the same
162
+ * base name
163
+ */
164
+ required?: IRequiredRuleType[];
165
165
  }
@@ -6,18 +6,18 @@ import type { SeverityType } from "./shared-types.mjs";
6
6
  */
7
7
 
8
8
  export interface IRuleSummary {
9
- /**
10
- * The (short, eslint style) name of the violated rule. Typically something like
11
- * 'no-core-punycode' or 'no-outside-deps'.
12
- */
13
- name: string;
14
- /**
15
- * How severe a violation of a rule is. The 'error' severity will make some reporters return
16
- * a non-zero exit code, so if you want e.g. a build to stop when there's a rule violated:
17
- * use that. The absence of the 'ignore' severity here is by design; ignored rules don't
18
- * show up in the output.
19
- *
20
- * Severity to use when a dependency is not in the 'allowed' set of rules. Defaults to 'warn'
21
- */
22
- severity: SeverityType;
9
+ /**
10
+ * The (short, eslint style) name of the violated rule. Typically something like
11
+ * 'no-core-punycode' or 'no-outside-deps'.
12
+ */
13
+ name: string;
14
+ /**
15
+ * How severe a violation of a rule is. The 'error' severity will make some reporters return
16
+ * a non-zero exit code, so if you want e.g. a build to stop when there's a rule violated:
17
+ * use that. The absence of the 'ignore' severity here is by design; ignored rules don't
18
+ * show up in the output.
19
+ *
20
+ * Severity to use when a dependency is not in the 'allowed' set of rules. Defaults to 'warn'
21
+ */
22
+ severity: SeverityType;
23
23
  }
@@ -3,109 +3,109 @@ export type ModuleSystemType = "cjs" | "amd" | "es6" | "tsd";
3
3
 
4
4
  // cruise options, dependency-cruiser
5
5
  export type OutputType =
6
- | "json"
7
- | "html"
8
- | "dot"
9
- | "cdot"
10
- | "archi"
11
- | "ddot"
12
- | "fdot"
13
- | "flat"
14
- | "csv"
15
- | "err"
16
- | "err-long"
17
- | "err-html"
18
- | "teamcity"
19
- | "anon"
20
- | "text"
21
- | "metrics"
22
- | "markdown"
23
- | "mermaid"
24
- | "d2"
25
- | "null"
26
- // for plugins: string. TODO: research whether it's possible to
27
- // tie this down to the `^plugin:[^:]+-reporter-plugin.[cm]?js$` regex
28
- | (string & {}); // autocompletion hack
6
+ | "json"
7
+ | "html"
8
+ | "dot"
9
+ | "cdot"
10
+ | "archi"
11
+ | "ddot"
12
+ | "fdot"
13
+ | "flat"
14
+ | "csv"
15
+ | "err"
16
+ | "err-long"
17
+ | "err-html"
18
+ | "teamcity"
19
+ | "anon"
20
+ | "text"
21
+ | "metrics"
22
+ | "markdown"
23
+ | "mermaid"
24
+ | "d2"
25
+ | "null"
26
+ // for plugins: string. TODO: research whether it's possible to
27
+ // tie this down to the `^plugin:[^:]+-reporter-plugin.[cm]?js$` regex
28
+ | (string & {}); // autocompletion hack
29
29
 
30
30
  export type SeverityType = "error" | "warn" | "info" | "ignore";
31
31
 
32
32
  // cruise options, cruise result, rule set
33
33
  export type DependencyType =
34
- | "aliased-subpath-import"
35
- | "aliased-tsconfig-base-url"
36
- | "aliased-tsconfig-paths"
37
- | "aliased-tsconfig"
38
- | "aliased-webpack"
39
- | "aliased-workspace"
40
- | "aliased"
41
- | "amd-define"
42
- | "amd-require"
43
- | "amd-exotic-require"
44
- | "core"
45
- | "deprecated"
46
- | "dynamic-import"
47
- | "exotic-require"
48
- | "export"
49
- | "import-equals"
50
- | "import"
51
- | "jsdoc"
52
- | "jsdoc-bracket-import"
53
- | "jsdoc-import-tag"
54
- | "local"
55
- | "localmodule"
56
- | "npm-bundled"
57
- | "npm-dev"
58
- | "npm-no-pkg"
59
- | "npm-optional"
60
- | "npm-peer"
61
- | "npm-unknown"
62
- | "npm"
63
- | "pre-compilation-only"
64
- | "process-get-builtin-module"
65
- | "require"
66
- | "triple-slash-amd-dependency"
67
- | "triple-slash-directive"
68
- | "triple-slash-file-reference"
69
- | "triple-slash-type-reference"
70
- | "type-import"
71
- | "type-only"
72
- | "undetermined"
73
- | "unknown";
34
+ | "aliased-subpath-import"
35
+ | "aliased-tsconfig-base-url"
36
+ | "aliased-tsconfig-paths"
37
+ | "aliased-tsconfig"
38
+ | "aliased-webpack"
39
+ | "aliased-workspace"
40
+ | "aliased"
41
+ | "amd-define"
42
+ | "amd-require"
43
+ | "amd-exotic-require"
44
+ | "core"
45
+ | "deprecated"
46
+ | "dynamic-import"
47
+ | "exotic-require"
48
+ | "export"
49
+ | "import-equals"
50
+ | "import"
51
+ | "jsdoc"
52
+ | "jsdoc-bracket-import"
53
+ | "jsdoc-import-tag"
54
+ | "local"
55
+ | "localmodule"
56
+ | "npm-bundled"
57
+ | "npm-dev"
58
+ | "npm-no-pkg"
59
+ | "npm-optional"
60
+ | "npm-peer"
61
+ | "npm-unknown"
62
+ | "npm"
63
+ | "pre-compilation-only"
64
+ | "process-get-builtin-module"
65
+ | "require"
66
+ | "triple-slash-amd-dependency"
67
+ | "triple-slash-directive"
68
+ | "triple-slash-file-reference"
69
+ | "triple-slash-type-reference"
70
+ | "type-import"
71
+ | "type-only"
72
+ | "undetermined"
73
+ | "unknown";
74
74
 
75
75
  export type ProtocolType = "data:" | "file:" | "node:";
76
76
 
77
77
  export type ViolationType =
78
- | "dependency"
79
- | "module"
80
- | "cycle"
81
- | "reachability"
82
- | "instability";
78
+ | "dependency"
79
+ | "module"
80
+ | "cycle"
81
+ | "reachability"
82
+ | "instability";
83
83
 
84
84
  export type RuleScopeType = "module" | "folder";
85
85
 
86
86
  export interface IMiniDependency {
87
- /**
88
- * The name of the module
89
- */
90
- name: string;
91
- /**
92
- * The dependency types of the module relative to the previous module " +
93
- * in the chain it is a part of (e.g. a cycle)
94
- */
95
- dependencyTypes: DependencyType[];
87
+ /**
88
+ * The name of the module
89
+ */
90
+ name: string;
91
+ /**
92
+ * The dependency types of the module relative to the previous module " +
93
+ * in the chain it is a part of (e.g. a cycle)
94
+ */
95
+ dependencyTypes: DependencyType[];
96
96
  }
97
97
 
98
98
  export type ExperimentalStatsType = {
99
- /**
100
- * the number of top level statements in the module. Attribute only
101
- * available when the cruise was executed with the 'experimentalStats
102
- * option set to 'true'.
103
- */
104
- topLevelStatementCount: number;
105
- /**
106
- * the size of the module in bytes. Attribute only available when
107
- * the cruise was executed with the 'experimentalStats' option set to
108
- * 'true'.
109
- */
110
- size: number;
99
+ /**
100
+ * the number of top level statements in the module. Attribute only
101
+ * available when the cruise was executed with the 'experimentalStats
102
+ * option set to 'true'.
103
+ */
104
+ topLevelStatementCount: number;
105
+ /**
106
+ * the size of the module in bytes. Attribute only available when
107
+ * the cruise was executed with the 'experimentalStats' option set to
108
+ * 'true'.
109
+ */
110
+ size: number;
111
111
  };
@@ -1,73 +1,73 @@
1
1
  import type {
2
- IDoNotFollowType,
3
- IExcludeType,
4
- IFocusType,
5
- IIncludeOnlyType,
6
- IReachesType,
7
- IHighlightType,
2
+ IDoNotFollowType,
3
+ IExcludeType,
4
+ IFocusType,
5
+ IIncludeOnlyType,
6
+ IReachesType,
7
+ IHighlightType,
8
8
  } from "./filter-types.mjs";
9
9
  import type { DependencyType } from "./shared-types.mjs";
10
10
 
11
11
  export interface IStrictDoNotFollowType extends IDoNotFollowType {
12
- /**
13
- * a regular expression for modules to include, but not follow further
14
- */
15
- path?: string;
16
- /**
17
- * an array of dependency types to include, but not follow further
18
- */
19
- dependencyTypes?: DependencyType[];
12
+ /**
13
+ * a regular expression for modules to include, but not follow further
14
+ */
15
+ path?: string;
16
+ /**
17
+ * an array of dependency types to include, but not follow further
18
+ */
19
+ dependencyTypes?: DependencyType[];
20
20
  }
21
21
 
22
22
  export interface IStrictExcludeType extends IExcludeType {
23
- /**
24
- * a regular expression for modules to exclude
25
- */
26
- path?: string;
27
- /**
28
- * a boolean indicating whether or not to exclude dynamic dependencies
29
- * leave out to match both
30
- */
31
- dynamic?: boolean;
23
+ /**
24
+ * a regular expression for modules to exclude
25
+ */
26
+ path?: string;
27
+ /**
28
+ * a boolean indicating whether or not to exclude dynamic dependencies
29
+ * leave out to match both
30
+ */
31
+ dynamic?: boolean;
32
32
  }
33
33
 
34
34
  export interface IStrictIncludeOnlyType extends IIncludeOnlyType {
35
- /**
36
- * regular expression describing which dependencies the function
37
- * should cruise - anything not matching this will be skipped
38
- */
39
- path: string;
35
+ /**
36
+ * regular expression describing which dependencies the function
37
+ * should cruise - anything not matching this will be skipped
38
+ */
39
+ path: string;
40
40
  }
41
41
 
42
42
  export interface IStrictFocusType extends IFocusType {
43
- /**
44
- * dependency-cruiser will include modules matching this regular expression
45
- * in its output, as well as their neighbours (direct dependencies and
46
- * dependents)
47
- */
48
- path: string;
49
- /**
50
- * by default 'focus' only includes the direct neighbours of the focus'ed module(s).
51
- * This property makes dependency-cruiser will also include neighbors of neighbors,
52
- * up to the specified depth.
53
- */
54
- depth?: number;
43
+ /**
44
+ * dependency-cruiser will include modules matching this regular expression
45
+ * in its output, as well as their neighbours (direct dependencies and
46
+ * dependents)
47
+ */
48
+ path: string;
49
+ /**
50
+ * by default 'focus' only includes the direct neighbours of the focus'ed module(s).
51
+ * This property makes dependency-cruiser will also include neighbors of neighbors,
52
+ * up to the specified depth.
53
+ */
54
+ depth?: number;
55
55
  }
56
56
 
57
57
  export interface IStrictReachesType extends IReachesType {
58
- /**
59
- * dependency-cruiser will include modules matching this regular expression
60
- * in its output, as well as _any_ module that reaches them - either directly
61
- * or via via.
62
- */
63
- path: string;
58
+ /**
59
+ * dependency-cruiser will include modules matching this regular expression
60
+ * in its output, as well as _any_ module that reaches them - either directly
61
+ * or via via.
62
+ */
63
+ path: string;
64
64
  }
65
65
 
66
66
  export interface IStrictHighlightType extends IHighlightType {
67
- /**
68
- * dependency-cruiser will include modules matching this regular expression
69
- * in its output, as well as _any_ module that reaches them - either directly
70
- * or via via.
71
- */
72
- path: string;
67
+ /**
68
+ * dependency-cruiser will include modules matching this regular expression
69
+ * in its output, as well as _any_ module that reaches them - either directly
70
+ * or via via.
71
+ */
72
+ path: string;
73
73
  }