@vforsh/argus 0.1.11 → 0.1.13
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 +12792 -7821
- package/dist/bin.js +4 -47
- package/dist/bin.js.map +1 -1
- package/dist/cdp/sendCdpCommand.d.ts +6 -2
- package/dist/cdp/sendCdpCommand.d.ts.map +1 -1
- package/dist/cdp/sendCdpCommand.js +18 -12
- package/dist/cdp/sendCdpCommand.js.map +1 -1
- package/dist/cli/plugins/registerPlugins.d.ts.map +1 -1
- package/dist/cli/plugins/registerPlugins.js +1 -1
- package/dist/cli/plugins/registerPlugins.js.map +1 -1
- 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 +23 -0
- package/dist/cli/register/domCommandBuilder.d.ts.map +1 -0
- package/dist/cli/register/domCommandBuilder.js +36 -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 +49 -0
- package/dist/cli/register/index.js.map +1 -0
- package/dist/cli/register/registerAuth.d.ts.map +1 -1
- package/dist/cli/register/registerAuth.js +103 -4
- package/dist/cli/register/registerAuth.js.map +1 -1
- package/dist/cli/register/registerChrome.d.ts.map +1 -1
- package/dist/cli/register/registerChrome.js +53 -14
- package/dist/cli/register/registerChrome.js.map +1 -1
- package/dist/cli/register/registerClick.d.ts.map +1 -1
- package/dist/cli/register/registerClick.js +2 -1
- package/dist/cli/register/registerClick.js.map +1 -1
- package/dist/cli/register/registerDialog.d.ts +3 -0
- package/dist/cli/register/registerDialog.d.ts.map +1 -0
- package/dist/cli/register/registerDialog.js +45 -0
- package/dist/cli/register/registerDialog.js.map +1 -0
- package/dist/cli/register/registerDom.d.ts.map +1 -1
- package/dist/cli/register/registerDom.js +142 -121
- package/dist/cli/register/registerDom.js.map +1 -1
- package/dist/cli/register/registerEval.js +1 -1
- package/dist/cli/register/registerEval.js.map +1 -1
- package/dist/cli/register/registerFill.d.ts.map +1 -1
- package/dist/cli/register/registerFill.js +4 -3
- package/dist/cli/register/registerFill.js.map +1 -1
- package/dist/cli/register/registerHover.d.ts.map +1 -1
- package/dist/cli/register/registerHover.js +2 -1
- package/dist/cli/register/registerHover.js.map +1 -1
- package/dist/cli/register/registerLocate.d.ts +3 -0
- package/dist/cli/register/registerLocate.d.ts.map +1 -0
- package/dist/cli/register/registerLocate.js +48 -0
- package/dist/cli/register/registerLocate.js.map +1 -0
- package/dist/cli/register/registerNet.d.ts.map +1 -1
- package/dist/cli/register/registerNet.js +234 -13
- package/dist/cli/register/registerNet.js.map +1 -1
- package/dist/cli/register/registerQuickAccess.d.ts.map +1 -1
- package/dist/cli/register/registerQuickAccess.js +33 -3
- package/dist/cli/register/registerQuickAccess.js.map +1 -1
- package/dist/cli/register/registerStorage.d.ts.map +1 -1
- package/dist/cli/register/registerStorage.js +26 -21
- package/dist/cli/register/registerStorage.js.map +1 -1
- package/dist/cli/validation.d.ts +1 -0
- package/dist/cli/validation.d.ts.map +1 -1
- package/dist/cli/validation.js +1 -0
- package/dist/cli/validation.js.map +1 -1
- package/dist/commands/auth.d.ts +39 -18
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +104 -122
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/authCookieSupport.d.ts +54 -0
- package/dist/commands/authCookieSupport.d.ts.map +1 -0
- package/dist/commands/authCookieSupport.js +206 -0
- package/dist/commands/authCookieSupport.js.map +1 -0
- package/dist/commands/authCookies.d.ts +60 -0
- package/dist/commands/authCookies.d.ts.map +1 -0
- package/dist/commands/authCookies.js +149 -0
- package/dist/commands/authCookies.js.map +1 -0
- package/dist/commands/chrome/authState.d.ts +23 -0
- package/dist/commands/chrome/authState.d.ts.map +1 -0
- package/dist/commands/chrome/authState.js +97 -0
- package/dist/commands/chrome/authState.js.map +1 -0
- 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 -511
- package/dist/commands/chrome.js.map +1 -1
- package/dist/commands/chromeStart.d.ts +1 -0
- package/dist/commands/chromeStart.d.ts.map +1 -1
- package/dist/commands/chromeStart.js +28 -3
- package/dist/commands/chromeStart.js.map +1 -1
- package/dist/commands/code.d.ts.map +1 -1
- package/dist/commands/code.js +9 -1
- package/dist/commands/code.js.map +1 -1
- package/dist/commands/dialog.d.ts +13 -0
- package/dist/commands/dialog.d.ts.map +1 -0
- package/dist/commands/dialog.js +71 -0
- package/dist/commands/dialog.js.map +1 -0
- package/dist/commands/dom/shared.d.ts +16 -0
- package/dist/commands/dom/shared.d.ts.map +1 -0
- package/dist/commands/dom/shared.js +69 -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 +1 -0
- package/dist/commands/domClick.d.ts.map +1 -1
- package/dist/commands/domClick.js +32 -48
- package/dist/commands/domClick.js.map +1 -1
- package/dist/commands/domFill.d.ts +1 -0
- package/dist/commands/domFill.d.ts.map +1 -1
- package/dist/commands/domFill.js +21 -38
- package/dist/commands/domFill.js.map +1 -1
- package/dist/commands/domFocus.d.ts +2 -1
- package/dist/commands/domFocus.d.ts.map +1 -1
- package/dist/commands/domFocus.js +12 -26
- package/dist/commands/domFocus.js.map +1 -1
- package/dist/commands/domHover.d.ts +2 -1
- package/dist/commands/domHover.d.ts.map +1 -1
- package/dist/commands/domHover.js +12 -26
- package/dist/commands/domHover.js.map +1 -1
- package/dist/commands/domInfo.d.ts +2 -1
- package/dist/commands/domInfo.d.ts.map +1 -1
- package/dist/commands/domInfo.js +11 -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 +12 -27
- 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/locate.d.ts +17 -0
- package/dist/commands/locate.d.ts.map +1 -0
- package/dist/commands/locate.js +117 -0
- package/dist/commands/locate.js.map +1 -0
- package/dist/commands/net.d.ts +2 -5
- package/dist/commands/net.d.ts.map +1 -1
- package/dist/commands/net.js +5 -7
- package/dist/commands/net.js.map +1 -1
- package/dist/commands/netBody.d.ts +6 -0
- package/dist/commands/netBody.d.ts.map +1 -0
- package/dist/commands/netBody.js +32 -0
- package/dist/commands/netBody.js.map +1 -0
- package/dist/commands/netCapture.d.ts +36 -0
- package/dist/commands/netCapture.d.ts.map +1 -0
- package/dist/commands/netCapture.js +105 -0
- package/dist/commands/netCapture.js.map +1 -0
- package/dist/commands/netClear.d.ts +5 -0
- package/dist/commands/netClear.d.ts.map +1 -0
- package/dist/commands/netClear.js +20 -0
- package/dist/commands/netClear.js.map +1 -0
- package/dist/commands/netExport.d.ts +13 -0
- package/dist/commands/netExport.d.ts.map +1 -0
- package/dist/commands/netExport.js +124 -0
- package/dist/commands/netExport.js.map +1 -0
- package/dist/commands/netInspect.d.ts +12 -0
- package/dist/commands/netInspect.d.ts.map +1 -0
- package/dist/commands/netInspect.js +205 -0
- package/dist/commands/netInspect.js.map +1 -0
- package/dist/commands/netRequestClient.d.ts +17 -0
- package/dist/commands/netRequestClient.d.ts.map +1 -0
- package/dist/commands/netRequestClient.js +54 -0
- package/dist/commands/netRequestClient.js.map +1 -0
- package/dist/commands/netRequestTarget.d.ts +14 -0
- package/dist/commands/netRequestTarget.d.ts.map +1 -0
- package/dist/commands/netRequestTarget.js +36 -0
- package/dist/commands/netRequestTarget.js.map +1 -0
- package/dist/commands/netShared.d.ts +40 -0
- package/dist/commands/netShared.d.ts.map +1 -0
- package/dist/commands/netShared.js +108 -0
- package/dist/commands/netShared.js.map +1 -0
- package/dist/commands/netShow.d.ts +5 -0
- package/dist/commands/netShow.d.ts.map +1 -0
- package/dist/commands/netShow.js +28 -0
- package/dist/commands/netShow.js.map +1 -0
- package/dist/commands/netSummary.d.ts +6 -0
- package/dist/commands/netSummary.d.ts.map +1 -0
- package/dist/commands/netSummary.js +99 -0
- package/dist/commands/netSummary.js.map +1 -0
- package/dist/commands/netTail.d.ts +2 -5
- package/dist/commands/netTail.d.ts.map +1 -1
- package/dist/commands/netTail.js +7 -15
- package/dist/commands/netTail.js.map +1 -1
- package/dist/commands/netWatch.d.ts +11 -0
- package/dist/commands/netWatch.d.ts.map +1 -0
- package/dist/commands/netWatch.js +55 -0
- package/dist/commands/netWatch.js.map +1 -0
- package/dist/commands/resolveTestId.d.ts +2 -1
- package/dist/commands/resolveTestId.d.ts.map +1 -1
- package/dist/commands/resolveTestId.js +3 -3
- package/dist/commands/resolveTestId.js.map +1 -1
- package/dist/commands/start.d.ts +2 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +77 -49
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/storage.d.ts +17 -0
- package/dist/commands/storage.d.ts.map +1 -0
- package/dist/commands/storage.js +67 -0
- package/dist/commands/storage.js.map +1 -0
- package/dist/commands/watcherNativeHost.d.ts.map +1 -1
- package/dist/commands/watcherNativeHost.js +13 -2
- package/dist/commands/watcherNativeHost.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 +15 -40
- 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/net/har.d.ts +86 -0
- package/dist/net/har.d.ts.map +1 -0
- package/dist/net/har.js +125 -0
- package/dist/net/har.js.map +1 -0
- package/dist/net/summary.d.ts +33 -0
- package/dist/net/summary.d.ts.map +1 -0
- package/dist/net/summary.js +128 -0
- package/dist/net/summary.js.map +1 -0
- package/dist/output/accessibility.js +16 -12
- package/dist/output/accessibility.js.map +1 -1
- package/dist/output/code.d.ts +2 -1
- package/dist/output/code.d.ts.map +1 -1
- package/dist/output/code.js +10 -0
- package/dist/output/code.js.map +1 -1
- package/dist/output/dom.d.ts.map +1 -1
- package/dist/output/dom.js +2 -1
- package/dist/output/dom.js.map +1 -1
- package/dist/output/format.d.ts +1 -3
- package/dist/output/format.d.ts.map +1 -1
- package/dist/output/format.js +0 -8
- package/dist/output/format.js.map +1 -1
- package/dist/output/locate.d.ts +3 -0
- package/dist/output/locate.d.ts.map +1 -0
- package/dist/output/locate.js +25 -0
- package/dist/output/locate.js.map +1 -0
- package/dist/output/net.d.ts +13 -0
- package/dist/output/net.d.ts.map +1 -0
- package/dist/output/net.js +239 -0
- package/dist/output/net.js.map +1 -0
- package/dist/watchers/queryParams.d.ts +17 -0
- package/dist/watchers/queryParams.d.ts.map +1 -1
- package/dist/watchers/queryParams.js +61 -0
- package/dist/watchers/queryParams.js.map +1 -1
- package/dist/watchers/requestWatcher.d.ts +13 -1
- package/dist/watchers/requestWatcher.d.ts.map +1 -1
- package/dist/watchers/requestWatcher.js +32 -0
- package/dist/watchers/requestWatcher.js.map +1 -1
- package/package.json +2 -5
- package/dist/commands/storageLocal.d.ts +0 -18
- package/dist/commands/storageLocal.d.ts.map +0 -1
- package/dist/commands/storageLocal.js +0 -92
- package/dist/commands/storageLocal.js.map +0 -1
- package/dist/plugin.d.ts +0 -29
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -2
- package/dist/plugin.js.map +0 -1
|
@@ -1,49 +1,34 @@
|
|
|
1
1
|
import { createOutput } from '../output/io.js';
|
|
2
|
-
import {
|
|
2
|
+
import { requestWatcherAction } from '../watchers/requestWatcher.js';
|
|
3
|
+
import { requireSelector, writeNoElementFound } from './dom/shared.js';
|
|
3
4
|
/** Execute the dom remove command for a watcher id. */
|
|
4
5
|
export const runDomRemove = async (id, options) => {
|
|
5
6
|
const output = createOutput(options);
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
process.exitCode = 2;
|
|
7
|
+
const selector = requireSelector(options, output);
|
|
8
|
+
if (!selector) {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
|
-
const result = await
|
|
11
|
+
const result = await requestWatcherAction({
|
|
12
12
|
id,
|
|
13
13
|
path: '/dom/remove',
|
|
14
14
|
method: 'POST',
|
|
15
15
|
body: {
|
|
16
|
-
selector
|
|
16
|
+
selector,
|
|
17
17
|
all: options.all ?? false,
|
|
18
18
|
text: options.text,
|
|
19
19
|
},
|
|
20
20
|
timeoutMs: 30_000,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (!result.ok) {
|
|
24
|
-
writeRequestError(result, output);
|
|
21
|
+
}, output);
|
|
22
|
+
if (!result) {
|
|
25
23
|
return;
|
|
26
24
|
}
|
|
27
|
-
const
|
|
28
|
-
if (!response.ok) {
|
|
29
|
-
const errorResp = response;
|
|
30
|
-
if (options.json) {
|
|
31
|
-
output.writeJson(response);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
output.writeWarn(`Error: ${errorResp.error.message}`);
|
|
35
|
-
}
|
|
36
|
-
process.exitCode = 1;
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
const successResp = response;
|
|
25
|
+
const successResp = result.data;
|
|
40
26
|
if (options.json) {
|
|
41
27
|
output.writeJson(successResp);
|
|
42
28
|
return;
|
|
43
29
|
}
|
|
44
30
|
if (successResp.matches === 0) {
|
|
45
|
-
|
|
46
|
-
process.exitCode = 1;
|
|
31
|
+
writeNoElementFound(selector, output);
|
|
47
32
|
return;
|
|
48
33
|
}
|
|
49
34
|
const label = successResp.removed === 1 ? 'element' : 'elements';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domRemove.js","sourceRoot":"","sources":["../../src/commands/domRemove.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"domRemove.js","sourceRoot":"","sources":["../../src/commands/domRemove.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAUtE,uDAAuD;AACvD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,EAAsB,EAAE,OAAyB,EAAiB,EAAE;IACtG,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAM;IACP,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACxC;QACC,EAAE;QACF,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACL,QAAQ;YACR,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;SAClB;QACD,SAAS,EAAE,MAAM;KACjB,EACD,MAAM,CACN,CAAA;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAM;IACP,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAA;IAE/B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7B,OAAM;IACP,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACrC,OAAM;IACP,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IAChE,MAAM,CAAC,UAAU,CAAC,WAAW,WAAW,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAA;AAC7D,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domScroll.d.ts","sourceRoot":"","sources":["../../src/commands/domScroll.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domScroll.d.ts","sourceRoot":"","sources":["../../src/commands/domScroll.ts"],"names":[],"mappings":"AAKA,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,sFAAsF;AACtF,eAAO,MAAM,YAAY,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAmFlG,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createOutput } from '../output/io.js';
|
|
2
|
-
import {
|
|
2
|
+
import { requestWatcherAction } from '../watchers/requestWatcher.js';
|
|
3
|
+
import { parseXY, writeNoElementFound } from './dom/shared.js';
|
|
3
4
|
/** Execute the dom scroll command (emulate touch scroll gesture) for a watcher id. */
|
|
4
5
|
export const runDomScroll = async (id, options) => {
|
|
5
6
|
const output = createOutput(options);
|
|
@@ -45,39 +46,24 @@ export const runDomScroll = async (id, options) => {
|
|
|
45
46
|
body.x = x;
|
|
46
47
|
body.y = y;
|
|
47
48
|
}
|
|
48
|
-
const result = await
|
|
49
|
+
const result = await requestWatcherAction({
|
|
49
50
|
id,
|
|
50
51
|
path: '/dom/scroll',
|
|
51
52
|
method: 'POST',
|
|
52
53
|
body,
|
|
53
54
|
timeoutMs: 30_000,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if (!result.ok) {
|
|
57
|
-
writeRequestError(result, output);
|
|
55
|
+
}, output);
|
|
56
|
+
if (!result) {
|
|
58
57
|
return;
|
|
59
58
|
}
|
|
60
|
-
const
|
|
61
|
-
if (!response.ok) {
|
|
62
|
-
const errorResp = response;
|
|
63
|
-
if (options.json) {
|
|
64
|
-
output.writeJson(response);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
output.writeWarn(`Error: ${errorResp.error.message}`);
|
|
68
|
-
}
|
|
69
|
-
process.exitCode = 1;
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const successResp = response;
|
|
59
|
+
const successResp = result.data;
|
|
73
60
|
if (options.json) {
|
|
74
61
|
output.writeJson(successResp);
|
|
75
62
|
return;
|
|
76
63
|
}
|
|
77
64
|
if (hasSelector) {
|
|
78
65
|
if (successResp.matches === 0) {
|
|
79
|
-
|
|
80
|
-
process.exitCode = 1;
|
|
66
|
+
writeNoElementFound(options.selector, output);
|
|
81
67
|
return;
|
|
82
68
|
}
|
|
83
69
|
const label = successResp.scrolled === 1 ? 'element' : 'elements';
|
|
@@ -90,16 +76,4 @@ export const runDomScroll = async (id, options) => {
|
|
|
90
76
|
output.writeHuman(`Emulated scroll at viewport center by (${delta.x}, ${delta.y})`);
|
|
91
77
|
}
|
|
92
78
|
};
|
|
93
|
-
const parseXY = (value) => {
|
|
94
|
-
const parts = value.split(',');
|
|
95
|
-
if (parts.length !== 2) {
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
const x = Number(parts[0]);
|
|
99
|
-
const y = Number(parts[1]);
|
|
100
|
-
if (!Number.isFinite(x) || !Number.isFinite(y)) {
|
|
101
|
-
return null;
|
|
102
|
-
}
|
|
103
|
-
return { x, y };
|
|
104
|
-
};
|
|
105
79
|
//# sourceMappingURL=domScroll.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domScroll.js","sourceRoot":"","sources":["../../src/commands/domScroll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"domScroll.js","sourceRoot":"","sources":["../../src/commands/domScroll.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domScrollTo.d.ts","sourceRoot":"","sources":["../../src/commands/domScrollTo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domScrollTo.d.ts","sourceRoot":"","sources":["../../src/commands/domScrollTo.ts"],"names":[],"mappings":"AAKA,6CAA6C;AAC7C,MAAM,MAAM,kBAAkB,GAAG;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,0DAA0D;AAC1D,eAAO,MAAM,cAAc,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,kBAAkB,KAAG,OAAO,CAAC,IAAI,CAwFtG,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createOutput } from '../output/io.js';
|
|
2
|
-
import {
|
|
2
|
+
import { requestWatcherAction } from '../watchers/requestWatcher.js';
|
|
3
|
+
import { parseXY, writeNoElementFound } from './dom/shared.js';
|
|
3
4
|
/** Execute the dom scroll-to command for a watcher id. */
|
|
4
5
|
export const runDomScrollTo = async (id, options) => {
|
|
5
6
|
const output = createOutput(options);
|
|
@@ -50,38 +51,23 @@ export const runDomScrollTo = async (id, options) => {
|
|
|
50
51
|
if (by) {
|
|
51
52
|
body.by = by;
|
|
52
53
|
}
|
|
53
|
-
const result = await
|
|
54
|
+
const result = await requestWatcherAction({
|
|
54
55
|
id,
|
|
55
56
|
path: '/dom/scroll-to',
|
|
56
57
|
method: 'POST',
|
|
57
58
|
body,
|
|
58
59
|
timeoutMs: 30_000,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (!result.ok) {
|
|
62
|
-
writeRequestError(result, output);
|
|
60
|
+
}, output);
|
|
61
|
+
if (!result) {
|
|
63
62
|
return;
|
|
64
63
|
}
|
|
65
|
-
const
|
|
66
|
-
if (!response.ok) {
|
|
67
|
-
const errorResp = response;
|
|
68
|
-
if (options.json) {
|
|
69
|
-
output.writeJson(response);
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
output.writeWarn(`Error: ${errorResp.error.message}`);
|
|
73
|
-
}
|
|
74
|
-
process.exitCode = 1;
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
const successResp = response;
|
|
64
|
+
const successResp = result.data;
|
|
78
65
|
if (options.json) {
|
|
79
66
|
output.writeJson(successResp);
|
|
80
67
|
return;
|
|
81
68
|
}
|
|
82
69
|
if (hasSelector && successResp.matches === 0) {
|
|
83
|
-
|
|
84
|
-
process.exitCode = 1;
|
|
70
|
+
writeNoElementFound(options.selector, output);
|
|
85
71
|
return;
|
|
86
72
|
}
|
|
87
73
|
if (hasSelector) {
|
|
@@ -92,16 +78,4 @@ export const runDomScrollTo = async (id, options) => {
|
|
|
92
78
|
output.writeHuman(`Scrolled viewport (scrollX=${successResp.scrollX}, scrollY=${successResp.scrollY})`);
|
|
93
79
|
}
|
|
94
80
|
};
|
|
95
|
-
const parseXY = (value) => {
|
|
96
|
-
const parts = value.split(',');
|
|
97
|
-
if (parts.length !== 2) {
|
|
98
|
-
return null;
|
|
99
|
-
}
|
|
100
|
-
const x = Number(parts[0]);
|
|
101
|
-
const y = Number(parts[1]);
|
|
102
|
-
if (!Number.isFinite(x) || !Number.isFinite(y)) {
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
return { x, y };
|
|
106
|
-
};
|
|
107
81
|
//# sourceMappingURL=domScrollTo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domScrollTo.js","sourceRoot":"","sources":["../../src/commands/domScrollTo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"domScrollTo.js","sourceRoot":"","sources":["../../src/commands/domScrollTo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAY9D,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,EAAsB,EAAE,OAA2B,EAAiB,EAAE;IAC1G,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAEpC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,IAAI,IAAI,CAAA;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,IAAI,IAAI,CAAA;IAEhC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACtC,MAAM,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAA;QACzD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAA;QACxD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,IAAI,EAAwC,CAAA;IAC5C,IAAI,EAAwC,CAAA;IAE5C,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAG,CAAC,CAAA;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,CAAC,SAAS,CAAC,qDAAqD,CAAC,CAAA;YACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACP,CAAC;QACD,EAAE,GAAG,MAAM,CAAA;IACZ,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAG,CAAC,CAAA;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,CAAC,SAAS,CAAC,oDAAoD,CAAC,CAAA;YACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACP,CAAC;QACD,EAAE,GAAG,MAAM,CAAA;IACZ,CAAC;IAED,MAAM,IAAI,GAA4B,EAAE,CAAA;IACxC,IAAI,WAAW,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAA;QAC/B,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACzB,CAAC;IACF,CAAC;IACD,IAAI,EAAE,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACb,CAAC;IACD,IAAI,EAAE,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACxC;QACC,EAAE;QACF,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,MAAM;QACd,IAAI;QACJ,SAAS,EAAE,MAAM;KACjB,EACD,MAAM,CACN,CAAA;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAM;IACP,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAA;IAE/B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7B,OAAM;IACP,CAAC;IAED,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC9C,mBAAmB,CAAC,OAAO,CAAC,QAAS,EAAE,MAAM,CAAC,CAAA;QAC9C,OAAM;IACP,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;QACjE,MAAM,CAAC,UAAU,CAAC,YAAY,WAAW,CAAC,QAAQ,IAAI,KAAK,aAAa,WAAW,CAAC,OAAO,aAAa,WAAW,CAAC,OAAO,GAAG,CAAC,CAAA;IAChI,CAAC;SAAM,CAAC;QACP,MAAM,CAAC,UAAU,CAAC,8BAA8B,WAAW,CAAC,OAAO,aAAa,WAAW,CAAC,OAAO,GAAG,CAAC,CAAA;IACxG,CAAC;AACF,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domSetFile.d.ts","sourceRoot":"","sources":["../../src/commands/domSetFile.ts"],"names":[],"mappings":"AAOA,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,yDAAyD;AACzD,eAAO,MAAM,aAAa,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,iBAAiB,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"domSetFile.d.ts","sourceRoot":"","sources":["../../src/commands/domSetFile.ts"],"names":[],"mappings":"AAOA,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,yDAAyD;AACzD,eAAO,MAAM,aAAa,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAoEpG,CAAA"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import { resolvePath } from '../utils/paths.js';
|
|
3
3
|
import { createOutput } from '../output/io.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { requestWatcherAction } from '../watchers/requestWatcher.js';
|
|
5
|
+
import { parseWaitDuration, requireSelector, writeNoElementFound } from './dom/shared.js';
|
|
6
6
|
/** Execute the dom set-file command for a watcher id. */
|
|
7
7
|
export const runDomSetFile = async (id, options) => {
|
|
8
8
|
const output = createOutput(options);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
process.exitCode = 2;
|
|
9
|
+
const selector = requireSelector(options, output);
|
|
10
|
+
if (!selector) {
|
|
12
11
|
return;
|
|
13
12
|
}
|
|
14
13
|
if (!options.file || options.file.length === 0) {
|
|
@@ -27,18 +26,12 @@ export const runDomSetFile = async (id, options) => {
|
|
|
27
26
|
}
|
|
28
27
|
files.push(absolute);
|
|
29
28
|
}
|
|
30
|
-
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
if (parsed == null || parsed < 0) {
|
|
34
|
-
output.writeWarn('Invalid --wait value: expected a duration like 5s, 500ms, 2m.');
|
|
35
|
-
process.exitCode = 2;
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
waitMs = parsed;
|
|
29
|
+
const waitMs = parseWaitDuration(options.wait, output);
|
|
30
|
+
if (waitMs == null) {
|
|
31
|
+
return;
|
|
39
32
|
}
|
|
40
33
|
const body = {
|
|
41
|
-
selector
|
|
34
|
+
selector,
|
|
42
35
|
files,
|
|
43
36
|
all: options.all ?? false,
|
|
44
37
|
text: options.text,
|
|
@@ -46,42 +39,27 @@ export const runDomSetFile = async (id, options) => {
|
|
|
46
39
|
if (waitMs > 0) {
|
|
47
40
|
body.wait = waitMs;
|
|
48
41
|
}
|
|
49
|
-
const result = await
|
|
42
|
+
const result = await requestWatcherAction({
|
|
50
43
|
id,
|
|
51
44
|
path: '/dom/set-file',
|
|
52
45
|
method: 'POST',
|
|
53
46
|
body,
|
|
54
47
|
timeoutMs: Math.max(30_000, waitMs + 5_000),
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (!result.ok) {
|
|
58
|
-
writeRequestError(result, output);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
const response = result.data;
|
|
62
|
-
if (!response.ok) {
|
|
63
|
-
const errorResp = response;
|
|
64
|
-
if (options.json) {
|
|
65
|
-
output.writeJson(response);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
output.writeWarn(`Error: ${errorResp.error.message}`);
|
|
69
|
-
}
|
|
70
|
-
process.exitCode = 1;
|
|
48
|
+
}, output);
|
|
49
|
+
if (!result) {
|
|
71
50
|
return;
|
|
72
51
|
}
|
|
73
|
-
const successResp =
|
|
52
|
+
const successResp = result.data;
|
|
74
53
|
if (options.json) {
|
|
75
54
|
output.writeJson(successResp);
|
|
76
55
|
return;
|
|
77
56
|
}
|
|
78
57
|
if (successResp.matches === 0) {
|
|
79
|
-
|
|
80
|
-
process.exitCode = 1;
|
|
58
|
+
writeNoElementFound(selector, output);
|
|
81
59
|
return;
|
|
82
60
|
}
|
|
83
61
|
const fileLabel = files.length === 1 ? '1 file' : `${files.length} files`;
|
|
84
62
|
const elLabel = successResp.updated === 1 ? '1 element' : `${successResp.updated} elements`;
|
|
85
|
-
output.writeHuman(`Set ${fileLabel} on ${elLabel} for selector: ${
|
|
63
|
+
output.writeHuman(`Set ${fileLabel} on ${elLabel} for selector: ${selector}`);
|
|
86
64
|
};
|
|
87
65
|
//# sourceMappingURL=domSetFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domSetFile.js","sourceRoot":"","sources":["../../src/commands/domSetFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"domSetFile.js","sourceRoot":"","sources":["../../src/commands/domSetFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domTree.d.ts","sourceRoot":"","sources":["../../src/commands/domTree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domTree.d.ts","sourceRoot":"","sources":["../../src/commands/domTree.ts"],"names":[],"mappings":"AAOA,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,qDAAqD;AACrD,eAAO,MAAM,UAAU,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC,IAAI,CAsD9F,CAAA"}
|
package/dist/commands/domTree.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { formatDomTree } from '../output/dom.js';
|
|
2
2
|
import { createOutput } from '../output/io.js';
|
|
3
3
|
import { parsePositiveInt } from '../cli/parse.js';
|
|
4
|
-
import {
|
|
4
|
+
import { requestWatcherAction } from '../watchers/requestWatcher.js';
|
|
5
|
+
import { requireSelector, writeNoElementFound } from './dom/shared.js';
|
|
5
6
|
/** Execute the dom tree command for a watcher id. */
|
|
6
7
|
export const runDomTree = async (id, options) => {
|
|
7
8
|
const output = createOutput(options);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
process.exitCode = 2;
|
|
9
|
+
const selector = requireSelector(options, output);
|
|
10
|
+
if (!selector) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
|
-
const depth = parsePositiveInt(options.depth);
|
|
13
|
+
const depth = parsePositiveInt(options.depth, { allowZero: true });
|
|
14
14
|
if (options.depth !== undefined && depth === undefined) {
|
|
15
|
-
output.writeWarn('--depth must be a
|
|
15
|
+
output.writeWarn('--depth must be a non-negative integer');
|
|
16
16
|
process.exitCode = 2;
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
@@ -22,44 +22,29 @@ export const runDomTree = async (id, options) => {
|
|
|
22
22
|
process.exitCode = 2;
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
-
const result = await
|
|
25
|
+
const result = await requestWatcherAction({
|
|
26
26
|
id,
|
|
27
27
|
path: '/dom/tree',
|
|
28
28
|
method: 'POST',
|
|
29
29
|
body: {
|
|
30
|
-
selector
|
|
30
|
+
selector,
|
|
31
31
|
depth,
|
|
32
32
|
maxNodes,
|
|
33
33
|
all: options.all ?? false,
|
|
34
34
|
text: options.text,
|
|
35
35
|
},
|
|
36
36
|
timeoutMs: 30_000,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (!result.ok) {
|
|
40
|
-
writeRequestError(result, output);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
const response = result.data;
|
|
44
|
-
if (!response.ok) {
|
|
45
|
-
const errorResp = response;
|
|
46
|
-
if (options.json) {
|
|
47
|
-
output.writeJson(response);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
output.writeWarn(`Error: ${errorResp.error.message}`);
|
|
51
|
-
}
|
|
52
|
-
process.exitCode = 1;
|
|
37
|
+
}, output);
|
|
38
|
+
if (!result) {
|
|
53
39
|
return;
|
|
54
40
|
}
|
|
55
|
-
const successResp =
|
|
41
|
+
const successResp = result.data;
|
|
56
42
|
if (options.json) {
|
|
57
43
|
output.writeJson(successResp);
|
|
58
44
|
return;
|
|
59
45
|
}
|
|
60
46
|
if (successResp.matches === 0) {
|
|
61
|
-
|
|
62
|
-
process.exitCode = 1;
|
|
47
|
+
writeNoElementFound(selector, output);
|
|
63
48
|
return;
|
|
64
49
|
}
|
|
65
50
|
const formatted = formatDomTree(successResp.roots, successResp.truncated, successResp.truncatedReason);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domTree.js","sourceRoot":"","sources":["../../src/commands/domTree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"domTree.js","sourceRoot":"","sources":["../../src/commands/domTree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAYtE,qDAAqD;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,EAAsB,EAAE,OAAuB,EAAiB,EAAE;IAClG,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAM;IACP,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAClE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAA;QAC1D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACnD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAA;QAC1D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACxC;QACC,EAAE;QACF,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACL,QAAQ;YACR,KAAK;YACL,QAAQ;YACR,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;SAClB;QACD,SAAS,EAAE,MAAM;KACjB,EACD,MAAM,CACN,CAAA;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAM;IACP,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAA;IAE/B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7B,OAAM;IACP,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACrC,OAAM;IACP,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;IACtG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;AAC7B,CAAC,CAAA"}
|
|
@@ -82,7 +82,7 @@ export const runExtensionSetup = async (options) => {
|
|
|
82
82
|
output.writeHuman('');
|
|
83
83
|
output.writeHuman('Next steps:');
|
|
84
84
|
output.writeHuman(' 1. Reload the extension in chrome://extensions');
|
|
85
|
-
output.writeHuman(' 2.
|
|
85
|
+
output.writeHuman(' 2. Open the extension popup and attach a tab');
|
|
86
86
|
output.writeHuman('');
|
|
87
87
|
}
|
|
88
88
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/extension/setup.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/extension/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type LocateBaseOptions = {
|
|
2
|
+
all?: boolean;
|
|
3
|
+
exact?: boolean;
|
|
4
|
+
json?: boolean;
|
|
5
|
+
action?: string;
|
|
6
|
+
value?: string;
|
|
7
|
+
};
|
|
8
|
+
export type LocateRoleOptions = LocateBaseOptions & {
|
|
9
|
+
name?: string;
|
|
10
|
+
};
|
|
11
|
+
export type LocateTextOptions = LocateBaseOptions;
|
|
12
|
+
export type LocateLabelOptions = LocateBaseOptions;
|
|
13
|
+
export declare const runLocateRole: (id: string | undefined, role: string | undefined, options: LocateRoleOptions) => Promise<void>;
|
|
14
|
+
export declare const runLocateText: (id: string | undefined, text: string | undefined, options: LocateTextOptions) => Promise<void>;
|
|
15
|
+
export declare const runLocateLabel: (id: string | undefined, label: string | undefined, options: LocateLabelOptions) => Promise<void>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=locate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locate.d.ts","sourceRoot":"","sources":["../../src/commands/locate.ts"],"names":[],"mappings":"AAaA,KAAK,iBAAiB,GAAG;IACxB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAA;AAEjD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAA;AAElD,eAAO,MAAM,aAAa,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,EAAE,SAAS,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAiB9H,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,EAAE,SAAS,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAgB9H,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,OAAO,MAAM,GAAG,SAAS,EAAE,SAAS,kBAAkB,KAAG,OAAO,CAAC,IAAI,CAgBjI,CAAA"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { createOutput } from '../output/io.js';
|
|
2
|
+
import { formatLocatedElements } from '../output/locate.js';
|
|
3
|
+
import { requestWatcherAction } from '../watchers/requestWatcher.js';
|
|
4
|
+
import { runDomClick } from './domClick.js';
|
|
5
|
+
import { runDomFill } from './domFill.js';
|
|
6
|
+
import { runDomFocus } from './domFocus.js';
|
|
7
|
+
import { runDomHover } from './domHover.js';
|
|
8
|
+
export const runLocateRole = async (id, role, options) => {
|
|
9
|
+
const normalizedRole = requireLocateArgument(role, 'role');
|
|
10
|
+
if (!normalizedRole) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
await runLocateRequest(id, '/locate/role', {
|
|
14
|
+
role: normalizedRole,
|
|
15
|
+
name: options.name,
|
|
16
|
+
all: options.all,
|
|
17
|
+
exact: options.exact,
|
|
18
|
+
}, options);
|
|
19
|
+
};
|
|
20
|
+
export const runLocateText = async (id, text, options) => {
|
|
21
|
+
const normalizedText = requireLocateArgument(text, 'text');
|
|
22
|
+
if (!normalizedText) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
await runLocateRequest(id, '/locate/text', {
|
|
26
|
+
text: normalizedText,
|
|
27
|
+
all: options.all,
|
|
28
|
+
exact: options.exact,
|
|
29
|
+
}, options);
|
|
30
|
+
};
|
|
31
|
+
export const runLocateLabel = async (id, label, options) => {
|
|
32
|
+
const normalizedLabel = requireLocateArgument(label, 'label');
|
|
33
|
+
if (!normalizedLabel) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
await runLocateRequest(id, '/locate/label', {
|
|
37
|
+
label: normalizedLabel,
|
|
38
|
+
all: options.all,
|
|
39
|
+
exact: options.exact,
|
|
40
|
+
}, options);
|
|
41
|
+
};
|
|
42
|
+
const runLocateRequest = async (id, path, body, options) => {
|
|
43
|
+
const output = createOutput(options);
|
|
44
|
+
const action = normalizeLocateAction(options.action, output);
|
|
45
|
+
if (action == null && options.action) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (action && options.all) {
|
|
49
|
+
output.writeWarn('Cannot combine --action with --all.');
|
|
50
|
+
process.exitCode = 2;
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (action === 'fill' && options.value == null) {
|
|
54
|
+
output.writeWarn('--value is required with --action fill.');
|
|
55
|
+
process.exitCode = 2;
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const result = await requestWatcherAction({
|
|
59
|
+
id,
|
|
60
|
+
path,
|
|
61
|
+
method: 'POST',
|
|
62
|
+
body,
|
|
63
|
+
timeoutMs: 30_000,
|
|
64
|
+
}, output);
|
|
65
|
+
if (!result) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const response = result.data;
|
|
69
|
+
if (options.json && !action) {
|
|
70
|
+
output.writeJson(response);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (response.matches === 0 || response.elements.length === 0) {
|
|
74
|
+
output.writeWarn('No matching element found.');
|
|
75
|
+
process.exitCode = 1;
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (!action) {
|
|
79
|
+
output.writeHuman(formatLocatedElements(response.elements));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const targetRef = response.elements[0].ref;
|
|
83
|
+
await runLocateAction(id, action, targetRef, options);
|
|
84
|
+
};
|
|
85
|
+
const requireLocateArgument = (value, label) => {
|
|
86
|
+
const normalized = value?.trim();
|
|
87
|
+
if (normalized) {
|
|
88
|
+
return normalized;
|
|
89
|
+
}
|
|
90
|
+
process.stderr.write(`${label} is required\n`);
|
|
91
|
+
process.exitCode = 2;
|
|
92
|
+
return null;
|
|
93
|
+
};
|
|
94
|
+
const normalizeLocateAction = (value, output) => {
|
|
95
|
+
if (!value) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
if (value === 'click' || value === 'fill' || value === 'focus' || value === 'hover') {
|
|
99
|
+
return value;
|
|
100
|
+
}
|
|
101
|
+
output.writeWarn('Invalid --action. Expected one of: click, fill, focus, hover.');
|
|
102
|
+
process.exitCode = 2;
|
|
103
|
+
return null;
|
|
104
|
+
};
|
|
105
|
+
const runLocateAction = async (id, action, ref, options) => {
|
|
106
|
+
if (action === 'fill') {
|
|
107
|
+
await runDomFill(id, options.value, { ref, json: options.json });
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const handlers = {
|
|
111
|
+
click: () => runDomClick(id, { ref, json: options.json }),
|
|
112
|
+
hover: () => runDomHover(id, { ref, json: options.json }),
|
|
113
|
+
focus: () => runDomFocus(id, { ref, json: options.json }),
|
|
114
|
+
};
|
|
115
|
+
await handlers[action]();
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=locate.js.map
|