dependency-cruiser 16.4.0 → 16.4.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.
- package/package.json +4 -4
- package/src/cache/cache.mjs +0 -2
- package/src/cache/find-content-changes.mjs +0 -2
- package/src/cache/metadata-strategy.mjs +0 -1
- package/src/cli/init-config/find-extensions.mjs +0 -3
- package/src/enrich/add-validations.mjs +3 -3
- package/src/enrich/derive/folders/index.mjs +2 -2
- package/src/enrich/derive/reachable.mjs +6 -3
- package/src/enrich/summarize/index.mjs +2 -2
- package/src/enrich/summarize/summarize-modules.mjs +2 -2
- package/src/extract/acorn/extract.mjs +3 -3
- package/src/extract/acorn/parse.mjs +0 -6
- package/src/extract/clear-caches.mjs +6 -6
- package/src/extract/resolve/module-classifiers.mjs +8 -1
- package/src/extract/swc/extract.mjs +3 -5
- package/src/extract/swc/parse.mjs +14 -22
- package/src/extract/tsc/extract.mjs +4 -4
- package/src/extract/tsc/parse.mjs +14 -22
- package/src/graph-utl/compare.mjs +10 -14
- package/src/graph-utl/consolidate-module-dependencies.mjs +2 -2
- package/src/graph-utl/consolidate-modules.mjs +2 -2
- package/src/main/options/assert-validity.mjs +2 -2
- package/src/main/report-wrap.mjs +4 -4
- package/src/meta.cjs +1 -1
- package/src/report/dot/index.mjs +6 -12
- package/src/report/dot/module-utl.mjs +5 -35
- package/src/report/dot/prepare-custom-level.mjs +8 -7
- package/src/report/dot/prepare-flat-level.mjs +8 -7
- package/src/report/dot/prepare-folder-level.mjs +9 -7
- package/src/report/dot/theming.mjs +20 -6
- package/src/report/error-html/utl.mjs +2 -11
- package/src/report/index.mjs +2 -7
- package/src/report/markdown.mjs +5 -3
- package/src/utl/regex-util.mjs +2 -7
- package/src/validate/index.mjs +14 -17
- package/src/validate/match-dependency-rule.mjs +34 -26
- package/src/validate/match-folder-dependency-rule.mjs +3 -3
- package/src/validate/match-module-rule-helpers.mjs +132 -0
- package/src/validate/match-module-rule.mjs +6 -130
- package/src/validate/matchers.mjs +22 -38
- package/src/validate/rule-classifiers.mjs +0 -2
- package/src/validate/violates-required-rule.mjs +8 -4
|
@@ -19,7 +19,7 @@ const DEPENDENCY_TYPE_DUPLICATES_THAT_MATTER = new Set([
|
|
|
19
19
|
"npm-unknown",
|
|
20
20
|
]);
|
|
21
21
|
|
|
22
|
-
function propertyEquals(pRule, pDependency, pProperty) {
|
|
22
|
+
export function propertyEquals(pRule, pDependency, pProperty) {
|
|
23
23
|
// The properties can be booleans, so we can't use !pRule.to[pProperty]
|
|
24
24
|
if (Object.hasOwn(pRule.to, pProperty)) {
|
|
25
25
|
return pDependency[pProperty] === pRule.to[pProperty];
|
|
@@ -27,7 +27,7 @@ function propertyEquals(pRule, pDependency, pProperty) {
|
|
|
27
27
|
return true;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
function propertyMatches(pRule, pDependency, pRuleProperty, pProperty) {
|
|
30
|
+
export function propertyMatches(pRule, pDependency, pRuleProperty, pProperty) {
|
|
31
31
|
return Boolean(
|
|
32
32
|
!pRule.to[pRuleProperty] ||
|
|
33
33
|
(pDependency[pProperty] &&
|
|
@@ -35,7 +35,12 @@ function propertyMatches(pRule, pDependency, pRuleProperty, pProperty) {
|
|
|
35
35
|
);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
function propertyMatchesNot(
|
|
38
|
+
export function propertyMatchesNot(
|
|
39
|
+
pRule,
|
|
40
|
+
pDependency,
|
|
41
|
+
pRuleProperty,
|
|
42
|
+
pProperty,
|
|
43
|
+
) {
|
|
39
44
|
return Boolean(
|
|
40
45
|
!pRule.to[pRuleProperty] ||
|
|
41
46
|
(pDependency[pProperty] &&
|
|
@@ -43,21 +48,21 @@ function propertyMatchesNot(pRule, pDependency, pRuleProperty, pProperty) {
|
|
|
43
48
|
);
|
|
44
49
|
}
|
|
45
50
|
|
|
46
|
-
function
|
|
51
|
+
export function matchesFromPath(pRule, pModule) {
|
|
47
52
|
return Boolean(!pRule.from.path || pModule.source.match(pRule.from.path));
|
|
48
53
|
}
|
|
49
54
|
|
|
50
|
-
function
|
|
55
|
+
export function matchesFromPathNot(pRule, pModule) {
|
|
51
56
|
return Boolean(
|
|
52
57
|
!pRule.from.pathNot || !pModule.source.match(pRule.from.pathNot),
|
|
53
58
|
);
|
|
54
59
|
}
|
|
55
60
|
|
|
56
|
-
function
|
|
61
|
+
export function matchesModulePath(pRule, pModule) {
|
|
57
62
|
return Boolean(!pRule.module.path || pModule.source.match(pRule.module.path));
|
|
58
63
|
}
|
|
59
64
|
|
|
60
|
-
function
|
|
65
|
+
export function matchesModulePathNot(pRule, pModule) {
|
|
61
66
|
return Boolean(
|
|
62
67
|
!pRule.module.pathNot || !pModule.source.match(pRule.module.pathNot),
|
|
63
68
|
);
|
|
@@ -70,11 +75,11 @@ function _toPath(pRule, pString, pGroups = []) {
|
|
|
70
75
|
);
|
|
71
76
|
}
|
|
72
77
|
|
|
73
|
-
function
|
|
78
|
+
export function matchesToPath(pRule, pDependency, pGroups) {
|
|
74
79
|
return _toPath(pRule, pDependency.resolved, pGroups);
|
|
75
80
|
}
|
|
76
81
|
|
|
77
|
-
function
|
|
82
|
+
export function matchToModulePath(pRule, pModule, pGroups) {
|
|
78
83
|
return _toPath(pRule, pModule.source, pGroups);
|
|
79
84
|
}
|
|
80
85
|
|
|
@@ -85,22 +90,22 @@ function _toPathNot(pRule, pString, pGroups = []) {
|
|
|
85
90
|
);
|
|
86
91
|
}
|
|
87
92
|
|
|
88
|
-
function
|
|
93
|
+
export function matchesToPathNot(pRule, pDependency, pGroups) {
|
|
89
94
|
return _toPathNot(pRule, pDependency.resolved, pGroups);
|
|
90
95
|
}
|
|
91
96
|
|
|
92
|
-
function
|
|
97
|
+
export function matchToModulePathNot(pRule, pModule, pGroups) {
|
|
93
98
|
return _toPathNot(pRule, pModule.source, pGroups);
|
|
94
99
|
}
|
|
95
100
|
|
|
96
|
-
function
|
|
101
|
+
export function matchesToDependencyTypes(pRule, pDependency) {
|
|
97
102
|
return Boolean(
|
|
98
103
|
!pRule.to.dependencyTypes ||
|
|
99
104
|
intersects(pDependency.dependencyTypes, pRule.to.dependencyTypes),
|
|
100
105
|
);
|
|
101
106
|
}
|
|
102
107
|
|
|
103
|
-
function
|
|
108
|
+
export function matchesToDependencyTypesNot(pRule, pDependency) {
|
|
104
109
|
return Boolean(
|
|
105
110
|
!pRule.to.dependencyTypesNot ||
|
|
106
111
|
!intersects(pDependency.dependencyTypes, pRule.to.dependencyTypesNot),
|
|
@@ -108,7 +113,7 @@ function toDependencyTypesNot(pRule, pDependency) {
|
|
|
108
113
|
}
|
|
109
114
|
|
|
110
115
|
// eslint-disable-next-line complexity
|
|
111
|
-
function
|
|
116
|
+
export function matchesToVia(pRule, pDependency, pGroups) {
|
|
112
117
|
let lReturnValue = true;
|
|
113
118
|
if (pRule.to.via && pDependency.cycle) {
|
|
114
119
|
if (pRule.to.via.path) {
|
|
@@ -140,7 +145,7 @@ function toVia(pRule, pDependency, pGroups) {
|
|
|
140
145
|
}
|
|
141
146
|
|
|
142
147
|
// eslint-disable-next-line complexity
|
|
143
|
-
function
|
|
148
|
+
export function matchesToViaOnly(pRule, pDependency, pGroups) {
|
|
144
149
|
let lReturnValue = true;
|
|
145
150
|
if (pRule.to.viaOnly && pDependency.cycle) {
|
|
146
151
|
if (pRule.to.viaOnly.path) {
|
|
@@ -171,7 +176,7 @@ function toViaOnly(pRule, pDependency, pGroups) {
|
|
|
171
176
|
return lReturnValue;
|
|
172
177
|
}
|
|
173
178
|
|
|
174
|
-
function
|
|
179
|
+
export function matchesToIsMoreUnstable(pRule, pModule, pDependency) {
|
|
175
180
|
if (Object.hasOwn(pRule.to, "moreUnstable")) {
|
|
176
181
|
return (
|
|
177
182
|
(pRule.to.moreUnstable &&
|
|
@@ -182,7 +187,7 @@ function toIsMoreUnstable(pRule, pModule, pDependency) {
|
|
|
182
187
|
return true;
|
|
183
188
|
}
|
|
184
189
|
|
|
185
|
-
function matchesMoreThanOneDependencyType(pRule, pDependency) {
|
|
190
|
+
export function matchesMoreThanOneDependencyType(pRule, pDependency) {
|
|
186
191
|
/**
|
|
187
192
|
* this rule exists to weed out i.e. dependencies declared in both
|
|
188
193
|
* dependencies and devDependencies. We, however, also use the dependencyTypes
|
|
@@ -208,24 +213,3 @@ function matchesMoreThanOneDependencyType(pRule, pDependency) {
|
|
|
208
213
|
}
|
|
209
214
|
return true;
|
|
210
215
|
}
|
|
211
|
-
|
|
212
|
-
export default {
|
|
213
|
-
replaceGroupPlaceholders,
|
|
214
|
-
propertyEquals,
|
|
215
|
-
propertyMatches,
|
|
216
|
-
propertyMatchesNot,
|
|
217
|
-
fromPath,
|
|
218
|
-
fromPathNot,
|
|
219
|
-
toPath,
|
|
220
|
-
toModulePath,
|
|
221
|
-
modulePath,
|
|
222
|
-
modulePathNot,
|
|
223
|
-
toPathNot,
|
|
224
|
-
toModulePathNot,
|
|
225
|
-
toDependencyTypes,
|
|
226
|
-
toDependencyTypesNot,
|
|
227
|
-
toVia,
|
|
228
|
-
toViaOnly,
|
|
229
|
-
toIsMoreUnstable,
|
|
230
|
-
matchesMoreThanOneDependencyType,
|
|
231
|
-
};
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {
|
|
2
|
+
matchesToPath,
|
|
3
|
+
matchesModulePath,
|
|
4
|
+
matchesModulePathNot,
|
|
5
|
+
} from "./matchers.mjs";
|
|
2
6
|
import { extractGroups } from "#utl/regex-util.mjs";
|
|
3
7
|
|
|
4
8
|
/**
|
|
@@ -13,13 +17,13 @@ export default function violatesRequiredRule(pRule, pModule) {
|
|
|
13
17
|
let lReturnValue = false;
|
|
14
18
|
|
|
15
19
|
if (
|
|
16
|
-
|
|
17
|
-
|
|
20
|
+
matchesModulePath(pRule, pModule) &&
|
|
21
|
+
matchesModulePathNot(pRule, pModule)
|
|
18
22
|
) {
|
|
19
23
|
const lGroups = extractGroups(pRule.module, pModule.source);
|
|
20
24
|
|
|
21
25
|
lReturnValue = !pModule.dependencies.some((pDependency) =>
|
|
22
|
-
|
|
26
|
+
matchesToPath(pRule, pDependency, lGroups),
|
|
23
27
|
);
|
|
24
28
|
}
|
|
25
29
|
return lReturnValue;
|