@aiready/core 0.23.4 → 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.
Files changed (109) hide show
  1. package/dist/{chunk-NGHT7JOG.mjs → chunk-Q55AMEFV.mjs} +63 -0
  2. package/dist/{client-D-cn9ydj.d.mts → client-CKcjnPXt.d.mts} +79 -1
  3. package/dist/{client-D-cn9ydj.d.ts → client-CKcjnPXt.d.ts} +79 -1
  4. package/dist/client.d.mts +1 -1
  5. package/dist/client.d.ts +1 -1
  6. package/dist/client.js +66 -0
  7. package/dist/client.mjs +9 -1
  8. package/dist/index.d.mts +10 -2
  9. package/dist/index.d.ts +10 -2
  10. package/dist/index.js +159 -21
  11. package/dist/index.mjs +102 -22
  12. package/package.json +1 -1
  13. package/dist/__tests__/parser-factory.test.d.ts +0 -5
  14. package/dist/__tests__/parser-factory.test.d.ts.map +0 -1
  15. package/dist/__tests__/parser-factory.test.js +0 -70
  16. package/dist/__tests__/parser-factory.test.js.map +0 -1
  17. package/dist/__tests__/python-parser.test.d.ts +0 -5
  18. package/dist/__tests__/python-parser.test.d.ts.map +0 -1
  19. package/dist/__tests__/python-parser.test.js +0 -194
  20. package/dist/__tests__/python-parser.test.js.map +0 -1
  21. package/dist/__tests__/scoring.test.d.ts +0 -2
  22. package/dist/__tests__/scoring.test.d.ts.map +0 -1
  23. package/dist/__tests__/scoring.test.js +0 -197
  24. package/dist/__tests__/scoring.test.js.map +0 -1
  25. package/dist/chunk-3YI4IS3D.mjs +0 -601
  26. package/dist/chunk-5HIXDC3X.mjs +0 -716
  27. package/dist/chunk-5V3L53AE.mjs +0 -805
  28. package/dist/chunk-CKVKHN3G.mjs +0 -660
  29. package/dist/chunk-COHIBX3Q.mjs +0 -635
  30. package/dist/chunk-CWRCDSKZ.mjs +0 -417
  31. package/dist/chunk-D3D3NCRR.mjs +0 -556
  32. package/dist/chunk-HCFYP7UD.mjs +0 -805
  33. package/dist/chunk-HFLFBA6F.mjs +0 -417
  34. package/dist/chunk-HKSARRCD.mjs +0 -365
  35. package/dist/chunk-JJ5JL5FX.mjs +0 -417
  36. package/dist/chunk-KDSTXVLQ.mjs +0 -724
  37. package/dist/chunk-KI7XORTN.mjs +0 -417
  38. package/dist/chunk-LTMHFNFK.mjs +0 -690
  39. package/dist/chunk-LTNXTXRI.mjs +0 -659
  40. package/dist/chunk-M22BXHBR.mjs +0 -805
  41. package/dist/chunk-MH3A3LX6.mjs +0 -615
  42. package/dist/chunk-OQ6IGDXG.mjs +0 -553
  43. package/dist/chunk-QAFB3HXQ.mjs +0 -590
  44. package/dist/chunk-QQBKXHLU.mjs +0 -678
  45. package/dist/chunk-RDHYGES7.mjs +0 -678
  46. package/dist/chunk-SWTDBVYJ.mjs +0 -660
  47. package/dist/chunk-UIWL5JQB.mjs +0 -417
  48. package/dist/chunk-UQGI67WR.mjs +0 -417
  49. package/dist/chunk-UTZOO4XO.mjs +0 -553
  50. package/dist/chunk-X4F46I5L.mjs +0 -635
  51. package/dist/chunk-XKK7YHPX.mjs +0 -619
  52. package/dist/chunk-YCA4FTEK.mjs +0 -600
  53. package/dist/chunk-ZSZRRTJM.mjs +0 -719
  54. package/dist/client-BgmiMoil.d.mts +0 -1344
  55. package/dist/client-BgmiMoil.d.ts +0 -1344
  56. package/dist/client-BxGrPuuN.d.mts +0 -1191
  57. package/dist/client-BxGrPuuN.d.ts +0 -1191
  58. package/dist/client-D9seCH4K.d.mts +0 -1334
  59. package/dist/client-D9seCH4K.d.ts +0 -1334
  60. package/dist/client-DIXIh7rw.d.mts +0 -1193
  61. package/dist/client-DIXIh7rw.d.ts +0 -1193
  62. package/dist/client-DVHXWOHw.d.mts +0 -1245
  63. package/dist/client-DVHXWOHw.d.ts +0 -1245
  64. package/dist/index.d.ts.map +0 -1
  65. package/dist/index.js.map +0 -1
  66. package/dist/parsers/parser-factory.d.ts +0 -69
  67. package/dist/parsers/parser-factory.d.ts.map +0 -1
  68. package/dist/parsers/parser-factory.js +0 -116
  69. package/dist/parsers/parser-factory.js.map +0 -1
  70. package/dist/parsers/python-parser.d.ts +0 -47
  71. package/dist/parsers/python-parser.d.ts.map +0 -1
  72. package/dist/parsers/python-parser.js +0 -243
  73. package/dist/parsers/python-parser.js.map +0 -1
  74. package/dist/parsers/typescript-parser.d.ts +0 -22
  75. package/dist/parsers/typescript-parser.d.ts.map +0 -1
  76. package/dist/parsers/typescript-parser.js +0 -242
  77. package/dist/parsers/typescript-parser.js.map +0 -1
  78. package/dist/scoring.d.ts +0 -120
  79. package/dist/scoring.d.ts.map +0 -1
  80. package/dist/scoring.js +0 -197
  81. package/dist/scoring.js.map +0 -1
  82. package/dist/types/language.d.ts +0 -172
  83. package/dist/types/language.d.ts.map +0 -1
  84. package/dist/types/language.js +0 -45
  85. package/dist/types/language.js.map +0 -1
  86. package/dist/types.d.ts +0 -122
  87. package/dist/types.d.ts.map +0 -1
  88. package/dist/types.js +0 -2
  89. package/dist/types.js.map +0 -1
  90. package/dist/utils/ast-parser.d.ts +0 -59
  91. package/dist/utils/ast-parser.d.ts.map +0 -1
  92. package/dist/utils/ast-parser.js +0 -213
  93. package/dist/utils/ast-parser.js.map +0 -1
  94. package/dist/utils/cli-helpers.d.ts +0 -54
  95. package/dist/utils/cli-helpers.d.ts.map +0 -1
  96. package/dist/utils/cli-helpers.js +0 -78
  97. package/dist/utils/cli-helpers.js.map +0 -1
  98. package/dist/utils/config.d.ts +0 -9
  99. package/dist/utils/config.d.ts.map +0 -1
  100. package/dist/utils/config.js +0 -80
  101. package/dist/utils/config.js.map +0 -1
  102. package/dist/utils/file-scanner.d.ts +0 -16
  103. package/dist/utils/file-scanner.d.ts.map +0 -1
  104. package/dist/utils/file-scanner.js +0 -104
  105. package/dist/utils/file-scanner.js.map +0 -1
  106. package/dist/utils/metrics.d.ts +0 -6
  107. package/dist/utils/metrics.d.ts.map +0 -1
  108. package/dist/utils/metrics.js +0 -8
  109. package/dist/utils/metrics.js.map +0 -1
@@ -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":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,oBAAY,QAAQ;IAClB,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,EAAE,OAAO;IACT,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAUxD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,WAAW,CAAC;IAElB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IACrF,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB;IACzB,GAAG,CAAC,EAAE,WAAW,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,kCAAkC;IAClC,QAAQ,EAAE,QAAQ,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,uCAAuC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,wCAAwC;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,yBAAyB;IACzB,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,mCAAmC;IACnC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAE9B;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;IAEnD;;OAEG;IACH,oBAAoB,IAAI,gBAAgB,CAAC;IAEzC;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CACtC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;aAGjB,QAAQ,EAAE,MAAM;aAChB,GAAG,CAAC,EAAE,cAAc;gBAFpC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,cAAc,YAAA;CAKvC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -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
@@ -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
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
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"}
@@ -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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"}