dependency-cruiser 17.3.2 → 17.3.3-beta-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/bin/depcruise-baseline.mjs +43 -43
  2. package/bin/depcruise-fmt.mjs +89 -89
  3. package/bin/dependency-cruise.mjs +171 -171
  4. package/configs/plugins/3d-reporter-plugin.mjs +36 -36
  5. package/configs/plugins/stats-reporter-plugin.mjs +51 -51
  6. package/configs/recommended-strict.cjs +5 -5
  7. package/configs/recommended-warn-only.cjs +5 -5
  8. package/configs/recommended.cjs +22 -22
  9. package/configs/rules/no-circular.cjs +10 -10
  10. package/configs/rules/no-deprecated-core.cjs +10 -10
  11. package/configs/rules/no-duplicate-dependency-types.cjs +17 -17
  12. package/configs/rules/no-non-package-json.cjs +11 -11
  13. package/configs/rules/no-orphans.cjs +18 -18
  14. package/configs/rules/not-to-deprecated.cjs +10 -10
  15. package/configs/rules/not-to-unresolvable.cjs +10 -10
  16. package/package.json +170 -170
  17. package/src/cache/cache.mjs +139 -139
  18. package/src/cache/content-strategy.mjs +88 -88
  19. package/src/cache/find-content-changes.mjs +58 -58
  20. package/src/cache/helpers.mjs +52 -52
  21. package/src/cache/metadata-strategy.mjs +83 -83
  22. package/src/cache/options-compatible.mjs +56 -109
  23. package/src/cli/assert-node-environment-suitable.mjs +7 -7
  24. package/src/cli/defaults.mjs +5 -5
  25. package/src/cli/format-meta-info.mjs +22 -22
  26. package/src/cli/format.mjs +28 -28
  27. package/src/cli/index.mjs +145 -145
  28. package/src/cli/init-config/build-config.mjs +94 -94
  29. package/src/cli/init-config/environment-helpers.mjs +77 -77
  30. package/src/cli/init-config/find-extensions.mjs +27 -27
  31. package/src/cli/init-config/get-user-input.mjs +151 -151
  32. package/src/cli/init-config/index.mjs +88 -88
  33. package/src/cli/init-config/normalize-init-options.mjs +47 -47
  34. package/src/cli/init-config/utl.mjs +4 -4
  35. package/src/cli/init-config/validators.mjs +10 -10
  36. package/src/cli/init-config/write-config.mjs +21 -21
  37. package/src/cli/init-config/write-run-scripts-to-manifest.mjs +103 -107
  38. package/src/cli/listeners/cli-feedback.mjs +49 -49
  39. package/src/cli/listeners/ndjson.mjs +66 -66
  40. package/src/cli/listeners/performance-log/format-helpers.mjs +63 -63
  41. package/src/cli/listeners/performance-log/handlers.mjs +56 -56
  42. package/src/cli/listeners/performance-log/index.mjs +37 -37
  43. package/src/cli/normalize-cli-options.mjs +182 -182
  44. package/src/cli/tools/wrap-stream-in-html.mjs +37 -37
  45. package/src/cli/utl/assert-file-existence.mjs +7 -7
  46. package/src/cli/utl/io.mjs +28 -31
  47. package/src/config-utl/extract-babel-config.mjs +69 -69
  48. package/src/config-utl/extract-depcruise-config/index.mjs +54 -54
  49. package/src/config-utl/extract-depcruise-config/merge-configs.mjs +63 -63
  50. package/src/config-utl/extract-depcruise-config/read-config.mjs +9 -9
  51. package/src/config-utl/extract-depcruise-options.mjs +9 -9
  52. package/src/config-utl/extract-known-violations.mjs +49 -49
  53. package/src/config-utl/extract-ts-config.mjs +46 -48
  54. package/src/config-utl/extract-webpack-resolve-config.mjs +88 -88
  55. package/src/config-utl/make-absolute.mjs +5 -5
  56. package/src/enrich/add-validations.mjs +13 -13
  57. package/src/enrich/derive/circular.mjs +49 -49
  58. package/src/enrich/derive/dependents.mjs +27 -27
  59. package/src/enrich/derive/folders/aggregate-to-folders.mjs +104 -104
  60. package/src/enrich/derive/folders/index.mjs +19 -19
  61. package/src/enrich/derive/folders/utl.mjs +18 -18
  62. package/src/enrich/derive/metrics/get-module-metrics.mjs +27 -27
  63. package/src/enrich/derive/metrics/index.mjs +8 -8
  64. package/src/enrich/derive/module-utl.mjs +18 -18
  65. package/src/enrich/derive/orphan/index.mjs +18 -18
  66. package/src/enrich/derive/orphan/is-orphan.mjs +9 -9
  67. package/src/enrich/derive/reachable.mjs +165 -168
  68. package/src/enrich/enrich-modules.mjs +25 -25
  69. package/src/enrich/index.mjs +15 -15
  70. package/src/enrich/soften-known-violations.mjs +90 -90
  71. package/src/enrich/summarize/add-rule-set-used.mjs +13 -13
  72. package/src/enrich/summarize/get-stats.mjs +17 -17
  73. package/src/enrich/summarize/index.mjs +18 -18
  74. package/src/enrich/summarize/is-same-violation.mjs +30 -30
  75. package/src/enrich/summarize/summarize-folders.mjs +35 -35
  76. package/src/enrich/summarize/summarize-modules.mjs +97 -97
  77. package/src/enrich/summarize/summarize-options.mjs +71 -71
  78. package/src/extract/acorn/estree-helpers.mjs +66 -66
  79. package/src/extract/acorn/extract-amd-deps.mjs +63 -64
  80. package/src/extract/acorn/extract-cjs-deps.mjs +83 -83
  81. package/src/extract/acorn/extract-es6-deps.mjs +54 -54
  82. package/src/extract/acorn/extract-stats.mjs +4 -4
  83. package/src/extract/acorn/extract.mjs +28 -28
  84. package/src/extract/acorn/parse.mjs +37 -37
  85. package/src/extract/clear-caches.mjs +7 -7
  86. package/src/extract/extract-dependencies.mjs +109 -109
  87. package/src/extract/extract-stats.mjs +21 -21
  88. package/src/extract/gather-initial-sources.mjs +64 -64
  89. package/src/extract/helpers.mjs +73 -71
  90. package/src/extract/index.mjs +120 -120
  91. package/src/extract/resolve/determine-dependency-types.mjs +166 -169
  92. package/src/extract/resolve/external-module-helpers.mjs +76 -76
  93. package/src/extract/resolve/get-manifest.mjs +79 -79
  94. package/src/extract/resolve/index.mjs +175 -164
  95. package/src/extract/resolve/is-built-in.mjs +22 -24
  96. package/src/extract/resolve/merge-manifests.mjs +43 -43
  97. package/src/extract/resolve/module-classifiers.mjs +229 -229
  98. package/src/extract/resolve/resolve-amd.mjs +44 -44
  99. package/src/extract/resolve/resolve-cjs.mjs +40 -40
  100. package/src/extract/resolve/resolve-helpers.mjs +20 -20
  101. package/src/extract/resolve/resolve.mjs +26 -26
  102. package/src/extract/swc/dependency-visitor.mjs +211 -211
  103. package/src/extract/swc/extract-swc-deps.mjs +4 -4
  104. package/src/extract/swc/extract.mjs +7 -7
  105. package/src/extract/swc/parse.mjs +12 -12
  106. package/src/extract/transpile/babel-wrap.mjs +9 -9
  107. package/src/extract/transpile/coffeescript-wrap.mjs +21 -21
  108. package/src/extract/transpile/index.mjs +47 -47
  109. package/src/extract/transpile/javascript-wrap.mjs +6 -6
  110. package/src/extract/transpile/livescript-wrap.mjs +5 -5
  111. package/src/extract/transpile/meta.mjs +80 -80
  112. package/src/extract/transpile/svelte-preprocess.mjs +73 -73
  113. package/src/extract/transpile/svelte-wrap.mjs +19 -19
  114. package/src/extract/transpile/try-import-available.mjs +26 -27
  115. package/src/extract/transpile/typescript-wrap.mjs +39 -39
  116. package/src/extract/transpile/vue-template-wrap.cjs +43 -43
  117. package/src/extract/tsc/extract-stats.mjs +4 -4
  118. package/src/extract/tsc/extract-typescript-deps.mjs +429 -398
  119. package/src/extract/tsc/extract.mjs +22 -22
  120. package/src/extract/tsc/parse.mjs +21 -21
  121. package/src/graph-utl/add-focus.mjs +35 -35
  122. package/src/graph-utl/compare.mjs +24 -24
  123. package/src/graph-utl/consolidate-module-dependencies.mjs +35 -35
  124. package/src/graph-utl/consolidate-modules.mjs +33 -33
  125. package/src/graph-utl/consolidate-to-folder.mjs +13 -13
  126. package/src/graph-utl/consolidate-to-pattern.mjs +34 -34
  127. package/src/graph-utl/filter-bank.mjs +74 -69
  128. package/src/graph-utl/indexed-module-graph.mjs +227 -225
  129. package/src/graph-utl/match-facade.mjs +3 -3
  130. package/src/graph-utl/rule-set.mjs +20 -20
  131. package/src/graph-utl/strip-self-transitions.mjs +6 -6
  132. package/src/main/cruise.mjs +81 -81
  133. package/src/main/files-and-dirs/normalize.mjs +7 -7
  134. package/src/main/format.mjs +11 -14
  135. package/src/main/helpers.mjs +25 -25
  136. package/src/main/index.mjs +8 -8
  137. package/src/main/options/assert-validity.mjs +100 -100
  138. package/src/main/options/defaults.mjs +11 -11
  139. package/src/main/options/normalize.mjs +158 -160
  140. package/src/main/report-wrap.mjs +37 -37
  141. package/src/main/resolve-options/normalize.mjs +127 -128
  142. package/src/main/rule-set/assert-validity.mjs +67 -73
  143. package/src/main/rule-set/normalize.mjs +81 -79
  144. package/src/meta.cjs +15 -16
  145. package/src/report/anon/anonymize-path-element.mjs +20 -34
  146. package/src/report/anon/anonymize-path.mjs +11 -11
  147. package/src/report/anon/index.mjs +119 -119
  148. package/src/report/anon/random-string.mjs +23 -23
  149. package/src/report/azure-devops.mjs +75 -99
  150. package/src/report/baseline.mjs +9 -9
  151. package/src/report/csv.mjs +13 -13
  152. package/src/report/d2.mjs +105 -105
  153. package/src/report/dot/default-theme.mjs +152 -152
  154. package/src/report/dot/index.mjs +146 -146
  155. package/src/report/dot/module-utl.mjs +72 -72
  156. package/src/report/dot/prepare-custom-level.mjs +20 -20
  157. package/src/report/dot/prepare-flat-level.mjs +11 -11
  158. package/src/report/dot/prepare-folder-level.mjs +12 -13
  159. package/src/report/dot/theming.mjs +73 -73
  160. package/src/report/dot-webpage/dot-module.mjs +36 -36
  161. package/src/report/dot-webpage/svg-in-html-snippets/script.cjs +208 -210
  162. package/src/report/dot-webpage/svg-in-html-snippets/style.css +51 -51
  163. package/src/report/dot-webpage/wrap-in-html.mjs +7 -7
  164. package/src/report/error-html/index.mjs +49 -49
  165. package/src/report/error-html/utl.mjs +99 -99
  166. package/src/report/error-long.mjs +1 -1
  167. package/src/report/error.mjs +93 -93
  168. package/src/report/html/index.mjs +48 -48
  169. package/src/report/identity.mjs +4 -4
  170. package/src/report/index.mjs +33 -33
  171. package/src/report/json.mjs +4 -4
  172. package/src/report/markdown.mjs +120 -120
  173. package/src/report/mermaid.mjs +111 -111
  174. package/src/report/metrics.mjs +185 -185
  175. package/src/report/null.mjs +4 -4
  176. package/src/report/plugins.mjs +41 -41
  177. package/src/report/teamcity.mjs +150 -150
  178. package/src/report/text.mjs +42 -42
  179. package/src/report/utl/dependency-to-incidence-transformer.mjs +32 -32
  180. package/src/report/utl/index.mjs +53 -53
  181. package/src/schema/configuration.validate.mjs +1 -0
  182. package/src/schema/cruise-result.validate.mjs +1 -0
  183. package/src/schema/utl.mjs +6 -0
  184. package/src/utl/array-util.mjs +25 -25
  185. package/src/utl/bus.mjs +12 -12
  186. package/src/utl/extract-root-module-name.cjs +8 -8
  187. package/src/utl/find-all-files.mjs +54 -54
  188. package/src/utl/get-extension.mjs +2 -2
  189. package/src/utl/object-util.mjs +21 -22
  190. package/src/utl/path-to-posix.mjs +5 -5
  191. package/src/utl/regex-util.mjs +20 -20
  192. package/src/utl/try-import.mjs +42 -41
  193. package/src/utl/try-require.cjs +23 -23
  194. package/src/utl/wrap-and-indent.mjs +33 -33
  195. package/src/validate/index.mjs +65 -65
  196. package/src/validate/match-dependency-rule.mjs +47 -47
  197. package/src/validate/match-folder-dependency-rule.mjs +27 -27
  198. package/src/validate/match-module-rule-helpers.mjs +76 -76
  199. package/src/validate/match-module-rule.mjs +12 -12
  200. package/src/validate/matchers.mjs +162 -162
  201. package/src/validate/rule-classifiers.mjs +9 -9
  202. package/src/validate/violates-required-rule.mjs +23 -23
  203. package/types/cache-options.d.mts +27 -27
  204. package/types/config-utl/extract-babel-config.d.mts +1 -1
  205. package/types/config-utl/extract-depcruise-config.d.mts +3 -3
  206. package/types/config-utl/extract-depcruise-options.d.mts +1 -1
  207. package/types/config-utl/extract-ts-config.d.mts +1 -1
  208. package/types/config-utl/extract-webpack-resolve-config.d.mts +3 -3
  209. package/types/configuration.d.mts +10 -10
  210. package/types/cruise-result.d.mts +414 -414
  211. package/types/dependency-cruiser.d.mts +52 -52
  212. package/types/filter-types.d.mts +45 -45
  213. package/types/options.d.mts +430 -430
  214. package/types/plugins/3d-reporter-plugin.d.mts +9 -9
  215. package/types/plugins/mermaid-reporter-plugin.d.mts +10 -10
  216. package/types/plugins/stats-reporter-plugin.d.mts +9 -9
  217. package/types/reporter-options.d.mts +196 -196
  218. package/types/resolve-options.d.mts +23 -23
  219. package/types/restrictions.d.mts +174 -174
  220. package/types/rule-set.d.mts +132 -132
  221. package/types/rule-summary.d.mts +14 -14
  222. package/types/shared-types.d.mts +89 -89
  223. package/types/strict-filter-types.d.mts +52 -52
  224. package/types/strict-options.d.mts +34 -34
  225. package/types/strict-restrictions.d.mts +25 -25
  226. package/types/strict-rule-set.d.mts +36 -36
  227. package/types/violations.d.mts +40 -40
  228. package/src/schema/README.md +0 -5
  229. package/src/schema/baseline-violations.schema.mjs +0 -1
  230. package/src/schema/configuration.schema.mjs +0 -1
  231. package/src/schema/cruise-result.schema.mjs +0 -1
  232. package/types/README.md +0 -1
@@ -2,49 +2,49 @@ import tryImport from "#utl/try-import.mjs";
2
2
  import meta from "#meta.cjs";
3
3
 
4
4
  const typescript = await tryImport(
5
- "typescript",
6
- meta.supportedTranspilers.typescript,
5
+ "typescript",
6
+ meta.supportedTranspilers.typescript,
7
7
  );
8
8
 
9
9
  function getCompilerOptions(pFlavor, pTSConfig) {
10
- let lCompilerOptions = {};
11
-
12
- if (pFlavor === "tsx") {
13
- lCompilerOptions.jsx = "react";
14
- }
15
-
16
- if (pFlavor === "esm") {
17
- // see https://www.typescriptlang.org/docs/handbook/esm-node.html
18
- lCompilerOptions.module = "nodenext";
19
- // when we're doing something with esm (so cts, mts extensions) we can
20
- // assume TypeScript >=4.7 - which supports target es2022 - which should
21
- // be easier (and hence we assume faster) to transpile
22
- lCompilerOptions.target = "es2022";
23
- }
24
-
25
- return {
26
- // target: "es2022" should also be OK - but we don't know which version of
27
- // the TypeScript compiler we're using, so for we keep this for backwards
28
- // compatibility.
29
- target: "es2015",
30
- ...lCompilerOptions,
31
- ...(pTSConfig?.options ?? {}),
32
- };
10
+ let lCompilerOptions = {};
11
+
12
+ if (pFlavor === "tsx") {
13
+ lCompilerOptions.jsx = "react";
14
+ }
15
+
16
+ if (pFlavor === "esm") {
17
+ // see https://www.typescriptlang.org/docs/handbook/esm-node.html
18
+ lCompilerOptions.module = "nodenext";
19
+ // when we're doing something with esm (so cts, mts extensions) we can
20
+ // assume TypeScript >=4.7 - which supports target es2022 - which should
21
+ // be easier (and hence we assume faster) to transpile
22
+ lCompilerOptions.target = "es2022";
23
+ }
24
+
25
+ return {
26
+ // target: "es2022" should also be OK - but we don't know which version of
27
+ // the TypeScript compiler we're using, so for we keep this for backwards
28
+ // compatibility.
29
+ target: "es2015",
30
+ ...lCompilerOptions,
31
+ ...(pTSConfig?.options ?? {}),
32
+ };
33
33
  }
34
34
 
35
35
  export default function typescriptWrap(pFlavor) {
36
- return {
37
- isAvailable: () => typescript !== false,
38
-
39
- version: () => `typescript@${typescript.version}`,
40
-
41
- transpile: (pSource, _pFileName, pTranspileOptions = {}) =>
42
- typescript.transpileModule(pSource, {
43
- ...(pTranspileOptions.tsConfig || {}),
44
- compilerOptions: getCompilerOptions(
45
- pFlavor,
46
- pTranspileOptions.tsConfig || {},
47
- ),
48
- }).outputText,
49
- };
36
+ return {
37
+ isAvailable: () => typescript !== false,
38
+
39
+ version: () => `typescript@${typescript.version}`,
40
+
41
+ transpile: (pSource, _pFileName, pTranspileOptions = {}) =>
42
+ typescript.transpileModule(pSource, {
43
+ ...(pTranspileOptions.tsConfig || {}),
44
+ compilerOptions: getCompilerOptions(
45
+ pFlavor,
46
+ pTranspileOptions.tsConfig || {},
47
+ ),
48
+ }).outputText,
49
+ };
50
50
  }
@@ -10,71 +10,71 @@ const meta = require("#meta.cjs");
10
10
  * version of vue-template-compiler) if the first one fails
11
11
  */
12
12
  function getVueTemplateCompiler() {
13
- let lIsVue3 = false;
13
+ let lIsVue3 = false;
14
14
 
15
- let lCompiler = tryRequire(
16
- "vue-template-compiler",
17
- meta.supportedTranspilers["vue-template-compiler"],
18
- );
15
+ let lCompiler = tryRequire(
16
+ "vue-template-compiler",
17
+ meta.supportedTranspilers["vue-template-compiler"],
18
+ );
19
19
 
20
- if (lCompiler === false) {
21
- lCompiler = tryRequire(
22
- "@vue/compiler-sfc",
23
- meta.supportedTranspilers["@vue/compiler-sfc"],
24
- );
25
- lIsVue3 = true;
26
- }
20
+ if (lCompiler === false) {
21
+ lCompiler = tryRequire(
22
+ "@vue/compiler-sfc",
23
+ meta.supportedTranspilers["@vue/compiler-sfc"],
24
+ );
25
+ lIsVue3 = true;
26
+ }
27
27
 
28
- return { lCompiler, lIsVue3 };
28
+ return { lCompiler, lIsVue3 };
29
29
  }
30
30
 
31
31
  function isEmpty(pObject) {
32
- return (
33
- Object.entries(pObject).length === 0 && !pObject?.length && !pObject?.size
34
- );
32
+ return (
33
+ Object.entries(pObject).length === 0 && !pObject?.length && !pObject?.size
34
+ );
35
35
  }
36
36
 
37
37
  const { lCompiler: vueTemplateCompiler, lIsVue3: isVue3 } =
38
- getVueTemplateCompiler();
38
+ getVueTemplateCompiler();
39
39
 
40
40
  // eslint-disable-next-line complexity
41
41
  function vue3Transpile(pSource) {
42
- const lParsedComponent = vueTemplateCompiler.parse(pSource);
43
- const lErrors = lParsedComponent?.errors;
42
+ const lParsedComponent = vueTemplateCompiler.parse(pSource);
43
+ const lErrors = lParsedComponent?.errors;
44
44
 
45
- if (!isEmpty(lErrors)) {
46
- return "";
47
- }
45
+ if (!isEmpty(lErrors)) {
46
+ return "";
47
+ }
48
48
 
49
- const lScriptContent = lParsedComponent?.descriptor?.script?.content ?? "";
50
- const lScriptSetupContent =
51
- lParsedComponent?.descriptor?.scriptSetup?.content ?? "";
49
+ const lScriptContent = lParsedComponent?.descriptor?.script?.content ?? "";
50
+ const lScriptSetupContent =
51
+ lParsedComponent?.descriptor?.scriptSetup?.content ?? "";
52
52
 
53
- if (lScriptContent && lScriptSetupContent) {
54
- return lScriptContent + EOL + lScriptSetupContent;
55
- }
53
+ if (lScriptContent && lScriptSetupContent) {
54
+ return lScriptContent + EOL + lScriptSetupContent;
55
+ }
56
56
 
57
- return lScriptContent || lScriptSetupContent;
57
+ return lScriptContent || lScriptSetupContent;
58
58
  }
59
59
 
60
60
  function vue2Transpile(pSource) {
61
- const lParsedComponent = vueTemplateCompiler.parseComponent(pSource);
62
- const lScriptContent = lParsedComponent?.script?.content ?? "";
63
- const lScriptSetupContent = lParsedComponent?.scriptSetup?.content ?? "";
61
+ const lParsedComponent = vueTemplateCompiler.parseComponent(pSource);
62
+ const lScriptContent = lParsedComponent?.script?.content ?? "";
63
+ const lScriptSetupContent = lParsedComponent?.scriptSetup?.content ?? "";
64
64
 
65
- if (lScriptContent && lScriptSetupContent) {
66
- return lScriptContent + EOL + lScriptSetupContent;
67
- }
65
+ if (lScriptContent && lScriptSetupContent) {
66
+ return lScriptContent + EOL + lScriptSetupContent;
67
+ }
68
68
 
69
- return lScriptContent || lScriptSetupContent;
69
+ return lScriptContent || lScriptSetupContent;
70
70
  }
71
71
 
72
72
  module.exports = {
73
- isAvailable: () => vueTemplateCompiler !== false,
74
- version: () =>
75
- vueTemplateCompiler.version
76
- ? `@vue/compiler-sfc@${vueTemplateCompiler.version}`
77
- : "vue-template-compiler",
78
- transpile: (pSource) =>
79
- isVue3 ? vue3Transpile(pSource) : vue2Transpile(pSource),
73
+ isAvailable: () => vueTemplateCompiler !== false,
74
+ version: () =>
75
+ vueTemplateCompiler.version
76
+ ? `@vue/compiler-sfc@${vueTemplateCompiler.version}`
77
+ : "vue-template-compiler",
78
+ transpile: (pSource) =>
79
+ isVue3 ? vue3Transpile(pSource) : vue2Transpile(pSource),
80
80
  };
@@ -1,6 +1,6 @@
1
1
  export default function extractStats(pAST) {
2
- return {
3
- topLevelStatementCount: pAST?.statements?.length || 0,
4
- size: pAST?.end || 0,
5
- };
2
+ return {
3
+ topLevelStatementCount: pAST?.statements?.length || 0,
4
+ size: pAST?.end || 0,
5
+ };
6
6
  }