@desplega.ai/qa-use 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.
Files changed (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1003 -0
  3. package/bin/qa-use.js +7 -0
  4. package/dist/lib/api/index.d.ts +296 -0
  5. package/dist/lib/api/index.d.ts.map +1 -0
  6. package/dist/lib/api/index.js +564 -0
  7. package/dist/lib/api/index.js.map +1 -0
  8. package/dist/lib/api/sse.d.ts +33 -0
  9. package/dist/lib/api/sse.d.ts.map +1 -0
  10. package/dist/lib/api/sse.js +97 -0
  11. package/dist/lib/api/sse.js.map +1 -0
  12. package/dist/lib/browser/index.d.ts +28 -0
  13. package/dist/lib/browser/index.d.ts.map +1 -0
  14. package/dist/lib/browser/index.js +145 -0
  15. package/dist/lib/browser/index.js.map +1 -0
  16. package/dist/lib/env/index.d.ts +41 -0
  17. package/dist/lib/env/index.d.ts.map +1 -0
  18. package/dist/lib/env/index.js +125 -0
  19. package/dist/lib/env/index.js.map +1 -0
  20. package/dist/lib/tunnel/index.d.ts +38 -0
  21. package/dist/lib/tunnel/index.d.ts.map +1 -0
  22. package/dist/lib/tunnel/index.js +154 -0
  23. package/dist/lib/tunnel/index.js.map +1 -0
  24. package/dist/package.json +100 -0
  25. package/dist/src/cli/commands/info.d.ts +6 -0
  26. package/dist/src/cli/commands/info.d.ts.map +1 -0
  27. package/dist/src/cli/commands/info.js +32 -0
  28. package/dist/src/cli/commands/info.js.map +1 -0
  29. package/dist/src/cli/commands/mcp.d.ts +6 -0
  30. package/dist/src/cli/commands/mcp.d.ts.map +1 -0
  31. package/dist/src/cli/commands/mcp.js +45 -0
  32. package/dist/src/cli/commands/mcp.js.map +1 -0
  33. package/dist/src/cli/commands/setup.d.ts +6 -0
  34. package/dist/src/cli/commands/setup.d.ts.map +1 -0
  35. package/dist/src/cli/commands/setup.js +59 -0
  36. package/dist/src/cli/commands/setup.js.map +1 -0
  37. package/dist/src/cli/commands/test/index.d.ts +6 -0
  38. package/dist/src/cli/commands/test/index.d.ts.map +1 -0
  39. package/dist/src/cli/commands/test/index.js +15 -0
  40. package/dist/src/cli/commands/test/index.js.map +1 -0
  41. package/dist/src/cli/commands/test/init.d.ts +6 -0
  42. package/dist/src/cli/commands/test/init.d.ts.map +1 -0
  43. package/dist/src/cli/commands/test/init.js +64 -0
  44. package/dist/src/cli/commands/test/init.js.map +1 -0
  45. package/dist/src/cli/commands/test/list.d.ts +6 -0
  46. package/dist/src/cli/commands/test/list.d.ts.map +1 -0
  47. package/dist/src/cli/commands/test/list.js +70 -0
  48. package/dist/src/cli/commands/test/list.js.map +1 -0
  49. package/dist/src/cli/commands/test/run.d.ts +6 -0
  50. package/dist/src/cli/commands/test/run.d.ts.map +1 -0
  51. package/dist/src/cli/commands/test/run.js +95 -0
  52. package/dist/src/cli/commands/test/run.js.map +1 -0
  53. package/dist/src/cli/commands/test/validate.d.ts +6 -0
  54. package/dist/src/cli/commands/test/validate.d.ts.map +1 -0
  55. package/dist/src/cli/commands/test/validate.js +70 -0
  56. package/dist/src/cli/commands/test/validate.js.map +1 -0
  57. package/dist/src/cli/index.d.ts +6 -0
  58. package/dist/src/cli/index.d.ts.map +1 -0
  59. package/dist/src/cli/index.js +21 -0
  60. package/dist/src/cli/index.js.map +1 -0
  61. package/dist/src/cli/lib/config.d.ts +36 -0
  62. package/dist/src/cli/lib/config.d.ts.map +1 -0
  63. package/dist/src/cli/lib/config.js +89 -0
  64. package/dist/src/cli/lib/config.js.map +1 -0
  65. package/dist/src/cli/lib/loader.d.ts +49 -0
  66. package/dist/src/cli/lib/loader.d.ts.map +1 -0
  67. package/dist/src/cli/lib/loader.js +122 -0
  68. package/dist/src/cli/lib/loader.js.map +1 -0
  69. package/dist/src/cli/lib/output.d.ts +53 -0
  70. package/dist/src/cli/lib/output.d.ts.map +1 -0
  71. package/dist/src/cli/lib/output.js +133 -0
  72. package/dist/src/cli/lib/output.js.map +1 -0
  73. package/dist/src/cli/lib/runner.d.ts +23 -0
  74. package/dist/src/cli/lib/runner.d.ts.map +1 -0
  75. package/dist/src/cli/lib/runner.js +40 -0
  76. package/dist/src/cli/lib/runner.js.map +1 -0
  77. package/dist/src/http-server.d.ts +14 -0
  78. package/dist/src/http-server.d.ts.map +1 -0
  79. package/dist/src/http-server.js +145 -0
  80. package/dist/src/http-server.js.map +1 -0
  81. package/dist/src/index.d.ts +9 -0
  82. package/dist/src/index.d.ts.map +1 -0
  83. package/dist/src/index.js +21 -0
  84. package/dist/src/index.js.map +1 -0
  85. package/dist/src/server.d.ts +58 -0
  86. package/dist/src/server.d.ts.map +1 -0
  87. package/dist/src/server.js +2376 -0
  88. package/dist/src/server.js.map +1 -0
  89. package/dist/src/tunnel-mode.d.ts +13 -0
  90. package/dist/src/tunnel-mode.d.ts.map +1 -0
  91. package/dist/src/tunnel-mode.js +159 -0
  92. package/dist/src/tunnel-mode.js.map +1 -0
  93. package/dist/src/types/test-definition.d.ts +320 -0
  94. package/dist/src/types/test-definition.d.ts.map +1 -0
  95. package/dist/src/types/test-definition.js +11 -0
  96. package/dist/src/types/test-definition.js.map +1 -0
  97. package/dist/src/types.d.ts +209 -0
  98. package/dist/src/types.d.ts.map +1 -0
  99. package/dist/src/types.js +34 -0
  100. package/dist/src/types.js.map +1 -0
  101. package/dist/src/utils/package.d.ts +12 -0
  102. package/dist/src/utils/package.d.ts.map +1 -0
  103. package/dist/src/utils/package.js +36 -0
  104. package/dist/src/utils/package.js.map +1 -0
  105. package/dist/src/utils/summary.d.ts +45 -0
  106. package/dist/src/utils/summary.d.ts.map +1 -0
  107. package/dist/src/utils/summary.js +198 -0
  108. package/dist/src/utils/summary.js.map +1 -0
  109. package/lib/api/index.ts +977 -0
  110. package/lib/api/sse.ts +112 -0
  111. package/lib/browser/index.ts +181 -0
  112. package/lib/env/index.ts +156 -0
  113. package/lib/tunnel/index.test.ts +344 -0
  114. package/lib/tunnel/index.ts +197 -0
  115. package/lib/tunnel/integration.test.ts +98 -0
  116. package/package.json +100 -0
  117. package/server.json +16 -0
package/bin/qa-use.js ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * CLI binary entry point
5
+ */
6
+
7
+ import '../dist/src/cli/index.js';
@@ -0,0 +1,296 @@
1
+ import 'dotenv/config';
2
+ import type { TestAgentV2Session, IssueType, Severity, IssueReport, TestCreatorDoneIntent } from '../../src/types.js';
3
+ import { generateEnhancedTestSummary, formatEnhancedTestReport, generateIssueStatistics, categorizeIssues } from '../../src/utils/summary.js';
4
+ import type { EnhancedTestSummary, BlockSummary } from '../../src/utils/summary.js';
5
+ import { type SSEEvent } from './sse.js';
6
+ import type { TestDefinition } from '../../src/types/test-definition.js';
7
+ export type { IssueType, Severity, IssueReport, TestCreatorDoneIntent };
8
+ export type { EnhancedTestSummary, BlockSummary };
9
+ export { generateEnhancedTestSummary, formatEnhancedTestReport, generateIssueStatistics, categorizeIssues, };
10
+ export interface CreateSessionOptions {
11
+ url?: string;
12
+ task: string;
13
+ wsUrl?: string;
14
+ dependencyId?: string;
15
+ devMode?: boolean;
16
+ region?: string;
17
+ }
18
+ export interface CreateSessionResponse {
19
+ sessionId: string;
20
+ appConfigId: string;
21
+ }
22
+ export interface SendMessageOptions {
23
+ sessionId: string;
24
+ action: 'pause' | 'response' | 'close';
25
+ data?: any;
26
+ }
27
+ export interface ListOptions {
28
+ limit?: number;
29
+ offset?: number;
30
+ query?: string;
31
+ self_only?: boolean;
32
+ }
33
+ export interface RunTestsOptions {
34
+ test_ids: string[];
35
+ ws_url?: string;
36
+ app_config_id?: string;
37
+ }
38
+ export interface RunTestsResponse {
39
+ success: boolean;
40
+ message?: string;
41
+ test_run_id?: string;
42
+ sessions?: any[];
43
+ }
44
+ export type APIKeyScope = 'admin' | 'recordings' | 'webhooks' | 'api' | 'mcp';
45
+ export type APIKeySource = 'app' | 'api' | 'vibe-qa' | 'mcp' | 'other';
46
+ export interface APIKey {
47
+ id: string;
48
+ name: string;
49
+ key: string;
50
+ expiration_date?: string | null;
51
+ scope: APIKeyScope;
52
+ source?: APIKeySource | null;
53
+ last_used_at?: string | null;
54
+ last_used_by?: string | null;
55
+ last_used_ip?: string | null;
56
+ app_config_id?: string | null;
57
+ }
58
+ export interface RegisterResponse {
59
+ success: boolean;
60
+ message?: string;
61
+ apiKey?: string;
62
+ }
63
+ export interface AutomatedTest {
64
+ id: string;
65
+ name: string;
66
+ description?: string;
67
+ url?: string;
68
+ task?: string;
69
+ status?: string;
70
+ created_at: string;
71
+ updated_at?: string;
72
+ organization_id?: string;
73
+ app_config_id?: string;
74
+ dependency_test_ids?: string[];
75
+ metadata?: any;
76
+ }
77
+ export interface TestRun {
78
+ id: string;
79
+ rerun_id?: string;
80
+ name: string;
81
+ external_id?: string;
82
+ matrix_option_id?: string;
83
+ test_id: string;
84
+ test_version_hash?: string;
85
+ test_suite_id?: string;
86
+ test_suite_run_id?: string;
87
+ used_variables?: any[];
88
+ run_status: 'pending' | 'running' | 'passed' | 'failed' | 'skipped' | 'cancelled' | 'timeout';
89
+ final_run_status?: 'pending' | 'running' | 'passed' | 'failed' | 'skipped' | 'cancelled' | 'timeout';
90
+ final_comment_id?: string;
91
+ allow_fix?: boolean;
92
+ result?: string;
93
+ error_message?: string;
94
+ recording_path?: string;
95
+ har_path?: string;
96
+ live_view_url?: string;
97
+ start_time?: string;
98
+ end_time?: string;
99
+ duration_seconds?: number;
100
+ pfs_score?: number;
101
+ pfs_bad_state_prob?: number;
102
+ pfs_confidence_lower?: number;
103
+ pfs_confidence_upper?: number;
104
+ pfs_num_observations?: number;
105
+ created_at: string;
106
+ updated_at?: string;
107
+ }
108
+ export interface ListTestRunsOptions {
109
+ test_id?: string;
110
+ run_id?: string;
111
+ limit?: number;
112
+ offset?: number;
113
+ }
114
+ export type ViewportConfigType = 'big_desktop' | 'desktop' | 'mobile' | 'tablet';
115
+ export type AppConfigType = 'production' | 'staging' | 'development' | 'local';
116
+ export interface UpdateAppConfigSchema {
117
+ base_url?: string;
118
+ login_url?: string;
119
+ login_username?: string;
120
+ login_password?: string;
121
+ vp_type?: ViewportConfigType;
122
+ cfg_type?: AppConfigType;
123
+ }
124
+ export interface UpdateAppConfigResponse {
125
+ success: boolean;
126
+ message?: string;
127
+ data?: any;
128
+ }
129
+ export interface AppConfig {
130
+ id: string;
131
+ name: string;
132
+ base_url: string;
133
+ login_url: string;
134
+ login_username: string;
135
+ login_password: string;
136
+ login_instructions: string;
137
+ login_steps: any[];
138
+ organization_id: string;
139
+ status: string;
140
+ vp_type: ViewportConfigType;
141
+ cfg_type?: AppConfigType | null;
142
+ width?: number;
143
+ height?: number;
144
+ remove_popups: boolean;
145
+ failure_status: string;
146
+ created_at: string;
147
+ updated_at?: string;
148
+ created_by: string;
149
+ updated_by?: string;
150
+ deleted_at?: string;
151
+ deleted_by?: string;
152
+ }
153
+ export interface AuthResponse {
154
+ success: boolean;
155
+ message?: string;
156
+ apiKey?: string;
157
+ data?: {
158
+ api_key?: APIKey;
159
+ app_config?: AppConfig;
160
+ };
161
+ }
162
+ export interface ListAppConfigsOptions {
163
+ limit?: number;
164
+ offset?: number;
165
+ query?: string;
166
+ source?: APIKeySource;
167
+ cfg_type?: AppConfigType;
168
+ }
169
+ export interface RunCliTestOptions {
170
+ test_definitions?: TestDefinition[];
171
+ test_id?: string;
172
+ persist?: boolean;
173
+ headless?: boolean;
174
+ allow_fix?: boolean;
175
+ capture_screenshots?: boolean;
176
+ store_recording?: boolean;
177
+ store_har?: boolean;
178
+ ws_url?: string;
179
+ }
180
+ export type SSECallback = (event: SSEEvent) => void;
181
+ export interface StepResult {
182
+ step_index: number;
183
+ name: string;
184
+ status: 'passed' | 'failed';
185
+ duration: number;
186
+ screenshot_url?: string;
187
+ error?: string;
188
+ }
189
+ export interface RunCliTestResult {
190
+ run_id: string;
191
+ test_id?: string;
192
+ status: 'passed' | 'failed' | 'error' | 'cancelled' | 'timeout';
193
+ duration_seconds: number;
194
+ steps: StepResult[];
195
+ assets?: {
196
+ recording_url?: string;
197
+ har_url?: string;
198
+ };
199
+ error?: string;
200
+ }
201
+ export interface ValidationError {
202
+ path: string;
203
+ message: string;
204
+ severity: 'error' | 'warning' | 'info';
205
+ }
206
+ export interface ValidationResult {
207
+ valid: boolean;
208
+ errors: ValidationError[];
209
+ warnings: ValidationError[];
210
+ resolved?: {
211
+ app_config_id?: string;
212
+ total_steps?: number;
213
+ dependencies?: string[];
214
+ };
215
+ }
216
+ export interface ImportOptions {
217
+ upsert?: boolean;
218
+ dry_run?: boolean;
219
+ }
220
+ export interface ImportedTest {
221
+ name: string;
222
+ id: string;
223
+ action: 'created' | 'updated' | 'skipped';
224
+ }
225
+ export interface ImportResult {
226
+ success: boolean;
227
+ imported: ImportedTest[];
228
+ errors: Array<{
229
+ name: string;
230
+ error: string;
231
+ }>;
232
+ }
233
+ export type { TestDefinition };
234
+ export declare class ApiClient {
235
+ private readonly client;
236
+ private apiKey;
237
+ private appConfigId;
238
+ constructor(baseUrl?: string);
239
+ setApiKey(apiKey: string): void;
240
+ getApiKey(): string | null;
241
+ setAppConfigId(appConfigId: string): void;
242
+ getAppConfigId(): string | null;
243
+ static getAppUrl(): string;
244
+ getApiUrl(): string;
245
+ validateApiKey(apiKey?: string): Promise<AuthResponse>;
246
+ createSession(options: CreateSessionOptions): Promise<CreateSessionResponse>;
247
+ listSessions(options?: ListOptions): Promise<TestAgentV2Session[]>;
248
+ getSession(sessionId: string, selfOnly?: boolean): Promise<TestAgentV2Session>;
249
+ sendMessage(options: SendMessageOptions): Promise<any>;
250
+ register(email: string): Promise<RegisterResponse>;
251
+ listTests(options?: ListOptions): Promise<AutomatedTest[]>;
252
+ getTest(testId: string, selfOnly?: boolean): Promise<AutomatedTest>;
253
+ runTests(options: RunTestsOptions): Promise<RunTestsResponse>;
254
+ listTestRuns(options?: ListTestRunsOptions): Promise<TestRun[]>;
255
+ updateAppConfig(config: UpdateAppConfigSchema): Promise<UpdateAppConfigResponse>;
256
+ listAppConfigs(options?: ListAppConfigsOptions): Promise<AppConfig[]>;
257
+ setWsUrl(wsUrl: string): Promise<{
258
+ success: boolean;
259
+ message?: string;
260
+ data?: any;
261
+ }>;
262
+ /**
263
+ * Run test definitions with SSE streaming progress
264
+ * @param options - Test execution options
265
+ * @param onEvent - Optional callback for SSE events
266
+ * @returns Promise resolving to test result
267
+ */
268
+ runCliTest(options: RunCliTestOptions, onEvent?: SSECallback): Promise<RunCliTestResult>;
269
+ /**
270
+ * Export a database test to YAML or JSON format
271
+ * @param testId - UUID of the test to export
272
+ * @param format - Output format ('yaml' or 'json')
273
+ * @param includeDeps - Whether to include dependencies
274
+ * @returns Promise resolving to YAML/JSON string
275
+ */
276
+ exportTest(testId: string, format?: 'yaml' | 'json', includeDeps?: boolean): Promise<string>;
277
+ /**
278
+ * Validate test definitions without running them
279
+ * @param definitions - Array of TestDefinitions to validate
280
+ * @returns Promise resolving to validation result
281
+ */
282
+ validateTestDefinition(definitions: TestDefinition[]): Promise<ValidationResult>;
283
+ /**
284
+ * Import (create/update) tests from definitions
285
+ * @param definitions - Array of TestDefinitions to import
286
+ * @param options - Import options (upsert, dry_run)
287
+ * @returns Promise resolving to import result
288
+ */
289
+ importTestDefinition(definitions: TestDefinition[], options?: ImportOptions): Promise<ImportResult>;
290
+ /**
291
+ * Get JSON Schema for TestDefinition format
292
+ * @returns Promise resolving to JSON Schema object
293
+ */
294
+ getTestDefinitionSchema(): Promise<any>;
295
+ }
296
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/api/index.ts"],"names":[],"mappings":"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"}