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,195 +1,195 @@
1
1
  import type { DependencyType } from "./shared-types.mjs";
2
2
 
3
3
  export type MiniDependencyRestrictionType =
4
- | string
5
- | string[]
6
- | {
7
- /**
8
- * A regular expression or an array of regular expressions the
9
- * 'via' module should match to be caught by this rule.
10
- */
11
- path?: string | string[];
12
- /**
13
- * A regular expression or an array of regular expressions the
14
- * 'via' module should match to be caught by this rule.
15
- */
16
- pathNot?: string | string[];
17
- /**
18
- * Which dependency types the dependency between this via and the
19
- * previous one in the 'via chain' should have to be caught by
20
- * this rule
21
- */
22
- dependencyTypes?: DependencyType[];
23
- /**
24
- * Which dependency types the dependency between this via and the
25
- * previous one in the 'via chain' should _not_ have to be caught by
26
- * this rule
27
- */
28
- dependencyTypesNot?: DependencyType[];
29
- };
4
+ | string
5
+ | string[]
6
+ | {
7
+ /**
8
+ * A regular expression or an array of regular expressions the
9
+ * 'via' module should match to be caught by this rule.
10
+ */
11
+ path?: string | string[];
12
+ /**
13
+ * A regular expression or an array of regular expressions the
14
+ * 'via' module should match to be caught by this rule.
15
+ */
16
+ pathNot?: string | string[];
17
+ /**
18
+ * Which dependency types the dependency between this via and the
19
+ * previous one in the 'via chain' should have to be caught by
20
+ * this rule
21
+ */
22
+ dependencyTypes?: DependencyType[];
23
+ /**
24
+ * Which dependency types the dependency between this via and the
25
+ * previous one in the 'via chain' should _not_ have to be caught by
26
+ * this rule
27
+ */
28
+ dependencyTypesNot?: DependencyType[];
29
+ };
30
30
 
31
31
  export interface IBaseRestrictionType {
32
- /**
33
- * A regular expression or an array of regular expressions that select
34
- * the modules this required rule should apply to.
35
- */
36
- path?: string | string[];
37
- /**
38
- * A regular expression or an array of regular expressions that select
39
- * the modules this required rule should not apply to (you can use this
40
- * to make exceptions on the `path` attribute)
41
- */
42
- pathNot?: string | string[];
32
+ /**
33
+ * A regular expression or an array of regular expressions that select
34
+ * the modules this required rule should apply to.
35
+ */
36
+ path?: string | string[];
37
+ /**
38
+ * A regular expression or an array of regular expressions that select
39
+ * the modules this required rule should not apply to (you can use this
40
+ * to make exceptions on the `path` attribute)
41
+ */
42
+ pathNot?: string | string[];
43
43
  }
44
44
 
45
45
  export interface IFromRestriction extends IBaseRestrictionType {
46
- /**
47
- * Whether or not to match when the module is an orphan (= has no incoming and no outgoing
48
- * dependencies). When this property it is part of a rule, dependency-cruiser will
49
- * ignore the 'to' part.
50
- */
51
- orphan?: boolean;
46
+ /**
47
+ * Whether or not to match when the module is an orphan (= has no incoming and no outgoing
48
+ * dependencies). When this property it is part of a rule, dependency-cruiser will
49
+ * ignore the 'to' part.
50
+ */
51
+ orphan?: boolean;
52
52
  }
53
53
 
54
54
  export interface IToRestriction extends IBaseRestrictionType {
55
- /**
56
- * Whether or not to match modules dependency-cruiser could not resolve (and probably
57
- * aren't on disk). For this one too: leave out if you don't care either way.
58
- */
59
- couldNotResolve?: boolean;
60
- /**
61
- * Whether or not to match when following to the to will ultimately end up in the from.
62
- */
63
- circular?: boolean;
64
- /**
65
- * For circular dependencies - whether or not to match cycles that include
66
- * some modules with this regular expression. If you want to match cycles that
67
- * _exclusively_ include modules satisfying the regular expression use the viaOnly
68
- * restriction.
69
- * E.g. to allow all cycles
70
- * except when they go through one specific module. Typically to temporarily
71
- * disallow some cycles with a lower severity - setting up a rule with a via
72
- * that ignores them in an 'allowed' section.
73
- */
74
- via?: MiniDependencyRestrictionType;
75
- /**
76
- * "For circular dependencies - whether or not to match cycles that include
77
- * exclusively modules with this regular expression. This is different from
78
- * the regular via that already matches when only some of the modules in the
79
- * cycle satisfy the regular expression
80
- */
81
- viaOnly?: MiniDependencyRestrictionType;
82
- /**
83
- * For circular dependencies - whether or not to match cycles that include
84
- * _only_ modules that don't satisfy this regular expression. E.g. to disallow all cycles,
85
- * except when they go through one specific module. Typically to temporarily
86
- * allow some cycles until they're removed.
87
- * @deprecated use viaOnly.pathNot in stead
88
- */
89
- viaNot?: string | string[];
90
- /**
91
- * "For circular dependencies - whether or not to match cycles that include
92
- * _some_ modules that don't satisfy this regular expression.
93
- * @deprecated use via.pathNot in stead
94
- */
95
- viaSomeNot?: string | string[];
96
- /**
97
- * Whether or not to match when the dependency is a dynamic one.
98
- */
99
- dynamic?: boolean;
100
- /**
101
- * Whether or not to match when the dependency is exotically required
102
- */
103
- exoticallyRequired?: boolean;
104
- /**
105
- * A regular expression to match against any 'exotic' require strings
106
- */
107
- exoticRequire?: string | string[];
108
- /**
109
- * A regular expression to match against any 'exotic' require strings - when it should NOT be caught by the rule
110
- */
111
- exoticRequireNot?: string | string[];
112
- /**
113
- * true if this dependency only exists before compilation (like type only imports),
114
- * false in all other cases. Only returned when the tsPreCompilationDeps is set to 'specify'.
115
- */
116
- preCompilationOnly?: boolean;
117
- /**
118
- * Whether or not to match modules of any of these types (leaving out matches any of them)
119
- */
120
- dependencyTypes?: DependencyType[];
121
- /**
122
- * Whether or not to match modules NOT of any of these types (leaving out
123
- * matches none of them)"
124
- */
125
- dependencyTypesNot?: DependencyType[];
126
- /**
127
- * If true matches dependencies with more than one dependency type (e.g. defined in
128
- * _both_ npm and npm-dev)
129
- */
130
- moreThanOneDependencyType?: boolean;
131
- /**
132
- * Whether or not to match modules that were released under one of the mentioned
133
- * licenses. E.g. to flag GPL-1.0, GPL-2.0 licensed modules (e.g. because your app
134
- * is not compatible with the GPL) use "GPL"
135
- */
136
- license?: string | string[];
137
- /**
138
- * Whether or not to match modules that were NOT released under one of the mentioned
139
- * licenses. E.g. to flag everything non MIT use "MIT" here
140
- */
141
- licenseNot?: string | string[];
142
- /**
143
- * When set to true moreUnstable matches for any dependency that has a higher
144
- * Instability than the module that depends on it. When set to false it matches
145
- * when the opposite is true; the dependency has an equal or lower Instability.
146
- *
147
- * This attribute is useful when you want to check against Robert C. Martin's
148
- * stable dependency * principle. See online documentation for examples and
149
- * details.
150
- *
151
- * Leave this out when you don't care either way.
152
- */
153
- moreUnstable?: boolean;
154
- /**
155
- * When set to true, matches when the dependency is in a folder above the " +
156
- * folder of the module.
157
- */
158
- ancestor?: boolean;
55
+ /**
56
+ * Whether or not to match modules dependency-cruiser could not resolve (and probably
57
+ * aren't on disk). For this one too: leave out if you don't care either way.
58
+ */
59
+ couldNotResolve?: boolean;
60
+ /**
61
+ * Whether or not to match when following to the to will ultimately end up in the from.
62
+ */
63
+ circular?: boolean;
64
+ /**
65
+ * For circular dependencies - whether or not to match cycles that include
66
+ * some modules with this regular expression. If you want to match cycles that
67
+ * _exclusively_ include modules satisfying the regular expression use the viaOnly
68
+ * restriction.
69
+ * E.g. to allow all cycles
70
+ * except when they go through one specific module. Typically to temporarily
71
+ * disallow some cycles with a lower severity - setting up a rule with a via
72
+ * that ignores them in an 'allowed' section.
73
+ */
74
+ via?: MiniDependencyRestrictionType;
75
+ /**
76
+ * "For circular dependencies - whether or not to match cycles that include
77
+ * exclusively modules with this regular expression. This is different from
78
+ * the regular via that already matches when only some of the modules in the
79
+ * cycle satisfy the regular expression
80
+ */
81
+ viaOnly?: MiniDependencyRestrictionType;
82
+ /**
83
+ * For circular dependencies - whether or not to match cycles that include
84
+ * _only_ modules that don't satisfy this regular expression. E.g. to disallow all cycles,
85
+ * except when they go through one specific module. Typically to temporarily
86
+ * allow some cycles until they're removed.
87
+ * @deprecated use viaOnly.pathNot in stead
88
+ */
89
+ viaNot?: string | string[];
90
+ /**
91
+ * "For circular dependencies - whether or not to match cycles that include
92
+ * _some_ modules that don't satisfy this regular expression.
93
+ * @deprecated use via.pathNot in stead
94
+ */
95
+ viaSomeNot?: string | string[];
96
+ /**
97
+ * Whether or not to match when the dependency is a dynamic one.
98
+ */
99
+ dynamic?: boolean;
100
+ /**
101
+ * Whether or not to match when the dependency is exotically required
102
+ */
103
+ exoticallyRequired?: boolean;
104
+ /**
105
+ * A regular expression to match against any 'exotic' require strings
106
+ */
107
+ exoticRequire?: string | string[];
108
+ /**
109
+ * A regular expression to match against any 'exotic' require strings - when it should NOT be caught by the rule
110
+ */
111
+ exoticRequireNot?: string | string[];
112
+ /**
113
+ * true if this dependency only exists before compilation (like type only imports),
114
+ * false in all other cases. Only returned when the tsPreCompilationDeps is set to 'specify'.
115
+ */
116
+ preCompilationOnly?: boolean;
117
+ /**
118
+ * Whether or not to match modules of any of these types (leaving out matches any of them)
119
+ */
120
+ dependencyTypes?: DependencyType[];
121
+ /**
122
+ * Whether or not to match modules NOT of any of these types (leaving out
123
+ * matches none of them)"
124
+ */
125
+ dependencyTypesNot?: DependencyType[];
126
+ /**
127
+ * If true matches dependencies with more than one dependency type (e.g. defined in
128
+ * _both_ npm and npm-dev)
129
+ */
130
+ moreThanOneDependencyType?: boolean;
131
+ /**
132
+ * Whether or not to match modules that were released under one of the mentioned
133
+ * licenses. E.g. to flag GPL-1.0, GPL-2.0 licensed modules (e.g. because your app
134
+ * is not compatible with the GPL) use "GPL"
135
+ */
136
+ license?: string | string[];
137
+ /**
138
+ * Whether or not to match modules that were NOT released under one of the mentioned
139
+ * licenses. E.g. to flag everything non MIT use "MIT" here
140
+ */
141
+ licenseNot?: string | string[];
142
+ /**
143
+ * When set to true moreUnstable matches for any dependency that has a higher
144
+ * Instability than the module that depends on it. When set to false it matches
145
+ * when the opposite is true; the dependency has an equal or lower Instability.
146
+ *
147
+ * This attribute is useful when you want to check against Robert C. Martin's
148
+ * stable dependency * principle. See online documentation for examples and
149
+ * details.
150
+ *
151
+ * Leave this out when you don't care either way.
152
+ */
153
+ moreUnstable?: boolean;
154
+ /**
155
+ * When set to true, matches when the dependency is in a folder above the " +
156
+ * folder of the module.
157
+ */
158
+ ancestor?: boolean;
159
159
  }
160
160
 
161
161
  export interface IReachabilityToRestrictionType extends IBaseRestrictionType {
162
- /**
163
- * Whether or not to match modules that aren't reachable from the from part of the rule.
164
- */
165
- reachable: boolean;
162
+ /**
163
+ * Whether or not to match modules that aren't reachable from the from part of the rule.
164
+ */
165
+ reachable: boolean;
166
166
  }
167
167
 
168
168
  export interface IRequiredToRestrictionType {
169
- /**
170
- * A regular expression or an array of regular expressions at least
171
- * one of the dependencies of the module should adhere to.
172
- */
173
- path?: string | string[];
174
- /**
175
- * Whether or not to match transitive ('indirect') dependencies as well as direct ones.
176
- */
177
- reachable?: boolean;
169
+ /**
170
+ * A regular expression or an array of regular expressions at least
171
+ * one of the dependencies of the module should adhere to.
172
+ */
173
+ path?: string | string[];
174
+ /**
175
+ * Whether or not to match transitive ('indirect') dependencies as well as direct ones.
176
+ */
177
+ reachable?: boolean;
178
178
  }
179
179
 
180
180
  export interface IDependentsModuleRestrictionType extends IBaseRestrictionType {
181
- /**
182
- * Matches when the number of times the 'to' module is used falls below (<)
183
- * this number. Caveat: only works in concert with path and pathNot restrictions
184
- * in the from and to parts of the rule; other conditions will be ignored.
185
- * E.g. to flag modules that are used only once or not at all, use 2 here.
186
- */
187
- numberOfDependentsLessThan?: number;
188
- /**
189
- * Matches when the number of times the 'to' module is used rises above (<)
190
- * this number. Caveat: only works in concert with path and pathNot restrictions
191
- * in the from and to parts of the rule; other conditions will be ignored.
192
- * E.g. to flag modules that are used more than 10 times, use 10 here.
193
- */
194
- numberOfDependentsMoreThan?: number;
181
+ /**
182
+ * Matches when the number of times the 'to' module is used falls below (<)
183
+ * this number. Caveat: only works in concert with path and pathNot restrictions
184
+ * in the from and to parts of the rule; other conditions will be ignored.
185
+ * E.g. to flag modules that are used only once or not at all, use 2 here.
186
+ */
187
+ numberOfDependentsLessThan?: number;
188
+ /**
189
+ * Matches when the number of times the 'to' module is used rises above (<)
190
+ * this number. Caveat: only works in concert with path and pathNot restrictions
191
+ * in the from and to parts of the rule; other conditions will be ignored.
192
+ * E.g. to flag modules that are used more than 10 times, use 10 here.
193
+ */
194
+ numberOfDependentsMoreThan?: number;
195
195
  }