@testivai/witness-cdp 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.
- package/LICENSE +21 -0
- package/README.md +405 -0
- package/dist/__tests__/setup.d.ts +4 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +24 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/bin/testivai.d.ts +3 -0
- package/dist/bin/testivai.d.ts.map +1 -0
- package/dist/bin/testivai.js +48 -0
- package/dist/bin/testivai.js.map +1 -0
- package/dist/cdp/binding.d.ts +56 -0
- package/dist/cdp/binding.d.ts.map +1 -0
- package/dist/cdp/binding.js +364 -0
- package/dist/cdp/binding.js.map +1 -0
- package/dist/cdp/capture.d.ts +61 -0
- package/dist/cdp/capture.d.ts.map +1 -0
- package/dist/cdp/capture.js +422 -0
- package/dist/cdp/capture.js.map +1 -0
- package/dist/cdp/client.d.ts +63 -0
- package/dist/cdp/client.d.ts.map +1 -0
- package/dist/cdp/client.js +279 -0
- package/dist/cdp/client.js.map +1 -0
- package/dist/cdp/discovery.d.ts +33 -0
- package/dist/cdp/discovery.d.ts.map +1 -0
- package/dist/cdp/discovery.js +157 -0
- package/dist/cdp/discovery.js.map +1 -0
- package/dist/ci.d.ts +31 -0
- package/dist/ci.d.ts.map +1 -0
- package/dist/ci.js +118 -0
- package/dist/ci.js.map +1 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +122 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/capture.d.ts +3 -0
- package/dist/commands/capture.d.ts.map +1 -0
- package/dist/commands/capture.js +143 -0
- package/dist/commands/capture.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +255 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/run.d.ts +3 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +438 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +77 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +329 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/file-naming.d.ts +31 -0
- package/dist/utils/file-naming.d.ts.map +1 -0
- package/dist/utils/file-naming.js +137 -0
- package/dist/utils/file-naming.js.map +1 -0
- package/dist/utils/framework-detect.d.ts +31 -0
- package/dist/utils/framework-detect.d.ts.map +1 -0
- package/dist/utils/framework-detect.js +379 -0
- package/dist/utils/framework-detect.js.map +1 -0
- package/dist/utils/logger.d.ts +29 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +114 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/process.d.ts +61 -0
- package/dist/utils/process.d.ts.map +1 -0
- package/dist/utils/process.js +208 -0
- package/dist/utils/process.js.map +1 -0
- package/dist/utils/template-generator.d.ts +36 -0
- package/dist/utils/template-generator.d.ts.map +1 -0
- package/dist/utils/template-generator.js +255 -0
- package/dist/utils/template-generator.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,379 @@
|
|
|
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.FrameworkDetector = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
/**
|
|
40
|
+
* Framework detection utility
|
|
41
|
+
*/
|
|
42
|
+
class FrameworkDetector {
|
|
43
|
+
/**
|
|
44
|
+
* Detect the testing framework in use
|
|
45
|
+
*/
|
|
46
|
+
static detect() {
|
|
47
|
+
const cwd = process.cwd();
|
|
48
|
+
const evidence = [];
|
|
49
|
+
const configFiles = [];
|
|
50
|
+
let framework = 'unknown';
|
|
51
|
+
let confidence = 0;
|
|
52
|
+
// Check for Cypress
|
|
53
|
+
const cypressResult = this.detectCypress(cwd);
|
|
54
|
+
if (cypressResult.detected) {
|
|
55
|
+
framework = 'cypress';
|
|
56
|
+
confidence = cypressResult.confidence;
|
|
57
|
+
evidence.push(...cypressResult.evidence);
|
|
58
|
+
configFiles.push(...cypressResult.configFiles);
|
|
59
|
+
}
|
|
60
|
+
// Check for WebdriverIO
|
|
61
|
+
const wdioResult = this.detectWebdriverIO(cwd);
|
|
62
|
+
if (wdioResult.detected && wdioResult.confidence > confidence) {
|
|
63
|
+
framework = 'webdriverio';
|
|
64
|
+
confidence = wdioResult.confidence;
|
|
65
|
+
evidence.length = 0;
|
|
66
|
+
configFiles.length = 0;
|
|
67
|
+
evidence.push(...wdioResult.evidence);
|
|
68
|
+
configFiles.push(...wdioResult.configFiles);
|
|
69
|
+
}
|
|
70
|
+
// Check for Selenium JS
|
|
71
|
+
const seleniumJsResult = this.detectSeleniumJS(cwd);
|
|
72
|
+
if (seleniumJsResult.detected && seleniumJsResult.confidence > confidence) {
|
|
73
|
+
framework = 'selenium-js';
|
|
74
|
+
confidence = seleniumJsResult.confidence;
|
|
75
|
+
evidence.length = 0;
|
|
76
|
+
configFiles.length = 0;
|
|
77
|
+
evidence.push(...seleniumJsResult.evidence);
|
|
78
|
+
configFiles.push(...seleniumJsResult.configFiles);
|
|
79
|
+
}
|
|
80
|
+
// Check for Selenium Python
|
|
81
|
+
const seleniumPyResult = this.detectSeleniumPython(cwd);
|
|
82
|
+
if (seleniumPyResult.detected && seleniumPyResult.confidence > confidence) {
|
|
83
|
+
framework = 'selenium-python';
|
|
84
|
+
confidence = seleniumPyResult.confidence;
|
|
85
|
+
evidence.length = 0;
|
|
86
|
+
configFiles.length = 0;
|
|
87
|
+
evidence.push(...seleniumPyResult.evidence);
|
|
88
|
+
configFiles.push(...seleniumPyResult.configFiles);
|
|
89
|
+
}
|
|
90
|
+
const instructions = this.generateInstructions(framework);
|
|
91
|
+
return {
|
|
92
|
+
framework,
|
|
93
|
+
confidence,
|
|
94
|
+
evidence,
|
|
95
|
+
configFiles,
|
|
96
|
+
instructions,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Detect Cypress
|
|
101
|
+
*/
|
|
102
|
+
static detectCypress(cwd) {
|
|
103
|
+
const detected = false;
|
|
104
|
+
const evidence = [];
|
|
105
|
+
const configFiles = [];
|
|
106
|
+
let confidence = 0;
|
|
107
|
+
// Check for cypress.config.js/ts
|
|
108
|
+
const cypressConfigFiles = ['cypress.config.js', 'cypress.config.ts'];
|
|
109
|
+
for (const file of cypressConfigFiles) {
|
|
110
|
+
if (fs.existsSync(path.join(cwd, file))) {
|
|
111
|
+
configFiles.push(file);
|
|
112
|
+
evidence.push(`Found ${file}`);
|
|
113
|
+
confidence += 0.4;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Check for cypress folder
|
|
117
|
+
if (fs.existsSync(path.join(cwd, 'cypress'))) {
|
|
118
|
+
evidence.push('Found cypress/ directory');
|
|
119
|
+
confidence += 0.3;
|
|
120
|
+
}
|
|
121
|
+
// Check package.json for cypress dependency
|
|
122
|
+
const packageJsonPath = path.join(cwd, 'package.json');
|
|
123
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
124
|
+
try {
|
|
125
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
126
|
+
if (packageJson.dependencies?.cypress || packageJson.devDependencies?.cypress) {
|
|
127
|
+
evidence.push('Found cypress in package.json');
|
|
128
|
+
confidence += 0.3;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// Ignore errors
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return { detected: confidence > 0, confidence, evidence, configFiles };
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Detect WebdriverIO
|
|
139
|
+
*/
|
|
140
|
+
static detectWebdriverIO(cwd) {
|
|
141
|
+
const detected = false;
|
|
142
|
+
const evidence = [];
|
|
143
|
+
const configFiles = [];
|
|
144
|
+
let confidence = 0;
|
|
145
|
+
// Check for wdio.conf.js/ts
|
|
146
|
+
const wdioConfigFiles = ['wdio.conf.js', 'wdio.conf.ts'];
|
|
147
|
+
for (const file of wdioConfigFiles) {
|
|
148
|
+
if (fs.existsSync(path.join(cwd, file))) {
|
|
149
|
+
configFiles.push(file);
|
|
150
|
+
evidence.push(`Found ${file}`);
|
|
151
|
+
confidence += 0.5;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// Check package.json for webdriverio dependency
|
|
155
|
+
const packageJsonPath = path.join(cwd, 'package.json');
|
|
156
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
157
|
+
try {
|
|
158
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
159
|
+
if (packageJson.dependencies?.webdriverio || packageJson.devDependencies?.webdriverio) {
|
|
160
|
+
evidence.push('Found webdriverio in package.json');
|
|
161
|
+
confidence += 0.5;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
// Ignore errors
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return { detected: confidence > 0, confidence, evidence, configFiles };
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Detect Selenium JS
|
|
172
|
+
*/
|
|
173
|
+
static detectSeleniumJS(cwd) {
|
|
174
|
+
const detected = false;
|
|
175
|
+
const evidence = [];
|
|
176
|
+
const configFiles = [];
|
|
177
|
+
let confidence = 0;
|
|
178
|
+
// Check package.json for selenium-webdriver dependency
|
|
179
|
+
const packageJsonPath = path.join(cwd, 'package.json');
|
|
180
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
181
|
+
try {
|
|
182
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
183
|
+
if (packageJson.dependencies?.['selenium-webdriver'] ||
|
|
184
|
+
packageJson.devDependencies?.['selenium-webdriver']) {
|
|
185
|
+
evidence.push('Found selenium-webdriver in package.json');
|
|
186
|
+
confidence = 0.8;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
// Ignore errors
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// Look for selenium usage in test files
|
|
194
|
+
const testDirs = ['test', 'tests', 'spec', '__tests__'];
|
|
195
|
+
for (const testDir of testDirs) {
|
|
196
|
+
const dirPath = path.join(cwd, testDir);
|
|
197
|
+
if (fs.existsSync(dirPath)) {
|
|
198
|
+
const files = fs.readdirSync(dirPath);
|
|
199
|
+
for (const file of files) {
|
|
200
|
+
if (file.endsWith('.js') || file.endsWith('.ts')) {
|
|
201
|
+
const filePath = path.join(dirPath, file);
|
|
202
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
203
|
+
if (content.includes('selenium-webdriver') ||
|
|
204
|
+
content.includes('import { Builder }') ||
|
|
205
|
+
content.includes('webdriver')) {
|
|
206
|
+
evidence.push(`Found selenium usage in ${path.join(testDir, file)}`);
|
|
207
|
+
confidence = Math.max(confidence, 0.6);
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return { detected: confidence > 0, confidence, evidence, configFiles };
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Detect Selenium Python
|
|
218
|
+
*/
|
|
219
|
+
static detectSeleniumPython(cwd) {
|
|
220
|
+
const detected = false;
|
|
221
|
+
const evidence = [];
|
|
222
|
+
const configFiles = [];
|
|
223
|
+
let confidence = 0;
|
|
224
|
+
// Check for requirements.txt or pyproject.toml
|
|
225
|
+
const reqFiles = ['requirements.txt', 'pyproject.toml', 'Pipfile'];
|
|
226
|
+
for (const file of reqFiles) {
|
|
227
|
+
if (fs.existsSync(path.join(cwd, file))) {
|
|
228
|
+
const content = fs.readFileSync(path.join(cwd, file), 'utf-8');
|
|
229
|
+
if (content.includes('selenium')) {
|
|
230
|
+
evidence.push(`Found selenium in ${file}`);
|
|
231
|
+
confidence += 0.5;
|
|
232
|
+
configFiles.push(file);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// Look for selenium usage in Python files
|
|
237
|
+
const testDirs = ['test', 'tests', 'spec'];
|
|
238
|
+
for (const testDir of testDirs) {
|
|
239
|
+
const dirPath = path.join(cwd, testDir);
|
|
240
|
+
if (fs.existsSync(dirPath)) {
|
|
241
|
+
const files = fs.readdirSync(dirPath);
|
|
242
|
+
for (const file of files) {
|
|
243
|
+
if (file.endsWith('.py')) {
|
|
244
|
+
const filePath = path.join(dirPath, file);
|
|
245
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
246
|
+
if (content.includes('from selenium import') ||
|
|
247
|
+
content.includes('import selenium') ||
|
|
248
|
+
content.includes('webdriver')) {
|
|
249
|
+
evidence.push(`Found selenium usage in ${path.join(testDir, file)}`);
|
|
250
|
+
confidence = Math.max(confidence, 0.7);
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return { detected: confidence > 0, confidence, evidence, configFiles };
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Generate setup instructions for the detected framework
|
|
261
|
+
*/
|
|
262
|
+
static generateInstructions(framework) {
|
|
263
|
+
switch (framework) {
|
|
264
|
+
case 'cypress':
|
|
265
|
+
return [
|
|
266
|
+
'',
|
|
267
|
+
'To use TestivAI with Cypress:',
|
|
268
|
+
'',
|
|
269
|
+
'1. Add this custom command to cypress/support/commands.js:',
|
|
270
|
+
'',
|
|
271
|
+
' // testivai-witness-cdp.js',
|
|
272
|
+
' Cypress.Commands.add(\'witness\', (name) => {',
|
|
273
|
+
' return cy.window().invoke(\'testivaiWitness\', name);',
|
|
274
|
+
' });',
|
|
275
|
+
'',
|
|
276
|
+
'2. Use in your tests:',
|
|
277
|
+
'',
|
|
278
|
+
' it(\'should capture visual snapshot\', () => {',
|
|
279
|
+
' cy.visit(\'/my-page\');',
|
|
280
|
+
' cy.witness(\'my-snapshot\');',
|
|
281
|
+
' });',
|
|
282
|
+
'',
|
|
283
|
+
'3. Run tests with:',
|
|
284
|
+
' testivai run "cypress run"',
|
|
285
|
+
'',
|
|
286
|
+
];
|
|
287
|
+
case 'webdriverio':
|
|
288
|
+
return [
|
|
289
|
+
'',
|
|
290
|
+
'To use TestivAI with WebdriverIO:',
|
|
291
|
+
'',
|
|
292
|
+
'1. Add this custom command to your test setup:',
|
|
293
|
+
'',
|
|
294
|
+
' // In wdio.conf.js or test setup',
|
|
295
|
+
' browser.addCommand(\'witness\', function(name) {',
|
|
296
|
+
' return this.executeScript(\'return window.testivaiWitness(arguments[0])\', name);',
|
|
297
|
+
' });',
|
|
298
|
+
'',
|
|
299
|
+
'2. Use in your tests:',
|
|
300
|
+
'',
|
|
301
|
+
' it(\'should capture visual snapshot\', async () => {',
|
|
302
|
+
' await browser.url(\'/my-page\');',
|
|
303
|
+
' await browser.witness(\'my-snapshot\');',
|
|
304
|
+
' });',
|
|
305
|
+
'',
|
|
306
|
+
'3. Run tests with:',
|
|
307
|
+
' testivai run "npx wdio"',
|
|
308
|
+
'',
|
|
309
|
+
];
|
|
310
|
+
case 'selenium-js':
|
|
311
|
+
return [
|
|
312
|
+
'',
|
|
313
|
+
'To use TestivAI with Selenium (JavaScript):',
|
|
314
|
+
'',
|
|
315
|
+
'1. In your tests, use execute_script:',
|
|
316
|
+
'',
|
|
317
|
+
' const { Builder, By } = require(\'selenium-webdriver\');',
|
|
318
|
+
'',
|
|
319
|
+
' async function captureSnapshot(driver, name) {',
|
|
320
|
+
' await driver.executeScript(`return window.testivaiWitness(\'${name}\')`);',
|
|
321
|
+
' }',
|
|
322
|
+
'',
|
|
323
|
+
'2. Use in your tests:',
|
|
324
|
+
'',
|
|
325
|
+
' it(\'should capture visual snapshot\', async () => {',
|
|
326
|
+
' const driver = await new Builder().forBrowser(\'chrome\').build();',
|
|
327
|
+
' await driver.get(\'http://localhost:3000\');',
|
|
328
|
+
' await captureSnapshot(driver, \'my-snapshot\');',
|
|
329
|
+
' });',
|
|
330
|
+
'',
|
|
331
|
+
'3. Run tests with:',
|
|
332
|
+
' testivai run "npm test"',
|
|
333
|
+
'',
|
|
334
|
+
];
|
|
335
|
+
case 'selenium-python':
|
|
336
|
+
return [
|
|
337
|
+
'',
|
|
338
|
+
'To use TestivAI with Selenium (Python):',
|
|
339
|
+
'',
|
|
340
|
+
'1. In your tests, use execute_script:',
|
|
341
|
+
'',
|
|
342
|
+
' from selenium import webdriver',
|
|
343
|
+
'',
|
|
344
|
+
' def capture_snapshot(driver, name):',
|
|
345
|
+
' driver.execute_script(f"return window.testivaiWitness(\'{name}\')")',
|
|
346
|
+
'',
|
|
347
|
+
'2. Use in your tests:',
|
|
348
|
+
'',
|
|
349
|
+
' def test_visual_snapshot():',
|
|
350
|
+
' driver = webdriver.Chrome()',
|
|
351
|
+
' driver.get("http://localhost:3000")',
|
|
352
|
+
' capture_snapshot(driver, "my-snapshot")',
|
|
353
|
+
'',
|
|
354
|
+
'3. Run tests with:',
|
|
355
|
+
' testivai run "pytest tests/"',
|
|
356
|
+
'',
|
|
357
|
+
];
|
|
358
|
+
default:
|
|
359
|
+
return [
|
|
360
|
+
'',
|
|
361
|
+
'No supported testing framework detected.',
|
|
362
|
+
'',
|
|
363
|
+
'To use TestivAI, you need to:',
|
|
364
|
+
'',
|
|
365
|
+
'1. Launch Chrome with remote debugging:',
|
|
366
|
+
' chrome --remote-debugging-port=9222',
|
|
367
|
+
'',
|
|
368
|
+
'2. In your test code, call:',
|
|
369
|
+
' window.testivaiWitness(\'snapshot-name\')',
|
|
370
|
+
'',
|
|
371
|
+
'3. Run your tests with:',
|
|
372
|
+
' testivai run "your-test-command"',
|
|
373
|
+
'',
|
|
374
|
+
];
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
exports.FrameworkDetector = FrameworkDetector;
|
|
379
|
+
//# sourceMappingURL=framework-detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework-detect.js","sourceRoot":"","sources":["../../src/utils/framework-detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface LoggerOptions {
|
|
2
|
+
verbose?: boolean;
|
|
3
|
+
quiet?: boolean;
|
|
4
|
+
debug?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class Logger {
|
|
7
|
+
private options;
|
|
8
|
+
constructor(options?: LoggerOptions);
|
|
9
|
+
private shouldLog;
|
|
10
|
+
error(message: string, ...args: any[]): void;
|
|
11
|
+
warn(message: string, ...args: any[]): void;
|
|
12
|
+
info(message: string, ...args: any[]): void;
|
|
13
|
+
debug(message: string, ...args: any[]): void;
|
|
14
|
+
success(message: string, ...args: any[]): void;
|
|
15
|
+
verbose(message: string, ...args: any[]): void;
|
|
16
|
+
plain(message: string, ...args: any[]): void;
|
|
17
|
+
capture(snapshotName: string): void;
|
|
18
|
+
upload(batchId: string): void;
|
|
19
|
+
connected(port: number): void;
|
|
20
|
+
disconnected(): void;
|
|
21
|
+
bindingRegistered(bindingName: string): void;
|
|
22
|
+
bindingCalled(bindingName: string, payload?: string): void;
|
|
23
|
+
startProgress(message: string): void;
|
|
24
|
+
updateProgress(message: string): void;
|
|
25
|
+
endProgress(message: string): void;
|
|
26
|
+
}
|
|
27
|
+
export declare const logger: Logger;
|
|
28
|
+
export declare function createLogger(options: LoggerOptions): Logger;
|
|
29
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAgB;gBAEnB,OAAO,GAAE,aAAkB;IAIvC,OAAO,CAAC,SAAS;IAMjB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAK5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAK3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAK3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAK5C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAK9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAK9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5C,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAKnC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK7B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK7B,YAAY,IAAI,IAAI;IAKpB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK5C,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAM1D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKpC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOrC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAMnC;AAGD,eAAO,MAAM,MAAM,QAAe,CAAC;AAGnC,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAE3D"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.logger = exports.Logger = void 0;
|
|
7
|
+
exports.createLogger = createLogger;
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
class Logger {
|
|
10
|
+
constructor(options = {}) {
|
|
11
|
+
this.options = options;
|
|
12
|
+
}
|
|
13
|
+
shouldLog(level) {
|
|
14
|
+
if (this.options.quiet && level !== 'error')
|
|
15
|
+
return false;
|
|
16
|
+
if (level === 'debug' && !this.options.debug)
|
|
17
|
+
return false;
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
error(message, ...args) {
|
|
21
|
+
if (!this.shouldLog('error'))
|
|
22
|
+
return;
|
|
23
|
+
console.error(chalk_1.default.red(`❌ ${message}`), ...args);
|
|
24
|
+
}
|
|
25
|
+
warn(message, ...args) {
|
|
26
|
+
if (!this.shouldLog('warn'))
|
|
27
|
+
return;
|
|
28
|
+
console.warn(chalk_1.default.yellow(`⚠️ ${message}`), ...args);
|
|
29
|
+
}
|
|
30
|
+
info(message, ...args) {
|
|
31
|
+
if (!this.shouldLog('info'))
|
|
32
|
+
return;
|
|
33
|
+
console.log(chalk_1.default.blue(`ℹ️ ${message}`), ...args);
|
|
34
|
+
}
|
|
35
|
+
debug(message, ...args) {
|
|
36
|
+
if (!this.shouldLog('debug'))
|
|
37
|
+
return;
|
|
38
|
+
console.log(chalk_1.default.gray(`🐛 ${message}`), ...args);
|
|
39
|
+
}
|
|
40
|
+
success(message, ...args) {
|
|
41
|
+
if (!this.shouldLog('success'))
|
|
42
|
+
return;
|
|
43
|
+
console.log(chalk_1.default.green(`✅ ${message}`), ...args);
|
|
44
|
+
}
|
|
45
|
+
verbose(message, ...args) {
|
|
46
|
+
if (!this.options.verbose || this.options.quiet)
|
|
47
|
+
return;
|
|
48
|
+
console.log(chalk_1.default.gray(` ${message}`), ...args);
|
|
49
|
+
}
|
|
50
|
+
plain(message, ...args) {
|
|
51
|
+
if (this.options.quiet)
|
|
52
|
+
return;
|
|
53
|
+
console.log(message, ...args);
|
|
54
|
+
}
|
|
55
|
+
// Specialized loggers for common operations
|
|
56
|
+
capture(snapshotName) {
|
|
57
|
+
if (!this.shouldLog('info'))
|
|
58
|
+
return;
|
|
59
|
+
console.log(chalk_1.default.cyan(`📸 Capturing: ${snapshotName}`));
|
|
60
|
+
}
|
|
61
|
+
upload(batchId) {
|
|
62
|
+
if (!this.shouldLog('info'))
|
|
63
|
+
return;
|
|
64
|
+
console.log(chalk_1.default.cyan(`📤 Uploading batch: ${batchId}`));
|
|
65
|
+
}
|
|
66
|
+
connected(port) {
|
|
67
|
+
if (!this.shouldLog('success'))
|
|
68
|
+
return;
|
|
69
|
+
console.log(chalk_1.default.green(`🔗 Connected to Chrome on port ${port}`));
|
|
70
|
+
}
|
|
71
|
+
disconnected() {
|
|
72
|
+
if (!this.shouldLog('info'))
|
|
73
|
+
return;
|
|
74
|
+
console.log(chalk_1.default.blue(`🔌 Disconnected from Chrome`));
|
|
75
|
+
}
|
|
76
|
+
bindingRegistered(bindingName) {
|
|
77
|
+
if (!this.shouldLog('debug'))
|
|
78
|
+
return;
|
|
79
|
+
console.log(chalk_1.default.gray(`📝 Registered binding: ${bindingName}`));
|
|
80
|
+
}
|
|
81
|
+
bindingCalled(bindingName, payload) {
|
|
82
|
+
if (!this.shouldLog('debug'))
|
|
83
|
+
return;
|
|
84
|
+
console.log(chalk_1.default.gray(`📞 Binding called: ${bindingName}${payload ? ` (${payload})` : ''}`));
|
|
85
|
+
}
|
|
86
|
+
// Progress indicators
|
|
87
|
+
startProgress(message) {
|
|
88
|
+
if (!this.shouldLog('info'))
|
|
89
|
+
return;
|
|
90
|
+
process.stdout.write(`${chalk_1.default.blue('⏳')} ${message}...`);
|
|
91
|
+
}
|
|
92
|
+
updateProgress(message) {
|
|
93
|
+
if (!this.shouldLog('info'))
|
|
94
|
+
return;
|
|
95
|
+
process.stdout.clearLine(0);
|
|
96
|
+
process.stdout.cursorTo(0);
|
|
97
|
+
process.stdout.write(`${chalk_1.default.blue('⏳')} ${message}...`);
|
|
98
|
+
}
|
|
99
|
+
endProgress(message) {
|
|
100
|
+
if (!this.shouldLog('info'))
|
|
101
|
+
return;
|
|
102
|
+
process.stdout.clearLine(0);
|
|
103
|
+
process.stdout.cursorTo(0);
|
|
104
|
+
console.log(`${chalk_1.default.green('✓')} ${message}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.Logger = Logger;
|
|
108
|
+
// Create default logger instance
|
|
109
|
+
exports.logger = new Logger();
|
|
110
|
+
// Create logger with options
|
|
111
|
+
function createLogger(options) {
|
|
112
|
+
return new Logger(options);
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ChildProcess } from 'child_process';
|
|
2
|
+
export interface ProcessOptions {
|
|
3
|
+
cwd?: string;
|
|
4
|
+
env?: Record<string, string>;
|
|
5
|
+
silent?: boolean;
|
|
6
|
+
inheritStdio?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface ProcessResult {
|
|
9
|
+
exitCode: number | null;
|
|
10
|
+
signal: string | null;
|
|
11
|
+
stdout: string;
|
|
12
|
+
stderr: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Spawn a child process and capture its output
|
|
16
|
+
*/
|
|
17
|
+
export declare function spawnProcess(command: string, args?: string[], options?: ProcessOptions): Promise<ProcessResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Spawn a process with real-time output and signal handling
|
|
20
|
+
*/
|
|
21
|
+
export declare class ProcessManager {
|
|
22
|
+
private command;
|
|
23
|
+
private args;
|
|
24
|
+
private options;
|
|
25
|
+
private child;
|
|
26
|
+
private isKilled;
|
|
27
|
+
constructor(command: string, args?: string[], options?: ProcessOptions);
|
|
28
|
+
/**
|
|
29
|
+
* Start the process
|
|
30
|
+
*/
|
|
31
|
+
start(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Wait for the process to complete
|
|
34
|
+
*/
|
|
35
|
+
wait(): Promise<ProcessResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Kill the process
|
|
38
|
+
*/
|
|
39
|
+
kill(signal?: NodeJS.Signals): void;
|
|
40
|
+
/**
|
|
41
|
+
* Check if process is running
|
|
42
|
+
*/
|
|
43
|
+
isRunning(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Get the child process instance
|
|
46
|
+
*/
|
|
47
|
+
getProcess(): ChildProcess | null;
|
|
48
|
+
/**
|
|
49
|
+
* Run a command and return the result
|
|
50
|
+
*/
|
|
51
|
+
static run(command: string, args?: string[], options?: ProcessOptions): Promise<ProcessResult>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Handle SIGINT and SIGTERM gracefully
|
|
55
|
+
*/
|
|
56
|
+
export declare function setupSignalHandlers(cleanup: () => void | Promise<void>): void;
|
|
57
|
+
/**
|
|
58
|
+
* Check if a command exists in PATH
|
|
59
|
+
*/
|
|
60
|
+
export declare function commandExists(command: string): Promise<boolean>;
|
|
61
|
+
//# sourceMappingURL=process.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/utils/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAgDxB;AAED;;GAEG;AACH,qBAAa,cAAc;IAKvB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,QAAQ,CAAS;gBAGf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,cAAmB;IAGtC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;IAsCpC;;OAEG;IACH,IAAI,CAAC,MAAM,GAAE,MAAM,CAAC,OAAmB,GAAG,IAAI;IAQ9C;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,UAAU,IAAI,YAAY,GAAG,IAAI;IAIjC;;OAEG;WACU,GAAG,CACd,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC;CAK1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAClC,IAAI,CAcN;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUrE"}
|