@thinkbrowse/cli 0.1.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/README.md +246 -0
- package/dist/bin/thinkbrowse.d.ts +6 -0
- package/dist/bin/thinkbrowse.d.ts.map +1 -0
- package/dist/bin/thinkbrowse.js +58 -0
- package/dist/bin/thinkbrowse.js.map +1 -0
- package/dist/src/adapters/cloud.d.ts +46 -0
- package/dist/src/adapters/cloud.d.ts.map +1 -0
- package/dist/src/adapters/cloud.js +336 -0
- package/dist/src/adapters/cloud.js.map +1 -0
- package/dist/src/adapters/types.d.ts +39 -0
- package/dist/src/adapters/types.d.ts.map +1 -0
- package/dist/src/adapters/types.js +6 -0
- package/dist/src/adapters/types.js.map +1 -0
- package/dist/src/commands/actions.d.ts +26 -0
- package/dist/src/commands/actions.d.ts.map +1 -0
- package/dist/src/commands/actions.js +540 -0
- package/dist/src/commands/actions.js.map +1 -0
- package/dist/src/commands/cloud.d.ts +6 -0
- package/dist/src/commands/cloud.d.ts.map +1 -0
- package/dist/src/commands/cloud.js +212 -0
- package/dist/src/commands/cloud.js.map +1 -0
- package/dist/src/commands/config.d.ts +6 -0
- package/dist/src/commands/config.d.ts.map +1 -0
- package/dist/src/commands/config.js +123 -0
- package/dist/src/commands/config.js.map +1 -0
- package/dist/src/config/store.d.ts +22 -0
- package/dist/src/config/store.d.ts.map +1 -0
- package/dist/src/config/store.js +80 -0
- package/dist/src/config/store.js.map +1 -0
- package/dist/src/errors.d.ts +22 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +40 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/output/formatter.d.ts +18 -0
- package/dist/src/output/formatter.d.ts.map +1 -0
- package/dist/src/output/formatter.js +28 -0
- package/dist/src/output/formatter.js.map +1 -0
- package/dist/src/types.d.ts +108 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +5 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils.d.ts +5 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +18 -0
- package/dist/src/utils.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser action commands
|
|
3
|
+
* Includes: navigate, click, type, scroll, wait, hover, select, screenshot, extract, evaluate,
|
|
4
|
+
* back, forward, press, fill, snapshot, wait-for-text, dialog, console, network
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import ora from 'ora';
|
|
9
|
+
import { writeFileSync } from 'fs';
|
|
10
|
+
import { CloudAdapter } from '../adapters/cloud.js';
|
|
11
|
+
import { handleError } from '../utils.js';
|
|
12
|
+
// Navigate
|
|
13
|
+
export function createNavigateCommand() {
|
|
14
|
+
return new Command('navigate')
|
|
15
|
+
.argument('<url>', 'URL to navigate to')
|
|
16
|
+
.option('--wait-until <condition>', 'Wait condition: load|domcontentloaded|networkidle', 'load')
|
|
17
|
+
.option('--timeout <ms>', 'Navigation timeout in milliseconds', '30000')
|
|
18
|
+
.option('--wait-for <selector>', 'Wait for selector after navigation')
|
|
19
|
+
.description('Navigate to a URL')
|
|
20
|
+
.action(async (url, options) => {
|
|
21
|
+
const spinner = ora(`Navigating to ${url}...`).start();
|
|
22
|
+
try {
|
|
23
|
+
const adapter = new CloudAdapter();
|
|
24
|
+
// Prepend https:// if no protocol
|
|
25
|
+
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
|
26
|
+
url = 'https://' + url;
|
|
27
|
+
}
|
|
28
|
+
const result = await adapter.navigate(url, {
|
|
29
|
+
waitUntil: options.waitUntil,
|
|
30
|
+
timeout: parseInt(options.timeout),
|
|
31
|
+
waitFor: options.waitFor,
|
|
32
|
+
});
|
|
33
|
+
spinner.succeed('Navigation complete');
|
|
34
|
+
if (result.data?.title) {
|
|
35
|
+
console.log(' Title:', chalk.cyan(result.data.title));
|
|
36
|
+
}
|
|
37
|
+
console.log(' URL: ', chalk.cyan(result.data?.url || url));
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
spinner.fail('Navigation failed');
|
|
41
|
+
handleError(error);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
// Click
|
|
46
|
+
export function createClickCommand() {
|
|
47
|
+
return new Command('click')
|
|
48
|
+
.argument('<selector>', 'CSS selector of element to click')
|
|
49
|
+
.option('--button <type>', 'Mouse button: left|right|middle', 'left')
|
|
50
|
+
.option('--count <n>', 'Click count (for double-click)', '1')
|
|
51
|
+
.option('--delay <ms>', 'Delay between mouse down and up', '0')
|
|
52
|
+
.option('--timeout <ms>', 'Timeout waiting for selector', '15000')
|
|
53
|
+
.description('Click an element')
|
|
54
|
+
.action(async (selector, options) => {
|
|
55
|
+
const spinner = ora(`Clicking ${selector}...`).start();
|
|
56
|
+
try {
|
|
57
|
+
const adapter = new CloudAdapter();
|
|
58
|
+
await adapter.click(selector, {
|
|
59
|
+
button: options.button,
|
|
60
|
+
count: parseInt(options.count),
|
|
61
|
+
delay: parseInt(options.delay),
|
|
62
|
+
timeout: parseInt(options.timeout),
|
|
63
|
+
});
|
|
64
|
+
spinner.succeed(`Clicked ${selector}`);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
spinner.fail('Click failed');
|
|
68
|
+
handleError(error);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
// Type
|
|
73
|
+
export function createTypeCommand() {
|
|
74
|
+
return new Command('type')
|
|
75
|
+
.argument('<selector>', 'CSS selector of input element')
|
|
76
|
+
.argument('<text>', 'Text to type')
|
|
77
|
+
.option('--delay <ms>', 'Delay between keystrokes', '0')
|
|
78
|
+
.option('--clear', 'Clear field before typing')
|
|
79
|
+
.option('--mask', 'Mask text in output (for passwords)')
|
|
80
|
+
.description('Type text into an element')
|
|
81
|
+
.action(async (selector, text, options) => {
|
|
82
|
+
const displayText = options.mask ? '***' : text;
|
|
83
|
+
const spinner = ora(`Typing into ${selector}...`).start();
|
|
84
|
+
try {
|
|
85
|
+
const adapter = new CloudAdapter();
|
|
86
|
+
await adapter.type(selector, text, {
|
|
87
|
+
delay: parseInt(options.delay),
|
|
88
|
+
clear: options.clear,
|
|
89
|
+
mask: options.mask,
|
|
90
|
+
});
|
|
91
|
+
spinner.succeed(`Typed "${displayText}" into ${selector}`);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
spinner.fail('Type failed');
|
|
95
|
+
handleError(error);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
// Fill (clears field first, then sets value)
|
|
100
|
+
export function createFillCommand() {
|
|
101
|
+
return new Command('fill')
|
|
102
|
+
.argument('<selector>', 'CSS selector of input element')
|
|
103
|
+
.argument('<value>', 'Value to fill')
|
|
104
|
+
.description('Fill a form field (clears existing value first)')
|
|
105
|
+
.action(async (selector, value) => {
|
|
106
|
+
const spinner = ora(`Filling ${selector}...`).start();
|
|
107
|
+
try {
|
|
108
|
+
const adapter = new CloudAdapter();
|
|
109
|
+
await adapter.fill(selector, value);
|
|
110
|
+
spinner.succeed(`Filled ${selector}`);
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
spinner.fail('Fill failed');
|
|
114
|
+
handleError(error);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
// Scroll
|
|
119
|
+
export function createScrollCommand() {
|
|
120
|
+
return new Command('scroll')
|
|
121
|
+
.option('--down <px>', 'Scroll down by pixels')
|
|
122
|
+
.option('--up <px>', 'Scroll up by pixels')
|
|
123
|
+
.option('--to <selector>', 'Scroll element into view')
|
|
124
|
+
.description('Scroll the page')
|
|
125
|
+
.action(async (options) => {
|
|
126
|
+
const spinner = ora('Scrolling...').start();
|
|
127
|
+
try {
|
|
128
|
+
const adapter = new CloudAdapter();
|
|
129
|
+
let scrollOptions = {};
|
|
130
|
+
if (options.to) {
|
|
131
|
+
scrollOptions.selector = options.to;
|
|
132
|
+
}
|
|
133
|
+
else if (options.down) {
|
|
134
|
+
scrollOptions.y = parseInt(options.down);
|
|
135
|
+
}
|
|
136
|
+
else if (options.up) {
|
|
137
|
+
scrollOptions.y = -parseInt(options.up);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
spinner.fail('Specify --down, --up, or --to');
|
|
141
|
+
process.exit(1);
|
|
142
|
+
}
|
|
143
|
+
await adapter.scroll(scrollOptions);
|
|
144
|
+
spinner.succeed('Scrolled');
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
spinner.fail('Scroll failed');
|
|
148
|
+
handleError(error);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
// Wait
|
|
153
|
+
export function createWaitCommand() {
|
|
154
|
+
return new Command('wait')
|
|
155
|
+
.argument('<condition>', 'Selector to wait for, or milliseconds to wait')
|
|
156
|
+
.option('--visible', 'Wait for element to be visible')
|
|
157
|
+
.option('--hidden', 'Wait for element to be hidden')
|
|
158
|
+
.option('--timeout <ms>', 'Timeout in milliseconds', '30000')
|
|
159
|
+
.description('Wait for element or time')
|
|
160
|
+
.action(async (condition, options) => {
|
|
161
|
+
try {
|
|
162
|
+
const adapter = new CloudAdapter();
|
|
163
|
+
// Check if condition is a number (milliseconds)
|
|
164
|
+
const ms = parseInt(condition);
|
|
165
|
+
if (!isNaN(ms)) {
|
|
166
|
+
const spinner = ora(`Waiting ${ms}ms...`).start();
|
|
167
|
+
await adapter.wait(ms);
|
|
168
|
+
spinner.succeed(`Waited ${ms}ms`);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
// Otherwise it's a selector
|
|
172
|
+
const action = options.hidden ? 'hide' : 'appear';
|
|
173
|
+
const spinner = ora(`Waiting for ${condition} to ${action}...`).start();
|
|
174
|
+
await adapter.wait(condition, {
|
|
175
|
+
visible: !options.hidden,
|
|
176
|
+
hidden: options.hidden,
|
|
177
|
+
timeout: parseInt(options.timeout),
|
|
178
|
+
});
|
|
179
|
+
spinner.succeed(`Element ${condition} ${action}ed`);
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
handleError(error);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
// Wait for text
|
|
187
|
+
export function createWaitForTextCommand() {
|
|
188
|
+
return new Command('wait-for-text')
|
|
189
|
+
.argument('<text>', 'Text to wait for on the page')
|
|
190
|
+
.option('--timeout <ms>', 'Timeout in milliseconds', '30000')
|
|
191
|
+
.description('Wait for text to appear on the page')
|
|
192
|
+
.action(async (text, options) => {
|
|
193
|
+
const spinner = ora(`Waiting for "${text}"...`).start();
|
|
194
|
+
try {
|
|
195
|
+
const adapter = new CloudAdapter();
|
|
196
|
+
await adapter.waitForText(text, {
|
|
197
|
+
timeout: parseInt(options.timeout),
|
|
198
|
+
});
|
|
199
|
+
spinner.succeed(`Text "${text}" found`);
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
spinner.fail(`Text "${text}" not found`);
|
|
203
|
+
handleError(error);
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
// Hover
|
|
208
|
+
export function createHoverCommand() {
|
|
209
|
+
return new Command('hover')
|
|
210
|
+
.argument('<selector>', 'CSS selector of element to hover')
|
|
211
|
+
.description('Hover over an element')
|
|
212
|
+
.action(async (selector) => {
|
|
213
|
+
const spinner = ora(`Hovering over ${selector}...`).start();
|
|
214
|
+
try {
|
|
215
|
+
const adapter = new CloudAdapter();
|
|
216
|
+
await adapter.hover(selector);
|
|
217
|
+
spinner.succeed(`Hovered over ${selector}`);
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
spinner.fail('Hover failed');
|
|
221
|
+
handleError(error);
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
// Select
|
|
226
|
+
export function createSelectCommand() {
|
|
227
|
+
return new Command('select')
|
|
228
|
+
.argument('<selector>', 'CSS selector of select element')
|
|
229
|
+
.argument('<value>', 'Value to select')
|
|
230
|
+
.description('Select option in dropdown')
|
|
231
|
+
.action(async (selector, value) => {
|
|
232
|
+
const spinner = ora(`Selecting "${value}" in ${selector}...`).start();
|
|
233
|
+
try {
|
|
234
|
+
const adapter = new CloudAdapter();
|
|
235
|
+
await adapter.select(selector, value);
|
|
236
|
+
spinner.succeed(`Selected "${value}" in ${selector}`);
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
spinner.fail('Select failed');
|
|
240
|
+
handleError(error);
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
// Press key
|
|
245
|
+
export function createPressCommand() {
|
|
246
|
+
return new Command('press')
|
|
247
|
+
.argument('<key>', 'Key to press (e.g. Enter, Tab, Escape, ArrowDown)')
|
|
248
|
+
.description('Press a keyboard key')
|
|
249
|
+
.action(async (key) => {
|
|
250
|
+
const spinner = ora(`Pressing ${key}...`).start();
|
|
251
|
+
try {
|
|
252
|
+
const adapter = new CloudAdapter();
|
|
253
|
+
await adapter.press(key);
|
|
254
|
+
spinner.succeed(`Pressed ${key}`);
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
spinner.fail('Press failed');
|
|
258
|
+
handleError(error);
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
// Back
|
|
263
|
+
export function createBackCommand() {
|
|
264
|
+
return new Command('back')
|
|
265
|
+
.description('Navigate back in browser history')
|
|
266
|
+
.action(async () => {
|
|
267
|
+
const spinner = ora('Going back...').start();
|
|
268
|
+
try {
|
|
269
|
+
const adapter = new CloudAdapter();
|
|
270
|
+
await adapter.goBack();
|
|
271
|
+
spinner.succeed('Navigated back');
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
spinner.fail('Back failed');
|
|
275
|
+
handleError(error);
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
// Forward
|
|
280
|
+
export function createForwardCommand() {
|
|
281
|
+
return new Command('forward')
|
|
282
|
+
.description('Navigate forward in browser history')
|
|
283
|
+
.action(async () => {
|
|
284
|
+
const spinner = ora('Going forward...').start();
|
|
285
|
+
try {
|
|
286
|
+
const adapter = new CloudAdapter();
|
|
287
|
+
await adapter.goForward();
|
|
288
|
+
spinner.succeed('Navigated forward');
|
|
289
|
+
}
|
|
290
|
+
catch (error) {
|
|
291
|
+
spinner.fail('Forward failed');
|
|
292
|
+
handleError(error);
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
// Snapshot (accessibility tree)
|
|
297
|
+
export function createSnapshotCommand() {
|
|
298
|
+
return new Command('snapshot')
|
|
299
|
+
.description('Get accessibility snapshot of the page')
|
|
300
|
+
.action(async () => {
|
|
301
|
+
const spinner = ora('Taking snapshot...').start();
|
|
302
|
+
try {
|
|
303
|
+
const adapter = new CloudAdapter();
|
|
304
|
+
const result = await adapter.snapshot();
|
|
305
|
+
spinner.succeed('Snapshot captured');
|
|
306
|
+
console.log(result.data);
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
spinner.fail('Snapshot failed');
|
|
310
|
+
handleError(error);
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
// Screenshot
|
|
315
|
+
export function createScreenshotCommand() {
|
|
316
|
+
return new Command('screenshot')
|
|
317
|
+
.option('--output <path>', 'Save screenshot to file')
|
|
318
|
+
.option('--full-page', 'Capture full scrollable page')
|
|
319
|
+
.option('--selector <selector>', 'Capture specific element')
|
|
320
|
+
.option('--format <type>', 'Image format: png|jpeg|webp', 'png')
|
|
321
|
+
.option('--quality <n>', 'JPEG/WebP quality (0-100)', '80')
|
|
322
|
+
.description('Capture screenshot')
|
|
323
|
+
.action(async (options) => {
|
|
324
|
+
const spinner = ora('Capturing screenshot...').start();
|
|
325
|
+
try {
|
|
326
|
+
const adapter = new CloudAdapter();
|
|
327
|
+
const result = await adapter.screenshot({
|
|
328
|
+
output: options.output,
|
|
329
|
+
fullPage: options.fullPage,
|
|
330
|
+
selector: options.selector,
|
|
331
|
+
format: options.format,
|
|
332
|
+
quality: parseInt(options.quality),
|
|
333
|
+
});
|
|
334
|
+
if (options.output && result.data?.url) {
|
|
335
|
+
// Download screenshot to file
|
|
336
|
+
const response = await fetch(result.data.url);
|
|
337
|
+
const buffer = Buffer.from(await response.arrayBuffer());
|
|
338
|
+
writeFileSync(options.output, buffer);
|
|
339
|
+
spinner.succeed(`Screenshot saved to ${options.output}`);
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
spinner.succeed('Screenshot captured');
|
|
343
|
+
console.log(' URL:', chalk.cyan(result.data?.url));
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
catch (error) {
|
|
347
|
+
spinner.fail('Screenshot failed');
|
|
348
|
+
handleError(error);
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
// Extract
|
|
353
|
+
export function createExtractCommand() {
|
|
354
|
+
return new Command('extract')
|
|
355
|
+
.argument('<selector>', 'CSS selector of element(s) to extract')
|
|
356
|
+
.option('--all', 'Extract all matching elements')
|
|
357
|
+
.option('--attr <name>', 'Extract attribute instead of text')
|
|
358
|
+
.option('--format <type>', 'Output format: text|json|html', 'text')
|
|
359
|
+
.description('Extract content from elements')
|
|
360
|
+
.action(async (selector, options) => {
|
|
361
|
+
const spinner = ora(`Extracting from ${selector}...`).start();
|
|
362
|
+
try {
|
|
363
|
+
const adapter = new CloudAdapter();
|
|
364
|
+
const result = await adapter.extract(selector, {
|
|
365
|
+
all: options.all,
|
|
366
|
+
attr: options.attr,
|
|
367
|
+
format: options.format,
|
|
368
|
+
});
|
|
369
|
+
spinner.succeed('Extracted');
|
|
370
|
+
if (options.format === 'json') {
|
|
371
|
+
console.log(JSON.stringify(result.data, null, 2));
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
console.log(result.data);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
catch (error) {
|
|
378
|
+
spinner.fail('Extract failed');
|
|
379
|
+
handleError(error);
|
|
380
|
+
}
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
// Evaluate
|
|
384
|
+
export function createEvaluateCommand() {
|
|
385
|
+
return new Command('evaluate')
|
|
386
|
+
.argument('[script]', 'JavaScript to execute')
|
|
387
|
+
.option('--file <path>', 'Read script from file')
|
|
388
|
+
.description('Execute JavaScript in page context')
|
|
389
|
+
.action(async (script, options) => {
|
|
390
|
+
try {
|
|
391
|
+
const adapter = new CloudAdapter();
|
|
392
|
+
if (options.file) {
|
|
393
|
+
const { readFileSync } = await import('fs');
|
|
394
|
+
script = readFileSync(options.file, 'utf-8');
|
|
395
|
+
}
|
|
396
|
+
if (!script) {
|
|
397
|
+
console.error(chalk.red('Error:'), 'Provide script as argument or use --file');
|
|
398
|
+
process.exit(1);
|
|
399
|
+
}
|
|
400
|
+
const spinner = ora('Executing script...').start();
|
|
401
|
+
const result = await adapter.evaluate(script);
|
|
402
|
+
spinner.succeed('Script executed');
|
|
403
|
+
console.log(result.data);
|
|
404
|
+
}
|
|
405
|
+
catch (error) {
|
|
406
|
+
handleError(error);
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
// Dialog
|
|
411
|
+
export function createDialogCommand() {
|
|
412
|
+
const dialogCmd = new Command('dialog')
|
|
413
|
+
.description('Handle browser dialogs (alert, confirm, prompt)');
|
|
414
|
+
dialogCmd
|
|
415
|
+
.command('get')
|
|
416
|
+
.description('Check for pending dialog')
|
|
417
|
+
.action(async () => {
|
|
418
|
+
try {
|
|
419
|
+
const adapter = new CloudAdapter();
|
|
420
|
+
const result = await adapter.getDialog();
|
|
421
|
+
if (result.dialog) {
|
|
422
|
+
console.log(chalk.bold('Dialog:'));
|
|
423
|
+
console.log(' Type: ', chalk.cyan(result.dialog.type));
|
|
424
|
+
console.log(' Message:', result.dialog.message);
|
|
425
|
+
if (result.dialog.defaultValue) {
|
|
426
|
+
console.log(' Default:', result.dialog.defaultValue);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
console.log(chalk.gray('No pending dialog'));
|
|
431
|
+
}
|
|
432
|
+
if (result.history && result.history.length > 0) {
|
|
433
|
+
console.log('');
|
|
434
|
+
console.log(chalk.bold(`Dialog History (${result.history.length}):`));
|
|
435
|
+
for (const entry of result.history) {
|
|
436
|
+
console.log(` ${chalk.gray(entry.timestamp)} ${entry.type}: "${entry.message}" → ${entry.action}`);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
catch (error) {
|
|
441
|
+
handleError(error);
|
|
442
|
+
}
|
|
443
|
+
});
|
|
444
|
+
dialogCmd
|
|
445
|
+
.command('accept')
|
|
446
|
+
.argument('[text]', 'Text for prompt dialogs')
|
|
447
|
+
.description('Accept the pending dialog')
|
|
448
|
+
.action(async (text) => {
|
|
449
|
+
const spinner = ora('Accepting dialog...').start();
|
|
450
|
+
try {
|
|
451
|
+
const adapter = new CloudAdapter();
|
|
452
|
+
await adapter.handleDialog('accept', text);
|
|
453
|
+
spinner.succeed('Dialog accepted');
|
|
454
|
+
}
|
|
455
|
+
catch (error) {
|
|
456
|
+
spinner.fail('Failed to accept dialog');
|
|
457
|
+
handleError(error);
|
|
458
|
+
}
|
|
459
|
+
});
|
|
460
|
+
dialogCmd
|
|
461
|
+
.command('dismiss')
|
|
462
|
+
.description('Dismiss the pending dialog')
|
|
463
|
+
.action(async () => {
|
|
464
|
+
const spinner = ora('Dismissing dialog...').start();
|
|
465
|
+
try {
|
|
466
|
+
const adapter = new CloudAdapter();
|
|
467
|
+
await adapter.handleDialog('dismiss');
|
|
468
|
+
spinner.succeed('Dialog dismissed');
|
|
469
|
+
}
|
|
470
|
+
catch (error) {
|
|
471
|
+
spinner.fail('Failed to dismiss dialog');
|
|
472
|
+
handleError(error);
|
|
473
|
+
}
|
|
474
|
+
});
|
|
475
|
+
return dialogCmd;
|
|
476
|
+
}
|
|
477
|
+
// Console
|
|
478
|
+
export function createConsoleCommand() {
|
|
479
|
+
return new Command('console')
|
|
480
|
+
.description('Get browser console messages')
|
|
481
|
+
.action(async () => {
|
|
482
|
+
const spinner = ora('Fetching console messages...').start();
|
|
483
|
+
try {
|
|
484
|
+
const adapter = new CloudAdapter();
|
|
485
|
+
const result = await adapter.getConsoleMessages();
|
|
486
|
+
spinner.stop();
|
|
487
|
+
if (!result.logs || result.logs.length === 0) {
|
|
488
|
+
console.log(chalk.gray('No console messages'));
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
491
|
+
console.log(chalk.bold(`Console Messages (${result.count}):`));
|
|
492
|
+
console.log('');
|
|
493
|
+
for (const log of result.logs) {
|
|
494
|
+
const levelColor = log.level === 'error' ? chalk.red
|
|
495
|
+
: log.level === 'warning' ? chalk.yellow
|
|
496
|
+
: log.level === 'info' ? chalk.blue
|
|
497
|
+
: chalk.gray;
|
|
498
|
+
console.log(` ${levelColor(`[${log.level}]`)} ${log.text}`);
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
catch (error) {
|
|
502
|
+
spinner.fail('Failed to fetch console messages');
|
|
503
|
+
handleError(error);
|
|
504
|
+
}
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
// Network
|
|
508
|
+
export function createNetworkCommand() {
|
|
509
|
+
return new Command('network')
|
|
510
|
+
.description('Get network requests')
|
|
511
|
+
.action(async () => {
|
|
512
|
+
const spinner = ora('Fetching network requests...').start();
|
|
513
|
+
try {
|
|
514
|
+
const adapter = new CloudAdapter();
|
|
515
|
+
const result = await adapter.getNetworkRequests();
|
|
516
|
+
spinner.stop();
|
|
517
|
+
if (!result.requests || result.requests.length === 0) {
|
|
518
|
+
console.log(chalk.gray('No network requests'));
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
521
|
+
console.log(chalk.bold(`Network Requests (${result.count}):`));
|
|
522
|
+
console.log('');
|
|
523
|
+
for (const req of result.requests) {
|
|
524
|
+
const statusColor = req.status && req.status < 300 ? chalk.green
|
|
525
|
+
: req.status && req.status < 400 ? chalk.cyan
|
|
526
|
+
: req.status && req.status < 500 ? chalk.yellow
|
|
527
|
+
: chalk.red;
|
|
528
|
+
const status = req.status ? statusColor(req.status.toString()) : chalk.gray('---');
|
|
529
|
+
const method = chalk.bold(req.method.padEnd(6));
|
|
530
|
+
const size = req.size ? chalk.gray(`${(req.size / 1024).toFixed(1)}KB`) : '';
|
|
531
|
+
console.log(` ${status} ${method} ${req.url} ${size}`);
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
catch (error) {
|
|
535
|
+
spinner.fail('Failed to fetch network requests');
|
|
536
|
+
handleError(error);
|
|
537
|
+
}
|
|
538
|
+
});
|
|
539
|
+
}
|
|
540
|
+
//# sourceMappingURL=actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/commands/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../../src/commands/cloud.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,kBAAkB,IAAI,OAAO,CA+L5C"}
|