@aiready/core 0.23.5 → 0.23.6
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/dist/{client-BF9NjhE8.d.mts → client-CKcjnPXt.d.mts} +1 -0
- package/dist/{client-BF9NjhE8.d.ts → client-CKcjnPXt.d.ts} +1 -0
- package/dist/client.d.mts +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/index.d.mts +10 -2
- package/dist/index.d.ts +10 -2
- package/dist/index.js +74 -13
- package/dist/index.mjs +74 -13
- package/package.json +1 -1
- package/dist/__tests__/parser-factory.test.d.ts +0 -5
- package/dist/__tests__/parser-factory.test.d.ts.map +0 -1
- package/dist/__tests__/parser-factory.test.js +0 -70
- package/dist/__tests__/parser-factory.test.js.map +0 -1
- package/dist/__tests__/python-parser.test.d.ts +0 -5
- package/dist/__tests__/python-parser.test.d.ts.map +0 -1
- package/dist/__tests__/python-parser.test.js +0 -194
- package/dist/__tests__/python-parser.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 -197
- package/dist/__tests__/scoring.test.js.map +0 -1
- package/dist/chunk-3YI4IS3D.mjs +0 -601
- package/dist/chunk-5HIXDC3X.mjs +0 -716
- package/dist/chunk-5V3L53AE.mjs +0 -805
- package/dist/chunk-CKVKHN3G.mjs +0 -660
- package/dist/chunk-COHIBX3Q.mjs +0 -635
- package/dist/chunk-CWRCDSKZ.mjs +0 -417
- package/dist/chunk-D3D3NCRR.mjs +0 -556
- package/dist/chunk-HCFYP7UD.mjs +0 -805
- package/dist/chunk-HFLFBA6F.mjs +0 -417
- package/dist/chunk-HKSARRCD.mjs +0 -365
- package/dist/chunk-JJ5JL5FX.mjs +0 -417
- package/dist/chunk-KDSTXVLQ.mjs +0 -724
- package/dist/chunk-KI7XORTN.mjs +0 -417
- package/dist/chunk-LTMHFNFK.mjs +0 -690
- package/dist/chunk-LTNXTXRI.mjs +0 -659
- package/dist/chunk-M22BXHBR.mjs +0 -805
- package/dist/chunk-MH3A3LX6.mjs +0 -615
- package/dist/chunk-NGHT7JOG.mjs +0 -697
- package/dist/chunk-OQ6IGDXG.mjs +0 -553
- package/dist/chunk-QAFB3HXQ.mjs +0 -590
- package/dist/chunk-QQBKXHLU.mjs +0 -678
- package/dist/chunk-RDHYGES7.mjs +0 -678
- package/dist/chunk-SWTDBVYJ.mjs +0 -660
- package/dist/chunk-UIWL5JQB.mjs +0 -417
- package/dist/chunk-UQGI67WR.mjs +0 -417
- package/dist/chunk-UTZOO4XO.mjs +0 -553
- package/dist/chunk-X4F46I5L.mjs +0 -635
- package/dist/chunk-XKK7YHPX.mjs +0 -619
- package/dist/chunk-YCA4FTEK.mjs +0 -600
- package/dist/chunk-ZSZRRTJM.mjs +0 -719
- package/dist/client-BgmiMoil.d.mts +0 -1344
- package/dist/client-BgmiMoil.d.ts +0 -1344
- package/dist/client-BxGrPuuN.d.mts +0 -1191
- package/dist/client-BxGrPuuN.d.ts +0 -1191
- package/dist/client-D-cn9ydj.d.mts +0 -1136
- package/dist/client-D-cn9ydj.d.ts +0 -1136
- package/dist/client-D9seCH4K.d.mts +0 -1334
- package/dist/client-D9seCH4K.d.ts +0 -1334
- package/dist/client-DIXIh7rw.d.mts +0 -1193
- package/dist/client-DIXIh7rw.d.ts +0 -1193
- package/dist/client-DVHXWOHw.d.mts +0 -1245
- package/dist/client-DVHXWOHw.d.ts +0 -1245
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/parsers/parser-factory.d.ts +0 -69
- package/dist/parsers/parser-factory.d.ts.map +0 -1
- package/dist/parsers/parser-factory.js +0 -116
- package/dist/parsers/parser-factory.js.map +0 -1
- package/dist/parsers/python-parser.d.ts +0 -47
- package/dist/parsers/python-parser.d.ts.map +0 -1
- package/dist/parsers/python-parser.js +0 -243
- package/dist/parsers/python-parser.js.map +0 -1
- package/dist/parsers/typescript-parser.d.ts +0 -22
- package/dist/parsers/typescript-parser.d.ts.map +0 -1
- package/dist/parsers/typescript-parser.js +0 -242
- package/dist/parsers/typescript-parser.js.map +0 -1
- package/dist/scoring.d.ts +0 -120
- package/dist/scoring.d.ts.map +0 -1
- package/dist/scoring.js +0 -197
- package/dist/scoring.js.map +0 -1
- package/dist/types/language.d.ts +0 -172
- package/dist/types/language.d.ts.map +0 -1
- package/dist/types/language.js +0 -45
- package/dist/types/language.js.map +0 -1
- package/dist/types.d.ts +0 -122
- 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 -59
- package/dist/utils/ast-parser.d.ts.map +0 -1
- package/dist/utils/ast-parser.js +0 -213
- package/dist/utils/ast-parser.js.map +0 -1
- package/dist/utils/cli-helpers.d.ts +0 -54
- package/dist/utils/cli-helpers.d.ts.map +0 -1
- package/dist/utils/cli-helpers.js +0 -78
- package/dist/utils/cli-helpers.js.map +0 -1
- package/dist/utils/config.d.ts +0 -9
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js +0 -80
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/file-scanner.d.ts +0 -16
- package/dist/utils/file-scanner.d.ts.map +0 -1
- package/dist/utils/file-scanner.js +0 -104
- package/dist/utils/file-scanner.js.map +0 -1
- package/dist/utils/metrics.d.ts +0 -6
- package/dist/utils/metrics.d.ts.map +0 -1
- package/dist/utils/metrics.js +0 -8
- package/dist/utils/metrics.js.map +0 -1
package/dist/types/language.d.ts
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Language-agnostic AST and parser interfaces for multi-language support
|
|
3
|
-
*
|
|
4
|
-
* This module provides abstractions for parsing different programming languages
|
|
5
|
-
* while maintaining a consistent interface for analysis tools.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Supported programming languages
|
|
9
|
-
*/
|
|
10
|
-
export declare enum Language {
|
|
11
|
-
TypeScript = 'typescript',
|
|
12
|
-
JavaScript = 'javascript',
|
|
13
|
-
Python = 'python',
|
|
14
|
-
Java = 'java',
|
|
15
|
-
Go = 'go',
|
|
16
|
-
Rust = 'rust',
|
|
17
|
-
CSharp = 'csharp',
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* File extensions mapped to languages
|
|
21
|
-
*/
|
|
22
|
-
export declare const LANGUAGE_EXTENSIONS: Record<string, Language>;
|
|
23
|
-
/**
|
|
24
|
-
* Location information in source code
|
|
25
|
-
*/
|
|
26
|
-
export interface SourceLocation {
|
|
27
|
-
line: number;
|
|
28
|
-
column: number;
|
|
29
|
-
}
|
|
30
|
-
export interface SourceRange {
|
|
31
|
-
start: SourceLocation;
|
|
32
|
-
end: SourceLocation;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Common AST node type (language-agnostic)
|
|
36
|
-
*/
|
|
37
|
-
export interface CommonASTNode {
|
|
38
|
-
type: string;
|
|
39
|
-
loc?: SourceRange;
|
|
40
|
-
raw?: any;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Export information (function, class, variable, etc.)
|
|
44
|
-
*/
|
|
45
|
-
export interface ExportInfo {
|
|
46
|
-
name: string;
|
|
47
|
-
type:
|
|
48
|
-
| 'function'
|
|
49
|
-
| 'class'
|
|
50
|
-
| 'const'
|
|
51
|
-
| 'type'
|
|
52
|
-
| 'interface'
|
|
53
|
-
| 'default'
|
|
54
|
-
| 'variable';
|
|
55
|
-
loc?: SourceRange;
|
|
56
|
-
/** Imports used within this export */
|
|
57
|
-
imports?: string[];
|
|
58
|
-
/** Dependencies on other exports in same file */
|
|
59
|
-
dependencies?: string[];
|
|
60
|
-
/** TypeScript types referenced */
|
|
61
|
-
typeReferences?: string[];
|
|
62
|
-
/** For methods: parent class name */
|
|
63
|
-
parentClass?: string;
|
|
64
|
-
/** For functions/methods: parameters */
|
|
65
|
-
parameters?: string[];
|
|
66
|
-
/** Visibility (public, private, protected) */
|
|
67
|
-
visibility?: 'public' | 'private' | 'protected';
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Import information
|
|
71
|
-
*/
|
|
72
|
-
export interface ImportInfo {
|
|
73
|
-
/** Module being imported from */
|
|
74
|
-
source: string;
|
|
75
|
-
/** What's being imported */
|
|
76
|
-
specifiers: string[];
|
|
77
|
-
/** Is this a type-only import (TypeScript) */
|
|
78
|
-
isTypeOnly?: boolean;
|
|
79
|
-
/** Location in source */
|
|
80
|
-
loc?: SourceRange;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Parse result containing exports and imports
|
|
84
|
-
*/
|
|
85
|
-
export interface ParseResult {
|
|
86
|
-
exports: ExportInfo[];
|
|
87
|
-
imports: ImportInfo[];
|
|
88
|
-
/** Language of the parsed file */
|
|
89
|
-
language: Language;
|
|
90
|
-
/** Any parse warnings (non-fatal) */
|
|
91
|
-
warnings?: string[];
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Naming convention rules per language
|
|
95
|
-
*/
|
|
96
|
-
export interface NamingConvention {
|
|
97
|
-
/** Allowed variable naming patterns */
|
|
98
|
-
variablePattern: RegExp;
|
|
99
|
-
/** Allowed function naming patterns */
|
|
100
|
-
functionPattern: RegExp;
|
|
101
|
-
/** Allowed class naming patterns */
|
|
102
|
-
classPattern: RegExp;
|
|
103
|
-
/** Allowed constant naming patterns */
|
|
104
|
-
constantPattern: RegExp;
|
|
105
|
-
/** Language-specific exceptions (e.g., __init__ in Python) */
|
|
106
|
-
exceptions?: string[];
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Language-specific configuration
|
|
110
|
-
*/
|
|
111
|
-
export interface LanguageConfig {
|
|
112
|
-
language: Language;
|
|
113
|
-
/** File extensions for this language */
|
|
114
|
-
extensions: string[];
|
|
115
|
-
/** Naming conventions */
|
|
116
|
-
namingConventions: NamingConvention;
|
|
117
|
-
/** Common abbreviations allowed */
|
|
118
|
-
allowedAbbreviations?: string[];
|
|
119
|
-
/** Language-specific keywords to ignore */
|
|
120
|
-
keywords?: string[];
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Abstract interface for language parsers
|
|
124
|
-
* Each language implementation should implement this interface
|
|
125
|
-
*/
|
|
126
|
-
export interface LanguageParser {
|
|
127
|
-
/** Language this parser handles */
|
|
128
|
-
readonly language: Language;
|
|
129
|
-
/** File extensions this parser supports */
|
|
130
|
-
readonly extensions: string[];
|
|
131
|
-
/**
|
|
132
|
-
* Parse source code and extract structure
|
|
133
|
-
* @param code - Source code to parse
|
|
134
|
-
* @param filePath - Path to the file (for context)
|
|
135
|
-
* @returns Parse result with exports and imports
|
|
136
|
-
* @throws ParseError if code has syntax errors
|
|
137
|
-
*/
|
|
138
|
-
parse(code: string, filePath: string): ParseResult;
|
|
139
|
-
/**
|
|
140
|
-
* Get naming conventions for this language
|
|
141
|
-
*/
|
|
142
|
-
getNamingConventions(): NamingConvention;
|
|
143
|
-
/**
|
|
144
|
-
* Check if this parser can handle a file
|
|
145
|
-
* @param filePath - File path to check
|
|
146
|
-
*/
|
|
147
|
-
canHandle(filePath: string): boolean;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Parser error with location information
|
|
151
|
-
*/
|
|
152
|
-
export declare class ParseError extends Error {
|
|
153
|
-
readonly filePath: string;
|
|
154
|
-
readonly loc?: SourceLocation | undefined;
|
|
155
|
-
constructor(
|
|
156
|
-
message: string,
|
|
157
|
-
filePath: string,
|
|
158
|
-
loc?: SourceLocation | undefined
|
|
159
|
-
);
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Statistics about parsed code
|
|
163
|
-
*/
|
|
164
|
-
export interface ParseStatistics {
|
|
165
|
-
language: Language;
|
|
166
|
-
filesAnalyzed: number;
|
|
167
|
-
totalExports: number;
|
|
168
|
-
totalImports: number;
|
|
169
|
-
parseErrors: number;
|
|
170
|
-
warnings: number;
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=language.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../../src/types/language.ts"],"names":[],"mappings":"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"}
|
package/dist/types/language.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Language-agnostic AST and parser interfaces for multi-language support
|
|
3
|
-
*
|
|
4
|
-
* This module provides abstractions for parsing different programming languages
|
|
5
|
-
* while maintaining a consistent interface for analysis tools.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Supported programming languages
|
|
9
|
-
*/
|
|
10
|
-
export var Language;
|
|
11
|
-
(function (Language) {
|
|
12
|
-
Language['TypeScript'] = 'typescript';
|
|
13
|
-
Language['JavaScript'] = 'javascript';
|
|
14
|
-
Language['Python'] = 'python';
|
|
15
|
-
Language['Java'] = 'java';
|
|
16
|
-
Language['Go'] = 'go';
|
|
17
|
-
Language['Rust'] = 'rust';
|
|
18
|
-
Language['CSharp'] = 'csharp';
|
|
19
|
-
})(Language || (Language = {}));
|
|
20
|
-
/**
|
|
21
|
-
* File extensions mapped to languages
|
|
22
|
-
*/
|
|
23
|
-
export const LANGUAGE_EXTENSIONS = {
|
|
24
|
-
'.ts': Language.TypeScript,
|
|
25
|
-
'.tsx': Language.TypeScript,
|
|
26
|
-
'.js': Language.JavaScript,
|
|
27
|
-
'.jsx': Language.JavaScript,
|
|
28
|
-
'.py': Language.Python,
|
|
29
|
-
'.java': Language.Java,
|
|
30
|
-
'.go': Language.Go,
|
|
31
|
-
'.rs': Language.Rust,
|
|
32
|
-
'.cs': Language.CSharp,
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Parser error with location information
|
|
36
|
-
*/
|
|
37
|
-
export class ParseError extends Error {
|
|
38
|
-
constructor(message, filePath, loc) {
|
|
39
|
-
super(message);
|
|
40
|
-
this.filePath = filePath;
|
|
41
|
-
this.loc = loc;
|
|
42
|
-
this.name = 'ParseError';
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=language.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"language.js","sourceRoot":"","sources":["../../src/types/language.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,qCAAyB,CAAA;IACzB,qCAAyB,CAAA;IACzB,6BAAiB,CAAA;IACjB,yBAAa,CAAA;IACb,qBAAS,CAAA;IACT,yBAAa,CAAA;IACb,6BAAiB,CAAA;AACnB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA6B;IAC3D,KAAK,EAAE,QAAQ,CAAC,UAAU;IAC1B,MAAM,EAAE,QAAQ,CAAC,UAAU;IAC3B,KAAK,EAAE,QAAQ,CAAC,UAAU;IAC1B,MAAM,EAAE,QAAQ,CAAC,UAAU;IAC3B,KAAK,EAAE,QAAQ,CAAC,MAAM;IACtB,OAAO,EAAE,QAAQ,CAAC,IAAI;IACtB,KAAK,EAAE,QAAQ,CAAC,EAAE;IAClB,KAAK,EAAE,QAAQ,CAAC,IAAI;IACpB,KAAK,EAAE,QAAQ,CAAC,MAAM;CACvB,CAAC;AAuIF;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YACE,OAAe,EACC,QAAgB,EAChB,GAAoB;QAEpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,aAAQ,GAAR,QAAQ,CAAQ;QAChB,QAAG,GAAH,GAAG,CAAiB;QAGpC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF"}
|
package/dist/types.d.ts
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
export interface AnalysisResult {
|
|
2
|
-
fileName: string;
|
|
3
|
-
issues: Issue[];
|
|
4
|
-
metrics: Metrics;
|
|
5
|
-
}
|
|
6
|
-
export interface Issue {
|
|
7
|
-
type: IssueType;
|
|
8
|
-
severity: 'critical' | 'major' | 'minor' | 'info';
|
|
9
|
-
message: string;
|
|
10
|
-
location: Location;
|
|
11
|
-
suggestion?: string;
|
|
12
|
-
}
|
|
13
|
-
export type IssueType =
|
|
14
|
-
| 'duplicate-pattern'
|
|
15
|
-
| 'context-fragmentation'
|
|
16
|
-
| 'doc-drift'
|
|
17
|
-
| 'naming-inconsistency'
|
|
18
|
-
| 'naming-quality'
|
|
19
|
-
| 'pattern-inconsistency'
|
|
20
|
-
| 'architecture-inconsistency'
|
|
21
|
-
| 'dead-code'
|
|
22
|
-
| 'circular-dependency'
|
|
23
|
-
| 'missing-types';
|
|
24
|
-
export interface Location {
|
|
25
|
-
file: string;
|
|
26
|
-
line: number;
|
|
27
|
-
column?: number;
|
|
28
|
-
endLine?: number;
|
|
29
|
-
endColumn?: number;
|
|
30
|
-
}
|
|
31
|
-
export interface Metrics {
|
|
32
|
-
tokenCost?: number;
|
|
33
|
-
complexityScore?: number;
|
|
34
|
-
consistencyScore?: number;
|
|
35
|
-
docFreshnessScore?: number;
|
|
36
|
-
}
|
|
37
|
-
export interface ScanOptions {
|
|
38
|
-
rootDir: string;
|
|
39
|
-
include?: string[];
|
|
40
|
-
exclude?: string[];
|
|
41
|
-
maxDepth?: number;
|
|
42
|
-
}
|
|
43
|
-
export interface AIReadyConfig {
|
|
44
|
-
scan?: {
|
|
45
|
-
include?: string[];
|
|
46
|
-
exclude?: string[];
|
|
47
|
-
tools?: string[];
|
|
48
|
-
};
|
|
49
|
-
tools?: {
|
|
50
|
-
'pattern-detect'?: {
|
|
51
|
-
enabled?: boolean;
|
|
52
|
-
scoreWeight?: number;
|
|
53
|
-
minSimilarity?: number;
|
|
54
|
-
minLines?: number;
|
|
55
|
-
batchSize?: number;
|
|
56
|
-
approx?: boolean;
|
|
57
|
-
minSharedTokens?: number;
|
|
58
|
-
maxCandidatesPerBlock?: number;
|
|
59
|
-
streamResults?: boolean;
|
|
60
|
-
maxResults?: number;
|
|
61
|
-
};
|
|
62
|
-
'context-analyzer'?: {
|
|
63
|
-
enabled?: boolean;
|
|
64
|
-
scoreWeight?: number;
|
|
65
|
-
maxDepth?: number;
|
|
66
|
-
maxContextBudget?: number;
|
|
67
|
-
minCohesion?: number;
|
|
68
|
-
maxFragmentation?: number;
|
|
69
|
-
focus?: 'fragmentation' | 'cohesion' | 'depth' | 'all';
|
|
70
|
-
includeNodeModules?: boolean;
|
|
71
|
-
maxResults?: number;
|
|
72
|
-
domainKeywords?: string[];
|
|
73
|
-
domainPatterns?: string[];
|
|
74
|
-
pathDomainMap?: Record<string, string>;
|
|
75
|
-
};
|
|
76
|
-
consistency?: {
|
|
77
|
-
enabled?: boolean;
|
|
78
|
-
scoreWeight?: number;
|
|
79
|
-
acceptedAbbreviations?: string[];
|
|
80
|
-
shortWords?: string[];
|
|
81
|
-
disableChecks?: (
|
|
82
|
-
| 'single-letter'
|
|
83
|
-
| 'abbreviation'
|
|
84
|
-
| 'convention-mix'
|
|
85
|
-
| 'unclear'
|
|
86
|
-
| 'poor-naming'
|
|
87
|
-
)[];
|
|
88
|
-
};
|
|
89
|
-
[toolName: string]:
|
|
90
|
-
| {
|
|
91
|
-
enabled?: boolean;
|
|
92
|
-
scoreWeight?: number;
|
|
93
|
-
[key: string]: any;
|
|
94
|
-
}
|
|
95
|
-
| undefined;
|
|
96
|
-
};
|
|
97
|
-
scoring?: {
|
|
98
|
-
threshold?: number;
|
|
99
|
-
showBreakdown?: boolean;
|
|
100
|
-
compareBaseline?: string;
|
|
101
|
-
saveTo?: string;
|
|
102
|
-
};
|
|
103
|
-
output?: {
|
|
104
|
-
format?: 'console' | 'json' | 'html';
|
|
105
|
-
file?: string;
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
export interface Report {
|
|
109
|
-
summary: {
|
|
110
|
-
totalFiles: number;
|
|
111
|
-
totalIssues: number;
|
|
112
|
-
criticalIssues: number;
|
|
113
|
-
majorIssues: number;
|
|
114
|
-
};
|
|
115
|
-
results: AnalysisResult[];
|
|
116
|
-
metrics: {
|
|
117
|
-
overallScore: number;
|
|
118
|
-
tokenCostTotal: number;
|
|
119
|
-
avgConsistency: number;
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
export interface ExportWithImports {
|
|
2
|
-
name: string;
|
|
3
|
-
type: 'function' | 'class' | 'const' | 'type' | 'interface' | 'default';
|
|
4
|
-
imports: string[];
|
|
5
|
-
dependencies: string[];
|
|
6
|
-
typeReferences: string[];
|
|
7
|
-
loc?: {
|
|
8
|
-
start: {
|
|
9
|
-
line: number;
|
|
10
|
-
column: number;
|
|
11
|
-
};
|
|
12
|
-
end: {
|
|
13
|
-
line: number;
|
|
14
|
-
column: number;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
export interface FileImport {
|
|
19
|
-
source: string;
|
|
20
|
-
specifiers: string[];
|
|
21
|
-
isTypeOnly: boolean;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Parse TypeScript/JavaScript file and extract exports with their import dependencies
|
|
25
|
-
*/
|
|
26
|
-
export declare function parseFileExports(
|
|
27
|
-
code: string,
|
|
28
|
-
filePath: string
|
|
29
|
-
): {
|
|
30
|
-
exports: ExportWithImports[];
|
|
31
|
-
imports: FileImport[];
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Calculate import-based similarity between two exports (Jaccard index)
|
|
35
|
-
*/
|
|
36
|
-
export declare function calculateImportSimilarity(
|
|
37
|
-
export1: ExportWithImports,
|
|
38
|
-
export2: ExportWithImports
|
|
39
|
-
): number;
|
|
40
|
-
export interface ASTNode {
|
|
41
|
-
type: string;
|
|
42
|
-
loc?: {
|
|
43
|
-
start: {
|
|
44
|
-
line: number;
|
|
45
|
-
column: number;
|
|
46
|
-
};
|
|
47
|
-
end: {
|
|
48
|
-
line: number;
|
|
49
|
-
column: number;
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
export declare function parseCode(
|
|
54
|
-
code: string,
|
|
55
|
-
language: string
|
|
56
|
-
): ASTNode | null;
|
|
57
|
-
export declare function extractFunctions(ast: ASTNode): ASTNode[];
|
|
58
|
-
export declare function extractImports(ast: ASTNode): string[];
|
|
59
|
-
//# sourceMappingURL=ast-parser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ast-parser.d.ts","sourceRoot":"","sources":["../../src/utils/ast-parser.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACxE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACxC,GAAG,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACvC,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IAChE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB,CAiBA;AA0ID;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,iBAAiB,GACzB,MAAM,CAYR;AAsDD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACxC,GAAG,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACvC,CAAC;CACH;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAGxE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,EAAE,CAGxD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAGrD"}
|
package/dist/utils/ast-parser.js
DELETED
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
import { parse } from '@typescript-eslint/typescript-estree';
|
|
2
|
-
/**
|
|
3
|
-
* Parse TypeScript/JavaScript file and extract exports with their import dependencies
|
|
4
|
-
*/
|
|
5
|
-
export function parseFileExports(code, filePath) {
|
|
6
|
-
try {
|
|
7
|
-
const ast = parse(code, {
|
|
8
|
-
loc: true,
|
|
9
|
-
range: true,
|
|
10
|
-
jsx: filePath.endsWith('.tsx') || filePath.endsWith('.jsx'),
|
|
11
|
-
filePath,
|
|
12
|
-
});
|
|
13
|
-
const imports = extractFileImports(ast);
|
|
14
|
-
const exports = extractExportsWithDependencies(ast, imports);
|
|
15
|
-
return { exports, imports };
|
|
16
|
-
} catch (error) {
|
|
17
|
-
// Fallback to empty if parsing fails
|
|
18
|
-
return { exports: [], imports: [] };
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Extract all imports from the file
|
|
23
|
-
*/
|
|
24
|
-
function extractFileImports(ast) {
|
|
25
|
-
const imports = [];
|
|
26
|
-
for (const node of ast.body) {
|
|
27
|
-
if (node.type === 'ImportDeclaration') {
|
|
28
|
-
const source = node.source.value;
|
|
29
|
-
const specifiers = [];
|
|
30
|
-
const isTypeOnly = node.importKind === 'type';
|
|
31
|
-
for (const spec of node.specifiers) {
|
|
32
|
-
if (spec.type === 'ImportSpecifier') {
|
|
33
|
-
const imported = spec.imported;
|
|
34
|
-
const importName =
|
|
35
|
-
imported.type === 'Identifier' ? imported.name : imported.value;
|
|
36
|
-
specifiers.push(importName);
|
|
37
|
-
} else if (spec.type === 'ImportDefaultSpecifier') {
|
|
38
|
-
specifiers.push('default');
|
|
39
|
-
} else if (spec.type === 'ImportNamespaceSpecifier') {
|
|
40
|
-
specifiers.push('*');
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
imports.push({ source, specifiers, isTypeOnly });
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return imports;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Extract exports and their import dependencies
|
|
50
|
-
*/
|
|
51
|
-
function extractExportsWithDependencies(ast, fileImports) {
|
|
52
|
-
const exports = [];
|
|
53
|
-
const importedNames = new Set(fileImports.flatMap((imp) => imp.specifiers));
|
|
54
|
-
for (const node of ast.body) {
|
|
55
|
-
if (node.type === 'ExportNamedDeclaration') {
|
|
56
|
-
if (node.declaration) {
|
|
57
|
-
const exportNodes = extractFromDeclaration(node.declaration);
|
|
58
|
-
for (const exp of exportNodes) {
|
|
59
|
-
const usedImports = findUsedImports(node.declaration, importedNames);
|
|
60
|
-
const typeReferences = extractTypeReferences(node.declaration);
|
|
61
|
-
exports.push({
|
|
62
|
-
...exp,
|
|
63
|
-
imports: usedImports,
|
|
64
|
-
dependencies: [],
|
|
65
|
-
typeReferences,
|
|
66
|
-
loc: node.loc,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
} else if (node.type === 'ExportDefaultDeclaration') {
|
|
71
|
-
const usedImports = findUsedImports(node.declaration, importedNames);
|
|
72
|
-
const typeReferences = extractTypeReferences(node.declaration);
|
|
73
|
-
exports.push({
|
|
74
|
-
name: 'default',
|
|
75
|
-
type: 'default',
|
|
76
|
-
imports: usedImports,
|
|
77
|
-
dependencies: [],
|
|
78
|
-
typeReferences,
|
|
79
|
-
loc: node.loc,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return exports;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Extract export information from a declaration
|
|
87
|
-
*/
|
|
88
|
-
function extractFromDeclaration(declaration) {
|
|
89
|
-
const results = [];
|
|
90
|
-
if (
|
|
91
|
-
declaration.type === 'FunctionDeclaration' &&
|
|
92
|
-
'id' in declaration &&
|
|
93
|
-
declaration.id
|
|
94
|
-
) {
|
|
95
|
-
results.push({ name: declaration.id.name, type: 'function' });
|
|
96
|
-
} else if (
|
|
97
|
-
declaration.type === 'ClassDeclaration' &&
|
|
98
|
-
'id' in declaration &&
|
|
99
|
-
declaration.id
|
|
100
|
-
) {
|
|
101
|
-
results.push({ name: declaration.id.name, type: 'class' });
|
|
102
|
-
} else if (declaration.type === 'VariableDeclaration') {
|
|
103
|
-
for (const declarator of declaration.declarations) {
|
|
104
|
-
if (declarator.id.type === 'Identifier') {
|
|
105
|
-
results.push({ name: declarator.id.name, type: 'const' });
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
} else if (declaration.type === 'TSTypeAliasDeclaration') {
|
|
109
|
-
results.push({ name: declaration.id.name, type: 'type' });
|
|
110
|
-
} else if (declaration.type === 'TSInterfaceDeclaration') {
|
|
111
|
-
results.push({ name: declaration.id.name, type: 'interface' });
|
|
112
|
-
}
|
|
113
|
-
return results;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Find which imports are used within a node
|
|
117
|
-
*/
|
|
118
|
-
function findUsedImports(node, importedNames) {
|
|
119
|
-
const usedImports = new Set();
|
|
120
|
-
function visit(n) {
|
|
121
|
-
if (n.type === 'Identifier' && importedNames.has(n.name)) {
|
|
122
|
-
usedImports.add(n.name);
|
|
123
|
-
}
|
|
124
|
-
// Recursively visit child nodes
|
|
125
|
-
for (const key in n) {
|
|
126
|
-
const value = n[key];
|
|
127
|
-
if (value && typeof value === 'object') {
|
|
128
|
-
if (Array.isArray(value)) {
|
|
129
|
-
value.forEach((child) => {
|
|
130
|
-
if (child && typeof child === 'object' && 'type' in child) {
|
|
131
|
-
visit(child);
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
} else if ('type' in value) {
|
|
135
|
-
visit(value);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
visit(node);
|
|
141
|
-
return Array.from(usedImports);
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Calculate import-based similarity between two exports (Jaccard index)
|
|
145
|
-
*/
|
|
146
|
-
export function calculateImportSimilarity(export1, export2) {
|
|
147
|
-
if (export1.imports.length === 0 && export2.imports.length === 0) {
|
|
148
|
-
return 1; // Both have no imports = perfectly similar
|
|
149
|
-
}
|
|
150
|
-
const set1 = new Set(export1.imports);
|
|
151
|
-
const set2 = new Set(export2.imports);
|
|
152
|
-
const intersection = new Set([...set1].filter((x) => set2.has(x)));
|
|
153
|
-
const union = new Set([...set1, ...set2]);
|
|
154
|
-
return intersection.size / union.size;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Extract TypeScript type references from a node
|
|
158
|
-
* Collects all type identifiers used in type annotations
|
|
159
|
-
*/
|
|
160
|
-
function extractTypeReferences(node) {
|
|
161
|
-
const types = new Set();
|
|
162
|
-
function visit(n) {
|
|
163
|
-
if (!n || typeof n !== 'object') return;
|
|
164
|
-
// Type references
|
|
165
|
-
if (n.type === 'TSTypeReference' && n.typeName) {
|
|
166
|
-
if (n.typeName.type === 'Identifier') {
|
|
167
|
-
types.add(n.typeName.name);
|
|
168
|
-
} else if (n.typeName.type === 'TSQualifiedName') {
|
|
169
|
-
// Handle qualified names like A.B.C
|
|
170
|
-
let current = n.typeName;
|
|
171
|
-
while (current.type === 'TSQualifiedName') {
|
|
172
|
-
if (current.right?.type === 'Identifier') {
|
|
173
|
-
types.add(current.right.name);
|
|
174
|
-
}
|
|
175
|
-
current = current.left;
|
|
176
|
-
}
|
|
177
|
-
if (current.type === 'Identifier') {
|
|
178
|
-
types.add(current.name);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
// Interface references
|
|
183
|
-
if (n.type === 'TSInterfaceHeritage' && n.expression) {
|
|
184
|
-
if (n.expression.type === 'Identifier') {
|
|
185
|
-
types.add(n.expression.name);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
// Recursively visit children
|
|
189
|
-
for (const key of Object.keys(n)) {
|
|
190
|
-
const value = n[key];
|
|
191
|
-
if (Array.isArray(value)) {
|
|
192
|
-
value.forEach(visit);
|
|
193
|
-
} else if (value && typeof value === 'object') {
|
|
194
|
-
visit(value);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
visit(node);
|
|
199
|
-
return Array.from(types);
|
|
200
|
-
}
|
|
201
|
-
export function parseCode(code, language) {
|
|
202
|
-
// Deprecated: Use parseFileExports instead
|
|
203
|
-
return null;
|
|
204
|
-
}
|
|
205
|
-
export function extractFunctions(ast) {
|
|
206
|
-
// Deprecated
|
|
207
|
-
return [];
|
|
208
|
-
}
|
|
209
|
-
export function extractImports(ast) {
|
|
210
|
-
// Deprecated
|
|
211
|
-
return [];
|
|
212
|
-
}
|
|
213
|
-
//# sourceMappingURL=ast-parser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ast-parser.js","sourceRoot":"","sources":["../../src/utils/ast-parser.ts"],"names":[],"mappings":"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"}
|