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
@@ -5,33 +5,33 @@ import { getASTCached, isAvailable } from "./parse.mjs";
5
5
  import extractStats from "./extract-stats.mjs";
6
6
 
7
7
  export function shouldUse({ tsPreCompilationDeps, parser }, pFileName) {
8
- return (
9
- (tsPreCompilationDeps || parser === "tsc") &&
10
- isAvailable() &&
11
- isTypeScriptCompatible(pFileName)
12
- );
8
+ return (
9
+ (tsPreCompilationDeps || parser === "tsc") &&
10
+ isAvailable() &&
11
+ isTypeScriptCompatible(pFileName)
12
+ );
13
13
  }
14
14
 
15
15
  export function extract(
16
- {
17
- baseDir,
18
- exoticRequireStrings,
19
- moduleSystems,
20
- detectJSDocImports,
21
- detectProcessBuiltinModuleCalls,
22
- },
23
- pFileName,
24
- pTranspileOptions,
16
+ {
17
+ baseDir,
18
+ exoticRequireStrings,
19
+ moduleSystems,
20
+ detectJSDocImports,
21
+ detectProcessBuiltinModuleCalls,
22
+ },
23
+ pFileName,
24
+ pTranspileOptions,
25
25
  ) {
26
- return extractTypeScriptDeps(
27
- getASTCached(join(baseDir, pFileName), pTranspileOptions),
28
- exoticRequireStrings,
29
- detectJSDocImports,
30
- detectProcessBuiltinModuleCalls,
31
- ).filter(({ moduleSystem }) => moduleSystems.includes(moduleSystem));
26
+ return extractTypeScriptDeps(
27
+ getASTCached(join(baseDir, pFileName), pTranspileOptions),
28
+ exoticRequireStrings,
29
+ detectJSDocImports,
30
+ detectProcessBuiltinModuleCalls,
31
+ ).filter(({ moduleSystem }) => moduleSystems.includes(moduleSystem));
32
32
  }
33
33
 
34
34
  export function getStats({ baseDir }, pFileName, pTranspileOptions) {
35
- const lAST = getASTCached(join(baseDir, pFileName), pTranspileOptions);
36
- return extractStats(lAST);
35
+ const lAST = getASTCached(join(baseDir, pFileName), pTranspileOptions);
36
+ return extractStats(lAST);
37
37
  }
@@ -7,8 +7,8 @@ import getExtension from "#utl/get-extension.mjs";
7
7
 
8
8
  /** @type {import('typescript')} */
9
9
  const typescript = await tryImport(
10
- "typescript",
11
- meta.supportedTranspilers.typescript,
10
+ "typescript",
11
+ meta.supportedTranspilers.typescript,
12
12
  );
13
13
 
14
14
  /**
@@ -20,17 +20,17 @@ const typescript = await tryImport(
20
20
  * @return {object} - a (typescript) AST
21
21
  */
22
22
  export function getASTFromSource(pFileRecord, pTranspileOptions) {
23
- let lSource = pFileRecord.source;
24
- if (pFileRecord.extension === ".vue") {
25
- lSource = transpile(pFileRecord, pTranspileOptions);
26
- }
23
+ let lSource = pFileRecord.source;
24
+ if (pFileRecord.extension === ".vue") {
25
+ lSource = transpile(pFileRecord, pTranspileOptions);
26
+ }
27
27
 
28
- return typescript.createSourceFile(
29
- pFileRecord.filename || "$internal-file-name",
30
- lSource,
31
- typescript.ScriptTarget.Latest,
32
- false,
33
- );
28
+ return typescript.createSourceFile(
29
+ pFileRecord.filename || "$internal-file-name",
30
+ lSource,
31
+ typescript.ScriptTarget.Latest,
32
+ false,
33
+ );
34
34
  }
35
35
 
36
36
  /**
@@ -43,14 +43,14 @@ export function getASTFromSource(pFileRecord, pTranspileOptions) {
43
43
  * @return {object} - a (typescript) AST
44
44
  */
45
45
  function getAST(pFileName, pTranspileOptions) {
46
- return getASTFromSource(
47
- {
48
- source: readFileSync(pFileName, "utf8"),
49
- extension: getExtension(pFileName),
50
- filename: pFileName,
51
- },
52
- pTranspileOptions,
53
- );
46
+ return getASTFromSource(
47
+ {
48
+ source: readFileSync(pFileName, "utf8"),
49
+ extension: getExtension(pFileName),
50
+ filename: pFileName,
51
+ },
52
+ pTranspileOptions,
53
+ );
54
54
  }
55
55
 
56
56
  /**
@@ -70,5 +70,5 @@ export const getASTCached = memoize(getAST);
70
70
  export const isAvailable = () => typescript !== false;
71
71
 
72
72
  export function clearCache() {
73
- memoizeClear(getASTCached);
73
+ memoizeClear(getASTCached);
74
74
  }
@@ -2,23 +2,23 @@ import IndexedModuleGraph from "./indexed-module-graph.mjs";
2
2
  import { moduleMatchesFilter } from "./match-facade.mjs";
3
3
 
4
4
  function getFocusModules(pModules, pFilter) {
5
- return pModules.filter((pModule) => moduleMatchesFilter(pModule, pFilter));
5
+ return pModules.filter((pModule) => moduleMatchesFilter(pModule, pFilter));
6
6
  }
7
7
 
8
8
  function tag(pModuleNamesSet) {
9
- return (pModule) => ({
10
- ...pModule,
11
- matchesFocus: pModuleNamesSet.has(pModule.source),
12
- });
9
+ return (pModule) => ({
10
+ ...pModule,
11
+ matchesFocus: pModuleNamesSet.has(pModule.source),
12
+ });
13
13
  }
14
14
 
15
15
  function scrub(pModuleNamesSet) {
16
- return (pModule) => ({
17
- ...pModule,
18
- dependencies: pModule.dependencies.filter(({ resolved }) =>
19
- pModuleNamesSet.has(resolved),
20
- ),
21
- });
16
+ return (pModule) => ({
17
+ ...pModule,
18
+ dependencies: pModule.dependencies.filter(({ resolved }) =>
19
+ pModuleNamesSet.has(resolved),
20
+ ),
21
+ });
22
22
  }
23
23
 
24
24
  /**
@@ -28,31 +28,31 @@ function scrub(pModuleNamesSet) {
28
28
  * @returns
29
29
  */
30
30
  export default function addFocus(pModules, pFilter) {
31
- if (pFilter?.path) {
32
- const lDepth = typeof pFilter.depth === "undefined" ? 1 : pFilter.depth;
33
- const lFocusedModuleNames = getFocusModules(pModules, pFilter).map(
34
- ({ source }) => source,
35
- );
36
- let lReachableModuleNamesArray = [];
37
- let lIndexedModules = new IndexedModuleGraph(pModules);
31
+ if (pFilter?.path) {
32
+ const lDepth = typeof pFilter.depth === "undefined" ? 1 : pFilter.depth;
33
+ const lFocusedModuleNames = getFocusModules(pModules, pFilter).map(
34
+ ({ source }) => source,
35
+ );
36
+ let lReachableModuleNamesArray = [];
37
+ let lIndexedModules = new IndexedModuleGraph(pModules);
38
38
 
39
- for (let lFocusedModule of lFocusedModuleNames) {
40
- lReachableModuleNamesArray = lReachableModuleNamesArray
41
- .concat(
42
- lIndexedModules.findTransitiveDependents(lFocusedModule, lDepth),
43
- )
44
- .concat(
45
- lIndexedModules.findTransitiveDependencies(lFocusedModule, lDepth),
46
- );
47
- }
39
+ for (const lFocusedModule of lFocusedModuleNames) {
40
+ lReachableModuleNamesArray = lReachableModuleNamesArray
41
+ .concat(
42
+ lIndexedModules.findTransitiveDependents(lFocusedModule, lDepth),
43
+ )
44
+ .concat(
45
+ lIndexedModules.findTransitiveDependencies(lFocusedModule, lDepth),
46
+ );
47
+ }
48
48
 
49
- const lFocusedModuleNamesSet = new Set(lFocusedModuleNames);
50
- const lReachableModuleNamesSet = new Set(lReachableModuleNamesArray);
49
+ const lFocusedModuleNamesSet = new Set(lFocusedModuleNames);
50
+ const lReachableModuleNamesSet = new Set(lReachableModuleNamesArray);
51
51
 
52
- return pModules
53
- .filter(({ source }) => lReachableModuleNamesSet.has(source))
54
- .map(scrub(lReachableModuleNamesSet))
55
- .map(tag(lFocusedModuleNamesSet));
56
- }
57
- return pModules;
52
+ return pModules
53
+ .filter(({ source }) => lReachableModuleNamesSet.has(source))
54
+ .map(scrub(lReachableModuleNamesSet))
55
+ .map(tag(lFocusedModuleNamesSet));
56
+ }
57
+ return pModules;
58
58
  }
@@ -1,40 +1,40 @@
1
1
  /* eslint-disable no-magic-numbers */
2
2
  function severity2number(pSeverity) {
3
- const lSeverity2Number = new Map([
4
- ["error", 1],
5
- ["warn", 2],
6
- ["info", 3],
7
- ["ignore", 4],
8
- ]);
3
+ const lSeverity2Number = new Map([
4
+ ["error", 1],
5
+ ["warn", 2],
6
+ ["info", 3],
7
+ ["ignore", 4],
8
+ ]);
9
9
 
10
- return lSeverity2Number.get(pSeverity) || -1;
10
+ return lSeverity2Number.get(pSeverity) || -1;
11
11
  }
12
12
 
13
13
  export function compareSeverities(pFirstSeverity, pSecondSeverity) {
14
- return Math.sign(
15
- severity2number(pFirstSeverity) - severity2number(pSecondSeverity),
16
- );
14
+ return Math.sign(
15
+ severity2number(pFirstSeverity) - severity2number(pSecondSeverity),
16
+ );
17
17
  }
18
18
 
19
19
  export function compareViolations(pFirstViolation, pSecondViolation) {
20
- return (
21
- compareSeverities(
22
- pFirstViolation.rule.severity,
23
- pSecondViolation.rule.severity,
24
- ) ||
25
- pFirstViolation.rule.name.localeCompare(pSecondViolation.rule.name) ||
26
- pFirstViolation.from.localeCompare(pSecondViolation.from) ||
27
- pFirstViolation.to.localeCompare(pSecondViolation.to)
28
- );
20
+ return (
21
+ compareSeverities(
22
+ pFirstViolation.rule.severity,
23
+ pSecondViolation.rule.severity,
24
+ ) ||
25
+ pFirstViolation.rule.name.localeCompare(pSecondViolation.rule.name) ||
26
+ pFirstViolation.from.localeCompare(pSecondViolation.from) ||
27
+ pFirstViolation.to.localeCompare(pSecondViolation.to)
28
+ );
29
29
  }
30
30
 
31
31
  export function compareRules(pLeftRule, pRightRule) {
32
- return (
33
- compareSeverities(pLeftRule.severity, pRightRule.severity) ||
34
- pLeftRule.name.localeCompare(pRightRule.name)
35
- );
32
+ return (
33
+ compareSeverities(pLeftRule.severity, pRightRule.severity) ||
34
+ pLeftRule.name.localeCompare(pRightRule.name)
35
+ );
36
36
  }
37
37
 
38
38
  export function compareModules(pLeftModule, pRightModule) {
39
- return pLeftModule.source > pRightModule.source ? 1 : -1;
39
+ return pLeftModule.source > pRightModule.source ? 1 : -1;
40
40
  }
@@ -6,31 +6,31 @@ import { uniq } from "#utl/array-util.mjs";
6
6
  */
7
7
 
8
8
  function mergeDependency(pLeftDependency, pRightDependency) {
9
- return {
10
- ...pLeftDependency,
11
- ...pRightDependency,
12
- dependencyTypes: uniq(
13
- pLeftDependency.dependencyTypes.concat(pRightDependency.dependencyTypes),
14
- ),
15
- rules: pLeftDependency.rules
16
- .concat(pRightDependency?.rules ?? [])
17
- .sort(compareRules),
18
- valid: pLeftDependency.valid && pRightDependency.valid,
19
- };
9
+ return {
10
+ ...pLeftDependency,
11
+ ...pRightDependency,
12
+ dependencyTypes: uniq(
13
+ pLeftDependency.dependencyTypes.concat(pRightDependency.dependencyTypes),
14
+ ),
15
+ rules: pLeftDependency.rules
16
+ .concat(pRightDependency?.rules ?? [])
17
+ .sort(compareRules),
18
+ valid: pLeftDependency.valid && pRightDependency.valid,
19
+ };
20
20
  }
21
21
 
22
22
  function mergeDependencies(pResolvedName, pDependencies) {
23
- let lReturnValue = {
24
- dependencyTypes: [],
25
- rules: [],
26
- valid: true,
27
- };
28
- for (const lDependency of pDependencies) {
29
- if (lDependency.resolved === pResolvedName) {
30
- lReturnValue = mergeDependency(lReturnValue, lDependency);
31
- }
32
- }
33
- return lReturnValue;
23
+ let lReturnValue = {
24
+ dependencyTypes: [],
25
+ rules: [],
26
+ valid: true,
27
+ };
28
+ for (const lDependency of pDependencies) {
29
+ if (lDependency.resolved === pResolvedName) {
30
+ lReturnValue = mergeDependency(lReturnValue, lDependency);
31
+ }
32
+ }
33
+ return lReturnValue;
34
34
  }
35
35
 
36
36
  /**
@@ -38,17 +38,17 @@ function mergeDependencies(pResolvedName, pDependencies) {
38
38
  * @returns {IDependency[]}
39
39
  */
40
40
  function consolidateDependencies(pDependencies) {
41
- const lProcessed = new Set();
42
- const lReturnValue = [];
41
+ const lProcessed = new Set();
42
+ const lReturnValue = [];
43
43
 
44
- for (const lDependency of pDependencies) {
45
- if (!lProcessed.has(lDependency.resolved)) {
46
- lReturnValue.push(mergeDependencies(lDependency.resolved, pDependencies));
47
- lProcessed.add(lDependency.resolved);
48
- }
49
- }
44
+ for (const lDependency of pDependencies) {
45
+ if (!lProcessed.has(lDependency.resolved)) {
46
+ lReturnValue.push(mergeDependencies(lDependency.resolved, pDependencies));
47
+ lProcessed.add(lDependency.resolved);
48
+ }
49
+ }
50
50
 
51
- return lReturnValue;
51
+ return lReturnValue;
52
52
  }
53
53
 
54
54
  /**
@@ -56,8 +56,8 @@ function consolidateDependencies(pDependencies) {
56
56
  * @returns {IModule}
57
57
  */
58
58
  export default function consolidateModuleDependencies(pModule) {
59
- return {
60
- ...pModule,
61
- dependencies: consolidateDependencies(pModule.dependencies),
62
- };
59
+ return {
60
+ ...pModule,
61
+ dependencies: consolidateDependencies(pModule.dependencies),
62
+ };
63
63
  }
@@ -2,45 +2,45 @@ import { compareRules } from "./compare.mjs";
2
2
  import { uniqBy } from "#utl/array-util.mjs";
3
3
 
4
4
  function mergeModule(pLeftModule, pRightModule) {
5
- return {
6
- ...pLeftModule,
7
- ...pRightModule,
8
- dependencies: uniqBy(
9
- pLeftModule.dependencies.concat(pRightModule.dependencies),
10
- (pDependency) => pDependency.resolved,
11
- ),
12
- rules: pLeftModule.rules
13
- .concat(pRightModule?.rules ?? [])
14
- .sort(compareRules),
15
- valid: pLeftModule.valid && pRightModule.valid,
16
- consolidated: pLeftModule.consolidated || pRightModule.consolidated,
17
- };
5
+ return {
6
+ ...pLeftModule,
7
+ ...pRightModule,
8
+ dependencies: uniqBy(
9
+ pLeftModule.dependencies.concat(pRightModule.dependencies),
10
+ (pDependency) => pDependency.resolved,
11
+ ),
12
+ rules: pLeftModule.rules
13
+ .concat(pRightModule?.rules ?? [])
14
+ .sort(compareRules),
15
+ valid: pLeftModule.valid && pRightModule.valid,
16
+ consolidated: pLeftModule.consolidated || pRightModule.consolidated,
17
+ };
18
18
  }
19
19
 
20
20
  function mergeModules(pSourceString, pModules) {
21
- let lReturnValue = {
22
- dependencies: [],
23
- rules: [],
24
- valid: true,
25
- };
21
+ let lReturnValue = {
22
+ dependencies: [],
23
+ rules: [],
24
+ valid: true,
25
+ };
26
26
 
27
- for (const lModule of pModules) {
28
- if (lModule.source === pSourceString) {
29
- lReturnValue = mergeModule(lReturnValue, lModule);
30
- }
31
- }
32
- return lReturnValue;
27
+ for (const lModule of pModules) {
28
+ if (lModule.source === pSourceString) {
29
+ lReturnValue = mergeModule(lReturnValue, lModule);
30
+ }
31
+ }
32
+ return lReturnValue;
33
33
  }
34
34
 
35
35
  export default function consolidateModules(pModules) {
36
- const lProcessed = new Set();
37
- const lReturnValue = [];
36
+ const lProcessed = new Set();
37
+ const lReturnValue = [];
38
38
 
39
- for (const lModule of pModules) {
40
- if (!lProcessed.has(lModule.source)) {
41
- lReturnValue.push(mergeModules(lModule.source, pModules));
42
- lProcessed.add(lModule.source);
43
- }
44
- }
45
- return lReturnValue;
39
+ for (const lModule of pModules) {
40
+ if (!lProcessed.has(lModule.source)) {
41
+ lReturnValue.push(mergeModules(lModule.source, pModules));
42
+ lProcessed.add(lModule.source);
43
+ }
44
+ }
45
+ return lReturnValue;
46
46
  }
@@ -3,22 +3,22 @@ import consolidateModules from "./consolidate-modules.mjs";
3
3
  import consolidateModuleDependencies from "./consolidate-module-dependencies.mjs";
4
4
 
5
5
  function squashDependencyToDirectory(pDependency) {
6
- return {
7
- ...pDependency,
8
- resolved: dirname(pDependency.resolved),
9
- };
6
+ return {
7
+ ...pDependency,
8
+ resolved: dirname(pDependency.resolved),
9
+ };
10
10
  }
11
11
  function squashModuleToDirectory(pModule) {
12
- return {
13
- ...pModule,
14
- source: dirname(pModule.source),
15
- consolidated: true,
16
- dependencies: pModule.dependencies.map(squashDependencyToDirectory),
17
- };
12
+ return {
13
+ ...pModule,
14
+ source: dirname(pModule.source),
15
+ consolidated: true,
16
+ dependencies: pModule.dependencies.map(squashDependencyToDirectory),
17
+ };
18
18
  }
19
19
 
20
20
  export default function consolidateToFolder(pModules) {
21
- return consolidateModules(pModules.map(squashModuleToDirectory)).map(
22
- consolidateModuleDependencies,
23
- );
21
+ return consolidateModules(pModules.map(squashModuleToDirectory)).map(
22
+ consolidateModuleDependencies,
23
+ );
24
24
  }
@@ -2,50 +2,50 @@ import consolidateModules from "./consolidate-modules.mjs";
2
2
  import consolidateModuleDependencies from "./consolidate-module-dependencies.mjs";
3
3
 
4
4
  function squashDependencyToPattern(pCollapsePattern) {
5
- return (pDependency) => {
6
- const lCollapseMatch = pDependency.resolved.match(pCollapsePattern);
5
+ return (pDependency) => {
6
+ const lCollapseMatch = pDependency.resolved.match(pCollapsePattern);
7
7
 
8
- return {
9
- ...pDependency,
10
- resolved: lCollapseMatch ? lCollapseMatch[0] : pDependency.resolved,
11
- };
12
- };
8
+ return {
9
+ ...pDependency,
10
+ resolved: lCollapseMatch ? lCollapseMatch[0] : pDependency.resolved,
11
+ };
12
+ };
13
13
  }
14
14
 
15
15
  function determineConsolidatedness(pConsolidated, pCollapseMatch, pSource) {
16
- let lReturnValue = false;
16
+ let lReturnValue = false;
17
17
 
18
- // if it was already established it's consolidated (e.g. from an earlier
19
- // consolidation step) there's no need to recalc
20
- if (pConsolidated === true) {
21
- lReturnValue = true;
22
- } else {
23
- lReturnValue = pCollapseMatch ? pCollapseMatch[0] !== pSource : false;
24
- }
25
- return lReturnValue;
18
+ // if it was already established it's consolidated (e.g. from an earlier
19
+ // consolidation step) there's no need to recalc
20
+ if (pConsolidated === true) {
21
+ lReturnValue = true;
22
+ } else {
23
+ lReturnValue = pCollapseMatch ? pCollapseMatch[0] !== pSource : false;
24
+ }
25
+ return lReturnValue;
26
26
  }
27
27
 
28
28
  function squashModuleToPattern(pCollapsePattern) {
29
- return (pModule) => {
30
- const lCollapseMatch = pModule.source.match(pCollapsePattern);
29
+ return (pModule) => {
30
+ const lCollapseMatch = pModule.source.match(pCollapsePattern);
31
31
 
32
- return {
33
- ...pModule,
34
- source: lCollapseMatch ? lCollapseMatch[0] : pModule.source,
35
- consolidated: determineConsolidatedness(
36
- pModule.consolidated,
37
- lCollapseMatch,
38
- pModule.source,
39
- ),
40
- dependencies: pModule.dependencies.map(
41
- squashDependencyToPattern(pCollapsePattern),
42
- ),
43
- };
44
- };
32
+ return {
33
+ ...pModule,
34
+ source: lCollapseMatch ? lCollapseMatch[0] : pModule.source,
35
+ consolidated: determineConsolidatedness(
36
+ pModule.consolidated,
37
+ lCollapseMatch,
38
+ pModule.source,
39
+ ),
40
+ dependencies: pModule.dependencies.map(
41
+ squashDependencyToPattern(pCollapsePattern),
42
+ ),
43
+ };
44
+ };
45
45
  }
46
46
 
47
47
  export default function consolidateToPattern(pModules, pCollapsePattern) {
48
- return consolidateModules(
49
- pModules.map(squashModuleToPattern(pCollapsePattern)),
50
- ).map(consolidateModuleDependencies);
48
+ return consolidateModules(
49
+ pModules.map(squashModuleToPattern(pCollapsePattern)),
50
+ ).map(consolidateModuleDependencies);
51
51
  }