@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
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Correlating a native-messaging request with its response.
|
|
3
|
+
*
|
|
4
|
+
* Both session managers had grown their own copy of this: an id counter, a map of
|
|
5
|
+
* resolve/reject/timeout triples, an `open` that arms a deadline, and a `settle` that clears it.
|
|
6
|
+
* The tab manager's counter had also drifted to module scope while its map stayed per-instance, so
|
|
7
|
+
* two managers in one process shared an id space they did not share a table with.
|
|
8
|
+
*/
|
|
9
|
+
export type PendingRequestTable<T> = {
|
|
10
|
+
/** Register `requestId` and resolve once it settles, or reject when its deadline passes. */
|
|
11
|
+
open: (requestId: number, options?: {
|
|
12
|
+
timeoutMs?: number;
|
|
13
|
+
timeoutMessage?: string;
|
|
14
|
+
}) => Promise<T>;
|
|
15
|
+
/** Settle with a value. An unknown or already-timed-out id is ignored. */
|
|
16
|
+
settle: (requestId: number, value: T) => void;
|
|
17
|
+
/** Settle with a failure. An unknown or already-timed-out id is ignored. */
|
|
18
|
+
fail: (requestId: number, error: Error) => void;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Build a table of in-flight requests.
|
|
22
|
+
*
|
|
23
|
+
* @param defaults Deadline and message used when `open` is called without its own.
|
|
24
|
+
*/
|
|
25
|
+
export declare const createPendingRequestTable: <T>(defaults: {
|
|
26
|
+
timeoutMs: number;
|
|
27
|
+
timeoutMessage: string;
|
|
28
|
+
}) => PendingRequestTable<T>;
|
|
29
|
+
/** Per-instance request id source. Ids only have to be unique within one native-messaging channel. */
|
|
30
|
+
export declare const createRequestIdAllocator: () => (() => number);
|
|
31
|
+
//# sourceMappingURL=pendingRequests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pendingRequests.d.ts","sourceRoot":"","sources":["../../src/native-messaging/pendingRequests.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACpC,4FAA4F;IAC5F,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IAClG,0EAA0E;IAC1E,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC7C,4EAA4E;IAC5E,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAC/C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAI,CAAC,EAAE,UAAU;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,KAAG,mBAAmB,CAAC,CAAC,CA8B3H,CAAA;AAED,sGAAsG;AACtG,eAAO,MAAM,wBAAwB,QAAO,CAAC,MAAM,MAAM,CAGxD,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Correlating a native-messaging request with its response.
|
|
3
|
+
*
|
|
4
|
+
* Both session managers had grown their own copy of this: an id counter, a map of
|
|
5
|
+
* resolve/reject/timeout triples, an `open` that arms a deadline, and a `settle` that clears it.
|
|
6
|
+
* The tab manager's counter had also drifted to module scope while its map stayed per-instance, so
|
|
7
|
+
* two managers in one process shared an id space they did not share a table with.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Build a table of in-flight requests.
|
|
11
|
+
*
|
|
12
|
+
* @param defaults Deadline and message used when `open` is called without its own.
|
|
13
|
+
*/
|
|
14
|
+
export const createPendingRequestTable = (defaults) => {
|
|
15
|
+
const requests = new Map();
|
|
16
|
+
const take = (requestId) => {
|
|
17
|
+
const pending = requests.get(requestId);
|
|
18
|
+
if (!pending) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
requests.delete(requestId);
|
|
22
|
+
clearTimeout(pending.timeout);
|
|
23
|
+
return pending;
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
open: (requestId, options) => new Promise((resolve, reject) => {
|
|
27
|
+
const timeoutMs = options?.timeoutMs ?? defaults.timeoutMs;
|
|
28
|
+
const timeout = setTimeout(() => {
|
|
29
|
+
requests.delete(requestId);
|
|
30
|
+
reject(new Error(options?.timeoutMessage ?? defaults.timeoutMessage));
|
|
31
|
+
}, timeoutMs);
|
|
32
|
+
requests.set(requestId, { resolve, reject, timeout });
|
|
33
|
+
}),
|
|
34
|
+
settle: (requestId, value) => {
|
|
35
|
+
take(requestId)?.resolve(value);
|
|
36
|
+
},
|
|
37
|
+
fail: (requestId, error) => {
|
|
38
|
+
take(requestId)?.reject(error);
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
/** Per-instance request id source. Ids only have to be unique within one native-messaging channel. */
|
|
43
|
+
export const createRequestIdAllocator = () => {
|
|
44
|
+
let nextRequestId = 1;
|
|
45
|
+
return () => nextRequestId++;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=pendingRequests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pendingRequests.js","sourceRoot":"","sources":["../../src/native-messaging/pendingRequests.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAI,QAAuD,EAA0B,EAAE;IAC/H,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAA;IAErD,MAAM,IAAI,GAAG,CAAC,SAAiB,EAA4B,EAAE;QAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC1B,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC7B,OAAO,OAAO,CAAA;IACf,CAAC,CAAA;IAED,OAAO;QACN,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAC5B,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAA;YAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC/B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAA;YACtE,CAAC,EAAE,SAAS,CAAC,CAAA;YACb,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QACtD,CAAC,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAChC,CAAC;QACD,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;KACD,CAAA;AACF,CAAC,CAAA;AAED,sGAAsG;AACtG,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAmB,EAAE;IAC5D,IAAI,aAAa,GAAG,CAAC,CAAA;IACrB,OAAO,GAAG,EAAE,CAAC,aAAa,EAAE,CAAA;AAC7B,CAAC,CAAA"}
|
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
* Implements CdpSessionHandle interface using Native Messaging.
|
|
4
4
|
*/
|
|
5
5
|
import type { NativeMessagingHandler } from './messaging.js';
|
|
6
|
-
import type { FrameSnapshot, NativeCookie, ExtensionToTabHost, TabHostToExtension } from './types.js';
|
|
6
|
+
import type { FrameSnapshot, FrameSnapshotMessage, NativeCookie, ExtensionToTabHost, TabHostToExtension } from './types.js';
|
|
7
7
|
import type { CdpSessionHandle } from '../cdp/connection.js';
|
|
8
|
+
/** Authoritative frame table published by the extension for one tab. */
|
|
9
|
+
export type ExtensionFrameSnapshot = Pick<FrameSnapshotMessage, 'tabId' | 'topFrameId' | 'frames' | 'reason'>;
|
|
8
10
|
export type ExtensionSession = {
|
|
9
11
|
tabId: number;
|
|
10
12
|
url: string;
|
|
@@ -14,12 +16,31 @@ export type ExtensionSession = {
|
|
|
14
16
|
topFrameId: string | null;
|
|
15
17
|
frames: FrameSnapshot[];
|
|
16
18
|
handle: CdpSessionHandle;
|
|
17
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Pull the extension's current frame table. With `refresh: true` the extension re-reads
|
|
21
|
+
* `Page.getFrameTree` for the root and every child session first, so the result reflects
|
|
22
|
+
* Chrome rather than cached state. Used at bootstrap and by target recovery.
|
|
23
|
+
*
|
|
24
|
+
* The reply is APPLIED through `SessionManagerEvents.onFrameSnapshot` in wire order
|
|
25
|
+
* before this resolves — treat the returned snapshot as a completion signal, never
|
|
26
|
+
* apply it yourself (see handleFrameSnapshot for the ordering hazard).
|
|
27
|
+
*/
|
|
28
|
+
requestFrameSnapshot: (options?: {
|
|
29
|
+
refresh?: boolean;
|
|
30
|
+
timeoutMs?: number;
|
|
31
|
+
}) => Promise<ExtensionFrameSnapshot>;
|
|
18
32
|
};
|
|
19
33
|
export type SessionManagerEvents = {
|
|
20
34
|
onAttach: (session: ExtensionSession) => void;
|
|
21
35
|
onDetach: (tabId: number, reason: string) => void;
|
|
22
36
|
onTargetSelected: (tabId: number, frameId: string | null) => void;
|
|
37
|
+
/**
|
|
38
|
+
* A frame table from the extension (deduplicated pushes AND pull replies — every
|
|
39
|
+
* snapshot flows through here, synchronously, in wire order). Replaces the pre-C2
|
|
40
|
+
* stream of synthetic Page.frameNavigated/frameDetached events: apply it wholesale,
|
|
41
|
+
* idempotently.
|
|
42
|
+
*/
|
|
43
|
+
onFrameSnapshot: (snapshot: ExtensionFrameSnapshot) => void;
|
|
23
44
|
};
|
|
24
45
|
/**
|
|
25
46
|
* Manages CDP sessions with tabs attached via the Chrome extension.
|
|
@@ -27,7 +48,8 @@ export type SessionManagerEvents = {
|
|
|
27
48
|
export declare class SessionManager {
|
|
28
49
|
private messaging;
|
|
29
50
|
private sessions;
|
|
30
|
-
private
|
|
51
|
+
private readonly nextRequestId;
|
|
52
|
+
private readonly pendingRequests;
|
|
31
53
|
private eventHandlers;
|
|
32
54
|
private events;
|
|
33
55
|
constructor(messaging: NativeMessagingHandler<ExtensionToTabHost, TabHostToExtension>, events: SessionManagerEvents);
|
|
@@ -39,6 +61,16 @@ export declare class SessionManager {
|
|
|
39
61
|
* Handle a message from the extension.
|
|
40
62
|
*/
|
|
41
63
|
private handleMessage;
|
|
64
|
+
/**
|
|
65
|
+
* Every snapshot — pushed or pulled — is applied HERE, synchronously, in wire order.
|
|
66
|
+
*
|
|
67
|
+
* Routing a pull reply only through its awaiting caller would apply it on a later
|
|
68
|
+
* microtask, after real cdp_events that arrived behind it on the pipe were already
|
|
69
|
+
* handled — a stale table would then delete frames those events just created and
|
|
70
|
+
* selection could rematch onto the wrong frame. Applying in message order makes that
|
|
71
|
+
* inversion impossible; the settled promise is a completion signal.
|
|
72
|
+
*/
|
|
73
|
+
private handleFrameSnapshot;
|
|
42
74
|
/**
|
|
43
75
|
* Handle tab attachment notification.
|
|
44
76
|
*/
|
|
@@ -71,38 +103,10 @@ export declare class SessionManager {
|
|
|
71
103
|
domain?: string;
|
|
72
104
|
url?: string;
|
|
73
105
|
}, timeoutMs?: number): Promise<NativeCookie[]>;
|
|
74
|
-
/**
|
|
75
|
-
* Request to attach to a tab.
|
|
76
|
-
*/
|
|
77
|
-
attachTab(tabId: number): void;
|
|
78
106
|
/**
|
|
79
107
|
* Request to detach from a tab.
|
|
80
108
|
*/
|
|
81
109
|
detachTab(tabId: number): void;
|
|
82
|
-
/**
|
|
83
|
-
* Request to enable a CDP domain for a tab.
|
|
84
|
-
*/
|
|
85
|
-
enableDomain(tabId: number, domain: string): void;
|
|
86
|
-
/**
|
|
87
|
-
* Get a session by tab ID.
|
|
88
|
-
*/
|
|
89
|
-
getSession(tabId: number): ExtensionSession | undefined;
|
|
90
|
-
/**
|
|
91
|
-
* Get all active sessions.
|
|
92
|
-
*/
|
|
93
|
-
listSessions(): ExtensionSession[];
|
|
94
|
-
/**
|
|
95
|
-
* Check if a tab is attached.
|
|
96
|
-
*/
|
|
97
|
-
isAttached(tabId: number): boolean;
|
|
98
|
-
/**
|
|
99
|
-
* Get the first attached session (for single-tab mode).
|
|
100
|
-
*/
|
|
101
|
-
getFirstSession(): ExtensionSession | undefined;
|
|
102
|
-
/**
|
|
103
|
-
* Create an error for when no tab is attached.
|
|
104
|
-
*/
|
|
105
|
-
private createNotAttachedError;
|
|
106
110
|
private sendBridgeRequest;
|
|
107
111
|
}
|
|
108
112
|
//# sourceMappingURL=session-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/native-messaging/session-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/native-messaging/session-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAE5D,OAAO,KAAK,EAGX,aAAa,EACb,oBAAoB,EAEpB,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,wEAAwE;AACxE,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAA;AAE7G,MAAM,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,MAAM,EAAE,gBAAgB,CAAA;IACxB;;;;;;;;OAQG;IACH,oBAAoB,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAA;CAC9G,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACjE;;;;;OAKG;IACH,eAAe,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAA;CAC3D,CAAA;AAED;;GAEG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,SAAS,CAAgE;IACjF,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG9B;IACF,OAAO,CAAC,aAAa,CAA8D;IACnF,OAAO,CAAC,MAAM,CAAsB;gBAExB,SAAS,EAAE,sBAAsB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,EAAE,MAAM,EAAE,oBAAoB;IAMnH;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAgCrB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAuBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,qBAAqB;IAQ7B;;OAEG;IACH,OAAO,CAAC,aAAa;IA8ErB;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAkBrH;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ9B,OAAO,CAAC,iBAAiB;CAMzB"}
|
|
@@ -2,14 +2,19 @@
|
|
|
2
2
|
* Session manager for CDP sessions routed through the Chrome extension.
|
|
3
3
|
* Implements CdpSessionHandle interface using Native Messaging.
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
import { createNotAttachedError } from '../errors.js';
|
|
6
|
+
import { createPendingRequestTable, createRequestIdAllocator } from './pendingRequests.js';
|
|
6
7
|
/**
|
|
7
8
|
* Manages CDP sessions with tabs attached via the Chrome extension.
|
|
8
9
|
*/
|
|
9
10
|
export class SessionManager {
|
|
10
11
|
messaging;
|
|
11
12
|
sessions = new Map();
|
|
12
|
-
|
|
13
|
+
nextRequestId = createRequestIdAllocator();
|
|
14
|
+
pendingRequests = createPendingRequestTable({
|
|
15
|
+
timeoutMs: 30_000,
|
|
16
|
+
timeoutMessage: 'Bridge request timed out',
|
|
17
|
+
});
|
|
13
18
|
eventHandlers = new Map();
|
|
14
19
|
events;
|
|
15
20
|
constructor(messaging, events) {
|
|
@@ -48,6 +53,24 @@ export class SessionManager {
|
|
|
48
53
|
case 'target_selected':
|
|
49
54
|
this.events.onTargetSelected(message.tabId, message.frameId ?? null);
|
|
50
55
|
break;
|
|
56
|
+
case 'frame_snapshot':
|
|
57
|
+
this.handleFrameSnapshot(message);
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Every snapshot — pushed or pulled — is applied HERE, synchronously, in wire order.
|
|
63
|
+
*
|
|
64
|
+
* Routing a pull reply only through its awaiting caller would apply it on a later
|
|
65
|
+
* microtask, after real cdp_events that arrived behind it on the pipe were already
|
|
66
|
+
* handled — a stale table would then delete frames those events just created and
|
|
67
|
+
* selection could rematch onto the wrong frame. Applying in message order makes that
|
|
68
|
+
* inversion impossible; the settled promise is a completion signal.
|
|
69
|
+
*/
|
|
70
|
+
handleFrameSnapshot(message) {
|
|
71
|
+
this.events.onFrameSnapshot(message);
|
|
72
|
+
if (message.requestId != null) {
|
|
73
|
+
this.pendingRequests.settle(message.requestId, message);
|
|
51
74
|
}
|
|
52
75
|
}
|
|
53
76
|
/**
|
|
@@ -83,6 +106,9 @@ export class SessionManager {
|
|
|
83
106
|
const meta = { sessionId: message.sessionId ?? null };
|
|
84
107
|
for (const handler of methodHandlers) {
|
|
85
108
|
try {
|
|
109
|
+
// The wire carries an arbitrary method string; each handler's payload type was
|
|
110
|
+
// checked when it was registered against a specific event.
|
|
111
|
+
;
|
|
86
112
|
handler(message.params, meta);
|
|
87
113
|
}
|
|
88
114
|
catch {
|
|
@@ -103,32 +129,24 @@ export class SessionManager {
|
|
|
103
129
|
this.resolvePendingRequest(message.requestId, message.cookies ?? [], message.error);
|
|
104
130
|
}
|
|
105
131
|
resolvePendingRequest(requestId, result, error) {
|
|
106
|
-
const pending = this.pendingRequests.get(requestId);
|
|
107
|
-
if (!pending) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
this.pendingRequests.delete(requestId);
|
|
111
|
-
clearTimeout(pending.timeout);
|
|
112
132
|
if (error) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
else {
|
|
116
|
-
pending.resolve(result);
|
|
133
|
+
this.pendingRequests.fail(requestId, new Error(error.message));
|
|
134
|
+
return;
|
|
117
135
|
}
|
|
136
|
+
this.pendingRequests.settle(requestId, result);
|
|
118
137
|
}
|
|
119
138
|
/**
|
|
120
139
|
* Create a session for an attached tab.
|
|
121
140
|
*/
|
|
122
141
|
createSession(message) {
|
|
123
142
|
const { tabId, url, title, faviconUrl } = message;
|
|
124
|
-
const enabledDomains = new Set();
|
|
125
143
|
const tabHandlers = new Map();
|
|
126
144
|
this.eventHandlers.set(tabId, tabHandlers);
|
|
127
145
|
const handle = {
|
|
128
146
|
isAttached: () => this.sessions.has(tabId),
|
|
129
147
|
sendAndWait: async (method, params, options) => {
|
|
130
148
|
if (!this.sessions.has(tabId)) {
|
|
131
|
-
throw
|
|
149
|
+
throw createNotAttachedError();
|
|
132
150
|
}
|
|
133
151
|
return this.sendBridgeRequest((requestId) => ({
|
|
134
152
|
type: 'cdp_command',
|
|
@@ -145,11 +163,17 @@ export class SessionManager {
|
|
|
145
163
|
methodHandlers = new Set();
|
|
146
164
|
tabHandlers.set(method, methodHandlers);
|
|
147
165
|
}
|
|
166
|
+
// The registry spans every event, so payload types are erased in storage;
|
|
167
|
+
// the method/handler pairing was checked at this call.
|
|
148
168
|
methodHandlers.add(handler);
|
|
149
169
|
return () => {
|
|
150
170
|
methodHandlers?.delete(handler);
|
|
151
171
|
};
|
|
152
172
|
},
|
|
173
|
+
// A per-tab bridge session addresses the whole tab; frame scoping is applied by the
|
|
174
|
+
// delegating session layered on top of it.
|
|
175
|
+
getTargetContext: () => ({ kind: 'page' }),
|
|
176
|
+
getReadyTargetContext: async () => ({ kind: 'page' }),
|
|
153
177
|
};
|
|
154
178
|
const session = {
|
|
155
179
|
tabId,
|
|
@@ -160,7 +184,17 @@ export class SessionManager {
|
|
|
160
184
|
topFrameId: message.topFrameId ?? null,
|
|
161
185
|
frames: message.frames ?? [],
|
|
162
186
|
handle,
|
|
163
|
-
|
|
187
|
+
requestFrameSnapshot: async (options) => {
|
|
188
|
+
if (!this.sessions.has(tabId)) {
|
|
189
|
+
throw createNotAttachedError();
|
|
190
|
+
}
|
|
191
|
+
return this.sendBridgeRequest((requestId) => ({
|
|
192
|
+
type: 'frame_snapshot_request',
|
|
193
|
+
requestId,
|
|
194
|
+
tabId,
|
|
195
|
+
refresh: options?.refresh,
|
|
196
|
+
}), options?.timeoutMs ?? 10_000);
|
|
197
|
+
},
|
|
164
198
|
};
|
|
165
199
|
this.sessions.set(tabId, session);
|
|
166
200
|
return session;
|
|
@@ -170,7 +204,7 @@ export class SessionManager {
|
|
|
170
204
|
*/
|
|
171
205
|
async getCookies(tabId, query, timeoutMs = 5000) {
|
|
172
206
|
if (!this.sessions.has(tabId)) {
|
|
173
|
-
throw
|
|
207
|
+
throw createNotAttachedError();
|
|
174
208
|
}
|
|
175
209
|
return await this.sendBridgeRequest((requestId) => ({
|
|
176
210
|
type: 'cookie_query',
|
|
@@ -180,16 +214,6 @@ export class SessionManager {
|
|
|
180
214
|
url: query?.url,
|
|
181
215
|
}), timeoutMs);
|
|
182
216
|
}
|
|
183
|
-
/**
|
|
184
|
-
* Request to attach to a tab.
|
|
185
|
-
*/
|
|
186
|
-
attachTab(tabId) {
|
|
187
|
-
const message = {
|
|
188
|
-
type: 'attach_tab',
|
|
189
|
-
tabId,
|
|
190
|
-
};
|
|
191
|
-
this.messaging.send(message);
|
|
192
|
-
}
|
|
193
217
|
/**
|
|
194
218
|
* Request to detach from a tab.
|
|
195
219
|
*/
|
|
@@ -200,67 +224,11 @@ export class SessionManager {
|
|
|
200
224
|
};
|
|
201
225
|
this.messaging.send(message);
|
|
202
226
|
}
|
|
203
|
-
/**
|
|
204
|
-
* Request to enable a CDP domain for a tab.
|
|
205
|
-
*/
|
|
206
|
-
enableDomain(tabId, domain) {
|
|
207
|
-
const message = {
|
|
208
|
-
type: 'enable_domain',
|
|
209
|
-
tabId,
|
|
210
|
-
domain,
|
|
211
|
-
};
|
|
212
|
-
this.messaging.send(message);
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Get a session by tab ID.
|
|
216
|
-
*/
|
|
217
|
-
getSession(tabId) {
|
|
218
|
-
return this.sessions.get(tabId);
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Get all active sessions.
|
|
222
|
-
*/
|
|
223
|
-
listSessions() {
|
|
224
|
-
return [...this.sessions.values()];
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Check if a tab is attached.
|
|
228
|
-
*/
|
|
229
|
-
isAttached(tabId) {
|
|
230
|
-
return this.sessions.has(tabId);
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Get the first attached session (for single-tab mode).
|
|
234
|
-
*/
|
|
235
|
-
getFirstSession() {
|
|
236
|
-
for (const session of this.sessions.values()) {
|
|
237
|
-
return session;
|
|
238
|
-
}
|
|
239
|
-
return undefined;
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Create an error for when no tab is attached.
|
|
243
|
-
*/
|
|
244
|
-
createNotAttachedError() {
|
|
245
|
-
const error = new Error('No tab attached via extension');
|
|
246
|
-
error.code = 'cdp_not_attached';
|
|
247
|
-
return error;
|
|
248
|
-
}
|
|
249
227
|
sendBridgeRequest(buildMessage, timeoutMs) {
|
|
250
|
-
const requestId = nextRequestId
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
reject(new Error(`Bridge request timed out after ${timeoutMs}ms`));
|
|
255
|
-
}, timeoutMs);
|
|
256
|
-
this.pendingRequests.set(requestId, {
|
|
257
|
-
requestId,
|
|
258
|
-
resolve: (result) => resolve(result),
|
|
259
|
-
reject,
|
|
260
|
-
timeout,
|
|
261
|
-
});
|
|
262
|
-
this.messaging.send(buildMessage(requestId));
|
|
263
|
-
});
|
|
228
|
+
const requestId = this.nextRequestId();
|
|
229
|
+
const result = this.pendingRequests.open(requestId, { timeoutMs, timeoutMessage: `Bridge request timed out after ${timeoutMs}ms` });
|
|
230
|
+
this.messaging.send(buildMessage(requestId));
|
|
231
|
+
return result;
|
|
264
232
|
}
|
|
265
233
|
}
|
|
266
234
|
//# sourceMappingURL=session-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/native-messaging/session-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/native-messaging/session-manager.ts"],"names":[],"mappings":"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"}
|