@aiready/core 0.23.5 → 0.23.7

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 (111) hide show
  1. package/dist/{client-D-cn9ydj.d.mts → client-BrIMPk89.d.mts} +94 -16
  2. package/dist/{client-D-cn9ydj.d.ts → client-BrIMPk89.d.ts} +94 -16
  3. package/dist/client-C5BuGX4F.d.mts +1205 -0
  4. package/dist/client-C5BuGX4F.d.ts +1205 -0
  5. package/dist/{client-BF9NjhE8.d.mts → client-CKcjnPXt.d.mts} +1 -0
  6. package/dist/{client-BF9NjhE8.d.ts → client-CKcjnPXt.d.ts} +1 -0
  7. package/dist/client.d.mts +1 -1
  8. package/dist/client.d.ts +1 -1
  9. package/dist/index.d.mts +464 -134
  10. package/dist/index.d.ts +464 -134
  11. package/dist/index.js +211 -47
  12. package/dist/index.mjs +211 -44
  13. package/package.json +1 -1
  14. package/dist/__tests__/parser-factory.test.d.ts +0 -5
  15. package/dist/__tests__/parser-factory.test.d.ts.map +0 -1
  16. package/dist/__tests__/parser-factory.test.js +0 -70
  17. package/dist/__tests__/parser-factory.test.js.map +0 -1
  18. package/dist/__tests__/python-parser.test.d.ts +0 -5
  19. package/dist/__tests__/python-parser.test.d.ts.map +0 -1
  20. package/dist/__tests__/python-parser.test.js +0 -194
  21. package/dist/__tests__/python-parser.test.js.map +0 -1
  22. package/dist/__tests__/scoring.test.d.ts +0 -2
  23. package/dist/__tests__/scoring.test.d.ts.map +0 -1
  24. package/dist/__tests__/scoring.test.js +0 -197
  25. package/dist/__tests__/scoring.test.js.map +0 -1
  26. package/dist/chunk-3YI4IS3D.mjs +0 -601
  27. package/dist/chunk-5HIXDC3X.mjs +0 -716
  28. package/dist/chunk-5V3L53AE.mjs +0 -805
  29. package/dist/chunk-CKVKHN3G.mjs +0 -660
  30. package/dist/chunk-COHIBX3Q.mjs +0 -635
  31. package/dist/chunk-CWRCDSKZ.mjs +0 -417
  32. package/dist/chunk-D3D3NCRR.mjs +0 -556
  33. package/dist/chunk-HCFYP7UD.mjs +0 -805
  34. package/dist/chunk-HFLFBA6F.mjs +0 -417
  35. package/dist/chunk-HKSARRCD.mjs +0 -365
  36. package/dist/chunk-JJ5JL5FX.mjs +0 -417
  37. package/dist/chunk-KDSTXVLQ.mjs +0 -724
  38. package/dist/chunk-KI7XORTN.mjs +0 -417
  39. package/dist/chunk-LTMHFNFK.mjs +0 -690
  40. package/dist/chunk-LTNXTXRI.mjs +0 -659
  41. package/dist/chunk-M22BXHBR.mjs +0 -805
  42. package/dist/chunk-MH3A3LX6.mjs +0 -615
  43. package/dist/chunk-NGHT7JOG.mjs +0 -697
  44. package/dist/chunk-OQ6IGDXG.mjs +0 -553
  45. package/dist/chunk-QAFB3HXQ.mjs +0 -590
  46. package/dist/chunk-QQBKXHLU.mjs +0 -678
  47. package/dist/chunk-RDHYGES7.mjs +0 -678
  48. package/dist/chunk-SWTDBVYJ.mjs +0 -660
  49. package/dist/chunk-UIWL5JQB.mjs +0 -417
  50. package/dist/chunk-UQGI67WR.mjs +0 -417
  51. package/dist/chunk-UTZOO4XO.mjs +0 -553
  52. package/dist/chunk-X4F46I5L.mjs +0 -635
  53. package/dist/chunk-XKK7YHPX.mjs +0 -619
  54. package/dist/chunk-YCA4FTEK.mjs +0 -600
  55. package/dist/chunk-ZSZRRTJM.mjs +0 -719
  56. package/dist/client-BgmiMoil.d.mts +0 -1344
  57. package/dist/client-BgmiMoil.d.ts +0 -1344
  58. package/dist/client-BxGrPuuN.d.mts +0 -1191
  59. package/dist/client-BxGrPuuN.d.ts +0 -1191
  60. package/dist/client-D9seCH4K.d.mts +0 -1334
  61. package/dist/client-D9seCH4K.d.ts +0 -1334
  62. package/dist/client-DIXIh7rw.d.mts +0 -1193
  63. package/dist/client-DIXIh7rw.d.ts +0 -1193
  64. package/dist/client-DVHXWOHw.d.mts +0 -1245
  65. package/dist/client-DVHXWOHw.d.ts +0 -1245
  66. package/dist/index.d.ts.map +0 -1
  67. package/dist/index.js.map +0 -1
  68. package/dist/parsers/parser-factory.d.ts +0 -69
  69. package/dist/parsers/parser-factory.d.ts.map +0 -1
  70. package/dist/parsers/parser-factory.js +0 -116
  71. package/dist/parsers/parser-factory.js.map +0 -1
  72. package/dist/parsers/python-parser.d.ts +0 -47
  73. package/dist/parsers/python-parser.d.ts.map +0 -1
  74. package/dist/parsers/python-parser.js +0 -243
  75. package/dist/parsers/python-parser.js.map +0 -1
  76. package/dist/parsers/typescript-parser.d.ts +0 -22
  77. package/dist/parsers/typescript-parser.d.ts.map +0 -1
  78. package/dist/parsers/typescript-parser.js +0 -242
  79. package/dist/parsers/typescript-parser.js.map +0 -1
  80. package/dist/scoring.d.ts +0 -120
  81. package/dist/scoring.d.ts.map +0 -1
  82. package/dist/scoring.js +0 -197
  83. package/dist/scoring.js.map +0 -1
  84. package/dist/types/language.d.ts +0 -172
  85. package/dist/types/language.d.ts.map +0 -1
  86. package/dist/types/language.js +0 -45
  87. package/dist/types/language.js.map +0 -1
  88. package/dist/types.d.ts +0 -122
  89. package/dist/types.d.ts.map +0 -1
  90. package/dist/types.js +0 -2
  91. package/dist/types.js.map +0 -1
  92. package/dist/utils/ast-parser.d.ts +0 -59
  93. package/dist/utils/ast-parser.d.ts.map +0 -1
  94. package/dist/utils/ast-parser.js +0 -213
  95. package/dist/utils/ast-parser.js.map +0 -1
  96. package/dist/utils/cli-helpers.d.ts +0 -54
  97. package/dist/utils/cli-helpers.d.ts.map +0 -1
  98. package/dist/utils/cli-helpers.js +0 -78
  99. package/dist/utils/cli-helpers.js.map +0 -1
  100. package/dist/utils/config.d.ts +0 -9
  101. package/dist/utils/config.d.ts.map +0 -1
  102. package/dist/utils/config.js +0 -80
  103. package/dist/utils/config.js.map +0 -1
  104. package/dist/utils/file-scanner.d.ts +0 -16
  105. package/dist/utils/file-scanner.d.ts.map +0 -1
  106. package/dist/utils/file-scanner.js +0 -104
  107. package/dist/utils/file-scanner.js.map +0 -1
  108. package/dist/utils/metrics.d.ts +0 -6
  109. package/dist/utils/metrics.d.ts.map +0 -1
  110. package/dist/utils/metrics.js +0 -8
  111. 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":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,SAAS,GACjB,mBAAmB,GACnB,uBAAuB,GACvB,WAAW,GACX,sBAAsB,GACpB,gBAAgB,GAChB,uBAAuB,GACvB,4BAA4B,GAC9B,WAAW,GACX,qBAAqB,GACrB,eAAe,CAAC;AAEpB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAE5B,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IAGF,KAAK,CAAC,EAAE;QACN,gBAAgB,CAAC,EAAE;YACjB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;YAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,kBAAkB,CAAC,EAAE;YACnB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,KAAK,CAAC,EAAE,eAAe,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC;YACvD,kBAAkB,CAAC,EAAE,OAAO,CAAC;YAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;YAEpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;YAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;YAC1B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACxC,CAAC;QACF,aAAa,CAAC,EAAE;YACd,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,WAAW,CAAC,EAAE,MAAM,CAAC;YAErB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;YAEjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;YAEtB,aAAa,CAAC,EAAE,CAAC,eAAe,GAAG,cAAc,GAAG,gBAAgB,GAAG,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC;SACrG,CAAC;QACF,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;SACpB,GAAG,SAAS,CAAC;KACf,CAAC;IAGF,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAGF,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;QACrC,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH"}
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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"}