@theihtisham/ai-testgen 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +383 -0
  3. package/dist/analyzers/analyzer.d.ts +10 -0
  4. package/dist/analyzers/analyzer.d.ts.map +1 -0
  5. package/dist/analyzers/analyzer.js +131 -0
  6. package/dist/analyzers/analyzer.js.map +1 -0
  7. package/dist/analyzers/go-analyzer.d.ts +3 -0
  8. package/dist/analyzers/go-analyzer.d.ts.map +1 -0
  9. package/dist/analyzers/go-analyzer.js +244 -0
  10. package/dist/analyzers/go-analyzer.js.map +1 -0
  11. package/dist/analyzers/index.d.ts +5 -0
  12. package/dist/analyzers/index.d.ts.map +1 -0
  13. package/dist/analyzers/index.js +15 -0
  14. package/dist/analyzers/index.js.map +1 -0
  15. package/dist/analyzers/js-ts-analyzer.d.ts +3 -0
  16. package/dist/analyzers/js-ts-analyzer.d.ts.map +1 -0
  17. package/dist/analyzers/js-ts-analyzer.js +299 -0
  18. package/dist/analyzers/js-ts-analyzer.js.map +1 -0
  19. package/dist/analyzers/python-analyzer.d.ts +3 -0
  20. package/dist/analyzers/python-analyzer.d.ts.map +1 -0
  21. package/dist/analyzers/python-analyzer.js +306 -0
  22. package/dist/analyzers/python-analyzer.js.map +1 -0
  23. package/dist/cli.d.ts +3 -0
  24. package/dist/cli.d.ts.map +1 -0
  25. package/dist/cli.js +381 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/config/defaults.d.ts +6 -0
  28. package/dist/config/defaults.d.ts.map +1 -0
  29. package/dist/config/defaults.js +80 -0
  30. package/dist/config/defaults.js.map +1 -0
  31. package/dist/config/index.d.ts +3 -0
  32. package/dist/config/index.d.ts.map +1 -0
  33. package/dist/config/index.js +14 -0
  34. package/dist/config/index.js.map +1 -0
  35. package/dist/config/loader.d.ts +6 -0
  36. package/dist/config/loader.d.ts.map +1 -0
  37. package/dist/config/loader.js +126 -0
  38. package/dist/config/loader.js.map +1 -0
  39. package/dist/coverage.d.ts +4 -0
  40. package/dist/coverage.d.ts.map +1 -0
  41. package/dist/coverage.js +108 -0
  42. package/dist/coverage.js.map +1 -0
  43. package/dist/generators/ai-generator.d.ts +4 -0
  44. package/dist/generators/ai-generator.d.ts.map +1 -0
  45. package/dist/generators/ai-generator.js +175 -0
  46. package/dist/generators/ai-generator.js.map +1 -0
  47. package/dist/generators/generator.d.ts +4 -0
  48. package/dist/generators/generator.d.ts.map +1 -0
  49. package/dist/generators/generator.js +121 -0
  50. package/dist/generators/generator.js.map +1 -0
  51. package/dist/generators/go-generator.d.ts +3 -0
  52. package/dist/generators/go-generator.d.ts.map +1 -0
  53. package/dist/generators/go-generator.js +175 -0
  54. package/dist/generators/go-generator.js.map +1 -0
  55. package/dist/generators/index.d.ts +6 -0
  56. package/dist/generators/index.d.ts.map +1 -0
  57. package/dist/generators/index.js +16 -0
  58. package/dist/generators/index.js.map +1 -0
  59. package/dist/generators/js-ts-generator.d.ts +3 -0
  60. package/dist/generators/js-ts-generator.d.ts.map +1 -0
  61. package/dist/generators/js-ts-generator.js +331 -0
  62. package/dist/generators/js-ts-generator.js.map +1 -0
  63. package/dist/generators/python-generator.d.ts +3 -0
  64. package/dist/generators/python-generator.d.ts.map +1 -0
  65. package/dist/generators/python-generator.js +180 -0
  66. package/dist/generators/python-generator.js.map +1 -0
  67. package/dist/incremental.d.ts +16 -0
  68. package/dist/incremental.d.ts.map +1 -0
  69. package/dist/incremental.js +146 -0
  70. package/dist/incremental.js.map +1 -0
  71. package/dist/index.d.ts +9 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +44 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/mutation/index.d.ts +2 -0
  76. package/dist/mutation/index.d.ts.map +1 -0
  77. package/dist/mutation/index.js +9 -0
  78. package/dist/mutation/index.js.map +1 -0
  79. package/dist/mutation/mutator.d.ts +6 -0
  80. package/dist/mutation/mutator.d.ts.map +1 -0
  81. package/dist/mutation/mutator.js +237 -0
  82. package/dist/mutation/mutator.js.map +1 -0
  83. package/dist/types.d.ts +199 -0
  84. package/dist/types.d.ts.map +1 -0
  85. package/dist/types.js +4 -0
  86. package/dist/types.js.map +1 -0
  87. package/dist/utils/file.d.ts +10 -0
  88. package/dist/utils/file.d.ts.map +1 -0
  89. package/dist/utils/file.js +108 -0
  90. package/dist/utils/file.js.map +1 -0
  91. package/dist/utils/index.d.ts +4 -0
  92. package/dist/utils/index.d.ts.map +1 -0
  93. package/dist/utils/index.js +24 -0
  94. package/dist/utils/index.js.map +1 -0
  95. package/dist/utils/language.d.ts +8 -0
  96. package/dist/utils/language.d.ts.map +1 -0
  97. package/dist/utils/language.js +137 -0
  98. package/dist/utils/language.js.map +1 -0
  99. package/dist/utils/logger.d.ts +13 -0
  100. package/dist/utils/logger.d.ts.map +1 -0
  101. package/dist/utils/logger.js +57 -0
  102. package/dist/utils/logger.js.map +1 -0
  103. package/dist/watcher/index.d.ts +2 -0
  104. package/dist/watcher/index.d.ts.map +1 -0
  105. package/dist/watcher/index.js +6 -0
  106. package/dist/watcher/index.js.map +1 -0
  107. package/dist/watcher/watcher.d.ts +19 -0
  108. package/dist/watcher/watcher.d.ts.map +1 -0
  109. package/dist/watcher/watcher.js +122 -0
  110. package/dist/watcher/watcher.js.map +1 -0
  111. package/package.json +63 -0
  112. package/src/analyzers/analyzer.ts +180 -0
  113. package/src/analyzers/go-analyzer.ts +235 -0
  114. package/src/analyzers/index.ts +4 -0
  115. package/src/analyzers/js-ts-analyzer.ts +324 -0
  116. package/src/analyzers/python-analyzer.ts +306 -0
  117. package/src/cli.ts +416 -0
  118. package/src/config/defaults.ts +81 -0
  119. package/src/config/index.ts +2 -0
  120. package/src/config/loader.ts +114 -0
  121. package/src/coverage.ts +128 -0
  122. package/src/generators/ai-generator.ts +170 -0
  123. package/src/generators/generator.ts +117 -0
  124. package/src/generators/go-generator.ts +183 -0
  125. package/src/generators/index.ts +5 -0
  126. package/src/generators/js-ts-generator.ts +379 -0
  127. package/src/generators/python-generator.ts +201 -0
  128. package/src/incremental.ts +131 -0
  129. package/src/index.ts +8 -0
  130. package/src/mutation/index.ts +1 -0
  131. package/src/mutation/mutator.ts +314 -0
  132. package/src/types.ts +240 -0
  133. package/src/utils/file.ts +73 -0
  134. package/src/utils/index.ts +3 -0
  135. package/src/utils/language.ts +114 -0
  136. package/src/utils/logger.ts +61 -0
  137. package/src/watcher/index.ts +1 -0
  138. package/src/watcher/watcher.ts +103 -0
  139. package/tests/analyzer.test.ts +429 -0
  140. package/tests/config.test.ts +171 -0
  141. package/tests/coverage.test.ts +197 -0
  142. package/tests/file-utils.test.ts +121 -0
  143. package/tests/generators.test.ts +383 -0
  144. package/tests/incremental.test.ts +108 -0
  145. package/tests/language.test.ts +90 -0
  146. package/tests/mutation.test.ts +286 -0
  147. package/tests/watcher.test.ts +35 -0
  148. package/tsconfig.json +26 -0
  149. package/vitest.config.ts +25 -0
@@ -0,0 +1,306 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.analyzePythonSource = analyzePythonSource;
37
+ const fs = __importStar(require("fs"));
38
+ function analyzePythonSource(filePath) {
39
+ const content = fs.readFileSync(filePath, 'utf-8');
40
+ const lines = content.split('\n');
41
+ return {
42
+ filePath,
43
+ language: 'python',
44
+ functions: extractPythonFunctions(content),
45
+ classes: extractPythonClasses(content),
46
+ interfaces: [],
47
+ exports: extractPythonExports(content),
48
+ imports: extractPythonImports(content),
49
+ dependencies: extractPythonImports(content).map((imp) => imp.modulePath),
50
+ linesOfCode: lines.length,
51
+ cyclomaticComplexity: calculatePythonComplexity(content),
52
+ };
53
+ }
54
+ function extractPythonFunctions(content) {
55
+ const functions = [];
56
+ const funcRegex = /^(\s*)(?:async\s+)?def\s+(\w+)\s*\(([^)]*)\)(?:\s*->\s*(.+?))?\s*:/gm;
57
+ let match;
58
+ while ((match = funcRegex.exec(content)) !== null) {
59
+ const indent = match[1].length;
60
+ const name = match[2];
61
+ const paramsStr = match[3] ?? '';
62
+ const returnType = match[4]?.trim() ?? null;
63
+ const isAsync = content.substring(match.index, match.index + 20).includes('async');
64
+ const params = parsePythonParams(paramsStr);
65
+ const startLine = content.substring(0, match.index).split('\n').length;
66
+ const body = extractPythonBody(content, match.index);
67
+ const endLine = startLine + body.split('\n').length - 1;
68
+ functions.push({
69
+ name,
70
+ isAsync,
71
+ isExported: indent === 0,
72
+ params,
73
+ returnType,
74
+ throws: extractPythonRaises(body),
75
+ complexity: calculatePythonComplexity(body),
76
+ hasSideEffects: detectPythonSideEffects(body),
77
+ startLine,
78
+ endLine,
79
+ });
80
+ }
81
+ return functions;
82
+ }
83
+ function extractPythonClasses(content) {
84
+ const classes = [];
85
+ const classRegex = /^class\s+(\w+)(?:\(([^)]+)\))?\s*:/gm;
86
+ let match;
87
+ while ((match = classRegex.exec(content)) !== null) {
88
+ const name = match[1];
89
+ const bases = match[2]?.split(',').map((s) => s.trim()) ?? [];
90
+ const startLine = content.substring(0, match.index).split('\n').length;
91
+ const body = extractPythonBody(content, match.index);
92
+ const methods = extractPythonMethods(body, startLine);
93
+ const constructorParams = methods.find((m) => m.name === '__init__')?.params ?? [];
94
+ classes.push({
95
+ name,
96
+ isExported: true,
97
+ constructorParams,
98
+ methods,
99
+ properties: extractPythonProperties(body),
100
+ implements: [],
101
+ extends: bases[0] ?? null,
102
+ });
103
+ }
104
+ return classes;
105
+ }
106
+ function extractPythonMethods(body, baseLine) {
107
+ const methods = [];
108
+ const methodRegex = /^\s+(?:async\s+)?def\s+(\w+)\s*\(([^)]*)\)(?:\s*->\s*(.+?))?\s*:/gm;
109
+ let match;
110
+ while ((match = methodRegex.exec(body)) !== null) {
111
+ const name = match[1];
112
+ const paramsStr = match[2] ?? '';
113
+ const returnType = match[3]?.trim() ?? null;
114
+ const isAsync = body.substring(match.index, match.index + 30).includes('async');
115
+ const params = parsePythonParams(paramsStr);
116
+ const methodBody = extractPythonBody(body, match.index);
117
+ const methodStartLine = baseLine + body.substring(0, match.index).split('\n').length;
118
+ methods.push({
119
+ name,
120
+ isAsync,
121
+ isExported: false,
122
+ params,
123
+ returnType,
124
+ throws: extractPythonRaises(methodBody),
125
+ complexity: calculatePythonComplexity(methodBody),
126
+ hasSideEffects: detectPythonSideEffects(methodBody),
127
+ startLine: methodStartLine,
128
+ endLine: methodStartLine + methodBody.split('\n').length - 1,
129
+ });
130
+ }
131
+ return methods;
132
+ }
133
+ function extractPythonProperties(body) {
134
+ const props = [];
135
+ const selfAssignRegex = /self\.(\w+)\s*=/g;
136
+ let match;
137
+ while ((match = selfAssignRegex.exec(body)) !== null) {
138
+ const name = match[1];
139
+ if (!props.some((p) => p.name === name)) {
140
+ props.push({
141
+ name,
142
+ type: null,
143
+ visibility: 'public',
144
+ isStatic: false,
145
+ isReadonly: false,
146
+ });
147
+ }
148
+ }
149
+ return props;
150
+ }
151
+ function parsePythonParams(paramsStr) {
152
+ if (!paramsStr.trim())
153
+ return [];
154
+ return paramsStr.split(',').map((param) => {
155
+ const trimmed = param.trim();
156
+ if (!trimmed || trimmed === 'self' || trimmed === 'cls') {
157
+ return { name: trimmed || 'self', type: null, optional: true, defaultValue: null };
158
+ }
159
+ const hasDefault = trimmed.includes('=');
160
+ const hasType = trimmed.includes(':');
161
+ let name = trimmed;
162
+ let type = null;
163
+ let defaultValue = null;
164
+ if (hasType) {
165
+ const parts = trimmed.split(':');
166
+ name = parts[0].trim();
167
+ const rest = parts.slice(1).join(':').trim();
168
+ if (rest.includes('=')) {
169
+ const typeParts = rest.split('=');
170
+ type = typeParts[0].trim();
171
+ defaultValue = typeParts.slice(1).join('=').trim();
172
+ }
173
+ else {
174
+ type = rest;
175
+ }
176
+ }
177
+ else if (hasDefault) {
178
+ const parts = trimmed.split('=');
179
+ name = parts[0].trim();
180
+ defaultValue = parts.slice(1).join('=').trim();
181
+ }
182
+ return {
183
+ name,
184
+ type,
185
+ optional: hasDefault || trimmed.startsWith('*'),
186
+ defaultValue,
187
+ };
188
+ }).filter((p) => p.name !== 'self' && p.name !== 'cls');
189
+ }
190
+ function extractPythonBody(content, startIndex) {
191
+ const afterMatch = content.substring(startIndex);
192
+ const bodyLines = afterMatch.split('\n');
193
+ if (bodyLines.length <= 1)
194
+ return '';
195
+ let baseIndent = 0;
196
+ for (let i = 1; i < bodyLines.length; i++) {
197
+ const indentMatch = bodyLines[i].match(/^(\s*)\S/);
198
+ if (indentMatch) {
199
+ baseIndent = indentMatch[1].length;
200
+ break;
201
+ }
202
+ }
203
+ const result = [];
204
+ for (let i = 1; i < bodyLines.length; i++) {
205
+ const line = bodyLines[i];
206
+ if (line.trim() === '') {
207
+ result.push(line);
208
+ continue;
209
+ }
210
+ const indentMatch = line.match(/^(\s*)\S/);
211
+ if (indentMatch && indentMatch[1].length >= baseIndent && baseIndent > 0) {
212
+ result.push(line);
213
+ }
214
+ else if (indentMatch && indentMatch[1].length < baseIndent && baseIndent > 0) {
215
+ break;
216
+ }
217
+ else {
218
+ result.push(line);
219
+ }
220
+ }
221
+ return result.join('\n');
222
+ }
223
+ function extractPythonRaises(body) {
224
+ const raises = [];
225
+ const raiseRegex = /raise\s+(\w+)/g;
226
+ let match;
227
+ while ((match = raiseRegex.exec(body)) !== null) {
228
+ if (!raises.includes(match[1])) {
229
+ raises.push(match[1]);
230
+ }
231
+ }
232
+ return raises;
233
+ }
234
+ function calculatePythonComplexity(code) {
235
+ let complexity = 1;
236
+ const patterns = [
237
+ /\bif\b/g,
238
+ /\belif\b/g,
239
+ /\belse\b/g,
240
+ /\bfor\b/g,
241
+ /\bwhile\b/g,
242
+ /\bexcept\b/g,
243
+ /\band\b/g,
244
+ /\bor\b/g,
245
+ /\bnot\b/g,
246
+ /\bwith\b/g,
247
+ ];
248
+ for (const pattern of patterns) {
249
+ const matches = code.match(pattern);
250
+ if (matches)
251
+ complexity += matches.length;
252
+ }
253
+ return complexity;
254
+ }
255
+ function detectPythonSideEffects(code) {
256
+ const patterns = [
257
+ /\bprint\(/,
258
+ /\bopen\(/,
259
+ /\bos\.\w+/,
260
+ /\brequests\.\w+/,
261
+ /\brandom\.\w+/,
262
+ /\bdatetime\.\w+/,
263
+ /\bdb\.\w+/,
264
+ /\.append\(/,
265
+ /\.extend\(/,
266
+ ];
267
+ return patterns.some((p) => p.test(code));
268
+ }
269
+ function extractPythonExports(content) {
270
+ const exports = [];
271
+ const funcRegex = /^(?:async\s+)?def\s+(\w+)/gm;
272
+ let match;
273
+ while ((match = funcRegex.exec(content)) !== null) {
274
+ exports.push({ name: match[1], type: 'function', filePath: '' });
275
+ }
276
+ const classRegex = /^class\s+(\w+)/gm;
277
+ while ((match = classRegex.exec(content)) !== null) {
278
+ exports.push({ name: match[1], type: 'class', filePath: '' });
279
+ }
280
+ return exports;
281
+ }
282
+ function extractPythonImports(content) {
283
+ const imports = [];
284
+ const importRegex = /^import\s+(\S+)|^from\s+(\S+)\s+import\s+(.+)/gm;
285
+ let match;
286
+ while ((match = importRegex.exec(content)) !== null) {
287
+ if (match[1]) {
288
+ imports.push({
289
+ modulePath: match[1],
290
+ namedImports: [],
291
+ defaultImport: null,
292
+ isTypeOnly: false,
293
+ });
294
+ }
295
+ else if (match[2] && match[3]) {
296
+ imports.push({
297
+ modulePath: match[2],
298
+ namedImports: match[3].split(',').map((s) => s.trim()),
299
+ defaultImport: null,
300
+ isTypeOnly: false,
301
+ });
302
+ }
303
+ }
304
+ return imports;
305
+ }
306
+ //# sourceMappingURL=python-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-analyzer.js","sourceRoot":"","sources":["../../src/analyzers/python-analyzer.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}