@aiready/consistency 0.21.8 → 0.21.11
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.
- package/.turbo/turbo-build.log +23 -24
- package/.turbo/turbo-format-check.log +1 -1
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test.log +18 -19
- package/.turbo/turbo-type-check.log +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4 -4
- package/dist/index.mjs +3 -3
- package/package.json +2 -2
- package/src/__tests__/provider.test.ts +6 -34
- package/src/index.ts +3 -3
- package/src/provider.ts +2 -2
- package/dist/__tests__/analyzer.test.d.ts +0 -2
- package/dist/__tests__/analyzer.test.d.ts.map +0 -1
- package/dist/__tests__/analyzer.test.js +0 -157
- package/dist/__tests__/analyzer.test.js.map +0 -1
- package/dist/__tests__/language-filter.test.d.ts +0 -2
- package/dist/__tests__/language-filter.test.d.ts.map +0 -1
- package/dist/__tests__/language-filter.test.js +0 -46
- package/dist/__tests__/language-filter.test.js.map +0 -1
- package/dist/__tests__/scoring.test.d.ts +0 -2
- package/dist/__tests__/scoring.test.d.ts.map +0 -1
- package/dist/__tests__/scoring.test.js +0 -118
- package/dist/__tests__/scoring.test.js.map +0 -1
- package/dist/analyzer.d.ts +0 -7
- package/dist/analyzer.d.ts.map +0 -1
- package/dist/analyzer.js +0 -160
- package/dist/analyzer.js.map +0 -1
- package/dist/analyzers/naming-ast.d.ts +0 -7
- package/dist/analyzers/naming-ast.d.ts.map +0 -1
- package/dist/analyzers/naming-ast.js +0 -253
- package/dist/analyzers/naming-ast.js.map +0 -1
- package/dist/analyzers/naming-constants.d.ts +0 -21
- package/dist/analyzers/naming-constants.d.ts.map +0 -1
- package/dist/analyzers/naming-constants.js +0 -96
- package/dist/analyzers/naming-constants.js.map +0 -1
- package/dist/analyzers/naming-python.d.ts +0 -16
- package/dist/analyzers/naming-python.d.ts.map +0 -1
- package/dist/analyzers/naming-python.js +0 -165
- package/dist/analyzers/naming-python.js.map +0 -1
- package/dist/analyzers/naming.d.ts +0 -6
- package/dist/analyzers/naming.d.ts.map +0 -1
- package/dist/analyzers/naming.js +0 -234
- package/dist/analyzers/naming.js.map +0 -1
- package/dist/analyzers/patterns.d.ts +0 -10
- package/dist/analyzers/patterns.d.ts.map +0 -1
- package/dist/analyzers/patterns.js +0 -197
- package/dist/analyzers/patterns.js.map +0 -1
- package/dist/chunk-2BTBNG6X.mjs +0 -814
- package/dist/chunk-3ZB6FFRL.mjs +0 -661
- package/dist/chunk-5UFRGXSB.mjs +0 -783
- package/dist/chunk-66M3TIO7.mjs +0 -837
- package/dist/chunk-6BM5MV3S.mjs +0 -719
- package/dist/chunk-6H3JHDP7.mjs +0 -832
- package/dist/chunk-7PHHJOGC.mjs +0 -1374
- package/dist/chunk-AASFXGUR.mjs +0 -1622
- package/dist/chunk-AR7DIZLP.mjs +0 -827
- package/dist/chunk-BDDMOIU2.mjs +0 -385
- package/dist/chunk-BMILMNKJ.mjs +0 -1633
- package/dist/chunk-BYY6MD5T.mjs +0 -729
- package/dist/chunk-CA4Q5JBK.mjs +0 -1143
- package/dist/chunk-CF4LU7KE.mjs +0 -384
- package/dist/chunk-CJINEUIH.mjs +0 -1369
- package/dist/chunk-CLWNLHDB.mjs +0 -909
- package/dist/chunk-CZUJTDNH.mjs +0 -848
- package/dist/chunk-DNGW3WQK.mjs +0 -810
- package/dist/chunk-DSI3TEO2.mjs +0 -662
- package/dist/chunk-EIQ5K6OO.mjs +0 -1579
- package/dist/chunk-FEJODRK5.mjs +0 -783
- package/dist/chunk-FK56AZ43.mjs +0 -817
- package/dist/chunk-H6S7WKSQ.mjs +0 -729
- package/dist/chunk-HAOJLJNB.mjs +0 -1290
- package/dist/chunk-HJCP36VW.mjs +0 -821
- package/dist/chunk-HPG7P6PD.mjs +0 -1372
- package/dist/chunk-IVRBV7SE.mjs +0 -1295
- package/dist/chunk-IXBC6GVT.mjs +0 -832
- package/dist/chunk-J5IFYDVU.mjs +0 -1579
- package/dist/chunk-KWQVBF7K.mjs +0 -831
- package/dist/chunk-LD3CHHU2.mjs +0 -1297
- package/dist/chunk-LMOXGPCM.mjs +0 -722
- package/dist/chunk-LSXZH6X6.mjs +0 -810
- package/dist/chunk-LUAREV6A.mjs +0 -508
- package/dist/chunk-MAPVFXBP.mjs +0 -708
- package/dist/chunk-MM2PLUCH.mjs +0 -1376
- package/dist/chunk-NPWCJZUG.mjs +0 -708
- package/dist/chunk-ON73WHHU.mjs +0 -1310
- package/dist/chunk-P6NVKUBB.mjs +0 -831
- package/dist/chunk-Q3KTWDSL.mjs +0 -808
- package/dist/chunk-Q5XMWG33.mjs +0 -661
- package/dist/chunk-QOIPVP6P.mjs +0 -1607
- package/dist/chunk-RMEQWG52.mjs +0 -1633
- package/dist/chunk-S6BZVTWN.mjs +0 -731
- package/dist/chunk-TE6JYZD3.mjs +0 -810
- package/dist/chunk-TLVLM3M5.mjs +0 -771
- package/dist/chunk-TXHPUU7A.mjs +0 -863
- package/dist/chunk-UMBBTNQN.mjs +0 -787
- package/dist/chunk-V2UPXL7L.mjs +0 -842
- package/dist/chunk-VODCPPET.mjs +0 -1292
- package/dist/chunk-W6UGMKRV.mjs +0 -1310
- package/dist/chunk-WGH4TGZ3.mjs +0 -1288
- package/dist/chunk-WTBDNCEN.mjs +0 -1352
- package/dist/chunk-XVW5DKJQ.mjs +0 -1619
- package/dist/chunk-YCDCIOJN.mjs +0 -842
- package/dist/chunk-YEHXYHGY.mjs +0 -1497
- package/dist/chunk-YHHXE2JX.mjs +0 -912
- package/dist/chunk-ZB6UK276.mjs +0 -662
- package/dist/chunk-ZG3KFSD3.mjs +0 -1142
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/scoring.d.ts +0 -12
- package/dist/scoring.d.ts.map +0 -1
- package/dist/scoring.js +0 -110
- package/dist/scoring.js.map +0 -1
- package/dist/types.d.ts +0 -53
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/ast-parser.d.ts +0 -46
- package/dist/utils/ast-parser.d.ts.map +0 -1
- package/dist/utils/ast-parser.js +0 -157
- package/dist/utils/ast-parser.js.map +0 -1
- package/dist/utils/config-loader.d.ts +0 -19
- package/dist/utils/config-loader.d.ts.map +0 -1
- package/dist/utils/config-loader.js +0 -31
- package/dist/utils/config-loader.js.map +0 -1
- package/dist/utils/context-detector.d.ts +0 -40
- package/dist/utils/context-detector.d.ts.map +0 -1
- package/dist/utils/context-detector.js +0 -225
- package/dist/utils/context-detector.js.map +0 -1
- package/dist/utils/scope-tracker.d.ts +0 -87
- package/dist/utils/scope-tracker.d.ts.map +0 -1
- package/dist/utils/scope-tracker.js +0 -161
- package/dist/utils/scope-tracker.js.map +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
DTS Build
|
|
20
|
-
DTS
|
|
21
|
-
DTS dist/
|
|
22
|
-
DTS dist/
|
|
23
|
-
DTS dist/
|
|
24
|
-
DTS dist/index.d.mts 3.94 KB
|
|
1
|
+
|
|
2
|
+
> @aiready/consistency@0.21.9 build /Users/pengcao/projects/aiready/packages/consistency
|
|
3
|
+
> tsup src/index.ts src/cli.ts --format cjs,esm --dts
|
|
4
|
+
|
|
5
|
+
CLI Building entry: src/cli.ts, src/index.ts
|
|
6
|
+
CLI Using tsconfig: tsconfig.json
|
|
7
|
+
CLI tsup v8.5.1
|
|
8
|
+
CLI Target: es2020
|
|
9
|
+
CJS Build start
|
|
10
|
+
ESM Build start
|
|
11
|
+
CJS dist/cli.js 41.09 KB
|
|
12
|
+
CJS dist/index.js 35.54 KB
|
|
13
|
+
CJS ⚡️ Build success in 94ms
|
|
14
|
+
ESM dist/index.mjs 3.29 KB
|
|
15
|
+
ESM dist/cli.mjs 8.85 KB
|
|
16
|
+
ESM dist/chunk-7DKVZNY7.mjs 30.66 KB
|
|
17
|
+
ESM ⚡️ Build success in 95ms
|
|
18
|
+
DTS Build start
|
|
19
|
+
DTS ⚡️ Build success in 2064ms
|
|
20
|
+
DTS dist/cli.d.ts 20.00 B
|
|
21
|
+
DTS dist/index.d.ts 3.96 KB
|
|
22
|
+
DTS dist/cli.d.mts 20.00 B
|
|
23
|
+
DTS dist/index.d.mts 3.96 KB
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
> @aiready/consistency@0.21.
|
|
3
|
+
> @aiready/consistency@0.21.9 format-check /Users/pengcao/projects/aiready/packages/consistency
|
|
4
4
|
> prettier --check . --ignore-path ../../.prettierignore
|
|
5
5
|
|
|
6
6
|
Checking formatting...
|
package/.turbo/turbo-lint.log
CHANGED
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,35 +1,34 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
> @aiready/consistency@0.21.
|
|
3
|
+
> @aiready/consistency@0.21.8 test /Users/pengcao/projects/aiready/packages/consistency
|
|
4
4
|
> vitest run
|
|
5
5
|
|
|
6
6
|
[?25l
|
|
7
7
|
[1m[46m RUN [49m[22m [36mv4.0.18 [39m[90m/Users/pengcao/projects/aiready/packages/consistency[39m
|
|
8
8
|
|
|
9
|
-
[32m✓[39m src/__tests__/naming-constants.test.ts [2m([22m[2m14 tests[22m[2m)[22m[32m
|
|
10
|
-
[32m✓[39m src/__tests__/scope-tracker.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m
|
|
11
|
-
[32m✓[39m dist/__tests__/scoring.test.js [2m([22m[2m8 tests[22m[2m)[22m[32m
|
|
12
|
-
|
|
9
|
+
[32m✓[39m src/__tests__/naming-constants.test.ts [2m([22m[2m14 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
10
|
+
[32m✓[39m src/__tests__/scope-tracker.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
11
|
+
[32m✓[39m dist/__tests__/scoring.test.js [2m([22m[2m8 tests[22m[2m)[22m[32m 11[2mms[22m[39m
|
|
12
|
+
Sourcemap for "/Users/pengcao/projects/aiready/packages/consistency/dist/analyzers/naming-python.js" points to missing source files
|
|
13
|
+
[32m✓[39m src/__tests__/scoring.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 46[2mms[22m[39m
|
|
13
14
|
[32m✓[39m src/__tests__/naming.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
14
|
-
[32m✓[39m
|
|
15
|
+
[32m✓[39m dist/__tests__/language-filter.test.js [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
15
16
|
[90mstdout[2m | src/__tests__/contract.test.ts[2m > [22m[2mConsistency Spoke Contract Validation[2m > [22m[2mshould produce output matching the SpokeOutput contract
|
|
16
17
|
[22m[39mConsistency: Skipping unparseable file file1.ts: ENOENT: no such file or directory, open 'file1.ts'
|
|
17
18
|
|
|
18
|
-
[32m✓[39m src/__tests__/contract.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m
|
|
19
|
-
[32m✓[39m src/__tests__/
|
|
20
|
-
|
|
21
|
-
[32m✓[39m dist/__tests__/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
[33m[2m✓[22m[39m should
|
|
25
|
-
[32m✓[39m
|
|
26
|
-
[33m[2m✓[22m[39m should
|
|
27
|
-
[32m✓[39m src/__tests__/naming-dotted.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 2739[2mms[22m[39m
|
|
28
|
-
[33m[2m✓[22m[39m should NOT flag dotted identifiers in Python imports [33m 2735[2mms[22m[39m
|
|
19
|
+
[32m✓[39m src/__tests__/contract.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
20
|
+
[32m✓[39m src/__tests__/provider.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
21
|
+
[32m✓[39m src/__tests__/language-filter.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
22
|
+
[32m✓[39m dist/__tests__/analyzer.test.js [2m([22m[2m18 tests[22m[2m)[22m[33m 681[2mms[22m[39m
|
|
23
|
+
[33m[2m✓[22m[39m should generate relevant recommendations [33m 348[2mms[22m[39m
|
|
24
|
+
[32m✓[39m src/__tests__/analyzer.test.ts [2m([22m[2m21 tests[22m[2m)[22m[33m 924[2mms[22m[39m
|
|
25
|
+
[33m[2m✓[22m[39m should analyze naming issues [33m 344[2mms[22m[39m
|
|
26
|
+
[32m✓[39m src/__tests__/naming-dotted.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 2374[2mms[22m[39m
|
|
27
|
+
[33m[2m✓[22m[39m should NOT flag dotted identifiers in Python imports [33m 2371[2mms[22m[39m
|
|
29
28
|
|
|
30
29
|
[2m Test Files [22m [1m[32m12 passed[39m[22m[90m (12)[39m
|
|
31
30
|
[2m Tests [22m [1m[32m96 passed[39m[22m[90m (96)[39m
|
|
32
|
-
[2m Start at [22m 00:
|
|
33
|
-
[2m Duration [22m
|
|
31
|
+
[2m Start at [22m 00:14:06
|
|
32
|
+
[2m Duration [22m 4.93s[2m (transform 4.78s, setup 0ms, import 18.96s, tests 4.06s, environment 1ms)[22m
|
|
34
33
|
|
|
35
34
|
[?25h
|
package/dist/index.d.mts
CHANGED
|
@@ -2,9 +2,9 @@ import * as _aiready_core from '@aiready/core';
|
|
|
2
2
|
import { Severity, Issue, IssueType, ScanOptions, AnalysisResult, CostConfig, ToolScoringOutput } from '@aiready/core';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* Consistency Tool Provider
|
|
5
|
+
* Naming Consistency Tool Provider
|
|
6
6
|
*/
|
|
7
|
-
declare const
|
|
7
|
+
declare const NAMING_CONSISTENCY_PROVIDER: _aiready_core.ToolProvider;
|
|
8
8
|
|
|
9
9
|
interface ConsistencyOptions extends ScanOptions {
|
|
10
10
|
/** Check naming conventions and quality */
|
|
@@ -112,4 +112,4 @@ declare function calculateConsistencyScore(issues: ConsistencyIssue[], totalFile
|
|
|
112
112
|
|
|
113
113
|
declare function generateSummary(report: any): any;
|
|
114
114
|
|
|
115
|
-
export { type ArchitectureIssue, type ConsistencyIssue, type ConsistencyOptions,
|
|
115
|
+
export { type ArchitectureIssue, type ConsistencyIssue, type ConsistencyOptions, type ConsistencyReport, NAMING_CONSISTENCY_PROVIDER, type NamingIssue, type PatternIssue, analyzeConsistency, analyzeNaming, analyzeNamingAST, analyzePatterns, calculateConsistencyScore, detectNamingConventions, generateSummary };
|
package/dist/index.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ import * as _aiready_core from '@aiready/core';
|
|
|
2
2
|
import { Severity, Issue, IssueType, ScanOptions, AnalysisResult, CostConfig, ToolScoringOutput } from '@aiready/core';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* Consistency Tool Provider
|
|
5
|
+
* Naming Consistency Tool Provider
|
|
6
6
|
*/
|
|
7
|
-
declare const
|
|
7
|
+
declare const NAMING_CONSISTENCY_PROVIDER: _aiready_core.ToolProvider;
|
|
8
8
|
|
|
9
9
|
interface ConsistencyOptions extends ScanOptions {
|
|
10
10
|
/** Check naming conventions and quality */
|
|
@@ -112,4 +112,4 @@ declare function calculateConsistencyScore(issues: ConsistencyIssue[], totalFile
|
|
|
112
112
|
|
|
113
113
|
declare function generateSummary(report: any): any;
|
|
114
114
|
|
|
115
|
-
export { type ArchitectureIssue, type ConsistencyIssue, type ConsistencyOptions,
|
|
115
|
+
export { type ArchitectureIssue, type ConsistencyIssue, type ConsistencyOptions, type ConsistencyReport, NAMING_CONSISTENCY_PROVIDER, type NamingIssue, type PatternIssue, analyzeConsistency, analyzeNaming, analyzeNamingAST, analyzePatterns, calculateConsistencyScore, detectNamingConventions, generateSummary };
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var index_exports = {};
|
|
22
22
|
__export(index_exports, {
|
|
23
|
-
|
|
23
|
+
NAMING_CONSISTENCY_PROVIDER: () => NAMING_CONSISTENCY_PROVIDER,
|
|
24
24
|
analyzeConsistency: () => analyzeConsistency,
|
|
25
25
|
analyzeNaming: () => analyzeNaming,
|
|
26
26
|
analyzeNamingAST: () => analyzeNamingAST,
|
|
@@ -1166,7 +1166,7 @@ function transformToIssue(i) {
|
|
|
1166
1166
|
}
|
|
1167
1167
|
|
|
1168
1168
|
// src/provider.ts
|
|
1169
|
-
var
|
|
1169
|
+
var NAMING_CONSISTENCY_PROVIDER = (0, import_core7.createProvider)({
|
|
1170
1170
|
id: import_core7.ToolName.NamingConsistency,
|
|
1171
1171
|
alias: ["consistency", "naming", "standards"],
|
|
1172
1172
|
version: "0.16.5",
|
|
@@ -1257,13 +1257,13 @@ async function analyzeNaming(filePaths) {
|
|
|
1257
1257
|
}
|
|
1258
1258
|
|
|
1259
1259
|
// src/index.ts
|
|
1260
|
-
import_core9.ToolRegistry.register(
|
|
1260
|
+
import_core9.ToolRegistry.register(NAMING_CONSISTENCY_PROVIDER);
|
|
1261
1261
|
function generateSummary(report) {
|
|
1262
1262
|
return report.summary;
|
|
1263
1263
|
}
|
|
1264
1264
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1265
1265
|
0 && (module.exports = {
|
|
1266
|
-
|
|
1266
|
+
NAMING_CONSISTENCY_PROVIDER,
|
|
1267
1267
|
analyzeConsistency,
|
|
1268
1268
|
analyzeNaming,
|
|
1269
1269
|
analyzeNamingAST,
|
package/dist/index.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import { ToolRegistry } from "@aiready/core";
|
|
|
13
13
|
|
|
14
14
|
// src/provider.ts
|
|
15
15
|
import { createProvider, ToolName } from "@aiready/core";
|
|
16
|
-
var
|
|
16
|
+
var NAMING_CONSISTENCY_PROVIDER = createProvider({
|
|
17
17
|
id: ToolName.NamingConsistency,
|
|
18
18
|
alias: ["consistency", "naming", "standards"],
|
|
19
19
|
version: "0.16.5",
|
|
@@ -104,12 +104,12 @@ async function analyzeNaming(filePaths) {
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
// src/index.ts
|
|
107
|
-
ToolRegistry.register(
|
|
107
|
+
ToolRegistry.register(NAMING_CONSISTENCY_PROVIDER);
|
|
108
108
|
function generateSummary(report) {
|
|
109
109
|
return report.summary;
|
|
110
110
|
}
|
|
111
111
|
export {
|
|
112
|
-
|
|
112
|
+
NAMING_CONSISTENCY_PROVIDER,
|
|
113
113
|
analyzeConsistency,
|
|
114
114
|
analyzeNaming,
|
|
115
115
|
analyzeNamingAST,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiready/consistency",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.11",
|
|
4
4
|
"description": "Detects consistency issues in naming, patterns, and architecture that confuse AI models",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@typescript-eslint/typescript-estree": "^8.53.0",
|
|
44
44
|
"chalk": "^5.3.0",
|
|
45
45
|
"commander": "^14.0.0",
|
|
46
|
-
"@aiready/core": "0.24.
|
|
46
|
+
"@aiready/core": "0.24.12"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@types/node": "^24.0.0",
|
|
@@ -1,40 +1,12 @@
|
|
|
1
|
-
import { describe, it, expect
|
|
2
|
-
import {
|
|
3
|
-
import * as analyzer from '../analyzer';
|
|
4
|
-
|
|
5
|
-
vi.mock('../analyzer', () => ({
|
|
6
|
-
analyzeConsistency: vi.fn(),
|
|
7
|
-
}));
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { NAMING_CONSISTENCY_PROVIDER } from '../provider';
|
|
8
3
|
|
|
9
4
|
describe('Consistency Provider', () => {
|
|
10
|
-
it('should
|
|
11
|
-
|
|
12
|
-
summary: {
|
|
13
|
-
totalIssues: 0,
|
|
14
|
-
namingIssues: 0,
|
|
15
|
-
patternIssues: 0,
|
|
16
|
-
architectureIssues: 0,
|
|
17
|
-
filesAnalyzed: 1,
|
|
18
|
-
},
|
|
19
|
-
results: [],
|
|
20
|
-
recommendations: [],
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
const output = await ConsistencyProvider.analyze({ rootDir: '.' });
|
|
24
|
-
|
|
25
|
-
expect(output.summary.filesAnalyzed).toBe(1);
|
|
26
|
-
expect(output.metadata!.toolName).toBe('naming-consistency');
|
|
5
|
+
it('should have correct ID', () => {
|
|
6
|
+
expect(NAMING_CONSISTENCY_PROVIDER.id).toBe('naming-consistency');
|
|
27
7
|
});
|
|
28
8
|
|
|
29
|
-
it('should
|
|
30
|
-
|
|
31
|
-
summary: { filesAnalyzed: 10 } as any,
|
|
32
|
-
results: [{ fileName: 'f1.ts', issues: [] }],
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const scoring = ConsistencyProvider.score(mockOutput as any, {
|
|
36
|
-
rootDir: '.',
|
|
37
|
-
});
|
|
38
|
-
expect(scoring.score).toBeDefined();
|
|
9
|
+
it('should have alias', () => {
|
|
10
|
+
expect(NAMING_CONSISTENCY_PROVIDER.alias).toContain('consistency');
|
|
39
11
|
});
|
|
40
12
|
});
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ToolRegistry } from '@aiready/core';
|
|
2
|
-
import {
|
|
2
|
+
import { NAMING_CONSISTENCY_PROVIDER } from './provider';
|
|
3
3
|
|
|
4
4
|
// Register with global registry
|
|
5
|
-
ToolRegistry.register(
|
|
5
|
+
ToolRegistry.register(NAMING_CONSISTENCY_PROVIDER);
|
|
6
6
|
|
|
7
7
|
export { analyzeConsistency } from './analyzer';
|
|
8
8
|
export function generateSummary(report: any) {
|
|
@@ -13,7 +13,7 @@ export { analyzeNaming } from './analyzers/naming'; // Legacy regex version
|
|
|
13
13
|
export { detectNamingConventions } from './analyzers/naming-constants';
|
|
14
14
|
export { analyzePatterns } from './analyzers/patterns';
|
|
15
15
|
export { calculateConsistencyScore } from './scoring';
|
|
16
|
-
export {
|
|
16
|
+
export { NAMING_CONSISTENCY_PROVIDER };
|
|
17
17
|
export type {
|
|
18
18
|
ConsistencyOptions,
|
|
19
19
|
ConsistencyReport,
|
package/src/provider.ts
CHANGED
|
@@ -4,9 +4,9 @@ import { calculateConsistencyScore } from './scoring';
|
|
|
4
4
|
import { ConsistencyOptions, ConsistencyIssue } from './types';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Consistency Tool Provider
|
|
7
|
+
* Naming Consistency Tool Provider
|
|
8
8
|
*/
|
|
9
|
-
export const
|
|
9
|
+
export const NAMING_CONSISTENCY_PROVIDER = createProvider({
|
|
10
10
|
id: ToolName.NamingConsistency,
|
|
11
11
|
alias: ['consistency', 'naming', 'standards'],
|
|
12
12
|
version: '0.16.5',
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/analyzer.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { analyzeConsistency } from '../analyzer';
|
|
3
|
-
import { analyzePatterns } from '../analyzers/patterns';
|
|
4
|
-
describe('analyzeConsistency', () => {
|
|
5
|
-
it('should analyze naming issues', async () => {
|
|
6
|
-
const report = await analyzeConsistency({
|
|
7
|
-
rootDir: './src',
|
|
8
|
-
checkNaming: true,
|
|
9
|
-
checkPatterns: false,
|
|
10
|
-
});
|
|
11
|
-
expect(report).toHaveProperty('summary');
|
|
12
|
-
expect(report).toHaveProperty('results');
|
|
13
|
-
expect(report).toHaveProperty('recommendations');
|
|
14
|
-
expect(report.summary).toHaveProperty('namingIssues');
|
|
15
|
-
});
|
|
16
|
-
it('should detect minimum severity filtering', async () => {
|
|
17
|
-
const report = await analyzeConsistency({
|
|
18
|
-
rootDir: './src',
|
|
19
|
-
minSeverity: 'major',
|
|
20
|
-
});
|
|
21
|
-
// All issues should be major or critical
|
|
22
|
-
for (const result of report.results) {
|
|
23
|
-
for (const issue of result.issues) {
|
|
24
|
-
expect(['major', 'critical']).toContain(issue.severity);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
describe('analyzeNaming', () => {
|
|
30
|
-
it('should detect single letter variables', () => {
|
|
31
|
-
const testCode = `
|
|
32
|
-
const x = 10;
|
|
33
|
-
const y = 20;
|
|
34
|
-
const result = x + y;
|
|
35
|
-
`;
|
|
36
|
-
// In a real test, we'd create temp files or mock file reading
|
|
37
|
-
// For now, this is a placeholder structure
|
|
38
|
-
expect(true).toBe(true);
|
|
39
|
-
});
|
|
40
|
-
it('should NOT flag acceptable abbreviations', () => {
|
|
41
|
-
// These should all be acceptable and NOT flagged
|
|
42
|
-
const acceptableAbbreviations = [
|
|
43
|
-
'env', 'req', 'res', 'ctx', 'err', 'api', 'url', 'id',
|
|
44
|
-
'max', 'min', 'now', 'utm', 'has', 'is', 'can',
|
|
45
|
-
'db', 'fs', 'os', 'ui', 'tmp', 'src', 'dst',
|
|
46
|
-
// New additions from Phase 1
|
|
47
|
-
'img', 'txt', 'doc', 'md', 'ts', 'js', 'ddb', 's3',
|
|
48
|
-
'fcp', 'lcp', 'fps', 'po', 'dto', 'e2e', 'a11y', 'i18n'
|
|
49
|
-
];
|
|
50
|
-
// These abbreviations should not trigger warnings
|
|
51
|
-
expect(acceptableAbbreviations.length).toBeGreaterThan(0);
|
|
52
|
-
});
|
|
53
|
-
it('should NOT flag common short English words', () => {
|
|
54
|
-
// Full words, not abbreviations - should be accepted
|
|
55
|
-
const commonWords = [
|
|
56
|
-
'day', 'key', 'net', 'to', 'go', 'for', 'not', 'new', 'old',
|
|
57
|
-
'top', 'end', 'run', 'try', 'use', 'get', 'set', 'add', 'put'
|
|
58
|
-
];
|
|
59
|
-
// These are full words and should not be flagged as abbreviations
|
|
60
|
-
expect(commonWords.length).toBeGreaterThan(0);
|
|
61
|
-
});
|
|
62
|
-
it('should detect snake_case in TypeScript files', () => {
|
|
63
|
-
const testCode = `
|
|
64
|
-
const user_name = 'John';
|
|
65
|
-
const user_id = 123;
|
|
66
|
-
`;
|
|
67
|
-
// Test would check for convention-mix issues
|
|
68
|
-
expect(true).toBe(true);
|
|
69
|
-
});
|
|
70
|
-
it('should detect unclear boolean names', () => {
|
|
71
|
-
const testCode = `
|
|
72
|
-
const enabled: boolean = true;
|
|
73
|
-
const active: boolean = false;
|
|
74
|
-
`;
|
|
75
|
-
// Should suggest prefixes like isEnabled, isActive
|
|
76
|
-
expect(true).toBe(true);
|
|
77
|
-
});
|
|
78
|
-
it('should allow common abbreviations', () => {
|
|
79
|
-
const testCode = `
|
|
80
|
-
const id = '123';
|
|
81
|
-
const url = 'https://example.com';
|
|
82
|
-
const api = new ApiClient();
|
|
83
|
-
`;
|
|
84
|
-
// Should not flag these as issues
|
|
85
|
-
expect(true).toBe(true);
|
|
86
|
-
});
|
|
87
|
-
it('should NOT flag multi-line arrow function parameters (Phase 3)', () => {
|
|
88
|
-
// Multi-line arrow functions should not trigger single-letter warnings
|
|
89
|
-
const multiLineArrowCode = `
|
|
90
|
-
items.map(
|
|
91
|
-
s => s.value
|
|
92
|
-
)
|
|
93
|
-
|
|
94
|
-
items.filter(
|
|
95
|
-
item =>
|
|
96
|
-
item.valid
|
|
97
|
-
)
|
|
98
|
-
`;
|
|
99
|
-
// 's' and 'item' should not be flagged as poor naming
|
|
100
|
-
expect(true).toBe(true);
|
|
101
|
-
});
|
|
102
|
-
it('should NOT flag short-lived comparison variables (Phase 3)', () => {
|
|
103
|
-
// Variables used only within 3-5 lines for comparisons
|
|
104
|
-
const shortLivedCode = `
|
|
105
|
-
const a = obj1;
|
|
106
|
-
const b = obj2;
|
|
107
|
-
return compare(a, b);
|
|
108
|
-
`;
|
|
109
|
-
// 'a' and 'b' should not be flagged as they're short-lived
|
|
110
|
-
expect(true).toBe(true);
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
describe('analyzePatterns', () => {
|
|
114
|
-
it('should detect mixed error handling', async () => {
|
|
115
|
-
// Test would analyze files with different error handling approaches
|
|
116
|
-
const issues = await analyzePatterns([]);
|
|
117
|
-
expect(Array.isArray(issues)).toBe(true);
|
|
118
|
-
});
|
|
119
|
-
it('should detect mixed async patterns', async () => {
|
|
120
|
-
// Test would check for async/await vs promises vs callbacks
|
|
121
|
-
const issues = await analyzePatterns([]);
|
|
122
|
-
expect(Array.isArray(issues)).toBe(true);
|
|
123
|
-
});
|
|
124
|
-
it('should detect mixed import styles', async () => {
|
|
125
|
-
// Test would check for ES modules vs CommonJS
|
|
126
|
-
const issues = await analyzePatterns([]);
|
|
127
|
-
expect(Array.isArray(issues)).toBe(true);
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
describe('consistency scoring', () => {
|
|
131
|
-
it('should calculate consistency score correctly', () => {
|
|
132
|
-
// Lower issues = higher score
|
|
133
|
-
expect(true).toBe(true);
|
|
134
|
-
});
|
|
135
|
-
it('should weight critical issues more than info', () => {
|
|
136
|
-
// Critical issues should reduce score more
|
|
137
|
-
expect(true).toBe(true);
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
describe('recommendations', () => {
|
|
141
|
-
it('should generate relevant recommendations', async () => {
|
|
142
|
-
const report = await analyzeConsistency({
|
|
143
|
-
rootDir: './src',
|
|
144
|
-
});
|
|
145
|
-
expect(Array.isArray(report.recommendations)).toBe(true);
|
|
146
|
-
expect(report.recommendations.length).toBeGreaterThan(0);
|
|
147
|
-
});
|
|
148
|
-
it('should suggest standardizing error handling', () => {
|
|
149
|
-
// When mixed error handling detected
|
|
150
|
-
expect(true).toBe(true);
|
|
151
|
-
});
|
|
152
|
-
it('should suggest using async/await consistently', () => {
|
|
153
|
-
// When mixed async patterns detected
|
|
154
|
-
expect(true).toBe(true);
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
//# sourceMappingURL=analyzer.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.test.js","sourceRoot":"","sources":["../../src/__tests__/analyzer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"language-filter.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/language-filter.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
-
import { analyzeNamingAST } from '../analyzers/naming-ast';
|
|
3
|
-
describe('Language File Filtering', () => {
|
|
4
|
-
beforeEach(() => {
|
|
5
|
-
// Suppress console warnings during tests
|
|
6
|
-
vi.spyOn(console, 'warn').mockImplementation(() => { });
|
|
7
|
-
});
|
|
8
|
-
it('should only process JS/TS files', async () => {
|
|
9
|
-
const mixedFiles = [
|
|
10
|
-
'/path/to/file.ts',
|
|
11
|
-
'/path/to/file.tsx',
|
|
12
|
-
'/path/to/file.js',
|
|
13
|
-
'/path/to/file.jsx',
|
|
14
|
-
'/path/to/file.py', // Should be filtered out
|
|
15
|
-
'/path/to/file.java', // Should be filtered out
|
|
16
|
-
'/path/to/file.rb', // Should be filtered out
|
|
17
|
-
'/path/to/file.go', // Should be filtered out
|
|
18
|
-
];
|
|
19
|
-
// This test verifies that the function doesn't crash on non-JS/TS files
|
|
20
|
-
// In reality, it will try to read these files if they exist, but parseFile will return null
|
|
21
|
-
// and they'll be skipped. The filtering happens before parseFile is called.
|
|
22
|
-
await expect(analyzeNamingAST(mixedFiles)).resolves.not.toThrow();
|
|
23
|
-
});
|
|
24
|
-
it('should filter out Python files before parsing', async () => {
|
|
25
|
-
const files = [
|
|
26
|
-
'/path/to/script.py',
|
|
27
|
-
'/path/to/another.py',
|
|
28
|
-
];
|
|
29
|
-
// Should not attempt to parse Python files
|
|
30
|
-
const result = await analyzeNamingAST(files);
|
|
31
|
-
expect(result).toEqual([]);
|
|
32
|
-
});
|
|
33
|
-
it('should accept all JS/TS file extensions', async () => {
|
|
34
|
-
const jstsFiles = [
|
|
35
|
-
'test.js',
|
|
36
|
-
'test.jsx',
|
|
37
|
-
'test.ts',
|
|
38
|
-
'test.tsx',
|
|
39
|
-
'TEST.JS', // Test case-insensitive
|
|
40
|
-
'TEST.TS',
|
|
41
|
-
];
|
|
42
|
-
// These should all pass the filter (though they won't parse if they don't exist)
|
|
43
|
-
await expect(analyzeNamingAST(jstsFiles)).resolves.not.toThrow();
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
//# sourceMappingURL=language-filter.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"language-filter.test.js","sourceRoot":"","sources":["../../src/__tests__/language-filter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,UAAU,CAAC,GAAG,EAAE;QACd,yCAAyC;QACzC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,UAAU,GAAG;YACjB,kBAAkB;YAClB,mBAAmB;YACnB,kBAAkB;YAClB,mBAAmB;YACnB,kBAAkB,EAAM,yBAAyB;YACjD,oBAAoB,EAAI,yBAAyB;YACjD,kBAAkB,EAAM,yBAAyB;YACjD,kBAAkB,EAAM,yBAAyB;SAClD,CAAC;QAEF,wEAAwE;QACxE,4FAA4F;QAC5F,4EAA4E;QAC5E,MAAM,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,KAAK,GAAG;YACZ,oBAAoB;YACpB,qBAAqB;SACtB,CAAC;QAEF,2CAA2C;QAC3C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,SAAS,GAAG;YAChB,SAAS;YACT,UAAU;YACV,SAAS;YACT,UAAU;YACV,SAAS,EAAG,wBAAwB;YACpC,SAAS;SACV,CAAC;QAEF,iFAAiF;QACjF,MAAM,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scoring.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/scoring.test.ts"],"names":[],"mappings":""}
|