dependency-cruiser 17.3.2 → 17.3.3-beta-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/bin/depcruise-baseline.mjs +43 -43
  2. package/bin/depcruise-fmt.mjs +89 -89
  3. package/bin/dependency-cruise.mjs +171 -171
  4. package/configs/plugins/3d-reporter-plugin.mjs +36 -36
  5. package/configs/plugins/stats-reporter-plugin.mjs +51 -51
  6. package/configs/recommended-strict.cjs +5 -5
  7. package/configs/recommended-warn-only.cjs +5 -5
  8. package/configs/recommended.cjs +22 -22
  9. package/configs/rules/no-circular.cjs +10 -10
  10. package/configs/rules/no-deprecated-core.cjs +10 -10
  11. package/configs/rules/no-duplicate-dependency-types.cjs +17 -17
  12. package/configs/rules/no-non-package-json.cjs +11 -11
  13. package/configs/rules/no-orphans.cjs +18 -18
  14. package/configs/rules/not-to-deprecated.cjs +10 -10
  15. package/configs/rules/not-to-unresolvable.cjs +10 -10
  16. package/package.json +170 -170
  17. package/src/cache/cache.mjs +139 -139
  18. package/src/cache/content-strategy.mjs +88 -88
  19. package/src/cache/find-content-changes.mjs +58 -58
  20. package/src/cache/helpers.mjs +52 -52
  21. package/src/cache/metadata-strategy.mjs +83 -83
  22. package/src/cache/options-compatible.mjs +56 -109
  23. package/src/cli/assert-node-environment-suitable.mjs +7 -7
  24. package/src/cli/defaults.mjs +5 -5
  25. package/src/cli/format-meta-info.mjs +22 -22
  26. package/src/cli/format.mjs +28 -28
  27. package/src/cli/index.mjs +145 -145
  28. package/src/cli/init-config/build-config.mjs +94 -94
  29. package/src/cli/init-config/environment-helpers.mjs +77 -77
  30. package/src/cli/init-config/find-extensions.mjs +27 -27
  31. package/src/cli/init-config/get-user-input.mjs +151 -151
  32. package/src/cli/init-config/index.mjs +88 -88
  33. package/src/cli/init-config/normalize-init-options.mjs +47 -47
  34. package/src/cli/init-config/utl.mjs +4 -4
  35. package/src/cli/init-config/validators.mjs +10 -10
  36. package/src/cli/init-config/write-config.mjs +21 -21
  37. package/src/cli/init-config/write-run-scripts-to-manifest.mjs +103 -107
  38. package/src/cli/listeners/cli-feedback.mjs +49 -49
  39. package/src/cli/listeners/ndjson.mjs +66 -66
  40. package/src/cli/listeners/performance-log/format-helpers.mjs +63 -63
  41. package/src/cli/listeners/performance-log/handlers.mjs +56 -56
  42. package/src/cli/listeners/performance-log/index.mjs +37 -37
  43. package/src/cli/normalize-cli-options.mjs +182 -182
  44. package/src/cli/tools/wrap-stream-in-html.mjs +37 -37
  45. package/src/cli/utl/assert-file-existence.mjs +7 -7
  46. package/src/cli/utl/io.mjs +28 -31
  47. package/src/config-utl/extract-babel-config.mjs +69 -69
  48. package/src/config-utl/extract-depcruise-config/index.mjs +54 -54
  49. package/src/config-utl/extract-depcruise-config/merge-configs.mjs +63 -63
  50. package/src/config-utl/extract-depcruise-config/read-config.mjs +9 -9
  51. package/src/config-utl/extract-depcruise-options.mjs +9 -9
  52. package/src/config-utl/extract-known-violations.mjs +49 -49
  53. package/src/config-utl/extract-ts-config.mjs +46 -48
  54. package/src/config-utl/extract-webpack-resolve-config.mjs +88 -88
  55. package/src/config-utl/make-absolute.mjs +5 -5
  56. package/src/enrich/add-validations.mjs +13 -13
  57. package/src/enrich/derive/circular.mjs +49 -49
  58. package/src/enrich/derive/dependents.mjs +27 -27
  59. package/src/enrich/derive/folders/aggregate-to-folders.mjs +104 -104
  60. package/src/enrich/derive/folders/index.mjs +19 -19
  61. package/src/enrich/derive/folders/utl.mjs +18 -18
  62. package/src/enrich/derive/metrics/get-module-metrics.mjs +27 -27
  63. package/src/enrich/derive/metrics/index.mjs +8 -8
  64. package/src/enrich/derive/module-utl.mjs +18 -18
  65. package/src/enrich/derive/orphan/index.mjs +18 -18
  66. package/src/enrich/derive/orphan/is-orphan.mjs +9 -9
  67. package/src/enrich/derive/reachable.mjs +165 -168
  68. package/src/enrich/enrich-modules.mjs +25 -25
  69. package/src/enrich/index.mjs +15 -15
  70. package/src/enrich/soften-known-violations.mjs +90 -90
  71. package/src/enrich/summarize/add-rule-set-used.mjs +13 -13
  72. package/src/enrich/summarize/get-stats.mjs +17 -17
  73. package/src/enrich/summarize/index.mjs +18 -18
  74. package/src/enrich/summarize/is-same-violation.mjs +30 -30
  75. package/src/enrich/summarize/summarize-folders.mjs +35 -35
  76. package/src/enrich/summarize/summarize-modules.mjs +97 -97
  77. package/src/enrich/summarize/summarize-options.mjs +71 -71
  78. package/src/extract/acorn/estree-helpers.mjs +66 -66
  79. package/src/extract/acorn/extract-amd-deps.mjs +63 -64
  80. package/src/extract/acorn/extract-cjs-deps.mjs +83 -83
  81. package/src/extract/acorn/extract-es6-deps.mjs +54 -54
  82. package/src/extract/acorn/extract-stats.mjs +4 -4
  83. package/src/extract/acorn/extract.mjs +28 -28
  84. package/src/extract/acorn/parse.mjs +37 -37
  85. package/src/extract/clear-caches.mjs +7 -7
  86. package/src/extract/extract-dependencies.mjs +109 -109
  87. package/src/extract/extract-stats.mjs +21 -21
  88. package/src/extract/gather-initial-sources.mjs +64 -64
  89. package/src/extract/helpers.mjs +73 -71
  90. package/src/extract/index.mjs +120 -120
  91. package/src/extract/resolve/determine-dependency-types.mjs +166 -169
  92. package/src/extract/resolve/external-module-helpers.mjs +76 -76
  93. package/src/extract/resolve/get-manifest.mjs +79 -79
  94. package/src/extract/resolve/index.mjs +175 -164
  95. package/src/extract/resolve/is-built-in.mjs +22 -24
  96. package/src/extract/resolve/merge-manifests.mjs +43 -43
  97. package/src/extract/resolve/module-classifiers.mjs +229 -229
  98. package/src/extract/resolve/resolve-amd.mjs +44 -44
  99. package/src/extract/resolve/resolve-cjs.mjs +40 -40
  100. package/src/extract/resolve/resolve-helpers.mjs +20 -20
  101. package/src/extract/resolve/resolve.mjs +26 -26
  102. package/src/extract/swc/dependency-visitor.mjs +211 -211
  103. package/src/extract/swc/extract-swc-deps.mjs +4 -4
  104. package/src/extract/swc/extract.mjs +7 -7
  105. package/src/extract/swc/parse.mjs +12 -12
  106. package/src/extract/transpile/babel-wrap.mjs +9 -9
  107. package/src/extract/transpile/coffeescript-wrap.mjs +21 -21
  108. package/src/extract/transpile/index.mjs +47 -47
  109. package/src/extract/transpile/javascript-wrap.mjs +6 -6
  110. package/src/extract/transpile/livescript-wrap.mjs +5 -5
  111. package/src/extract/transpile/meta.mjs +80 -80
  112. package/src/extract/transpile/svelte-preprocess.mjs +73 -73
  113. package/src/extract/transpile/svelte-wrap.mjs +19 -19
  114. package/src/extract/transpile/try-import-available.mjs +26 -27
  115. package/src/extract/transpile/typescript-wrap.mjs +39 -39
  116. package/src/extract/transpile/vue-template-wrap.cjs +43 -43
  117. package/src/extract/tsc/extract-stats.mjs +4 -4
  118. package/src/extract/tsc/extract-typescript-deps.mjs +429 -398
  119. package/src/extract/tsc/extract.mjs +22 -22
  120. package/src/extract/tsc/parse.mjs +21 -21
  121. package/src/graph-utl/add-focus.mjs +35 -35
  122. package/src/graph-utl/compare.mjs +24 -24
  123. package/src/graph-utl/consolidate-module-dependencies.mjs +35 -35
  124. package/src/graph-utl/consolidate-modules.mjs +33 -33
  125. package/src/graph-utl/consolidate-to-folder.mjs +13 -13
  126. package/src/graph-utl/consolidate-to-pattern.mjs +34 -34
  127. package/src/graph-utl/filter-bank.mjs +74 -69
  128. package/src/graph-utl/indexed-module-graph.mjs +227 -225
  129. package/src/graph-utl/match-facade.mjs +3 -3
  130. package/src/graph-utl/rule-set.mjs +20 -20
  131. package/src/graph-utl/strip-self-transitions.mjs +6 -6
  132. package/src/main/cruise.mjs +81 -81
  133. package/src/main/files-and-dirs/normalize.mjs +7 -7
  134. package/src/main/format.mjs +11 -14
  135. package/src/main/helpers.mjs +25 -25
  136. package/src/main/index.mjs +8 -8
  137. package/src/main/options/assert-validity.mjs +100 -100
  138. package/src/main/options/defaults.mjs +11 -11
  139. package/src/main/options/normalize.mjs +158 -160
  140. package/src/main/report-wrap.mjs +37 -37
  141. package/src/main/resolve-options/normalize.mjs +127 -128
  142. package/src/main/rule-set/assert-validity.mjs +67 -73
  143. package/src/main/rule-set/normalize.mjs +81 -79
  144. package/src/meta.cjs +15 -16
  145. package/src/report/anon/anonymize-path-element.mjs +20 -34
  146. package/src/report/anon/anonymize-path.mjs +11 -11
  147. package/src/report/anon/index.mjs +119 -119
  148. package/src/report/anon/random-string.mjs +23 -23
  149. package/src/report/azure-devops.mjs +75 -99
  150. package/src/report/baseline.mjs +9 -9
  151. package/src/report/csv.mjs +13 -13
  152. package/src/report/d2.mjs +105 -105
  153. package/src/report/dot/default-theme.mjs +152 -152
  154. package/src/report/dot/index.mjs +146 -146
  155. package/src/report/dot/module-utl.mjs +72 -72
  156. package/src/report/dot/prepare-custom-level.mjs +20 -20
  157. package/src/report/dot/prepare-flat-level.mjs +11 -11
  158. package/src/report/dot/prepare-folder-level.mjs +12 -13
  159. package/src/report/dot/theming.mjs +73 -73
  160. package/src/report/dot-webpage/dot-module.mjs +36 -36
  161. package/src/report/dot-webpage/svg-in-html-snippets/script.cjs +208 -210
  162. package/src/report/dot-webpage/svg-in-html-snippets/style.css +51 -51
  163. package/src/report/dot-webpage/wrap-in-html.mjs +7 -7
  164. package/src/report/error-html/index.mjs +49 -49
  165. package/src/report/error-html/utl.mjs +99 -99
  166. package/src/report/error-long.mjs +1 -1
  167. package/src/report/error.mjs +93 -93
  168. package/src/report/html/index.mjs +48 -48
  169. package/src/report/identity.mjs +4 -4
  170. package/src/report/index.mjs +33 -33
  171. package/src/report/json.mjs +4 -4
  172. package/src/report/markdown.mjs +120 -120
  173. package/src/report/mermaid.mjs +111 -111
  174. package/src/report/metrics.mjs +185 -185
  175. package/src/report/null.mjs +4 -4
  176. package/src/report/plugins.mjs +41 -41
  177. package/src/report/teamcity.mjs +150 -150
  178. package/src/report/text.mjs +42 -42
  179. package/src/report/utl/dependency-to-incidence-transformer.mjs +32 -32
  180. package/src/report/utl/index.mjs +53 -53
  181. package/src/schema/configuration.validate.mjs +1 -0
  182. package/src/schema/cruise-result.validate.mjs +1 -0
  183. package/src/schema/utl.mjs +6 -0
  184. package/src/utl/array-util.mjs +25 -25
  185. package/src/utl/bus.mjs +12 -12
  186. package/src/utl/extract-root-module-name.cjs +8 -8
  187. package/src/utl/find-all-files.mjs +54 -54
  188. package/src/utl/get-extension.mjs +2 -2
  189. package/src/utl/object-util.mjs +21 -22
  190. package/src/utl/path-to-posix.mjs +5 -5
  191. package/src/utl/regex-util.mjs +20 -20
  192. package/src/utl/try-import.mjs +42 -41
  193. package/src/utl/try-require.cjs +23 -23
  194. package/src/utl/wrap-and-indent.mjs +33 -33
  195. package/src/validate/index.mjs +65 -65
  196. package/src/validate/match-dependency-rule.mjs +47 -47
  197. package/src/validate/match-folder-dependency-rule.mjs +27 -27
  198. package/src/validate/match-module-rule-helpers.mjs +76 -76
  199. package/src/validate/match-module-rule.mjs +12 -12
  200. package/src/validate/matchers.mjs +162 -162
  201. package/src/validate/rule-classifiers.mjs +9 -9
  202. package/src/validate/violates-required-rule.mjs +23 -23
  203. package/types/cache-options.d.mts +27 -27
  204. package/types/config-utl/extract-babel-config.d.mts +1 -1
  205. package/types/config-utl/extract-depcruise-config.d.mts +3 -3
  206. package/types/config-utl/extract-depcruise-options.d.mts +1 -1
  207. package/types/config-utl/extract-ts-config.d.mts +1 -1
  208. package/types/config-utl/extract-webpack-resolve-config.d.mts +3 -3
  209. package/types/configuration.d.mts +10 -10
  210. package/types/cruise-result.d.mts +414 -414
  211. package/types/dependency-cruiser.d.mts +52 -52
  212. package/types/filter-types.d.mts +45 -45
  213. package/types/options.d.mts +430 -430
  214. package/types/plugins/3d-reporter-plugin.d.mts +9 -9
  215. package/types/plugins/mermaid-reporter-plugin.d.mts +10 -10
  216. package/types/plugins/stats-reporter-plugin.d.mts +9 -9
  217. package/types/reporter-options.d.mts +196 -196
  218. package/types/resolve-options.d.mts +23 -23
  219. package/types/restrictions.d.mts +174 -174
  220. package/types/rule-set.d.mts +132 -132
  221. package/types/rule-summary.d.mts +14 -14
  222. package/types/shared-types.d.mts +89 -89
  223. package/types/strict-filter-types.d.mts +52 -52
  224. package/types/strict-options.d.mts +34 -34
  225. package/types/strict-restrictions.d.mts +25 -25
  226. package/types/strict-rule-set.d.mts +36 -36
  227. package/types/violations.d.mts +40 -40
  228. package/src/schema/README.md +0 -5
  229. package/src/schema/baseline-violations.schema.mjs +0 -1
  230. package/src/schema/configuration.schema.mjs +0 -1
  231. package/src/schema/cruise-result.schema.mjs +0 -1
  232. package/types/README.md +0 -1
@@ -1,12 +1,12 @@
1
1
  import { join } from "node:path/posix";
2
2
  import {
3
- isRelativeModuleName,
4
- isExternalModule,
5
- getAliasTypes,
3
+ isRelativeModuleName,
4
+ isExternalModule,
5
+ getAliasTypes,
6
6
  } from "./module-classifiers.mjs";
7
7
  import {
8
- dependencyIsDeprecated,
9
- getPackageRoot,
8
+ dependencyIsDeprecated,
9
+ getPackageRoot,
10
10
  } from "./external-module-helpers.mjs";
11
11
 
12
12
  /**
@@ -17,69 +17,69 @@ import {
17
17
  */
18
18
 
19
19
  function dependencyKeyHasModuleName(
20
- pPackageDependencies,
21
- pModuleName,
22
- pPrefix,
20
+ pPackageDependencies,
21
+ pModuleName,
22
+ pPrefix,
23
23
  ) {
24
- return (pKey) =>
25
- pKey.includes("ependencies") &&
26
- Object.hasOwn(pPackageDependencies[pKey], join(pPrefix, pModuleName));
24
+ return (pKey) =>
25
+ pKey.includes("ependencies") &&
26
+ Object.hasOwn(pPackageDependencies[pKey], join(pPrefix, pModuleName));
27
27
  }
28
28
 
29
29
  const NPM2DEP_TYPE = new Map([
30
- ["dependencies", "npm"],
31
- ["devDependencies", "npm-dev"],
32
- ["optionalDependencies", "npm-optional"],
33
- ["peerDependencies", "npm-peer"],
30
+ ["dependencies", "npm"],
31
+ ["devDependencies", "npm-dev"],
32
+ ["optionalDependencies", "npm-optional"],
33
+ ["peerDependencies", "npm-peer"],
34
34
  ]);
35
35
 
36
36
  function findModuleInPackageDependencies(
37
- pPackageDependencies,
38
- pModuleName,
39
- pPrefix,
37
+ pPackageDependencies,
38
+ pModuleName,
39
+ pPrefix,
40
40
  ) {
41
- return Object.keys(pPackageDependencies)
42
- .filter(
43
- dependencyKeyHasModuleName(pPackageDependencies, pModuleName, pPrefix),
44
- )
45
- .map((pKey) => NPM2DEP_TYPE.get(pKey) || "npm-no-pkg");
41
+ return Object.keys(pPackageDependencies)
42
+ .filter(
43
+ dependencyKeyHasModuleName(pPackageDependencies, pModuleName, pPrefix),
44
+ )
45
+ .map((pKey) => NPM2DEP_TYPE.get(pKey) || "npm-no-pkg");
46
46
  }
47
47
 
48
48
  function needToLookAtTypesToo(pResolverModulePaths) {
49
- return (pResolverModulePaths || ["node_modules", "node_modules/@types"]).some(
50
- (pPath) => pPath.includes("@types"),
51
- );
49
+ return (pResolverModulePaths || ["node_modules", "node_modules/@types"]).some(
50
+ (pPath) => pPath.includes("@types"),
51
+ );
52
52
  }
53
53
 
54
54
  function determineManifestDependencyTypes(
55
- pModuleName,
56
- pPackageDependencies,
57
- pResolverModulePaths,
55
+ pModuleName,
56
+ pPackageDependencies,
57
+ pResolverModulePaths,
58
58
  ) {
59
- /** @type {DependencyType[]} */
60
- let lReturnValue = ["npm-unknown"];
61
-
62
- if (pPackageDependencies) {
63
- lReturnValue = findModuleInPackageDependencies(
64
- pPackageDependencies,
65
- pModuleName,
66
- "",
67
- );
68
-
69
- if (
70
- lReturnValue.length === 0 &&
71
- needToLookAtTypesToo(pResolverModulePaths)
72
- ) {
73
- lReturnValue = findModuleInPackageDependencies(
74
- pPackageDependencies,
75
- pModuleName,
76
- "@types",
77
- );
78
- }
79
- lReturnValue = lReturnValue.length === 0 ? ["npm-no-pkg"] : lReturnValue;
80
- }
81
-
82
- return lReturnValue;
59
+ /** @type {DependencyType[]} */
60
+ let lReturnValue = ["npm-unknown"];
61
+
62
+ if (pPackageDependencies) {
63
+ lReturnValue = findModuleInPackageDependencies(
64
+ pPackageDependencies,
65
+ pModuleName,
66
+ "",
67
+ );
68
+
69
+ if (
70
+ lReturnValue.length === 0 &&
71
+ needToLookAtTypesToo(pResolverModulePaths)
72
+ ) {
73
+ lReturnValue = findModuleInPackageDependencies(
74
+ pPackageDependencies,
75
+ pModuleName,
76
+ "@types",
77
+ );
78
+ }
79
+ lReturnValue = lReturnValue.length === 0 ? ["npm-no-pkg"] : lReturnValue;
80
+ }
81
+
82
+ return lReturnValue;
83
83
  }
84
84
 
85
85
  /*
@@ -87,17 +87,17 @@ function determineManifestDependencyTypes(
87
87
  * an array, and not an object, hence needs different treatment
88
88
  */
89
89
  function dependencyIsBundled(pModule, pPackageDeps) {
90
- let lReturnValue = false;
90
+ let lReturnValue = false;
91
91
 
92
- if (pPackageDeps) {
93
- const lBundledDependencies =
94
- pPackageDeps.bundledDependencies || pPackageDeps.bundleDependencies;
92
+ if (pPackageDeps) {
93
+ const lBundledDependencies =
94
+ pPackageDeps.bundledDependencies || pPackageDeps.bundleDependencies;
95
95
 
96
- if (lBundledDependencies) {
97
- lReturnValue = lBundledDependencies.includes(pModule);
98
- }
99
- }
100
- return lReturnValue;
96
+ if (lBundledDependencies) {
97
+ lReturnValue = lBundledDependencies.includes(pModule);
98
+ }
99
+ }
100
+ return lReturnValue;
101
101
  }
102
102
 
103
103
  /**
@@ -109,27 +109,27 @@ function dependencyIsBundled(pModule, pPackageDeps) {
109
109
  * @returns {DependencyType[]}
110
110
  */
111
111
  function determineNodeModuleDependencyTypes(
112
- pModuleName,
113
- pPackageDeps,
114
- pFileDirectory,
115
- pResolveOptions,
112
+ pModuleName,
113
+ pPackageDeps,
114
+ pFileDirectory,
115
+ pResolveOptions,
116
116
  ) {
117
- /** @type { DependencyType[] } */
118
- let lReturnValue = determineManifestDependencyTypes(
119
- getPackageRoot(pModuleName),
120
- pPackageDeps,
121
- pResolveOptions.modules,
122
- );
123
- if (
124
- pResolveOptions.resolveDeprecations &&
125
- dependencyIsDeprecated(pModuleName, pFileDirectory, pResolveOptions)
126
- ) {
127
- lReturnValue.push("deprecated");
128
- }
129
- if (dependencyIsBundled(pModuleName, pPackageDeps)) {
130
- lReturnValue.push("npm-bundled");
131
- }
132
- return lReturnValue;
117
+ /** @type { DependencyType[] } */
118
+ let lReturnValue = determineManifestDependencyTypes(
119
+ getPackageRoot(pModuleName),
120
+ pPackageDeps,
121
+ pResolveOptions.modules,
122
+ );
123
+ if (
124
+ pResolveOptions.resolveDeprecations &&
125
+ dependencyIsDeprecated(pModuleName, pFileDirectory, pResolveOptions)
126
+ ) {
127
+ lReturnValue.push("deprecated");
128
+ }
129
+ if (dependencyIsBundled(pModuleName, pPackageDeps)) {
130
+ lReturnValue.push("npm-bundled");
131
+ }
132
+ return lReturnValue;
133
133
  }
134
134
 
135
135
  /**
@@ -143,29 +143,29 @@ function determineNodeModuleDependencyTypes(
143
143
  * @returns {DependencyType[]}
144
144
  */
145
145
  function determineExternalModuleDependencyTypes(
146
- pDependency,
147
- pModuleName,
148
- pPackageDeps,
149
- pFileDirectory,
150
- pResolveOptions,
151
- pBaseDirectory,
146
+ pDependency,
147
+ pModuleName,
148
+ pPackageDeps,
149
+ pFileDirectory,
150
+ pResolveOptions,
151
+ pBaseDirectory,
152
152
  ) {
153
- /** @type { DependencyType[] } */
154
- let lReturnValue = [];
155
-
156
- if (
157
- isExternalModule(pDependency.resolved, ["node_modules"], pBaseDirectory)
158
- ) {
159
- lReturnValue = determineNodeModuleDependencyTypes(
160
- pModuleName,
161
- pPackageDeps,
162
- pFileDirectory,
163
- pResolveOptions,
164
- );
165
- } else {
166
- lReturnValue = ["localmodule"];
167
- }
168
- return lReturnValue;
153
+ /** @type { DependencyType[] } */
154
+ let lReturnValue = [];
155
+
156
+ if (
157
+ isExternalModule(pDependency.resolved, ["node_modules"], pBaseDirectory)
158
+ ) {
159
+ lReturnValue = determineNodeModuleDependencyTypes(
160
+ pModuleName,
161
+ pPackageDeps,
162
+ pFileDirectory,
163
+ pResolveOptions,
164
+ );
165
+ } else {
166
+ lReturnValue = ["localmodule"];
167
+ }
168
+ return lReturnValue;
169
169
  }
170
170
 
171
171
  /* eslint max-params:0, complexity:0 */
@@ -183,72 +183,69 @@ function determineExternalModuleDependencyTypes(
183
183
  */
184
184
  // eslint-disable-next-line max-lines-per-function
185
185
  export default function determineDependencyTypes(
186
- pDependency,
187
- pModuleName,
188
- pManifest,
189
- pFileDirectory,
190
- pResolveOptions,
191
- pBaseDirectory,
192
- pTranspileOptions,
186
+ pDependency,
187
+ pModuleName,
188
+ pManifest,
189
+ pFileDirectory,
190
+ pResolveOptions,
191
+ pBaseDirectory,
192
+ pTranspileOptions,
193
193
  ) {
194
- /** @type {DependencyType[]}*/
195
- let lReturnValue = [];
196
- const lResolveOptions = pResolveOptions || {};
197
-
198
- if (pDependency.couldNotResolve) {
199
- return ["unknown"];
200
- }
201
-
202
- const lAliases = getAliasTypes(
203
- pModuleName,
204
- pDependency.resolved,
205
- lResolveOptions,
206
- pManifest,
207
- pTranspileOptions,
208
- );
209
- if (lAliases.length > 0) {
210
- lReturnValue = lAliases;
211
- }
212
-
213
- if (pDependency.coreModule) {
214
- // this business seems duplicate (it's already in
215
- // the passed object as `coreModule`- determined by the resolve-AMD or
216
- // resolve-commonJS module). I want to deprecate the `coreModule`
217
- // attribute in favor of this one and determining it here will make
218
- // live easier in the future
219
- lReturnValue.push("core");
220
- } else if (
221
- isRelativeModuleName(pModuleName) ||
222
- (lAliases.length > 0 &&
223
- !isExternalModule(
224
- pDependency.resolved,
225
- lResolveOptions.modules,
226
- pBaseDirectory,
227
- ))
228
- ) {
229
- lReturnValue.push("local");
230
- } else if (
231
- isExternalModule(
232
- pDependency.resolved,
233
- lResolveOptions.modules,
234
- pBaseDirectory,
235
- )
236
- ) {
237
- lReturnValue = lReturnValue.concat(
238
- determineExternalModuleDependencyTypes(
239
- pDependency,
240
- pModuleName,
241
- pManifest,
242
- pFileDirectory,
243
- lResolveOptions,
244
- pBaseDirectory,
245
- ),
246
- );
247
- } else {
248
- lReturnValue.push("undetermined");
249
- }
250
-
251
- return lReturnValue.concat(pDependency.dependencyTypes || []);
194
+ /** @type {DependencyType[]}*/
195
+ let lReturnValue = [];
196
+ const lResolveOptions = pResolveOptions || {};
197
+
198
+ if (pDependency.couldNotResolve) {
199
+ return ["unknown"];
200
+ }
201
+
202
+ const lAliases = getAliasTypes(
203
+ pModuleName,
204
+ pDependency.resolved,
205
+ lResolveOptions,
206
+ pManifest,
207
+ pTranspileOptions,
208
+ );
209
+ if (lAliases.length > 0) {
210
+ lReturnValue = lAliases;
211
+ }
212
+
213
+ if (pDependency.coreModule) {
214
+ // keeping coreModule for backwards compatibility
215
+ // would prefer using only the core dependency-type, though
216
+ lReturnValue.push("core");
217
+ } else if (
218
+ isRelativeModuleName(pModuleName) ||
219
+ (lAliases.length > 0 &&
220
+ !isExternalModule(
221
+ pDependency.resolved,
222
+ lResolveOptions.modules,
223
+ pBaseDirectory,
224
+ ))
225
+ ) {
226
+ lReturnValue.push("local");
227
+ } else if (
228
+ isExternalModule(
229
+ pDependency.resolved,
230
+ lResolveOptions.modules,
231
+ pBaseDirectory,
232
+ )
233
+ ) {
234
+ lReturnValue = lReturnValue.concat(
235
+ determineExternalModuleDependencyTypes(
236
+ pDependency,
237
+ pModuleName,
238
+ pManifest,
239
+ pFileDirectory,
240
+ lResolveOptions,
241
+ pBaseDirectory,
242
+ ),
243
+ );
244
+ } else {
245
+ lReturnValue.push("undetermined");
246
+ }
247
+
248
+ return lReturnValue.concat(pDependency.dependencyTypes || []);
252
249
  }
253
250
 
254
251
  /* eslint security/detect-object-injection: 0*/
@@ -32,26 +32,26 @@ import { isScoped, isRelativeModuleName } from "./module-classifiers.mjs";
32
32
  * @return {string} the module name root
33
33
  */
34
34
  export function getPackageRoot(pModule) {
35
- if (!pModule || isRelativeModuleName(pModule)) {
36
- return pModule;
37
- }
35
+ if (!pModule || isRelativeModuleName(pModule)) {
36
+ return pModule;
37
+ }
38
38
 
39
- let lPathElements = pModule.split("/");
39
+ let lPathElements = pModule.split("/");
40
40
 
41
- if (isScoped(pModule)) {
42
- // '@imdoingweirdvoodoo'
43
- if (lPathElements.length === 1) {
44
- return pModule;
45
- }
41
+ if (isScoped(pModule)) {
42
+ // '@imdoingweirdvoodoo'
43
+ if (lPathElements.length === 1) {
44
+ return pModule;
45
+ }
46
46
 
47
- // @scope/package
48
- // @scope/package/some/thing
49
- return `${lPathElements[0]}/${lPathElements[1]}`;
50
- }
47
+ // @scope/package
48
+ // @scope/package/some/thing
49
+ return `${lPathElements[0]}/${lPathElements[1]}`;
50
+ }
51
51
 
52
- // godash
53
- // godash/fp
54
- return lPathElements[0];
52
+ // godash
53
+ // godash/fp
54
+ return lPathElements[0];
55
55
  }
56
56
 
57
57
  /**
@@ -63,7 +63,7 @@ export function getPackageRoot(pModule) {
63
63
  *
64
64
  * The pBaseDirectory parameter is necessary because dependency-cruiser/ this module
65
65
  * will have a different base dir, and will hence resolve either to the
66
- * wrong package or not to a package at all.
66
+ * wrong package or to no package.
67
67
  *
68
68
  * @param {string} pModuleName The name of the module to get the package.json of
69
69
  * @param {string} pFileDirectory The folder the module resides in. Defaults to the current working directory
@@ -73,40 +73,40 @@ export function getPackageRoot(pModule) {
73
73
  * not be found
74
74
  */
75
75
  function bareGetPackageJson(pModuleName, pFileDirectory, pResolveOptions) {
76
- let lReturnValue = null;
76
+ let lReturnValue = null;
77
77
 
78
- try {
79
- const lPackageJsonFilename = resolve(
80
- join(getPackageRoot(pModuleName), "package.json"),
81
- pFileDirectory ?? process.cwd(),
82
- {
83
- ...pResolveOptions,
84
- // if a module has exports fields _and_ does not expose package.json
85
- // in those exports, enhanced-resolve (nor node!) will not be able to
86
- // resolve the package.json if it actually heeds those exports fields.
87
- // We can instruct enhanced-resolve to ignore them, however, by passing
88
- // it the empty array for exports fields (overriding anything in
89
- // the pResvolveOptions)
90
- exportsFields: [],
91
- // we don't need to try any extensions; we already
92
- // know it as we have passed the complete module name to resolve =>
93
- // override whatever the default is with [""] ('use no extensions please')
94
- extensions: [""],
95
- },
96
- // we need a separate caching context so as not to **** up the regular
97
- // cruise, which might actually want to utilize the exportsFields
98
- // and an array of extensions
99
- "manifest-resolution",
100
- );
101
- lReturnValue = JSON.parse(readFileSync(lPackageJsonFilename, "utf8"));
102
- } catch (pError) {
103
- // left empty on purpose
104
- }
105
- return lReturnValue;
78
+ try {
79
+ const lPackageJsonFilename = resolve(
80
+ join(getPackageRoot(pModuleName), "package.json"),
81
+ pFileDirectory ?? process.cwd(),
82
+ {
83
+ ...pResolveOptions,
84
+ // if a module has exports fields _and_ does not expose package.json
85
+ // in those exports, enhanced-resolve (nr node!) won't be able to
86
+ // resolve the package.json if it actually heeds those exports fields.
87
+ // We can instruct enhanced-resolve to ignore them by passing
88
+ // it the empty array for exports fields (overriding anything in
89
+ // the pResvolveOptions)
90
+ exportsFields: [],
91
+ // we don't need to try any extensions; we already
92
+ // know it as we have passed the complete module name to resolve =>
93
+ // override whatever the default is with [""] ('use no extensions please')
94
+ extensions: [""],
95
+ },
96
+ // we need a separate caching context so as not to **** up the regular
97
+ // cruise, which might actually want to utilize the exportsFields
98
+ // and an array of extensions
99
+ "manifest-resolution",
100
+ );
101
+ lReturnValue = JSON.parse(readFileSync(lPackageJsonFilename, "utf8"));
102
+ } catch (pError) {
103
+ // left empty on purpose
104
+ }
105
+ return lReturnValue;
106
106
  }
107
107
 
108
108
  export const getPackageJson = memoize(bareGetPackageJson, {
109
- cacheKey: (pArguments) => `${pArguments[0]}|${pArguments[1]}`,
109
+ cacheKey: (pArguments) => `${pArguments[0]}|${pArguments[1]}`,
110
110
  });
111
111
 
112
112
  /**
@@ -118,22 +118,22 @@ export const getPackageJson = memoize(bareGetPackageJson, {
118
118
  * @return {boolean} true when deprecated, false in all other cases
119
119
  */
120
120
  export function dependencyIsDeprecated(
121
- pModuleName,
122
- pFileDirectory,
123
- pResolveOptions,
121
+ pModuleName,
122
+ pFileDirectory,
123
+ pResolveOptions,
124
124
  ) {
125
- let lReturnValue = false;
126
- let lPackageJson = getPackageJson(
127
- pModuleName,
128
- pFileDirectory,
129
- pResolveOptions,
130
- );
125
+ let lReturnValue = false;
126
+ let lPackageJson = getPackageJson(
127
+ pModuleName,
128
+ pFileDirectory,
129
+ pResolveOptions,
130
+ );
131
131
 
132
- if (lPackageJson) {
133
- lReturnValue =
134
- Object.hasOwn(lPackageJson, "deprecated") && lPackageJson.deprecated;
135
- }
136
- return lReturnValue;
132
+ if (lPackageJson) {
133
+ lReturnValue =
134
+ Object.hasOwn(lPackageJson, "deprecated") && lPackageJson.deprecated;
135
+ }
136
+ return lReturnValue;
137
137
  }
138
138
 
139
139
  /**
@@ -146,23 +146,23 @@ export function dependencyIsDeprecated(
146
146
  * there is no package.json or no license field
147
147
  */
148
148
  export function getLicense(pModuleName, pFileDirectory, pResolveOptions) {
149
- let lReturnValue = "";
150
- let lPackageJson = getPackageJson(
151
- pModuleName,
152
- pFileDirectory,
153
- pResolveOptions,
154
- );
149
+ let lReturnValue = "";
150
+ let lPackageJson = getPackageJson(
151
+ pModuleName,
152
+ pFileDirectory,
153
+ pResolveOptions,
154
+ );
155
155
 
156
- if (
157
- lPackageJson &&
158
- Object.hasOwn(lPackageJson, "license") &&
159
- typeof lPackageJson.license === "string"
160
- ) {
161
- lReturnValue = lPackageJson.license;
162
- }
163
- return lReturnValue;
156
+ if (
157
+ lPackageJson &&
158
+ Object.hasOwn(lPackageJson, "license") &&
159
+ typeof lPackageJson.license === "string"
160
+ ) {
161
+ lReturnValue = lPackageJson.license;
162
+ }
163
+ return lReturnValue;
164
164
  }
165
165
 
166
166
  export function clearCache() {
167
- memoizeClear(getPackageJson);
167
+ memoizeClear(getPackageJson);
168
168
  }