@cloud-ru/ft-deps-validator 1.1.1 → 1.1.2-preview-9ce1a08.0

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 (115) hide show
  1. package/README.md +34 -15
  2. package/dist/cjs/Checker/MonorepoChecker.d.ts +10 -0
  3. package/dist/cjs/Checker/MonorepoChecker.js +57 -0
  4. package/dist/cjs/Checker/RepoChecker.d.ts +8 -0
  5. package/dist/cjs/Checker/RepoChecker.js +36 -0
  6. package/dist/cjs/Checker/__tests__/MonorepoChecker.spec.js +305 -0
  7. package/dist/cjs/Checker/__tests__/RepoChecker.spec.js +116 -0
  8. package/dist/cjs/Checker/index.d.ts +2 -0
  9. package/dist/cjs/Checker/index.js +7 -0
  10. package/dist/cjs/Config/MonorepoConfig.d.ts +12 -0
  11. package/dist/cjs/Config/MonorepoConfig.js +42 -0
  12. package/dist/cjs/Config/RepoConfig.d.ts +10 -0
  13. package/dist/cjs/Config/RepoConfig.js +27 -0
  14. package/dist/cjs/Config/__tests__/MonorepoConfig.spec.js +296 -0
  15. package/dist/cjs/Config/__tests__/RepoConfig.spec.d.ts +1 -0
  16. package/dist/cjs/Config/__tests__/RepoConfig.spec.js +99 -0
  17. package/dist/cjs/Config/index.d.ts +2 -0
  18. package/dist/cjs/Config/index.js +7 -0
  19. package/dist/cjs/Report/__tests__/Report.spec.d.ts +1 -0
  20. package/dist/cjs/Report/__tests__/Report.spec.js +176 -0
  21. package/dist/cjs/Report/index.d.ts +11 -0
  22. package/dist/cjs/Report/index.js +55 -0
  23. package/dist/cjs/index.d.ts +0 -1
  24. package/dist/cjs/index.js +13 -57
  25. package/dist/{esm/types/config.d.ts → cjs/types.d.ts} +14 -3
  26. package/dist/cjs/utils/__tests__/getCliArguments.spec.d.ts +1 -0
  27. package/dist/cjs/utils/__tests__/getCliArguments.spec.js +70 -0
  28. package/dist/cjs/utils/getCliArguments.d.ts +6 -6
  29. package/dist/cjs/utils/getCliArguments.js +1 -27
  30. package/dist/cjs/utils/getConfigFile.d.ts +4 -3
  31. package/dist/cjs/utils/getConfigFile.js +3 -9
  32. package/dist/cjs/utils/getEnvironment.d.ts +3 -0
  33. package/dist/cjs/utils/getEnvironment.js +50 -0
  34. package/dist/cjs/utils/readPackageJsonFile.d.ts +9 -0
  35. package/dist/cjs/utils/readPackageJsonFile.js +28 -0
  36. package/dist/esm/Checker/MonorepoChecker.d.ts +10 -0
  37. package/dist/esm/Checker/MonorepoChecker.js +53 -0
  38. package/dist/esm/Checker/RepoChecker.d.ts +8 -0
  39. package/dist/esm/Checker/RepoChecker.js +29 -0
  40. package/dist/esm/Checker/__tests__/MonorepoChecker.spec.d.ts +1 -0
  41. package/dist/esm/Checker/__tests__/MonorepoChecker.spec.js +300 -0
  42. package/dist/esm/Checker/__tests__/RepoChecker.spec.d.ts +1 -0
  43. package/dist/esm/Checker/__tests__/RepoChecker.spec.js +111 -0
  44. package/dist/esm/Checker/index.d.ts +2 -0
  45. package/dist/esm/Checker/index.js +2 -0
  46. package/dist/esm/Config/MonorepoConfig.d.ts +12 -0
  47. package/dist/esm/Config/MonorepoConfig.js +35 -0
  48. package/dist/esm/Config/RepoConfig.d.ts +10 -0
  49. package/dist/esm/Config/RepoConfig.js +20 -0
  50. package/dist/esm/Config/__tests__/MonorepoConfig.spec.d.ts +1 -0
  51. package/dist/esm/Config/__tests__/MonorepoConfig.spec.js +291 -0
  52. package/dist/esm/Config/__tests__/RepoConfig.spec.d.ts +1 -0
  53. package/dist/esm/Config/__tests__/RepoConfig.spec.js +94 -0
  54. package/dist/esm/Config/index.d.ts +2 -0
  55. package/dist/esm/Config/index.js +2 -0
  56. package/dist/esm/Report/__tests__/Report.spec.d.ts +1 -0
  57. package/dist/esm/Report/__tests__/Report.spec.js +174 -0
  58. package/dist/esm/Report/index.d.ts +11 -0
  59. package/dist/esm/Report/index.js +51 -0
  60. package/dist/esm/index.d.ts +0 -1
  61. package/dist/esm/index.js +14 -55
  62. package/dist/{cjs/types/config.d.ts → esm/types.d.ts} +14 -3
  63. package/dist/esm/types.js +1 -0
  64. package/dist/esm/utils/__tests__/getCliArguments.spec.d.ts +1 -0
  65. package/dist/esm/utils/__tests__/getCliArguments.spec.js +68 -0
  66. package/dist/esm/utils/getCliArguments.d.ts +6 -6
  67. package/dist/esm/utils/getCliArguments.js +1 -27
  68. package/dist/esm/utils/getConfigFile.d.ts +4 -3
  69. package/dist/esm/utils/getConfigFile.js +3 -9
  70. package/dist/esm/utils/getEnvironment.d.ts +3 -0
  71. package/dist/esm/utils/getEnvironment.js +42 -0
  72. package/dist/esm/utils/readPackageJsonFile.d.ts +9 -0
  73. package/dist/esm/utils/readPackageJsonFile.js +20 -0
  74. package/package.json +2 -2
  75. package/src/Checker/MonorepoChecker.ts +45 -0
  76. package/src/Checker/RepoChecker.ts +23 -0
  77. package/src/Checker/__tests__/MonorepoChecker.spec.ts +330 -0
  78. package/src/Checker/__tests__/RepoChecker.spec.ts +132 -0
  79. package/src/Checker/index.ts +2 -0
  80. package/src/Config/MonorepoConfig.ts +51 -0
  81. package/src/Config/RepoConfig.ts +30 -0
  82. package/src/Config/__tests__/MonorepoConfig.spec.ts +348 -0
  83. package/src/Config/__tests__/RepoConfig.spec.ts +131 -0
  84. package/src/Config/index.ts +2 -0
  85. package/src/Report/__tests__/Report.spec.ts +221 -0
  86. package/src/Report/index.ts +75 -0
  87. package/src/index.ts +14 -67
  88. package/src/{types/config.ts → types.ts} +15 -3
  89. package/src/utils/__tests__/getCliArguments.spec.ts +89 -0
  90. package/src/utils/getCliArguments.ts +1 -35
  91. package/src/utils/getConfigFile.ts +7 -11
  92. package/src/utils/getEnvironment.ts +53 -0
  93. package/src/utils/readPackageJsonFile.ts +20 -0
  94. package/dist/cjs/types/cliArguments.d.ts +0 -4
  95. package/dist/cjs/types/config.js +0 -2
  96. package/dist/cjs/types/state.d.ts +0 -6
  97. package/dist/cjs/types/state.js +0 -2
  98. package/dist/cjs/utils/getMonorepoPrefix.d.ts +0 -6
  99. package/dist/cjs/utils/getMonorepoPrefix.js +0 -33
  100. package/dist/cjs/utils/initializeState.d.ts +0 -8
  101. package/dist/cjs/utils/initializeState.js +0 -40
  102. package/dist/esm/types/cliArguments.d.ts +0 -4
  103. package/dist/esm/types/state.d.ts +0 -6
  104. package/dist/esm/utils/getMonorepoPrefix.d.ts +0 -6
  105. package/dist/esm/utils/getMonorepoPrefix.js +0 -27
  106. package/dist/esm/utils/initializeState.d.ts +0 -8
  107. package/dist/esm/utils/initializeState.js +0 -34
  108. package/src/types/cliArguments.ts +0 -5
  109. package/src/types/state.ts +0 -6
  110. package/src/utils/getMonorepoPrefix.ts +0 -32
  111. package/src/utils/initializeState.ts +0 -51
  112. /package/dist/{esm/types/cliArguments.js → cjs/Checker/__tests__/MonorepoChecker.spec.d.ts} +0 -0
  113. /package/dist/{esm/types/config.js → cjs/Checker/__tests__/RepoChecker.spec.d.ts} +0 -0
  114. /package/dist/{esm/types/state.js → cjs/Config/__tests__/MonorepoConfig.spec.d.ts} +0 -0
  115. /package/dist/cjs/{types/cliArguments.js → types.js} +0 -0
@@ -1,5 +0,0 @@
1
- import { Config } from './config';
2
-
3
- export type CliArguments = Config & {
4
- cwd: string;
5
- };
@@ -1,6 +0,0 @@
1
- export type State = {
2
- wrongVersions: string[];
3
- internalAsDev: string[];
4
- unusedDeps: string[];
5
- missing: Array<Record<string, string[]>>;
6
- };
@@ -1,32 +0,0 @@
1
- import path from 'path';
2
-
3
- type Options = {
4
- cwd: string;
5
- folders: string[];
6
- };
7
-
8
- export function getMonorepoPrefix({ cwd, folders }: Options): string | null {
9
- try {
10
- // eslint-disable-next-line import/no-dynamic-require, @typescript-eslint/no-var-requires
11
- const rootPkg = require(path.resolve(cwd, 'package.json'));
12
- return rootPkg.name || null;
13
- } catch {
14
- if (folders.length < 1) {
15
- return null;
16
- }
17
-
18
- try {
19
- // eslint-disable-next-line import/no-dynamic-require, @typescript-eslint/no-var-requires
20
- const firstPkg = require(path.resolve(folders[0], 'package.json'));
21
-
22
- // Extract monorepo scope from package name (e.g., "@cloud-ru" from "@cloud-ru/ft-deps-validator")
23
- const match = firstPkg.name?.match(/^(@[^/]+)/);
24
- if (match) {
25
- return match[1];
26
- }
27
- return null;
28
- } catch {
29
- return null;
30
- }
31
- }
32
- }
@@ -1,51 +0,0 @@
1
- import path from 'path';
2
-
3
- import { State } from '../types/state';
4
- import { getMonorepoPrefix } from './getMonorepoPrefix';
5
-
6
- type Options = {
7
- cwd: string;
8
- folders: string[];
9
- prefix?: string;
10
- };
11
-
12
- export function initializeState({ cwd, folders, prefix }: Options): State {
13
- const internalPackages: Record<string, string> = {};
14
- const initialState: State = {
15
- wrongVersions: [],
16
- internalAsDev: [],
17
- unusedDeps: [],
18
- missing: [],
19
- };
20
-
21
- const monorepoName = prefix || getMonorepoPrefix({ cwd, folders });
22
- if (!monorepoName) {
23
- throw new Error('[ERROR] Prefix was not specified and was not found');
24
- }
25
-
26
- const monorepoPackageRegexp = new RegExp(`${monorepoName}\\/`);
27
-
28
- for (const folder of folders) {
29
- // eslint-disable-next-line import/no-dynamic-require, @typescript-eslint/no-var-requires
30
- const pkg = require(path.resolve(folder, 'package.json'));
31
- internalPackages[pkg.name] = pkg.version;
32
- }
33
-
34
- for (const folder of folders) {
35
- // eslint-disable-next-line import/no-dynamic-require, @typescript-eslint/no-var-requires
36
- const pkg = require(path.resolve(folder, 'package.json'));
37
- const usedInternal = Object.keys(pkg.dependencies || {}).filter(x => monorepoPackageRegexp.test(x));
38
- usedInternal.forEach(dep => {
39
- if (pkg.dependencies[dep] !== internalPackages[dep]) {
40
- initialState.wrongVersions.push(
41
- `Error in ${pkg.name}: ${dep} has ${pkg.dependencies[dep]}, but correct version is ${internalPackages[dep]}`,
42
- );
43
- }
44
- });
45
-
46
- const usedInternalDev = Object.keys(pkg.devDependencies || {}).filter(x => monorepoPackageRegexp.test(x));
47
- usedInternalDev.forEach(dep => initialState.internalAsDev.push(`Error in ${pkg.name}: ${dep}`));
48
- }
49
-
50
- return initialState;
51
- }
File without changes