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,79 +1,78 @@
1
1
  import { simple as walk_simple, base as walk_base } from "acorn-walk";
2
2
  import extractCommonJSDependencies from "./extract-cjs-deps.mjs";
3
3
  import {
4
- isLikelyAMDDefineOrRequire,
5
- isLikelyAMDDefine,
4
+ isLikelyAMDDefineOrRequire,
5
+ isLikelyAMDDefine,
6
6
  } from "./estree-helpers.mjs";
7
7
 
8
8
  function extractRegularAMDDependencies(pNode, pDependencies) {
9
- if (isLikelyAMDDefineOrRequire(pNode)) {
10
- const lArrayExpressionArguments = pNode.expression.arguments.filter(
11
- (pArgument) => pArgument.type === "ArrayExpression",
12
- );
9
+ if (isLikelyAMDDefineOrRequire(pNode)) {
10
+ const lArrayExpressionArguments = pNode.expression.arguments.filter(
11
+ (pArgument) => pArgument.type === "ArrayExpression",
12
+ );
13
13
 
14
- for (const lArgument of lArrayExpressionArguments) {
15
- for (const lElement of lArgument.elements) {
16
- // eslint-disable-next-line max-depth
17
- if (lElement.value && typeof lElement.value === "string") {
18
- pDependencies.push({
19
- module: lElement.value,
20
- moduleSystem: "amd",
21
- dynamic: false,
22
- exoticallyRequired: false,
23
- dependencyTypes: ["amd-define"],
24
- });
25
- }
26
- }
27
- }
28
- }
14
+ for (const lArgument of lArrayExpressionArguments) {
15
+ for (const lElement of lArgument.elements) {
16
+ // eslint-disable-next-line max-depth
17
+ if (lElement.value && typeof lElement.value === "string") {
18
+ pDependencies.push({
19
+ module: lElement.value,
20
+ moduleSystem: "amd",
21
+ dynamic: false,
22
+ exoticallyRequired: false,
23
+ dependencyTypes: ["amd-define"],
24
+ });
25
+ }
26
+ }
27
+ }
28
+ }
29
29
  }
30
30
 
31
31
  function extractCommonJSWrappers(pNode, pDependencies, pExoticRequireStrings) {
32
- if (isLikelyAMDDefine(pNode)) {
33
- pNode.expression.arguments
34
- .filter(
35
- (pArgument) =>
36
- pArgument.type === "FunctionExpression" &&
37
- pArgument.params.some(
38
- (pParameter) =>
39
- pParameter.name === "require" ||
40
- pExoticRequireStrings.includes(pParameter.name),
41
- ),
42
- )
43
- .forEach((pFunction) =>
44
- extractCommonJSDependencies(
45
- pFunction.body,
46
- pDependencies,
47
- "amd",
48
- pExoticRequireStrings,
49
- ),
50
- );
51
- }
32
+ if (isLikelyAMDDefine(pNode)) {
33
+ for (const lArgument of pNode.expression.arguments) {
34
+ if (
35
+ lArgument.type === "FunctionExpression" &&
36
+ lArgument.params.some(
37
+ (pParameter) =>
38
+ pParameter.name === "require" ||
39
+ pExoticRequireStrings.includes(pParameter.name),
40
+ )
41
+ ) {
42
+ extractCommonJSDependencies(
43
+ lArgument.body,
44
+ pDependencies,
45
+ "amd",
46
+ pExoticRequireStrings,
47
+ );
48
+ }
49
+ }
50
+ }
52
51
  }
53
52
 
54
53
  export default function extractAMDDependencies(
55
- pAST,
56
- pDependencies,
57
- pExoticRequireStrings,
54
+ pAST,
55
+ pDependencies,
56
+ pExoticRequireStrings,
58
57
  ) {
59
- walk_simple(
60
- pAST,
61
- {
62
- ExpressionStatement: (pNode) => {
63
- // module as a function (define(Array, function))
64
- // module with a name (define(string, Array, function))
65
- // 'root' require module (require(Array, function)
66
- extractRegularAMDDependencies(pNode, pDependencies);
67
- // CommonJS-wrappers:
68
- // (define(function(require, exports, module){
69
- // define(["require", ...], function(require, ...){
70
- // ... every 'require' call is a depencency
71
- // Won't work if someone decides to name the first parameter of
72
- // the function passed to the define something else from "require"
73
- extractCommonJSWrappers(pNode, pDependencies, pExoticRequireStrings);
74
- },
75
- },
76
- // see https://github.com/acornjs/acorn/issues/746
77
- walk_base,
78
- );
58
+ walk_simple(
59
+ pAST,
60
+ {
61
+ ExpressionStatement: (pNode) => {
62
+ // module as a function (define(Array, function))
63
+ // module with a name (define(string, Array, function))
64
+ // 'root' require module (require(Array, function)
65
+ extractRegularAMDDependencies(pNode, pDependencies);
66
+ // CommonJS-wrappers:
67
+ // (define(function(require, exports, module){
68
+ // define(["require", ...], function(require, ...){
69
+ // ... every 'require' call is a depencency
70
+ // Won't work if someone decides to name the first parameter of
71
+ // the function passed to the define something else from "require"
72
+ extractCommonJSWrappers(pNode, pDependencies, pExoticRequireStrings);
73
+ },
74
+ },
75
+ // see https://github.com/acornjs/acorn/issues/746
76
+ walk_base,
77
+ );
79
78
  }
@@ -1,109 +1,109 @@
1
1
  import { simple as walk_simple, base as walk_base } from "acorn-walk";
2
2
  import {
3
- firstArgumentIsAString,
4
- firstArgumentIsATemplateLiteral,
5
- isRequireOfSomeSort,
3
+ firstArgumentIsAString,
4
+ firstArgumentIsATemplateLiteral,
5
+ isRequireOfSomeSort,
6
6
  } from "./estree-helpers.mjs";
7
7
 
8
8
  function pryStringsFromArguments(pArguments) {
9
- let lReturnValue = null;
9
+ let lReturnValue = null;
10
10
 
11
- if (firstArgumentIsAString(pArguments)) {
12
- lReturnValue = pArguments[0].value;
13
- } else if (firstArgumentIsATemplateLiteral(pArguments)) {
14
- lReturnValue = pArguments[0].quasis[0].value.cooked;
15
- }
11
+ if (firstArgumentIsAString(pArguments)) {
12
+ lReturnValue = pArguments[0].value;
13
+ } else if (firstArgumentIsATemplateLiteral(pArguments)) {
14
+ lReturnValue = pArguments[0].quasis[0].value.cooked;
15
+ }
16
16
 
17
- return lReturnValue;
17
+ return lReturnValue;
18
18
  }
19
19
 
20
20
  function getRequireTypes(pModuleSystem) {
21
- return pModuleSystem === "amd" ? ["amd-require"] : ["require"];
21
+ return pModuleSystem === "amd" ? ["amd-require"] : ["require"];
22
22
  }
23
23
  function getExoticRequireTypes(pModuleSystem) {
24
- return pModuleSystem === "amd" ? ["amd-exotic-require"] : ["exotic-require"];
24
+ return pModuleSystem === "amd" ? ["amd-exotic-require"] : ["exotic-require"];
25
25
  }
26
26
 
27
27
  function getDependencyTypeAttributes(pName, pModuleSystem) {
28
- switch (pName) {
29
- case "require":
30
- return {
31
- exoticallyRequired: false,
32
- dependencyTypes: getRequireTypes(pModuleSystem),
33
- };
34
- case "process.getBuiltinModule":
35
- case "globalThis.process.getBuiltinModule":
36
- return {
37
- exoticallyRequired: false,
38
- dependencyTypes: ["process-get-builtin-module"],
39
- };
40
- default:
41
- return {
42
- exoticallyRequired: true,
43
- exoticRequire: pName,
44
- dependencyTypes: getExoticRequireTypes(pModuleSystem),
45
- };
46
- }
28
+ switch (pName) {
29
+ case "require":
30
+ return {
31
+ exoticallyRequired: false,
32
+ dependencyTypes: getRequireTypes(pModuleSystem),
33
+ };
34
+ case "process.getBuiltinModule":
35
+ case "globalThis.process.getBuiltinModule":
36
+ return {
37
+ exoticallyRequired: false,
38
+ dependencyTypes: ["process-get-builtin-module"],
39
+ };
40
+ default:
41
+ return {
42
+ exoticallyRequired: true,
43
+ exoticRequire: pName,
44
+ dependencyTypes: getExoticRequireTypes(pModuleSystem),
45
+ };
46
+ }
47
47
  }
48
48
 
49
49
  function pushRequireCallsToDependencies(
50
- pDependencies,
51
- pModuleSystem,
52
- pRequireStrings,
50
+ pDependencies,
51
+ pModuleSystem,
52
+ pRequireStrings,
53
53
  ) {
54
- return (pNode) => {
55
- for (let lName of pRequireStrings) {
56
- if (isRequireOfSomeSort(pNode, lName)) {
57
- const lModuleName = pryStringsFromArguments(pNode.arguments);
58
- if (lModuleName) {
59
- pDependencies.push({
60
- module: lModuleName,
61
- moduleSystem: pModuleSystem,
62
- dynamic: false,
63
- ...getDependencyTypeAttributes(lName, pModuleSystem),
64
- });
65
- }
66
- }
67
- }
68
- };
54
+ return (pNode) => {
55
+ for (const lName of pRequireStrings) {
56
+ if (isRequireOfSomeSort(pNode, lName)) {
57
+ const lModuleName = pryStringsFromArguments(pNode.arguments);
58
+ if (lModuleName) {
59
+ pDependencies.push({
60
+ module: lModuleName,
61
+ moduleSystem: pModuleSystem,
62
+ dynamic: false,
63
+ ...getDependencyTypeAttributes(lName, pModuleSystem),
64
+ });
65
+ }
66
+ }
67
+ }
68
+ };
69
69
  }
70
70
 
71
71
  // eslint-disable-next-line max-params
72
72
  export default function extractCommonJSDependencies(
73
- pAST,
74
- pDependencies,
75
- pModuleSystem,
76
- pExoticRequireStrings,
77
- pDetectProcessBuiltinModuleCalls,
73
+ pAST,
74
+ pDependencies,
75
+ pModuleSystem,
76
+ pExoticRequireStrings,
77
+ pDetectProcessBuiltinModuleCalls,
78
78
  ) {
79
- // var/const lalala = require('./lalala');
80
- // require('./lalala');
81
- // require('./lalala').doFunkyStuff();
82
- // require('zoinks!./wappie')
83
- // require(`./withatemplateliteral`)
84
- // when feature switched as such it will also detect
85
- // process.getBuiltinModule('fs')
86
- // globalThis.process.getBuiltinModule('path')
87
- // as well as renamed requires/ require wrappers
88
- // as passed in pExoticRequireStrings ("need", "window.require")
89
- const lRequireStrings = ["require"]
90
- .concat(
91
- pDetectProcessBuiltinModuleCalls
92
- ? ["process.getBuiltinModule", "globalThis.process.getBuiltinModule"]
93
- : [],
94
- )
95
- .concat(pExoticRequireStrings);
79
+ // var/const lalala = require('./lalala');
80
+ // require('./lalala');
81
+ // require('./lalala').doFunkyStuff();
82
+ // require('zoinks!./wappie')
83
+ // require(`./withatemplateliteral`)
84
+ // when feature switched as such it will also detect
85
+ // process.getBuiltinModule('fs')
86
+ // globalThis.process.getBuiltinModule('path')
87
+ // as well as renamed requires/ require wrappers
88
+ // as passed in pExoticRequireStrings ("need", "window.require")
89
+ const lRequireStrings = ["require"]
90
+ .concat(
91
+ pDetectProcessBuiltinModuleCalls
92
+ ? ["process.getBuiltinModule", "globalThis.process.getBuiltinModule"]
93
+ : [],
94
+ )
95
+ .concat(pExoticRequireStrings);
96
96
 
97
- walk_simple(
98
- pAST,
99
- {
100
- CallExpression: pushRequireCallsToDependencies(
101
- pDependencies,
102
- pModuleSystem,
103
- lRequireStrings,
104
- ),
105
- },
106
- // see https://github.com/acornjs/acorn/issues/746
107
- walk_base,
108
- );
97
+ walk_simple(
98
+ pAST,
99
+ {
100
+ CallExpression: pushRequireCallsToDependencies(
101
+ pDependencies,
102
+ pModuleSystem,
103
+ lRequireStrings,
104
+ ),
105
+ },
106
+ // see https://github.com/acornjs/acorn/issues/746
107
+ walk_base,
108
+ );
109
109
  }
@@ -1,67 +1,67 @@
1
1
  import { simple as walk_simple, base as walk_base } from "acorn-walk";
2
2
  import { extend } from "acorn-jsx-walk";
3
3
  import {
4
- isStringLiteral,
5
- isPlaceholderLessTemplateLiteral,
4
+ isStringLiteral,
5
+ isPlaceholderLessTemplateLiteral,
6
6
  } from "./estree-helpers.mjs";
7
7
 
8
8
  extend(walk_base);
9
9
 
10
10
  function pushImportNodeValue(pDependencies) {
11
- return (pNode) => {
12
- if (isStringLiteral(pNode.source)) {
13
- pDependencies.push({
14
- module: pNode.source.value,
15
- moduleSystem: "es6",
16
- dynamic: true,
17
- exoticallyRequired: false,
18
- dependencyTypes: ["dynamic-import"],
19
- });
20
- } else if (isPlaceholderLessTemplateLiteral(pNode.source)) {
21
- pDependencies.push({
22
- module: pNode.source.quasis[0].value.cooked,
23
- moduleSystem: "es6",
24
- dynamic: true,
25
- exoticallyRequired: false,
26
- dependencyTypes: ["dynamic-import"],
27
- });
28
- }
29
- };
11
+ return (pNode) => {
12
+ if (isStringLiteral(pNode.source)) {
13
+ pDependencies.push({
14
+ module: pNode.source.value,
15
+ moduleSystem: "es6",
16
+ dynamic: true,
17
+ exoticallyRequired: false,
18
+ dependencyTypes: ["dynamic-import"],
19
+ });
20
+ } else if (isPlaceholderLessTemplateLiteral(pNode.source)) {
21
+ pDependencies.push({
22
+ module: pNode.source.quasis[0].value.cooked,
23
+ moduleSystem: "es6",
24
+ dynamic: true,
25
+ exoticallyRequired: false,
26
+ dependencyTypes: ["dynamic-import"],
27
+ });
28
+ }
29
+ };
30
30
  }
31
31
 
32
32
  export default function extractES6Dependencies(pAST, pDependencies) {
33
- function pushImportSourceValue(pNode) {
34
- if (pNode.source && pNode.source.value) {
35
- pDependencies.push({
36
- module: pNode.source.value,
37
- moduleSystem: "es6",
38
- dynamic: false,
39
- exoticallyRequired: false,
40
- dependencyTypes: ["import"],
41
- });
42
- }
43
- }
44
- function pushExportSourceValue(pNode) {
45
- if (pNode.source && pNode.source.value) {
46
- pDependencies.push({
47
- module: pNode.source.value,
48
- moduleSystem: "es6",
49
- dynamic: false,
50
- exoticallyRequired: false,
51
- dependencyTypes: ["export"],
52
- });
53
- }
54
- }
33
+ function pushImportSourceValue(pNode) {
34
+ if (pNode.source && pNode.source.value) {
35
+ pDependencies.push({
36
+ module: pNode.source.value,
37
+ moduleSystem: "es6",
38
+ dynamic: false,
39
+ exoticallyRequired: false,
40
+ dependencyTypes: ["import"],
41
+ });
42
+ }
43
+ }
44
+ function pushExportSourceValue(pNode) {
45
+ if (pNode.source && pNode.source.value) {
46
+ pDependencies.push({
47
+ module: pNode.source.value,
48
+ moduleSystem: "es6",
49
+ dynamic: false,
50
+ exoticallyRequired: false,
51
+ dependencyTypes: ["export"],
52
+ });
53
+ }
54
+ }
55
55
 
56
- walk_simple(
57
- pAST,
58
- {
59
- ImportDeclaration: pushImportSourceValue,
60
- ImportExpression: pushImportNodeValue(pDependencies),
61
- ExportAllDeclaration: pushExportSourceValue,
62
- ExportNamedDeclaration: pushExportSourceValue,
63
- },
64
- // see https://github.com/acornjs/acorn/issues/746
65
- walk_base,
66
- );
56
+ walk_simple(
57
+ pAST,
58
+ {
59
+ ImportDeclaration: pushImportSourceValue,
60
+ ImportExpression: pushImportNodeValue(pDependencies),
61
+ ExportAllDeclaration: pushExportSourceValue,
62
+ ExportNamedDeclaration: pushExportSourceValue,
63
+ },
64
+ // see https://github.com/acornjs/acorn/issues/746
65
+ walk_base,
66
+ );
67
67
  }
@@ -1,6 +1,6 @@
1
1
  export default function extractStats(pAST) {
2
- return {
3
- topLevelStatementCount: pAST?.body?.length || 0,
4
- size: pAST?.end || 0,
5
- };
2
+ return {
3
+ topLevelStatementCount: pAST?.body?.length || 0,
4
+ size: pAST?.end || 0,
5
+ };
6
6
  }
@@ -6,38 +6,38 @@ import { getASTCached } from "./parse.mjs";
6
6
  import extractStats from "./extract-stats.mjs";
7
7
 
8
8
  export function extract(
9
- {
10
- baseDir,
11
- moduleSystems,
12
- exoticRequireStrings,
13
- detectProcessBuiltinModuleCalls,
14
- },
15
- pFileName,
16
- pTranspileOptions,
9
+ {
10
+ baseDir,
11
+ moduleSystems,
12
+ exoticRequireStrings,
13
+ detectProcessBuiltinModuleCalls,
14
+ },
15
+ pFileName,
16
+ pTranspileOptions,
17
17
  ) {
18
- let lDependencies = [];
19
- const lAST = getASTCached(join(baseDir, pFileName), pTranspileOptions);
18
+ let lDependencies = [];
19
+ const lAST = getASTCached(join(baseDir, pFileName), pTranspileOptions);
20
20
 
21
- if (moduleSystems.includes("cjs")) {
22
- extractCommonJSDeps(
23
- lAST,
24
- lDependencies,
25
- "cjs",
26
- exoticRequireStrings,
27
- detectProcessBuiltinModuleCalls,
28
- );
29
- }
30
- if (moduleSystems.includes("es6")) {
31
- extractES6Deps(lAST, lDependencies);
32
- }
33
- if (moduleSystems.includes("amd")) {
34
- extractAMDDeps(lAST, lDependencies, exoticRequireStrings);
35
- }
21
+ if (moduleSystems.includes("cjs")) {
22
+ extractCommonJSDeps(
23
+ lAST,
24
+ lDependencies,
25
+ "cjs",
26
+ exoticRequireStrings,
27
+ detectProcessBuiltinModuleCalls,
28
+ );
29
+ }
30
+ if (moduleSystems.includes("es6")) {
31
+ extractES6Deps(lAST, lDependencies);
32
+ }
33
+ if (moduleSystems.includes("amd")) {
34
+ extractAMDDeps(lAST, lDependencies, exoticRequireStrings);
35
+ }
36
36
 
37
- return lDependencies;
37
+ return lDependencies;
38
38
  }
39
39
 
40
40
  export function getStats({ baseDir }, pFileName, pTranspileOptions) {
41
- const lAST = getASTCached(join(baseDir, pFileName), pTranspileOptions);
42
- return extractStats(lAST);
41
+ const lAST = getASTCached(join(baseDir, pFileName), pTranspileOptions);
42
+ return extractStats(lAST);
43
43
  }
@@ -8,46 +8,46 @@ import getExtension from "#utl/get-extension.mjs";
8
8
 
9
9
  /** @type acorn.Options */
10
10
  const ACORN_OPTIONS = {
11
- sourceType: "module",
12
- ecmaVersion: 11,
11
+ sourceType: "module",
12
+ ecmaVersion: 11,
13
13
  };
14
14
 
15
15
  const TSCONFIG_CONSTANTS = {
16
- PRESERVE_JSX: 1,
16
+ PRESERVE_JSX: 1,
17
17
  };
18
18
  const acornJsxParser = acornParser.extend(acornJsx());
19
19
 
20
20
  function needsJSXTreatment(pFileRecord, pTranspileOptions) {
21
- return (
22
- pFileRecord.extension === ".jsx" ||
23
- (pFileRecord.extension === ".tsx" &&
24
- pTranspileOptions?.tsConfig?.options?.jsx ===
25
- TSCONFIG_CONSTANTS.PRESERVE_JSX)
26
- );
21
+ return (
22
+ pFileRecord.extension === ".jsx" ||
23
+ (pFileRecord.extension === ".tsx" &&
24
+ pTranspileOptions?.tsConfig?.options?.jsx ===
25
+ TSCONFIG_CONSTANTS.PRESERVE_JSX)
26
+ );
27
27
  }
28
28
 
29
29
  export function getASTFromSource(pFileRecord, pTranspileOptions) {
30
- const lJavaScriptSource = transpile(pFileRecord, pTranspileOptions);
30
+ const lJavaScriptSource = transpile(pFileRecord, pTranspileOptions);
31
31
 
32
- try {
33
- if (needsJSXTreatment(pFileRecord, pTranspileOptions)) {
34
- return acornJsxParser.parse(lJavaScriptSource, {
35
- ...ACORN_OPTIONS,
36
- // @ts-expect-error because ...
37
- // acornJsxParser.parse takes an acorn.Options which doesn't include
38
- // allowNamespacedObjects. acornJsx.Options doesn't include sourceType
39
- // though, so a bit rock < this code > hard place hence ignore it
40
- // type wise
41
- allowNamespacedObjects: true,
42
- });
43
- }
32
+ try {
33
+ if (needsJSXTreatment(pFileRecord, pTranspileOptions)) {
34
+ return acornJsxParser.parse(lJavaScriptSource, {
35
+ ...ACORN_OPTIONS,
36
+ // @ts-expect-error because ...
37
+ // acornJsxParser.parse takes an acorn.Options which doesn't include
38
+ // allowNamespacedObjects. acornJsx.Options doesn't include sourceType
39
+ // though, so a bit rock < this code > hard place hence ignore it
40
+ // type wise
41
+ allowNamespacedObjects: true,
42
+ });
43
+ }
44
44
 
45
- // ecmaVersion 11 necessary for acorn to understand dynamic imports
46
- // explicitly passing ecmaVersion is recommended from acorn 8
47
- return acornParse(lJavaScriptSource, ACORN_OPTIONS);
48
- } catch (pError) {
49
- return acornLooseParse(lJavaScriptSource, ACORN_OPTIONS);
50
- }
45
+ // ecmaVersion 11 necessary for acorn to understand dynamic imports
46
+ // explicitly passing ecmaVersion is recommended from acorn 8
47
+ return acornParse(lJavaScriptSource, ACORN_OPTIONS);
48
+ } catch (pError) {
49
+ return acornLooseParse(lJavaScriptSource, ACORN_OPTIONS);
50
+ }
51
51
  }
52
52
 
53
53
  /**
@@ -63,14 +63,14 @@ export function getASTFromSource(pFileRecord, pTranspileOptions) {
63
63
  * @returns {acorn.Node} the abstract syntax tree
64
64
  */
65
65
  function getAST(pFileName, pTranspileOptions) {
66
- return getASTFromSource(
67
- {
68
- source: readFileSync(pFileName, "utf8"),
69
- extension: getExtension(pFileName),
70
- filename: pFileName,
71
- },
72
- pTranspileOptions,
73
- );
66
+ return getASTFromSource(
67
+ {
68
+ source: readFileSync(pFileName, "utf8"),
69
+ extension: getExtension(pFileName),
70
+ filename: pFileName,
71
+ },
72
+ pTranspileOptions,
73
+ );
74
74
  }
75
75
 
76
76
  /**
@@ -90,5 +90,5 @@ function getAST(pFileName, pTranspileOptions) {
90
90
  export const getASTCached = memoize(getAST);
91
91
 
92
92
  export function clearCache() {
93
- memoizeClear(getASTCached);
93
+ memoizeClear(getASTCached);
94
94
  }
@@ -7,11 +7,11 @@ import { clearCache as resolveAMD_clearCache } from "./resolve/resolve-amd.mjs";
7
7
  import { clearCache as resolve_clearCache } from "./resolve/resolve.mjs";
8
8
 
9
9
  export default function clearCaches() {
10
- tscClearCache();
11
- acornClearCache();
12
- swcClearCache();
13
- externalModuleHelpers_clearCache();
14
- getManifest_clearCache();
15
- resolveAMD_clearCache();
16
- resolve_clearCache();
10
+ tscClearCache();
11
+ acornClearCache();
12
+ swcClearCache();
13
+ externalModuleHelpers_clearCache();
14
+ getManifest_clearCache();
15
+ resolveAMD_clearCache();
16
+ resolve_clearCache();
17
17
  }