@vforsh/argus-watcher 0.3.0 → 0.4.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/artifacts.d.ts +9 -5
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +22 -6
- package/dist/artifacts.js.map +1 -1
- package/dist/buffer/LogBuffer.d.ts +14 -10
- package/dist/buffer/LogBuffer.d.ts.map +1 -1
- package/dist/buffer/LogBuffer.js +15 -40
- package/dist/buffer/LogBuffer.js.map +1 -1
- package/dist/buffer/NetBuffer.d.ts +0 -6
- package/dist/buffer/NetBuffer.d.ts.map +1 -1
- package/dist/buffer/NetBuffer.js +0 -12
- package/dist/buffer/NetBuffer.js.map +1 -1
- package/dist/cdp/accessibility.d.ts.map +1 -1
- package/dist/cdp/accessibility.js +4 -4
- package/dist/cdp/accessibility.js.map +1 -1
- package/dist/cdp/authCookieShapes.d.ts +26 -0
- package/dist/cdp/authCookieShapes.d.ts.map +1 -0
- package/dist/cdp/authCookieShapes.js +41 -0
- package/dist/cdp/authCookieShapes.js.map +1 -0
- package/dist/cdp/{auth.d.ts → authCookies.d.ts} +11 -15
- package/dist/cdp/authCookies.d.ts.map +1 -0
- package/dist/cdp/authCookies.js +186 -0
- package/dist/cdp/authCookies.js.map +1 -0
- package/dist/cdp/authPageState.d.ts +28 -0
- package/dist/cdp/authPageState.d.ts.map +1 -0
- package/dist/cdp/authPageState.js +62 -0
- package/dist/cdp/authPageState.js.map +1 -0
- package/dist/cdp/authSnapshot.d.ts +16 -0
- package/dist/cdp/authSnapshot.d.ts.map +1 -0
- package/dist/cdp/authSnapshot.js +47 -0
- package/dist/cdp/authSnapshot.js.map +1 -0
- package/dist/cdp/browserCookies.d.ts.map +1 -1
- package/dist/cdp/browserCookies.js +18 -111
- package/dist/cdp/browserCookies.js.map +1 -1
- package/dist/cdp/cdpValues.d.ts +12 -0
- package/dist/cdp/cdpValues.d.ts.map +1 -0
- package/dist/cdp/cdpValues.js +18 -0
- package/dist/cdp/cdpValues.js.map +1 -0
- package/dist/cdp/connection.d.ts +42 -6
- package/dist/cdp/connection.d.ts.map +1 -1
- package/dist/cdp/connection.js +57 -5
- package/dist/cdp/connection.js.map +1 -1
- package/dist/cdp/dom/info.d.ts.map +1 -1
- package/dist/cdp/dom/info.js +3 -3
- package/dist/cdp/dom/info.js.map +1 -1
- package/dist/cdp/dom/mutate.d.ts +109 -0
- package/dist/cdp/dom/mutate.d.ts.map +1 -0
- package/dist/cdp/dom/mutate.js +174 -0
- package/dist/cdp/dom/mutate.js.map +1 -0
- package/dist/cdp/dom/selector.d.ts +1 -1
- package/dist/cdp/dom/selector.d.ts.map +1 -1
- package/dist/cdp/dom/selector.js +10 -10
- package/dist/cdp/dom/selector.js.map +1 -1
- package/dist/cdp/dom/tree.js +2 -2
- package/dist/cdp/dom/tree.js.map +1 -1
- package/dist/cdp/dom.d.ts +2 -10
- package/dist/cdp/dom.d.ts.map +1 -1
- package/dist/cdp/dom.js +1 -5
- package/dist/cdp/dom.js.map +1 -1
- package/dist/cdp/editor.d.ts +36 -0
- package/dist/cdp/editor.d.ts.map +1 -1
- package/dist/cdp/editor.js +32 -5
- package/dist/cdp/editor.js.map +1 -1
- package/dist/cdp/eval.d.ts.map +1 -1
- package/dist/cdp/eval.js +18 -56
- package/dist/cdp/eval.js.map +1 -1
- package/dist/cdp/ffmpeg.d.ts +37 -0
- package/dist/cdp/ffmpeg.d.ts.map +1 -0
- package/dist/cdp/ffmpeg.js +98 -0
- package/dist/cdp/ffmpeg.js.map +1 -0
- package/dist/cdp/ignoreList.d.ts.map +1 -1
- package/dist/cdp/ignoreList.js +2 -1
- package/dist/cdp/ignoreList.js.map +1 -1
- package/dist/cdp/keyboard.d.ts.map +1 -1
- package/dist/cdp/keyboard.js +2 -3
- package/dist/cdp/keyboard.js.map +1 -1
- package/dist/cdp/locate.js +37 -2
- package/dist/cdp/locate.js.map +1 -1
- package/dist/cdp/mouse.d.ts.map +1 -1
- package/dist/cdp/mouse.js +15 -50
- package/dist/cdp/mouse.js.map +1 -1
- package/dist/cdp/networkBody.d.ts.map +1 -1
- package/dist/cdp/networkBody.js +8 -11
- package/dist/cdp/networkBody.js.map +1 -1
- package/dist/cdp/networkCapture.d.ts.map +1 -1
- package/dist/cdp/networkCapture.js +9 -18
- package/dist/cdp/networkCapture.js.map +1 -1
- package/dist/cdp/networkRealtimeCapture.d.ts.map +1 -1
- package/dist/cdp/networkRealtimeCapture.js +8 -17
- package/dist/cdp/networkRealtimeCapture.js.map +1 -1
- package/dist/cdp/pageIndicator.d.ts.map +1 -1
- package/dist/cdp/pageIndicator.js +4 -27
- package/dist/cdp/pageIndicator.js.map +1 -1
- package/dist/cdp/pageState.d.ts +66 -0
- package/dist/cdp/pageState.d.ts.map +1 -0
- package/dist/cdp/pageState.js +75 -0
- package/dist/cdp/pageState.js.map +1 -0
- package/dist/cdp/protocol.d.ts +630 -0
- package/dist/cdp/protocol.d.ts.map +1 -0
- package/dist/cdp/protocol.js +15 -0
- package/dist/cdp/protocol.js.map +1 -0
- package/dist/cdp/recording.d.ts.map +1 -1
- package/dist/cdp/recording.js +13 -127
- package/dist/cdp/recording.js.map +1 -1
- package/dist/cdp/redaction.d.ts +4 -1
- package/dist/cdp/redaction.d.ts.map +1 -1
- package/dist/cdp/redaction.js +4 -10
- package/dist/cdp/redaction.js.map +1 -1
- package/dist/cdp/remoteObject.d.ts +9 -3
- package/dist/cdp/remoteObject.d.ts.map +1 -1
- package/dist/cdp/remoteObject.js.map +1 -1
- package/dist/cdp/scenarioBridge.d.ts.map +1 -1
- package/dist/cdp/scenarioBridge.js +2 -2
- package/dist/cdp/scenarioBridge.js.map +1 -1
- package/dist/cdp/screenshot.js +2 -2
- package/dist/cdp/screenshot.js.map +1 -1
- package/dist/cdp/selectBestFrame.d.ts +8 -1
- package/dist/cdp/selectBestFrame.d.ts.map +1 -1
- package/dist/cdp/selectBestFrame.js +8 -3
- package/dist/cdp/selectBestFrame.js.map +1 -1
- package/dist/cdp/storage.d.ts.map +1 -1
- package/dist/cdp/storage.js +2 -11
- package/dist/cdp/storage.js.map +1 -1
- package/dist/cdp/text-filter.d.ts.map +1 -1
- package/dist/cdp/text-filter.js +2 -11
- package/dist/cdp/text-filter.js.map +1 -1
- package/dist/cdp/tracing.d.ts.map +1 -1
- package/dist/cdp/tracing.js +16 -39
- package/dist/cdp/tracing.js.map +1 -1
- package/dist/cdp/visualCapture.d.ts.map +1 -1
- package/dist/cdp/visualCapture.js +7 -9
- package/dist/cdp/visualCapture.js.map +1 -1
- package/dist/cdp/watcher.d.ts +2 -0
- package/dist/cdp/watcher.d.ts.map +1 -1
- package/dist/cdp/watcher.js +2 -10
- package/dist/cdp/watcher.js.map +1 -1
- package/dist/cdp/watcherEvents.d.ts +27 -3
- package/dist/cdp/watcherEvents.d.ts.map +1 -1
- package/dist/cdp/watcherEvents.js +46 -29
- package/dist/cdp/watcherEvents.js.map +1 -1
- package/dist/deferred.d.ts +14 -0
- package/dist/deferred.d.ts.map +1 -0
- package/dist/deferred.js +16 -0
- package/dist/deferred.js.map +1 -0
- package/dist/emulation/EmulationController.d.ts +7 -0
- package/dist/emulation/EmulationController.d.ts.map +1 -1
- package/dist/emulation/EmulationController.js +31 -75
- package/dist/emulation/EmulationController.js.map +1 -1
- package/dist/errors.d.ts +29 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +31 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +3 -52
- package/dist/events.d.ts.map +1 -1
- package/dist/http/endpoints.d.ts +54 -0
- package/dist/http/endpoints.d.ts.map +1 -0
- package/dist/http/endpoints.js +75 -0
- package/dist/http/endpoints.js.map +1 -0
- package/dist/http/httpUtils.d.ts +47 -3
- package/dist/http/httpUtils.d.ts.map +1 -1
- package/dist/http/httpUtils.js +75 -29
- package/dist/http/httpUtils.js.map +1 -1
- package/dist/http/router.js +2 -2
- package/dist/http/router.js.map +1 -1
- package/dist/http/routes/authCookies.d.ts.map +1 -1
- package/dist/http/routes/authCookies.js +7 -93
- package/dist/http/routes/authCookies.js.map +1 -1
- package/dist/http/routes/defineDomTargetRoute.d.ts +3 -5
- package/dist/http/routes/defineDomTargetRoute.d.ts.map +1 -1
- package/dist/http/routes/defineDomTargetRoute.js +2 -3
- package/dist/http/routes/defineDomTargetRoute.js.map +1 -1
- package/dist/http/routes/defineExtensionRoute.d.ts +30 -0
- package/dist/http/routes/defineExtensionRoute.d.ts.map +1 -0
- package/dist/http/routes/defineExtensionRoute.js +33 -0
- package/dist/http/routes/defineExtensionRoute.js.map +1 -0
- package/dist/http/routes/defineRoute.d.ts +8 -8
- package/dist/http/routes/defineRoute.d.ts.map +1 -1
- package/dist/http/routes/defineRoute.js +11 -13
- package/dist/http/routes/defineRoute.js.map +1 -1
- package/dist/http/routes/domSelectorRoute.d.ts.map +1 -1
- package/dist/http/routes/domSelectorRoute.js +4 -7
- package/dist/http/routes/domSelectorRoute.js.map +1 -1
- package/dist/http/routes/extensionTarget.d.ts +11 -0
- package/dist/http/routes/extensionTarget.d.ts.map +1 -0
- package/dist/http/routes/extensionTarget.js +8 -0
- package/dist/http/routes/extensionTarget.js.map +1 -0
- package/dist/http/routes/getAuthCookies.js +1 -1
- package/dist/http/routes/getAuthCookies.js.map +1 -1
- package/dist/http/routes/getAuthState.js +1 -1
- package/dist/http/routes/getAuthState.js.map +1 -1
- package/dist/http/routes/getExtensionDiagnostics.d.ts.map +1 -1
- package/dist/http/routes/getExtensionDiagnostics.js +5 -9
- package/dist/http/routes/getExtensionDiagnostics.js.map +1 -1
- package/dist/http/routes/getExtensionTabs.d.ts.map +1 -1
- package/dist/http/routes/getExtensionTabs.js +10 -16
- package/dist/http/routes/getExtensionTabs.js.map +1 -1
- package/dist/http/routes/getLogCursor.js +1 -1
- package/dist/http/routes/getLogCursor.js.map +1 -1
- package/dist/http/routes/getLogs.d.ts.map +1 -1
- package/dist/http/routes/getLogs.js +8 -8
- package/dist/http/routes/getLogs.js.map +1 -1
- package/dist/http/routes/getNet.js +2 -2
- package/dist/http/routes/getNet.js.map +1 -1
- package/dist/http/routes/getNetRequest.js +3 -3
- package/dist/http/routes/getNetRequest.js.map +1 -1
- package/dist/http/routes/getNetRequestBody.d.ts.map +1 -1
- package/dist/http/routes/getNetRequestBody.js +8 -7
- package/dist/http/routes/getNetRequestBody.js.map +1 -1
- package/dist/http/routes/getNetRequests.js +2 -2
- package/dist/http/routes/getNetRequests.js.map +1 -1
- package/dist/http/routes/getNetSse.js +2 -2
- package/dist/http/routes/getNetSse.js.map +1 -1
- package/dist/http/routes/getNetTail.d.ts.map +1 -1
- package/dist/http/routes/getNetTail.js +3 -3
- package/dist/http/routes/getNetTail.js.map +1 -1
- package/dist/http/routes/getNetWebSocketConnection.d.ts.map +1 -1
- package/dist/http/routes/getNetWebSocketConnection.js +8 -8
- package/dist/http/routes/getNetWebSocketConnection.js.map +1 -1
- package/dist/http/routes/getNetWebSockets.js +2 -2
- package/dist/http/routes/getNetWebSockets.js.map +1 -1
- package/dist/http/routes/getStatus.d.ts.map +1 -1
- package/dist/http/routes/getStatus.js +3 -0
- package/dist/http/routes/getStatus.js.map +1 -1
- package/dist/http/routes/getTail.js +7 -7
- package/dist/http/routes/getTail.js.map +1 -1
- package/dist/http/routes/getTargets.d.ts.map +1 -1
- package/dist/http/routes/getTargets.js +5 -10
- package/dist/http/routes/getTargets.js.map +1 -1
- package/dist/http/routes/logEpochQuery.d.ts +8 -1
- package/dist/http/routes/logEpochQuery.d.ts.map +1 -1
- package/dist/http/routes/logEpochQuery.js +18 -28
- package/dist/http/routes/logEpochQuery.js.map +1 -1
- package/dist/http/routes/netFilters.d.ts +10 -0
- package/dist/http/routes/netFilters.d.ts.map +1 -1
- package/dist/http/routes/netFilters.js +41 -28
- package/dist/http/routes/netFilters.js.map +1 -1
- package/dist/http/routes/netMock.d.ts.map +1 -1
- package/dist/http/routes/netMock.js +3 -116
- package/dist/http/routes/netMock.js.map +1 -1
- package/dist/http/routes/netRequestLookup.js +3 -13
- package/dist/http/routes/netRequestLookup.js.map +1 -1
- package/dist/http/routes/postAttach.d.ts.map +1 -1
- package/dist/http/routes/postAttach.js +8 -18
- package/dist/http/routes/postAttach.js.map +1 -1
- package/dist/http/routes/postAuthStateLoad.d.ts.map +1 -1
- package/dist/http/routes/postAuthStateLoad.js +2 -17
- package/dist/http/routes/postAuthStateLoad.js.map +1 -1
- package/dist/http/routes/postCodeEdit.d.ts.map +1 -1
- package/dist/http/routes/postCodeEdit.js +2 -10
- package/dist/http/routes/postCodeEdit.js.map +1 -1
- package/dist/http/routes/postCodeGrep.d.ts.map +1 -1
- package/dist/http/routes/postCodeGrep.js +2 -10
- package/dist/http/routes/postCodeGrep.js.map +1 -1
- package/dist/http/routes/postCodeList.d.ts.map +1 -1
- package/dist/http/routes/postCodeList.js +2 -7
- package/dist/http/routes/postCodeList.js.map +1 -1
- package/dist/http/routes/postCodeRead.d.ts.map +1 -1
- package/dist/http/routes/postCodeRead.js +2 -13
- package/dist/http/routes/postCodeRead.js.map +1 -1
- package/dist/http/routes/postDetach.d.ts.map +1 -1
- package/dist/http/routes/postDetach.js +8 -18
- package/dist/http/routes/postDetach.js.map +1 -1
- package/dist/http/routes/postDialog.d.ts.map +1 -1
- package/dist/http/routes/postDialog.js +5 -13
- package/dist/http/routes/postDialog.js.map +1 -1
- package/dist/http/routes/postDomAdd.d.ts.map +1 -1
- package/dist/http/routes/postDomAdd.js +3 -31
- package/dist/http/routes/postDomAdd.js.map +1 -1
- package/dist/http/routes/postDomFill.d.ts.map +1 -1
- package/dist/http/routes/postDomFill.js +2 -10
- package/dist/http/routes/postDomFill.js.map +1 -1
- package/dist/http/routes/postDomFocus.d.ts.map +1 -1
- package/dist/http/routes/postDomFocus.js +2 -0
- package/dist/http/routes/postDomFocus.js.map +1 -1
- package/dist/http/routes/postDomHover.d.ts.map +1 -1
- package/dist/http/routes/postDomHover.js +2 -0
- package/dist/http/routes/postDomHover.js.map +1 -1
- package/dist/http/routes/postDomInfo.d.ts.map +1 -1
- package/dist/http/routes/postDomInfo.js +3 -3
- package/dist/http/routes/postDomInfo.js.map +1 -1
- package/dist/http/routes/postDomKeydown.d.ts.map +1 -1
- package/dist/http/routes/postDomKeydown.js +2 -27
- package/dist/http/routes/postDomKeydown.js.map +1 -1
- package/dist/http/routes/postDomModify.d.ts.map +1 -1
- package/dist/http/routes/postDomModify.js +4 -19
- package/dist/http/routes/postDomModify.js.map +1 -1
- package/dist/http/routes/postDomRemove.d.ts.map +1 -1
- package/dist/http/routes/postDomRemove.js +5 -5
- package/dist/http/routes/postDomRemove.js.map +1 -1
- package/dist/http/routes/postDomScroll.d.ts.map +1 -1
- package/dist/http/routes/postDomScroll.js +5 -27
- package/dist/http/routes/postDomScroll.js.map +1 -1
- package/dist/http/routes/postDomScrollTo.d.ts.map +1 -1
- package/dist/http/routes/postDomScrollTo.js +2 -30
- package/dist/http/routes/postDomScrollTo.js.map +1 -1
- package/dist/http/routes/postDomSetFile.d.ts.map +1 -1
- package/dist/http/routes/postDomSetFile.js +2 -17
- package/dist/http/routes/postDomSetFile.js.map +1 -1
- package/dist/http/routes/postDomTree.d.ts.map +1 -1
- package/dist/http/routes/postDomTree.js +3 -3
- package/dist/http/routes/postDomTree.js.map +1 -1
- package/dist/http/routes/postEmulation.d.ts.map +1 -1
- package/dist/http/routes/postEmulation.js +3 -47
- package/dist/http/routes/postEmulation.js.map +1 -1
- package/dist/http/routes/postEval.d.ts.map +1 -1
- package/dist/http/routes/postEval.js +2 -7
- package/dist/http/routes/postEval.js.map +1 -1
- package/dist/http/routes/postLocate.d.ts.map +1 -1
- package/dist/http/routes/postLocate.js +5 -17
- package/dist/http/routes/postLocate.js.map +1 -1
- package/dist/http/routes/postRecord.d.ts.map +1 -1
- package/dist/http/routes/postRecord.js +4 -66
- package/dist/http/routes/postRecord.js.map +1 -1
- package/dist/http/routes/postReload.d.ts.map +1 -1
- package/dist/http/routes/postReload.js +2 -1
- package/dist/http/routes/postReload.js.map +1 -1
- package/dist/http/routes/postScreenshot.d.ts.map +1 -1
- package/dist/http/routes/postScreenshot.js +2 -32
- package/dist/http/routes/postScreenshot.js.map +1 -1
- package/dist/http/routes/postSnapshot.d.ts.map +1 -1
- package/dist/http/routes/postSnapshot.js +2 -10
- package/dist/http/routes/postSnapshot.js.map +1 -1
- package/dist/http/routes/postThrottle.d.ts.map +1 -1
- package/dist/http/routes/postThrottle.js +2 -15
- package/dist/http/routes/postThrottle.js.map +1 -1
- package/dist/http/routes/postTraceStart.d.ts.map +1 -1
- package/dist/http/routes/postTraceStart.js +2 -1
- package/dist/http/routes/postTraceStart.js.map +1 -1
- package/dist/http/routes/postTraceStop.d.ts.map +1 -1
- package/dist/http/routes/postTraceStop.js +2 -1
- package/dist/http/routes/postTraceStop.js.map +1 -1
- package/dist/http/routes/postVisibility.d.ts.map +1 -1
- package/dist/http/routes/postVisibility.js +2 -7
- package/dist/http/routes/postVisibility.js.map +1 -1
- package/dist/http/routes/storage.d.ts.map +1 -1
- package/dist/http/routes/storage.js +2 -16
- package/dist/http/routes/storage.js.map +1 -1
- package/dist/http/server.d.ts +9 -36
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +18 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +16 -0
- package/dist/internal.js.map +1 -0
- package/dist/native-messaging/control-session-manager.d.ts +3 -12
- package/dist/native-messaging/control-session-manager.d.ts.map +1 -1
- package/dist/native-messaging/control-session-manager.js +13 -32
- package/dist/native-messaging/control-session-manager.js.map +1 -1
- package/dist/native-messaging/pendingRequests.d.ts +31 -0
- package/dist/native-messaging/pendingRequests.d.ts.map +1 -0
- package/dist/native-messaging/pendingRequests.js +47 -0
- package/dist/native-messaging/pendingRequests.js.map +1 -0
- package/dist/native-messaging/session-manager.d.ts +35 -31
- package/dist/native-messaging/session-manager.d.ts.map +1 -1
- package/dist/native-messaging/session-manager.js +54 -86
- package/dist/native-messaging/session-manager.js.map +1 -1
- package/dist/native-messaging/types.d.ts +6 -211
- package/dist/native-messaging/types.d.ts.map +1 -1
- package/dist/native-messaging/types.js +5 -3
- package/dist/native-messaging/types.js.map +1 -1
- package/dist/net/NetMockController.d.ts.map +1 -1
- package/dist/net/NetMockController.js +7 -5
- package/dist/net/NetMockController.js.map +1 -1
- package/dist/net/NetMockInterception.d.ts +2 -1
- package/dist/net/NetMockInterception.d.ts.map +1 -1
- package/dist/net/NetMockInterception.js +4 -3
- package/dist/net/NetMockInterception.js.map +1 -1
- package/dist/net/filtering.d.ts +2 -2
- package/dist/net/filtering.d.ts.map +1 -1
- package/dist/net/filtering.js.map +1 -1
- package/dist/runtime/shutdownLatch.d.ts +16 -0
- package/dist/runtime/shutdownLatch.d.ts.map +1 -0
- package/dist/runtime/shutdownLatch.js +17 -0
- package/dist/runtime/shutdownLatch.js.map +1 -0
- package/dist/runtime/watcherIndicator.d.ts +45 -0
- package/dist/runtime/watcherIndicator.d.ts.map +1 -0
- package/dist/runtime/watcherIndicator.js +62 -0
- package/dist/runtime/watcherIndicator.js.map +1 -0
- package/dist/runtime/watcherInject.d.ts +25 -1
- package/dist/runtime/watcherInject.d.ts.map +1 -1
- package/dist/runtime/watcherInject.js +48 -6
- package/dist/runtime/watcherInject.js.map +1 -1
- package/dist/runtime/watcherServices.d.ts.map +1 -1
- package/dist/runtime/watcherServices.js +44 -57
- package/dist/runtime/watcherServices.js.map +1 -1
- package/dist/runtime/watcherSetup.d.ts +3 -0
- package/dist/runtime/watcherSetup.d.ts.map +1 -1
- package/dist/runtime/watcherSetup.js +2 -0
- package/dist/runtime/watcherSetup.js.map +1 -1
- package/dist/sourcemaps/resolveLocation.d.ts +14 -5
- package/dist/sourcemaps/resolveLocation.d.ts.map +1 -1
- package/dist/sourcemaps/resolveLocation.js +10 -68
- package/dist/sourcemaps/resolveLocation.js.map +1 -1
- package/dist/sourcemaps/sourceMappingUrl.d.ts +27 -0
- package/dist/sourcemaps/sourceMappingUrl.d.ts.map +1 -0
- package/dist/sourcemaps/sourceMappingUrl.js +57 -0
- package/dist/sourcemaps/sourceMappingUrl.js.map +1 -0
- package/dist/sourcemaps/sourcemapResolver.d.ts +30 -0
- package/dist/sourcemaps/sourcemapResolver.d.ts.map +1 -0
- package/dist/sourcemaps/sourcemapResolver.js +152 -0
- package/dist/sourcemaps/sourcemapResolver.js.map +1 -0
- package/dist/sources/cdp-source.d.ts.map +1 -1
- package/dist/sources/cdp-source.js +3 -2
- package/dist/sources/cdp-source.js.map +1 -1
- package/dist/sources/extension-control-source.d.ts.map +1 -1
- package/dist/sources/extension-control-source.js +9 -3
- package/dist/sources/extension-control-source.js.map +1 -1
- package/dist/sources/extension-delegating-session.d.ts +19 -8
- package/dist/sources/extension-delegating-session.d.ts.map +1 -1
- package/dist/sources/extension-delegating-session.js +4 -0
- package/dist/sources/extension-delegating-session.js.map +1 -1
- package/dist/sources/extension-frame-runtime.d.ts +2 -1
- package/dist/sources/extension-frame-runtime.d.ts.map +1 -1
- package/dist/sources/extension-frame-runtime.js +37 -17
- package/dist/sources/extension-frame-runtime.js.map +1 -1
- package/dist/sources/extension-frame-snapshot.d.ts +31 -0
- package/dist/sources/extension-frame-snapshot.d.ts.map +1 -0
- package/dist/sources/extension-frame-snapshot.js +73 -0
- package/dist/sources/extension-frame-snapshot.js.map +1 -0
- package/dist/sources/extension-frame-state.d.ts +3 -17
- package/dist/sources/extension-frame-state.d.ts.map +1 -1
- package/dist/sources/extension-frame-state.js +5 -30
- package/dist/sources/extension-frame-state.js.map +1 -1
- package/dist/sources/extension-session-events.d.ts +5 -2
- package/dist/sources/extension-session-events.d.ts.map +1 -1
- package/dist/sources/extension-session-events.js +7 -4
- package/dist/sources/extension-session-events.js.map +1 -1
- package/dist/sources/extension-source.d.ts.map +1 -1
- package/dist/sources/extension-source.js +49 -23
- package/dist/sources/extension-source.js.map +1 -1
- package/dist/sources/extension-target-recovery.d.ts.map +1 -1
- package/dist/sources/extension-target-recovery.js +3 -6
- package/dist/sources/extension-target-recovery.js.map +1 -1
- package/dist/sources/types.d.ts +5 -0
- package/dist/sources/types.d.ts.map +1 -1
- package/dist/sources/types.js +0 -5
- package/dist/sources/types.js.map +1 -1
- package/dist/startWatcherRuntime.d.ts.map +1 -1
- package/dist/startWatcherRuntime.js +31 -134
- package/dist/startWatcherRuntime.js.map +1 -1
- package/dist/stickyController.d.ts +51 -0
- package/dist/stickyController.d.ts.map +1 -0
- package/dist/stickyController.js +64 -0
- package/dist/stickyController.js.map +1 -0
- package/dist/throttle/ThrottleController.d.ts +1 -0
- package/dist/throttle/ThrottleController.d.ts.map +1 -1
- package/dist/throttle/ThrottleController.js +20 -61
- package/dist/throttle/ThrottleController.js.map +1 -1
- package/dist/visibility/VisibilityController.d.ts +9 -12
- package/dist/visibility/VisibilityController.d.ts.map +1 -1
- package/dist/visibility/VisibilityController.js +28 -36
- package/dist/visibility/VisibilityController.js.map +1 -1
- package/package.json +6 -2
- package/dist/cdp/auth.d.ts.map +0 -1
- package/dist/cdp/auth.js +0 -349
- package/dist/cdp/auth.js.map +0 -1
- package/dist/cdp/dom/fill.d.ts +0 -23
- package/dist/cdp/dom/fill.d.ts.map +0 -1
- package/dist/cdp/dom/fill.js +0 -59
- package/dist/cdp/dom/fill.js.map +0 -1
- package/dist/cdp/dom/insert.d.ts +0 -19
- package/dist/cdp/dom/insert.d.ts.map +0 -1
- package/dist/cdp/dom/insert.js +0 -30
- package/dist/cdp/dom/insert.js.map +0 -1
- package/dist/cdp/dom/modify.d.ts +0 -50
- package/dist/cdp/dom/modify.d.ts.map +0 -1
- package/dist/cdp/dom/modify.js +0 -100
- package/dist/cdp/dom/modify.js.map +0 -1
- package/dist/cdp/dom/remove.d.ts +0 -17
- package/dist/cdp/dom/remove.d.ts.map +0 -1
- package/dist/cdp/dom/remove.js +0 -27
- package/dist/cdp/dom/remove.js.map +0 -1
- package/dist/cdp/dom/setFile.d.ts +0 -21
- package/dist/cdp/dom/setFile.d.ts.map +0 -1
- package/dist/cdp/dom/setFile.js +0 -25
- package/dist/cdp/dom/setFile.js.map +0 -1
- package/dist/cdp/dom/types.d.ts +0 -16
- package/dist/cdp/dom/types.d.ts.map +0 -1
- package/dist/cdp/dom/types.js +0 -2
- package/dist/cdp/dom/types.js.map +0 -1
- package/dist/sources/extension-log-events.d.ts +0 -15
- package/dist/sources/extension-log-events.d.ts.map +0 -1
- package/dist/sources/extension-log-events.js +0 -101
- package/dist/sources/extension-log-events.js.map +0 -1
package/dist/cdp/connection.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import type { CdpEvent, CdpEventPayload, CdpMethod, CdpParams, CdpResult } from './protocol.js';
|
|
1
2
|
export type CdpEventMeta = {
|
|
2
|
-
|
|
3
|
+
/** Child protocol session the event arrived on, or `null` for the root target. */
|
|
4
|
+
sessionId: string | null;
|
|
3
5
|
};
|
|
4
|
-
|
|
6
|
+
/** Handler for one CDP event, typed by the event it is registered for. */
|
|
7
|
+
export type CdpEventHandler<E extends CdpEvent = CdpEvent> = (params: CdpEventPayload<E>, meta: CdpEventMeta) => void;
|
|
5
8
|
export type CdpSendOptions = {
|
|
6
9
|
/** Optional timeout for this CDP command (ms). */
|
|
7
10
|
timeoutMs?: number;
|
|
@@ -18,10 +21,26 @@ export type CdpTargetContext = {
|
|
|
18
21
|
};
|
|
19
22
|
export type CdpSessionHandle = {
|
|
20
23
|
isAttached: () => boolean;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Send one CDP command and await its result.
|
|
26
|
+
*
|
|
27
|
+
* Parameters and result are looked up from {@link CdpCommandMap} by method name, so an
|
|
28
|
+
* unknown method or a mistyped payload fails to compile. Use {@link sendUntypedCommand}
|
|
29
|
+
* for the rare call whose method is genuinely computed at runtime.
|
|
30
|
+
*/
|
|
31
|
+
sendAndWait: <M extends CdpMethod>(method: M, params?: CdpParams<M>, options?: CdpSendOptions) => Promise<CdpResult<M>>;
|
|
32
|
+
/** Subscribe to one CDP event. The handler receives that event's payload, not `unknown`. */
|
|
33
|
+
onEvent: <E extends CdpEvent>(method: E, handler: CdpEventHandler<E>) => () => void;
|
|
34
|
+
/**
|
|
35
|
+
* Active target context for commands that need frame-aware behavior.
|
|
36
|
+
*
|
|
37
|
+
* Required, not optional-by-capability: a direct-CDP session is always page-scoped and says so,
|
|
38
|
+
* which is what lets every frame-aware consumer just call it instead of writing the same
|
|
39
|
+
* ternary-plus-optional-chain dance.
|
|
40
|
+
*/
|
|
41
|
+
getTargetContext: () => CdpTargetContext;
|
|
42
|
+
/** Resolve the selected target after recovery; rejects if a requested iframe is still not executable. */
|
|
43
|
+
getReadyTargetContext: () => Promise<CdpTargetContext>;
|
|
25
44
|
};
|
|
26
45
|
type CdpConnection = {
|
|
27
46
|
sendAndWait: (method: string, params?: Record<string, unknown>, options?: CdpSendOptions) => Promise<unknown>;
|
|
@@ -35,5 +54,22 @@ export type CdpSessionController = {
|
|
|
35
54
|
};
|
|
36
55
|
export declare const createCdpSessionHandle: () => CdpSessionController;
|
|
37
56
|
export declare const createCdpNotAttachedError: () => Error;
|
|
57
|
+
/** A short-lived connection to one CDP endpoint, for commands that need no session. */
|
|
58
|
+
export type OneShotCdpConnection = {
|
|
59
|
+
sendAndWait: <M extends CdpMethod>(method: M, params?: CdpParams<M>, options?: CdpSendOptions) => Promise<CdpResult<M>>;
|
|
60
|
+
close: () => void;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Open a CDP WebSocket and return a connection for issuing a few commands.
|
|
64
|
+
*
|
|
65
|
+
* `browserCookies.ts` used to carry a second, bespoke CDP-over-WebSocket transport
|
|
66
|
+
* alongside this one — its own duck-typed WebSocket types, its own pending/timeout/cleanup
|
|
67
|
+
* machinery, its own message parsing, and hardcoded per-call request ids that existed only
|
|
68
|
+
* because it had no id allocator. Two transports in one directory meant every transport
|
|
69
|
+
* fix had to be made twice.
|
|
70
|
+
*
|
|
71
|
+
* Callers must `close()`; nothing reconnects a one-shot connection.
|
|
72
|
+
*/
|
|
73
|
+
export declare const openCdpConnection: (wsUrl: string, connectTimeoutMs?: number) => Promise<OneShotCdpConnection>;
|
|
38
74
|
export {};
|
|
39
75
|
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/cdp/connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/cdp/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/cdp/connection.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createNotAttachedError } from '../errors.js';
|
|
1
2
|
let nextId = 1;
|
|
2
3
|
export const createCdpSessionHandle = () => {
|
|
3
4
|
let connection = null;
|
|
@@ -21,6 +22,9 @@ export const createCdpSessionHandle = () => {
|
|
|
21
22
|
bucket?.delete(handler);
|
|
22
23
|
};
|
|
23
24
|
},
|
|
25
|
+
// A direct CDP connection targets one page; frame scoping only exists on the extension transport.
|
|
26
|
+
getTargetContext: () => ({ kind: 'page' }),
|
|
27
|
+
getReadyTargetContext: async () => ({ kind: 'page' }),
|
|
24
28
|
};
|
|
25
29
|
const attach = (socket) => {
|
|
26
30
|
const pendingRequests = new Map();
|
|
@@ -76,6 +80,9 @@ export const createCdpSessionHandle = () => {
|
|
|
76
80
|
}
|
|
77
81
|
for (const handler of bucket) {
|
|
78
82
|
try {
|
|
83
|
+
// Dispatch is untyped by construction: the wire carries an arbitrary method
|
|
84
|
+
// string, and the handler's payload type was checked at registration.
|
|
85
|
+
;
|
|
79
86
|
handler(payload.params, { sessionId: null });
|
|
80
87
|
}
|
|
81
88
|
catch {
|
|
@@ -109,11 +116,7 @@ export const createCdpSessionHandle = () => {
|
|
|
109
116
|
};
|
|
110
117
|
return { session, attach, detach };
|
|
111
118
|
};
|
|
112
|
-
export const createCdpNotAttachedError = () =>
|
|
113
|
-
const error = new Error('Watcher not attached to a CDP target');
|
|
114
|
-
error.code = 'cdp_not_attached';
|
|
115
|
-
return error;
|
|
116
|
-
};
|
|
119
|
+
export const createCdpNotAttachedError = () => createNotAttachedError('Watcher not attached to a CDP target');
|
|
117
120
|
const parseMessage = (data) => {
|
|
118
121
|
if (typeof data === 'string') {
|
|
119
122
|
try {
|
|
@@ -128,4 +131,53 @@ const parseMessage = (data) => {
|
|
|
128
131
|
}
|
|
129
132
|
return null;
|
|
130
133
|
};
|
|
134
|
+
/**
|
|
135
|
+
* Open a CDP WebSocket and return a connection for issuing a few commands.
|
|
136
|
+
*
|
|
137
|
+
* `browserCookies.ts` used to carry a second, bespoke CDP-over-WebSocket transport
|
|
138
|
+
* alongside this one — its own duck-typed WebSocket types, its own pending/timeout/cleanup
|
|
139
|
+
* machinery, its own message parsing, and hardcoded per-call request ids that existed only
|
|
140
|
+
* because it had no id allocator. Two transports in one directory meant every transport
|
|
141
|
+
* fix had to be made twice.
|
|
142
|
+
*
|
|
143
|
+
* Callers must `close()`; nothing reconnects a one-shot connection.
|
|
144
|
+
*/
|
|
145
|
+
export const openCdpConnection = async (wsUrl, connectTimeoutMs = 5_000) => {
|
|
146
|
+
const WebSocketConstructor = globalThis.WebSocket;
|
|
147
|
+
if (!WebSocketConstructor) {
|
|
148
|
+
throw new Error('WebSocket unavailable. Node 18+ required.');
|
|
149
|
+
}
|
|
150
|
+
const socket = new WebSocketConstructor(wsUrl);
|
|
151
|
+
const controller = createCdpSessionHandle();
|
|
152
|
+
const connection = controller.attach(socket);
|
|
153
|
+
socket.addEventListener('message', (event) => {
|
|
154
|
+
connection.handleMessage(event.data);
|
|
155
|
+
});
|
|
156
|
+
socket.addEventListener('close', () => {
|
|
157
|
+
connection.close('socket_closed');
|
|
158
|
+
});
|
|
159
|
+
await new Promise((resolve, reject) => {
|
|
160
|
+
const timer = setTimeout(() => reject(new Error(`CDP connection timed out after ${connectTimeoutMs}ms`)), connectTimeoutMs);
|
|
161
|
+
socket.addEventListener('open', () => {
|
|
162
|
+
clearTimeout(timer);
|
|
163
|
+
resolve();
|
|
164
|
+
});
|
|
165
|
+
socket.addEventListener('error', () => {
|
|
166
|
+
clearTimeout(timer);
|
|
167
|
+
reject(new Error('WebSocket error'));
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
return {
|
|
171
|
+
sendAndWait: controller.session.sendAndWait,
|
|
172
|
+
close: () => {
|
|
173
|
+
controller.detach('closed');
|
|
174
|
+
try {
|
|
175
|
+
socket.close();
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
// Already closed; nothing to unwind.
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
};
|
|
131
183
|
//# sourceMappingURL=connection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/cdp/connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/cdp/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/cdp/dom/info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/cdp/dom/info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAM3D,yDAAyD;AACzD,MAAM,MAAM,mBAAmB,GAAG;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAClC,SAAS,gBAAgB,EACzB,aAAa,kBAAkB,EAC/B,SAAS,mBAAmB,KAC1B,OAAO,CAAC,eAAe,CA+DzB,CAAA"}
|
package/dist/cdp/dom/info.js
CHANGED
|
@@ -23,10 +23,10 @@ export const fetchDomInfoBySelector = async (session, elementRefs, options) => {
|
|
|
23
23
|
const elements = [];
|
|
24
24
|
for (const handle of handles) {
|
|
25
25
|
const descriptor = toDomNodeDescriptor(handle);
|
|
26
|
-
const describeResult =
|
|
26
|
+
const describeResult = await session.sendAndWait('DOM.describeNode', {
|
|
27
27
|
...descriptor,
|
|
28
28
|
depth: 1, // Just enough to get child count
|
|
29
|
-
})
|
|
29
|
+
});
|
|
30
30
|
if (!describeResult.node) {
|
|
31
31
|
continue;
|
|
32
32
|
}
|
|
@@ -36,7 +36,7 @@ export const fetchDomInfoBySelector = async (session, elementRefs, options) => {
|
|
|
36
36
|
let outerHTML = null;
|
|
37
37
|
let outerHTMLTruncated = false;
|
|
38
38
|
try {
|
|
39
|
-
const htmlResult =
|
|
39
|
+
const htmlResult = await session.sendAndWait('DOM.getOuterHTML', descriptor);
|
|
40
40
|
outerHTML = htmlResult.outerHTML ?? null;
|
|
41
41
|
if (outerHTML && outerHTML.length > maxChars) {
|
|
42
42
|
outerHTML = outerHTML.slice(0, maxChars);
|
package/dist/cdp/dom/info.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/cdp/dom/info.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/cdp/dom/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { DomInsertPosition } from '@vforsh/argus-core';
|
|
2
|
+
import type { CdpSessionHandle } from '../connection.js';
|
|
3
|
+
import { type DomNodeHandle } from './selector.js';
|
|
4
|
+
/**
|
|
5
|
+
* DOM mutations driven by a CSS selector.
|
|
6
|
+
*
|
|
7
|
+
* modify/remove/insert/fill/setFile were five files running the same program —
|
|
8
|
+
* `DOM.enable` → resolve the document root → resolve selector matches → apply one action
|
|
9
|
+
* per node → report `{ allNodeIds, count }` — differing only in the page-side function.
|
|
10
|
+
* They share {@link mutateMatchedElements} here, with the per-action code as the only
|
|
11
|
+
* thing each one still owns.
|
|
12
|
+
*/
|
|
13
|
+
/** The selector target every mutation accepts. */
|
|
14
|
+
export type MutationTarget = {
|
|
15
|
+
selector: string;
|
|
16
|
+
all?: boolean;
|
|
17
|
+
text?: string;
|
|
18
|
+
};
|
|
19
|
+
/** Outcome of a selector-driven mutation. */
|
|
20
|
+
export type MutationResult = {
|
|
21
|
+
/** Every node the selector matched, before the `all` filter. */
|
|
22
|
+
allNodeIds: number[];
|
|
23
|
+
/** How many nodes the action was applied to. */
|
|
24
|
+
mutatedCount: number;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Resolve a selector and apply an action to each matched node.
|
|
28
|
+
*
|
|
29
|
+
* @param apply Runs once per matched node. Nodes that detach between resolution and use
|
|
30
|
+
* are still counted — matching the behavior every caller had before this was shared.
|
|
31
|
+
*/
|
|
32
|
+
export declare const mutateMatchedElements: (session: CdpSessionHandle, target: MutationTarget, apply: (nodeId: number) => Promise<unknown>) => Promise<MutationResult>;
|
|
33
|
+
/** Remove element(s) matching a CSS selector from the DOM. */
|
|
34
|
+
export declare const removeElements: (session: CdpSessionHandle, options: MutationTarget) => Promise<MutationResult>;
|
|
35
|
+
/** Base options for modifying matched elements. */
|
|
36
|
+
type ModifyElementsBaseOptions = {
|
|
37
|
+
selector: string;
|
|
38
|
+
all?: boolean;
|
|
39
|
+
text?: string;
|
|
40
|
+
};
|
|
41
|
+
/** Attribute modification options. */
|
|
42
|
+
type ModifyAttrOptions = ModifyElementsBaseOptions & {
|
|
43
|
+
type: 'attr';
|
|
44
|
+
set?: Record<string, string | true>;
|
|
45
|
+
remove?: string[];
|
|
46
|
+
};
|
|
47
|
+
/** Class modification options. */
|
|
48
|
+
type ModifyClassOptions = ModifyElementsBaseOptions & {
|
|
49
|
+
type: 'class';
|
|
50
|
+
add?: string[];
|
|
51
|
+
remove?: string[];
|
|
52
|
+
toggle?: string[];
|
|
53
|
+
};
|
|
54
|
+
/** Style modification options. */
|
|
55
|
+
type ModifyStyleOptions = ModifyElementsBaseOptions & {
|
|
56
|
+
type: 'style';
|
|
57
|
+
set?: Record<string, string>;
|
|
58
|
+
remove?: string[];
|
|
59
|
+
};
|
|
60
|
+
/** Text content modification options. */
|
|
61
|
+
type ModifyTextOptions = ModifyElementsBaseOptions & {
|
|
62
|
+
type: 'text';
|
|
63
|
+
value: string;
|
|
64
|
+
};
|
|
65
|
+
/** HTML content modification options. */
|
|
66
|
+
type ModifyHtmlOptions = ModifyElementsBaseOptions & {
|
|
67
|
+
type: 'html';
|
|
68
|
+
value: string;
|
|
69
|
+
};
|
|
70
|
+
/** Options for modifying matched elements. */
|
|
71
|
+
export type ModifyElementsOptions = ModifyAttrOptions | ModifyClassOptions | ModifyStyleOptions | ModifyTextOptions | ModifyHtmlOptions;
|
|
72
|
+
/**
|
|
73
|
+
* Modify element(s) matching a CSS selector.
|
|
74
|
+
* Supports attribute, class, style, text, and HTML modifications.
|
|
75
|
+
*/
|
|
76
|
+
export declare const modifyElements: (session: CdpSessionHandle, options: ModifyElementsOptions) => Promise<MutationResult>;
|
|
77
|
+
/** Fill pre-resolved nodes with a value. Skips selector resolution. */
|
|
78
|
+
export declare const fillResolvedNodes: (session: CdpSessionHandle, handles: DomNodeHandle[], value: string) => Promise<number>;
|
|
79
|
+
/** Fill input/textarea/contenteditable element(s) matching a CSS selector. */
|
|
80
|
+
export declare const fillElements: (session: CdpSessionHandle, options: MutationTarget & {
|
|
81
|
+
value: string;
|
|
82
|
+
}) => Promise<MutationResult>;
|
|
83
|
+
/** Options for inserting HTML adjacent to already-resolved elements. */
|
|
84
|
+
export type InsertAdjacentHtmlOptions = {
|
|
85
|
+
nodeIds: number[];
|
|
86
|
+
html: string;
|
|
87
|
+
position?: DomInsertPosition;
|
|
88
|
+
text?: boolean;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Insert HTML (or text) adjacent to already-resolved elements.
|
|
92
|
+
*
|
|
93
|
+
* Takes node ids rather than a selector because `/dom/add` resolves matches itself to
|
|
94
|
+
* honor its `nth` and `expect` guards before mutating anything.
|
|
95
|
+
*/
|
|
96
|
+
export declare const insertAdjacentHtml: (session: CdpSessionHandle, options: InsertAdjacentHtmlOptions) => Promise<number>;
|
|
97
|
+
/**
|
|
98
|
+
* Set files on already-resolved `<input type="file">` nodes.
|
|
99
|
+
*
|
|
100
|
+
* Uses CDP's `DOM.setFileInputFiles`, which reads from disk on the watcher host — there
|
|
101
|
+
* is no page function for this one.
|
|
102
|
+
*/
|
|
103
|
+
export declare const setFileOnResolvedNodes: (session: CdpSessionHandle, nodeIds: number[], files: string[]) => Promise<number>;
|
|
104
|
+
/** Set files on `<input type="file">` element(s) matching a CSS selector. */
|
|
105
|
+
export declare const setFileInputFiles: (session: CdpSessionHandle, options: MutationTarget & {
|
|
106
|
+
files: string[];
|
|
107
|
+
}) => Promise<MutationResult>;
|
|
108
|
+
export {};
|
|
109
|
+
//# sourceMappingURL=mutate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../../src/cdp/dom/mutate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { callFunctionOnNode } from '../pageState.js';
|
|
2
|
+
import { getDomRootId, resolveSelectorMatches, toDomNodeDescriptor } from './selector.js';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve a selector and apply an action to each matched node.
|
|
5
|
+
*
|
|
6
|
+
* @param apply Runs once per matched node. Nodes that detach between resolution and use
|
|
7
|
+
* are still counted — matching the behavior every caller had before this was shared.
|
|
8
|
+
*/
|
|
9
|
+
export const mutateMatchedElements = async (session, target, apply) => {
|
|
10
|
+
await session.sendAndWait('DOM.enable');
|
|
11
|
+
const rootId = await getDomRootId(session);
|
|
12
|
+
const { allNodeIds, nodeIds } = await resolveSelectorMatches(session, rootId, target.selector, target.all ?? false, target.text);
|
|
13
|
+
for (const nodeId of nodeIds) {
|
|
14
|
+
await apply(nodeId);
|
|
15
|
+
}
|
|
16
|
+
return { allNodeIds, mutatedCount: nodeIds.length };
|
|
17
|
+
};
|
|
18
|
+
/** Apply a page function to each node matched by a selector. */
|
|
19
|
+
const mutateWithPageFunction = (session, target, fn) => mutateMatchedElements(session, target, (nodeId) => callFunctionOnNode(session, { nodeId }, fn));
|
|
20
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
21
|
+
// Remove
|
|
22
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
23
|
+
/** Remove element(s) matching a CSS selector from the DOM. */
|
|
24
|
+
export const removeElements = (session, options) => mutateWithPageFunction(session, options, { code: 'function() { this.remove(); }' });
|
|
25
|
+
/**
|
|
26
|
+
* Modify element(s) matching a CSS selector.
|
|
27
|
+
* Supports attribute, class, style, text, and HTML modifications.
|
|
28
|
+
*/
|
|
29
|
+
export const modifyElements = (session, options) => mutateWithPageFunction(session, options, buildModifyFunction(options));
|
|
30
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
31
|
+
// Fill
|
|
32
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
33
|
+
/**
|
|
34
|
+
* Browser-context function that sets the element value using the native
|
|
35
|
+
* prototype setter (to bypass React/Vue/Angular property wrappers) and
|
|
36
|
+
* dispatches input + change events so framework change detection fires.
|
|
37
|
+
*/
|
|
38
|
+
const FILL_FUNCTION = `function(value) {
|
|
39
|
+
var el = this;
|
|
40
|
+
el.focus();
|
|
41
|
+
if (el.isContentEditable) {
|
|
42
|
+
el.textContent = value;
|
|
43
|
+
el.dispatchEvent(new Event('input', { bubbles: true }));
|
|
44
|
+
el.dispatchEvent(new Event('change', { bubbles: true }));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
var proto = el.tagName === 'TEXTAREA' ? HTMLTextAreaElement.prototype
|
|
48
|
+
: el.tagName === 'SELECT' ? HTMLSelectElement.prototype
|
|
49
|
+
: HTMLInputElement.prototype;
|
|
50
|
+
var nativeSetter = Object.getOwnPropertyDescriptor(proto, 'value');
|
|
51
|
+
if (nativeSetter && nativeSetter.set) {
|
|
52
|
+
nativeSetter.set.call(el, value);
|
|
53
|
+
} else {
|
|
54
|
+
el.value = value;
|
|
55
|
+
}
|
|
56
|
+
el.dispatchEvent(new Event('input', { bubbles: true }));
|
|
57
|
+
el.dispatchEvent(new Event('change', { bubbles: true }));
|
|
58
|
+
}`;
|
|
59
|
+
/** Fill pre-resolved nodes with a value. Skips selector resolution. */
|
|
60
|
+
export const fillResolvedNodes = async (session, handles, value) => {
|
|
61
|
+
for (const handle of handles) {
|
|
62
|
+
await callFunctionOnNode(session, toDomNodeDescriptor(handle), { code: FILL_FUNCTION, args: [{ value }] });
|
|
63
|
+
}
|
|
64
|
+
return handles.length;
|
|
65
|
+
};
|
|
66
|
+
/** Fill input/textarea/contenteditable element(s) matching a CSS selector. */
|
|
67
|
+
export const fillElements = (session, options) => mutateWithPageFunction(session, options, { code: FILL_FUNCTION, args: [{ value: options.value }] });
|
|
68
|
+
/**
|
|
69
|
+
* Insert HTML (or text) adjacent to already-resolved elements.
|
|
70
|
+
*
|
|
71
|
+
* Takes node ids rather than a selector because `/dom/add` resolves matches itself to
|
|
72
|
+
* honor its `nth` and `expect` guards before mutating anything.
|
|
73
|
+
*/
|
|
74
|
+
export const insertAdjacentHtml = async (session, options) => {
|
|
75
|
+
if (options.nodeIds.length === 0) {
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
78
|
+
await session.sendAndWait('DOM.enable');
|
|
79
|
+
const fn = {
|
|
80
|
+
code: options.text
|
|
81
|
+
? 'function(pos, value) { this.insertAdjacentText(pos, value); }'
|
|
82
|
+
: 'function(pos, html) { this.insertAdjacentHTML(pos, html); }',
|
|
83
|
+
args: [{ value: options.position ?? 'beforeend' }, { value: options.html }],
|
|
84
|
+
};
|
|
85
|
+
for (const nodeId of options.nodeIds) {
|
|
86
|
+
await callFunctionOnNode(session, { nodeId }, fn);
|
|
87
|
+
}
|
|
88
|
+
return options.nodeIds.length;
|
|
89
|
+
};
|
|
90
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
91
|
+
// Set file
|
|
92
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
93
|
+
/**
|
|
94
|
+
* Set files on already-resolved `<input type="file">` nodes.
|
|
95
|
+
*
|
|
96
|
+
* Uses CDP's `DOM.setFileInputFiles`, which reads from disk on the watcher host — there
|
|
97
|
+
* is no page function for this one.
|
|
98
|
+
*/
|
|
99
|
+
export const setFileOnResolvedNodes = async (session, nodeIds, files) => {
|
|
100
|
+
for (const nodeId of nodeIds) {
|
|
101
|
+
await session.sendAndWait('DOM.setFileInputFiles', { files, nodeId });
|
|
102
|
+
}
|
|
103
|
+
return nodeIds.length;
|
|
104
|
+
};
|
|
105
|
+
/** Set files on `<input type="file">` element(s) matching a CSS selector. */
|
|
106
|
+
export const setFileInputFiles = (session, options) => mutateMatchedElements(session, options, (nodeId) => session.sendAndWait('DOM.setFileInputFiles', { files: options.files, nodeId }));
|
|
107
|
+
const buildModifyFunction = (options) => {
|
|
108
|
+
switch (options.type) {
|
|
109
|
+
case 'attr':
|
|
110
|
+
return {
|
|
111
|
+
code: `function(toSet, toRemove) {
|
|
112
|
+
if (toSet) {
|
|
113
|
+
for (const [name, value] of Object.entries(toSet)) {
|
|
114
|
+
if (value === true) {
|
|
115
|
+
this.setAttribute(name, '');
|
|
116
|
+
} else {
|
|
117
|
+
this.setAttribute(name, value);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (toRemove) {
|
|
122
|
+
for (const name of toRemove) {
|
|
123
|
+
this.removeAttribute(name);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}`,
|
|
127
|
+
args: [{ value: options.set ?? null }, { value: options.remove ?? null }],
|
|
128
|
+
};
|
|
129
|
+
case 'class':
|
|
130
|
+
return {
|
|
131
|
+
code: `function(toAdd, toRemove, toToggle) {
|
|
132
|
+
if (toAdd) {
|
|
133
|
+
this.classList.add(...toAdd);
|
|
134
|
+
}
|
|
135
|
+
if (toRemove) {
|
|
136
|
+
this.classList.remove(...toRemove);
|
|
137
|
+
}
|
|
138
|
+
if (toToggle) {
|
|
139
|
+
for (const cls of toToggle) {
|
|
140
|
+
this.classList.toggle(cls);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}`,
|
|
144
|
+
args: [{ value: options.add ?? null }, { value: options.remove ?? null }, { value: options.toggle ?? null }],
|
|
145
|
+
};
|
|
146
|
+
case 'style':
|
|
147
|
+
return {
|
|
148
|
+
code: `function(toSet, toRemove) {
|
|
149
|
+
if (toSet) {
|
|
150
|
+
for (const [prop, value] of Object.entries(toSet)) {
|
|
151
|
+
this.style.setProperty(prop, value);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (toRemove) {
|
|
155
|
+
for (const prop of toRemove) {
|
|
156
|
+
this.style.removeProperty(prop);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}`,
|
|
160
|
+
args: [{ value: options.set ?? null }, { value: options.remove ?? null }],
|
|
161
|
+
};
|
|
162
|
+
case 'text':
|
|
163
|
+
return {
|
|
164
|
+
code: `function(value) { this.textContent = value; }`,
|
|
165
|
+
args: [{ value: options.value }],
|
|
166
|
+
};
|
|
167
|
+
case 'html':
|
|
168
|
+
return {
|
|
169
|
+
code: `function(value) { this.innerHTML = value; }`,
|
|
170
|
+
args: [{ value: options.value }],
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
//# sourceMappingURL=mutate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../../src/cdp/dom/mutate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../../src/cdp/dom/selector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../../src/cdp/dom/selector.ts"],"names":[],"mappings":"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"}
|
package/dist/cdp/dom/selector.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { filterNodesByText } from '../text-filter.js';
|
|
2
2
|
export const getDomRootId = async (session) => {
|
|
3
|
-
const targetContext = session.
|
|
3
|
+
const targetContext = await session.getReadyTargetContext();
|
|
4
4
|
if (targetContext?.kind === 'frame') {
|
|
5
5
|
return getFrameDomRootId(session, targetContext);
|
|
6
6
|
}
|
|
@@ -8,7 +8,7 @@ export const getDomRootId = async (session) => {
|
|
|
8
8
|
};
|
|
9
9
|
export const resolveSelectorMatches = async (session, rootId, selector, all, text) => {
|
|
10
10
|
// Always use querySelectorAll to get the true match count
|
|
11
|
-
const result =
|
|
11
|
+
const result = await session.sendAndWait('DOM.querySelectorAll', { nodeId: rootId, selector });
|
|
12
12
|
let allNodeIds = result.nodeIds ?? [];
|
|
13
13
|
if (text != null) {
|
|
14
14
|
allNodeIds = await filterNodesByText(session, allNodeIds, text);
|
|
@@ -91,10 +91,10 @@ export const resolveFirstSelectorNodeId = async (session, selector, text) => {
|
|
|
91
91
|
return nodeIds[0] ?? null;
|
|
92
92
|
};
|
|
93
93
|
export const describeNodeByBackendId = async (session, backendNodeId) => {
|
|
94
|
-
const described =
|
|
94
|
+
const described = await session.sendAndWait('DOM.describeNode', {
|
|
95
95
|
backendNodeId,
|
|
96
96
|
depth: 0,
|
|
97
|
-
})
|
|
97
|
+
});
|
|
98
98
|
return described.node ?? null;
|
|
99
99
|
};
|
|
100
100
|
export const resolveNodeIdByBackendId = async (session, backendNodeId) => {
|
|
@@ -104,9 +104,9 @@ export const resolveNodeIdByBackendId = async (session, backendNodeId) => {
|
|
|
104
104
|
}
|
|
105
105
|
// Prime the document tree first so CDP can map backend ids back into frontend node ids.
|
|
106
106
|
await getDomRootId(session);
|
|
107
|
-
const pushed =
|
|
107
|
+
const pushed = await session.sendAndWait('DOM.pushNodesByBackendIdsToFrontend', {
|
|
108
108
|
backendNodeIds: [backendNodeId],
|
|
109
|
-
})
|
|
109
|
+
});
|
|
110
110
|
const nodeId = pushed.nodeIds?.[0];
|
|
111
111
|
return typeof nodeId === 'number' && nodeId > 0 ? nodeId : null;
|
|
112
112
|
};
|
|
@@ -139,23 +139,23 @@ const getFrameDomRootId = async (session, targetContext) => {
|
|
|
139
139
|
if (targetContext.executionContextId == null) {
|
|
140
140
|
throw new Error(`Selected frame is not ready yet: ${targetContext.frameId}`);
|
|
141
141
|
}
|
|
142
|
-
const evaluated =
|
|
142
|
+
const evaluated = await session.sendAndWait('Runtime.evaluate', {
|
|
143
143
|
expression: 'document',
|
|
144
144
|
contextId: targetContext.executionContextId,
|
|
145
145
|
returnByValue: false,
|
|
146
|
-
})
|
|
146
|
+
});
|
|
147
147
|
const objectId = evaluated.result?.objectId;
|
|
148
148
|
if (!objectId) {
|
|
149
149
|
throw new Error(`Unable to resolve DOM root for frame: ${targetContext.frameId}`);
|
|
150
150
|
}
|
|
151
|
-
const requested =
|
|
151
|
+
const requested = await session.sendAndWait('DOM.requestNode', { objectId });
|
|
152
152
|
if (!requested.nodeId) {
|
|
153
153
|
throw new Error(`Unable to resolve DOM root for frame: ${targetContext.frameId}`);
|
|
154
154
|
}
|
|
155
155
|
return requested.nodeId;
|
|
156
156
|
};
|
|
157
157
|
const getDocumentRootId = async (session) => {
|
|
158
|
-
const result =
|
|
158
|
+
const result = await session.sendAndWait('DOM.getDocument', { depth: 1 });
|
|
159
159
|
const rootId = result.root?.nodeId;
|
|
160
160
|
if (!rootId) {
|
|
161
161
|
throw new Error('Unable to resolve DOM root');
|