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.
- package/bin/depcruise-baseline.mjs +43 -43
- package/bin/depcruise-fmt.mjs +89 -89
- package/bin/dependency-cruise.mjs +171 -171
- package/configs/plugins/3d-reporter-plugin.mjs +36 -36
- package/configs/plugins/stats-reporter-plugin.mjs +51 -51
- package/configs/recommended-strict.cjs +5 -5
- package/configs/recommended-warn-only.cjs +5 -5
- package/configs/recommended.cjs +22 -22
- package/configs/rules/no-circular.cjs +10 -10
- package/configs/rules/no-deprecated-core.cjs +10 -10
- package/configs/rules/no-duplicate-dependency-types.cjs +17 -17
- package/configs/rules/no-non-package-json.cjs +11 -11
- package/configs/rules/no-orphans.cjs +18 -18
- package/configs/rules/not-to-deprecated.cjs +10 -10
- package/configs/rules/not-to-unresolvable.cjs +10 -10
- package/package.json +170 -170
- package/src/cache/cache.mjs +139 -139
- package/src/cache/content-strategy.mjs +88 -88
- package/src/cache/find-content-changes.mjs +58 -58
- package/src/cache/helpers.mjs +52 -52
- package/src/cache/metadata-strategy.mjs +83 -83
- package/src/cache/options-compatible.mjs +56 -109
- package/src/cli/assert-node-environment-suitable.mjs +7 -7
- package/src/cli/defaults.mjs +5 -5
- package/src/cli/format-meta-info.mjs +22 -22
- package/src/cli/format.mjs +28 -28
- package/src/cli/index.mjs +145 -145
- package/src/cli/init-config/build-config.mjs +94 -94
- package/src/cli/init-config/environment-helpers.mjs +77 -77
- package/src/cli/init-config/find-extensions.mjs +27 -27
- package/src/cli/init-config/get-user-input.mjs +151 -151
- package/src/cli/init-config/index.mjs +88 -88
- package/src/cli/init-config/normalize-init-options.mjs +47 -47
- package/src/cli/init-config/utl.mjs +4 -4
- package/src/cli/init-config/validators.mjs +10 -10
- package/src/cli/init-config/write-config.mjs +21 -21
- package/src/cli/init-config/write-run-scripts-to-manifest.mjs +103 -107
- package/src/cli/listeners/cli-feedback.mjs +49 -49
- package/src/cli/listeners/ndjson.mjs +66 -66
- package/src/cli/listeners/performance-log/format-helpers.mjs +63 -63
- package/src/cli/listeners/performance-log/handlers.mjs +56 -56
- package/src/cli/listeners/performance-log/index.mjs +37 -37
- package/src/cli/normalize-cli-options.mjs +182 -182
- package/src/cli/tools/wrap-stream-in-html.mjs +37 -37
- package/src/cli/utl/assert-file-existence.mjs +7 -7
- package/src/cli/utl/io.mjs +28 -31
- package/src/config-utl/extract-babel-config.mjs +69 -69
- package/src/config-utl/extract-depcruise-config/index.mjs +54 -54
- package/src/config-utl/extract-depcruise-config/merge-configs.mjs +63 -63
- package/src/config-utl/extract-depcruise-config/read-config.mjs +9 -9
- package/src/config-utl/extract-depcruise-options.mjs +9 -9
- package/src/config-utl/extract-known-violations.mjs +49 -49
- package/src/config-utl/extract-ts-config.mjs +46 -48
- package/src/config-utl/extract-webpack-resolve-config.mjs +88 -88
- package/src/config-utl/make-absolute.mjs +5 -5
- package/src/enrich/add-validations.mjs +13 -13
- package/src/enrich/derive/circular.mjs +49 -49
- package/src/enrich/derive/dependents.mjs +27 -27
- package/src/enrich/derive/folders/aggregate-to-folders.mjs +104 -104
- package/src/enrich/derive/folders/index.mjs +19 -19
- package/src/enrich/derive/folders/utl.mjs +18 -18
- package/src/enrich/derive/metrics/get-module-metrics.mjs +27 -27
- package/src/enrich/derive/metrics/index.mjs +8 -8
- package/src/enrich/derive/module-utl.mjs +18 -18
- package/src/enrich/derive/orphan/index.mjs +18 -18
- package/src/enrich/derive/orphan/is-orphan.mjs +9 -9
- package/src/enrich/derive/reachable.mjs +165 -168
- package/src/enrich/enrich-modules.mjs +25 -25
- package/src/enrich/index.mjs +15 -15
- package/src/enrich/soften-known-violations.mjs +90 -90
- package/src/enrich/summarize/add-rule-set-used.mjs +13 -13
- package/src/enrich/summarize/get-stats.mjs +17 -17
- package/src/enrich/summarize/index.mjs +18 -18
- package/src/enrich/summarize/is-same-violation.mjs +30 -30
- package/src/enrich/summarize/summarize-folders.mjs +35 -35
- package/src/enrich/summarize/summarize-modules.mjs +97 -97
- package/src/enrich/summarize/summarize-options.mjs +71 -71
- package/src/extract/acorn/estree-helpers.mjs +66 -66
- package/src/extract/acorn/extract-amd-deps.mjs +63 -64
- package/src/extract/acorn/extract-cjs-deps.mjs +83 -83
- package/src/extract/acorn/extract-es6-deps.mjs +54 -54
- package/src/extract/acorn/extract-stats.mjs +4 -4
- package/src/extract/acorn/extract.mjs +28 -28
- package/src/extract/acorn/parse.mjs +37 -37
- package/src/extract/clear-caches.mjs +7 -7
- package/src/extract/extract-dependencies.mjs +109 -109
- package/src/extract/extract-stats.mjs +21 -21
- package/src/extract/gather-initial-sources.mjs +64 -64
- package/src/extract/helpers.mjs +73 -71
- package/src/extract/index.mjs +120 -120
- package/src/extract/resolve/determine-dependency-types.mjs +166 -169
- package/src/extract/resolve/external-module-helpers.mjs +76 -76
- package/src/extract/resolve/get-manifest.mjs +79 -79
- package/src/extract/resolve/index.mjs +175 -164
- package/src/extract/resolve/is-built-in.mjs +22 -24
- package/src/extract/resolve/merge-manifests.mjs +43 -43
- package/src/extract/resolve/module-classifiers.mjs +229 -229
- package/src/extract/resolve/resolve-amd.mjs +44 -44
- package/src/extract/resolve/resolve-cjs.mjs +40 -40
- package/src/extract/resolve/resolve-helpers.mjs +20 -20
- package/src/extract/resolve/resolve.mjs +26 -26
- package/src/extract/swc/dependency-visitor.mjs +211 -211
- package/src/extract/swc/extract-swc-deps.mjs +4 -4
- package/src/extract/swc/extract.mjs +7 -7
- package/src/extract/swc/parse.mjs +12 -12
- package/src/extract/transpile/babel-wrap.mjs +9 -9
- package/src/extract/transpile/coffeescript-wrap.mjs +21 -21
- package/src/extract/transpile/index.mjs +47 -47
- package/src/extract/transpile/javascript-wrap.mjs +6 -6
- package/src/extract/transpile/livescript-wrap.mjs +5 -5
- package/src/extract/transpile/meta.mjs +80 -80
- package/src/extract/transpile/svelte-preprocess.mjs +73 -73
- package/src/extract/transpile/svelte-wrap.mjs +19 -19
- package/src/extract/transpile/try-import-available.mjs +26 -27
- package/src/extract/transpile/typescript-wrap.mjs +39 -39
- package/src/extract/transpile/vue-template-wrap.cjs +43 -43
- package/src/extract/tsc/extract-stats.mjs +4 -4
- package/src/extract/tsc/extract-typescript-deps.mjs +429 -398
- package/src/extract/tsc/extract.mjs +22 -22
- package/src/extract/tsc/parse.mjs +21 -21
- package/src/graph-utl/add-focus.mjs +35 -35
- package/src/graph-utl/compare.mjs +24 -24
- package/src/graph-utl/consolidate-module-dependencies.mjs +35 -35
- package/src/graph-utl/consolidate-modules.mjs +33 -33
- package/src/graph-utl/consolidate-to-folder.mjs +13 -13
- package/src/graph-utl/consolidate-to-pattern.mjs +34 -34
- package/src/graph-utl/filter-bank.mjs +74 -69
- package/src/graph-utl/indexed-module-graph.mjs +227 -225
- package/src/graph-utl/match-facade.mjs +3 -3
- package/src/graph-utl/rule-set.mjs +20 -20
- package/src/graph-utl/strip-self-transitions.mjs +6 -6
- package/src/main/cruise.mjs +81 -81
- package/src/main/files-and-dirs/normalize.mjs +7 -7
- package/src/main/format.mjs +11 -14
- package/src/main/helpers.mjs +25 -25
- package/src/main/index.mjs +8 -8
- package/src/main/options/assert-validity.mjs +100 -100
- package/src/main/options/defaults.mjs +11 -11
- package/src/main/options/normalize.mjs +158 -160
- package/src/main/report-wrap.mjs +37 -37
- package/src/main/resolve-options/normalize.mjs +127 -128
- package/src/main/rule-set/assert-validity.mjs +67 -73
- package/src/main/rule-set/normalize.mjs +81 -79
- package/src/meta.cjs +15 -16
- package/src/report/anon/anonymize-path-element.mjs +20 -34
- package/src/report/anon/anonymize-path.mjs +11 -11
- package/src/report/anon/index.mjs +119 -119
- package/src/report/anon/random-string.mjs +23 -23
- package/src/report/azure-devops.mjs +75 -99
- package/src/report/baseline.mjs +9 -9
- package/src/report/csv.mjs +13 -13
- package/src/report/d2.mjs +105 -105
- package/src/report/dot/default-theme.mjs +152 -152
- package/src/report/dot/index.mjs +146 -146
- package/src/report/dot/module-utl.mjs +72 -72
- package/src/report/dot/prepare-custom-level.mjs +20 -20
- package/src/report/dot/prepare-flat-level.mjs +11 -11
- package/src/report/dot/prepare-folder-level.mjs +12 -13
- package/src/report/dot/theming.mjs +73 -73
- package/src/report/dot-webpage/dot-module.mjs +36 -36
- package/src/report/dot-webpage/svg-in-html-snippets/script.cjs +208 -210
- package/src/report/dot-webpage/svg-in-html-snippets/style.css +51 -51
- package/src/report/dot-webpage/wrap-in-html.mjs +7 -7
- package/src/report/error-html/index.mjs +49 -49
- package/src/report/error-html/utl.mjs +99 -99
- package/src/report/error-long.mjs +1 -1
- package/src/report/error.mjs +93 -93
- package/src/report/html/index.mjs +48 -48
- package/src/report/identity.mjs +4 -4
- package/src/report/index.mjs +33 -33
- package/src/report/json.mjs +4 -4
- package/src/report/markdown.mjs +120 -120
- package/src/report/mermaid.mjs +111 -111
- package/src/report/metrics.mjs +185 -185
- package/src/report/null.mjs +4 -4
- package/src/report/plugins.mjs +41 -41
- package/src/report/teamcity.mjs +150 -150
- package/src/report/text.mjs +42 -42
- package/src/report/utl/dependency-to-incidence-transformer.mjs +32 -32
- package/src/report/utl/index.mjs +53 -53
- package/src/schema/configuration.validate.mjs +1 -0
- package/src/schema/cruise-result.validate.mjs +1 -0
- package/src/schema/utl.mjs +6 -0
- package/src/utl/array-util.mjs +25 -25
- package/src/utl/bus.mjs +12 -12
- package/src/utl/extract-root-module-name.cjs +8 -8
- package/src/utl/find-all-files.mjs +54 -54
- package/src/utl/get-extension.mjs +2 -2
- package/src/utl/object-util.mjs +21 -22
- package/src/utl/path-to-posix.mjs +5 -5
- package/src/utl/regex-util.mjs +20 -20
- package/src/utl/try-import.mjs +42 -41
- package/src/utl/try-require.cjs +23 -23
- package/src/utl/wrap-and-indent.mjs +33 -33
- package/src/validate/index.mjs +65 -65
- package/src/validate/match-dependency-rule.mjs +47 -47
- package/src/validate/match-folder-dependency-rule.mjs +27 -27
- package/src/validate/match-module-rule-helpers.mjs +76 -76
- package/src/validate/match-module-rule.mjs +12 -12
- package/src/validate/matchers.mjs +162 -162
- package/src/validate/rule-classifiers.mjs +9 -9
- package/src/validate/violates-required-rule.mjs +23 -23
- package/types/cache-options.d.mts +27 -27
- package/types/config-utl/extract-babel-config.d.mts +1 -1
- package/types/config-utl/extract-depcruise-config.d.mts +3 -3
- package/types/config-utl/extract-depcruise-options.d.mts +1 -1
- package/types/config-utl/extract-ts-config.d.mts +1 -1
- package/types/config-utl/extract-webpack-resolve-config.d.mts +3 -3
- package/types/configuration.d.mts +10 -10
- package/types/cruise-result.d.mts +414 -414
- package/types/dependency-cruiser.d.mts +52 -52
- package/types/filter-types.d.mts +45 -45
- package/types/options.d.mts +430 -430
- package/types/plugins/3d-reporter-plugin.d.mts +9 -9
- package/types/plugins/mermaid-reporter-plugin.d.mts +10 -10
- package/types/plugins/stats-reporter-plugin.d.mts +9 -9
- package/types/reporter-options.d.mts +196 -196
- package/types/resolve-options.d.mts +23 -23
- package/types/restrictions.d.mts +174 -174
- package/types/rule-set.d.mts +132 -132
- package/types/rule-summary.d.mts +14 -14
- package/types/shared-types.d.mts +89 -89
- package/types/strict-filter-types.d.mts +52 -52
- package/types/strict-options.d.mts +34 -34
- package/types/strict-restrictions.d.mts +25 -25
- package/types/strict-rule-set.d.mts +36 -36
- package/types/violations.d.mts +40 -40
- package/src/schema/README.md +0 -5
- package/src/schema/baseline-violations.schema.mjs +0 -1
- package/src/schema/configuration.schema.mjs +0 -1
- package/src/schema/cruise-result.schema.mjs +0 -1
- package/types/README.md +0 -1
package/types/rule-set.d.mts
CHANGED
|
@@ -1,165 +1,165 @@
|
|
|
1
1
|
import type { SeverityType, RuleScopeType } from "./shared-types.mjs";
|
|
2
2
|
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
| IRegularForbiddenRuleType
|
|
98
|
+
| IReachabilityForbiddenRuleType
|
|
99
|
+
| IDependentsForbiddenRuleType;
|
|
100
100
|
|
|
101
101
|
export interface IRequiredRuleType extends IBaseRuleType {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
|
|
132
|
-
|
|
131
|
+
| IRegularAllowedRuleType
|
|
132
|
+
| IReachabilityAllowedRuleType;
|
|
133
133
|
|
|
134
134
|
export type IAnyRuleType =
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
135
|
+
| IForbiddenRuleType
|
|
136
|
+
| IAllowedRuleType
|
|
137
|
+
| IRequiredRuleType;
|
|
138
138
|
|
|
139
139
|
export interface IFlattenedRuleSet {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
}
|
package/types/rule-summary.d.mts
CHANGED
|
@@ -6,18 +6,18 @@ import type { SeverityType } from "./shared-types.mjs";
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
export interface IRuleSummary {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
}
|
package/types/shared-types.d.mts
CHANGED
|
@@ -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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
}
|