qa360 1.4.5 → 2.0.1
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/README.md +1 -1
- package/dist/commands/ai.d.ts +41 -0
- package/dist/commands/ai.js +499 -0
- package/dist/commands/ask.js +12 -12
- package/dist/commands/coverage.d.ts +8 -0
- package/dist/commands/coverage.js +252 -0
- package/dist/commands/explain.d.ts +27 -0
- package/dist/commands/explain.js +630 -0
- package/dist/commands/flakiness.d.ts +73 -0
- package/dist/commands/flakiness.js +435 -0
- package/dist/commands/generate.d.ts +66 -0
- package/dist/commands/generate.js +438 -0
- package/dist/commands/init.d.ts +56 -9
- package/dist/commands/init.js +217 -10
- package/dist/commands/monitor.d.ts +27 -0
- package/dist/commands/monitor.js +225 -0
- package/dist/commands/ollama.d.ts +40 -0
- package/dist/commands/ollama.js +301 -0
- package/dist/commands/pack.d.ts +37 -9
- package/dist/commands/pack.js +240 -141
- package/dist/commands/regression.d.ts +8 -0
- package/dist/commands/regression.js +340 -0
- package/dist/commands/repair.d.ts +26 -0
- package/dist/commands/repair.js +307 -0
- package/dist/commands/retry.d.ts +43 -0
- package/dist/commands/retry.js +275 -0
- package/dist/commands/run.d.ts +8 -3
- package/dist/commands/run.js +45 -31
- package/dist/commands/slo.d.ts +8 -0
- package/dist/commands/slo.js +327 -0
- package/dist/core/adapters/playwright-native-api.d.ts +183 -0
- package/dist/core/adapters/playwright-native-api.js +461 -0
- package/dist/core/adapters/playwright-ui.d.ts +7 -0
- package/dist/core/adapters/playwright-ui.js +29 -1
- package/dist/core/ai/anthropic-provider.d.ts +50 -0
- package/dist/core/ai/anthropic-provider.js +211 -0
- package/dist/core/ai/deepseek-provider.d.ts +81 -0
- package/dist/core/ai/deepseek-provider.js +254 -0
- package/dist/core/ai/index.d.ts +60 -0
- package/dist/core/ai/index.js +18 -0
- package/dist/core/ai/llm-client.d.ts +45 -0
- package/dist/core/ai/llm-client.js +7 -0
- package/dist/core/ai/mock-provider.d.ts +49 -0
- package/dist/core/ai/mock-provider.js +121 -0
- package/dist/core/ai/ollama-provider.d.ts +78 -0
- package/dist/core/ai/ollama-provider.js +192 -0
- package/dist/core/ai/openai-provider.d.ts +48 -0
- package/dist/core/ai/openai-provider.js +188 -0
- package/dist/core/ai/provider-factory.d.ts +160 -0
- package/dist/core/ai/provider-factory.js +269 -0
- package/dist/core/auth/api-key-provider.d.ts +16 -0
- package/dist/core/auth/api-key-provider.js +63 -0
- package/dist/core/auth/aws-iam-provider.d.ts +35 -0
- package/dist/core/auth/aws-iam-provider.js +177 -0
- package/dist/core/auth/azure-ad-provider.d.ts +15 -0
- package/dist/core/auth/azure-ad-provider.js +99 -0
- package/dist/core/auth/basic-auth-provider.d.ts +26 -0
- package/dist/core/auth/basic-auth-provider.js +111 -0
- package/dist/core/auth/gcp-adc-provider.d.ts +27 -0
- package/dist/core/auth/gcp-adc-provider.js +126 -0
- package/dist/core/auth/index.d.ts +238 -0
- package/dist/core/auth/index.js +82 -0
- package/dist/core/auth/jwt-provider.d.ts +19 -0
- package/dist/core/auth/jwt-provider.js +160 -0
- package/dist/core/auth/manager.d.ts +84 -0
- package/dist/core/auth/manager.js +230 -0
- package/dist/core/auth/oauth2-provider.d.ts +17 -0
- package/dist/core/auth/oauth2-provider.js +114 -0
- package/dist/core/auth/totp-provider.d.ts +31 -0
- package/dist/core/auth/totp-provider.js +134 -0
- package/dist/core/auth/ui-login-provider.d.ts +26 -0
- package/dist/core/auth/ui-login-provider.js +198 -0
- package/dist/core/cache/index.d.ts +7 -0
- package/dist/core/cache/index.js +6 -0
- package/dist/core/cache/lru-cache.d.ts +203 -0
- package/dist/core/cache/lru-cache.js +397 -0
- package/dist/core/coverage/analyzer.d.ts +101 -0
- package/dist/core/coverage/analyzer.js +415 -0
- package/dist/core/coverage/collector.d.ts +74 -0
- package/dist/core/coverage/collector.js +459 -0
- package/dist/core/coverage/config.d.ts +37 -0
- package/dist/core/coverage/config.js +156 -0
- package/dist/core/coverage/index.d.ts +11 -0
- package/dist/core/coverage/index.js +15 -0
- package/dist/core/coverage/types.d.ts +267 -0
- package/dist/core/coverage/types.js +6 -0
- package/dist/core/coverage/vault.d.ts +95 -0
- package/dist/core/coverage/vault.js +405 -0
- package/dist/core/dashboard/assets.d.ts +6 -0
- package/dist/core/dashboard/assets.js +690 -0
- package/dist/core/dashboard/index.d.ts +6 -0
- package/dist/core/dashboard/index.js +5 -0
- package/dist/core/dashboard/server.d.ts +72 -0
- package/dist/core/dashboard/server.js +354 -0
- package/dist/core/dashboard/types.d.ts +70 -0
- package/dist/core/dashboard/types.js +5 -0
- package/dist/core/discoverer/index.d.ts +115 -0
- package/dist/core/discoverer/index.js +250 -0
- package/dist/core/flakiness/index.d.ts +228 -0
- package/dist/core/flakiness/index.js +384 -0
- package/dist/core/generation/code-formatter.d.ts +111 -0
- package/dist/core/generation/code-formatter.js +307 -0
- package/dist/core/generation/code-generator.d.ts +144 -0
- package/dist/core/generation/code-generator.js +293 -0
- package/dist/core/generation/generator.d.ts +40 -0
- package/dist/core/generation/generator.js +76 -0
- package/dist/core/generation/index.d.ts +30 -0
- package/dist/core/generation/index.js +28 -0
- package/dist/core/generation/pack-generator.d.ts +107 -0
- package/dist/core/generation/pack-generator.js +416 -0
- package/dist/core/generation/prompt-builder.d.ts +132 -0
- package/dist/core/generation/prompt-builder.js +672 -0
- package/dist/core/generation/source-analyzer.d.ts +213 -0
- package/dist/core/generation/source-analyzer.js +657 -0
- package/dist/core/generation/test-optimizer.d.ts +117 -0
- package/dist/core/generation/test-optimizer.js +328 -0
- package/dist/core/generation/types.d.ts +214 -0
- package/dist/core/generation/types.js +4 -0
- package/dist/core/index.d.ts +23 -1
- package/dist/core/index.js +39 -0
- package/dist/core/pack/validator.js +31 -1
- package/dist/core/pack-v2/index.d.ts +9 -0
- package/dist/core/pack-v2/index.js +8 -0
- package/dist/core/pack-v2/loader.d.ts +62 -0
- package/dist/core/pack-v2/loader.js +231 -0
- package/dist/core/pack-v2/migrator.d.ts +56 -0
- package/dist/core/pack-v2/migrator.js +455 -0
- package/dist/core/pack-v2/validator.d.ts +61 -0
- package/dist/core/pack-v2/validator.js +577 -0
- package/dist/core/regression/detector.d.ts +107 -0
- package/dist/core/regression/detector.js +497 -0
- package/dist/core/regression/index.d.ts +9 -0
- package/dist/core/regression/index.js +11 -0
- package/dist/core/regression/trend-analyzer.d.ts +102 -0
- package/dist/core/regression/trend-analyzer.js +345 -0
- package/dist/core/regression/types.d.ts +222 -0
- package/dist/core/regression/types.js +7 -0
- package/dist/core/regression/vault.d.ts +87 -0
- package/dist/core/regression/vault.js +289 -0
- package/dist/core/repair/engine/fixer.d.ts +24 -0
- package/dist/core/repair/engine/fixer.js +226 -0
- package/dist/core/repair/engine/suggestion-engine.d.ts +18 -0
- package/dist/core/repair/engine/suggestion-engine.js +187 -0
- package/dist/core/repair/index.d.ts +10 -0
- package/dist/core/repair/index.js +13 -0
- package/dist/core/repair/repairer.d.ts +90 -0
- package/dist/core/repair/repairer.js +284 -0
- package/dist/core/repair/types.d.ts +91 -0
- package/dist/core/repair/types.js +6 -0
- package/dist/core/repair/utils/error-analyzer.d.ts +28 -0
- package/dist/core/repair/utils/error-analyzer.js +264 -0
- package/dist/core/retry/flakiness-integration.d.ts +60 -0
- package/dist/core/retry/flakiness-integration.js +228 -0
- package/dist/core/retry/index.d.ts +14 -0
- package/dist/core/retry/index.js +16 -0
- package/dist/core/retry/retry-engine.d.ts +80 -0
- package/dist/core/retry/retry-engine.js +296 -0
- package/dist/core/retry/types.d.ts +178 -0
- package/dist/core/retry/types.js +52 -0
- package/dist/core/retry/vault.d.ts +77 -0
- package/dist/core/retry/vault.js +304 -0
- package/dist/core/runner/e2e-helpers.d.ts +102 -0
- package/dist/core/runner/e2e-helpers.js +153 -0
- package/dist/core/runner/phase3-runner.d.ts +101 -2
- package/dist/core/runner/phase3-runner.js +559 -24
- package/dist/core/self-healing/assertion-healer.d.ts +97 -0
- package/dist/core/self-healing/assertion-healer.js +371 -0
- package/dist/core/self-healing/engine.d.ts +122 -0
- package/dist/core/self-healing/engine.js +538 -0
- package/dist/core/self-healing/index.d.ts +10 -0
- package/dist/core/self-healing/index.js +11 -0
- package/dist/core/self-healing/selector-healer.d.ts +103 -0
- package/dist/core/self-healing/selector-healer.js +372 -0
- package/dist/core/self-healing/types.d.ts +152 -0
- package/dist/core/self-healing/types.js +6 -0
- package/dist/core/slo/config.d.ts +107 -0
- package/dist/core/slo/config.js +360 -0
- package/dist/core/slo/index.d.ts +11 -0
- package/dist/core/slo/index.js +15 -0
- package/dist/core/slo/sli-calculator.d.ts +92 -0
- package/dist/core/slo/sli-calculator.js +364 -0
- package/dist/core/slo/slo-tracker.d.ts +148 -0
- package/dist/core/slo/slo-tracker.js +379 -0
- package/dist/core/slo/types.d.ts +281 -0
- package/dist/core/slo/types.js +7 -0
- package/dist/core/slo/vault.d.ts +102 -0
- package/dist/core/slo/vault.js +427 -0
- package/dist/core/tui/index.d.ts +7 -0
- package/dist/core/tui/index.js +6 -0
- package/dist/core/tui/monitor.d.ts +92 -0
- package/dist/core/tui/monitor.js +271 -0
- package/dist/core/tui/renderer.d.ts +33 -0
- package/dist/core/tui/renderer.js +218 -0
- package/dist/core/tui/types.d.ts +63 -0
- package/dist/core/tui/types.js +5 -0
- package/dist/core/types/pack-v2.d.ts +425 -0
- package/dist/core/types/pack-v2.js +8 -0
- package/dist/core/vault/index.d.ts +116 -0
- package/dist/core/vault/index.js +400 -5
- package/dist/core/watch/index.d.ts +7 -0
- package/dist/core/watch/index.js +6 -0
- package/dist/core/watch/watch-mode.d.ts +213 -0
- package/dist/core/watch/watch-mode.js +389 -0
- package/dist/index.js +68 -68
- package/dist/utils/config.d.ts +5 -0
- package/dist/utils/config.js +136 -0
- package/package.json +5 -1
- package/dist/core/adapters/playwright-api.d.ts +0 -82
- package/dist/core/adapters/playwright-api.js +0 -264
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QA360 Source Code Analyzer
|
|
3
|
+
*
|
|
4
|
+
* Analyzes source code to extract test requirements and generate test specifications.
|
|
5
|
+
* Supports TypeScript, JavaScript, Python, and Go source code.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const analyzer = new SourceAnalyzer();
|
|
10
|
+
* const spec = await analyzer.analyzeFile('./src/userService.ts');
|
|
11
|
+
* const tests = await analyzer.generateTests(spec);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
import type { UnitTestSpec, ApiTestSpec, GenerationSource } from './types.js';
|
|
15
|
+
/**
|
|
16
|
+
* Analysis result for a source file
|
|
17
|
+
*/
|
|
18
|
+
export interface SourceAnalysis {
|
|
19
|
+
filePath: string;
|
|
20
|
+
language: 'typescript' | 'javascript' | 'python' | 'go';
|
|
21
|
+
exports: string[];
|
|
22
|
+
functions: FunctionInfo[];
|
|
23
|
+
classes: ClassInfo[];
|
|
24
|
+
imports: ImportInfo[];
|
|
25
|
+
hasTests: boolean;
|
|
26
|
+
testFilePath?: string;
|
|
27
|
+
complexity: number;
|
|
28
|
+
linesOfCode: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Function information
|
|
32
|
+
*/
|
|
33
|
+
export interface FunctionInfo {
|
|
34
|
+
name: string;
|
|
35
|
+
params: string[];
|
|
36
|
+
returnType?: string;
|
|
37
|
+
isAsync: boolean;
|
|
38
|
+
isPublic: boolean;
|
|
39
|
+
lineNumber: number;
|
|
40
|
+
complexity: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Class information
|
|
44
|
+
*/
|
|
45
|
+
export interface ClassInfo {
|
|
46
|
+
name: string;
|
|
47
|
+
methods: FunctionInfo[];
|
|
48
|
+
properties: string[];
|
|
49
|
+
extends?: string;
|
|
50
|
+
lineNumber: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Import information
|
|
54
|
+
*/
|
|
55
|
+
export interface ImportInfo {
|
|
56
|
+
module: string;
|
|
57
|
+
imports: string[];
|
|
58
|
+
isExternal: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Source analyzer options
|
|
62
|
+
*/
|
|
63
|
+
export interface SourceAnalyzerOptions {
|
|
64
|
+
/** Include private members in analysis */
|
|
65
|
+
includePrivate?: boolean;
|
|
66
|
+
/** Maximum complexity threshold */
|
|
67
|
+
maxComplexity?: number;
|
|
68
|
+
/** Exclude patterns */
|
|
69
|
+
exclude?: string[];
|
|
70
|
+
/** Follow imports for dependency analysis */
|
|
71
|
+
followImports?: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Test generation suggestion
|
|
75
|
+
*/
|
|
76
|
+
export interface TestSuggestion {
|
|
77
|
+
type: 'unit' | 'integration' | 'e2e';
|
|
78
|
+
priority: 'high' | 'medium' | 'low';
|
|
79
|
+
description: string;
|
|
80
|
+
functionName?: string;
|
|
81
|
+
assertions: string[];
|
|
82
|
+
mocks: string[];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Source Analyzer
|
|
86
|
+
*
|
|
87
|
+
* Analyzes source code to extract testable elements and suggest tests.
|
|
88
|
+
*/
|
|
89
|
+
export declare class SourceAnalyzer {
|
|
90
|
+
private readonly options;
|
|
91
|
+
private readonly defaultOptions;
|
|
92
|
+
constructor(options?: SourceAnalyzerOptions);
|
|
93
|
+
/**
|
|
94
|
+
* Analyze a single source file
|
|
95
|
+
*/
|
|
96
|
+
analyzeFile(filePath: string): SourceAnalysis;
|
|
97
|
+
/**
|
|
98
|
+
* Analyze a directory recursively
|
|
99
|
+
*/
|
|
100
|
+
analyzeDirectory(dirPath: string): SourceAnalysis[];
|
|
101
|
+
/**
|
|
102
|
+
* Generate test specification from analysis
|
|
103
|
+
*/
|
|
104
|
+
generateSpec(analysis: SourceAnalysis): UnitTestSpec;
|
|
105
|
+
/**
|
|
106
|
+
* Generate test suggestions
|
|
107
|
+
*/
|
|
108
|
+
generateSuggestions(analysis: SourceAnalysis): TestSuggestion[];
|
|
109
|
+
/**
|
|
110
|
+
* Generate API spec from Express/HTTP handlers
|
|
111
|
+
*/
|
|
112
|
+
generateApiSpec(analysis: SourceAnalysis): ApiTestSpec | null;
|
|
113
|
+
/**
|
|
114
|
+
* Analyze TypeScript/JavaScript code
|
|
115
|
+
*/
|
|
116
|
+
private analyzeTypeScriptScript;
|
|
117
|
+
/**
|
|
118
|
+
* Analyze Python code
|
|
119
|
+
*/
|
|
120
|
+
private analyzePython;
|
|
121
|
+
/**
|
|
122
|
+
* Analyze Go code
|
|
123
|
+
*/
|
|
124
|
+
private analyzeGo;
|
|
125
|
+
/**
|
|
126
|
+
* Get language from file extension
|
|
127
|
+
*/
|
|
128
|
+
private getLanguage;
|
|
129
|
+
/**
|
|
130
|
+
* Check if file is a source file
|
|
131
|
+
*/
|
|
132
|
+
private isSourceFile;
|
|
133
|
+
/**
|
|
134
|
+
* Traverse directory recursively
|
|
135
|
+
*/
|
|
136
|
+
private traverseDirectory;
|
|
137
|
+
/**
|
|
138
|
+
* Find test file for a source file
|
|
139
|
+
*/
|
|
140
|
+
private findTestFile;
|
|
141
|
+
/**
|
|
142
|
+
* Calculate overall complexity score
|
|
143
|
+
*/
|
|
144
|
+
private calculateComplexity;
|
|
145
|
+
/**
|
|
146
|
+
* Estimate function complexity
|
|
147
|
+
*/
|
|
148
|
+
private estimateFunctionComplexity;
|
|
149
|
+
/**
|
|
150
|
+
* Parse function parameters
|
|
151
|
+
*/
|
|
152
|
+
private parseParams;
|
|
153
|
+
/**
|
|
154
|
+
* Extract class content
|
|
155
|
+
*/
|
|
156
|
+
private extractClassContent;
|
|
157
|
+
/**
|
|
158
|
+
* Find line number for a position in content
|
|
159
|
+
*/
|
|
160
|
+
private findLineNumber;
|
|
161
|
+
/**
|
|
162
|
+
* Generate test name from file path
|
|
163
|
+
*/
|
|
164
|
+
private generateTestName;
|
|
165
|
+
/**
|
|
166
|
+
* Recommend testing framework based on language
|
|
167
|
+
*/
|
|
168
|
+
private recommendFramework;
|
|
169
|
+
/**
|
|
170
|
+
* Generate assertions for a function
|
|
171
|
+
*/
|
|
172
|
+
private generateAssertions;
|
|
173
|
+
/**
|
|
174
|
+
* Generate mocks for a function
|
|
175
|
+
*/
|
|
176
|
+
private generateMocks;
|
|
177
|
+
/**
|
|
178
|
+
* Generate mocks for a class
|
|
179
|
+
*/
|
|
180
|
+
private generateMocksForClass;
|
|
181
|
+
/**
|
|
182
|
+
* Check if module is an HTTP module
|
|
183
|
+
*/
|
|
184
|
+
private isHttpModule;
|
|
185
|
+
/**
|
|
186
|
+
* Check if module is external
|
|
187
|
+
*/
|
|
188
|
+
private isExternalModule;
|
|
189
|
+
/**
|
|
190
|
+
* Extract base URL from imports
|
|
191
|
+
*/
|
|
192
|
+
private extractBaseUrl;
|
|
193
|
+
/**
|
|
194
|
+
* Extract API endpoint from function
|
|
195
|
+
*/
|
|
196
|
+
private extractEndpoint;
|
|
197
|
+
/**
|
|
198
|
+
* Get analysis as GenerationSource
|
|
199
|
+
*/
|
|
200
|
+
toGenerationSource(analysis: SourceAnalysis): GenerationSource;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Convenience function to analyze a source file
|
|
204
|
+
*/
|
|
205
|
+
export declare function analyzeSourceFile(filePath: string, options?: SourceAnalyzerOptions): SourceAnalysis;
|
|
206
|
+
/**
|
|
207
|
+
* Convenience function to analyze a directory
|
|
208
|
+
*/
|
|
209
|
+
export declare function analyzeSourceDirectory(dirPath: string, options?: SourceAnalyzerOptions): SourceAnalysis[];
|
|
210
|
+
/**
|
|
211
|
+
* Convenience function to generate test spec from analysis
|
|
212
|
+
*/
|
|
213
|
+
export declare function generateTestSpec(analysis: SourceAnalysis): UnitTestSpec;
|