@ovh-ux/manager-static-analysis-kit 0.8.0 → 0.10.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 (86) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +59 -69
  3. package/bin/cli-path-config.js +31 -0
  4. package/bin/code-duplication-cli.js +96 -0
  5. package/bin/code-duplication-tests-cli.js +68 -0
  6. package/bin/lint-cli.js +1 -1
  7. package/bin/perf-budgets-cli.js +58 -297
  8. package/bin/perf-budgets-tests-cli.js +1 -3
  9. package/bin/static-dynamic-quality-checks.js +138 -0
  10. package/bin/tests-coverage-cli-tests.js +67 -0
  11. package/bin/tests-coverage-cli.js +137 -0
  12. package/bin/types-coverage-cli.js +195 -0
  13. package/bin/types-coverage-tests-cli.js +68 -0
  14. package/bin/utils/apps-utils.js +64 -0
  15. package/bin/utils/args-parse-utils.js +229 -0
  16. package/bin/utils/file-utils.js +52 -0
  17. package/bin/utils/log-utils.js +29 -0
  18. package/bin/utils/runner-utils.js +85 -0
  19. package/bin/utils/turbo-utils.js +150 -0
  20. package/dist/adapters/code-duplication/helpers/code-duplication-analysis-helper.d.ts +9 -0
  21. package/dist/adapters/code-duplication/helpers/code-duplication-analysis-helper.d.ts.map +1 -0
  22. package/dist/adapters/code-duplication/helpers/code-duplication-analysis-helper.js +294 -0
  23. package/dist/adapters/code-duplication/types/CodeDuplication.d.ts +63 -0
  24. package/dist/adapters/code-duplication/types/CodeDuplication.d.ts.map +1 -0
  25. package/dist/adapters/code-duplication/types/CodeDuplication.js +1 -0
  26. package/dist/adapters/eslint/rules/eslint-prettier.js +1 -1
  27. package/dist/adapters/html-a11y-validation/helpers/html-a11y-tests-setup.d.ts +62 -0
  28. package/dist/adapters/html-a11y-validation/helpers/html-a11y-tests-setup.d.ts.map +1 -0
  29. package/dist/adapters/html-a11y-validation/helpers/html-a11y-tests-setup.js +73 -0
  30. package/dist/adapters/html-w3c-validation/helpers/html-w3c-tests-setup.d.ts +19 -0
  31. package/dist/adapters/html-w3c-validation/helpers/html-w3c-tests-setup.d.ts.map +1 -0
  32. package/dist/adapters/html-w3c-validation/helpers/html-w3c-tests-setup.js +32 -0
  33. package/dist/adapters/html-w3c-validation/helpers/html-w3c-validator.d.ts +4 -0
  34. package/dist/adapters/html-w3c-validation/helpers/html-w3c-validator.d.ts.map +1 -0
  35. package/dist/adapters/html-w3c-validation/helpers/html-w3c-validator.js +89 -0
  36. package/dist/adapters/html-w3c-validation/types/HtmlW3CValidator.d.ts +6 -0
  37. package/dist/adapters/html-w3c-validation/types/HtmlW3CValidator.d.ts.map +1 -0
  38. package/dist/adapters/html-w3c-validation/types/HtmlW3CValidator.js +1 -0
  39. package/dist/adapters/html-w3c-validation/types/globals/vnu-jar.d.ts +5 -0
  40. package/dist/adapters/perf-budgets/helpers/perfs-bundle-analysis-helper.d.ts +1 -1
  41. package/dist/adapters/perf-budgets/helpers/perfs-bundle-analysis-helper.d.ts.map +1 -1
  42. package/dist/adapters/perf-budgets/helpers/perfs-bundle-analysis-helper.js +2 -3
  43. package/dist/adapters/tests-coverage/helpers/tests-coverage-analysis-helper.d.ts +4 -0
  44. package/dist/adapters/tests-coverage/helpers/tests-coverage-analysis-helper.d.ts.map +1 -0
  45. package/dist/adapters/tests-coverage/helpers/tests-coverage-analysis-helper.js +215 -0
  46. package/dist/adapters/tests-coverage/types/TestsCoverage.d.ts +36 -0
  47. package/dist/adapters/tests-coverage/types/TestsCoverage.d.ts.map +1 -0
  48. package/dist/adapters/tests-coverage/types/TestsCoverage.js +6 -0
  49. package/dist/adapters/types-coverage/helpers/types-coverage-analysis-helper.d.ts +4 -0
  50. package/dist/adapters/types-coverage/helpers/types-coverage-analysis-helper.d.ts.map +1 -0
  51. package/dist/adapters/types-coverage/helpers/types-coverage-analysis-helper.js +231 -0
  52. package/dist/adapters/types-coverage/types/TypesCoverage.d.ts +38 -0
  53. package/dist/adapters/types-coverage/types/TypesCoverage.d.ts.map +1 -0
  54. package/dist/adapters/types-coverage/types/TypesCoverage.js +1 -0
  55. package/dist/configs/architecture-analysis-config.d.ts +5 -0
  56. package/dist/configs/architecture-analysis-config.d.ts.map +1 -0
  57. package/dist/configs/{madge-config.js → architecture-analysis-config.js} +1 -1
  58. package/dist/configs/code-duplication-config.d.ts +22 -0
  59. package/dist/configs/code-duplication-config.d.ts.map +1 -0
  60. package/dist/configs/code-duplication-config.js +22 -0
  61. package/dist/configs/{prettier-config.d.ts → code-formatter-config.d.ts} +1 -1
  62. package/dist/configs/code-formatter-config.d.ts.map +1 -0
  63. package/dist/configs/file-globs-config.d.ts +0 -3
  64. package/dist/configs/file-globs-config.d.ts.map +1 -1
  65. package/dist/configs/file-globs-config.js +0 -3
  66. package/dist/configs/naming-conventions-config.d.ts.map +1 -1
  67. package/dist/configs/naming-conventions-config.js +2 -0
  68. package/dist/configs/shared-exclusion-patterns.d.ts +1 -0
  69. package/dist/configs/shared-exclusion-patterns.d.ts.map +1 -1
  70. package/dist/configs/shared-exclusion-patterns.js +23 -1
  71. package/dist/configs/tests-coverage-config.d.ts +12 -0
  72. package/dist/configs/tests-coverage-config.d.ts.map +1 -0
  73. package/dist/configs/tests-coverage-config.js +11 -0
  74. package/dist/configs/types-coverage-config.d.ts +33 -0
  75. package/dist/configs/types-coverage-config.d.ts.map +1 -0
  76. package/dist/configs/types-coverage-config.js +24 -0
  77. package/dist/tsconfig.tsbuildinfo +1 -1
  78. package/package.json +32 -7
  79. package/bin/cli-utils.js +0 -56
  80. package/dist/configs/jscpd-config.d.ts +0 -7
  81. package/dist/configs/jscpd-config.d.ts.map +0 -1
  82. package/dist/configs/jscpd-config.js +0 -7
  83. package/dist/configs/madge-config.d.ts +0 -5
  84. package/dist/configs/madge-config.d.ts.map +0 -1
  85. package/dist/configs/prettier-config.d.ts.map +0 -1
  86. /package/dist/configs/{prettier-config.js → code-formatter-config.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ovh-ux/manager-static-analysis-kit",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "description": "A modular, extensible, and future-ready toolkit for defining, adapting, and sharing static analysis rules across projects in the `manager` monorepo.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -76,14 +76,30 @@
76
76
  },
77
77
  "./tsconfig/test-strict": {
78
78
  "default": "./dist/tsconfig/test-strict.json"
79
+ },
80
+ "./tests/html-w3c-tests-setup": {
81
+ "types": "./dist/adapters/html-w3c-validation/helpers/html-w3c-tests-setup.d.ts",
82
+ "import": "./dist/adapters/html-w3c-validation/helpers/html-w3c-tests-setup.js"
83
+ },
84
+ "./tests/html-a11y-tests-setup": {
85
+ "types": "./dist/adapters/html-a11y-validation/helpers/html-a11y-tests-setup.d.ts",
86
+ "import": "./dist/adapters/html-a11y-validation/helpers/html-a11y-tests-setup"
79
87
  }
80
88
  },
81
89
  "main": "./dist/code-analysis.js",
82
90
  "types": "./dist/code-analysis.d.ts",
83
91
  "bin": {
92
+ "manager-code-duplication": "./bin/code-duplication-cli.js",
93
+ "manager-code-duplication-tests": "./bin/code-duplication-tests-cli.js",
84
94
  "manager-lint": "./bin/lint-cli.js",
85
95
  "manager-perf-budgets": "./bin/perf-budgets-cli.js",
86
- "manager-perf-budgets-tests": "./bin/perf-budgets-tests-cli.js"
96
+ "manager-perf-budgets-tests": "./bin/perf-budgets-tests-cli.js",
97
+ "manager-static-dynamic-quality-checks": "./bin/static-dynamic-quality-checks.js",
98
+ "manager-static-dynamic-quality-checks-tests": "./bin/static-dynamic-quality-checks-tests.js",
99
+ "manager-tests-coverage": "./bin/tests-coverage-cli.js",
100
+ "manager-tests-coverage-tests": "./bin/tests-coverage-cli-tests.js",
101
+ "manager-types-coverage": "./bin/types-coverage-cli.js",
102
+ "manager-types-coverage-tests": "./bin/types-coverage-tests-cli.js"
87
103
  },
88
104
  "files": [
89
105
  "dist",
@@ -93,10 +109,9 @@
93
109
  "scripts": {
94
110
  "build": "tsx scripts/build.ts",
95
111
  "postinstall": "tsx scripts/build.ts",
96
- "lint:modern": "manager-lint --config eslint.config.mts ./src",
97
- "lint:modern:fix": "manager-lint --fix --config eslint.config.mts ./src",
98
- "prepare": "tsx scripts/build.ts",
99
- "test": "echo \"No tests yet.\" && exit 0"
112
+ "lint:modern": "manager-lint --config eslint.config.mts ./src/**/*.ts",
113
+ "lint:modern:fix": "manager-lint --fix --config eslint.config.mts ./src/**/*.ts",
114
+ "prepare": "tsx scripts/build.ts"
100
115
  },
101
116
  "dependencies": {
102
117
  "@eslint/css": "^0.9.0",
@@ -111,6 +126,7 @@
111
126
  "@typescript-eslint/eslint-plugin": "^8.37.0",
112
127
  "@typescript-eslint/parser": "^8.37.0",
113
128
  "@vitest/eslint-plugin": "^1.3.3",
129
+ "axe-core": "^4.10.3",
114
130
  "eslint": "^9.29.0",
115
131
  "eslint-config-prettier": "^10.1.5",
116
132
  "eslint-import-resolver-typescript": "^4.4.4",
@@ -122,16 +138,25 @@
122
138
  "eslint-plugin-react-hooks": "^5.2.0",
123
139
  "eslint-plugin-storybook": "^9.0.13",
124
140
  "eslint-plugin-tailwindcss": "^3.18.0",
141
+ "execa": "^9.6.0",
125
142
  "globals": "^16.2.0",
126
143
  "jiti": "^2.5.1",
144
+ "jscpd": "^4.0.5",
127
145
  "prettier": "^3.6.2",
128
146
  "prettier-plugin-tailwindcss": "^0.6.13",
147
+ "semantic-ui-react": "^2.1.5",
129
148
  "tailwind-csstree": "^0.1.1",
130
149
  "tailwindcss": "^3.4.4",
131
150
  "tsc-alias": "^1.8.16",
132
151
  "tsx": "^4.20.3",
133
152
  "typescript": "^5.8.3",
153
+ "typescript-coverage-report": "^1.1.1",
134
154
  "typescript-eslint": "^8.35.0",
135
- "vite-bundle-analyzer": "^1.2.3"
155
+ "vite-bundle-analyzer": "^1.2.3",
156
+ "vitest-axe": "^0.1.0",
157
+ "vnu-jar": "^24.10.17"
158
+ },
159
+ "peerDependencies": {
160
+ "@ovh-ux/manager-tests-setup": "latest"
136
161
  }
137
162
  }
package/bin/cli-utils.js DELETED
@@ -1,56 +0,0 @@
1
- import fs from 'node:fs';
2
-
3
- /**
4
- * Log an informational message with a standard prefix.
5
- *
6
- * @param {string} msg - The message to log.
7
- * @returns {void}
8
- */
9
- export function logInfo(msg) {
10
- console.log(`[manager-perf-budget] ${msg}`);
11
- }
12
-
13
- /**
14
- * Log a warning message with a standard prefix.
15
- *
16
- * @param {string} msg - The message to log.
17
- * @returns {void}
18
- */
19
- export function logWarn(msg) {
20
- console.warn(`⚠️ [manager-perf-budget] ${msg}`);
21
- }
22
-
23
- /**
24
- * Log an error message with a standard prefix.
25
- *
26
- * @param {string} msg - The message to log.
27
- * @returns {void}
28
- */
29
- export function logError(msg) {
30
- console.error(`❌ [manager-perf-budget] ${msg}`);
31
- }
32
-
33
- /**
34
- * Check if a given package.json belongs to a React app.
35
- *
36
- * A package is considered a React app if it declares `react`
37
- * as a dependency, devDependency, or peerDependency.
38
- *
39
- * @param {string} pkgPath - Absolute path to a `package.json` file.
40
- * @returns {boolean} True if the package depends on React, otherwise false.
41
- */
42
- export function isReactApp(pkgPath) {
43
- try {
44
- if (!fs.existsSync(pkgPath)) return false;
45
-
46
- /** @type {Record<string, any>} */
47
- const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
48
- if (!pkg || typeof pkg !== 'object') return false;
49
-
50
- const deps = { ...pkg.dependencies, ...pkg.devDependencies, ...pkg.peerDependencies };
51
- return Boolean(deps.react);
52
- } catch (err) {
53
- logWarn(`Failed to read or parse ${pkgPath}: ${err.message}`);
54
- return false;
55
- }
56
- }
@@ -1,7 +0,0 @@
1
- export declare const codeDuplicationDefaultOptions: {
2
- mode: string;
3
- threshold: number;
4
- format: string[];
5
- ignore: string[];
6
- };
7
- //# sourceMappingURL=jscpd-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jscpd-config.d.ts","sourceRoot":"","sources":["../../src/configs/jscpd-config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,6BAA6B;;;;;CAKzC,CAAC"}
@@ -1,7 +0,0 @@
1
- import { sharedExclusionPatterns } from './shared-exclusion-patterns.js';
2
- export const codeDuplicationDefaultOptions = {
3
- mode: 'strict',
4
- threshold: 0,
5
- format: ['javascript', 'typescript', 'jsx', 'tsx'],
6
- ignore: sharedExclusionPatterns,
7
- };
@@ -1,5 +0,0 @@
1
- export declare const madgeDefaultOptions: {
2
- fileExtensions: string[];
3
- excludeRegExp: string[];
4
- };
5
- //# sourceMappingURL=madge-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"madge-config.d.ts","sourceRoot":"","sources":["../../src/configs/madge-config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;CAK/B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"prettier-config.d.ts","sourceRoot":"","sources":["../../src/configs/prettier-config.ts"],"names":[],"mappings":"AAmDA,eAAO,MAAM,sBAAsB,UASlC,CAAC;AAsBF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;CAqB1B,CAAC"}