dependency-cruiser 16.2.0 → 16.2.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/README.md +1 -1
- package/bin/depcruise-baseline.mjs +1 -1
- package/bin/depcruise-fmt.mjs +1 -1
- package/bin/dependency-cruise.mjs +1 -1
- package/configs/{recommended-strict.js → recommended-strict.cjs} +1 -1
- package/configs/{recommended-warn-only.js → recommended-warn-only.cjs} +1 -1
- package/configs/{recommended.js → recommended.cjs} +7 -7
- package/package.json +51 -18
- package/src/cache/cache.mjs +1 -1
- package/src/cache/content-strategy.mjs +1 -1
- package/src/cache/find-content-changes.mjs +5 -5
- package/src/cache/helpers.mjs +2 -2
- package/src/cache/metadata-strategy.mjs +2 -2
- package/src/cli/assert-node-environment-suitable.mjs +1 -1
- package/src/cli/init-config/config-template.mjs +37 -124
- package/src/cli/init-config/normalize-init-options.mjs +1 -1
- package/src/cli/init-config/write-run-scripts-to-manifest.mjs +1 -1
- package/src/cli/tools/wrap-stream-in-html.mjs +1 -1
- package/src/config-utl/extract-babel-config.mjs +1 -1
- package/src/config-utl/extract-depcruise-config/index.mjs +3 -2
- package/src/config-utl/extract-ts-config.mjs +1 -1
- package/src/extract/ast-extractors/extract-typescript-deps.mjs +1 -1
- package/src/extract/ast-extractors/swc-dependency-visitor.mjs +1 -1
- package/src/extract/parse/to-swc-ast.mjs +1 -1
- package/src/extract/parse/to-typescript-ast.mjs +1 -1
- package/src/extract/resolve/module-classifiers.mjs +6 -3
- package/src/extract/transpile/babel-wrap.mjs +1 -1
- package/src/extract/transpile/coffeescript-wrap.mjs +1 -1
- package/src/extract/transpile/index.mjs +2 -2
- package/src/extract/transpile/livescript-wrap.mjs +1 -1
- package/src/extract/transpile/meta.mjs +1 -1
- package/src/extract/transpile/svelte-wrap.mjs +1 -1
- package/src/extract/transpile/typescript-wrap.mjs +1 -1
- package/src/extract/transpile/vue-template-wrap.cjs +1 -1
- package/src/{meta.js → meta.cjs} +1 -1
- package/src/report/dot-webpage/wrap-in-html.mjs +1 -1
- package/src/report/error-html/index.mjs +1 -1
- package/src/report/error-html/utl.mjs +1 -1
- package/src/report/markdown.mjs +1 -1
- package/src/schema/cruise-result.schema.mjs +1 -1
- package/types/config-utl/extract-depcruise-config.d.mts +3 -2
- package/types/options.d.mts +1 -1
- /package/configs/rules/{no-circular.js → no-circular.cjs} +0 -0
- /package/configs/rules/{no-deprecated-core.js → no-deprecated-core.cjs} +0 -0
- /package/configs/rules/{no-duplicate-dependency-types.js → no-duplicate-dependency-types.cjs} +0 -0
- /package/configs/rules/{no-non-package-json.js → no-non-package-json.cjs} +0 -0
- /package/configs/rules/{no-orphans.js → no-orphans.cjs} +0 -0
- /package/configs/rules/{not-to-deprecated.js → not-to-deprecated.cjs} +0 -0
- /package/configs/rules/{not-to-unresolvable.js → not-to-unresolvable.cjs} +0 -0
- /package/src/report/dot-webpage/svg-in-html-snippets/{script.js → script.cjs} +0 -0
package/README.md
CHANGED
|
@@ -42,7 +42,7 @@ a `.dependency-cruiser.js` configuration file attuned to your project[^1][^2].
|
|
|
42
42
|
`npx`.
|
|
43
43
|
|
|
44
44
|
[^2]:
|
|
45
|
-
If you don't
|
|
45
|
+
If you don't want to use `npx`, but instead `pnpx` (from the `pnpm`
|
|
46
46
|
package manager) or `yarn` - please refer to that tool's documentation.
|
|
47
47
|
Particularly `pnpx` has semantics that differ from `npx` quite significantly
|
|
48
48
|
and that you want to be aware of before using it. In the mean time: `npx`
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { program } from "commander";
|
|
3
3
|
import assertNodeEnvironmentSuitable from "#cli/assert-node-environment-suitable.mjs";
|
|
4
4
|
import cli from "#cli/index.mjs";
|
|
5
|
-
import meta from "#meta.
|
|
5
|
+
import meta from "#meta.cjs";
|
|
6
6
|
|
|
7
7
|
function formatError(pError) {
|
|
8
8
|
process.stderr.write(pError.message);
|
package/bin/depcruise-fmt.mjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { program } from "commander";
|
|
4
4
|
import assertNodeEnvironmentSuitable from "#cli/assert-node-environment-suitable.mjs";
|
|
5
5
|
import format from "#cli/format.mjs";
|
|
6
|
-
import meta from "#meta.
|
|
6
|
+
import meta from "#meta.cjs";
|
|
7
7
|
|
|
8
8
|
function formatError(pError) {
|
|
9
9
|
process.stderr.write(pError.message);
|
|
@@ -3,7 +3,7 @@ import { EOL } from "node:os";
|
|
|
3
3
|
import { program, Option } from "commander";
|
|
4
4
|
import assertNodeEnvironmentSuitable from "#cli/assert-node-environment-suitable.mjs";
|
|
5
5
|
import cli from "#cli/index.mjs";
|
|
6
|
-
import meta from "#meta.
|
|
6
|
+
import meta from "#meta.cjs";
|
|
7
7
|
|
|
8
8
|
try {
|
|
9
9
|
assertNodeEnvironmentSuitable();
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const noCircular = require("./rules/no-circular");
|
|
2
|
-
const noDeprecatedCore = require("./rules/no-deprecated-core");
|
|
3
|
-
const noDuplicateDependencyTypes = require("./rules/no-duplicate-dependency-types");
|
|
4
|
-
const noNonPackageJson = require("./rules/no-non-package-json");
|
|
5
|
-
const noOrphans = require("./rules/no-orphans");
|
|
6
|
-
const notToDeprecated = require("./rules/not-to-deprecated");
|
|
7
|
-
const notToUnresolvable = require("./rules/not-to-unresolvable");
|
|
1
|
+
const noCircular = require("./rules/no-circular.cjs");
|
|
2
|
+
const noDeprecatedCore = require("./rules/no-deprecated-core.cjs");
|
|
3
|
+
const noDuplicateDependencyTypes = require("./rules/no-duplicate-dependency-types.cjs");
|
|
4
|
+
const noNonPackageJson = require("./rules/no-non-package-json.cjs");
|
|
5
|
+
const noOrphans = require("./rules/no-orphans.cjs");
|
|
6
|
+
const notToDeprecated = require("./rules/not-to-deprecated.cjs");
|
|
7
|
+
const notToUnresolvable = require("./rules/not-to-unresolvable.cjs");
|
|
8
8
|
|
|
9
9
|
module.exports = {
|
|
10
10
|
forbidden: [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dependency-cruiser",
|
|
3
|
-
"version": "16.2.
|
|
3
|
+
"version": "16.2.2",
|
|
4
4
|
"description": "Validate and visualize dependencies. With your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"static analysis",
|
|
@@ -16,15 +16,48 @@
|
|
|
16
16
|
"validation",
|
|
17
17
|
"spelunking"
|
|
18
18
|
],
|
|
19
|
-
"author":
|
|
20
|
-
"name": "Sander Verweij",
|
|
21
|
-
"url": "https://sverweij.github.io"
|
|
22
|
-
},
|
|
19
|
+
"author": "Sander Verweij (https://sverweij.github.io)",
|
|
23
20
|
"contributors": [
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
"Hirotaka Miyagi (https://mh4gf.dev)",
|
|
22
|
+
"TruongSinh Tran-Nguyen (https://truongsinh.pro)",
|
|
23
|
+
"Bastian Hess (https://github.com/bashess)",
|
|
24
|
+
"Álvaro Cuesta (https://github.com/alvaro-cuesta)",
|
|
25
|
+
"anna (https://github.com/annamooseity)",
|
|
26
|
+
"Radosław Kłos (https://klos.dev)",
|
|
27
|
+
"Joshua T (https://github.com/radiantly)",
|
|
28
|
+
"Ivan (https://github.com/Winner95)",
|
|
29
|
+
"Frieder Bluemle (https://github.com/friederbluemle)",
|
|
30
|
+
"davidparkagoda (https://github.com/davidparkagoda)",
|
|
31
|
+
"Matt Button (https://github.com/BRMatt)",
|
|
32
|
+
"Jon Lauridsen (https://jonlauridsen.com)",
|
|
33
|
+
"Klaus Meinhardt (https://github.com/ajafff)",
|
|
34
|
+
"cunzaizhuyi (https://github.com/cunzaizhuyi)",
|
|
35
|
+
"Greg Lockwood (https://github.com/greglockwood)",
|
|
36
|
+
"Jeremy Magland (https://github.com/magland)",
|
|
37
|
+
"Sebastian Landwehr (https://sebastianlandwehr.com)",
|
|
38
|
+
"Brody McKee (https://github.com/mrmckeb)",
|
|
39
|
+
"Bin (https://github.com/soulhat)",
|
|
40
|
+
"정건우 (https://www.zigae.com/)",
|
|
41
|
+
"Roy Swinkels (https://github.com/donroyco)",
|
|
42
|
+
"Martin Slota (https://github.com/martinslota)",
|
|
43
|
+
"Luke Page (https://github.com/lukeapage)",
|
|
44
|
+
"Emily Marigold Klassen (https://forivall.com)",
|
|
45
|
+
"Christian Vuerings (https://github.com/christianvuerings)",
|
|
46
|
+
"Yuanhai He (https://bestmike007.com)",
|
|
47
|
+
"Quentin de Metz (https://github.com/quentindemetz)",
|
|
48
|
+
"Lars Artmann (https://larsartmann.com)",
|
|
49
|
+
"Jessica Kerr (https://jessitron.com)",
|
|
50
|
+
"Creative Ataraxia (https://github.com/Creative-Ataraxia)",
|
|
51
|
+
"0xflotus (https://github.com/0xflotus)",
|
|
52
|
+
"Daniel Edholm Ignat (https://github.com/dignite)",
|
|
53
|
+
"Daniel Rodríguez Rivero (https://danielorodriguez.com)",
|
|
54
|
+
"Nick Ribal (https://github.com/elektronik2k5)",
|
|
55
|
+
"Richard Musiol https(://github.com/neelance)",
|
|
56
|
+
"Sharang Pai (https://sharangpai.me)",
|
|
57
|
+
"Stefan Gojan (https://stefan-gojan.de)",
|
|
58
|
+
"Tharun Rajendran (https://github.com/tharun208)",
|
|
59
|
+
"electrovir (https://github.com/electrovir)",
|
|
60
|
+
"fusheng (https://github.com/lin-hun)"
|
|
28
61
|
],
|
|
29
62
|
"license": "MIT",
|
|
30
63
|
"repository": {
|
|
@@ -86,11 +119,10 @@
|
|
|
86
119
|
"types": "types/dependency-cruiser.d.mts",
|
|
87
120
|
"files": [
|
|
88
121
|
"bin",
|
|
89
|
-
"configs/**/*.
|
|
122
|
+
"configs/**/*.cjs",
|
|
90
123
|
"configs/plugins/",
|
|
91
124
|
"src",
|
|
92
125
|
"!src/**/*.json",
|
|
93
|
-
"!src/**/*.hbs",
|
|
94
126
|
"!src/**/*.md",
|
|
95
127
|
"!**/*.DS_Store",
|
|
96
128
|
"types/**/*.d.mts",
|
|
@@ -107,7 +139,7 @@
|
|
|
107
139
|
"ajv": "8.12.0",
|
|
108
140
|
"chalk": "5.3.0",
|
|
109
141
|
"commander": "12.0.0",
|
|
110
|
-
"enhanced-resolve": "5.15.
|
|
142
|
+
"enhanced-resolve": "5.15.1",
|
|
111
143
|
"figures": "6.0.1",
|
|
112
144
|
"ignore": "5.3.1",
|
|
113
145
|
"indent-string": "5.0.0",
|
|
@@ -115,23 +147,23 @@
|
|
|
115
147
|
"is-installed-globally": "1.0.0",
|
|
116
148
|
"json5": "2.2.3",
|
|
117
149
|
"lodash": "4.17.21",
|
|
118
|
-
"picomatch": "
|
|
150
|
+
"picomatch": "4.0.1",
|
|
119
151
|
"prompts": "2.4.2",
|
|
120
152
|
"rechoir": "^0.8.0",
|
|
121
153
|
"safe-regex": "2.1.1",
|
|
122
|
-
"semver": "^7.
|
|
154
|
+
"semver": "^7.6.0",
|
|
123
155
|
"semver-try-require": "6.2.3",
|
|
124
156
|
"teamcity-service-messages": "0.1.14",
|
|
125
157
|
"tsconfig-paths-webpack-plugin": "4.1.0",
|
|
126
|
-
"watskeburt": "
|
|
158
|
+
"watskeburt": "4.0.0",
|
|
127
159
|
"wrap-ansi": "9.0.0"
|
|
128
160
|
},
|
|
129
161
|
"overrides": {
|
|
130
|
-
"semver": "^7.
|
|
162
|
+
"semver": "^7.6.0",
|
|
131
163
|
"postcss": "^8.4.31"
|
|
132
164
|
},
|
|
133
165
|
"resolutions": {
|
|
134
|
-
"semver": "^7.
|
|
166
|
+
"semver": "^7.6.0",
|
|
135
167
|
"postcss": "^8.4.31"
|
|
136
168
|
},
|
|
137
169
|
"engines": {
|
|
@@ -139,5 +171,6 @@
|
|
|
139
171
|
},
|
|
140
172
|
"scripts": {
|
|
141
173
|
"test": "echo for test, build and static analysis scripts: see the github repository"
|
|
142
|
-
}
|
|
174
|
+
},
|
|
175
|
+
"type": "module"
|
|
143
176
|
}
|
package/src/cache/cache.mjs
CHANGED
|
@@ -44,7 +44,7 @@ const EMPTY_CACHE = {
|
|
|
44
44
|
// in patch releases. If worst case scenario it _is_ necessary we could
|
|
45
45
|
// add the patch version divided by 1000_000 e.g.:
|
|
46
46
|
// version 3.14.16 => 3.14 + 16/1000_000 = 3.140016
|
|
47
|
-
const CACHE_FORMAT_VERSION = 16;
|
|
47
|
+
const CACHE_FORMAT_VERSION = 16.2;
|
|
48
48
|
|
|
49
49
|
export default class Cache {
|
|
50
50
|
/**
|
|
@@ -56,7 +56,7 @@ export default class ContentStrategy {
|
|
|
56
56
|
* @param {IStrictCruiseOptions} pCruiseOptions
|
|
57
57
|
* @param {Object} pOptions
|
|
58
58
|
* @param {Set<string>} pOptions.extensions
|
|
59
|
-
* @param {Set<import("watskeburt").
|
|
59
|
+
* @param {Set<import("watskeburt").changeType>=} pOptions.interestingChangeTypes?
|
|
60
60
|
* @param {string=} pOptions.baseDir
|
|
61
61
|
* @param {typeof findContentChanges=} pOptions.diffListFn
|
|
62
62
|
* @param {typeof import('watskeburt').getSHA=} pOptions.checksumFn
|
|
@@ -25,11 +25,11 @@ function diffCachedModuleAgainstFileSet(
|
|
|
25
25
|
) {
|
|
26
26
|
return (pModule) => {
|
|
27
27
|
if (!moduleIsInterestingForDiff(pModule)) {
|
|
28
|
-
return { name: pModule.source,
|
|
28
|
+
return { name: pModule.source, type: "ignored" };
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
if (!pFileSet.has(pModule.source)) {
|
|
32
|
-
return { name: pModule.source,
|
|
32
|
+
return { name: pModule.source, type: "deleted" };
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
const lNewCheckSum = pFileHashFunction(
|
|
@@ -38,14 +38,14 @@ function diffCachedModuleAgainstFileSet(
|
|
|
38
38
|
if (lNewCheckSum !== pModule.checksum) {
|
|
39
39
|
return {
|
|
40
40
|
name: pModule.source,
|
|
41
|
-
|
|
41
|
+
type: "modified",
|
|
42
42
|
checksum: lNewCheckSum,
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
return {
|
|
47
47
|
name: pModule.source,
|
|
48
|
-
|
|
48
|
+
type: "unmodified",
|
|
49
49
|
checksum: pModule.checksum,
|
|
50
50
|
};
|
|
51
51
|
};
|
|
@@ -99,7 +99,7 @@ export default function findContentChanges(
|
|
|
99
99
|
for (let lFileName of lFileSet) {
|
|
100
100
|
lDiffNewVsCached.push({
|
|
101
101
|
name: lFileName,
|
|
102
|
-
|
|
102
|
+
type: /** @type import('watskeburt').changeType */ ("added"),
|
|
103
103
|
checksum: getFileHashSync(join(pOptions.baseDir, lFileName)),
|
|
104
104
|
});
|
|
105
105
|
}
|
package/src/cache/helpers.mjs
CHANGED
|
@@ -107,13 +107,13 @@ const DEFAULT_INTERESTING_CHANGE_TYPES = new Set([
|
|
|
107
107
|
]);
|
|
108
108
|
|
|
109
109
|
/**
|
|
110
|
-
* @param {Set<import("watskeburt").
|
|
110
|
+
* @param {Set<import("watskeburt").changeType>=} pInterestingChangeTypes
|
|
111
111
|
* @returns {(pChange: import("watskeburt").IChange) => boolean}
|
|
112
112
|
*/
|
|
113
113
|
export function isInterestingChangeType(pInterestingChangeTypes) {
|
|
114
114
|
return (pChange) =>
|
|
115
115
|
(pInterestingChangeTypes ?? DEFAULT_INTERESTING_CHANGE_TYPES).has(
|
|
116
|
-
pChange.
|
|
116
|
+
pChange.type,
|
|
117
117
|
);
|
|
118
118
|
}
|
|
119
119
|
|
|
@@ -26,7 +26,7 @@ export default class MetaDataStrategy {
|
|
|
26
26
|
* @param {import("../../types/cruise-result.mjs").ICruiseResult} _pCachedCruiseResult
|
|
27
27
|
* @param {Object} pOptions
|
|
28
28
|
* @param {Set<string>} pOptions.extensions
|
|
29
|
-
* @param {Set<import("watskeburt").
|
|
29
|
+
* @param {Set<import("watskeburt").changeType>=} pOptions.interestingChangeTypes
|
|
30
30
|
* @param {typeof getSHA=} pOptions.shaRetrievalFn
|
|
31
31
|
* @param {typeof list=} pOptions.diffListFn
|
|
32
32
|
* @param {typeof addCheckSumToChangeSync=} pOptions.checksumFn
|
|
@@ -49,7 +49,7 @@ export default class MetaDataStrategy {
|
|
|
49
49
|
const lSHA = await lOptions.shaRetrievalFn();
|
|
50
50
|
bus.debug("cache: - getting diff");
|
|
51
51
|
const lDiff = /** @type {import("watskeburt").IChange[]} */ (
|
|
52
|
-
await lOptions.diffListFn(lSHA)
|
|
52
|
+
await lOptions.diffListFn({ oldRevision: lSHA })
|
|
53
53
|
);
|
|
54
54
|
const lChanges = lDiff
|
|
55
55
|
.filter(({ name }) => excludeFilter(pCruiseOptions.exclude)(name))
|
|
@@ -199,38 +199,31 @@ module.exports = {
|
|
|
199
199
|
],
|
|
200
200
|
options: {
|
|
201
201
|
|
|
202
|
-
/*
|
|
203
|
-
- path: a regular expression to match
|
|
204
|
-
- dependencyTypes: see https://github.com/sverweij/dependency-cruiser/blob/main/doc/rules-reference.md#dependencytypes-and-dependencytypesnot
|
|
205
|
-
for a complete list
|
|
206
|
-
*/
|
|
202
|
+
/* Which modules not to follow further when encountered */
|
|
207
203
|
doNotFollow: {
|
|
208
|
-
path:
|
|
204
|
+
/* path: an array of regular expressions in strings to match against */
|
|
205
|
+
path: ['node_modules']
|
|
209
206
|
},
|
|
210
207
|
|
|
211
|
-
/*
|
|
212
|
-
- path: a regular expression to match
|
|
213
|
-
- dynamic: a boolean indicating whether to ignore dynamic (true) or static (false) dependencies.
|
|
214
|
-
leave out if you want to exclude neither (recommended!)
|
|
215
|
-
*/
|
|
208
|
+
/* Which modules to exclude */
|
|
216
209
|
// exclude : {
|
|
210
|
+
// /* path: an array of regular expressions in strings to match against */
|
|
217
211
|
// path: '',
|
|
218
|
-
// dynamic: true
|
|
219
212
|
// },
|
|
220
213
|
|
|
221
|
-
/*
|
|
214
|
+
/* Which modules to exclusively include (array of regular expressions in strings)
|
|
222
215
|
dependency-cruiser will skip everything not matching this pattern
|
|
223
216
|
*/
|
|
224
|
-
// includeOnly : '',
|
|
217
|
+
// includeOnly : [''],
|
|
225
218
|
|
|
226
219
|
/* dependency-cruiser will include modules matching against the focus
|
|
227
|
-
regular expression in its output, as well as their neighbours
|
|
228
|
-
dependencies and dependents)
|
|
220
|
+
regular expression in its output, as well as their direct neighbours
|
|
221
|
+
(dependencies and dependents)
|
|
229
222
|
*/
|
|
230
223
|
// focus : '',
|
|
231
224
|
|
|
232
|
-
/* List of module systems to cruise.
|
|
233
|
-
When left out dependency-cruiser will fall back to the list of _all_
|
|
225
|
+
/* List of module systems to cruise.
|
|
226
|
+
When left out dependency-cruiser will fall back to the list of _all_
|
|
234
227
|
module systems it knows of. It's the default because it's the safe option
|
|
235
228
|
It might come at a performance penalty, though.
|
|
236
229
|
moduleSystems: ['amd', 'cjs', 'es6', 'tsd']
|
|
@@ -245,7 +238,7 @@ module.exports = {
|
|
|
245
238
|
to open it on your online repo or \`vscode://file/$\{process.cwd()}/\` to
|
|
246
239
|
open it in visual studio code),
|
|
247
240
|
*/
|
|
248
|
-
// prefix:
|
|
241
|
+
// prefix: \`vscode://file/$\{process.cwd()}/\`,
|
|
249
242
|
|
|
250
243
|
/* false (the default): ignore dependencies that only exist before typescript-to-javascript compilation
|
|
251
244
|
true: also detect dependencies that only exist before typescript-to-javascript compilation
|
|
@@ -253,10 +246,9 @@ module.exports = {
|
|
|
253
246
|
*/
|
|
254
247
|
{{tsPreCompilationDepsAttribute}}
|
|
255
248
|
|
|
256
|
-
/*
|
|
257
|
-
list of extensions to scan that aren't javascript or compile-to-javascript.
|
|
249
|
+
/* list of extensions to scan that aren't javascript or compile-to-javascript.
|
|
258
250
|
Empty by default. Only put extensions in here that you want to take into
|
|
259
|
-
account that are _not_ parsable.
|
|
251
|
+
account that are _not_ parsable.
|
|
260
252
|
*/
|
|
261
253
|
// extraExtensionsToScan: [".json", ".jpg", ".png", ".svg", ".webp"],
|
|
262
254
|
|
|
@@ -293,9 +285,7 @@ module.exports = {
|
|
|
293
285
|
|
|
294
286
|
/* Babel config ('.babelrc', '.babelrc.json', '.babelrc.json5', ...) to use
|
|
295
287
|
for compilation (and whatever other naughty things babel plugins do to
|
|
296
|
-
source code).
|
|
297
|
-
behavior a bit over time (e.g. more precise results for used module
|
|
298
|
-
systems) without dependency-cruiser getting a major version bump.
|
|
288
|
+
source code).
|
|
299
289
|
*/
|
|
300
290
|
{{babelConfigAttribute}}
|
|
301
291
|
|
|
@@ -305,57 +295,37 @@ module.exports = {
|
|
|
305
295
|
a hack.
|
|
306
296
|
*/
|
|
307
297
|
// exoticRequireStrings: [],
|
|
298
|
+
|
|
308
299
|
/* options to pass on to enhanced-resolve, the package dependency-cruiser
|
|
309
|
-
uses to resolve module references to disk.
|
|
310
|
-
|
|
311
|
-
projects that don't have a separate webpack config file.
|
|
300
|
+
uses to resolve module references to disk. The values below should be
|
|
301
|
+
suitable for most situations
|
|
312
302
|
|
|
313
|
-
|
|
303
|
+
If you use webpack: you can also set these in webpack.conf.js. The set
|
|
304
|
+
there will override the ones specified here.
|
|
314
305
|
*/
|
|
315
306
|
enhancedResolveOptions: {
|
|
316
|
-
/*
|
|
317
|
-
['exports'] when you use packages that use such a field and your environment
|
|
318
|
-
supports it (e.g. node ^12.19 || >=14.7 or recent versions of webpack).
|
|
319
|
-
|
|
320
|
-
If you have an \`exportsFields\` attribute in your webpack config, that one
|
|
321
|
-
will have precedence over the one specified here.
|
|
322
|
-
*/
|
|
307
|
+
/* What to consider as an 'exports' field in package.jsons */
|
|
323
308
|
exportsFields: ["exports"],
|
|
324
|
-
/* List of conditions to check for in the exports field.
|
|
325
|
-
|
|
326
|
-
or all conditions at once \`(['import', 'require', 'node', 'default']\`)
|
|
327
|
-
if anything goes for you. Only works when the 'exportsFields' array is
|
|
328
|
-
non-empty.
|
|
329
|
-
|
|
330
|
-
If you have a 'conditionNames' attribute in your webpack config, that one will
|
|
331
|
-
have precedence over the one specified here.
|
|
309
|
+
/* List of conditions to check for in the exports field.
|
|
310
|
+
Only works when the 'exportsFields' array is non-empty.
|
|
332
311
|
*/
|
|
333
312
|
conditionNames: ["import", "require", "node", "default", "types"],
|
|
334
313
|
/*
|
|
335
314
|
The extensions, by default are the same as the ones dependency-cruiser
|
|
336
315
|
can access (run \`npx depcruise --info\` to see which ones that are in
|
|
337
|
-
_your_ environment. If that list is larger than
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
dependency cruising (module resolution) quite a bit.
|
|
316
|
+
_your_ environment. If that list is larger than you need you can pass
|
|
317
|
+
the extensions you actually use (e.g. [".js", ".jsx"]). This can speed
|
|
318
|
+
up the most expensive step in dependency cruising (module resolution)
|
|
319
|
+
quite a bit.
|
|
342
320
|
*/
|
|
343
321
|
{{extensionsAttribute}}
|
|
344
|
-
/*
|
|
345
|
-
If your TypeScript project makes use of types specified in 'types'
|
|
346
|
-
fields in package.jsons of external dependencies, specify "types"
|
|
347
|
-
in addition to "main" in here, so enhanced-resolve (the resolver
|
|
348
|
-
dependency-cruiser uses) knows to also look there. You can also do
|
|
349
|
-
this if you're not sure, but still use TypeScript. In a future version
|
|
350
|
-
of dependency-cruiser this will likely become the default.
|
|
351
|
-
*/
|
|
322
|
+
/* What to consider a 'main' field in package.json */
|
|
352
323
|
{{mainFieldsAttribute}}
|
|
353
324
|
/*
|
|
354
|
-
A list of alias fields in
|
|
355
|
-
|
|
356
|
-
[
|
|
357
|
-
|
|
358
|
-
in the webpack docs.
|
|
325
|
+
A list of alias fields in package.jsons
|
|
326
|
+
See [this specification](https://github.com/defunctzombie/package-browser-field-spec) and
|
|
327
|
+
the [resolve.alias](https://webpack.js.org/configuration/resolve/#resolvealiasfields)
|
|
328
|
+
documentation in the webpack docs.
|
|
359
329
|
|
|
360
330
|
Defaults to an empty array (don't use any alias fields).
|
|
361
331
|
*/
|
|
@@ -377,70 +347,13 @@ module.exports = {
|
|
|
377
347
|
*/
|
|
378
348
|
// theme: {
|
|
379
349
|
// graph: {
|
|
380
|
-
// /*
|
|
381
|
-
//
|
|
382
|
-
//
|
|
350
|
+
// /* splines: "ortho" will give you straight lines at the expense of
|
|
351
|
+
// being slow to render on big graphs
|
|
352
|
+
// splines: "true" will give you bezier curves which are faster
|
|
353
|
+
// but might not look as nice
|
|
383
354
|
// */
|
|
384
355
|
// splines: "true"
|
|
385
356
|
// },
|
|
386
|
-
// modules: [
|
|
387
|
-
// {
|
|
388
|
-
// criteria: { matchesFocus: true },
|
|
389
|
-
// attributes: {
|
|
390
|
-
// fillcolor: "lime",
|
|
391
|
-
// penwidth: 2,
|
|
392
|
-
// },
|
|
393
|
-
// },
|
|
394
|
-
// {
|
|
395
|
-
// criteria: { matchesFocus: false },
|
|
396
|
-
// attributes: {
|
|
397
|
-
// fillcolor: "lightgrey",
|
|
398
|
-
// },
|
|
399
|
-
// },
|
|
400
|
-
// {
|
|
401
|
-
// criteria: { matchesReaches: true },
|
|
402
|
-
// attributes: {
|
|
403
|
-
// fillcolor: "lime",
|
|
404
|
-
// penwidth: 2,
|
|
405
|
-
// },
|
|
406
|
-
// },
|
|
407
|
-
// {
|
|
408
|
-
// criteria: { matchesReaches: false },
|
|
409
|
-
// attributes: {
|
|
410
|
-
// fillcolor: "lightgrey",
|
|
411
|
-
// },
|
|
412
|
-
// },
|
|
413
|
-
// {
|
|
414
|
-
// criteria: { source: "^src/model" },
|
|
415
|
-
// attributes: { fillcolor: "#ccccff" }
|
|
416
|
-
// },
|
|
417
|
-
// {
|
|
418
|
-
// criteria: { source: "^src/view" },
|
|
419
|
-
// attributes: { fillcolor: "#ccffcc" }
|
|
420
|
-
// },
|
|
421
|
-
// ],
|
|
422
|
-
// dependencies: [
|
|
423
|
-
// {
|
|
424
|
-
// criteria: { "rules[0].severity": "error" },
|
|
425
|
-
// attributes: { fontcolor: "red", color: "red" }
|
|
426
|
-
// },
|
|
427
|
-
// {
|
|
428
|
-
// criteria: { "rules[0].severity": "warn" },
|
|
429
|
-
// attributes: { fontcolor: "orange", color: "orange" }
|
|
430
|
-
// },
|
|
431
|
-
// {
|
|
432
|
-
// criteria: { "rules[0].severity": "info" },
|
|
433
|
-
// attributes: { fontcolor: "blue", color: "blue" }
|
|
434
|
-
// },
|
|
435
|
-
// {
|
|
436
|
-
// criteria: { resolved: "^src/model" },
|
|
437
|
-
// attributes: { color: "#0000ff77" }
|
|
438
|
-
// },
|
|
439
|
-
// {
|
|
440
|
-
// criteria: { resolved: "^src/view" },
|
|
441
|
-
// attributes: { color: "#00770077" }
|
|
442
|
-
// }
|
|
443
|
-
// ]
|
|
444
357
|
// }
|
|
445
358
|
},
|
|
446
359
|
archi: {
|
|
@@ -455,7 +368,7 @@ module.exports = {
|
|
|
455
368
|
https://github.com/sverweij/dependency-cruiser/blob/main/doc/options-reference.md#reporteroptions
|
|
456
369
|
for details and some examples. If you don't specify a theme
|
|
457
370
|
for 'archi' dependency-cruiser will use the one specified in the
|
|
458
|
-
dot section
|
|
371
|
+
dot section above and otherwise use the default one.
|
|
459
372
|
*/
|
|
460
373
|
// theme: {
|
|
461
374
|
// },
|
|
@@ -102,7 +102,7 @@ export function addRunScriptsToManifest(pManifest, pAdditionalRunScripts) {
|
|
|
102
102
|
const lManifest = { ...(pManifest || {}) };
|
|
103
103
|
const lExistingRunScripts = lManifest.scripts || {};
|
|
104
104
|
|
|
105
|
-
// This could instead
|
|
105
|
+
// This could instead be done with
|
|
106
106
|
// {...pAdditionalScriptEntries, ...lManifest} and no logic at all,
|
|
107
107
|
// but that'd add the new scripts on top, which doesn't feel right
|
|
108
108
|
//
|
|
@@ -4,7 +4,7 @@ import { extname } from "node:path";
|
|
|
4
4
|
import json5 from "json5";
|
|
5
5
|
import tryImport from "semver-try-require";
|
|
6
6
|
import makeAbsolute from "./make-absolute.mjs";
|
|
7
|
-
import meta from "#meta.
|
|
7
|
+
import meta from "#meta.cjs";
|
|
8
8
|
|
|
9
9
|
async function getJSConfig(pBabelConfigFileName) {
|
|
10
10
|
let lReturnValue = {};
|
|
@@ -37,8 +37,9 @@ async function processExtends(pReturnValue, pAlreadyVisited, pBaseDirectory) {
|
|
|
37
37
|
* Reads the file with name `pConfigFileName` returns the parsed cruise
|
|
38
38
|
* options.
|
|
39
39
|
*
|
|
40
|
-
* You can safely ignore the optional parameters.
|
|
41
|
-
* `.dependency-cruiser.js` exists and contains a valid dependency-cruiser
|
|
40
|
+
* You can safely ignore the optional parameters. This should work (given
|
|
41
|
+
* `.dependency-cruiser.js` exists and contains a valid dependency-cruiser
|
|
42
|
+
* config)
|
|
42
43
|
*
|
|
43
44
|
* ```javascript
|
|
44
45
|
* const depcruiseConfig = extractDepcruiseConfig("./.dependency-cruiser.js")
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable no-inline-comments */
|
|
2
2
|
/* eslint-disable max-classes-per-file */
|
|
3
3
|
import tryImport from "semver-try-require";
|
|
4
|
-
import meta from "#meta.
|
|
4
|
+
import meta from "#meta.cjs";
|
|
5
5
|
|
|
6
6
|
/** @type {import('@swc/core/Visitor')} */
|
|
7
7
|
const { Visitor } = await tryImport(
|
|
@@ -2,7 +2,7 @@ import { readFileSync } from "node:fs";
|
|
|
2
2
|
import tryImport from "semver-try-require";
|
|
3
3
|
import memoize from "lodash/memoize.js";
|
|
4
4
|
import transpile from "../transpile/index.mjs";
|
|
5
|
-
import meta from "#meta.
|
|
5
|
+
import meta from "#meta.cjs";
|
|
6
6
|
import getExtension from "#utl/get-extension.mjs";
|
|
7
7
|
|
|
8
8
|
/** @type {import('typescript')} */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable max-lines */
|
|
2
2
|
import { isAbsolute, resolve as path_resolve } from "node:path";
|
|
3
3
|
import { join as posix_join } from "node:path/posix";
|
|
4
|
-
import
|
|
4
|
+
import picomatch from "picomatch";
|
|
5
5
|
import getExtension from "#utl/get-extension.mjs";
|
|
6
6
|
|
|
7
7
|
let gFollowableExtensionsCache = new Set();
|
|
@@ -158,7 +158,7 @@ function isWorkspaceAliased(pModuleName, pResolvedModuleName, pManifest) {
|
|
|
158
158
|
(pWorkspace) =>
|
|
159
159
|
pWorkspace.endsWith("/") ? `${pWorkspace}**` : `${pWorkspace}/**`,
|
|
160
160
|
);
|
|
161
|
-
if (isMatch(pResolvedModuleName, lModuleFriendlyWorkspaceGlobs)) {
|
|
161
|
+
if (picomatch.isMatch(pResolvedModuleName, lModuleFriendlyWorkspaceGlobs)) {
|
|
162
162
|
return true;
|
|
163
163
|
}
|
|
164
164
|
// it's possible to run node with --preserve-symlinks, in which case
|
|
@@ -176,7 +176,10 @@ function isWorkspaceAliased(pModuleName, pResolvedModuleName, pManifest) {
|
|
|
176
176
|
lModuleFriendlyWorkspaceGlobs.map(
|
|
177
177
|
(pWorkspace) => `(node_modules/)?${pWorkspace}`,
|
|
178
178
|
);
|
|
179
|
-
return isMatch(
|
|
179
|
+
return picomatch.isMatch(
|
|
180
|
+
pModuleName,
|
|
181
|
+
lModuleFriendlyWorkspaceGlobsWithNodeModules,
|
|
182
|
+
);
|
|
180
183
|
}
|
|
181
184
|
return false;
|
|
182
185
|
}
|
|
@@ -80,7 +80,7 @@ export function getWrapper(pExtension, pTranspilerOptions) {
|
|
|
80
80
|
*
|
|
81
81
|
* @see section "supportedTranspilers" in [package.json](../../../package.json)
|
|
82
82
|
* for supported versions of transpilers
|
|
83
|
-
* @see [meta.
|
|
83
|
+
* @see [meta.cjs](meta.cjs) for the extension -> transpiler mapping
|
|
84
84
|
*
|
|
85
85
|
* @param {{ extension:string; source:string; filename:string; }} pFileRecord Record with source code, an extension and a filename
|
|
86
86
|
* @param {any} pTranspilerOptions (optional) object with options influencing
|
|
@@ -91,7 +91,7 @@ export function getWrapper(pExtension, pTranspilerOptions) {
|
|
|
91
91
|
*/
|
|
92
92
|
export default function transpile(
|
|
93
93
|
{ extension, source, filename },
|
|
94
|
-
pTranspilerOptions
|
|
94
|
+
pTranspilerOptions,
|
|
95
95
|
) {
|
|
96
96
|
const lWrapper = getWrapper(extension, pTranspilerOptions);
|
|
97
97
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { EOL } = require("node:os");
|
|
2
2
|
const isEmpty = require("lodash/isEmpty");
|
|
3
3
|
const tryRequire = require("semver-try-require");
|
|
4
|
-
const meta = require("#meta.
|
|
4
|
+
const meta = require("#meta.cjs");
|
|
5
5
|
|
|
6
6
|
/*
|
|
7
7
|
* vue-template-compiler was replaced by @vue/compiler-sfc for Vue3.
|
package/src/{meta.js → meta.cjs}
RENAMED
|
@@ -5,7 +5,7 @@ const STYLESHEET_FILE = fileURLToPath(
|
|
|
5
5
|
new URL("svg-in-html-snippets/style.css", import.meta.url),
|
|
6
6
|
);
|
|
7
7
|
const SCRIPT_FILE = fileURLToPath(
|
|
8
|
-
new URL("svg-in-html-snippets/script.
|
|
8
|
+
new URL("svg-in-html-snippets/script.cjs", import.meta.url),
|
|
9
9
|
);
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
determineTo,
|
|
5
5
|
} from "./utl.mjs";
|
|
6
6
|
import template from "./error-html-template.mjs";
|
|
7
|
-
import meta from "#meta.
|
|
7
|
+
import meta from "#meta.cjs";
|
|
8
8
|
|
|
9
9
|
function getViolatedRuleRowClass(pViolatedRule) {
|
|
10
10
|
return pViolatedRule.unviolated ? ' class="unviolated"' : "";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import has from "lodash/has.js";
|
|
2
2
|
import { formatViolation, formatPercentage } from "../utl/index.mjs";
|
|
3
|
-
import meta from "#meta.
|
|
3
|
+
import meta from "#meta.cjs";
|
|
4
4
|
|
|
5
5
|
function getFormattedAllowedRule(pRuleSetUsed) {
|
|
6
6
|
const lAllowed = pRuleSetUsed?.allowed ?? [];
|
package/src/report/markdown.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
/* generated - don't edit */export default {"title":"dependency-cruiser output format","$schema":"http://json-schema.org/draft-07/schema#","$id":"https://dependency-cruiser.js.org/schema/cruise-result.schema.json","type":"object","required":["summary","modules"],"additionalProperties":false,"properties":{"modules":{"$ref":"#/definitions/ModulesType"},"folders":{"$ref":"#/definitions/FoldersType"},"summary":{"$ref":"#/definitions/SummaryType"},"revisionData":{"$ref":"#/definitions/RevisionDataType"}},"definitions":{"ModulesType":{"type":"array","items":{"$ref":"#/definitions/ModuleType"}},"ModuleType":{"type":"object","required":["source","dependencies","valid"],"additionalProperties":false,"properties":{"source":{"type":"string"},"valid":{"type":"boolean"},"dependencies":{"$ref":"#/definitions/DependenciesType"},"dependents":{"type":"array","items":{"type":"string"}},"followable":{"type":"boolean"},"matchesDoNotFollow":{"type":"boolean"},"matchesFocus":{"type":"boolean"},"matchesReaches":{"type":"boolean"},"matchesHighlight":{"type":"boolean"},"coreModule":{"type":"boolean"},"couldNotResolve":{"type":"boolean"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"license":{"type":"string"},"orphan":{"type":"boolean"},"reachable":{"type":"array","items":{"$ref":"#/definitions/ReachableType"}},"reaches":{"type":"array","items":{"$ref":"#/definitions/ReachesType"}},"rules":{"type":"array","items":{"$ref":"#/definitions/RuleSummaryType"}},"consolidated":{"type":"boolean"},"instability":{"type":"number"},"checksum":{"type":"string"}}},"ReachableType":{"type":"object","required":["value","asDefinedInRule","matchedFrom"],"additionalProperties":false,"properties":{"value":{"type":"boolean"},"asDefinedInRule":{"type":"string"},"matchedFrom":{"type":"string"}}},"ReachesType":{"type":"object","required":["modules","asDefinedInRule"],"additionalProperties":false,"properties":{"modules":{"type":"array","items":{"type":"object","required":["source","via"],"additionalProperties":false,"properties":{"source":{"type":"string"},"via":{"type":"array","items":{"$ref":"#/definitions/MiniDependency"}}}}},"asDefinedInRule":{"type":"string"}}},"DependenciesType":{"type":"array","items":{"$ref":"#/definitions/DependencyType"}},"DependencyType":{"type":"object","required":["circular","coreModule","couldNotResolve","dependencyTypes","exoticallyRequired","dynamic","followable","module","moduleSystem","resolved","valid"],"additionalProperties":false,"properties":{"module":{"type":"string"},"protocol":{"type":"string","enum":["data:","file:","node:"]},"mimeType":{"type":"string"},"resolved":{"type":"string"},"coreModule":{"type":"boolean"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"license":{"type":"string"},"followable":{"type":"boolean"},"dynamic":{"type":"boolean"},"exoticallyRequired":{"type":"boolean"},"exoticRequire":{"type":"string"},"matchesDoNotFollow":{"type":"boolean"},"couldNotResolve":{"type":"boolean"},"preCompilationOnly":{"type":"boolean"},"typeOnly":{"type":"boolean"},"circular":{"type":"boolean"},"cycle":{"type":"array","items":{"$ref":"#/definitions/MiniDependency"}},"moduleSystem":{"$ref":"#/definitions/ModuleSystemType"},"valid":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/RuleSummaryType"}},"instability":{"type":"number"}}},"DependencyTypeType":{"type":"string","enum":["aliased-subpath-import","aliased-tsconfig-base-url","aliased-tsconfig-paths","aliased-tsconfig","aliased-webpack","aliased-workspace","aliased","amd-define","amd-require","amd-exotic-require","core","deprecated","dynamic-import","exotic-require","export","import-equals","import","local","localmodule","npm-bundled","npm-dev","npm-no-pkg","npm-optional","npm-peer","npm-unknown","npm","pre-compilation-only","require","triple-slash-amd-dependency","triple-slash-directive","triple-slash-file-reference","triple-slash-type-reference","type-import","type-only","undetermined","unknown"]},"ModuleSystemType":{"type":"string","enum":["cjs","es6","amd","tsd"]},"RuleSummaryType":{"type":"object","required":["name","severity"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"}}},"SeverityType":{"type":"string","enum":["error","warn","info","ignore"]},"MiniDependency":{"type":"object","required":["name","dependencyTypes"],"additionalProperties":false,"properties":{"name":{"type":"string"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}}}},"FoldersType":{"type":"array","items":{"$ref":"#/definitions/FolderType"}},"FolderType":{"type":"object","required":["name","moduleCount"],"additionalProperties":false,"properties":{"name":{"type":"string"},"dependents":{"type":"array","items":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string"}}}},"dependencies":{"type":"array","items":{"type":"object","required":["name","valid","circular"],"additionalProperties":false,"properties":{"name":{"type":"string"},"instability":{"type":"number"},"valid":{"type":"boolean"},"circular":{"type":"boolean"},"cycle":{"type":"array","items":{"$ref":"#/definitions/MiniDependency"}},"rules":{"type":"array","items":{"$ref":"#/definitions/RuleSummaryType"}}}}},"moduleCount":{"type":"number"},"afferentCouplings":{"type":"number"},"efferentCouplings":{"type":"number"},"instability":{"type":"number"}}},"SummaryType":{"type":"object","required":["violations","error","warn","info","totalCruised","optionsUsed"],"additionalProperties":false,"properties":{"violations":{"$ref":"#/definitions/ViolationsType"},"error":{"type":"number"},"warn":{"type":"number"},"info":{"type":"number"},"ignore":{"type":"number"},"totalCruised":{"type":"number"},"totalDependenciesCruised":{"type":"number"},"ruleSetUsed":{"$ref":"#/definitions/RuleSetType"},"optionsUsed":{"$ref":"#/definitions/OptionsUsedType"}}},"ViolationsType":{"type":"array","items":{"$ref":"#/definitions/ViolationType"}},"ViolationType":{"type":"object","required":["from","to","rule"],"additionalProperties":false,"properties":{"from":{"type":"string"},"to":{"type":"string"},"type":{"$ref":"#/definitions/ViolationTypeType"},"rule":{"$ref":"#/definitions/RuleSummaryType"},"cycle":{"type":"array","items":{"$ref":"#/definitions/MiniDependency"}},"via":{"type":"array","items":{"$ref":"#/definitions/MiniDependency"}},"metrics":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"from":{"type":"object","required":["instability"],"additionalProperties":false,"properties":{"instability":{"type":"number"}}},"to":{"type":"object","required":["instability"],"additionalProperties":false,"properties":{"instability":{"type":"number"}}}}},"comment":{"type":"string"}}},"ViolationTypeType":{"type":"string","enum":["dependency","module","reachability","cycle","instability","folder"]},"RuleSetType":{"type":"object","additionalProperties":false,"properties":{"forbidden":{"type":"array","items":{"$ref":"#/definitions/ForbiddenRuleType"}},"allowed":{"type":"array","items":{"$ref":"#/definitions/AllowedRuleType"}},"allowedSeverity":{"$ref":"#/definitions/SeverityType"},"required":{"type":"array","items":{"$ref":"#/definitions/RequiredRuleType"}}}},"AllowedRuleType":{"oneOf":[{"$ref":"#/definitions/RegularAllowedRuleType"},{"$ref":"#/definitions/ReachabilityAllowedRuleType"}]},"RegularAllowedRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"comment":{"type":"string"},"scope":{"type":"string","enum":["module","folder"]},"from":{"$ref":"#/definitions/FromRestrictionType"},"to":{"$ref":"#/definitions/ToRestrictionType"}}},"ReachabilityAllowedRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"comment":{"type":"string"},"scope":{"type":"string","enum":["module","folder"]},"from":{"$ref":"#/definitions/ReachabilityFromRestrictionType"},"to":{"$ref":"#/definitions/ReachabilityToRestrictionType"}}},"ForbiddenRuleType":{"oneOf":[{"$ref":"#/definitions/RegularForbiddenRuleType"},{"$ref":"#/definitions/ReachabilityForbiddenRuleType"},{"$ref":"#/definitions/DependentsForbiddenRuleType"}]},"RegularForbiddenRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"scope":{"type":"string","enum":["module","folder"]},"comment":{"type":"string"},"from":{"$ref":"#/definitions/FromRestrictionType"},"to":{"$ref":"#/definitions/ToRestrictionType"}}},"DependentsForbiddenRuleType":{"type":"object","required":["module","from"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"scope":{"type":"string","enum":["module","folder"]},"comment":{"type":"string"},"module":{"$ref":"#/definitions/DependentsModuleRestrictionType"},"from":{"$ref":"#/definitions/DependentsFromRestrictionType"}}},"ReachabilityForbiddenRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"scope":{"type":"string","enum":["module","folder"]},"comment":{"type":"string"},"from":{"$ref":"#/definitions/ReachabilityFromRestrictionType"},"to":{"$ref":"#/definitions/ReachabilityToRestrictionType"}}},"RequiredRuleType":{"type":"object","required":["module","to"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"scope":{"type":"string","enum":["module","folder"]},"comment":{"type":"string"},"module":{"$ref":"#/definitions/RequiredModuleRestrictionType"},"to":{"$ref":"#/definitions/RequiredToRestrictionType"}}},"MiniDependencyRestrictionType":{"oneOf":[{"$ref":"#/definitions/REAsStringsType"},{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"dependencyTypesNot":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}}}}]},"FromRestrictionType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"orphan":{"type":"boolean"}}},"ReachabilityFromRestrictionType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"}}},"ToRestrictionType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"couldNotResolve":{"type":"boolean"},"circular":{"type":"boolean"},"dynamic":{"type":"boolean"},"exoticallyRequired":{"type":"boolean"},"exoticRequire":{"$ref":"#/definitions/REAsStringsType"},"exoticRequireNot":{"$ref":"#/definitions/REAsStringsType"},"preCompilationOnly":{"type":"boolean"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"dependencyTypesNot":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"moreThanOneDependencyType":{"type":"boolean"},"license":{"$ref":"#/definitions/REAsStringsType"},"licenseNot":{"$ref":"#/definitions/REAsStringsType"},"via":{"$ref":"#/definitions/MiniDependencyRestrictionType"},"viaOnly":{"$ref":"#/definitions/MiniDependencyRestrictionType"},"viaNot":{"deprecated":true,"$ref":"#/definitions/REAsStringsType"},"viaSomeNot":{"deprecated":true,"$ref":"#/definitions/REAsStringsType"},"moreUnstable":{"type":"boolean"}}},"DependentsModuleRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"numberOfDependentsLessThan":{"type":"integer","minimum":0,"maximum":100},"numberOfDependentsMoreThan":{"type":"integer","minimum":0,"maximum":100}}},"DependentsFromRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"}}},"ReachabilityToRestrictionType":{"required":["reachable"],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"reachable":{"type":"boolean"}}},"RequiredModuleRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"}}},"RequiredToRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"}}},"REAsStringsType":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"OptionsUsedType":{"type":"object","additionalProperties":false,"properties":{"doNotFollow":{"$ref":"#/definitions/CompoundDoNotFollowType"},"exclude":{"$ref":"#/definitions/CompoundExcludeType"},"includeOnly":{"oneOf":[{"$ref":"#/definitions/REAsStringsType"},{"$ref":"#/definitions/CompoundIncludeOnlyType"}]},"focus":{"$ref":"#/definitions/CompoundFocusType"},"reaches":{"$ref":"#/definitions/CompoundReachesType"},"highlight":{"$ref":"#/definitions/CompoundHighlightType"},"knownViolations":{"$ref":"#/definitions/ViolationsType"},"collapse":{"type":"string"},"maxDepth":{"type":"integer","minimum":0,"maximum":99},"moduleSystems":{"$ref":"#/definitions/ModuleSystemsType"},"prefix":{"type":"string"},"preserveSymlinks":{"type":"boolean"},"combinedDependencies":{"type":"boolean"},"tsConfig":{"type":"object","additionalProperties":false,"properties":{"fileName":{"type":"string"}}},"tsPreCompilationDeps":{"oneOf":[{"type":"boolean"},{"type":"string","enum":["specify"]}]},"extraExtensionsToScan":{"type":"array","items":{"type":"string"}},"externalModuleResolutionStrategy":{"type":"string","enum":["node_modules","yarn-pnp"]},"builtInModules":{"type":"object","additionalProperties":false,"properties":{"override":{"type":"array","items":{"type":"string"}},"add":{"type":"array","items":{"type":"string"}}}},"forceDeriveDependents":{"type":"boolean"},"webpackConfig":{"type":"object","additionalProperties":false,"properties":{"fileName":{"type":"string"},"env":{"oneOf":[{"type":"object"},{"type":"string"}]},"arguments":{"type":"object"}}},"enhancedResolveOptions":{"type":"object","additionalProperties":false,"properties":{"exportsFields":{"type":"array","items":{"type":"string"}},"conditionNames":{"type":"array","items":{"type":"string"}},"extensions":{"type":"array","items":{"type":"string"}},"mainFields":{"type":"array","items":{"type":"string"}},"mainFiles":{"type":"array"},"aliasFields":{"type":"array","items":{"type":"string"}},"cachedInputFileSystem":{"type":"object","additionalProperties":false,"properties":{"cacheDuration":{"type":"integer","minimum":0,"maximum":1800000}}}}},"babelConfig":{"type":"object","additionalProperties":false,"properties":{"fileName":{"type":"string"}}},"parser":{"type":"string","enum":["acorn","swc","tsc"]},"exoticRequireStrings":{"type":"array","items":{"type":"string"}},"reporterOptions":{"$ref":"#/definitions/ReporterOptionsType"},"progress":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["cli-feedback","performance-log","ndjson","none"]},"maximumLevel":{"type":"number","enum":[-1,40,50,60,70,80,99]}}},"metrics":{"type":"boolean"},"baseDir":{"type":"string"},"cache":{"oneOf":[{"type":"boolean","enum":[false]},{"$ref":"#/definitions/CacheOptionsType"}]},"args":{"type":"string"},"rulesFile":{"type":"string"},"outputTo":{"type":"string"},"outputType":{"$ref":"#/definitions/OutputType"}}},"ModuleSystemsType":{"type":"array","items":{"$ref":"#/definitions/ModuleSystemType"}},"OutputType":{"oneOf":[{"type":"string","enum":["json","html","dot","ddot","cdot","archi","fdot","flat","csv","err","err-long","err-html","teamcity","anon","text","metrics","markdown","mermaid","d2","null"]},{"type":"string","pattern":"^plugin:[^:]+$"}]},"CompoundExcludeType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"dynamic":{"type":"boolean"}}},"CompoundDoNotFollowType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}}}},"CompoundIncludeOnlyType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"}}},"CompoundFocusType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"depth":{"type":"number","minimum":1,"maximum":4}}},"CompoundReachesType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"}}},"CompoundHighlightType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"}}},"ReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"anon":{"$ref":"#/definitions/AnonReporterOptionsType"},"archi":{"$ref":"#/definitions/DotReporterOptionsType"},"dot":{"$ref":"#/definitions/DotReporterOptionsType"},"ddot":{"$ref":"#/definitions/DotReporterOptionsType"},"flat":{"$ref":"#/definitions/DotReporterOptionsType"},"markdown":{"$ref":"#/definitions/MarkdownReporterOptionsType"},"metrics":{"$ref":"#/definitions/MetricsReporterOptionsType"},"mermaid":{"$ref":"#/definitions/MermaidReporterOptionsType"},"text":{"$ref":"#/definitions/TextReporterOptionsType"}}},"AnonReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"wordlist":{"type":"array","items":{"type":"string"}}}},"MetricsReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"orderBy":{"type":"string","enum":["instability","moduleCount","afferentCouplings","efferentCouplings","name"]},"hideModules":{"type":"boolean"},"hideFolders":{"type":"boolean"}}},"MarkdownReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"showTitle":{"type":"boolean"},"title":{"type":"string"},"showSummary":{"type":"boolean"},"showSummaryHeader":{"type":"boolean"},"summaryHeader":{"type":"string"},"showStatsSummary":{"type":"boolean"},"showRulesSummary":{"type":"boolean"},"includeIgnoredInSummary":{"type":"boolean"},"showDetails":{"type":"boolean"},"includeIgnoredInDetails":{"type":"boolean"},"showDetailsHeader":{"type":"boolean"},"detailsHeader":{"type":"string"},"collapseDetails":{"type":"boolean"},"collapsedMessage":{"type":"string"},"noViolationsMessage":{"type":"string"},"showFooter":{"type":"boolean"}}},"MermaidReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"minify":{"type":"boolean"}}},"TextReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"highlightFocused":{"type":"boolean"}}},"DotReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"collapsePattern":{"$ref":"#/definitions/REAsStringsType"},"filters":{"$ref":"#/definitions/ReporterFiltersType"},"showMetrics":{"type":"boolean"},"theme":{"$ref":"#/definitions/DotThemeType"}}},"DotThemeType":{"type":"object","additionalProperties":false,"properties":{"replace":{"type":"boolean"},"graph":{"type":"object"},"node":{"type":"object"},"edge":{"type":"object"},"modules":{"$ref":"#/definitions/DotThemeArrayType"},"dependencies":{"$ref":"#/definitions/DotThemeArrayType"}}},"DotThemeArrayType":{"type":"array","items":{"$ref":"#/definitions/DotThemeEntryType"}},"DotThemeEntryType":{"type":"object","additionalProperties":false,"properties":{"criteria":{"type":"object"},"attributes":{"type":"object"}}},"ReporterFiltersType":{"type":"object","additionalProperties":false,"properties":{"exclude":{"$ref":"#/definitions/CompoundExcludeType"},"includeOnly":{"$ref":"#/definitions/CompoundIncludeOnlyType"},"focus":{"$ref":"#/definitions/CompoundFocusType"},"reaches":{"$ref":"#/definitions/CompoundReachesType"}}},"CacheOptionsType":{"type":"object","additionalProperties":false,"properties":{"folder":{"type":"string"},"strategy":{"$ref":"#/definitions/CacheStrategyType"},"compress":{"type":"boolean","default":false}}},"CacheStrategyType":{"type":"string","enum":["metadata","content"]},"RevisionDataType":{"type":"object","required":["SHA1","changes"],"properties":{"cacheFormatVersion":{"type":"number"},"SHA1":{"type":"string"},"changes":{"type":"array","items":{"type":"object","required":["name","changeType"],"properties":{"name":{"type":"string"},"changeType":{"type":"string","enum":["added","copied","deleted","modified","renamed","type changed","unmerged","pairing broken","unknown","unmodified","untracked","ignored"]},"oldName":{"type":"string"},"checksum":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"rulesFile":{"type":"string"}}}}}}}}
|
|
1
|
+
/* generated - don't edit */export default {"title":"dependency-cruiser output format","$schema":"http://json-schema.org/draft-07/schema#","$id":"https://dependency-cruiser.js.org/schema/cruise-result.schema.json","type":"object","required":["summary","modules"],"additionalProperties":false,"properties":{"modules":{"$ref":"#/definitions/ModulesType"},"folders":{"$ref":"#/definitions/FoldersType"},"summary":{"$ref":"#/definitions/SummaryType"},"revisionData":{"$ref":"#/definitions/RevisionDataType"}},"definitions":{"ModulesType":{"type":"array","items":{"$ref":"#/definitions/ModuleType"}},"ModuleType":{"type":"object","required":["source","dependencies","valid"],"additionalProperties":false,"properties":{"source":{"type":"string"},"valid":{"type":"boolean"},"dependencies":{"$ref":"#/definitions/DependenciesType"},"dependents":{"type":"array","items":{"type":"string"}},"followable":{"type":"boolean"},"matchesDoNotFollow":{"type":"boolean"},"matchesFocus":{"type":"boolean"},"matchesReaches":{"type":"boolean"},"matchesHighlight":{"type":"boolean"},"coreModule":{"type":"boolean"},"couldNotResolve":{"type":"boolean"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"license":{"type":"string"},"orphan":{"type":"boolean"},"reachable":{"type":"array","items":{"$ref":"#/definitions/ReachableType"}},"reaches":{"type":"array","items":{"$ref":"#/definitions/ReachesType"}},"rules":{"type":"array","items":{"$ref":"#/definitions/RuleSummaryType"}},"consolidated":{"type":"boolean"},"instability":{"type":"number"},"checksum":{"type":"string"}}},"ReachableType":{"type":"object","required":["value","asDefinedInRule","matchedFrom"],"additionalProperties":false,"properties":{"value":{"type":"boolean"},"asDefinedInRule":{"type":"string"},"matchedFrom":{"type":"string"}}},"ReachesType":{"type":"object","required":["modules","asDefinedInRule"],"additionalProperties":false,"properties":{"modules":{"type":"array","items":{"type":"object","required":["source","via"],"additionalProperties":false,"properties":{"source":{"type":"string"},"via":{"type":"array","items":{"$ref":"#/definitions/MiniDependency"}}}}},"asDefinedInRule":{"type":"string"}}},"DependenciesType":{"type":"array","items":{"$ref":"#/definitions/DependencyType"}},"DependencyType":{"type":"object","required":["circular","coreModule","couldNotResolve","dependencyTypes","exoticallyRequired","dynamic","followable","module","moduleSystem","resolved","valid"],"additionalProperties":false,"properties":{"module":{"type":"string"},"protocol":{"type":"string","enum":["data:","file:","node:"]},"mimeType":{"type":"string"},"resolved":{"type":"string"},"coreModule":{"type":"boolean"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"license":{"type":"string"},"followable":{"type":"boolean"},"dynamic":{"type":"boolean"},"exoticallyRequired":{"type":"boolean"},"exoticRequire":{"type":"string"},"matchesDoNotFollow":{"type":"boolean"},"couldNotResolve":{"type":"boolean"},"preCompilationOnly":{"type":"boolean"},"typeOnly":{"type":"boolean"},"circular":{"type":"boolean"},"cycle":{"type":"array","items":{"$ref":"#/definitions/MiniDependency"}},"moduleSystem":{"$ref":"#/definitions/ModuleSystemType"},"valid":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/RuleSummaryType"}},"instability":{"type":"number"}}},"DependencyTypeType":{"type":"string","enum":["aliased-subpath-import","aliased-tsconfig-base-url","aliased-tsconfig-paths","aliased-tsconfig","aliased-webpack","aliased-workspace","aliased","amd-define","amd-require","amd-exotic-require","core","deprecated","dynamic-import","exotic-require","export","import-equals","import","local","localmodule","npm-bundled","npm-dev","npm-no-pkg","npm-optional","npm-peer","npm-unknown","npm","pre-compilation-only","require","triple-slash-amd-dependency","triple-slash-directive","triple-slash-file-reference","triple-slash-type-reference","type-import","type-only","undetermined","unknown"]},"ModuleSystemType":{"type":"string","enum":["cjs","es6","amd","tsd"]},"RuleSummaryType":{"type":"object","required":["name","severity"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"}}},"SeverityType":{"type":"string","enum":["error","warn","info","ignore"]},"MiniDependency":{"type":"object","required":["name","dependencyTypes"],"additionalProperties":false,"properties":{"name":{"type":"string"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}}}},"FoldersType":{"type":"array","items":{"$ref":"#/definitions/FolderType"}},"FolderType":{"type":"object","required":["name","moduleCount"],"additionalProperties":false,"properties":{"name":{"type":"string"},"dependents":{"type":"array","items":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string"}}}},"dependencies":{"type":"array","items":{"type":"object","required":["name","valid","circular"],"additionalProperties":false,"properties":{"name":{"type":"string"},"instability":{"type":"number"},"valid":{"type":"boolean"},"circular":{"type":"boolean"},"cycle":{"type":"array","items":{"$ref":"#/definitions/MiniDependency"}},"rules":{"type":"array","items":{"$ref":"#/definitions/RuleSummaryType"}}}}},"moduleCount":{"type":"number"},"afferentCouplings":{"type":"number"},"efferentCouplings":{"type":"number"},"instability":{"type":"number"}}},"SummaryType":{"type":"object","required":["violations","error","warn","info","totalCruised","optionsUsed"],"additionalProperties":false,"properties":{"violations":{"$ref":"#/definitions/ViolationsType"},"error":{"type":"number"},"warn":{"type":"number"},"info":{"type":"number"},"ignore":{"type":"number"},"totalCruised":{"type":"number"},"totalDependenciesCruised":{"type":"number"},"ruleSetUsed":{"$ref":"#/definitions/RuleSetType"},"optionsUsed":{"$ref":"#/definitions/OptionsUsedType"}}},"ViolationsType":{"type":"array","items":{"$ref":"#/definitions/ViolationType"}},"ViolationType":{"type":"object","required":["from","to","rule"],"additionalProperties":false,"properties":{"from":{"type":"string"},"to":{"type":"string"},"type":{"$ref":"#/definitions/ViolationTypeType"},"rule":{"$ref":"#/definitions/RuleSummaryType"},"cycle":{"type":"array","items":{"$ref":"#/definitions/MiniDependency"}},"via":{"type":"array","items":{"$ref":"#/definitions/MiniDependency"}},"metrics":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"from":{"type":"object","required":["instability"],"additionalProperties":false,"properties":{"instability":{"type":"number"}}},"to":{"type":"object","required":["instability"],"additionalProperties":false,"properties":{"instability":{"type":"number"}}}}},"comment":{"type":"string"}}},"ViolationTypeType":{"type":"string","enum":["dependency","module","reachability","cycle","instability","folder"]},"RuleSetType":{"type":"object","additionalProperties":false,"properties":{"forbidden":{"type":"array","items":{"$ref":"#/definitions/ForbiddenRuleType"}},"allowed":{"type":"array","items":{"$ref":"#/definitions/AllowedRuleType"}},"allowedSeverity":{"$ref":"#/definitions/SeverityType"},"required":{"type":"array","items":{"$ref":"#/definitions/RequiredRuleType"}}}},"AllowedRuleType":{"oneOf":[{"$ref":"#/definitions/RegularAllowedRuleType"},{"$ref":"#/definitions/ReachabilityAllowedRuleType"}]},"RegularAllowedRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"comment":{"type":"string"},"scope":{"type":"string","enum":["module","folder"]},"from":{"$ref":"#/definitions/FromRestrictionType"},"to":{"$ref":"#/definitions/ToRestrictionType"}}},"ReachabilityAllowedRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"comment":{"type":"string"},"scope":{"type":"string","enum":["module","folder"]},"from":{"$ref":"#/definitions/ReachabilityFromRestrictionType"},"to":{"$ref":"#/definitions/ReachabilityToRestrictionType"}}},"ForbiddenRuleType":{"oneOf":[{"$ref":"#/definitions/RegularForbiddenRuleType"},{"$ref":"#/definitions/ReachabilityForbiddenRuleType"},{"$ref":"#/definitions/DependentsForbiddenRuleType"}]},"RegularForbiddenRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"scope":{"type":"string","enum":["module","folder"]},"comment":{"type":"string"},"from":{"$ref":"#/definitions/FromRestrictionType"},"to":{"$ref":"#/definitions/ToRestrictionType"}}},"DependentsForbiddenRuleType":{"type":"object","required":["module","from"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"scope":{"type":"string","enum":["module","folder"]},"comment":{"type":"string"},"module":{"$ref":"#/definitions/DependentsModuleRestrictionType"},"from":{"$ref":"#/definitions/DependentsFromRestrictionType"}}},"ReachabilityForbiddenRuleType":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"scope":{"type":"string","enum":["module","folder"]},"comment":{"type":"string"},"from":{"$ref":"#/definitions/ReachabilityFromRestrictionType"},"to":{"$ref":"#/definitions/ReachabilityToRestrictionType"}}},"RequiredRuleType":{"type":"object","required":["module","to"],"additionalProperties":false,"properties":{"name":{"type":"string"},"severity":{"$ref":"#/definitions/SeverityType"},"scope":{"type":"string","enum":["module","folder"]},"comment":{"type":"string"},"module":{"$ref":"#/definitions/RequiredModuleRestrictionType"},"to":{"$ref":"#/definitions/RequiredToRestrictionType"}}},"MiniDependencyRestrictionType":{"oneOf":[{"$ref":"#/definitions/REAsStringsType"},{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"dependencyTypesNot":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}}}}]},"FromRestrictionType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"orphan":{"type":"boolean"}}},"ReachabilityFromRestrictionType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"}}},"ToRestrictionType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"couldNotResolve":{"type":"boolean"},"circular":{"type":"boolean"},"dynamic":{"type":"boolean"},"exoticallyRequired":{"type":"boolean"},"exoticRequire":{"$ref":"#/definitions/REAsStringsType"},"exoticRequireNot":{"$ref":"#/definitions/REAsStringsType"},"preCompilationOnly":{"type":"boolean"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"dependencyTypesNot":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}},"moreThanOneDependencyType":{"type":"boolean"},"license":{"$ref":"#/definitions/REAsStringsType"},"licenseNot":{"$ref":"#/definitions/REAsStringsType"},"via":{"$ref":"#/definitions/MiniDependencyRestrictionType"},"viaOnly":{"$ref":"#/definitions/MiniDependencyRestrictionType"},"viaNot":{"deprecated":true,"$ref":"#/definitions/REAsStringsType"},"viaSomeNot":{"deprecated":true,"$ref":"#/definitions/REAsStringsType"},"moreUnstable":{"type":"boolean"}}},"DependentsModuleRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"numberOfDependentsLessThan":{"type":"integer","minimum":0,"maximum":100},"numberOfDependentsMoreThan":{"type":"integer","minimum":0,"maximum":100}}},"DependentsFromRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"}}},"ReachabilityToRestrictionType":{"required":["reachable"],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"},"reachable":{"type":"boolean"}}},"RequiredModuleRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"pathNot":{"$ref":"#/definitions/REAsStringsType"}}},"RequiredToRestrictionType":{"required":[],"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"}}},"REAsStringsType":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"OptionsUsedType":{"type":"object","additionalProperties":false,"properties":{"doNotFollow":{"$ref":"#/definitions/CompoundDoNotFollowType"},"exclude":{"$ref":"#/definitions/CompoundExcludeType"},"includeOnly":{"oneOf":[{"$ref":"#/definitions/REAsStringsType"},{"$ref":"#/definitions/CompoundIncludeOnlyType"}]},"focus":{"$ref":"#/definitions/CompoundFocusType"},"reaches":{"$ref":"#/definitions/CompoundReachesType"},"highlight":{"$ref":"#/definitions/CompoundHighlightType"},"knownViolations":{"$ref":"#/definitions/ViolationsType"},"collapse":{"type":"string"},"maxDepth":{"type":"integer","minimum":0,"maximum":99},"moduleSystems":{"$ref":"#/definitions/ModuleSystemsType"},"prefix":{"type":"string"},"preserveSymlinks":{"type":"boolean"},"combinedDependencies":{"type":"boolean"},"tsConfig":{"type":"object","additionalProperties":false,"properties":{"fileName":{"type":"string"}}},"tsPreCompilationDeps":{"oneOf":[{"type":"boolean"},{"type":"string","enum":["specify"]}]},"extraExtensionsToScan":{"type":"array","items":{"type":"string"}},"externalModuleResolutionStrategy":{"type":"string","enum":["node_modules","yarn-pnp"]},"builtInModules":{"type":"object","additionalProperties":false,"properties":{"override":{"type":"array","items":{"type":"string"}},"add":{"type":"array","items":{"type":"string"}}}},"forceDeriveDependents":{"type":"boolean"},"webpackConfig":{"type":"object","additionalProperties":false,"properties":{"fileName":{"type":"string"},"env":{"oneOf":[{"type":"object"},{"type":"string"}]},"arguments":{"type":"object"}}},"enhancedResolveOptions":{"type":"object","additionalProperties":false,"properties":{"exportsFields":{"type":"array","items":{"type":"string"}},"conditionNames":{"type":"array","items":{"type":"string"}},"extensions":{"type":"array","items":{"type":"string"}},"mainFields":{"type":"array","items":{"type":"string"}},"mainFiles":{"type":"array"},"aliasFields":{"type":"array","items":{"type":"string"}},"cachedInputFileSystem":{"type":"object","additionalProperties":false,"properties":{"cacheDuration":{"type":"integer","minimum":0,"maximum":1800000}}}}},"babelConfig":{"type":"object","additionalProperties":false,"properties":{"fileName":{"type":"string"}}},"parser":{"type":"string","enum":["acorn","swc","tsc"]},"exoticRequireStrings":{"type":"array","items":{"type":"string"}},"reporterOptions":{"$ref":"#/definitions/ReporterOptionsType"},"progress":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["cli-feedback","performance-log","ndjson","none"]},"maximumLevel":{"type":"number","enum":[-1,40,50,60,70,80,99]}}},"metrics":{"type":"boolean"},"baseDir":{"type":"string"},"cache":{"oneOf":[{"type":"boolean","enum":[false]},{"$ref":"#/definitions/CacheOptionsType"}]},"args":{"type":"string"},"rulesFile":{"type":"string"},"outputTo":{"type":"string"},"outputType":{"$ref":"#/definitions/OutputType"}}},"ModuleSystemsType":{"type":"array","items":{"$ref":"#/definitions/ModuleSystemType"}},"OutputType":{"oneOf":[{"type":"string","enum":["json","html","dot","ddot","cdot","archi","fdot","flat","csv","err","err-long","err-html","teamcity","anon","text","metrics","markdown","mermaid","d2","null"]},{"type":"string","pattern":"^plugin:[^:]+$"}]},"CompoundExcludeType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"dynamic":{"type":"boolean"}}},"CompoundDoNotFollowType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"dependencyTypes":{"type":"array","items":{"$ref":"#/definitions/DependencyTypeType"}}}},"CompoundIncludeOnlyType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"}}},"CompoundFocusType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"},"depth":{"type":"number","minimum":1,"maximum":4}}},"CompoundReachesType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"}}},"CompoundHighlightType":{"type":"object","additionalProperties":false,"properties":{"path":{"$ref":"#/definitions/REAsStringsType"}}},"ReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"anon":{"$ref":"#/definitions/AnonReporterOptionsType"},"archi":{"$ref":"#/definitions/DotReporterOptionsType"},"dot":{"$ref":"#/definitions/DotReporterOptionsType"},"ddot":{"$ref":"#/definitions/DotReporterOptionsType"},"flat":{"$ref":"#/definitions/DotReporterOptionsType"},"markdown":{"$ref":"#/definitions/MarkdownReporterOptionsType"},"metrics":{"$ref":"#/definitions/MetricsReporterOptionsType"},"mermaid":{"$ref":"#/definitions/MermaidReporterOptionsType"},"text":{"$ref":"#/definitions/TextReporterOptionsType"}}},"AnonReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"wordlist":{"type":"array","items":{"type":"string"}}}},"MetricsReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"orderBy":{"type":"string","enum":["instability","moduleCount","afferentCouplings","efferentCouplings","name"]},"hideModules":{"type":"boolean"},"hideFolders":{"type":"boolean"}}},"MarkdownReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"showTitle":{"type":"boolean"},"title":{"type":"string"},"showSummary":{"type":"boolean"},"showSummaryHeader":{"type":"boolean"},"summaryHeader":{"type":"string"},"showStatsSummary":{"type":"boolean"},"showRulesSummary":{"type":"boolean"},"includeIgnoredInSummary":{"type":"boolean"},"showDetails":{"type":"boolean"},"includeIgnoredInDetails":{"type":"boolean"},"showDetailsHeader":{"type":"boolean"},"detailsHeader":{"type":"string"},"collapseDetails":{"type":"boolean"},"collapsedMessage":{"type":"string"},"noViolationsMessage":{"type":"string"},"showFooter":{"type":"boolean"}}},"MermaidReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"minify":{"type":"boolean"}}},"TextReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"highlightFocused":{"type":"boolean"}}},"DotReporterOptionsType":{"type":"object","additionalProperties":false,"properties":{"collapsePattern":{"$ref":"#/definitions/REAsStringsType"},"filters":{"$ref":"#/definitions/ReporterFiltersType"},"showMetrics":{"type":"boolean"},"theme":{"$ref":"#/definitions/DotThemeType"}}},"DotThemeType":{"type":"object","additionalProperties":false,"properties":{"replace":{"type":"boolean"},"graph":{"type":"object"},"node":{"type":"object"},"edge":{"type":"object"},"modules":{"$ref":"#/definitions/DotThemeArrayType"},"dependencies":{"$ref":"#/definitions/DotThemeArrayType"}}},"DotThemeArrayType":{"type":"array","items":{"$ref":"#/definitions/DotThemeEntryType"}},"DotThemeEntryType":{"type":"object","additionalProperties":false,"properties":{"criteria":{"type":"object"},"attributes":{"type":"object"}}},"ReporterFiltersType":{"type":"object","additionalProperties":false,"properties":{"exclude":{"$ref":"#/definitions/CompoundExcludeType"},"includeOnly":{"$ref":"#/definitions/CompoundIncludeOnlyType"},"focus":{"$ref":"#/definitions/CompoundFocusType"},"reaches":{"$ref":"#/definitions/CompoundReachesType"}}},"CacheOptionsType":{"type":"object","additionalProperties":false,"properties":{"folder":{"type":"string"},"strategy":{"$ref":"#/definitions/CacheStrategyType"},"compress":{"type":"boolean","default":false}}},"CacheStrategyType":{"type":"string","enum":["metadata","content"]},"RevisionDataType":{"type":"object","required":["SHA1","changes"],"properties":{"cacheFormatVersion":{"type":"number"},"SHA1":{"type":"string"},"changes":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"type":"string","enum":["added","copied","deleted","modified","renamed","type changed","unmerged","pairing broken","unknown","unmodified","untracked","ignored"]},"oldName":{"type":"string"},"checksum":{"type":"string"},"args":{"type":"array","items":{"type":"string"}},"rulesFile":{"type":"string"}}}}}}}}
|
|
@@ -4,8 +4,9 @@ import type { ICruiseOptions } from "../options.mjs";
|
|
|
4
4
|
* Reads the file with name `pConfigFileName` returns the parsed cruise
|
|
5
5
|
* options.
|
|
6
6
|
*
|
|
7
|
-
* You can safely ignore the optional parameters.
|
|
8
|
-
* `.dependency-cruiser.js` exists and contains a valid dependency-cruiser
|
|
7
|
+
* You can safely ignore the optional parameters. This should work (given
|
|
8
|
+
* `.dependency-cruiser.js` exists and contains a valid dependency-cruiser
|
|
9
|
+
* config)
|
|
9
10
|
*
|
|
10
11
|
* ```javascript
|
|
11
12
|
* const depcruiseConfig = extractDepcruiseConfig("./.dependency-cruiser.js")
|
package/types/options.d.mts
CHANGED
|
@@ -61,7 +61,7 @@ export interface ICruiseOptions {
|
|
|
61
61
|
*
|
|
62
62
|
* This ain't in none of the json schemas, but is used internally _instead_
|
|
63
63
|
* of the rule set defined on global configuration level. Judo
|
|
64
|
-
* (a.o. flattening out extended rule sets) done in ../src/cli/normalize-options.
|
|
64
|
+
* (a.o. flattening out extended rule sets) done in ../src/cli/normalize-cli-options.mjs
|
|
65
65
|
*/
|
|
66
66
|
ruleSet?: IFlattenedRuleSet;
|
|
67
67
|
/**
|
|
File without changes
|
|
File without changes
|
/package/configs/rules/{no-duplicate-dependency-types.js → no-duplicate-dependency-types.cjs}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|