@vforsh/argus 0.1.10 → 0.1.12
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/dist/.tsbuildinfo +1 -1
- package/dist/argus.js +4781 -4880
- package/dist/bin.js +4 -47
- package/dist/bin.js.map +1 -1
- package/dist/cdp/sendCdpCommand.d.ts +11 -0
- package/dist/cdp/sendCdpCommand.d.ts.map +1 -0
- package/dist/cdp/sendCdpCommand.js +103 -0
- package/dist/cdp/sendCdpCommand.js.map +1 -0
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +2 -1
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/register/domCommandBuilder.d.ts +22 -0
- package/dist/cli/register/domCommandBuilder.d.ts.map +1 -0
- package/dist/cli/register/domCommandBuilder.js +33 -0
- package/dist/cli/register/domCommandBuilder.js.map +1 -0
- package/dist/cli/register/index.d.ts +4 -0
- package/dist/cli/register/index.d.ts.map +1 -0
- package/dist/cli/register/index.js +45 -0
- package/dist/cli/register/index.js.map +1 -0
- package/dist/cli/register/registerDom.d.ts.map +1 -1
- package/dist/cli/register/registerDom.js +138 -121
- package/dist/cli/register/registerDom.js.map +1 -1
- package/dist/commands/chrome/browser.d.ts +5 -0
- package/dist/commands/chrome/browser.d.ts.map +1 -0
- package/dist/commands/chrome/browser.js +71 -0
- package/dist/commands/chrome/browser.js.map +1 -0
- package/dist/commands/chrome/processes.d.ts +24 -0
- package/dist/commands/chrome/processes.d.ts.map +1 -0
- package/dist/commands/chrome/processes.js +115 -0
- package/dist/commands/chrome/processes.js.map +1 -0
- package/dist/commands/chrome/shared.d.ts +31 -0
- package/dist/commands/chrome/shared.d.ts.map +1 -0
- package/dist/commands/chrome/shared.js +48 -0
- package/dist/commands/chrome/shared.js.map +1 -0
- package/dist/commands/chrome/targets.d.ts +26 -0
- package/dist/commands/chrome/targets.d.ts.map +1 -0
- package/dist/commands/chrome/targets.js +240 -0
- package/dist/commands/chrome/targets.js.map +1 -0
- package/dist/commands/chrome.d.ts +6 -63
- package/dist/commands/chrome.d.ts.map +1 -1
- package/dist/commands/chrome.js +3 -609
- package/dist/commands/chrome.js.map +1 -1
- package/dist/commands/chromeStart.d.ts.map +1 -1
- package/dist/commands/chromeStart.js +14 -44
- package/dist/commands/chromeStart.js.map +1 -1
- package/dist/commands/dom/shared.d.ts +12 -0
- package/dist/commands/dom/shared.d.ts.map +1 -0
- package/dist/commands/dom/shared.js +42 -0
- package/dist/commands/dom/shared.js.map +1 -0
- package/dist/commands/domAdd.d.ts.map +1 -1
- package/dist/commands/domAdd.js +11 -27
- package/dist/commands/domAdd.js.map +1 -1
- package/dist/commands/domClick.d.ts.map +1 -1
- package/dist/commands/domClick.js +14 -40
- package/dist/commands/domClick.js.map +1 -1
- package/dist/commands/domFill.d.ts.map +1 -1
- package/dist/commands/domFill.js +10 -31
- package/dist/commands/domFill.js.map +1 -1
- package/dist/commands/domFocus.d.ts.map +1 -1
- package/dist/commands/domFocus.js +11 -26
- package/dist/commands/domFocus.js.map +1 -1
- package/dist/commands/domHover.d.ts.map +1 -1
- package/dist/commands/domHover.js +11 -26
- package/dist/commands/domHover.js.map +1 -1
- package/dist/commands/domInfo.d.ts.map +1 -1
- package/dist/commands/domInfo.js +10 -25
- package/dist/commands/domInfo.js.map +1 -1
- package/dist/commands/domModify.d.ts.map +1 -1
- package/dist/commands/domModify.js +14 -26
- package/dist/commands/domModify.js.map +1 -1
- package/dist/commands/domRemove.d.ts.map +1 -1
- package/dist/commands/domRemove.js +10 -25
- package/dist/commands/domRemove.js.map +1 -1
- package/dist/commands/domScroll.d.ts.map +1 -1
- package/dist/commands/domScroll.js +7 -33
- package/dist/commands/domScroll.js.map +1 -1
- package/dist/commands/domScrollTo.d.ts.map +1 -1
- package/dist/commands/domScrollTo.js +7 -33
- package/dist/commands/domScrollTo.js.map +1 -1
- package/dist/commands/domSetFile.d.ts.map +1 -1
- package/dist/commands/domSetFile.js +14 -36
- package/dist/commands/domSetFile.js.map +1 -1
- package/dist/commands/domTree.d.ts.map +1 -1
- package/dist/commands/domTree.js +10 -25
- package/dist/commands/domTree.js.map +1 -1
- package/dist/commands/extension/setup.js +1 -1
- package/dist/commands/extension/setup.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +3 -5
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +10 -57
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/net.d.ts.map +1 -1
- package/dist/commands/net.js +8 -22
- package/dist/commands/net.js.map +1 -1
- package/dist/commands/netTail.d.ts.map +1 -1
- package/dist/commands/netTail.js +11 -25
- package/dist/commands/netTail.js.map +1 -1
- package/dist/commands/page.d.ts.map +1 -1
- package/dist/commands/page.js +1 -99
- package/dist/commands/page.js.map +1 -1
- package/dist/commands/start.d.ts +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +19 -86
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/startShared.d.ts +32 -0
- package/dist/commands/startShared.d.ts.map +1 -0
- package/dist/commands/startShared.js +74 -0
- package/dist/commands/startShared.js.map +1 -0
- package/dist/commands/tail.d.ts.map +1 -1
- package/dist/commands/tail.js +8 -43
- package/dist/commands/tail.js.map +1 -1
- package/dist/commands/trace.d.ts.map +1 -1
- package/dist/commands/trace.js +7 -9
- package/dist/commands/trace.js.map +1 -1
- package/dist/commands/watcherSession.d.ts +29 -0
- package/dist/commands/watcherSession.d.ts.map +1 -0
- package/dist/commands/watcherSession.js +64 -0
- package/dist/commands/watcherSession.js.map +1 -0
- package/dist/commands/watcherStart.d.ts +1 -1
- package/dist/commands/watcherStart.d.ts.map +1 -1
- package/dist/commands/watcherStart.js +23 -89
- package/dist/commands/watcherStart.js.map +1 -1
- package/dist/config/argusConfig.d.ts.map +1 -1
- package/dist/config/argusConfig.js +69 -81
- package/dist/config/argusConfig.js.map +1 -1
- package/dist/eval/evalClient.js +5 -14
- package/dist/eval/evalClient.js.map +1 -1
- package/dist/httpClient.d.ts +1 -12
- package/dist/httpClient.d.ts.map +1 -1
- package/dist/httpClient.js +1 -84
- package/dist/httpClient.js.map +1 -1
- package/dist/runtime-code/strings.js +9 -1
- package/dist/runtime-code/strings.js.map +1 -1
- package/dist/watchers/queryParams.d.ts +34 -0
- package/dist/watchers/queryParams.d.ts.map +1 -0
- package/dist/watchers/queryParams.js +80 -0
- package/dist/watchers/queryParams.js.map +1 -0
- package/dist/watchers/requestWatcher.d.ts +16 -1
- package/dist/watchers/requestWatcher.d.ts.map +1 -1
- package/dist/watchers/requestWatcher.js +47 -9
- package/dist/watchers/requestWatcher.js.map +1 -1
- package/dist/watchers/resolveWatcher.js +2 -3
- package/dist/watchers/resolveWatcher.js.map +1 -1
- package/package.json +1 -1
package/dist/bin.js
CHANGED
|
@@ -1,54 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createProgram } from './cli/program.js';
|
|
3
|
-
import {
|
|
4
|
-
import { registerChrome } from './cli/register/registerChrome.js';
|
|
5
|
-
import { registerWatcher } from './cli/register/registerWatcher.js';
|
|
6
|
-
import { registerPage } from './cli/register/registerPage.js';
|
|
7
|
-
import { registerLogs } from './cli/register/registerLogs.js';
|
|
8
|
-
import { registerNet } from './cli/register/registerNet.js';
|
|
9
|
-
import { registerAuth } from './cli/register/registerAuth.js';
|
|
10
|
-
import { registerEval } from './cli/register/registerEval.js';
|
|
11
|
-
import { registerDom } from './cli/register/registerDom.js';
|
|
12
|
-
import { registerClick } from './cli/register/registerClick.js';
|
|
13
|
-
import { registerKeydown } from './cli/register/registerKeydown.js';
|
|
14
|
-
import { registerFill } from './cli/register/registerFill.js';
|
|
15
|
-
import { registerHover } from './cli/register/registerHover.js';
|
|
16
|
-
import { registerScrollTo } from './cli/register/registerScrollTo.js';
|
|
17
|
-
import { registerStorage } from './cli/register/registerStorage.js';
|
|
18
|
-
import { registerThrottle } from './cli/register/registerThrottle.js';
|
|
19
|
-
import { registerSnapshot } from './cli/register/registerSnapshot.js';
|
|
20
|
-
import { registerTrace } from './cli/register/registerTrace.js';
|
|
21
|
-
import { registerConfig } from './cli/register/registerConfig.js';
|
|
22
|
-
import { registerExtension } from './cli/register/registerExtension.js';
|
|
23
|
-
import { registerCode } from './cli/register/registerCode.js';
|
|
3
|
+
import { coreProgramRegistrars } from './cli/register/index.js';
|
|
24
4
|
import { registerPlugins } from './cli/plugins/registerPlugins.js';
|
|
25
5
|
const program = createProgram();
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
registerChrome(program);
|
|
30
|
-
registerWatcher(program);
|
|
31
|
-
registerPage(program);
|
|
32
|
-
// Inspect & debug
|
|
33
|
-
registerLogs(program);
|
|
34
|
-
registerNet(program);
|
|
35
|
-
registerAuth(program);
|
|
36
|
-
registerEval(program);
|
|
37
|
-
registerCode(program);
|
|
38
|
-
registerDom(program);
|
|
39
|
-
registerClick(program);
|
|
40
|
-
registerKeydown(program);
|
|
41
|
-
registerFill(program);
|
|
42
|
-
registerHover(program);
|
|
43
|
-
registerScrollTo(program);
|
|
44
|
-
registerStorage(program);
|
|
45
|
-
registerThrottle(program);
|
|
46
|
-
// Capture
|
|
47
|
-
registerSnapshot(program);
|
|
48
|
-
registerTrace(program);
|
|
49
|
-
// Configuration
|
|
50
|
-
registerConfig(program);
|
|
51
|
-
registerExtension(program);
|
|
6
|
+
for (const registerProgramPart of coreProgramRegistrars) {
|
|
7
|
+
registerProgramPart(program);
|
|
8
|
+
}
|
|
52
9
|
await registerPlugins(program);
|
|
53
10
|
program.parseAsync(process.argv).catch((error) => {
|
|
54
11
|
console.error(error);
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAElE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;AAE/B,KAAK,MAAM,mBAAmB,IAAI,qBAAqB,EAAE,CAAC;IACzD,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;AAE9B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAChD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type CdpCommandPayload = {
|
|
2
|
+
id: number;
|
|
3
|
+
method: string;
|
|
4
|
+
params?: Record<string, unknown>;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Send a single CDP command over a target/browser websocket and wait for the matching response.
|
|
8
|
+
* This stays intentionally tiny so command modules can focus on selecting targets and formatting output.
|
|
9
|
+
*/
|
|
10
|
+
export declare const sendCdpCommand: (wsUrl: string, payload: CdpCommandPayload, timeoutMs?: number) => Promise<void>;
|
|
11
|
+
//# sourceMappingURL=sendCdpCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendCdpCommand.d.ts","sourceRoot":"","sources":["../../src/cdp/sendCdpCommand.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC,CAAA;AAoBD;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAU,OAAO,MAAM,EAAE,SAAS,iBAAiB,EAAE,kBAAiB,KAAG,OAAO,CAAC,IAAI,CAuF/G,CAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
const getWebSocketCtor = () => {
|
|
2
|
+
const ctor = globalThis.WebSocket;
|
|
3
|
+
return ctor ?? null;
|
|
4
|
+
};
|
|
5
|
+
const toMessageText = (data) => {
|
|
6
|
+
if (typeof data === 'string') {
|
|
7
|
+
return data;
|
|
8
|
+
}
|
|
9
|
+
if (data instanceof ArrayBuffer) {
|
|
10
|
+
return Buffer.from(data).toString('utf8');
|
|
11
|
+
}
|
|
12
|
+
if (Buffer.isBuffer(data)) {
|
|
13
|
+
return data.toString('utf8');
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Send a single CDP command over a target/browser websocket and wait for the matching response.
|
|
19
|
+
* This stays intentionally tiny so command modules can focus on selecting targets and formatting output.
|
|
20
|
+
*/
|
|
21
|
+
export const sendCdpCommand = async (wsUrl, payload, timeoutMs = 5_000) => {
|
|
22
|
+
const WebSocketConstructor = getWebSocketCtor();
|
|
23
|
+
if (!WebSocketConstructor) {
|
|
24
|
+
throw new Error('WebSocket unavailable. Node 18+ required.');
|
|
25
|
+
}
|
|
26
|
+
const ws = new WebSocketConstructor(wsUrl);
|
|
27
|
+
const requestId = payload.id;
|
|
28
|
+
await new Promise((resolve, reject) => {
|
|
29
|
+
let settled = false;
|
|
30
|
+
const timer = setTimeout(() => {
|
|
31
|
+
if (!settled) {
|
|
32
|
+
settled = true;
|
|
33
|
+
try {
|
|
34
|
+
ws.close();
|
|
35
|
+
}
|
|
36
|
+
catch { }
|
|
37
|
+
reject(new Error(`CDP command timed out after ${timeoutMs}ms`));
|
|
38
|
+
}
|
|
39
|
+
}, timeoutMs);
|
|
40
|
+
const cleanup = () => {
|
|
41
|
+
clearTimeout(timer);
|
|
42
|
+
ws.removeEventListener?.('open', onOpen);
|
|
43
|
+
ws.removeEventListener?.('message', onMessage);
|
|
44
|
+
ws.removeEventListener?.('error', onError);
|
|
45
|
+
ws.removeEventListener?.('close', onClose);
|
|
46
|
+
};
|
|
47
|
+
const finish = (error) => {
|
|
48
|
+
if (settled) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
settled = true;
|
|
52
|
+
cleanup();
|
|
53
|
+
try {
|
|
54
|
+
ws.close();
|
|
55
|
+
}
|
|
56
|
+
catch { }
|
|
57
|
+
if (error) {
|
|
58
|
+
reject(error);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
resolve();
|
|
62
|
+
};
|
|
63
|
+
const onOpen = () => {
|
|
64
|
+
try {
|
|
65
|
+
ws.send(JSON.stringify(payload));
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
finish(error instanceof Error ? error : new Error(String(error)));
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const onMessage = (event) => {
|
|
72
|
+
const text = toMessageText(event.data);
|
|
73
|
+
if (!text) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
const message = JSON.parse(text);
|
|
78
|
+
if (message.id !== requestId) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (message.error?.message) {
|
|
82
|
+
finish(new Error(message.error.message));
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
finish();
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
finish(error instanceof Error ? error : new Error(String(error)));
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
const onError = () => {
|
|
92
|
+
finish(new Error('WebSocket error'));
|
|
93
|
+
};
|
|
94
|
+
const onClose = () => {
|
|
95
|
+
finish(new Error('WebSocket closed before response'));
|
|
96
|
+
};
|
|
97
|
+
ws.addEventListener('open', onOpen);
|
|
98
|
+
ws.addEventListener('message', onMessage);
|
|
99
|
+
ws.addEventListener('error', onError);
|
|
100
|
+
ws.addEventListener('close', onClose);
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=sendCdpCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendCdpCommand.js","sourceRoot":"","sources":["../../src/cdp/sendCdpCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,wBAAgB,aAAa,IAAI,OAAO,CAoBvC"}
|
package/dist/cli/program.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import packageJson from '../../package.json' with { type: 'json' };
|
|
2
3
|
export function createProgram() {
|
|
3
4
|
const program = new Command();
|
|
4
5
|
program
|
|
5
6
|
.name('argus')
|
|
6
7
|
.description('Argus CLI for local watcher servers')
|
|
7
|
-
.version(
|
|
8
|
+
.version(packageJson.version)
|
|
8
9
|
.configureOutput({
|
|
9
10
|
outputError: (str, write) => write(str),
|
|
10
11
|
})
|
package/dist/cli/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAElE,MAAM,UAAU,aAAa;IAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAE7B,OAAO;SACL,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,qCAAqC,CAAC;SAClD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;SAC5B,eAAe,CAAC;QAChB,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;KACvC,CAAC;SACD,wBAAwB,CAAC,IAAI,CAAC;SAC9B,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;IAEH,OAAO,OAAO,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
type DomSelectorCommandSpec = {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
examples: string[];
|
|
6
|
+
alias?: string;
|
|
7
|
+
allowsAll?: boolean;
|
|
8
|
+
textOption?: {
|
|
9
|
+
flags: string;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
waitOption?: boolean;
|
|
13
|
+
configure?: (command: Command) => void;
|
|
14
|
+
action: (id: string | undefined, options: any) => Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Build DOM subcommands with the shared watcher-id, selector/testid, and output plumbing.
|
|
18
|
+
* Keeping this declarative avoids the usual CLI drift where similar commands slowly diverge.
|
|
19
|
+
*/
|
|
20
|
+
export declare const registerDomSelectorCommand: (parent: Command, spec: DomSelectorCommandSpec) => void;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=domCommandBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domCommandBuilder.d.ts","sourceRoot":"","sources":["../../../src/cli/register/domCommandBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AASxC,KAAK,sBAAsB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GAAI,QAAQ,OAAO,EAAE,MAAM,sBAAsB,KAAG,IA6B1F,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { resolveTestId } from '../../commands/resolveTestId.js';
|
|
2
|
+
/**
|
|
3
|
+
* Build DOM subcommands with the shared watcher-id, selector/testid, and output plumbing.
|
|
4
|
+
* Keeping this declarative avoids the usual CLI drift where similar commands slowly diverge.
|
|
5
|
+
*/
|
|
6
|
+
export const registerDomSelectorCommand = (parent, spec) => {
|
|
7
|
+
const command = parent.command(spec.name).argument('[id]', 'Watcher id to query').description(spec.description);
|
|
8
|
+
if (spec.alias) {
|
|
9
|
+
command.alias(spec.alias);
|
|
10
|
+
}
|
|
11
|
+
command.option('--selector <css>', 'CSS selector to match element(s)');
|
|
12
|
+
command.option('--testid <id>', 'Shorthand for --selector "[data-testid=\'<id>\']"');
|
|
13
|
+
if (spec.allowsAll !== false) {
|
|
14
|
+
command.option('--all', 'Allow multiple matches (default: error if >1 match)');
|
|
15
|
+
}
|
|
16
|
+
if (spec.textOption) {
|
|
17
|
+
command.option(spec.textOption.flags, spec.textOption.description);
|
|
18
|
+
}
|
|
19
|
+
if (spec.waitOption) {
|
|
20
|
+
command.option('--wait <duration>', 'Wait for selector to appear (e.g. 5s, 500ms)');
|
|
21
|
+
}
|
|
22
|
+
command.option('--json', 'Output JSON for automation');
|
|
23
|
+
spec.configure?.(command);
|
|
24
|
+
command.addHelpText('after', formatExamples(spec.examples));
|
|
25
|
+
command.action(async (id, options) => {
|
|
26
|
+
if (!resolveTestId(options)) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
await spec.action(id, options);
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
const formatExamples = (examples) => `\nExamples:\n${examples.map((example) => ` $ ${example}`).join('\n')}\n`;
|
|
33
|
+
//# sourceMappingURL=domCommandBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domCommandBuilder.js","sourceRoot":"","sources":["../../../src/cli/register/domCommandBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAuB/D;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,MAAe,EAAE,IAA4B,EAAQ,EAAE;IACjG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAE/G,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,kCAAkC,CAAC,CAAA;IACtE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,mDAAmD,CAAC,CAAA;IAEpF,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,qDAAqD,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,8CAA8C,CAAC,CAAA;IACpF,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAA;IACtD,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAA;IACzB,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QACpC,IAAI,CAAC,aAAa,CAAC,OAA4B,CAAC,EAAE,CAAC;YAClD,OAAM;QACP,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAkC,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAU,EAAE,CAAC,gBAAgB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/register/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuBxC,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAEzD,eAAO,MAAM,qBAAqB,EAAE,SAAS,gBAAgB,EAsB5D,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { registerQuickAccess } from './registerQuickAccess.js';
|
|
2
|
+
import { registerChrome } from './registerChrome.js';
|
|
3
|
+
import { registerWatcher } from './registerWatcher.js';
|
|
4
|
+
import { registerPage } from './registerPage.js';
|
|
5
|
+
import { registerLogs } from './registerLogs.js';
|
|
6
|
+
import { registerNet } from './registerNet.js';
|
|
7
|
+
import { registerAuth } from './registerAuth.js';
|
|
8
|
+
import { registerEval } from './registerEval.js';
|
|
9
|
+
import { registerDom } from './registerDom.js';
|
|
10
|
+
import { registerClick } from './registerClick.js';
|
|
11
|
+
import { registerKeydown } from './registerKeydown.js';
|
|
12
|
+
import { registerFill } from './registerFill.js';
|
|
13
|
+
import { registerHover } from './registerHover.js';
|
|
14
|
+
import { registerScrollTo } from './registerScrollTo.js';
|
|
15
|
+
import { registerStorage } from './registerStorage.js';
|
|
16
|
+
import { registerThrottle } from './registerThrottle.js';
|
|
17
|
+
import { registerSnapshot } from './registerSnapshot.js';
|
|
18
|
+
import { registerTrace } from './registerTrace.js';
|
|
19
|
+
import { registerConfig } from './registerConfig.js';
|
|
20
|
+
import { registerExtension } from './registerExtension.js';
|
|
21
|
+
import { registerCode } from './registerCode.js';
|
|
22
|
+
export const coreProgramRegistrars = [
|
|
23
|
+
registerQuickAccess,
|
|
24
|
+
registerChrome,
|
|
25
|
+
registerWatcher,
|
|
26
|
+
registerPage,
|
|
27
|
+
registerLogs,
|
|
28
|
+
registerNet,
|
|
29
|
+
registerAuth,
|
|
30
|
+
registerEval,
|
|
31
|
+
registerCode,
|
|
32
|
+
registerDom,
|
|
33
|
+
registerClick,
|
|
34
|
+
registerKeydown,
|
|
35
|
+
registerFill,
|
|
36
|
+
registerHover,
|
|
37
|
+
registerScrollTo,
|
|
38
|
+
registerStorage,
|
|
39
|
+
registerThrottle,
|
|
40
|
+
registerSnapshot,
|
|
41
|
+
registerTrace,
|
|
42
|
+
registerConfig,
|
|
43
|
+
registerExtension,
|
|
44
|
+
];
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/register/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIhD,MAAM,CAAC,MAAM,qBAAqB,GAAgC;IACjE,mBAAmB;IACnB,cAAc;IACd,eAAe;IACf,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,aAAa;IACb,eAAe;IACf,YAAY;IACZ,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,iBAAiB;CACjB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerDom.d.ts","sourceRoot":"","sources":["../../../src/cli/register/registerDom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"registerDom.d.ts","sourceRoot":"","sources":["../../../src/cli/register/registerDom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAcxC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqMlD"}
|