@vforsh/argus 0.1.2 → 0.1.4
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 +265 -16
- package/dist/.tsbuildinfo +1 -1
- package/dist/argus.js +16346 -0
- package/dist/bin.d.ts +1 -1
- package/dist/bin.js +49 -58
- package/dist/bin.js.map +1 -1
- package/dist/cdp/resolveCdpEndpoint.d.ts +15 -0
- package/dist/cdp/resolveCdpEndpoint.d.ts.map +1 -0
- package/dist/cdp/resolveCdpEndpoint.js +56 -0
- package/dist/cdp/resolveCdpEndpoint.js.map +1 -0
- package/dist/cdp/selectTarget.d.ts +26 -0
- package/dist/cdp/selectTarget.d.ts.map +1 -0
- package/dist/cdp/selectTarget.js +87 -0
- package/dist/cdp/selectTarget.js.map +1 -0
- package/dist/cdp/types.d.ts +13 -0
- package/dist/cdp/types.d.ts.map +1 -0
- package/dist/cdp/types.js +2 -0
- package/dist/cdp/types.js.map +1 -0
- package/dist/cli/parse.d.ts +11 -0
- package/dist/cli/parse.d.ts.map +1 -0
- package/dist/cli/parse.js +48 -0
- package/dist/cli/parse.js.map +1 -0
- package/dist/cli/program.d.ts +3 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +21 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/register/registerChrome.d.ts +3 -0
- package/dist/cli/register/registerChrome.d.ts.map +1 -0
- package/dist/cli/register/registerChrome.js +79 -0
- package/dist/cli/register/registerChrome.js.map +1 -0
- package/dist/cli/register/registerClick.d.ts +3 -0
- package/dist/cli/register/registerClick.d.ts.map +1 -0
- package/dist/cli/register/registerClick.js +23 -0
- package/dist/cli/register/registerClick.js.map +1 -0
- package/dist/cli/register/registerConfig.d.ts +3 -0
- package/dist/cli/register/registerConfig.d.ts.map +1 -0
- package/dist/cli/register/registerConfig.js +14 -0
- package/dist/cli/register/registerConfig.js.map +1 -0
- package/dist/cli/register/registerDom.d.ts +3 -0
- package/dist/cli/register/registerDom.d.ts.map +1 -0
- package/dist/cli/register/registerDom.js +261 -0
- package/dist/cli/register/registerDom.js.map +1 -0
- package/dist/cli/register/registerEval.d.ts +3 -0
- package/dist/cli/register/registerEval.d.ts.map +1 -0
- package/dist/cli/register/registerEval.js +129 -0
- package/dist/cli/register/registerEval.js.map +1 -0
- package/dist/cli/register/registerExtension.d.ts +3 -0
- package/dist/cli/register/registerExtension.d.ts.map +1 -0
- package/dist/cli/register/registerExtension.js +46 -0
- package/dist/cli/register/registerExtension.js.map +1 -0
- package/dist/cli/register/registerFill.d.ts +3 -0
- package/dist/cli/register/registerFill.d.ts.map +1 -0
- package/dist/cli/register/registerFill.js +30 -0
- package/dist/cli/register/registerFill.js.map +1 -0
- package/dist/cli/register/registerHover.d.ts +3 -0
- package/dist/cli/register/registerHover.d.ts.map +1 -0
- package/dist/cli/register/registerHover.js +20 -0
- package/dist/cli/register/registerHover.js.map +1 -0
- package/dist/cli/register/registerKeydown.d.ts +3 -0
- package/dist/cli/register/registerKeydown.d.ts.map +1 -0
- package/dist/cli/register/registerKeydown.js +20 -0
- package/dist/cli/register/registerKeydown.js.map +1 -0
- package/dist/cli/register/registerLogs.d.ts +3 -0
- package/dist/cli/register/registerLogs.d.ts.map +1 -0
- package/dist/cli/register/registerLogs.js +64 -0
- package/dist/cli/register/registerLogs.js.map +1 -0
- package/dist/cli/register/registerNet.d.ts +3 -0
- package/dist/cli/register/registerNet.d.ts.map +1 -0
- package/dist/cli/register/registerNet.js +32 -0
- package/dist/cli/register/registerNet.js.map +1 -0
- package/dist/cli/register/registerPage.d.ts +3 -0
- package/dist/cli/register/registerPage.d.ts.map +1 -0
- package/dist/cli/register/registerPage.js +106 -0
- package/dist/cli/register/registerPage.js.map +1 -0
- package/dist/cli/register/registerQuickAccess.d.ts +3 -0
- package/dist/cli/register/registerQuickAccess.d.ts.map +1 -0
- package/dist/cli/register/registerQuickAccess.js +82 -0
- package/dist/cli/register/registerQuickAccess.js.map +1 -0
- package/dist/cli/register/registerScrollTo.d.ts +3 -0
- package/dist/cli/register/registerScrollTo.d.ts.map +1 -0
- package/dist/cli/register/registerScrollTo.js +22 -0
- package/dist/cli/register/registerScrollTo.js.map +1 -0
- package/dist/cli/register/registerSnapshot.d.ts +3 -0
- package/dist/cli/register/registerSnapshot.d.ts.map +1 -0
- package/dist/cli/register/registerSnapshot.js +37 -0
- package/dist/cli/register/registerSnapshot.js.map +1 -0
- package/dist/cli/register/registerStorage.d.ts +3 -0
- package/dist/cli/register/registerStorage.d.ts.map +1 -0
- package/dist/cli/register/registerStorage.js +56 -0
- package/dist/cli/register/registerStorage.js.map +1 -0
- package/dist/cli/register/registerThrottle.d.ts +3 -0
- package/dist/cli/register/registerThrottle.d.ts.map +1 -0
- package/dist/cli/register/registerThrottle.js +33 -0
- package/dist/cli/register/registerThrottle.js.map +1 -0
- package/dist/cli/register/registerTrace.d.ts +3 -0
- package/dist/cli/register/registerTrace.d.ts.map +1 -0
- package/dist/cli/register/registerTrace.js +39 -0
- package/dist/cli/register/registerTrace.js.map +1 -0
- package/dist/cli/register/registerWatcher.d.ts +3 -0
- package/dist/cli/register/registerWatcher.d.ts.map +1 -0
- package/dist/cli/register/registerWatcher.js +115 -0
- package/dist/cli/register/registerWatcher.js.map +1 -0
- package/dist/cli/validation.d.ts +10 -0
- package/dist/cli/validation.d.ts.map +1 -0
- package/dist/cli/validation.js +24 -0
- package/dist/cli/validation.js.map +1 -0
- package/dist/commands/chrome.d.ts +64 -0
- package/dist/commands/chrome.d.ts.map +1 -0
- package/dist/commands/chrome.js +583 -0
- package/dist/commands/chrome.js.map +1 -0
- package/dist/commands/chromeStart.d.ts +33 -0
- package/dist/commands/chromeStart.d.ts.map +1 -0
- package/dist/commands/chromeStart.js +380 -0
- package/dist/commands/chromeStart.js.map +1 -0
- package/dist/commands/configInit.d.ts +6 -0
- package/dist/commands/configInit.d.ts.map +1 -0
- package/dist/commands/configInit.js +102 -0
- package/dist/commands/configInit.js.map +1 -0
- package/dist/commands/doctor.d.ts +5 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +142 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/domAdd.d.ts +17 -0
- package/dist/commands/domAdd.d.ts.map +1 -0
- package/dist/commands/domAdd.js +181 -0
- package/dist/commands/domAdd.js.map +1 -0
- package/dist/commands/domAddScript.d.ts +14 -0
- package/dist/commands/domAddScript.d.ts.map +1 -0
- package/dist/commands/domAddScript.js +172 -0
- package/dist/commands/domAddScript.js.map +1 -0
- package/dist/commands/domClick.d.ts +13 -0
- package/dist/commands/domClick.d.ts.map +1 -0
- package/dist/commands/domClick.js +113 -0
- package/dist/commands/domClick.js.map +1 -0
- package/dist/commands/domFill.d.ts +14 -0
- package/dist/commands/domFill.d.ts.map +1 -0
- package/dist/commands/domFill.js +129 -0
- package/dist/commands/domFill.js.map +1 -0
- package/dist/commands/domFocus.d.ts +10 -0
- package/dist/commands/domFocus.d.ts.map +1 -0
- package/dist/commands/domFocus.js +52 -0
- package/dist/commands/domFocus.js.map +1 -0
- package/dist/commands/domHover.d.ts +10 -0
- package/dist/commands/domHover.d.ts.map +1 -0
- package/dist/commands/domHover.js +52 -0
- package/dist/commands/domHover.js.map +1 -0
- package/dist/commands/domInfo.d.ts +11 -0
- package/dist/commands/domInfo.d.ts.map +1 -0
- package/dist/commands/domInfo.js +61 -0
- package/dist/commands/domInfo.js.map +1 -0
- package/dist/commands/domKeydown.d.ts +10 -0
- package/dist/commands/domKeydown.d.ts.map +1 -0
- package/dist/commands/domKeydown.js +46 -0
- package/dist/commands/domKeydown.js.map +1 -0
- package/dist/commands/domModify.d.ts +36 -0
- package/dist/commands/domModify.d.ts.map +1 -0
- package/dist/commands/domModify.js +177 -0
- package/dist/commands/domModify.js.map +1 -0
- package/dist/commands/domRemove.d.ts +10 -0
- package/dist/commands/domRemove.d.ts.map +1 -0
- package/dist/commands/domRemove.js +52 -0
- package/dist/commands/domRemove.js.map +1 -0
- package/dist/commands/domScroll.d.ts +12 -0
- package/dist/commands/domScroll.d.ts.map +1 -0
- package/dist/commands/domScroll.js +105 -0
- package/dist/commands/domScroll.js.map +1 -0
- package/dist/commands/domScrollTo.d.ts +12 -0
- package/dist/commands/domScrollTo.d.ts.map +1 -0
- package/dist/commands/domScrollTo.js +107 -0
- package/dist/commands/domScrollTo.js.map +1 -0
- package/dist/commands/domSetFile.d.ts +12 -0
- package/dist/commands/domSetFile.d.ts.map +1 -0
- package/dist/commands/domSetFile.js +87 -0
- package/dist/commands/domSetFile.js.map +1 -0
- package/dist/commands/domTree.d.ts +12 -0
- package/dist/commands/domTree.d.ts.map +1 -0
- package/dist/commands/domTree.js +68 -0
- package/dist/commands/domTree.js.map +1 -0
- package/dist/commands/eval.d.ts +26 -0
- package/dist/commands/eval.d.ts.map +1 -0
- package/dist/commands/eval.js +152 -0
- package/dist/commands/eval.js.map +1 -0
- package/dist/commands/evalShared.d.ts +64 -0
- package/dist/commands/evalShared.d.ts.map +1 -0
- package/dist/commands/evalShared.js +205 -0
- package/dist/commands/evalShared.js.map +1 -0
- package/dist/commands/evalUntil.d.ts +27 -0
- package/dist/commands/evalUntil.d.ts.map +1 -0
- package/dist/commands/evalUntil.js +128 -0
- package/dist/commands/evalUntil.js.map +1 -0
- package/dist/commands/extension/doctor.d.ts +5 -0
- package/dist/commands/extension/doctor.d.ts.map +1 -0
- package/dist/commands/extension/doctor.js +262 -0
- package/dist/commands/extension/doctor.js.map +1 -0
- package/dist/commands/extension/id.d.ts +9 -0
- package/dist/commands/extension/id.d.ts.map +1 -0
- package/dist/commands/extension/id.js +122 -0
- package/dist/commands/extension/id.js.map +1 -0
- package/dist/commands/extension/info.d.ts +5 -0
- package/dist/commands/extension/info.d.ts.map +1 -0
- package/dist/commands/extension/info.js +68 -0
- package/dist/commands/extension/info.js.map +1 -0
- package/dist/commands/extension/list.d.ts +8 -0
- package/dist/commands/extension/list.d.ts.map +1 -0
- package/dist/commands/extension/list.js +194 -0
- package/dist/commands/extension/list.js.map +1 -0
- package/dist/commands/extension/nativeHost.d.ts +21 -0
- package/dist/commands/extension/nativeHost.d.ts.map +1 -0
- package/dist/commands/extension/nativeHost.js +106 -0
- package/dist/commands/extension/nativeHost.js.map +1 -0
- package/dist/commands/extension/remove.d.ts +5 -0
- package/dist/commands/extension/remove.d.ts.map +1 -0
- package/dist/commands/extension/remove.js +75 -0
- package/dist/commands/extension/remove.js.map +1 -0
- package/dist/commands/extension/setup.d.ts +6 -0
- package/dist/commands/extension/setup.d.ts.map +1 -0
- package/dist/commands/extension/setup.js +89 -0
- package/dist/commands/extension/setup.js.map +1 -0
- package/dist/commands/extension/status.d.ts +5 -0
- package/dist/commands/extension/status.d.ts.map +1 -0
- package/dist/commands/extension/status.js +82 -0
- package/dist/commands/extension/status.js.map +1 -0
- package/dist/commands/iframeHelper.d.ts +13 -0
- package/dist/commands/iframeHelper.d.ts.map +1 -0
- package/dist/commands/iframeHelper.js +63 -0
- package/dist/commands/iframeHelper.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +40 -27
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/logs.d.ts +6 -2
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +55 -40
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/net.d.ts +11 -0
- package/dist/commands/net.d.ts.map +1 -0
- package/dist/commands/net.js +49 -0
- package/dist/commands/net.js.map +1 -0
- package/dist/commands/netTail.d.ts +12 -0
- package/dist/commands/netTail.d.ts.map +1 -0
- package/dist/commands/netTail.js +76 -0
- package/dist/commands/netTail.js.map +1 -0
- package/dist/commands/page.d.ts +12 -0
- package/dist/commands/page.d.ts.map +1 -0
- package/dist/commands/page.js +330 -0
- package/dist/commands/page.js.map +1 -0
- package/dist/commands/pageEmulation.d.ts +20 -0
- package/dist/commands/pageEmulation.d.ts.map +1 -0
- package/dist/commands/pageEmulation.js +215 -0
- package/dist/commands/pageEmulation.js.map +1 -0
- package/dist/commands/reload.d.ts +8 -0
- package/dist/commands/reload.d.ts.map +1 -0
- package/dist/commands/reload.js +23 -0
- package/dist/commands/reload.js.map +1 -0
- package/dist/commands/resolveTestId.d.ts +10 -0
- package/dist/commands/resolveTestId.d.ts.map +1 -0
- package/dist/commands/resolveTestId.js +16 -0
- package/dist/commands/resolveTestId.js.map +1 -0
- package/dist/commands/screenshot.d.ts +9 -0
- package/dist/commands/screenshot.d.ts.map +1 -0
- package/dist/commands/screenshot.js +27 -0
- package/dist/commands/screenshot.js.map +1 -0
- package/dist/commands/snapshot.d.ts +10 -0
- package/dist/commands/snapshot.d.ts.map +1 -0
- package/dist/commands/snapshot.js +54 -0
- package/dist/commands/snapshot.js.map +1 -0
- package/dist/commands/start.d.ts +20 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +191 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/storageLocal.d.ts +18 -0
- package/dist/commands/storageLocal.d.ts.map +1 -0
- package/dist/commands/storageLocal.js +92 -0
- package/dist/commands/storageLocal.js.map +1 -0
- package/dist/commands/tail.d.ts +6 -2
- package/dist/commands/tail.d.ts.map +1 -1
- package/dist/commands/tail.js +49 -29
- package/dist/commands/tail.js.map +1 -1
- package/dist/commands/throttle.d.ts +13 -0
- package/dist/commands/throttle.d.ts.map +1 -0
- package/dist/commands/throttle.js +124 -0
- package/dist/commands/throttle.js.map +1 -0
- package/dist/commands/trace.d.ts +27 -0
- package/dist/commands/trace.d.ts.map +1 -0
- package/dist/commands/trace.js +109 -0
- package/dist/commands/trace.js.map +1 -0
- package/dist/commands/watcherNativeHost.d.ts +13 -0
- package/dist/commands/watcherNativeHost.d.ts.map +1 -0
- package/dist/commands/watcherNativeHost.js +45 -0
- package/dist/commands/watcherNativeHost.js.map +1 -0
- package/dist/commands/watcherPrune.d.ts +9 -0
- package/dist/commands/watcherPrune.d.ts.map +1 -0
- package/dist/commands/watcherPrune.js +82 -0
- package/dist/commands/watcherPrune.js.map +1 -0
- package/dist/commands/watcherStart.d.ts +26 -0
- package/dist/commands/watcherStart.d.ts.map +1 -0
- package/dist/commands/watcherStart.js +202 -0
- package/dist/commands/watcherStart.js.map +1 -0
- package/dist/commands/watcherStatus.d.ts +7 -0
- package/dist/commands/watcherStatus.d.ts.map +1 -0
- package/dist/commands/watcherStatus.js +22 -0
- package/dist/commands/watcherStatus.js.map +1 -0
- package/dist/commands/watcherStop.d.ts +5 -0
- package/dist/commands/watcherStop.d.ts.map +1 -0
- package/dist/commands/watcherStop.js +96 -0
- package/dist/commands/watcherStop.js.map +1 -0
- package/dist/config/argusConfig.d.ts +65 -0
- package/dist/config/argusConfig.d.ts.map +1 -0
- package/dist/config/argusConfig.js +331 -0
- package/dist/config/argusConfig.js.map +1 -0
- package/dist/emulation/devices.d.ts +15 -0
- package/dist/emulation/devices.d.ts.map +1 -0
- package/dist/emulation/devices.js +54 -0
- package/dist/emulation/devices.js.map +1 -0
- package/dist/eval/evalClient.d.ts +35 -0
- package/dist/eval/evalClient.d.ts.map +1 -0
- package/dist/eval/evalClient.js +71 -0
- package/dist/eval/evalClient.js.map +1 -0
- package/dist/httpClient.d.ts +6 -1
- package/dist/httpClient.d.ts.map +1 -1
- package/dist/httpClient.js +54 -1
- package/dist/httpClient.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/output/accessibility.d.ts +16 -0
- package/dist/output/accessibility.d.ts.map +1 -0
- package/dist/output/accessibility.js +61 -0
- package/dist/output/accessibility.js.map +1 -0
- package/dist/output/dom.d.ts +14 -0
- package/dist/output/dom.d.ts.map +1 -0
- package/dist/output/dom.js +92 -0
- package/dist/output/dom.js.map +1 -0
- package/dist/output/format.d.ts +3 -2
- package/dist/output/format.d.ts.map +1 -1
- package/dist/output/format.js +11 -3
- package/dist/output/format.js.map +1 -1
- package/dist/output/io.d.ts +14 -0
- package/dist/output/io.d.ts.map +1 -0
- package/dist/output/io.js +28 -0
- package/dist/output/io.js.map +1 -0
- package/dist/output/preview.d.ts +3 -0
- package/dist/output/preview.d.ts.map +1 -0
- package/dist/output/preview.js +6 -0
- package/dist/output/preview.js.map +1 -0
- package/dist/registry.d.ts +6 -4
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +24 -13
- package/dist/registry.js.map +1 -1
- package/dist/utils/chromeBin.d.ts +3 -0
- package/dist/utils/chromeBin.d.ts.map +1 -0
- package/dist/utils/chromeBin.js +46 -0
- package/dist/utils/chromeBin.js.map +1 -0
- package/dist/utils/paths.d.ts +3 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +8 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/ports.d.ts +3 -0
- package/dist/utils/ports.d.ts.map +1 -0
- package/dist/utils/ports.js +39 -0
- package/dist/utils/ports.js.map +1 -0
- package/dist/watchers/candidates.d.ts +4 -0
- package/dist/watchers/candidates.d.ts.map +1 -0
- package/dist/watchers/candidates.js +7 -0
- package/dist/watchers/candidates.js.map +1 -0
- package/dist/watchers/requestWatcher.d.ts +42 -0
- package/dist/watchers/requestWatcher.d.ts.map +1 -0
- package/dist/watchers/requestWatcher.js +77 -0
- package/dist/watchers/requestWatcher.js.map +1 -0
- package/dist/watchers/resolveWatcher.d.ts +16 -0
- package/dist/watchers/resolveWatcher.d.ts.map +1 -0
- package/dist/watchers/resolveWatcher.js +50 -0
- package/dist/watchers/resolveWatcher.js.map +1 -0
- package/package.json +13 -14
- package/schemas/argus.config.schema.json +131 -0
package/dist/bin.d.ts
CHANGED
package/dist/bin.js
CHANGED
|
@@ -1,60 +1,51 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
import { createProgram } from './cli/program.js';
|
|
3
|
+
import { registerQuickAccess } from './cli/register/registerQuickAccess.js';
|
|
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 { registerEval } from './cli/register/registerEval.js';
|
|
10
|
+
import { registerDom } from './cli/register/registerDom.js';
|
|
11
|
+
import { registerClick } from './cli/register/registerClick.js';
|
|
12
|
+
import { registerKeydown } from './cli/register/registerKeydown.js';
|
|
13
|
+
import { registerFill } from './cli/register/registerFill.js';
|
|
14
|
+
import { registerHover } from './cli/register/registerHover.js';
|
|
15
|
+
import { registerScrollTo } from './cli/register/registerScrollTo.js';
|
|
16
|
+
import { registerStorage } from './cli/register/registerStorage.js';
|
|
17
|
+
import { registerThrottle } from './cli/register/registerThrottle.js';
|
|
18
|
+
import { registerSnapshot } from './cli/register/registerSnapshot.js';
|
|
19
|
+
import { registerTrace } from './cli/register/registerTrace.js';
|
|
20
|
+
import { registerConfig } from './cli/register/registerConfig.js';
|
|
21
|
+
import { registerExtension } from './cli/register/registerExtension.js';
|
|
22
|
+
const program = createProgram();
|
|
23
|
+
// Quick access
|
|
24
|
+
registerQuickAccess(program);
|
|
25
|
+
// Setup & infrastructure
|
|
26
|
+
registerChrome(program);
|
|
27
|
+
registerWatcher(program);
|
|
28
|
+
registerPage(program);
|
|
29
|
+
// Inspect & debug
|
|
30
|
+
registerLogs(program);
|
|
31
|
+
registerNet(program);
|
|
32
|
+
registerEval(program);
|
|
33
|
+
registerDom(program);
|
|
34
|
+
registerClick(program);
|
|
35
|
+
registerKeydown(program);
|
|
36
|
+
registerFill(program);
|
|
37
|
+
registerHover(program);
|
|
38
|
+
registerScrollTo(program);
|
|
39
|
+
registerStorage(program);
|
|
40
|
+
registerThrottle(program);
|
|
41
|
+
// Capture
|
|
42
|
+
registerSnapshot(program);
|
|
43
|
+
registerTrace(program);
|
|
44
|
+
// Configuration
|
|
45
|
+
registerConfig(program);
|
|
46
|
+
registerExtension(program);
|
|
47
|
+
program.parseAsync(process.argv).catch((error) => {
|
|
48
|
+
console.error(error);
|
|
49
|
+
process.exit(1);
|
|
21
50
|
});
|
|
22
|
-
program
|
|
23
|
-
.command('list')
|
|
24
|
-
.description('List registered watchers')
|
|
25
|
-
.option('--json', 'Output JSON for automation')
|
|
26
|
-
.option('--by-cwd <substring>', 'Filter watchers by working directory substring')
|
|
27
|
-
.addHelpText('after', '\nExamples:\n $ argus list\n $ argus list --json\n $ argus list --by-cwd my-project\n')
|
|
28
|
-
.action(async (options) => {
|
|
29
|
-
await runList(options);
|
|
30
|
-
});
|
|
31
|
-
program
|
|
32
|
-
.command('logs')
|
|
33
|
-
.argument('<id>', 'Watcher id to query')
|
|
34
|
-
.description('Fetch recent logs from a watcher')
|
|
35
|
-
.option('--levels <levels>', 'Comma-separated log levels')
|
|
36
|
-
.option('--grep <text>', 'Filter by substring')
|
|
37
|
-
.option('--since <duration>', 'Filter by time window (e.g. 10m, 2h, 30s)')
|
|
38
|
-
.option('--after <id>', 'Only return events after this id')
|
|
39
|
-
.option('--limit <count>', 'Maximum number of events')
|
|
40
|
-
.option('--json', 'Output JSON for automation')
|
|
41
|
-
.addHelpText('after', '\nExamples:\n $ argus logs app\n $ argus logs app --since 10m --levels error,warning\n $ argus logs app --json\n')
|
|
42
|
-
.action(async (id, options) => {
|
|
43
|
-
await runLogs(id, options);
|
|
44
|
-
});
|
|
45
|
-
program
|
|
46
|
-
.command('tail')
|
|
47
|
-
.argument('<id>', 'Watcher id to follow')
|
|
48
|
-
.description('Tail logs from a watcher via long-polling')
|
|
49
|
-
.option('--levels <levels>', 'Comma-separated log levels')
|
|
50
|
-
.option('--grep <text>', 'Filter by substring')
|
|
51
|
-
.option('--after <id>', 'Start after this event id')
|
|
52
|
-
.option('--limit <count>', 'Maximum number of events per poll')
|
|
53
|
-
.option('--timeout <ms>', 'Long-poll timeout in milliseconds')
|
|
54
|
-
.option('--json', 'Output newline-delimited JSON events')
|
|
55
|
-
.addHelpText('after', '\nExamples:\n $ argus tail app\n $ argus tail app --levels error\n $ argus tail app --json\n')
|
|
56
|
-
.action(async (id, options) => {
|
|
57
|
-
await runTail(id, options);
|
|
58
|
-
});
|
|
59
|
-
program.parseAsync(process.argv);
|
|
60
51
|
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,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,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAEvE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;AAE/B,eAAe;AACf,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAE5B,yBAAyB;AACzB,cAAc,CAAC,OAAO,CAAC,CAAA;AACvB,eAAe,CAAC,OAAO,CAAC,CAAA;AACxB,YAAY,CAAC,OAAO,CAAC,CAAA;AAErB,kBAAkB;AAClB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,WAAW,CAAC,OAAO,CAAC,CAAA;AACpB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,WAAW,CAAC,OAAO,CAAC,CAAA;AACpB,aAAa,CAAC,OAAO,CAAC,CAAA;AACtB,eAAe,CAAC,OAAO,CAAC,CAAA;AACxB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,aAAa,CAAC,OAAO,CAAC,CAAA;AACtB,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACzB,eAAe,CAAC,OAAO,CAAC,CAAA;AACxB,gBAAgB,CAAC,OAAO,CAAC,CAAA;AAEzB,UAAU;AACV,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACzB,aAAa,CAAC,OAAO,CAAC,CAAA;AAEtB,gBAAgB;AAChB,cAAc,CAAC,OAAO,CAAC,CAAA;AACvB,iBAAiB,CAAC,OAAO,CAAC,CAAA;AAE1B,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,15 @@
|
|
|
1
|
+
export type CdpEndpointOptions = {
|
|
2
|
+
cdp?: string;
|
|
3
|
+
id?: string;
|
|
4
|
+
};
|
|
5
|
+
export type CdpEndpointResult = {
|
|
6
|
+
ok: true;
|
|
7
|
+
host: string;
|
|
8
|
+
port: number;
|
|
9
|
+
} | {
|
|
10
|
+
ok: false;
|
|
11
|
+
error: string;
|
|
12
|
+
exitCode: 1 | 2;
|
|
13
|
+
};
|
|
14
|
+
export declare const resolveCdpEndpoint: (options: CdpEndpointOptions) => Promise<CdpEndpointResult>;
|
|
15
|
+
//# sourceMappingURL=resolveCdpEndpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveCdpEndpoint.d.ts","sourceRoot":"","sources":["../../src/cdp/resolveCdpEndpoint.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAA;AA+BxH,eAAO,MAAM,kBAAkB,GAAU,SAAS,kBAAkB,KAAG,OAAO,CAAC,iBAAiB,CAgC/F,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { pruneRegistry } from '../registry.js';
|
|
2
|
+
const parsePort = (value) => {
|
|
3
|
+
const parsed = Number.parseInt(value, 10);
|
|
4
|
+
if (!Number.isFinite(parsed) || parsed < 1 || parsed > 65535) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
return parsed;
|
|
8
|
+
};
|
|
9
|
+
const parseCdpOption = (value) => {
|
|
10
|
+
const trimmed = value.trim();
|
|
11
|
+
if (!trimmed) {
|
|
12
|
+
return { error: 'Invalid --cdp value: empty host:port.' };
|
|
13
|
+
}
|
|
14
|
+
const separator = trimmed.lastIndexOf(':');
|
|
15
|
+
if (separator <= 0 || separator === trimmed.length - 1) {
|
|
16
|
+
return { error: `Invalid --cdp value "${value}": expected <host:port>.` };
|
|
17
|
+
}
|
|
18
|
+
const host = trimmed.slice(0, separator);
|
|
19
|
+
const portValue = trimmed.slice(separator + 1);
|
|
20
|
+
const port = parsePort(portValue);
|
|
21
|
+
if (port == null) {
|
|
22
|
+
return { error: `Invalid --cdp port: ${portValue}. Must be an integer 1-65535.` };
|
|
23
|
+
}
|
|
24
|
+
return { host, port };
|
|
25
|
+
};
|
|
26
|
+
export const resolveCdpEndpoint = async (options) => {
|
|
27
|
+
if (options.cdp && options.id) {
|
|
28
|
+
return { ok: false, error: 'Cannot combine --cdp with --id.', exitCode: 2 };
|
|
29
|
+
}
|
|
30
|
+
if (options.cdp) {
|
|
31
|
+
const parsed = parseCdpOption(options.cdp);
|
|
32
|
+
if ('error' in parsed) {
|
|
33
|
+
return { ok: false, error: parsed.error, exitCode: 2 };
|
|
34
|
+
}
|
|
35
|
+
return { ok: true, host: parsed.host, port: parsed.port };
|
|
36
|
+
}
|
|
37
|
+
if (options.id != null) {
|
|
38
|
+
let registry;
|
|
39
|
+
try {
|
|
40
|
+
registry = await pruneRegistry();
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
return { ok: false, error: `Failed to load registry: ${error instanceof Error ? error.message : error}`, exitCode: 1 };
|
|
44
|
+
}
|
|
45
|
+
const watcher = registry.watchers[options.id];
|
|
46
|
+
if (!watcher) {
|
|
47
|
+
return { ok: false, error: `Watcher not found: ${options.id}`, exitCode: 2 };
|
|
48
|
+
}
|
|
49
|
+
if (!watcher.chrome) {
|
|
50
|
+
return { ok: false, error: `Watcher "${options.id}" has no chrome connection configured.`, exitCode: 2 };
|
|
51
|
+
}
|
|
52
|
+
return { ok: true, host: watcher.chrome.host, port: watcher.chrome.port };
|
|
53
|
+
}
|
|
54
|
+
return { ok: true, host: '127.0.0.1', port: 9222 };
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=resolveCdpEndpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveCdpEndpoint.js","sourceRoot":"","sources":["../../src/cdp/resolveCdpEndpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ChromeTargetResponse } from './types.js';
|
|
2
|
+
import type { Output } from '../output/io.js';
|
|
3
|
+
type TargetSelectorFilters = {
|
|
4
|
+
title?: string;
|
|
5
|
+
url?: string;
|
|
6
|
+
match?: string;
|
|
7
|
+
};
|
|
8
|
+
type TargetSelectionMessages = {
|
|
9
|
+
empty: string;
|
|
10
|
+
ambiguous: string;
|
|
11
|
+
};
|
|
12
|
+
export type TargetSelectionResult = {
|
|
13
|
+
ok: true;
|
|
14
|
+
target: ChromeTargetResponse;
|
|
15
|
+
} | {
|
|
16
|
+
ok: false;
|
|
17
|
+
error: string;
|
|
18
|
+
exitCode: 1 | 2;
|
|
19
|
+
};
|
|
20
|
+
export declare const filterTargets: (targets: ChromeTargetResponse[], filters: TargetSelectorFilters) => ChromeTargetResponse[];
|
|
21
|
+
export declare const selectTargetFromCandidates: (candidates: ChromeTargetResponse[], output: Output, options: {
|
|
22
|
+
interactive: boolean;
|
|
23
|
+
messages: TargetSelectionMessages;
|
|
24
|
+
}) => Promise<TargetSelectionResult>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=selectTarget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectTarget.d.ts","sourceRoot":"","sources":["../../src/cdp/selectTarget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C,KAAK,qBAAqB,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAC9B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAA;AAUhD,eAAO,MAAM,aAAa,GAAI,SAAS,oBAAoB,EAAE,EAAE,SAAS,qBAAqB,KAAG,oBAAoB,EAyBnH,CAAA;AAED,eAAO,MAAM,0BAA0B,GACtC,YAAY,oBAAoB,EAAE,EAClC,QAAQ,MAAM,EACd,SAAS;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAA;CAAE,KAClE,OAAO,CAAC,qBAAqB,CAiC/B,CAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
const normalizeFilter = (value) => {
|
|
2
|
+
if (!value) {
|
|
3
|
+
return null;
|
|
4
|
+
}
|
|
5
|
+
const trimmed = value.trim();
|
|
6
|
+
return trimmed ? trimmed.toLowerCase() : null;
|
|
7
|
+
};
|
|
8
|
+
export const filterTargets = (targets, filters) => {
|
|
9
|
+
const title = normalizeFilter(filters.title);
|
|
10
|
+
const url = normalizeFilter(filters.url);
|
|
11
|
+
const match = normalizeFilter(filters.match);
|
|
12
|
+
if (!title && !url && !match) {
|
|
13
|
+
return targets;
|
|
14
|
+
}
|
|
15
|
+
return targets.filter((target) => {
|
|
16
|
+
const targetTitle = (target.title ?? '').toLowerCase();
|
|
17
|
+
const targetUrl = (target.url ?? '').toLowerCase();
|
|
18
|
+
const combined = `${targetTitle} ${targetUrl}`.trim();
|
|
19
|
+
if (title && !targetTitle.includes(title)) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
if (url && !targetUrl.includes(url)) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
if (match && !combined.includes(match)) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
export const selectTargetFromCandidates = async (candidates, output, options) => {
|
|
32
|
+
if (candidates.length === 0) {
|
|
33
|
+
return { ok: false, error: options.messages.empty, exitCode: 2 };
|
|
34
|
+
}
|
|
35
|
+
if (candidates.length === 1) {
|
|
36
|
+
return { ok: true, target: candidates[0] };
|
|
37
|
+
}
|
|
38
|
+
if (!options.interactive) {
|
|
39
|
+
writeCandidateList(candidates, output);
|
|
40
|
+
return { ok: false, error: options.messages.ambiguous, exitCode: 2 };
|
|
41
|
+
}
|
|
42
|
+
writeCandidateList(candidates, output, true);
|
|
43
|
+
output.writeHuman('Select target by number or id:');
|
|
44
|
+
const selection = await readLineOnce();
|
|
45
|
+
if (!selection) {
|
|
46
|
+
return { ok: false, error: 'No selection provided.', exitCode: 2 };
|
|
47
|
+
}
|
|
48
|
+
const numeric = Number.parseInt(selection, 10);
|
|
49
|
+
if (Number.isFinite(numeric) && numeric >= 1 && numeric <= candidates.length) {
|
|
50
|
+
return { ok: true, target: candidates[numeric - 1] };
|
|
51
|
+
}
|
|
52
|
+
const byId = candidates.find((candidate) => candidate.id === selection);
|
|
53
|
+
if (byId) {
|
|
54
|
+
return { ok: true, target: byId };
|
|
55
|
+
}
|
|
56
|
+
return { ok: false, error: 'Invalid selection.', exitCode: 2 };
|
|
57
|
+
};
|
|
58
|
+
const writeCandidateList = (candidates, output, numbered = false) => {
|
|
59
|
+
for (const [index, target] of candidates.entries()) {
|
|
60
|
+
const indexLabel = numbered ? `[${index + 1}] ` : '';
|
|
61
|
+
const title = target.title ? ` ${target.title}` : '';
|
|
62
|
+
const targetUrl = target.url ? ` ${target.url}` : '';
|
|
63
|
+
output.writeHuman(`${indexLabel}${target.id} ${target.type}${title}${targetUrl}`);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const readLineOnce = async () => {
|
|
67
|
+
return await new Promise((resolve) => {
|
|
68
|
+
const onData = (data) => {
|
|
69
|
+
cleanup();
|
|
70
|
+
resolve(data.toString('utf8').trim());
|
|
71
|
+
};
|
|
72
|
+
const onError = () => {
|
|
73
|
+
cleanup();
|
|
74
|
+
resolve('');
|
|
75
|
+
};
|
|
76
|
+
const cleanup = () => {
|
|
77
|
+
process.stdin.off('data', onData);
|
|
78
|
+
process.stdin.off('error', onError);
|
|
79
|
+
process.stdin.pause();
|
|
80
|
+
};
|
|
81
|
+
process.stdin.setEncoding('utf8');
|
|
82
|
+
process.stdin.once('data', onData);
|
|
83
|
+
process.stdin.once('error', onError);
|
|
84
|
+
process.stdin.resume();
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=selectTarget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectTarget.js","sourceRoot":"","sources":["../../src/cdp/selectTarget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type ChromeTargetResponse = {
|
|
2
|
+
id: string;
|
|
3
|
+
type: string;
|
|
4
|
+
title: string;
|
|
5
|
+
url: string;
|
|
6
|
+
webSocketDebuggerUrl?: string;
|
|
7
|
+
devtoolsFrontendUrl?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
faviconUrl?: string;
|
|
10
|
+
/** Parent target ID for nested targets (e.g., iframes within pages). */
|
|
11
|
+
parentId?: string;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cdp/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cdp/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Extract an error message from an unknown thrown value. */
|
|
2
|
+
export declare const formatError: (error: unknown) => string;
|
|
3
|
+
/** Parse a string to a finite number, or return `undefined`. */
|
|
4
|
+
export declare const parseNumber: (value?: string) => number | undefined;
|
|
5
|
+
/** Parse a string to a non-negative integer, or return `undefined`. */
|
|
6
|
+
export declare const parsePositiveInt: (value?: string, options?: {
|
|
7
|
+
allowZero?: boolean;
|
|
8
|
+
}) => number | undefined;
|
|
9
|
+
/** Trim a string query value; return `undefined` if empty/nullish. */
|
|
10
|
+
export declare const normalizeQueryValue: (value?: string) => string | undefined;
|
|
11
|
+
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/cli/parse.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,MAQ5C,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SASrD,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,EAAE,UAAU;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,MAAM,GAAG,SAa7F,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SAS7D,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/** Extract an error message from an unknown thrown value. */
|
|
2
|
+
export const formatError = (error) => {
|
|
3
|
+
if (!error) {
|
|
4
|
+
return 'unknown error';
|
|
5
|
+
}
|
|
6
|
+
if (error instanceof Error) {
|
|
7
|
+
return error.message;
|
|
8
|
+
}
|
|
9
|
+
return String(error);
|
|
10
|
+
};
|
|
11
|
+
/** Parse a string to a finite number, or return `undefined`. */
|
|
12
|
+
export const parseNumber = (value) => {
|
|
13
|
+
if (!value) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
const parsed = Number(value);
|
|
17
|
+
if (!Number.isFinite(parsed)) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
return parsed;
|
|
21
|
+
};
|
|
22
|
+
/** Parse a string to a non-negative integer, or return `undefined`. */
|
|
23
|
+
export const parsePositiveInt = (value, options) => {
|
|
24
|
+
if (value === undefined) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
const parsed = Number(value);
|
|
28
|
+
if (!Number.isFinite(parsed) || !Number.isInteger(parsed)) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
const min = options?.allowZero ? 0 : 1;
|
|
32
|
+
if (parsed < min) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
return parsed;
|
|
36
|
+
};
|
|
37
|
+
/** Trim a string query value; return `undefined` if empty/nullish. */
|
|
38
|
+
export const normalizeQueryValue = (value) => {
|
|
39
|
+
if (value == null) {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
const trimmed = value.trim();
|
|
43
|
+
if (!trimmed) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
return trimmed;
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/cli/parse.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAU,EAAE;IACrD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,eAAe,CAAA;IACvB,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,OAAO,CAAA;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,CAAC,CAAA;AAED,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE;IACjE,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAE,OAAiC,EAAsB,EAAE;IACzG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtC,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QAClB,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAsB,EAAE;IACzE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IACjB,CAAC;IACD,OAAO,OAAO,CAAA;AACf,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,wBAAgB,aAAa,IAAI,OAAO,CAoBvC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
export function createProgram() {
|
|
3
|
+
const program = new Command();
|
|
4
|
+
program
|
|
5
|
+
.name('argus')
|
|
6
|
+
.description('Argus CLI for local watcher servers')
|
|
7
|
+
.version('0.1.0')
|
|
8
|
+
.configureOutput({
|
|
9
|
+
outputError: (str, write) => write(str),
|
|
10
|
+
})
|
|
11
|
+
.showSuggestionAfterError(true)
|
|
12
|
+
.exitOverride((error) => {
|
|
13
|
+
if (error.code === 'commander.helpDisplayed' || error.code === 'commander.version') {
|
|
14
|
+
process.exit(0);
|
|
15
|
+
}
|
|
16
|
+
console.error(error.message);
|
|
17
|
+
process.exit(2);
|
|
18
|
+
});
|
|
19
|
+
return program;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=program.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,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,OAAO,CAAC;SAChB,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 @@
|
|
|
1
|
+
{"version":3,"file":"registerChrome.d.ts","sourceRoot":"","sources":["../../../src/cli/register/registerChrome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2FrD"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { runChromeStart } from '../../commands/chromeStart.js';
|
|
2
|
+
import { runChromeVersion, runChromeStatus, runChromeList, runChromeStop } from '../../commands/chrome.js';
|
|
3
|
+
import { loadArgusConfig, mergeChromeStartOptionsWithConfig, resolveArgusConfigPath } from '../../config/argusConfig.js';
|
|
4
|
+
export function registerChrome(program) {
|
|
5
|
+
const chrome = program.command('chrome').alias('browser').description('Chrome/Chromium management commands');
|
|
6
|
+
chrome
|
|
7
|
+
.command('start')
|
|
8
|
+
.description('Launch Chrome with CDP enabled')
|
|
9
|
+
.option('--url <url>', 'URL to open in Chrome')
|
|
10
|
+
.option('--from-watcher <watcherId>', 'Use match.url from a registered watcher')
|
|
11
|
+
.option('--profile <type>', 'Profile mode: temp, default-full, default-medium, or default-lite (default: default-lite)')
|
|
12
|
+
.option('--dev-tools', 'Open DevTools for new tabs')
|
|
13
|
+
.option('--headless', 'Run Chrome in headless mode (no visible window)')
|
|
14
|
+
.option('--config <path>', 'Path to Argus config file')
|
|
15
|
+
.option('--json', 'Output JSON for automation')
|
|
16
|
+
.addHelpText('after', '\nExamples:\n $ argus chrome start\n $ argus chrome start --url http://localhost:3000\n $ argus chrome start --from-watcher app\n $ argus chrome start --profile default-full\n $ argus chrome start --profile default-medium\n $ argus chrome start --profile default-lite\n $ argus chrome start --profile temp\n $ argus chrome start --dev-tools\n $ argus chrome start --headless\n $ argus chrome start --json\n')
|
|
17
|
+
.action(async (options, command) => {
|
|
18
|
+
const { config: configPath, ...cliOptions } = options;
|
|
19
|
+
const resolvedPath = resolveArgusConfigPath({ cliPath: configPath, cwd: process.cwd() });
|
|
20
|
+
if (!resolvedPath) {
|
|
21
|
+
if (configPath) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
await runChromeStart(cliOptions);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const configResult = loadArgusConfig(resolvedPath);
|
|
28
|
+
if (!configResult) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const merged = mergeChromeStartOptionsWithConfig(cliOptions, command, configResult);
|
|
32
|
+
if (!merged) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
await runChromeStart(merged);
|
|
36
|
+
});
|
|
37
|
+
chrome
|
|
38
|
+
.command('ls')
|
|
39
|
+
.alias('list')
|
|
40
|
+
.description('List running Chrome instances with CDP enabled')
|
|
41
|
+
.option('--json', 'Output JSON for automation')
|
|
42
|
+
.option('--pages', 'List individual pages for each instance')
|
|
43
|
+
.addHelpText('after', '\nExamples:\n $ argus chrome ls\n $ argus chrome ls --pages\n $ argus chrome ls --json --pages\n')
|
|
44
|
+
.action(async (options) => {
|
|
45
|
+
await runChromeList(options);
|
|
46
|
+
});
|
|
47
|
+
chrome
|
|
48
|
+
.command('version')
|
|
49
|
+
.description('Show Chrome version info from CDP endpoint')
|
|
50
|
+
.option('--cdp <host:port>', 'CDP host:port')
|
|
51
|
+
.option('--id <watcherId>', 'Use chrome config from a registered watcher')
|
|
52
|
+
.option('--json', 'Output JSON for automation')
|
|
53
|
+
.addHelpText('after', '\nExamples:\n $ argus chrome version\n $ argus chrome version --cdp 127.0.0.1:9222\n $ argus chrome version --id app\n $ argus chrome version --json\n')
|
|
54
|
+
.action(async (options) => {
|
|
55
|
+
await runChromeVersion(options);
|
|
56
|
+
});
|
|
57
|
+
chrome
|
|
58
|
+
.command('status')
|
|
59
|
+
.description('Check if Chrome CDP endpoint is reachable')
|
|
60
|
+
.option('--cdp <host:port>', 'CDP host:port')
|
|
61
|
+
.option('--id <watcherId>', 'Use chrome config from a registered watcher')
|
|
62
|
+
.option('--json', 'Output JSON for automation')
|
|
63
|
+
.addHelpText('after', '\nExamples:\n $ argus chrome status\n $ argus chrome status --cdp 127.0.0.1:9222\n $ argus chrome status --id app\n')
|
|
64
|
+
.action(async (options) => {
|
|
65
|
+
await runChromeStatus(options);
|
|
66
|
+
});
|
|
67
|
+
chrome
|
|
68
|
+
.command('stop')
|
|
69
|
+
.alias('quit')
|
|
70
|
+
.description('Close the Chrome instance via CDP')
|
|
71
|
+
.option('--cdp <host:port>', 'CDP host:port')
|
|
72
|
+
.option('--id <watcherId>', 'Use chrome config from a registered watcher')
|
|
73
|
+
.option('--json', 'Output JSON for automation')
|
|
74
|
+
.addHelpText('after', '\nExamples:\n $ argus chrome stop\n $ argus chrome stop --id app\n $ argus chrome stop --json\n')
|
|
75
|
+
.action(async (options) => {
|
|
76
|
+
await runChromeStop(options);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=registerChrome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerChrome.js","sourceRoot":"","sources":["../../../src/cli/register/registerChrome.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerClick.d.ts","sourceRoot":"","sources":["../../../src/cli/register/registerClick.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBpD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { runDomClick } from '../../commands/domClick.js';
|
|
2
|
+
import { resolveTestId } from '../../commands/resolveTestId.js';
|
|
3
|
+
export function registerClick(program) {
|
|
4
|
+
program
|
|
5
|
+
.command('click')
|
|
6
|
+
.argument('[id]', 'Watcher id to query')
|
|
7
|
+
.description('Click at coordinates or on element(s) matching a CSS selector')
|
|
8
|
+
.option('--selector <css>', 'CSS selector to match element(s)')
|
|
9
|
+
.option('--testid <id>', 'Shorthand for --selector "[data-testid=\'<id>\']"')
|
|
10
|
+
.option('--pos <x,y>', 'Viewport coordinates or offset from element top-left')
|
|
11
|
+
.option('--button <type>', 'Mouse button: left, middle, right (default: left)')
|
|
12
|
+
.option('--all', 'Allow multiple matches (default: error if >1 match)')
|
|
13
|
+
.option('--text <string>', 'Filter by textContent (trimmed). Supports /regex/flags syntax')
|
|
14
|
+
.option('--wait <duration>', 'Wait for selector to appear (e.g. 5s, 500ms)')
|
|
15
|
+
.option('--json', 'Output JSON for automation')
|
|
16
|
+
.addHelpText('after', '\nExamples:\n $ argus click app --pos 100,200\n $ argus click app --selector "#btn"\n $ argus click app --testid "submit-btn"\n $ argus click app --selector "#btn" --pos 10,5\n $ argus click app --selector ".item" --all\n $ argus click app --selector "#btn" --button right\n $ argus click app --pos 100,200 --button middle\n')
|
|
17
|
+
.action(async (id, options) => {
|
|
18
|
+
if (!resolveTestId(options))
|
|
19
|
+
return;
|
|
20
|
+
await runDomClick(id, options);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=registerClick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerClick.js","sourceRoot":"","sources":["../../../src/cli/register/registerClick.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAE/D,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC7C,OAAO;SACL,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;SACvC,WAAW,CAAC,+DAA+D,CAAC;SAC5E,MAAM,CAAC,kBAAkB,EAAE,kCAAkC,CAAC;SAC9D,MAAM,CAAC,eAAe,EAAE,mDAAmD,CAAC;SAC5E,MAAM,CAAC,aAAa,EAAE,sDAAsD,CAAC;SAC7E,MAAM,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;SAC9E,MAAM,CAAC,OAAO,EAAE,qDAAqD,CAAC;SACtE,MAAM,CAAC,iBAAiB,EAAE,+DAA+D,CAAC;SAC1F,MAAM,CAAC,mBAAmB,EAAE,8CAA8C,CAAC;SAC3E,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;SAC9C,WAAW,CACX,OAAO,EACP,6UAA6U,CAC7U;SACA,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QAC7B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAAE,OAAM;QACnC,MAAM,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/register/registerConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAYrD"}
|