@vforsh/argus 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/argus.js +6265 -6005
- package/dist/cdp/resolveCdpEndpoint.d.ts.map +1 -1
- package/dist/cdp/resolveCdpEndpoint.js +2 -1
- package/dist/cdp/resolveCdpEndpoint.js.map +1 -1
- package/dist/cli/defineCommand.d.ts +12 -0
- package/dist/cli/defineCommand.d.ts.map +1 -1
- package/dist/cli/defineCommand.js +71 -1
- package/dist/cli/defineCommand.js.map +1 -1
- package/dist/cli/defineWatcherCommand.d.ts +12 -54
- package/dist/cli/defineWatcherCommand.d.ts.map +1 -1
- package/dist/cli/defineWatcherCommand.js +1 -1
- package/dist/cli/defineWatcherCommand.js.map +1 -1
- package/dist/cli/parse.d.ts +1 -2
- package/dist/cli/parse.d.ts.map +1 -1
- package/dist/cli/parse.js +2 -10
- package/dist/cli/parse.js.map +1 -1
- package/dist/cli/plugins/pluginHost.d.ts.map +1 -1
- package/dist/cli/plugins/pluginHost.js +1 -1
- package/dist/cli/plugins/pluginHost.js.map +1 -1
- package/dist/cli/plugins/registerPlugins.d.ts.map +1 -1
- package/dist/cli/plugins/registerPlugins.js +10 -8
- package/dist/cli/plugins/registerPlugins.js.map +1 -1
- package/dist/cli/program.d.ts +11 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +18 -9
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/register/authCommands.d.ts.map +1 -1
- package/dist/cli/register/authCommands.js +8 -7
- package/dist/cli/register/authCommands.js.map +1 -1
- package/dist/cli/register/chromeCommands.d.ts.map +1 -1
- package/dist/cli/register/chromeCommands.js +12 -27
- package/dist/cli/register/chromeCommands.js.map +1 -1
- package/dist/cli/register/codeCommands.d.ts.map +1 -1
- package/dist/cli/register/codeCommands.js +7 -6
- package/dist/cli/register/codeCommands.js.map +1 -1
- package/dist/cli/register/dialogCommands.d.ts.map +1 -1
- package/dist/cli/register/dialogCommands.js +3 -2
- package/dist/cli/register/dialogCommands.js.map +1 -1
- package/dist/cli/register/domCommandBuilder.d.ts.map +1 -1
- package/dist/cli/register/domCommandBuilder.js +2 -1
- package/dist/cli/register/domCommandBuilder.js.map +1 -1
- package/dist/cli/register/domCommands.d.ts.map +1 -1
- package/dist/cli/register/domCommands.js +7 -6
- package/dist/cli/register/domCommands.js.map +1 -1
- package/dist/cli/register/evalCommands.d.ts.map +1 -1
- package/dist/cli/register/evalCommands.js +27 -57
- package/dist/cli/register/evalCommands.js.map +1 -1
- package/dist/cli/register/extensionCommands.d.ts.map +1 -1
- package/dist/cli/register/extensionCommands.js +1 -1
- package/dist/cli/register/extensionCommands.js.map +1 -1
- package/dist/cli/register/fillCommand.d.ts.map +1 -1
- package/dist/cli/register/fillCommand.js +5 -5
- package/dist/cli/register/fillCommand.js.map +1 -1
- package/dist/cli/register/hoverCommand.d.ts.map +1 -1
- package/dist/cli/register/hoverCommand.js +2 -1
- package/dist/cli/register/hoverCommand.js.map +1 -1
- package/dist/cli/register/index.d.ts.map +1 -1
- package/dist/cli/register/index.js +2 -0
- package/dist/cli/register/index.js.map +1 -1
- package/dist/cli/register/keydownCommand.d.ts.map +1 -1
- package/dist/cli/register/keydownCommand.js +2 -1
- package/dist/cli/register/keydownCommand.js.map +1 -1
- package/dist/cli/register/locateCommands.d.ts.map +1 -1
- package/dist/cli/register/locateCommands.js +2 -1
- package/dist/cli/register/locateCommands.js.map +1 -1
- package/dist/cli/register/logsCommands.d.ts.map +1 -1
- package/dist/cli/register/logsCommands.js +8 -10
- package/dist/cli/register/logsCommands.js.map +1 -1
- package/dist/cli/register/netCommands.d.ts +0 -5
- package/dist/cli/register/netCommands.d.ts.map +1 -1
- package/dist/cli/register/netCommands.js +17 -143
- package/dist/cli/register/netCommands.js.map +1 -1
- package/dist/cli/register/pageCommands.d.ts.map +1 -1
- package/dist/cli/register/pageCommands.js +8 -7
- package/dist/cli/register/pageCommands.js.map +1 -1
- package/dist/cli/register/pluginCommands.d.ts.map +1 -1
- package/dist/cli/register/pluginCommands.js +3 -2
- package/dist/cli/register/pluginCommands.js.map +1 -1
- package/dist/cli/register/quickAccessCommands.d.ts.map +1 -1
- package/dist/cli/register/quickAccessCommands.js +16 -31
- package/dist/cli/register/quickAccessCommands.js.map +1 -1
- package/dist/cli/register/recordCommands.d.ts.map +1 -1
- package/dist/cli/register/recordCommands.js +12 -34
- package/dist/cli/register/recordCommands.js.map +1 -1
- package/dist/cli/register/scrollToCommand.d.ts.map +1 -1
- package/dist/cli/register/scrollToCommand.js +2 -1
- package/dist/cli/register/scrollToCommand.js.map +1 -1
- package/dist/cli/register/sessionCommands.d.ts +3 -0
- package/dist/cli/register/sessionCommands.d.ts.map +1 -0
- package/dist/cli/register/sessionCommands.js +24 -0
- package/dist/cli/register/sessionCommands.js.map +1 -0
- package/dist/cli/register/sharedOptions.d.ts +11 -0
- package/dist/cli/register/sharedOptions.d.ts.map +1 -0
- package/dist/cli/register/sharedOptions.js +10 -0
- package/dist/cli/register/sharedOptions.js.map +1 -0
- package/dist/cli/register/skillCommands.d.ts.map +1 -1
- package/dist/cli/register/skillCommands.js +2 -1
- package/dist/cli/register/skillCommands.js.map +1 -1
- package/dist/cli/register/snapshotCommands.d.ts.map +1 -1
- package/dist/cli/register/snapshotCommands.js +3 -2
- package/dist/cli/register/snapshotCommands.js.map +1 -1
- package/dist/cli/register/storageCommands.d.ts.map +1 -1
- package/dist/cli/register/storageCommands.js +2 -1
- package/dist/cli/register/storageCommands.js.map +1 -1
- package/dist/cli/register/throttleCommands.d.ts.map +1 -1
- package/dist/cli/register/throttleCommands.js +4 -3
- package/dist/cli/register/throttleCommands.js.map +1 -1
- package/dist/cli/register/traceCommands.d.ts.map +1 -1
- package/dist/cli/register/traceCommands.js +10 -30
- package/dist/cli/register/traceCommands.js.map +1 -1
- package/dist/cli/register/watcherCommands.d.ts.map +1 -1
- package/dist/cli/register/watcherCommands.js +12 -24
- package/dist/cli/register/watcherCommands.js.map +1 -1
- package/dist/cli/validation.d.ts +14 -0
- package/dist/cli/validation.d.ts.map +1 -1
- package/dist/cli/validation.js +17 -6
- package/dist/cli/validation.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +3 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/authCookieSupport.d.ts +4 -2
- package/dist/commands/authCookieSupport.d.ts.map +1 -1
- package/dist/commands/authCookieSupport.js +0 -4
- package/dist/commands/authCookieSupport.js.map +1 -1
- package/dist/commands/authCookies.d.ts +4 -4
- package/dist/commands/authCookies.d.ts.map +1 -1
- package/dist/commands/chrome/authState.d.ts +0 -12
- package/dist/commands/chrome/authState.d.ts.map +1 -1
- package/dist/commands/chrome/authState.js +0 -14
- package/dist/commands/chrome/authState.js.map +1 -1
- package/dist/commands/chrome/browser.d.ts.map +1 -1
- package/dist/commands/chrome/browser.js +2 -1
- package/dist/commands/chrome/browser.js.map +1 -1
- package/dist/commands/chrome/shared.d.ts.map +1 -1
- package/dist/commands/chrome/shared.js +3 -2
- package/dist/commands/chrome/shared.js.map +1 -1
- package/dist/commands/chrome/targets.d.ts.map +1 -1
- package/dist/commands/chrome/targets.js +6 -5
- package/dist/commands/chrome/targets.js.map +1 -1
- package/dist/commands/chromeStart.d.ts +10 -0
- package/dist/commands/chromeStart.d.ts.map +1 -1
- package/dist/commands/chromeStart.js +50 -41
- package/dist/commands/chromeStart.js.map +1 -1
- package/dist/commands/code.d.ts +2 -2
- package/dist/commands/code.d.ts.map +1 -1
- package/dist/commands/codeEdit.d.ts.map +1 -1
- package/dist/commands/codeEdit.js +3 -2
- package/dist/commands/codeEdit.js.map +1 -1
- package/dist/commands/configInit.d.ts +1 -0
- package/dist/commands/configInit.d.ts.map +1 -1
- package/dist/commands/configInit.js +17 -14
- package/dist/commands/configInit.js.map +1 -1
- package/dist/commands/dialog.d.ts +4 -4
- package/dist/commands/dialog.d.ts.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +14 -10
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/dom/shared.js +1 -1
- package/dist/commands/dom/shared.js.map +1 -1
- package/dist/commands/domAdd.d.ts +1 -1
- package/dist/commands/domAdd.d.ts.map +1 -1
- package/dist/commands/domAdd.js +10 -54
- package/dist/commands/domAdd.js.map +1 -1
- package/dist/commands/domAddScript.d.ts.map +1 -1
- package/dist/commands/domAddScript.js +14 -58
- package/dist/commands/domAddScript.js.map +1 -1
- package/dist/commands/domClick.d.ts +1 -2
- package/dist/commands/domClick.d.ts.map +1 -1
- package/dist/commands/domClick.js +2 -4
- package/dist/commands/domClick.js.map +1 -1
- package/dist/commands/domDrag.d.ts +1 -2
- package/dist/commands/domDrag.d.ts.map +1 -1
- package/dist/commands/domDrag.js +3 -5
- package/dist/commands/domDrag.js.map +1 -1
- package/dist/commands/domFill.d.ts +1 -1
- package/dist/commands/domFill.d.ts.map +1 -1
- package/dist/commands/domFill.js +10 -42
- package/dist/commands/domFill.js.map +1 -1
- package/dist/commands/domFocus.d.ts +1 -1
- package/dist/commands/domFocus.d.ts.map +1 -1
- package/dist/commands/domHover.d.ts +1 -1
- package/dist/commands/domHover.d.ts.map +1 -1
- package/dist/commands/domInfo.d.ts +1 -1
- package/dist/commands/domInfo.d.ts.map +1 -1
- package/dist/commands/domKeydown.d.ts +1 -1
- package/dist/commands/domKeydown.d.ts.map +1 -1
- package/dist/commands/domModify.d.ts.map +1 -1
- package/dist/commands/domModify.js +6 -7
- package/dist/commands/domModify.js.map +1 -1
- package/dist/commands/domRemove.d.ts +1 -1
- package/dist/commands/domRemove.d.ts.map +1 -1
- package/dist/commands/domScroll.d.ts +1 -1
- package/dist/commands/domScroll.d.ts.map +1 -1
- package/dist/commands/domScroll.js +16 -10
- package/dist/commands/domScroll.js.map +1 -1
- package/dist/commands/domScrollTo.d.ts +1 -1
- package/dist/commands/domScrollTo.d.ts.map +1 -1
- package/dist/commands/domSetFile.d.ts +1 -1
- package/dist/commands/domSetFile.d.ts.map +1 -1
- package/dist/commands/domTree.d.ts +1 -1
- package/dist/commands/domTree.d.ts.map +1 -1
- package/dist/commands/eval.d.ts +3 -32
- package/dist/commands/eval.d.ts.map +1 -1
- package/dist/commands/eval.js +14 -33
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/evalBundle.js +2 -1
- package/dist/commands/evalBundle.js.map +1 -1
- package/dist/commands/evalEmit.d.ts +35 -0
- package/dist/commands/evalEmit.d.ts.map +1 -0
- package/dist/commands/evalEmit.js +65 -0
- package/dist/commands/evalEmit.js.map +1 -0
- package/dist/commands/evalIframe.d.ts +16 -0
- package/dist/commands/evalIframe.d.ts.map +1 -0
- package/dist/commands/evalIframe.js +37 -0
- package/dist/commands/evalIframe.js.map +1 -0
- package/dist/commands/evalShared.d.ts +52 -44
- package/dist/commands/evalShared.d.ts.map +1 -1
- package/dist/commands/evalShared.js +64 -192
- package/dist/commands/evalShared.js.map +1 -1
- package/dist/commands/evalUntil.d.ts +4 -32
- package/dist/commands/evalUntil.d.ts.map +1 -1
- package/dist/commands/evalUntil.js +9 -29
- package/dist/commands/evalUntil.js.map +1 -1
- package/dist/commands/extension/attach.d.ts.map +1 -1
- package/dist/commands/extension/attach.js +12 -28
- package/dist/commands/extension/attach.js.map +1 -1
- package/dist/commands/extension/doctor.d.ts.map +1 -1
- package/dist/commands/extension/doctor.js +1 -1
- package/dist/commands/extension/doctor.js.map +1 -1
- package/dist/commands/extension/failures.d.ts +62 -0
- package/dist/commands/extension/failures.d.ts.map +1 -0
- package/dist/commands/extension/failures.js +70 -0
- package/dist/commands/extension/failures.js.map +1 -0
- package/dist/commands/extension/info.d.ts.map +1 -1
- package/dist/commands/extension/info.js +4 -14
- package/dist/commands/extension/info.js.map +1 -1
- package/dist/commands/extension/install.d.ts.map +1 -1
- package/dist/commands/extension/install.js +12 -22
- package/dist/commands/extension/install.js.map +1 -1
- package/dist/commands/extension/nativeHost.d.ts +22 -0
- package/dist/commands/extension/nativeHost.d.ts.map +1 -1
- package/dist/commands/extension/nativeHost.js +38 -7
- package/dist/commands/extension/nativeHost.js.map +1 -1
- package/dist/commands/extension/remove.d.ts.map +1 -1
- package/dist/commands/extension/remove.js +5 -15
- package/dist/commands/extension/remove.js.map +1 -1
- package/dist/commands/extension/resolveExtensionWatcher.d.ts.map +1 -1
- package/dist/commands/extension/resolveExtensionWatcher.js +3 -2
- package/dist/commands/extension/resolveExtensionWatcher.js.map +1 -1
- package/dist/commands/extension/select.js +11 -23
- package/dist/commands/extension/select.js.map +1 -1
- package/dist/commands/extension/setup.d.ts.map +1 -1
- package/dist/commands/extension/setup.js +8 -30
- package/dist/commands/extension/setup.js.map +1 -1
- package/dist/commands/extension/show.d.ts.map +1 -1
- package/dist/commands/extension/show.js +10 -17
- package/dist/commands/extension/show.js.map +1 -1
- package/dist/commands/extension/status.d.ts.map +1 -1
- package/dist/commands/extension/status.js +5 -14
- package/dist/commands/extension/status.js.map +1 -1
- package/dist/commands/extension/tabAttach.d.ts.map +1 -1
- package/dist/commands/extension/tabAttach.js +2 -2
- package/dist/commands/extension/tabAttach.js.map +1 -1
- package/dist/commands/extension/tabSelection.d.ts.map +1 -1
- package/dist/commands/extension/tabSelection.js +1 -1
- package/dist/commands/extension/tabSelection.js.map +1 -1
- package/dist/commands/extension/tabWatcher.d.ts +7 -1
- package/dist/commands/extension/tabWatcher.d.ts.map +1 -1
- package/dist/commands/extension/tabWatcher.js +17 -21
- package/dist/commands/extension/tabWatcher.js.map +1 -1
- package/dist/commands/extension/tabs.d.ts.map +1 -1
- package/dist/commands/extension/tabs.js +6 -31
- package/dist/commands/extension/tabs.js.map +1 -1
- package/dist/commands/extension/targetSelection.d.ts +10 -25
- package/dist/commands/extension/targetSelection.d.ts.map +1 -1
- package/dist/commands/extension/targetSelection.js +2 -2
- package/dist/commands/extension/targetSelection.js.map +1 -1
- package/dist/commands/extension/targets.js +2 -11
- package/dist/commands/extension/targets.js.map +1 -1
- package/dist/commands/iframeHelper.d.ts +13 -0
- package/dist/commands/iframeHelper.d.ts.map +1 -1
- package/dist/commands/iframeHelper.js +7 -1
- package/dist/commands/iframeHelper.js.map +1 -1
- package/dist/commands/inputSource.d.ts +57 -0
- package/dist/commands/inputSource.d.ts.map +1 -0
- package/dist/commands/inputSource.js +75 -0
- package/dist/commands/inputSource.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +14 -6
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/logs.d.ts +3 -3
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/net.d.ts +1 -1
- package/dist/commands/net.d.ts.map +1 -1
- package/dist/commands/netClear.d.ts +1 -1
- package/dist/commands/netClear.d.ts.map +1 -1
- package/dist/commands/netExport.d.ts.map +1 -1
- package/dist/commands/netExport.js +9 -31
- package/dist/commands/netExport.js.map +1 -1
- package/dist/commands/netInspect.d.ts.map +1 -1
- package/dist/commands/netInspect.js +2 -1
- package/dist/commands/netInspect.js.map +1 -1
- package/dist/commands/netMock.d.ts +4 -4
- package/dist/commands/netMock.d.ts.map +1 -1
- package/dist/commands/netMock.js +2 -2
- package/dist/commands/netMock.js.map +1 -1
- package/dist/commands/netRequestClient.d.ts +2 -2
- package/dist/commands/netRequestClient.d.ts.map +1 -1
- package/dist/commands/netRequestClient.js.map +1 -1
- package/dist/commands/netShared.d.ts +22 -0
- package/dist/commands/netShared.d.ts.map +1 -1
- package/dist/commands/netShared.js +43 -16
- package/dist/commands/netShared.js.map +1 -1
- package/dist/commands/netSse.d.ts +1 -1
- package/dist/commands/netSse.d.ts.map +1 -1
- package/dist/commands/netSummary.js +6 -25
- package/dist/commands/netSummary.js.map +1 -1
- package/dist/commands/netWebSocket.d.ts +2 -2
- package/dist/commands/netWebSocket.d.ts.map +1 -1
- package/dist/commands/page.d.ts +8 -0
- package/dist/commands/page.d.ts.map +1 -1
- package/dist/commands/page.js +83 -83
- package/dist/commands/page.js.map +1 -1
- package/dist/commands/pageEmulation.d.ts +3 -3
- package/dist/commands/pageEmulation.d.ts.map +1 -1
- package/dist/commands/pageEmulation.js +17 -12
- package/dist/commands/pageEmulation.js.map +1 -1
- package/dist/commands/pluginConfig.d.ts.map +1 -1
- package/dist/commands/pluginConfig.js +21 -20
- package/dist/commands/pluginConfig.js.map +1 -1
- package/dist/commands/record.d.ts +3 -3
- package/dist/commands/record.d.ts.map +1 -1
- package/dist/commands/record.js +1 -1
- package/dist/commands/record.js.map +1 -1
- package/dist/commands/reload.d.ts +1 -1
- package/dist/commands/reload.d.ts.map +1 -1
- package/dist/commands/resolveTestId.d.ts.map +1 -1
- package/dist/commands/resolveTestId.js +2 -3
- package/dist/commands/resolveTestId.js.map +1 -1
- package/dist/commands/screenshot.d.ts +1 -1
- package/dist/commands/screenshot.d.ts.map +1 -1
- package/dist/commands/snapshot.d.ts +1 -1
- package/dist/commands/snapshot.d.ts.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +6 -28
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/startShared.d.ts.map +1 -1
- package/dist/commands/startShared.js +2 -1
- package/dist/commands/startShared.js.map +1 -1
- package/dist/commands/throttle.d.ts +3 -3
- package/dist/commands/throttle.d.ts.map +1 -1
- package/dist/commands/throttle.js +2 -3
- package/dist/commands/throttle.js.map +1 -1
- package/dist/commands/trace.d.ts.map +1 -1
- package/dist/commands/trace.js +2 -2
- package/dist/commands/trace.js.map +1 -1
- package/dist/commands/watcherNativeHost.d.ts.map +1 -1
- package/dist/commands/watcherNativeHost.js +4 -1
- package/dist/commands/watcherNativeHost.js.map +1 -1
- package/dist/commands/watcherPrune.d.ts.map +1 -1
- package/dist/commands/watcherPrune.js +3 -3
- package/dist/commands/watcherPrune.js.map +1 -1
- package/dist/commands/watcherSession.d.ts.map +1 -1
- package/dist/commands/watcherSession.js +2 -1
- package/dist/commands/watcherSession.js.map +1 -1
- package/dist/commands/watcherStatus.d.ts +1 -1
- package/dist/commands/watcherStatus.d.ts.map +1 -1
- package/dist/commands/watcherStatus.js +5 -0
- package/dist/commands/watcherStatus.js.map +1 -1
- package/dist/commands/watcherStop.d.ts.map +1 -1
- package/dist/commands/watcherStop.js +2 -2
- package/dist/commands/watcherStop.js.map +1 -1
- package/dist/config/configContext.d.ts +27 -0
- package/dist/config/configContext.d.ts.map +1 -0
- package/dist/config/configContext.js +57 -0
- package/dist/config/configContext.js.map +1 -0
- package/dist/config/loadConfig.d.ts.map +1 -1
- package/dist/config/loadConfig.js +3 -2
- package/dist/config/loadConfig.js.map +1 -1
- package/dist/eval/evalClient.d.ts.map +1 -1
- package/dist/eval/evalClient.js +2 -1
- package/dist/eval/evalClient.js.map +1 -1
- package/dist/extension/dist/background/service-worker.js +465 -448
- package/dist/extension/dist/background/service-worker.js.map +4 -4
- package/dist/extension/dist/popup/popup.js +279 -234
- package/dist/extension/dist/popup/popup.js.map +4 -4
- package/dist/extension/manifest.json +1 -1
- package/dist/internal.d.ts +22 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +22 -0
- package/dist/internal.js.map +1 -0
- package/dist/output/io.d.ts +15 -9
- package/dist/output/io.d.ts.map +1 -1
- package/dist/output/io.js +21 -2
- package/dist/output/io.js.map +1 -1
- package/dist/registry.d.ts +1 -4
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +4 -25
- package/dist/registry.js.map +1 -1
- package/dist/runtime-code/format.d.ts.map +1 -1
- package/dist/runtime-code/format.js +2 -1
- package/dist/runtime-code/format.js.map +1 -1
- package/dist/session/runSession.d.ts +15 -0
- package/dist/session/runSession.d.ts.map +1 -0
- package/dist/session/runSession.js +184 -0
- package/dist/session/runSession.js.map +1 -0
- package/dist/session/sessionArgv.d.ts +42 -0
- package/dist/session/sessionArgv.d.ts.map +1 -0
- package/dist/session/sessionArgv.js +224 -0
- package/dist/session/sessionArgv.js.map +1 -0
- package/dist/session/sessionDispatch.d.ts +21 -0
- package/dist/session/sessionDispatch.d.ts.map +1 -0
- package/dist/session/sessionDispatch.js +137 -0
- package/dist/session/sessionDispatch.js.map +1 -0
- package/dist/session/stdioCapture.d.ts +33 -0
- package/dist/session/stdioCapture.d.ts.map +1 -0
- package/dist/session/stdioCapture.js +56 -0
- package/dist/session/stdioCapture.js.map +1 -0
- package/dist/skill/argus/SKILL.md +29 -0
- package/dist/skill/argus/reference/SESSION.md +153 -0
- package/dist/watchers/queryParams.d.ts +11 -9
- package/dist/watchers/queryParams.d.ts.map +1 -1
- package/dist/watchers/queryParams.js +63 -86
- package/dist/watchers/queryParams.js.map +1 -1
- package/dist/watchers/requestWatcher.d.ts +7 -25
- package/dist/watchers/requestWatcher.d.ts.map +1 -1
- package/dist/watchers/requestWatcher.js +9 -6
- package/dist/watchers/requestWatcher.js.map +1 -1
- package/dist/watchers/resolveWatcher.d.ts.map +1 -1
- package/dist/watchers/resolveWatcher.js +9 -2
- package/dist/watchers/resolveWatcher.js.map +1 -1
- package/package.json +9 -5
- package/dist/time.d.ts +0 -3
- package/dist/time.d.ts.map +0 -1
- package/dist/time.js +0 -19
- package/dist/time.js.map +0 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Text a single request wrote to each stream. */
|
|
2
|
+
export type CapturedStdio = {
|
|
3
|
+
stdout: string[];
|
|
4
|
+
stderr: string[];
|
|
5
|
+
};
|
|
6
|
+
/** Handle returned by {@link installStdioCapture}. */
|
|
7
|
+
export type StdioCapture = {
|
|
8
|
+
/**
|
|
9
|
+
* Run `body` with its stdout/stderr redirected into `sink`.
|
|
10
|
+
*
|
|
11
|
+
* The sink travels with the async context, not with wall-clock time: a command that
|
|
12
|
+
* outlives its watchdog keeps writing into its own (already abandoned) sink instead of
|
|
13
|
+
* corrupting whichever request is running by then.
|
|
14
|
+
*/
|
|
15
|
+
run: <T>(sink: CapturedStdio, body: () => Promise<T>) => Promise<T>;
|
|
16
|
+
/** Write straight to the real stdout, past the capture. Used for the JSONL responses themselves. */
|
|
17
|
+
writeStdout: (text: string) => void;
|
|
18
|
+
/** Restore the original stream writers. */
|
|
19
|
+
restore: () => void;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Redirect every stdout write made inside a request into that request's own buffer.
|
|
23
|
+
*
|
|
24
|
+
* The session's contract is that stdout carries nothing but its JSONL responses, and the
|
|
25
|
+
* ~200 commands it dispatches all reach stdout through their own `Output` closures — plus a
|
|
26
|
+
* handful of direct `process.stdout.write` calls. Patching the stream is what makes that
|
|
27
|
+
* contract hold for all of them at once, including plugin commands this file has never seen.
|
|
28
|
+
*
|
|
29
|
+
* stderr is captured *and* mirrored: the response carries it so a host can report a failure
|
|
30
|
+
* without a second channel, and a human tailing the session's stderr still sees it live.
|
|
31
|
+
*/
|
|
32
|
+
export declare const installStdioCapture: () => StdioCapture;
|
|
33
|
+
//# sourceMappingURL=stdioCapture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdioCapture.d.ts","sourceRoot":"","sources":["../../src/session/stdioCapture.ts"],"names":[],"mappings":"AAEA,kDAAkD;AAClD,MAAM,MAAM,aAAa,GAAG;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;CAChB,CAAA;AAED,sDAAsD;AACtD,MAAM,MAAM,YAAY,GAAG;IAC1B;;;;;;OAMG;IACH,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACnE,oGAAoG;IACpG,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAA;CACnB,CAAA;AAOD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,QAAO,YAkBtC,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
/**
|
|
3
|
+
* Redirect every stdout write made inside a request into that request's own buffer.
|
|
4
|
+
*
|
|
5
|
+
* The session's contract is that stdout carries nothing but its JSONL responses, and the
|
|
6
|
+
* ~200 commands it dispatches all reach stdout through their own `Output` closures — plus a
|
|
7
|
+
* handful of direct `process.stdout.write` calls. Patching the stream is what makes that
|
|
8
|
+
* contract hold for all of them at once, including plugin commands this file has never seen.
|
|
9
|
+
*
|
|
10
|
+
* stderr is captured *and* mirrored: the response carries it so a host can report a failure
|
|
11
|
+
* without a second channel, and a human tailing the session's stderr still sees it live.
|
|
12
|
+
*/
|
|
13
|
+
export const installStdioCapture = () => {
|
|
14
|
+
const storage = new AsyncLocalStorage();
|
|
15
|
+
const originalStdoutWrite = process.stdout.write.bind(process.stdout);
|
|
16
|
+
const originalStderrWrite = process.stderr.write.bind(process.stderr);
|
|
17
|
+
process.stdout.write = createCapturingWrite(storage, originalStdoutWrite, (sink) => sink.stdout, false);
|
|
18
|
+
process.stderr.write = createCapturingWrite(storage, originalStderrWrite, (sink) => sink.stderr, true);
|
|
19
|
+
return {
|
|
20
|
+
run: (sink, body) => storage.run(sink, body),
|
|
21
|
+
writeStdout: (text) => {
|
|
22
|
+
originalStdoutWrite(text);
|
|
23
|
+
},
|
|
24
|
+
restore: () => {
|
|
25
|
+
process.stdout.write = originalStdoutWrite;
|
|
26
|
+
process.stderr.write = originalStderrWrite;
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
const createCapturingWrite = (storage, original, select, mirror) => {
|
|
31
|
+
const forward = original;
|
|
32
|
+
return ((chunk, encoding, callback) => {
|
|
33
|
+
const sink = storage.getStore();
|
|
34
|
+
if (!sink) {
|
|
35
|
+
return forward(chunk, encoding, callback);
|
|
36
|
+
}
|
|
37
|
+
select(sink).push(decodeChunk(chunk, encoding));
|
|
38
|
+
if (mirror) {
|
|
39
|
+
forward(chunk, encoding);
|
|
40
|
+
}
|
|
41
|
+
const done = typeof encoding === 'function' ? encoding : callback;
|
|
42
|
+
if (typeof done === 'function') {
|
|
43
|
+
;
|
|
44
|
+
done();
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
const decodeChunk = (chunk, encoding) => {
|
|
50
|
+
if (typeof chunk === 'string') {
|
|
51
|
+
return chunk;
|
|
52
|
+
}
|
|
53
|
+
const bufferEncoding = typeof encoding === 'string' ? encoding : 'utf8';
|
|
54
|
+
return Buffer.from(chunk).toString(bufferEncoding);
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=stdioCapture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdioCapture.js","sourceRoot":"","sources":["../../src/session/stdioCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AA6BpD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAiB,EAAE;IACrD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAiB,CAAA;IACtD,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAgB,CAAA;IACpF,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAgB,CAAA;IAEpF,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACvG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAEtG,OAAO;QACN,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;QAC5C,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAA;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAA;QAC3C,CAAC;KACD,CAAA;AACF,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAC5B,OAAyC,EACzC,QAAqB,EACrB,MAAyC,EACzC,MAAe,EACD,EAAE;IAChB,MAAM,OAAO,GAAG,QAAsB,CAAA;IAEtC,OAAO,CAAC,CAAC,KAA0B,EAAE,QAAkB,EAAE,QAAkB,EAAW,EAAE;QACvF,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC/C,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACzB,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;QACjE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAChC,CAAC;YAAC,IAAmB,EAAE,CAAA;QACxB,CAAC;QACD,OAAO,IAAI,CAAA;IACZ,CAAC,CAAgB,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,KAA0B,EAAE,QAAiB,EAAU,EAAE;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAA;IACb,CAAC;IACD,MAAM,cAAc,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,QAA2B,CAAC,CAAC,CAAC,MAAM,CAAA;IAC3F,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;AACnD,CAAC,CAAA"}
|
|
@@ -155,6 +155,34 @@ For deeper command lists, use [INSPECT.md](./reference/INSPECT.md). For screensh
|
|
|
155
155
|
|
|
156
156
|
---
|
|
157
157
|
|
|
158
|
+
## Session Transport (Many Commands, One Process)
|
|
159
|
+
|
|
160
|
+
Use this when a harness drives a page through many sequential steps. One-shot `argus` pays Node
|
|
161
|
+
startup plus watcher discovery (~100-200ms) per command; `argus session` pays it once and then
|
|
162
|
+
serves JSONL requests on stdin.
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
argus session app
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
```json
|
|
169
|
+
{"id": 1, "cmd": "eval", "args": {"expression": "location.href"}}
|
|
170
|
+
{"id": 2, "cmd": "click", "args": {"selector": "button.start"}}
|
|
171
|
+
{"id": 3, "cmd": "quit"}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Responses are one JSON line each, correlated by `id`, carrying the same payload the matching
|
|
175
|
+
`--json` command prints: `{"id": 1, "ok": true, "result": {…}, "durationMs": 8}`. Failures answer
|
|
176
|
+
`ok: false` and the session stays alive. stdout is JSONL only; human output goes to stderr.
|
|
177
|
+
|
|
178
|
+
Daemons (`start`, `chrome start`, `watcher start`), stream tails (`logs tail`, `net tail`,
|
|
179
|
+
`net sse`), and anything reading `--stdin` are refused — run those as their own process.
|
|
180
|
+
|
|
181
|
+
Read [SESSION.md](./reference/SESSION.md) for the full request/response schema, timeout and
|
|
182
|
+
watcher-loss semantics, and a host sketch.
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
158
186
|
## CDP Quick Start
|
|
159
187
|
|
|
160
188
|
Use CDP for local apps and clean repros where a temp/debuggable browser is acceptable.
|
|
@@ -226,3 +254,4 @@ Never treat whole-export row indexes as physical sheet rows: `exportRow` is only
|
|
|
226
254
|
- [INJECT.md](./reference/INJECT.md) — Script injection on watcher attach/navigation.
|
|
227
255
|
- [DIALOG.md](./reference/DIALOG.md) — Browser dialog status and handling.
|
|
228
256
|
- [PLUGINS.md](./reference/PLUGINS.md) — CLI plugin loading and Google Sheets plugin.
|
|
257
|
+
- [SESSION.md](./reference/SESSION.md) — Long-lived JSONL session transport for automation harnesses.
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Session Transport
|
|
2
|
+
|
|
3
|
+
`argus session` serves many commands from one process over stdin/stdout. Use it when a harness
|
|
4
|
+
issues dozens of sequential commands against the same watcher: each one-shot `argus` invocation
|
|
5
|
+
pays Node startup plus watcher discovery (~100-200ms), and the session pays it once.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
argus session app
|
|
9
|
+
argus session app --request-timeout 30s
|
|
10
|
+
argus session app --reconnect
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The watcher id is resolved once and pinned. Every request runs the same Commander action the
|
|
14
|
+
one-shot CLI would run, with `--json` forced on, so payloads match `argus <cmd> --json` byte for
|
|
15
|
+
byte and a host can switch transports without changing how it parses results.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Framing
|
|
20
|
+
|
|
21
|
+
stdin takes one JSON object per line; stdout answers with one JSON object per line and nothing
|
|
22
|
+
else. Human output goes to stderr.
|
|
23
|
+
|
|
24
|
+
The first line is written before any request is read:
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{ "type": "ready", "protocolVersion": 1, "argusVersion": "0.4.0", "watcher": { "id": "app", "host": "127.0.0.1", "port": 51733 } }
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Request
|
|
31
|
+
|
|
32
|
+
| Field | Type | Notes |
|
|
33
|
+
| --------- | ---------------- | ------------------------------------------------------------------ |
|
|
34
|
+
| `id` | string \| number | Optional; echoed on the response. Omit only if you match by order. |
|
|
35
|
+
| `cmd` | string | Command path, space-separated. Aliases work (`js`, `ext`, `wait`). |
|
|
36
|
+
| `args` | object | Named arguments. Mutually exclusive with `argv`. |
|
|
37
|
+
| `argv` | string[] | Raw CLI tokens. Mutually exclusive with `args`. |
|
|
38
|
+
| `timeout` | string \| number | Per-request watchdog (`"30s"`, or milliseconds). `0` disables. |
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{"id": 1, "cmd": "eval", "args": {"expression": "location.href"}}
|
|
42
|
+
{"id": 2, "cmd": "eval-until", "args": {"expression": "window.APP_READY", "totalTimeout": "30s"}}
|
|
43
|
+
{"id": 3, "cmd": "click", "args": {"selector": "button.submit"}}
|
|
44
|
+
{"id": 4, "cmd": "drag", "argv": ["--selector", "canvas", "--pos", "320,240", "--by", "80,-30"]}
|
|
45
|
+
{"id": 5, "cmd": "screenshot", "args": {"out": "./shot.png"}}
|
|
46
|
+
{"id": 6, "cmd": "dom tree", "args": {"selector": "body", "depth": 2}}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`args` keys are resolved against the command's own definition, so anything the CLI accepts is
|
|
50
|
+
reachable:
|
|
51
|
+
|
|
52
|
+
- **Options** match by camelCase name, long flag, or short flag: `totalTimeout`, `total-timeout`,
|
|
53
|
+
and `q` all work.
|
|
54
|
+
- **Positional arguments** match by their declared name (`key`/`value` for `storage local set`,
|
|
55
|
+
`role` for `locate role`) and are filled in declaration order. The leading watcher id is
|
|
56
|
+
injected for you.
|
|
57
|
+
- **An option wins over a positional of the same name.** `{"expression": "…"}` on `eval` becomes
|
|
58
|
+
`--expression`, the spelling the CLI already documents as equivalent to the positional.
|
|
59
|
+
- **Repeatable options** take an array: `{"arg": ["level=10", "mode=fast"]}`.
|
|
60
|
+
- **Switches** take a boolean: `{"all": true}`, `{"await": false}` (which sends `--no-await`).
|
|
61
|
+
|
|
62
|
+
### Response
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{"id": 1, "ok": true, "result": {"ok": true, "result": "https://app.example/", "type": "string", "exception": null}, "durationMs": 8}
|
|
66
|
+
{"id": 2, "ok": false, "error": {"message": "Total timeout exceeded (30s)", "code": "session_command_failed"}, "exitCode": 1, "durationMs": 30014}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- `result` is the command's `--json` document. A command that streams newline-delimited JSON
|
|
70
|
+
(`eval --interval`) yields an array plus `"stream": true`; output that is not JSON at all comes
|
|
71
|
+
back verbatim as a string plus `"raw": true`.
|
|
72
|
+
- `stderr` is present when the command wrote any, on success or failure. It is also mirrored to
|
|
73
|
+
the session's own stderr, so a human tailing the process still sees it live.
|
|
74
|
+
- `durationMs` is the wall-clock time the CLI spent on the request.
|
|
75
|
+
|
|
76
|
+
### Control requests
|
|
77
|
+
|
|
78
|
+
| `cmd` | Effect |
|
|
79
|
+
| ------ | ------------------------------------------------------------ |
|
|
80
|
+
| `ping` | Answers `{"pong": true, "watcher": "<id>"}` without any I/O. |
|
|
81
|
+
| `quit` | Answers, then closes the session with exit code 0. |
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Semantics
|
|
86
|
+
|
|
87
|
+
**Ordering.** Requests are served strictly in submission order. Pipelining still pays off — the
|
|
88
|
+
host can keep writing while a command is in flight — but responses arrive in the order the
|
|
89
|
+
requests did.
|
|
90
|
+
|
|
91
|
+
**Timeouts.** A request that outlives its watchdog is answered with `session_request_timeout` and
|
|
92
|
+
the session moves on. The abandoned command keeps its own output buffer, so nothing it writes
|
|
93
|
+
later can land in a later response.
|
|
94
|
+
|
|
95
|
+
**Error isolation.** A malformed line, an unknown command, or a failing command answers
|
|
96
|
+
`ok: false` and the session stays up. The `error.code` values specific to this transport are
|
|
97
|
+
`session_invalid_request`, `session_unknown_command`, `session_command_rejected`,
|
|
98
|
+
`session_request_timeout`, and `session_command_failed`; a watcher-side failure carries its own
|
|
99
|
+
code through unchanged.
|
|
100
|
+
|
|
101
|
+
**Watcher loss.** By default the session is fail-fast: after a failed request it probes the
|
|
102
|
+
watcher, and if the watcher is gone it writes a notice to stderr and exits `1`. Pass `--reconnect`
|
|
103
|
+
to keep it alive instead — every request re-resolves the id through the registry, so a watcher
|
|
104
|
+
restarted under the same id (even on a new port) is picked up on the next request.
|
|
105
|
+
|
|
106
|
+
**Shutdown.** `{"cmd": "quit"}` or EOF on stdin exits `0`. Requests still queued on stdin when the
|
|
107
|
+
session exits — after a `quit`, or after watcher loss — are not answered; fail them on the host
|
|
108
|
+
side when the process exits.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Not available in a session
|
|
113
|
+
|
|
114
|
+
Commands that never return on their own, or that would read the stream the transport owns, are
|
|
115
|
+
refused with `session_command_rejected`:
|
|
116
|
+
|
|
117
|
+
- `start`, `chrome start`, `watcher start`, `watcher native-host` — daemons; run them as their own
|
|
118
|
+
process and point the session at the resulting watcher.
|
|
119
|
+
- `logs tail`, `net tail`, `net sse` — stream until interrupted.
|
|
120
|
+
- `session` — no nesting.
|
|
121
|
+
- Any request carrying `--stdin` or a `-` expression. Use `--file` or an inline expression.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Host sketch
|
|
126
|
+
|
|
127
|
+
```js
|
|
128
|
+
import { spawn } from 'node:child_process'
|
|
129
|
+
import readline from 'node:readline'
|
|
130
|
+
|
|
131
|
+
const proc = spawn('argus', ['session', 'app'], { stdio: ['pipe', 'pipe', 'inherit'] })
|
|
132
|
+
const lines = readline.createInterface({ input: proc.stdout })
|
|
133
|
+
const pending = new Map()
|
|
134
|
+
let nextId = 0
|
|
135
|
+
|
|
136
|
+
lines.on('line', (line) => {
|
|
137
|
+
const message = JSON.parse(line)
|
|
138
|
+
if (message.type === 'ready') return
|
|
139
|
+
pending.get(message.id)?.(message)
|
|
140
|
+
pending.delete(message.id)
|
|
141
|
+
})
|
|
142
|
+
|
|
143
|
+
const run = (cmd, args) =>
|
|
144
|
+
new Promise((resolve) => {
|
|
145
|
+
const id = ++nextId
|
|
146
|
+
pending.set(id, resolve)
|
|
147
|
+
proc.stdin.write(`${JSON.stringify({ id, cmd, args })}\n`)
|
|
148
|
+
})
|
|
149
|
+
|
|
150
|
+
await run('eval-until', { expression: 'window.APP_READY', totalTimeout: '30s' })
|
|
151
|
+
await run('click', { selector: 'button.start' })
|
|
152
|
+
proc.stdin.end()
|
|
153
|
+
```
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import type { MatchCase, NetQuery } from '@vforsh/argus-core';
|
|
2
|
+
import { normalizeMatchPatterns } from '@vforsh/argus-core';
|
|
3
|
+
export { normalizeMatchPatterns };
|
|
1
4
|
type MatchCaseOptions = {
|
|
2
5
|
ignoreCase?: boolean;
|
|
3
6
|
caseSensitive?: boolean;
|
|
@@ -23,7 +26,8 @@ export declare const appendLogFilterParams: (params: URLSearchParams, options: {
|
|
|
23
26
|
}) => {
|
|
24
27
|
error?: string;
|
|
25
28
|
};
|
|
26
|
-
|
|
29
|
+
/** CLI-facing shape of the network filter flags, before validation. */
|
|
30
|
+
export type NetFilterCliOptions = {
|
|
27
31
|
grep?: string;
|
|
28
32
|
host?: string[];
|
|
29
33
|
method?: string[];
|
|
@@ -32,21 +36,19 @@ export declare const appendNetFilterParams: (params: URLSearchParams, options: {
|
|
|
32
36
|
mime?: string[];
|
|
33
37
|
scope?: string;
|
|
34
38
|
frame?: string;
|
|
35
|
-
party?:
|
|
39
|
+
party?: NetQuery['party'];
|
|
36
40
|
failedOnly?: boolean;
|
|
37
41
|
minDurationMs?: number;
|
|
38
42
|
minTransferBytes?: number;
|
|
39
|
-
}
|
|
43
|
+
};
|
|
44
|
+
export declare const appendNetFilterParams: (params: URLSearchParams, options: NetFilterCliOptions) => {
|
|
45
|
+
error?: string;
|
|
46
|
+
};
|
|
40
47
|
export declare const appendNetIgnoreParams: (params: URLSearchParams, options: {
|
|
41
48
|
ignoreHost?: string[];
|
|
42
49
|
ignorePattern?: string[];
|
|
43
50
|
}) => {
|
|
44
51
|
error?: string;
|
|
45
52
|
};
|
|
46
|
-
export declare const
|
|
47
|
-
patterns: string[];
|
|
48
|
-
error?: string;
|
|
49
|
-
};
|
|
50
|
-
export declare const resolveMatchCase: (options: MatchCaseOptions) => "sensitive" | "insensitive" | undefined;
|
|
51
|
-
export {};
|
|
53
|
+
export declare const resolveMatchCase: (options: MatchCaseOptions) => MatchCase | undefined;
|
|
52
54
|
//# sourceMappingURL=queryParams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryParams.d.ts","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queryParams.d.ts","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,SAAS,EAAE,QAAQ,EAAwB,MAAM,oBAAoB,CAAA;AAC9F,OAAO,EAAc,sBAAsB,EAAwD,MAAM,oBAAoB,CAAA;AAG7H,OAAO,EAAE,sBAAsB,EAAE,CAAA;AAEjC,KAAK,gBAAgB,GAAG;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAkBD,eAAO,MAAM,sBAAsB,GAAI,QAAQ,eAAe,EAAE,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,IAMlI,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,QAAQ,eAAe,EAAE,QAAQ,MAAM,KAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAQ1F,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,KAAG;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAW9F,CAAA;AAED,eAAO,MAAM,qBAAqB,GACjC,QAAQ,eAAe,EACvB,SAAS;IACR,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,KACC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAclB,CAAA;AAED,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAAG;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,eAAe,EAAE,SAAS,mBAAmB,KAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAsB7G,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,eAAe,EAAE,SAAS;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAa7I,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,gBAAgB,KAAG,SAAS,GAAG,SAQxE,CAAA"}
|
|
@@ -1,26 +1,34 @@
|
|
|
1
|
-
import { normalizeQueryValue,
|
|
2
|
-
import {
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { NET_SCOPES, normalizeMatchPatterns, normalizeQueryValue, parseDurationMs, toSearchParams } from '@vforsh/argus-core';
|
|
2
|
+
import { parseNumber } from '../cli/parse.js';
|
|
3
|
+
export { normalizeMatchPatterns };
|
|
4
|
+
/**
|
|
5
|
+
* Serialize a typed query fragment into an existing `URLSearchParams`.
|
|
6
|
+
*
|
|
7
|
+
* Callers layer route-specific params (`timeoutMs`, `part`, …) around these fragments, so each
|
|
8
|
+
* key is replaced rather than appended to — repeated values within one fragment still stack.
|
|
9
|
+
*/
|
|
10
|
+
const applyQuery = (params, query) => {
|
|
11
|
+
const serialized = toSearchParams(query);
|
|
12
|
+
for (const key of new Set(serialized.keys())) {
|
|
13
|
+
params.delete(key);
|
|
14
|
+
for (const value of serialized.getAll(key)) {
|
|
15
|
+
params.append(key, value);
|
|
16
|
+
}
|
|
13
17
|
}
|
|
14
18
|
};
|
|
19
|
+
export const appendAfterLimitParams = (params, options) => {
|
|
20
|
+
applyQuery(params, {
|
|
21
|
+
after: options.after,
|
|
22
|
+
sinceEpoch: options.sinceEpoch,
|
|
23
|
+
limit: parseNumber(options.limit),
|
|
24
|
+
});
|
|
25
|
+
};
|
|
15
26
|
export const appendSinceParam = (params, since) => {
|
|
16
27
|
const resolved = resolveSinceTimestamp(since);
|
|
17
28
|
if (resolved.error) {
|
|
18
29
|
return resolved;
|
|
19
30
|
}
|
|
20
|
-
|
|
21
|
-
return {};
|
|
22
|
-
}
|
|
23
|
-
params.set('sinceTs', String(resolved.sinceTs));
|
|
31
|
+
applyQuery(params, { sinceTs: resolved.sinceTs ?? undefined });
|
|
24
32
|
return {};
|
|
25
33
|
};
|
|
26
34
|
export const resolveSinceTimestamp = (since) => {
|
|
@@ -34,84 +42,51 @@ export const resolveSinceTimestamp = (since) => {
|
|
|
34
42
|
return { sinceTs: Date.now() - duration };
|
|
35
43
|
};
|
|
36
44
|
export const appendLogFilterParams = (params, options) => {
|
|
37
|
-
if (options.levels) {
|
|
38
|
-
params.set('levels', options.levels);
|
|
39
|
-
}
|
|
40
45
|
const normalizedMatch = normalizeMatchPatterns(options.match);
|
|
41
46
|
if (normalizedMatch.error) {
|
|
42
|
-
return
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
const source = normalizeQueryValue(options.source);
|
|
52
|
-
if (source) {
|
|
53
|
-
params.set('source', source);
|
|
54
|
-
}
|
|
47
|
+
return { error: 'Invalid --match value: empty pattern.' };
|
|
48
|
+
}
|
|
49
|
+
applyQuery(params, {
|
|
50
|
+
levels: options.levels,
|
|
51
|
+
match: normalizedMatch.patterns,
|
|
52
|
+
matchCase: resolveMatchCase(options),
|
|
53
|
+
source: options.source,
|
|
54
|
+
});
|
|
55
55
|
return {};
|
|
56
56
|
};
|
|
57
57
|
export const appendNetFilterParams = (params, options) => {
|
|
58
|
-
const
|
|
59
|
-
if (
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
if (options.failedOnly) {
|
|
79
|
-
params.set('failedOnly', '1');
|
|
80
|
-
}
|
|
81
|
-
if (options.minDurationMs != null) {
|
|
82
|
-
params.set('minDurationMs', String(options.minDurationMs));
|
|
83
|
-
}
|
|
84
|
-
if (options.minTransferBytes != null) {
|
|
85
|
-
params.set('minTransferBytes', String(options.minTransferBytes));
|
|
86
|
-
}
|
|
58
|
+
const scope = resolveNetScope(options.scope);
|
|
59
|
+
if (scope.error) {
|
|
60
|
+
return scope;
|
|
61
|
+
}
|
|
62
|
+
applyQuery(params, {
|
|
63
|
+
grep: options.grep,
|
|
64
|
+
host: options.host,
|
|
65
|
+
method: options.method,
|
|
66
|
+
status: options.status,
|
|
67
|
+
resourceType: options.resourceType,
|
|
68
|
+
mime: options.mime,
|
|
69
|
+
scope: scope.value,
|
|
70
|
+
frame: options.frame,
|
|
71
|
+
party: options.party,
|
|
72
|
+
failedOnly: options.failedOnly,
|
|
73
|
+
minDurationMs: options.minDurationMs,
|
|
74
|
+
minTransferBytes: options.minTransferBytes,
|
|
75
|
+
});
|
|
76
|
+
return {};
|
|
87
77
|
};
|
|
88
78
|
export const appendNetIgnoreParams = (params, options) => {
|
|
89
79
|
const hosts = normalizeRepeatedValues(options.ignoreHost);
|
|
90
80
|
if (hosts.error) {
|
|
91
81
|
return hosts;
|
|
92
82
|
}
|
|
93
|
-
for (const value of hosts.values) {
|
|
94
|
-
params.append('ignoreHost', value);
|
|
95
|
-
}
|
|
96
83
|
const patterns = normalizeRepeatedValues(options.ignorePattern);
|
|
97
84
|
if (patterns.error) {
|
|
98
85
|
return patterns;
|
|
99
86
|
}
|
|
100
|
-
|
|
101
|
-
params.append('ignorePattern', value);
|
|
102
|
-
}
|
|
87
|
+
applyQuery(params, { ignoreHost: hosts.values, ignorePattern: patterns.values });
|
|
103
88
|
return {};
|
|
104
89
|
};
|
|
105
|
-
export const normalizeMatchPatterns = (match) => {
|
|
106
|
-
if (!match || match.length === 0) {
|
|
107
|
-
return { patterns: [] };
|
|
108
|
-
}
|
|
109
|
-
const patterns = match.map((value) => value.trim());
|
|
110
|
-
if (patterns.some((value) => value.length === 0)) {
|
|
111
|
-
return { patterns: [], error: 'Invalid --match value: empty pattern.' };
|
|
112
|
-
}
|
|
113
|
-
return { patterns };
|
|
114
|
-
};
|
|
115
90
|
export const resolveMatchCase = (options) => {
|
|
116
91
|
if (options.caseSensitive) {
|
|
117
92
|
return 'sensitive';
|
|
@@ -121,6 +96,17 @@ export const resolveMatchCase = (options) => {
|
|
|
121
96
|
}
|
|
122
97
|
return undefined;
|
|
123
98
|
};
|
|
99
|
+
/** Reject an unknown `--scope` here rather than round-tripping it to the watcher for a 400. */
|
|
100
|
+
const resolveNetScope = (value) => {
|
|
101
|
+
const normalized = normalizeQueryValue(value);
|
|
102
|
+
if (!normalized) {
|
|
103
|
+
return {};
|
|
104
|
+
}
|
|
105
|
+
if (!NET_SCOPES.includes(normalized)) {
|
|
106
|
+
return { error: `Invalid --scope value: ${value}. Expected one of: ${NET_SCOPES.join(', ')}.` };
|
|
107
|
+
}
|
|
108
|
+
return { value: normalized };
|
|
109
|
+
};
|
|
124
110
|
const normalizeRepeatedValues = (values) => {
|
|
125
111
|
if (!values || values.length === 0) {
|
|
126
112
|
return { values: [] };
|
|
@@ -131,13 +117,4 @@ const normalizeRepeatedValues = (values) => {
|
|
|
131
117
|
}
|
|
132
118
|
return { values: normalized };
|
|
133
119
|
};
|
|
134
|
-
const appendRepeatedParams = (params, key, values) => {
|
|
135
|
-
const normalized = normalizeRepeatedValues(values);
|
|
136
|
-
if (normalized.error) {
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
for (const value of normalized.values) {
|
|
140
|
-
params.append(key, value);
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
120
|
//# sourceMappingURL=queryParams.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryParams.js","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queryParams.js","sourceRoot":"","sources":["../../src/watchers/queryParams.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,15 @@
|
|
|
1
|
+
import type { ArgusWatcherRequestError, ArgusWatcherRequestInput, ArgusWatcherRequestResult, ArgusWatcherRequestSuccess } from '@vforsh/argus-plugin-api';
|
|
1
2
|
import type { ErrorResponse, WatcherRecord } from '@vforsh/argus-core';
|
|
3
|
+
import { buildWatcherUrl, formatWatcherTransportError } from '@vforsh/argus-core';
|
|
2
4
|
import type { Output } from '../output/io.js';
|
|
3
|
-
import type { HttpOptions } from '../httpClient.js';
|
|
4
5
|
/** Input for a one-shot watcher request. */
|
|
5
|
-
export type WatcherRequestInput =
|
|
6
|
-
id?: string;
|
|
7
|
-
path: string;
|
|
8
|
-
query?: URLSearchParams;
|
|
9
|
-
method?: HttpOptions['method'];
|
|
10
|
-
body?: unknown;
|
|
11
|
-
timeoutMs?: number;
|
|
12
|
-
returnErrorResponse?: boolean;
|
|
13
|
-
};
|
|
6
|
+
export type WatcherRequestInput = ArgusWatcherRequestInput;
|
|
14
7
|
/** Successful watcher request. */
|
|
15
|
-
export type WatcherRequestSuccess<T> =
|
|
16
|
-
ok: true;
|
|
17
|
-
watcher: WatcherRecord;
|
|
18
|
-
data: T;
|
|
19
|
-
};
|
|
8
|
+
export type WatcherRequestSuccess<T> = ArgusWatcherRequestSuccess<T>;
|
|
20
9
|
/** Failed watcher request (resolve failure or transport error). */
|
|
21
|
-
export type WatcherRequestError =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
exitCode: number;
|
|
25
|
-
message: string;
|
|
26
|
-
candidates?: WatcherRecord[];
|
|
27
|
-
};
|
|
28
|
-
export type WatcherRequestResult<T> = WatcherRequestSuccess<T> | WatcherRequestError;
|
|
29
|
-
export declare const buildWatcherUrl: (watcher: Pick<WatcherRecord, "host" | "port">, path: string, query?: URLSearchParams) => string;
|
|
30
|
-
export declare const formatWatcherTransportError: (watcher: Pick<WatcherRecord, "id">, error: unknown) => string;
|
|
10
|
+
export type WatcherRequestError = ArgusWatcherRequestError;
|
|
11
|
+
export type WatcherRequestResult<T> = ArgusWatcherRequestResult<T>;
|
|
12
|
+
export { buildWatcherUrl, formatWatcherTransportError };
|
|
31
13
|
export declare function fetchWatcherJson<T>(watcher: Pick<WatcherRecord, 'host' | 'port'>, input: Omit<WatcherRequestInput, 'id'>): Promise<T>;
|
|
32
14
|
/**
|
|
33
15
|
* Resolve a watcher, build a URL, and fetch JSON in one call.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestWatcher.d.ts","sourceRoot":"","sources":["../../src/watchers/requestWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"requestWatcher.d.ts","sourceRoot":"","sources":["../../src/watchers/requestWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAa,MAAM,oBAAoB,CAAA;AACjF,OAAO,EACN,eAAe,EAEf,2BAA2B,EAG3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAa7C,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,CAAA;AAE1D,kCAAkC;AAClC,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAA;AAEpE,mEAAmE;AACnE,MAAM,MAAM,mBAAmB,GAAG,wBAAwB,CAAA;AAE1D,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAA;AAIlE,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,CAAA;AAEvD,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO3I;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CA8BxG;AAMD,+GAA+G;AAC/G,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CAAC,CAO7H;AAMD,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CASnF;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOhF;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,EAChE,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,CAoBrD"}
|