@xylabs/ts-scripts-yarn3 6.5.6 → 6.5.8

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 (148) hide show
  1. package/dist/actions/build.mjs +2 -2
  2. package/dist/actions/clean-docs.mjs +3 -3
  3. package/dist/actions/clean-eslint.mjs +2 -2
  4. package/dist/actions/clean-jest.mjs +2 -2
  5. package/dist/actions/clean.mjs +2 -2
  6. package/dist/actions/compile-types.mjs +2 -2
  7. package/dist/actions/compile.mjs +2 -2
  8. package/dist/actions/copy-assets.mjs +2 -2
  9. package/dist/actions/cycle.mjs +2 -2
  10. package/dist/actions/dead.mjs +2 -2
  11. package/dist/actions/deplint/checkPackage/checkPackage.mjs +85 -103
  12. package/dist/actions/deplint/checkPackage/checkPackage.mjs.map +1 -1
  13. package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs +8 -17
  14. package/dist/actions/deplint/checkPackage/getUnlistedDependencies.mjs.map +1 -1
  15. package/dist/actions/deplint/checkPackage/getUnlistedDevDependencies.mjs +14 -5
  16. package/dist/actions/deplint/checkPackage/getUnlistedDevDependencies.mjs.map +1 -1
  17. package/dist/actions/deplint/checkPackage/getUnusedDependencies.mjs +13 -7
  18. package/dist/actions/deplint/checkPackage/getUnusedDependencies.mjs.map +1 -1
  19. package/dist/actions/deplint/checkPackage/getUnusedPeerDependencies.mjs +12 -6
  20. package/dist/actions/deplint/checkPackage/getUnusedPeerDependencies.mjs.map +1 -1
  21. package/dist/actions/deplint/checkPackage/index.mjs +85 -103
  22. package/dist/actions/deplint/checkPackage/index.mjs.map +1 -1
  23. package/dist/actions/deplint/deplint.mjs +86 -104
  24. package/dist/actions/deplint/deplint.mjs.map +1 -1
  25. package/dist/actions/deplint/findFiles.mjs +4 -14
  26. package/dist/actions/deplint/findFiles.mjs.map +1 -1
  27. package/dist/actions/deplint/getBasePackageName.mjs +5 -4
  28. package/dist/actions/deplint/getBasePackageName.mjs.map +1 -1
  29. package/dist/actions/deplint/getDependenciesFromPackageJson.mjs +2 -2
  30. package/dist/actions/deplint/getExternalImportsFromFiles.mjs +29 -40
  31. package/dist/actions/deplint/getExternalImportsFromFiles.mjs.map +1 -1
  32. package/dist/actions/deplint/getImportsFromFile.mjs +14 -11
  33. package/dist/actions/deplint/getImportsFromFile.mjs.map +1 -1
  34. package/dist/actions/deplint/index.mjs +86 -104
  35. package/dist/actions/deplint/index.mjs.map +1 -1
  36. package/dist/actions/deploy-major.mjs +4 -4
  37. package/dist/actions/deploy-minor.mjs +4 -4
  38. package/dist/actions/deploy-next.mjs +4 -4
  39. package/dist/actions/deploy.mjs +4 -4
  40. package/dist/actions/dupdeps.mjs +3 -3
  41. package/dist/actions/fix.mjs +2 -2
  42. package/dist/actions/gen-docs.mjs +2 -2
  43. package/dist/actions/gitignore-gen.mjs +2 -2
  44. package/dist/actions/gitlint-fix.mjs +1 -1
  45. package/dist/actions/index.mjs +123 -141
  46. package/dist/actions/index.mjs.map +1 -1
  47. package/dist/actions/knip.mjs +2 -2
  48. package/dist/actions/license.mjs +1 -1
  49. package/dist/actions/lint.mjs +2 -2
  50. package/dist/actions/npmignore-gen.mjs +2 -2
  51. package/dist/actions/package/clean-outputs.mjs +2 -2
  52. package/dist/actions/package/clean-typescript.mjs +2 -2
  53. package/dist/actions/package/clean.mjs +3 -3
  54. package/dist/actions/package/compile/compile.mjs +10 -10
  55. package/dist/actions/package/compile/compile.mjs.map +1 -1
  56. package/dist/actions/package/compile/compileTypes.mjs +2 -2
  57. package/dist/actions/package/compile/copyTypeFiles.mjs +1 -1
  58. package/dist/actions/package/compile/getCompilerOptions.mjs +1 -1
  59. package/dist/actions/package/compile/index.mjs +10 -10
  60. package/dist/actions/package/compile/index.mjs.map +1 -1
  61. package/dist/actions/package/compile/packageCompileTsc.mjs +2 -2
  62. package/dist/actions/package/compile/packageCompileTscTypes.mjs +2 -2
  63. package/dist/actions/package/compile/packageCompileTsup.mjs +9 -9
  64. package/dist/actions/package/compile/packageCompileTsup.mjs.map +1 -1
  65. package/dist/actions/package/copy-assets.mjs +1 -1
  66. package/dist/actions/package/gen-docs.mjs +2 -2
  67. package/dist/actions/package/index.mjs +20 -20
  68. package/dist/actions/package/index.mjs.map +1 -1
  69. package/dist/actions/package/lint.mjs +4 -4
  70. package/dist/actions/package/publint.mjs +1 -1
  71. package/dist/actions/package/recompile.mjs +13 -13
  72. package/dist/actions/package/recompile.mjs.map +1 -1
  73. package/dist/actions/publint.mjs +4 -4
  74. package/dist/actions/rebuild.mjs +2 -2
  75. package/dist/actions/recompile.mjs +2 -2
  76. package/dist/actions/recompile.mjs.map +1 -1
  77. package/dist/actions/reinstall.mjs +4 -4
  78. package/dist/actions/relint.mjs +2 -2
  79. package/dist/actions/retest.mjs +2 -2
  80. package/dist/actions/sonar.mjs +2 -2
  81. package/dist/actions/statics.mjs +3 -3
  82. package/dist/actions/test.mjs +2 -2
  83. package/dist/actions/up.mjs +2 -2
  84. package/dist/actions/updo.mjs +2 -2
  85. package/dist/actions/upplug.mjs +2 -2
  86. package/dist/actions/upyarn.mjs +2 -2
  87. package/dist/actions/yarn3only.mjs +1 -1
  88. package/dist/bin/package/build-only.mjs +10 -10
  89. package/dist/bin/package/build-only.mjs.map +1 -1
  90. package/dist/bin/package/build.mjs +10 -10
  91. package/dist/bin/package/build.mjs.map +1 -1
  92. package/dist/bin/package/clean-outputs.mjs +2 -2
  93. package/dist/bin/package/clean-typescript.mjs +2 -2
  94. package/dist/bin/package/clean.mjs +3 -3
  95. package/dist/bin/package/compile-only.mjs +10 -10
  96. package/dist/bin/package/compile-only.mjs.map +1 -1
  97. package/dist/bin/package/compile-tsup.mjs +9 -9
  98. package/dist/bin/package/compile-tsup.mjs.map +1 -1
  99. package/dist/bin/package/compile-types.mjs +2 -2
  100. package/dist/bin/package/compile.mjs +10 -10
  101. package/dist/bin/package/compile.mjs.map +1 -1
  102. package/dist/bin/package/copy-assets-cjs.mjs +1 -1
  103. package/dist/bin/package/copy-assets-esm.mjs +1 -1
  104. package/dist/bin/package/fix.mjs +4 -4
  105. package/dist/bin/package/gen-docs.mjs +2 -2
  106. package/dist/bin/package/lint.mjs +4 -4
  107. package/dist/bin/package/publint.mjs +1 -1
  108. package/dist/bin/package/recompile.mjs +13 -13
  109. package/dist/bin/package/recompile.mjs.map +1 -1
  110. package/dist/bin/package/relint.mjs +4 -4
  111. package/dist/bin/xy.mjs +104 -122
  112. package/dist/bin/xy.mjs.map +1 -1
  113. package/dist/index.mjs +126 -144
  114. package/dist/index.mjs.map +1 -1
  115. package/dist/lib/createBuildConfig.mjs +1 -1
  116. package/dist/lib/deleteGlob.mjs +1 -1
  117. package/dist/lib/dependencies/DuplicateDetector.mjs +1 -1
  118. package/dist/lib/dependencies/detectDuplicateDependencies.mjs +2 -2
  119. package/dist/lib/dependencies/index.mjs +2 -2
  120. package/dist/lib/file/fileLines.mjs +1 -1
  121. package/dist/lib/file/index.mjs +2 -2
  122. package/dist/lib/file/tryReadFileSync.mjs +1 -1
  123. package/dist/lib/generateIgnoreFiles.mjs +2 -2
  124. package/dist/lib/index.mjs +13 -13
  125. package/dist/lib/parsedPackageJSON.mjs +1 -1
  126. package/dist/lib/runSteps.mjs +2 -2
  127. package/dist/lib/runStepsAsync.mjs +2 -2
  128. package/dist/lib/runXy.mjs +2 -2
  129. package/dist/lib/yarn/index.mjs +2 -2
  130. package/dist/lib/yarn/isYarnVersionOrGreater.mjs +1 -1
  131. package/dist/lib/yarn/workspace/index.mjs +1 -1
  132. package/dist/lib/yarn/workspace/yarnWorkspace.mjs +1 -1
  133. package/dist/lib/yarn/workspace/yarnWorkspaces.mjs +1 -1
  134. package/dist/loadPackageConfig.mjs +1 -1
  135. package/dist/xy/index.mjs +104 -122
  136. package/dist/xy/index.mjs.map +1 -1
  137. package/dist/xy/xy.mjs +104 -122
  138. package/dist/xy/xy.mjs.map +1 -1
  139. package/dist/xy/xyBuildCommands.mjs +6 -6
  140. package/dist/xy/xyBuildCommands.mjs.map +1 -1
  141. package/dist/xy/xyCommonCommands.mjs +8 -8
  142. package/dist/xy/xyDeployCommands.mjs +7 -7
  143. package/dist/xy/xyInstallCommands.mjs +9 -9
  144. package/dist/xy/xyLintCommands.mjs +90 -108
  145. package/dist/xy/xyLintCommands.mjs.map +1 -1
  146. package/package.json +10 -9
  147. package/dist/actions/deplint/checkPackage/getTypesInDependencies.mjs +0 -19
  148. package/dist/actions/deplint/checkPackage/getTypesInDependencies.mjs.map +0 -1
@@ -61,8 +61,8 @@ var safeExitAsync = async (func, exitOnFail = true) => {
61
61
  };
62
62
 
63
63
  // src/lib/runStepsAsync.ts
64
- import { spawn } from "node:child_process";
65
- import { existsSync } from "node:fs";
64
+ import { spawn } from "child_process";
65
+ import { existsSync } from "fs";
66
66
  import chalk3 from "chalk";
67
67
  var runStepAsync = (name, step, exitOnFail = true, message) => {
68
68
  return new Promise((resolve) => {
@@ -1,9 +1,9 @@
1
1
  // src/actions/clean-docs.ts
2
- import path from "node:path";
2
+ import path from "path";
3
3
  import chalk from "chalk";
4
4
 
5
5
  // src/lib/deleteGlob.ts
6
- import fs from "node:fs";
6
+ import fs from "fs";
7
7
  import { glob } from "glob";
8
8
  var deleteGlob = (globPath) => {
9
9
  const files = glob.sync(globPath);
@@ -13,7 +13,7 @@ var deleteGlob = (globPath) => {
13
13
  };
14
14
 
15
15
  // src/lib/yarn/workspace/yarnWorkspaces.ts
16
- import { spawnSync } from "node:child_process";
16
+ import { spawnSync } from "child_process";
17
17
  var yarnWorkspaces = () => {
18
18
  const result = spawnSync("yarn", ["workspaces", "list", "--json", "--recursive"], { encoding: "utf8", shell: true });
19
19
  if (result.error) {
@@ -1,9 +1,9 @@
1
1
  // src/actions/clean-eslint.ts
2
- import path from "node:path";
2
+ import path from "path";
3
3
  import chalk from "chalk";
4
4
 
5
5
  // src/lib/deleteGlob.ts
6
- import fs from "node:fs";
6
+ import fs from "fs";
7
7
  import { glob } from "glob";
8
8
  var deleteGlob = (globPath) => {
9
9
  const files = glob.sync(globPath);
@@ -58,8 +58,8 @@ var safeExit = (func, exitOnFail = true) => {
58
58
  };
59
59
 
60
60
  // src/lib/runSteps.ts
61
- import { spawnSync } from "node:child_process";
62
- import { existsSync } from "node:fs";
61
+ import { spawnSync } from "child_process";
62
+ import { existsSync } from "fs";
63
63
  import chalk3 from "chalk";
64
64
  var runSteps = (name, steps, exitOnFail = true, messages) => {
65
65
  return safeExit(() => {
@@ -58,8 +58,8 @@ var safeExitAsync = async (func, exitOnFail = true) => {
58
58
  };
59
59
 
60
60
  // src/lib/runStepsAsync.ts
61
- import { spawn } from "node:child_process";
62
- import { existsSync } from "node:fs";
61
+ import { spawn } from "child_process";
62
+ import { existsSync } from "fs";
63
63
  import chalk3 from "chalk";
64
64
  var runStepAsync = (name, step, exitOnFail = true, message) => {
65
65
  return new Promise((resolve) => {
@@ -61,8 +61,8 @@ var safeExit = (func, exitOnFail = true) => {
61
61
  };
62
62
 
63
63
  // src/lib/runSteps.ts
64
- import { spawnSync } from "node:child_process";
65
- import { existsSync } from "node:fs";
64
+ import { spawnSync } from "child_process";
65
+ import { existsSync } from "fs";
66
66
  import chalk3 from "chalk";
67
67
  var runSteps = (name, steps, exitOnFail = true, messages) => {
68
68
  return safeExit(() => {
@@ -61,8 +61,8 @@ var safeExit = (func, exitOnFail = true) => {
61
61
  };
62
62
 
63
63
  // src/lib/runSteps.ts
64
- import { spawnSync } from "node:child_process";
65
- import { existsSync } from "node:fs";
64
+ import { spawnSync } from "child_process";
65
+ import { existsSync } from "fs";
66
66
  import chalk3 from "chalk";
67
67
  var runSteps = (name, steps, exitOnFail = true, messages) => {
68
68
  return safeExit(() => {
@@ -1,10 +1,10 @@
1
1
  // src/actions/copy-assets.ts
2
- import path from "node:path/posix";
2
+ import path from "path/posix";
3
3
  import chalk from "chalk";
4
4
  import cpy from "cpy";
5
5
 
6
6
  // src/lib/yarn/workspace/yarnWorkspaces.ts
7
- import { spawnSync } from "node:child_process";
7
+ import { spawnSync } from "child_process";
8
8
  var yarnWorkspaces = () => {
9
9
  const result = spawnSync("yarn", ["workspaces", "list", "--json", "--recursive"], { encoding: "utf8", shell: true });
10
10
  if (result.error) {
@@ -61,8 +61,8 @@ var safeExit = (func, exitOnFail = true) => {
61
61
  };
62
62
 
63
63
  // src/lib/runSteps.ts
64
- import { spawnSync } from "node:child_process";
65
- import { existsSync } from "node:fs";
64
+ import { spawnSync } from "child_process";
65
+ import { existsSync } from "fs";
66
66
  import chalk3 from "chalk";
67
67
  var runSteps = (name, steps, exitOnFail = true, messages) => {
68
68
  return safeExit(() => {
@@ -58,8 +58,8 @@ var safeExit = (func, exitOnFail = true) => {
58
58
  };
59
59
 
60
60
  // src/lib/runSteps.ts
61
- import { spawnSync } from "node:child_process";
62
- import { existsSync } from "node:fs";
61
+ import { spawnSync } from "child_process";
62
+ import { existsSync } from "fs";
63
63
  import chalk3 from "chalk";
64
64
  var runSteps = (name, steps, exitOnFail = true, messages) => {
65
65
  return safeExit(() => {
@@ -7,25 +7,15 @@ function findFilesByGlob(cwd, pattern) {
7
7
  // src/actions/deplint/findFiles.ts
8
8
  function findFiles(path3) {
9
9
  const allSourceInclude = ["./src/**/*.{ts,tsx}"];
10
- const allDistInclude = ["./dist/**/*.d.ts"];
11
- const prodExcludeEndswith = [".spec.ts", ".stories.tsx"];
12
- const prodExcludeIncludes = ["/spec/", "/stories/", "/scripts/"];
13
- const allSourceFiles = allSourceInclude.flatMap((pattern) => findFilesByGlob(path3, pattern));
14
- const allDistFiles = allDistInclude.flatMap((pattern) => findFilesByGlob(path3, pattern));
15
- const prodSourceFiles = allSourceFiles.filter((file) => !prodExcludeEndswith.some((ext) => file.endsWith(ext)) && !prodExcludeIncludes.some((excl) => file.includes(excl)));
16
- const prodDistFiles = allDistFiles.filter((file) => !prodExcludeEndswith.some((ext) => file.endsWith(ext)) && !prodExcludeIncludes.some((excl) => file.includes(excl)));
17
- const devSourceFiles = allSourceFiles.filter((file) => !prodSourceFiles.includes(file));
18
- return {
19
- allSourceFiles,
20
- prodSourceFiles,
21
- devSourceFiles,
22
- prodDistFiles
23
- };
10
+ const allDistInclude = ["./dist/**/*.d.ts", "./dist/**/*.{mjs,js,cjs}"];
11
+ const srcFiles = allSourceInclude.flatMap((pattern) => findFilesByGlob(path3, pattern));
12
+ const distFiles = allDistInclude.flatMap((pattern) => findFilesByGlob(path3, pattern));
13
+ return { srcFiles, distFiles };
24
14
  }
25
15
 
26
16
  // src/actions/deplint/getDependenciesFromPackageJson.ts
27
- import fs from "node:fs";
28
- import path from "node:path";
17
+ import fs from "fs";
18
+ import path from "path";
29
19
  function getDependenciesFromPackageJson(packageJsonPath) {
30
20
  const packageJsonFullPath = path.resolve(packageJsonPath);
31
21
  const rawContent = fs.readFileSync(packageJsonFullPath, "utf8");
@@ -41,27 +31,30 @@ function getDependenciesFromPackageJson(packageJsonPath) {
41
31
  }
42
32
 
43
33
  // src/actions/deplint/getImportsFromFile.ts
44
- import fs2 from "node:fs";
45
- import path2 from "node:path";
34
+ import fs2 from "fs";
35
+ import path2 from "path";
46
36
  import ts from "typescript";
47
37
 
48
38
  // src/actions/deplint/getBasePackageName.ts
49
39
  function getBasePackageName(importName) {
50
- if (importName.startsWith("@")) {
51
- const parts = importName.split("/");
52
- return parts.length >= 2 ? `${parts[0]}/${parts[1]}` : importName;
40
+ const importNameScrubbed = importName.replaceAll('"', "").trim();
41
+ if (importNameScrubbed.startsWith("@")) {
42
+ const parts = importNameScrubbed.split("/");
43
+ return parts.length >= 2 ? `${parts[0]}/${parts[1]}` : importNameScrubbed;
53
44
  }
54
- return importName.split("/")[0];
45
+ return importNameScrubbed.split("/")[0];
55
46
  }
56
47
 
57
48
  // src/actions/deplint/getImportsFromFile.ts
58
49
  function getImportsFromFile(filePath, importPaths, typeImportPaths) {
59
50
  const sourceCode = fs2.readFileSync(filePath, "utf8");
51
+ const isMjsFile = filePath.endsWith(".mjs");
60
52
  const sourceFile = ts.createSourceFile(
61
53
  path2.basename(filePath),
62
54
  sourceCode,
63
55
  ts.ScriptTarget.Latest,
64
- true
56
+ true,
57
+ isMjsFile ? ts.ScriptKind.JS : void 0
65
58
  );
66
59
  const imports = [];
67
60
  const typeImports = [];
@@ -70,8 +63,8 @@ function getImportsFromFile(filePath, importPaths, typeImportPaths) {
70
63
  if (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) {
71
64
  const moduleSpecifier = node.moduleSpecifier?.getFullText();
72
65
  const isTypeImport = ts.isImportDeclaration(node) ? node.importClause?.isTypeOnly ?? false : false;
73
- if (moduleSpecifier) {
74
- const trimmed = moduleSpecifier.split("'").at(1) ?? moduleSpecifier;
66
+ if (typeof moduleSpecifier === "string") {
67
+ const trimmed = moduleSpecifier.replaceAll("'", "").replaceAll('"', "").trim();
75
68
  if (isTypeImport || isDeclarationFile) {
76
69
  typeImports.push(trimmed);
77
70
  } else {
@@ -92,11 +85,11 @@ function getImportsFromFile(filePath, importPaths, typeImportPaths) {
92
85
  const cleanedImports = imports.filter((imp) => !importsStartsWithExcludes.some((exc) => imp.startsWith(exc))).map(getBasePackageName);
93
86
  const cleanedTypeImports = typeImports.filter((imp) => !importsStartsWithExcludes.some((exc) => imp.startsWith(exc))).map(getBasePackageName);
94
87
  for (const imp of cleanedImports) {
95
- importPaths[imp] = importPaths[imp] || [];
88
+ importPaths[imp] = importPaths[imp] ?? [];
96
89
  importPaths[imp].push(filePath);
97
90
  }
98
91
  for (const imp of cleanedTypeImports) {
99
- typeImportPaths[imp] = typeImportPaths[imp] || [];
92
+ typeImportPaths[imp] = typeImportPaths[imp] ?? [];
100
93
  typeImportPaths[imp].push(filePath);
101
94
  }
102
95
  return [cleanedImports, cleanedTypeImports];
@@ -107,117 +100,115 @@ var internalImportPrefixes = [".", "#", "node:"];
107
100
  var removeInternalImports = (imports) => {
108
101
  return imports.filter((imp) => !internalImportPrefixes.some((prefix) => imp.startsWith(prefix)));
109
102
  };
110
- function getExternalImportsFromFiles({
111
- prodSourceFiles,
112
- devSourceFiles,
113
- prodDistFiles
114
- }) {
115
- const prodImportPaths = {};
116
- const prodTypeImportPaths = {};
117
- const prodImportPairs = prodSourceFiles.map((path3) => getImportsFromFile(path3, prodImportPaths, prodTypeImportPaths));
118
- const prodDistImportPairs = prodDistFiles.map((path3) => getImportsFromFile(path3, prodImportPaths, prodTypeImportPaths));
119
- const prodImports = prodImportPairs.flatMap((pair) => pair[0]);
120
- const prodDistImports = prodDistImportPairs.flatMap((pair) => pair[1]);
121
- const devImportPaths = {};
122
- const devTypeImportPaths = {};
123
- const devImportPairs = devSourceFiles.map((path3) => getImportsFromFile(path3, devImportPaths, devTypeImportPaths));
124
- const devImports = devImportPairs.flatMap((pair) => pair[0]);
125
- const devTypeImports = devImportPairs.flatMap((pair) => pair[1]);
126
- const externalProdImports = removeInternalImports(prodImports);
127
- const externalProdTypeImports = removeInternalImports(prodDistImports);
128
- const externalDevImports = removeInternalImports(devImports);
103
+ function getExternalImportsFromFiles({ srcFiles, distFiles }) {
104
+ const srcImportPaths = {};
105
+ const distImportPaths = {};
106
+ for (const path3 of srcFiles) getImportsFromFile(path3, srcImportPaths, srcImportPaths).flat();
107
+ for (const path3 of distFiles) getImportsFromFile(path3, distImportPaths, distImportPaths).flat();
108
+ const srcImports = Object.keys(srcImportPaths);
109
+ const distImports = Object.keys(distImportPaths);
110
+ const externalSrcImports = removeInternalImports(srcImports);
111
+ const externalDistImports = removeInternalImports(distImports);
129
112
  return {
130
- prodImports,
131
- devImports,
132
- prodImportPaths,
133
- prodTypeImportPaths,
134
- devImportPaths,
135
- externalProdImports,
136
- externalDevImports,
137
- prodDistImports,
138
- devTypeImports,
139
- externalProdTypeImports
113
+ srcImports,
114
+ srcImportPaths,
115
+ externalSrcImports,
116
+ distImports,
117
+ distImportPaths,
118
+ externalDistImports
140
119
  };
141
120
  }
142
121
 
143
122
  // src/actions/deplint/checkPackage/getUnlistedDependencies.ts
144
123
  import chalk from "chalk";
145
- function getUnlistedDependencies({ name }, { dependencies, peerDependencies }, {
146
- externalProdTypeImports,
147
- prodTypeImportPaths,
148
- externalProdImports,
149
- prodImportPaths
150
- }) {
124
+ function getUnlistedDependencies({ name, location }, { dependencies, peerDependencies }, { externalDistImports, distImportPaths }) {
151
125
  let unlistedDependencies = 0;
152
- for (const imp of externalProdTypeImports) {
153
- if (!dependencies.includes(imp) && !peerDependencies.includes(imp) && !dependencies.includes(`@types/${imp}`) && !peerDependencies.includes(`@types/${imp}`)) {
154
- unlistedDependencies++;
155
- console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`);
156
- console.log(` ${prodTypeImportPaths[imp].join("\n")}`);
157
- console.log("");
158
- }
159
- }
160
- for (const imp of externalProdImports) {
126
+ for (const imp of externalDistImports) {
161
127
  if (!dependencies.includes(imp) && !peerDependencies.includes(imp)) {
162
128
  unlistedDependencies++;
163
129
  console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`);
164
- console.log(` ${prodImportPaths[imp].join("\n")}`);
165
- console.log("");
130
+ console.log(` ${distImportPaths[imp].join("\n ")}`);
166
131
  }
167
132
  }
133
+ if (unlistedDependencies > 0) {
134
+ const packageLocation = `${location}/package.json`;
135
+ console.log(` ${chalk.yellow(packageLocation)}
136
+ `);
137
+ }
168
138
  return unlistedDependencies;
169
139
  }
170
140
 
171
141
  // src/actions/deplint/checkPackage/getUnlistedDevDependencies.ts
172
142
  import chalk2 from "chalk";
173
- function getUnlistedDevDependencies({ name }, {
143
+ function getUnlistedDevDependencies({ name, location }, {
174
144
  devDependencies,
175
145
  dependencies,
176
146
  peerDependencies
177
- }, { devImportPaths, externalDevImports }) {
147
+ }, {
148
+ srcImportPaths,
149
+ externalSrcImports,
150
+ distImports
151
+ }) {
178
152
  let unlistedDevDependencies = 0;
179
- for (const imp of externalDevImports) {
180
- if (!devDependencies.includes(imp) && !dependencies.includes(imp) && !peerDependencies.includes(imp)) {
153
+ for (const imp of externalSrcImports) {
154
+ if (!distImports.includes(imp) && !dependencies.includes(imp) && !peerDependencies.includes(imp) && !devDependencies.includes(imp)) {
181
155
  unlistedDevDependencies++;
182
156
  console.log(`[${chalk2.blue(name)}] Missing devDependency in package.json: ${chalk2.red(imp)}`);
183
- console.log(` Found in: ${devImportPaths[imp].join(", ")}`);
157
+ console.log(` ${srcImportPaths[imp].join("\n ")}`);
184
158
  }
185
159
  }
160
+ if (unlistedDevDependencies > 0) {
161
+ const packageLocation = `${location}/package.json`;
162
+ console.log(` ${chalk2.yellow(packageLocation)}
163
+ `);
164
+ }
186
165
  return unlistedDevDependencies;
187
166
  }
188
167
 
189
168
  // src/actions/deplint/checkPackage/getUnusedDependencies.ts
190
169
  import chalk3 from "chalk";
191
170
  function getUnusedDependencies({ name, location }, { dependencies }, {
192
- externalProdImports,
193
- externalProdTypeImports
171
+ externalDistImports,
172
+ externalSrcImports
194
173
  }) {
195
174
  let unusedDependencies = 0;
196
175
  for (const dep of dependencies) {
197
- if (!externalProdImports.includes(dep) && !externalProdTypeImports.includes(dep)) {
176
+ if (!externalDistImports.includes(dep)) {
198
177
  unusedDependencies++;
199
- console.log(`[${chalk3.blue(name)}] Unused dependency in package.json: ${chalk3.red(dep)}`);
200
- console.log(` ${location}/package.json
201
- `);
202
- console.log("");
178
+ if (externalSrcImports.includes(dep)) {
179
+ console.log(`[${chalk3.blue(name)}] dependency should be devDependency in package.json: ${chalk3.red(dep)}`);
180
+ } else {
181
+ console.log(`[${chalk3.blue(name)}] Unused dependency in package.json: ${chalk3.red(dep)}`);
182
+ }
203
183
  }
204
184
  }
185
+ if (unusedDependencies > 0) {
186
+ const packageLocation = `${location}/package.json`;
187
+ console.log(` ${chalk3.yellow(packageLocation)}
188
+ `);
189
+ }
205
190
  return unusedDependencies;
206
191
  }
207
192
 
208
193
  // src/actions/deplint/checkPackage/getUnusedPeerDependencies.ts
209
194
  import chalk4 from "chalk";
210
- function getUnusedPeerDependencies({ name, location }, { peerDependencies }, { externalProdImports, externalProdTypeImports }) {
195
+ function getUnusedPeerDependencies({ name, location }, { peerDependencies, dependencies }, { externalDistImports }) {
211
196
  let unusedDependencies = 0;
212
197
  for (const dep of peerDependencies) {
213
- if (!externalProdImports.includes(dep) && !externalProdTypeImports.includes(dep)) {
198
+ if (!externalDistImports.includes(dep)) {
214
199
  unusedDependencies++;
215
- console.log(`[${chalk4.blue(name)}] Unused peerDependency in package.json: ${chalk4.red(dep)}`);
216
- console.log(` ${location}/package.json
217
- `);
218
- console.log("");
200
+ if (dependencies.includes(dep)) {
201
+ console.log(`[${chalk4.blue(name)}] Unused peerDependency [already a dependency] in package.json: ${chalk4.red(dep)}`);
202
+ } else {
203
+ console.log(`[${chalk4.blue(name)}] Unused peerDependency in package.json: ${chalk4.red(dep)}`);
204
+ }
219
205
  }
220
206
  }
207
+ if (unusedDependencies > 0) {
208
+ const packageLocation = `${location}/package.json`;
209
+ console.log(` ${chalk4.yellow(packageLocation)}
210
+ `);
211
+ }
221
212
  return unusedDependencies;
222
213
  }
223
214
 
@@ -229,26 +220,17 @@ function checkPackage({
229
220
  devDeps = false,
230
221
  peerDeps = false
231
222
  }) {
232
- const {
233
- prodSourceFiles,
234
- devSourceFiles,
235
- prodDistFiles
236
- } = findFiles(location);
223
+ const { srcFiles, distFiles } = findFiles(location);
237
224
  const checkDeps = deps || !(deps || devDeps || peerDeps);
238
225
  const checkDevDeps = devDeps || !(deps || devDeps || peerDeps);
239
226
  const checkPeerDeps = peerDeps;
240
- const sourceParams = getExternalImportsFromFiles({
241
- prodSourceFiles,
242
- devSourceFiles,
243
- prodDistFiles
244
- });
227
+ const sourceParams = getExternalImportsFromFiles({ srcFiles, distFiles });
245
228
  const packageParams = getDependenciesFromPackageJson(`${location}/package.json`);
246
229
  const unlistedDependencies = checkDeps ? getUnlistedDependencies({ name, location }, packageParams, sourceParams) : 0;
247
230
  const unusedDependencies = checkDeps ? getUnusedDependencies({ name, location }, packageParams, sourceParams) : 0;
248
- const typesInDependencies = 0;
249
231
  const unlistedDevDependencies = checkDevDeps ? getUnlistedDevDependencies({ name, location }, packageParams, sourceParams) : 0;
250
232
  const unusedPeerDependencies = checkPeerDeps ? getUnusedPeerDependencies({ name, location }, packageParams, sourceParams) : 0;
251
- const totalErrors = unlistedDependencies + unlistedDevDependencies + unusedDependencies + typesInDependencies + unusedPeerDependencies;
233
+ const totalErrors = unlistedDependencies + unlistedDevDependencies + unusedDependencies + unusedPeerDependencies;
252
234
  return totalErrors;
253
235
  }
254
236
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/actions/deplint/findFilesByGlob.ts","../../../../src/actions/deplint/findFiles.ts","../../../../src/actions/deplint/getDependenciesFromPackageJson.ts","../../../../src/actions/deplint/getImportsFromFile.ts","../../../../src/actions/deplint/getBasePackageName.ts","../../../../src/actions/deplint/getExternalImportsFromFiles.ts","../../../../src/actions/deplint/checkPackage/getUnlistedDependencies.ts","../../../../src/actions/deplint/checkPackage/getUnlistedDevDependencies.ts","../../../../src/actions/deplint/checkPackage/getUnusedDependencies.ts","../../../../src/actions/deplint/checkPackage/getUnusedPeerDependencies.ts","../../../../src/actions/deplint/checkPackage/checkPackage.ts"],"sourcesContent":["import { globSync } from 'glob'\n\nexport function findFilesByGlob(cwd: string, pattern: string) {\n return globSync(pattern, { cwd, absolute: true })\n}\n","import { findFilesByGlob } from './findFilesByGlob.ts'\n\nexport function findFiles(path: string) {\n const allSourceInclude = ['./src/**/*.{ts,tsx}']\n const allDistInclude = ['./dist/**/*.d.ts']\n const prodExcludeEndswith = ['.spec.ts', '.stories.tsx']\n const prodExcludeIncludes = ['/spec/', '/stories/', '/scripts/']\n const allSourceFiles = allSourceInclude.flatMap(pattern => findFilesByGlob(path, pattern))\n const allDistFiles = allDistInclude.flatMap(pattern => findFilesByGlob(path, pattern))\n\n const prodSourceFiles = allSourceFiles.filter(file => !prodExcludeEndswith.some(ext => file.endsWith(ext))\n && !prodExcludeIncludes.some(excl => file.includes(excl)))\n\n const prodDistFiles = allDistFiles.filter(file => !prodExcludeEndswith.some(ext => file.endsWith(ext))\n && !prodExcludeIncludes.some(excl => file.includes(excl)))\n\n const devSourceFiles = allSourceFiles.filter(file => !prodSourceFiles.includes(file))\n return {\n allSourceFiles, prodSourceFiles, devSourceFiles, prodDistFiles,\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nexport function getDependenciesFromPackageJson(packageJsonPath: string) {\n const packageJsonFullPath = path.resolve(packageJsonPath)\n const rawContent = fs.readFileSync(packageJsonFullPath, 'utf8')\n const packageJson = JSON.parse(rawContent)\n\n const dependencies = packageJson.dependencies\n ? Object.keys(packageJson.dependencies)\n : []\n\n const devDependencies = packageJson.devDependencies\n ? Object.keys(packageJson.devDependencies)\n : []\n\n const peerDependencies = packageJson.peerDependencies\n ? Object.keys(packageJson.peerDependencies)\n : []\n\n return {\n dependencies, devDependencies, peerDependencies,\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport ts from 'typescript'\n\nimport { getBasePackageName } from './getBasePackageName.ts'\n\nexport function getImportsFromFile(filePath: string, importPaths: Record<string, string[]>, typeImportPaths: Record<string, string[]>) {\n const sourceCode = fs.readFileSync(filePath, 'utf8')\n\n const sourceFile = ts.createSourceFile(\n path.basename(filePath),\n sourceCode,\n ts.ScriptTarget.Latest,\n true,\n )\n\n const imports: string[] = []\n const typeImports: string[] = []\n\n const isDeclarationFile = filePath.endsWith('.d.ts')\n\n function visit(node: ts.Node) {\n if (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) {\n const moduleSpecifier = (node.moduleSpecifier)?.getFullText()\n const isTypeImport = ts.isImportDeclaration(node) ? (node.importClause?.isTypeOnly ?? false) : false\n if (moduleSpecifier) {\n const trimmed = moduleSpecifier.split(\"'\").at(1) ?? moduleSpecifier\n // we are determining if the type import is being imported in an exported d.ts file\n if (isTypeImport || isDeclarationFile) {\n typeImports.push(trimmed)\n } else {\n imports.push(trimmed)\n }\n }\n } else if (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword) {\n const [arg] = node.arguments\n if (ts.isStringLiteral(arg)) {\n const trimmed = arg.text\n imports.push(trimmed)\n }\n }\n ts.forEachChild(node, visit)\n }\n\n visit(sourceFile)\n\n const importsStartsWithExcludes = ['.', '#', 'node:']\n\n const cleanedImports = imports.filter(imp => !importsStartsWithExcludes.some(exc => imp.startsWith(exc))).map(getBasePackageName)\n const cleanedTypeImports = typeImports.filter(imp => !importsStartsWithExcludes.some(exc => imp.startsWith(exc))).map(getBasePackageName)\n\n for (const imp of cleanedImports) {\n importPaths[imp] = importPaths[imp] || []\n importPaths[imp].push(filePath)\n }\n\n for (const imp of cleanedTypeImports) {\n typeImportPaths[imp] = typeImportPaths[imp] || []\n typeImportPaths[imp].push(filePath)\n }\n\n return [cleanedImports, cleanedTypeImports]\n}\n","export function getBasePackageName(importName: string) {\n if (importName.startsWith('@')) {\n const parts = importName.split('/')\n return parts.length >= 2 ? `${parts[0]}/${parts[1]}` : importName\n }\n return importName.split('/')[0]\n}\n","import { getImportsFromFile } from './getImportsFromFile.ts'\n\nconst internalImportPrefixes = ['.', '#', 'node:']\n\nconst removeInternalImports = (imports: string[]) => {\n return imports.filter(imp => !internalImportPrefixes.some(prefix => imp.startsWith(prefix)))\n}\n\nexport function getExternalImportsFromFiles({\n prodSourceFiles, devSourceFiles, prodDistFiles,\n}: { devSourceFiles: string[]; prodDistFiles: string []; prodSourceFiles: string[] }) {\n const prodImportPaths: Record<string, string[]> = {}\n const prodTypeImportPaths: Record<string, string[]> = {}\n const prodImportPairs = prodSourceFiles.map(path => getImportsFromFile(path, prodImportPaths, prodTypeImportPaths))\n const prodDistImportPairs = prodDistFiles.map(path => getImportsFromFile(path, prodImportPaths, prodTypeImportPaths))\n const prodImports = prodImportPairs.flatMap(pair => pair[0])\n const prodDistImports = prodDistImportPairs.flatMap(pair => pair[1])\n\n const devImportPaths: Record<string, string[]> = {}\n const devTypeImportPaths: Record<string, string[]> = {}\n const devImportPairs = devSourceFiles.map(path => getImportsFromFile(path, devImportPaths, devTypeImportPaths))\n const devImports = devImportPairs.flatMap(pair => pair[0])\n const devTypeImports = devImportPairs.flatMap(pair => pair[1])\n\n const externalProdImports = removeInternalImports(prodImports)\n const externalProdTypeImports = removeInternalImports(prodDistImports)\n const externalDevImports = removeInternalImports(devImports)\n return {\n prodImports,\n devImports,\n prodImportPaths,\n prodTypeImportPaths,\n devImportPaths,\n externalProdImports,\n externalDevImports,\n prodDistImports,\n devTypeImports,\n externalProdTypeImports,\n }\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDependencies({ name }: Workspace, { dependencies, peerDependencies }: CheckPackageParams, {\n externalProdTypeImports, prodTypeImportPaths, externalProdImports, prodImportPaths,\n}: CheckSourceParams) {\n let unlistedDependencies = 0\n\n // check production type imports\n for (const imp of externalProdTypeImports) {\n if (!dependencies.includes(imp) && !peerDependencies.includes(imp) && !dependencies.includes(`@types/${imp}`)\n && !peerDependencies.includes(`@types/${imp}`)) {\n unlistedDependencies++\n console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${prodTypeImportPaths[imp].join('\\n')}`)\n console.log('')\n }\n }\n\n // check production imports\n for (const imp of externalProdImports) {\n if (!dependencies.includes(imp) && !peerDependencies.includes(imp)) {\n unlistedDependencies++\n console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${prodImportPaths[imp].join('\\n')}`)\n console.log('')\n }\n }\n return unlistedDependencies\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDevDependencies(\n { name }: Workspace,\n {\n devDependencies, dependencies, peerDependencies,\n }: CheckPackageParams,\n { devImportPaths, externalDevImports }: CheckSourceParams,\n) {\n let unlistedDevDependencies = 0\n for (const imp of externalDevImports) {\n if (!devDependencies.includes(imp) && !dependencies.includes(imp) && !peerDependencies.includes(imp)) {\n unlistedDevDependencies++\n console.log(`[${chalk.blue(name)}] Missing devDependency in package.json: ${chalk.red(imp)}`)\n console.log(` Found in: ${devImportPaths[imp].join(', ')}`)\n }\n }\n return unlistedDevDependencies\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnusedDependencies(\n { name, location }: Workspace,\n { dependencies }: CheckPackageParams,\n {\n externalProdImports,\n externalProdTypeImports,\n }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of dependencies) {\n if (!externalProdImports.includes(dep) && !externalProdTypeImports.includes(dep)) {\n unusedDependencies++\n console.log(`[${chalk.blue(name)}] Unused dependency in package.json: ${chalk.red(dep)}`)\n console.log(` ${location}/package.json\\n`)\n console.log('')\n }\n }\n return unusedDependencies\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnusedPeerDependencies(\n { name, location }: Workspace,\n { peerDependencies }: CheckPackageParams,\n { externalProdImports, externalProdTypeImports }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of peerDependencies) {\n if (!externalProdImports.includes(dep) && !externalProdTypeImports.includes(dep)) {\n unusedDependencies++\n console.log(`[${chalk.blue(name)}] Unused peerDependency in package.json: ${chalk.red(dep)}`)\n console.log(` ${location}/package.json\\n`)\n console.log('')\n }\n }\n return unusedDependencies\n}\n","import type { Workspace } from '../../../lib/index.ts'\nimport { findFiles } from '../findFiles.ts'\nimport { getDependenciesFromPackageJson } from '../getDependenciesFromPackageJson.ts'\nimport { getExternalImportsFromFiles } from '../getExternalImportsFromFiles.ts'\n// import { getTypesInDependencies } from './getTypesInDependencies.ts'\nimport { getUnlistedDependencies } from './getUnlistedDependencies.ts'\nimport { getUnlistedDevDependencies } from './getUnlistedDevDependencies.ts'\nimport { getUnusedDependencies } from './getUnusedDependencies.ts'\nimport { getUnusedPeerDependencies } from './getUnusedPeerDependencies.ts'\n\nexport interface CheckPackageOptions extends Workspace {\n deps?: boolean\n devDeps?: boolean\n peerDeps?: boolean\n}\n\nexport function checkPackage({\n name, location, deps = false, devDeps = false, peerDeps = false,\n}: CheckPackageOptions) {\n const {\n prodSourceFiles, devSourceFiles, prodDistFiles,\n } = findFiles(location)\n const checkDeps = deps || !(deps || devDeps || peerDeps)\n const checkDevDeps = devDeps || !(deps || devDeps || peerDeps)\n const checkPeerDeps = peerDeps // || !(deps || devDeps || peerDeps)\n const sourceParams = getExternalImportsFromFiles({\n prodSourceFiles, devSourceFiles, prodDistFiles,\n })\n\n const packageParams = getDependenciesFromPackageJson(`${location}/package.json`)\n\n const unlistedDependencies = checkDeps ? getUnlistedDependencies({ name, location }, packageParams, sourceParams) : 0\n const unusedDependencies = checkDeps ? getUnusedDependencies({ name, location }, packageParams, sourceParams) : 0\n const typesInDependencies = 0 // checkDeps ? getTypesInDependencies({ name, location }, packageParams, sourceParams) : 0\n const unlistedDevDependencies = checkDevDeps ? getUnlistedDevDependencies({ name, location }, packageParams, sourceParams) : 0\n const unusedPeerDependencies = checkPeerDeps ? getUnusedPeerDependencies({ name, location }, packageParams, sourceParams) : 0\n\n const totalErrors = unlistedDependencies + unlistedDevDependencies + unusedDependencies + typesInDependencies + unusedPeerDependencies\n\n return totalErrors\n}\n"],"mappings":"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","names":["path","fs","path","fs","path","path","chalk","chalk","chalk"]}
1
+ {"version":3,"sources":["../../../../src/actions/deplint/findFilesByGlob.ts","../../../../src/actions/deplint/findFiles.ts","../../../../src/actions/deplint/getDependenciesFromPackageJson.ts","../../../../src/actions/deplint/getImportsFromFile.ts","../../../../src/actions/deplint/getBasePackageName.ts","../../../../src/actions/deplint/getExternalImportsFromFiles.ts","../../../../src/actions/deplint/checkPackage/getUnlistedDependencies.ts","../../../../src/actions/deplint/checkPackage/getUnlistedDevDependencies.ts","../../../../src/actions/deplint/checkPackage/getUnusedDependencies.ts","../../../../src/actions/deplint/checkPackage/getUnusedPeerDependencies.ts","../../../../src/actions/deplint/checkPackage/checkPackage.ts"],"sourcesContent":["import { globSync } from 'glob'\n\nexport function findFilesByGlob(cwd: string, pattern: string) {\n return globSync(pattern, { cwd, absolute: true })\n}\n","import { findFilesByGlob } from './findFilesByGlob.ts'\n\nexport function findFiles(path: string) {\n const allSourceInclude = ['./src/**/*.{ts,tsx}']\n const allDistInclude = ['./dist/**/*.d.ts', './dist/**/*.{mjs,js,cjs}']\n const srcFiles = allSourceInclude.flatMap(pattern => findFilesByGlob(path, pattern))\n const distFiles = allDistInclude.flatMap(pattern => findFilesByGlob(path, pattern))\n\n return { srcFiles, distFiles }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nexport function getDependenciesFromPackageJson(packageJsonPath: string) {\n const packageJsonFullPath = path.resolve(packageJsonPath)\n const rawContent = fs.readFileSync(packageJsonFullPath, 'utf8')\n const packageJson = JSON.parse(rawContent)\n\n const dependencies = packageJson.dependencies\n ? Object.keys(packageJson.dependencies)\n : []\n\n const devDependencies = packageJson.devDependencies\n ? Object.keys(packageJson.devDependencies)\n : []\n\n const peerDependencies = packageJson.peerDependencies\n ? Object.keys(packageJson.peerDependencies)\n : []\n\n return {\n dependencies, devDependencies, peerDependencies,\n }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nimport ts from 'typescript'\n\nimport { getBasePackageName } from './getBasePackageName.ts'\n\nexport function getImportsFromFile(filePath: string, importPaths: Record<string, string[]>, typeImportPaths: Record<string, string[]>) {\n const sourceCode = fs.readFileSync(filePath, 'utf8')\n\n const isMjsFile = filePath.endsWith('.mjs')\n\n const sourceFile = ts.createSourceFile(\n path.basename(filePath),\n sourceCode,\n ts.ScriptTarget.Latest,\n true,\n isMjsFile ? ts.ScriptKind.JS : undefined,\n )\n\n const imports: string[] = []\n const typeImports: string[] = []\n\n const isDeclarationFile = filePath.endsWith('.d.ts')\n\n function visit(node: ts.Node) {\n if (ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) {\n const moduleSpecifier = (node.moduleSpecifier)?.getFullText()\n const isTypeImport = ts.isImportDeclaration(node) ? (node.importClause?.isTypeOnly ?? false) : false\n if (typeof moduleSpecifier === 'string') {\n const trimmed = moduleSpecifier.replaceAll(\"'\", '').replaceAll('\"', '').trim()\n // we are determining if the type import is being imported in an exported d.ts file\n if (isTypeImport || isDeclarationFile) {\n typeImports.push(trimmed)\n } else {\n imports.push(trimmed)\n }\n }\n } else if (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword) {\n const [arg] = node.arguments\n if (ts.isStringLiteral(arg)) {\n const trimmed = arg.text\n imports.push(trimmed)\n }\n }\n ts.forEachChild(node, visit)\n }\n\n visit(sourceFile)\n\n const importsStartsWithExcludes = ['.', '#', 'node:']\n\n const cleanedImports = imports.filter(imp => !importsStartsWithExcludes.some(exc => imp.startsWith(exc))).map(getBasePackageName)\n const cleanedTypeImports = typeImports.filter(imp => !importsStartsWithExcludes.some(exc => imp.startsWith(exc))).map(getBasePackageName)\n\n for (const imp of cleanedImports) {\n importPaths[imp] = importPaths[imp] ?? []\n importPaths[imp].push(filePath)\n }\n\n for (const imp of cleanedTypeImports) {\n typeImportPaths[imp] = typeImportPaths[imp] ?? []\n typeImportPaths[imp].push(filePath)\n }\n\n return [cleanedImports, cleanedTypeImports]\n}\n","export function getBasePackageName(importName: string) {\n const importNameScrubbed = importName.replaceAll('\"', '').trim()\n if (importNameScrubbed.startsWith('@')) {\n const parts = importNameScrubbed.split('/')\n return parts.length >= 2 ? `${parts[0]}/${parts[1]}` : importNameScrubbed\n }\n return importNameScrubbed.split('/')[0]\n}\n","import type { CheckSourceParams } from './checkPackage/index.ts'\nimport { getImportsFromFile } from './getImportsFromFile.ts'\n\nconst internalImportPrefixes = ['.', '#', 'node:']\n\nconst removeInternalImports = (imports: string[]) => {\n return imports.filter(imp => !internalImportPrefixes.some(prefix => imp.startsWith(prefix)))\n}\n\nexport function getExternalImportsFromFiles({ srcFiles, distFiles }: { distFiles: string []; srcFiles: string[] }): CheckSourceParams {\n const srcImportPaths: Record<string, string[]> = {}\n const distImportPaths: Record<string, string[]> = {}\n for (const path of srcFiles) getImportsFromFile(path, srcImportPaths, srcImportPaths).flat()\n for (const path of distFiles) getImportsFromFile(path, distImportPaths, distImportPaths).flat()\n const srcImports = Object.keys(srcImportPaths)\n const distImports = Object.keys(distImportPaths)\n\n const externalSrcImports = removeInternalImports(srcImports)\n const externalDistImports = removeInternalImports(distImports)\n\n return {\n srcImports,\n srcImportPaths,\n externalSrcImports,\n distImports,\n distImportPaths,\n externalDistImports,\n }\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDependencies(\n { name, location }: Workspace,\n { dependencies, peerDependencies }: CheckPackageParams,\n { externalDistImports, distImportPaths }: CheckSourceParams,\n) {\n let unlistedDependencies = 0\n\n for (const imp of externalDistImports) {\n if (!dependencies.includes(imp) && !peerDependencies.includes(imp)) {\n unlistedDependencies++\n console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${distImportPaths[imp].join('\\n ')}`)\n }\n }\n if (unlistedDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unlistedDependencies\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDevDependencies(\n { name, location }: Workspace,\n {\n devDependencies, dependencies, peerDependencies,\n }: CheckPackageParams,\n {\n srcImportPaths, externalSrcImports, distImports,\n }: CheckSourceParams,\n) {\n let unlistedDevDependencies = 0\n for (const imp of externalSrcImports) {\n if (!distImports.includes(imp) && !dependencies.includes(imp) && !peerDependencies.includes(imp) && !devDependencies.includes(imp)) {\n unlistedDevDependencies++\n console.log(`[${chalk.blue(name)}] Missing devDependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${srcImportPaths[imp].join('\\n ')}`)\n }\n }\n if (unlistedDevDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unlistedDevDependencies\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnusedDependencies(\n { name, location }: Workspace,\n { dependencies }: CheckPackageParams,\n {\n externalDistImports,\n externalSrcImports,\n }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of dependencies) {\n if (!externalDistImports.includes(dep)) {\n unusedDependencies++\n if (externalSrcImports.includes(dep)) {\n console.log(`[${chalk.blue(name)}] dependency should be devDependency in package.json: ${chalk.red(dep)}`)\n } else {\n console.log(`[${chalk.blue(name)}] Unused dependency in package.json: ${chalk.red(dep)}`)\n }\n }\n }\n if (unusedDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unusedDependencies\n}\n","import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnusedPeerDependencies(\n { name, location }: Workspace,\n { peerDependencies, dependencies }: CheckPackageParams,\n { externalDistImports }: CheckSourceParams,\n) {\n let unusedDependencies = 0\n for (const dep of peerDependencies) {\n if (!externalDistImports.includes(dep)) {\n unusedDependencies++\n if (dependencies.includes(dep)) {\n console.log(`[${chalk.blue(name)}] Unused peerDependency [already a dependency] in package.json: ${chalk.red(dep)}`)\n } else {\n console.log(`[${chalk.blue(name)}] Unused peerDependency in package.json: ${chalk.red(dep)}`)\n }\n }\n }\n if (unusedDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unusedDependencies\n}\n","import type { Workspace } from '../../../lib/index.ts'\nimport { findFiles } from '../findFiles.ts'\nimport { getDependenciesFromPackageJson } from '../getDependenciesFromPackageJson.ts'\nimport { getExternalImportsFromFiles } from '../getExternalImportsFromFiles.ts'\nimport { getUnlistedDependencies } from './getUnlistedDependencies.ts'\nimport { getUnlistedDevDependencies } from './getUnlistedDevDependencies.ts'\nimport { getUnusedDependencies } from './getUnusedDependencies.ts'\nimport { getUnusedPeerDependencies } from './getUnusedPeerDependencies.ts'\n\nexport interface CheckPackageOptions extends Workspace {\n deps?: boolean\n devDeps?: boolean\n peerDeps?: boolean\n}\n\nexport function checkPackage({\n name, location, deps = false, devDeps = false, peerDeps = false,\n}: CheckPackageOptions) {\n const { srcFiles, distFiles } = findFiles(location)\n const checkDeps = deps || !(deps || devDeps || peerDeps)\n const checkDevDeps = devDeps || !(deps || devDeps || peerDeps)\n const checkPeerDeps = peerDeps // || !(deps || devDeps || peerDeps)\n const sourceParams = getExternalImportsFromFiles({ srcFiles, distFiles })\n\n const packageParams = getDependenciesFromPackageJson(`${location}/package.json`)\n\n const unlistedDependencies = checkDeps ? getUnlistedDependencies({ name, location }, packageParams, sourceParams) : 0\n const unusedDependencies = checkDeps ? getUnusedDependencies({ name, location }, packageParams, sourceParams) : 0\n const unlistedDevDependencies = checkDevDeps ? getUnlistedDevDependencies({ name, location }, packageParams, sourceParams) : 0\n const unusedPeerDependencies = checkPeerDeps ? getUnusedPeerDependencies({ name, location }, packageParams, sourceParams) : 0\n\n const totalErrors = unlistedDependencies + unlistedDevDependencies + unusedDependencies + unusedPeerDependencies\n return totalErrors\n}\n"],"mappings":"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","names":["path","fs","path","fs","path","path","chalk","chalk","chalk"]}
@@ -1,28 +1,19 @@
1
1
  // src/actions/deplint/checkPackage/getUnlistedDependencies.ts
2
2
  import chalk from "chalk";
3
- function getUnlistedDependencies({ name }, { dependencies, peerDependencies }, {
4
- externalProdTypeImports,
5
- prodTypeImportPaths,
6
- externalProdImports,
7
- prodImportPaths
8
- }) {
3
+ function getUnlistedDependencies({ name, location }, { dependencies, peerDependencies }, { externalDistImports, distImportPaths }) {
9
4
  let unlistedDependencies = 0;
10
- for (const imp of externalProdTypeImports) {
11
- if (!dependencies.includes(imp) && !peerDependencies.includes(imp) && !dependencies.includes(`@types/${imp}`) && !peerDependencies.includes(`@types/${imp}`)) {
12
- unlistedDependencies++;
13
- console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`);
14
- console.log(` ${prodTypeImportPaths[imp].join("\n")}`);
15
- console.log("");
16
- }
17
- }
18
- for (const imp of externalProdImports) {
5
+ for (const imp of externalDistImports) {
19
6
  if (!dependencies.includes(imp) && !peerDependencies.includes(imp)) {
20
7
  unlistedDependencies++;
21
8
  console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`);
22
- console.log(` ${prodImportPaths[imp].join("\n")}`);
23
- console.log("");
9
+ console.log(` ${distImportPaths[imp].join("\n ")}`);
24
10
  }
25
11
  }
12
+ if (unlistedDependencies > 0) {
13
+ const packageLocation = `${location}/package.json`;
14
+ console.log(` ${chalk.yellow(packageLocation)}
15
+ `);
16
+ }
26
17
  return unlistedDependencies;
27
18
  }
28
19
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/actions/deplint/checkPackage/getUnlistedDependencies.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDependencies({ name }: Workspace, { dependencies, peerDependencies }: CheckPackageParams, {\n externalProdTypeImports, prodTypeImportPaths, externalProdImports, prodImportPaths,\n}: CheckSourceParams) {\n let unlistedDependencies = 0\n\n // check production type imports\n for (const imp of externalProdTypeImports) {\n if (!dependencies.includes(imp) && !peerDependencies.includes(imp) && !dependencies.includes(`@types/${imp}`)\n && !peerDependencies.includes(`@types/${imp}`)) {\n unlistedDependencies++\n console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${prodTypeImportPaths[imp].join('\\n')}`)\n console.log('')\n }\n }\n\n // check production imports\n for (const imp of externalProdImports) {\n if (!dependencies.includes(imp) && !peerDependencies.includes(imp)) {\n unlistedDependencies++\n console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${prodImportPaths[imp].join('\\n')}`)\n console.log('')\n }\n }\n return unlistedDependencies\n}\n"],"mappings":";AAAA,OAAO,WAAW;AAKX,SAAS,wBAAwB,EAAE,KAAK,GAAc,EAAE,cAAc,iBAAiB,GAAuB;AAAA,EACnH;AAAA,EAAyB;AAAA,EAAqB;AAAA,EAAqB;AACrE,GAAsB;AACpB,MAAI,uBAAuB;AAG3B,aAAW,OAAO,yBAAyB;AACzC,QAAI,CAAC,aAAa,SAAS,GAAG,KAAK,CAAC,iBAAiB,SAAS,GAAG,KAAK,CAAC,aAAa,SAAS,UAAU,GAAG,EAAE,KACvG,CAAC,iBAAiB,SAAS,UAAU,GAAG,EAAE,GAAG;AAChD;AACA,cAAQ,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,yCAAyC,MAAM,IAAI,GAAG,CAAC,EAAE;AACzF,cAAQ,IAAI,KAAK,oBAAoB,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE;AACtD,cAAQ,IAAI,EAAE;AAAA,IAChB;AAAA,EACF;AAGA,aAAW,OAAO,qBAAqB;AACrC,QAAI,CAAC,aAAa,SAAS,GAAG,KAAK,CAAC,iBAAiB,SAAS,GAAG,GAAG;AAClE;AACA,cAAQ,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,yCAAyC,MAAM,IAAI,GAAG,CAAC,EAAE;AACzF,cAAQ,IAAI,KAAK,gBAAgB,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE;AAClD,cAAQ,IAAI,EAAE;AAAA,IAChB;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../src/actions/deplint/checkPackage/getUnlistedDependencies.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDependencies(\n { name, location }: Workspace,\n { dependencies, peerDependencies }: CheckPackageParams,\n { externalDistImports, distImportPaths }: CheckSourceParams,\n) {\n let unlistedDependencies = 0\n\n for (const imp of externalDistImports) {\n if (!dependencies.includes(imp) && !peerDependencies.includes(imp)) {\n unlistedDependencies++\n console.log(`[${chalk.blue(name)}] Missing dependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${distImportPaths[imp].join('\\n ')}`)\n }\n }\n if (unlistedDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unlistedDependencies\n}\n"],"mappings":";AAAA,OAAO,WAAW;AAKX,SAAS,wBACd,EAAE,MAAM,SAAS,GACjB,EAAE,cAAc,iBAAiB,GACjC,EAAE,qBAAqB,gBAAgB,GACvC;AACA,MAAI,uBAAuB;AAE3B,aAAW,OAAO,qBAAqB;AACrC,QAAI,CAAC,aAAa,SAAS,GAAG,KAAK,CAAC,iBAAiB,SAAS,GAAG,GAAG;AAClE;AACA,cAAQ,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,yCAAyC,MAAM,IAAI,GAAG,CAAC,EAAE;AACzF,cAAQ,IAAI,KAAK,gBAAgB,GAAG,EAAE,KAAK,KAAK,CAAC,EAAE;AAAA,IACrD;AAAA,EACF;AACA,MAAI,uBAAuB,GAAG;AAC5B,UAAM,kBAAkB,GAAG,QAAQ;AACnC,YAAQ,IAAI,KAAK,MAAM,OAAO,eAAe,CAAC;AAAA,CAAI;AAAA,EACpD;AACA,SAAO;AACT;","names":[]}
@@ -1,18 +1,27 @@
1
1
  // src/actions/deplint/checkPackage/getUnlistedDevDependencies.ts
2
2
  import chalk from "chalk";
3
- function getUnlistedDevDependencies({ name }, {
3
+ function getUnlistedDevDependencies({ name, location }, {
4
4
  devDependencies,
5
5
  dependencies,
6
6
  peerDependencies
7
- }, { devImportPaths, externalDevImports }) {
7
+ }, {
8
+ srcImportPaths,
9
+ externalSrcImports,
10
+ distImports
11
+ }) {
8
12
  let unlistedDevDependencies = 0;
9
- for (const imp of externalDevImports) {
10
- if (!devDependencies.includes(imp) && !dependencies.includes(imp) && !peerDependencies.includes(imp)) {
13
+ for (const imp of externalSrcImports) {
14
+ if (!distImports.includes(imp) && !dependencies.includes(imp) && !peerDependencies.includes(imp) && !devDependencies.includes(imp)) {
11
15
  unlistedDevDependencies++;
12
16
  console.log(`[${chalk.blue(name)}] Missing devDependency in package.json: ${chalk.red(imp)}`);
13
- console.log(` Found in: ${devImportPaths[imp].join(", ")}`);
17
+ console.log(` ${srcImportPaths[imp].join("\n ")}`);
14
18
  }
15
19
  }
20
+ if (unlistedDevDependencies > 0) {
21
+ const packageLocation = `${location}/package.json`;
22
+ console.log(` ${chalk.yellow(packageLocation)}
23
+ `);
24
+ }
16
25
  return unlistedDevDependencies;
17
26
  }
18
27
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/actions/deplint/checkPackage/getUnlistedDevDependencies.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDevDependencies(\n { name }: Workspace,\n {\n devDependencies, dependencies, peerDependencies,\n }: CheckPackageParams,\n { devImportPaths, externalDevImports }: CheckSourceParams,\n) {\n let unlistedDevDependencies = 0\n for (const imp of externalDevImports) {\n if (!devDependencies.includes(imp) && !dependencies.includes(imp) && !peerDependencies.includes(imp)) {\n unlistedDevDependencies++\n console.log(`[${chalk.blue(name)}] Missing devDependency in package.json: ${chalk.red(imp)}`)\n console.log(` Found in: ${devImportPaths[imp].join(', ')}`)\n }\n }\n return unlistedDevDependencies\n}\n"],"mappings":";AAAA,OAAO,WAAW;AAKX,SAAS,2BACd,EAAE,KAAK,GACP;AAAA,EACE;AAAA,EAAiB;AAAA,EAAc;AACjC,GACA,EAAE,gBAAgB,mBAAmB,GACrC;AACA,MAAI,0BAA0B;AAC9B,aAAW,OAAO,oBAAoB;AACpC,QAAI,CAAC,gBAAgB,SAAS,GAAG,KAAK,CAAC,aAAa,SAAS,GAAG,KAAK,CAAC,iBAAiB,SAAS,GAAG,GAAG;AACpG;AACA,cAAQ,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,4CAA4C,MAAM,IAAI,GAAG,CAAC,EAAE;AAC5F,cAAQ,IAAI,eAAe,eAAe,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE;AAAA,IAC7D;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../src/actions/deplint/checkPackage/getUnlistedDevDependencies.ts"],"sourcesContent":["import chalk from 'chalk'\n\nimport type { Workspace } from '../../../lib/index.ts'\nimport type { CheckPackageParams, CheckSourceParams } from './checkPackageTypes.ts'\n\nexport function getUnlistedDevDependencies(\n { name, location }: Workspace,\n {\n devDependencies, dependencies, peerDependencies,\n }: CheckPackageParams,\n {\n srcImportPaths, externalSrcImports, distImports,\n }: CheckSourceParams,\n) {\n let unlistedDevDependencies = 0\n for (const imp of externalSrcImports) {\n if (!distImports.includes(imp) && !dependencies.includes(imp) && !peerDependencies.includes(imp) && !devDependencies.includes(imp)) {\n unlistedDevDependencies++\n console.log(`[${chalk.blue(name)}] Missing devDependency in package.json: ${chalk.red(imp)}`)\n console.log(` ${srcImportPaths[imp].join('\\n ')}`)\n }\n }\n if (unlistedDevDependencies > 0) {\n const packageLocation = `${location}/package.json`\n console.log(` ${chalk.yellow(packageLocation)}\\n`)\n }\n return unlistedDevDependencies\n}\n"],"mappings":";AAAA,OAAO,WAAW;AAKX,SAAS,2BACd,EAAE,MAAM,SAAS,GACjB;AAAA,EACE;AAAA,EAAiB;AAAA,EAAc;AACjC,GACA;AAAA,EACE;AAAA,EAAgB;AAAA,EAAoB;AACtC,GACA;AACA,MAAI,0BAA0B;AAC9B,aAAW,OAAO,oBAAoB;AACpC,QAAI,CAAC,YAAY,SAAS,GAAG,KAAK,CAAC,aAAa,SAAS,GAAG,KAAK,CAAC,iBAAiB,SAAS,GAAG,KAAK,CAAC,gBAAgB,SAAS,GAAG,GAAG;AAClI;AACA,cAAQ,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,4CAA4C,MAAM,IAAI,GAAG,CAAC,EAAE;AAC5F,cAAQ,IAAI,KAAK,eAAe,GAAG,EAAE,KAAK,KAAK,CAAC,EAAE;AAAA,IACpD;AAAA,EACF;AACA,MAAI,0BAA0B,GAAG;AAC/B,UAAM,kBAAkB,GAAG,QAAQ;AACnC,YAAQ,IAAI,KAAK,MAAM,OAAO,eAAe,CAAC;AAAA,CAAI;AAAA,EACpD;AACA,SAAO;AACT;","names":[]}