@vforsh/argus-watcher 0.3.1 → 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 +41 -7
- 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.js +10 -13
- 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 +2 -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 +18 -8
- package/dist/sources/extension-delegating-session.d.ts.map +1 -1
- package/dist/sources/extension-delegating-session.js +4 -1
- package/dist/sources/extension-delegating-session.js.map +1 -1
- package/dist/sources/extension-frame-runtime.d.ts +0 -1
- package/dist/sources/extension-frame-runtime.d.ts.map +1 -1
- package/dist/sources/extension-frame-runtime.js +3 -8
- 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 +1 -12
- package/dist/sources/extension-frame-state.d.ts.map +1 -1
- package/dist/sources/extension-frame-state.js +1 -24
- 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 +40 -10
- 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 +3 -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/http/httpUtils.js
CHANGED
|
@@ -1,30 +1,54 @@
|
|
|
1
|
+
import { getErrorCode } from '../errors.js';
|
|
1
2
|
import http from 'node:http';
|
|
3
|
+
import { formatError } from '@vforsh/argus-core';
|
|
2
4
|
export const respondJson = (res, body, status = 200) => {
|
|
3
5
|
const payload = JSON.stringify(body);
|
|
4
6
|
res.statusCode = status;
|
|
5
7
|
res.setHeader('Content-Type', 'application/json');
|
|
6
8
|
res.end(payload);
|
|
7
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Send an `ok: false` failure envelope.
|
|
12
|
+
*
|
|
13
|
+
* The only way a route should build one. Routes used to hand-roll the object literal without a
|
|
14
|
+
* `satisfies ErrorResponse`, so their `code` was an unchecked string and a rename of an
|
|
15
|
+
* {@link ArgusErrorCode} member would not have broken them — the typed `code` parameter here closes
|
|
16
|
+
* that hole for every caller at once. `undefined` is allowed only because an arbitrary thrown error
|
|
17
|
+
* may not map to a known code (see {@link respondError}).
|
|
18
|
+
*/
|
|
19
|
+
export const respondApiError = (res, status, code, message) => {
|
|
20
|
+
respondJson(res, { ok: false, error: { message, code } }, status);
|
|
21
|
+
};
|
|
8
22
|
export const respondInvalidMatch = (res, message) => {
|
|
9
|
-
|
|
23
|
+
respondApiError(res, 400, 'invalid_match', message);
|
|
10
24
|
};
|
|
11
25
|
export const respondInvalidMatchCase = (res) => {
|
|
12
|
-
|
|
26
|
+
respondApiError(res, 400, 'invalid_match_case', 'Invalid matchCase value');
|
|
13
27
|
};
|
|
14
28
|
export const respondInvalidBody = (res, message) => {
|
|
15
|
-
|
|
29
|
+
respondApiError(res, 400, 'invalid_request', message);
|
|
16
30
|
};
|
|
17
31
|
export const respondInvalidJson = (res) => {
|
|
18
|
-
|
|
32
|
+
respondApiError(res, 400, 'invalid_json', 'Invalid JSON body');
|
|
19
33
|
};
|
|
20
34
|
export const respondPayloadTooLarge = (res) => {
|
|
21
|
-
|
|
35
|
+
respondApiError(res, 413, 'payload_too_large', 'Request body too large');
|
|
22
36
|
};
|
|
23
37
|
export const respondError = (res, error) => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
38
|
+
respondApiError(res, 500, getErrorCode(error), formatError(error));
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Read and parse a JSON request body.
|
|
42
|
+
*
|
|
43
|
+
* An absent or empty body yields `{}` rather than an error: `defineJsonRoute` hands the
|
|
44
|
+
* result straight to a protocol schema, which rejects it with a real per-field message.
|
|
45
|
+
* This used to be a documented gotcha ("routes must validate required fields explicitly")
|
|
46
|
+
* because the empty object was cast to the route's body type and reached the handler
|
|
47
|
+
* unvalidated; the schema layer now owns that proof.
|
|
48
|
+
*
|
|
49
|
+
* @returns The parsed body, or `null` when a response has already been sent (oversized
|
|
50
|
+
* payload or malformed JSON).
|
|
51
|
+
*/
|
|
28
52
|
export const readJsonBody = async (req, res) => {
|
|
29
53
|
const chunks = [];
|
|
30
54
|
let size = 0;
|
|
@@ -58,14 +82,54 @@ export const readJsonBody = async (req, res) => {
|
|
|
58
82
|
return null;
|
|
59
83
|
}
|
|
60
84
|
};
|
|
85
|
+
/**
|
|
86
|
+
* Read a numeric query param that always resolves to a number.
|
|
87
|
+
*
|
|
88
|
+
* Absent or non-numeric values fall back to `fallback`; in-range values are clamped
|
|
89
|
+
* into `[min, max]`. Use {@link optionalNumber} when "absent" must stay distinguishable
|
|
90
|
+
* from a real value — this function cannot express it.
|
|
91
|
+
*/
|
|
61
92
|
export const clampNumber = (value, fallback, min, max) => {
|
|
93
|
+
const parsed = value == null ? Number.NaN : Number(value);
|
|
94
|
+
if (!Number.isFinite(parsed)) {
|
|
95
|
+
return fallback;
|
|
96
|
+
}
|
|
97
|
+
return clampToRange(parsed, min, max);
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Read an optional numeric query param.
|
|
101
|
+
*
|
|
102
|
+
* Returns `undefined` when the param is absent or non-numeric, so callers can tell
|
|
103
|
+
* "not provided" from a provided `0`. Provided values are clamped into `[min, max]`.
|
|
104
|
+
*/
|
|
105
|
+
export const optionalNumber = (value, min, max) => {
|
|
62
106
|
if (value == null) {
|
|
63
|
-
return
|
|
107
|
+
return undefined;
|
|
64
108
|
}
|
|
65
109
|
const parsed = Number(value);
|
|
66
110
|
if (!Number.isFinite(parsed)) {
|
|
67
|
-
return
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
return clampToRange(parsed, min, max);
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Read an optional positive-integer query param (buffer ids and other 1-based handles).
|
|
117
|
+
*
|
|
118
|
+
* Unlike {@link optionalNumber} this rejects rather than clamps: fractional, negative,
|
|
119
|
+
* zero, and unsafe-integer values all yield `undefined` so a bad id can never be
|
|
120
|
+
* silently coerced into a valid lookup.
|
|
121
|
+
*/
|
|
122
|
+
export const optionalPositiveInt = (value) => {
|
|
123
|
+
if (!value) {
|
|
124
|
+
return undefined;
|
|
68
125
|
}
|
|
126
|
+
const parsed = Number(value);
|
|
127
|
+
if (!Number.isSafeInteger(parsed) || parsed < 1) {
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
return parsed;
|
|
131
|
+
};
|
|
132
|
+
const clampToRange = (parsed, min, max) => {
|
|
69
133
|
if (min != null && parsed < min) {
|
|
70
134
|
return min;
|
|
71
135
|
}
|
|
@@ -149,22 +213,4 @@ export const normalizeTimeout = (value) => {
|
|
|
149
213
|
}
|
|
150
214
|
return parsed;
|
|
151
215
|
};
|
|
152
|
-
const resolveErrorCode = (error) => {
|
|
153
|
-
if (!error || typeof error !== 'object') {
|
|
154
|
-
return undefined;
|
|
155
|
-
}
|
|
156
|
-
if ('code' in error && typeof error.code === 'string') {
|
|
157
|
-
return error.code;
|
|
158
|
-
}
|
|
159
|
-
return undefined;
|
|
160
|
-
};
|
|
161
|
-
const formatError = (error) => {
|
|
162
|
-
if (!error) {
|
|
163
|
-
return 'unknown error';
|
|
164
|
-
}
|
|
165
|
-
if (error instanceof Error) {
|
|
166
|
-
return error.message;
|
|
167
|
-
}
|
|
168
|
-
return String(error);
|
|
169
|
-
};
|
|
170
216
|
//# sourceMappingURL=httpUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpUtils.js","sourceRoot":"","sources":["../../src/http/httpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"httpUtils.js","sourceRoot":"","sources":["../../src/http/httpUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/http/router.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { respondApiError } from './httpUtils.js';
|
|
2
2
|
import { watcherRoutes } from './routes/index.js';
|
|
3
3
|
const routes = new Map(watcherRoutes.map((route) => [`${route.method} ${route.path}`, route]));
|
|
4
4
|
/** Dispatch an incoming request to the matching route handler, or respond 404. */
|
|
5
5
|
export const dispatch = (req, res, url, ctx) => {
|
|
6
6
|
const entry = routes.get(`${req.method} ${url.pathname}`);
|
|
7
7
|
if (!entry || (entry.extensionOnly && !ctx.sourceHandle)) {
|
|
8
|
-
|
|
8
|
+
respondApiError(res, 404, 'not_found', 'Not found');
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
11
|
void entry.handler(req, res, url, ctx);
|
package/dist/http/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAyC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;AAEtI,kFAAkF;AAClF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAyB,EAAE,GAAwB,EAAE,GAAQ,EAAE,GAAiB,EAAQ,EAAE;IAClH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACzD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;QACnD,OAAM;IACP,CAAC;IACD,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACvC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authCookies.d.ts","sourceRoot":"","sources":["../../../src/http/routes/authCookies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authCookies.d.ts","sourceRoot":"","sources":["../../../src/http/routes/authCookies.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAiB9D,eAAO,MAAM,cAAc,wBAQzB,CAAA;AAEF,eAAO,MAAM,cAAc,wBAQzB,CAAA;AAEF,eAAO,MAAM,iBAAiB,wBAQ5B,CAAA;AAEF,eAAO,MAAM,gBAAgB,wBAQ3B,CAAA"}
|
|
@@ -1,102 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { clearAuthCookies, deleteAuthCookie, inspectAuthCookie, setAuthCookie } from '../../cdp/
|
|
1
|
+
import { authCookieClearRequestSchema, authCookieDeleteRequestSchema, authCookieGetRequestSchema, authCookieSetRequestSchema, } from '@vforsh/argus-core';
|
|
2
|
+
import { clearAuthCookies, deleteAuthCookie, inspectAuthCookie, setAuthCookie } from '../../cdp/authCookies.js';
|
|
3
3
|
import { defineJsonRoute } from './defineRoute.js';
|
|
4
|
-
const CLEAR_SCOPES = new Set(['origin', 'site', 'domain', 'browserContext']);
|
|
5
|
-
const validateCookieGetPayload = (payload) => {
|
|
6
|
-
const identityError = validateCookieIdentityPayload(payload);
|
|
7
|
-
if (identityError) {
|
|
8
|
-
return identityError;
|
|
9
|
-
}
|
|
10
|
-
if (payload.includeValue != null && typeof payload.includeValue !== 'boolean') {
|
|
11
|
-
return 'includeValue must be a boolean';
|
|
12
|
-
}
|
|
13
|
-
return null;
|
|
14
|
-
};
|
|
15
|
-
const validateCookieDeletePayload = (payload) => validateCookieIdentityPayload(payload);
|
|
16
|
-
const validateCookieSetPayload = (payload) => {
|
|
17
|
-
if (!payload.cookie || typeof payload.cookie !== 'object') {
|
|
18
|
-
return 'cookie is required';
|
|
19
|
-
}
|
|
20
|
-
const identityError = validateCookieIdentityPayload(payload.cookie);
|
|
21
|
-
if (identityError) {
|
|
22
|
-
return identityError;
|
|
23
|
-
}
|
|
24
|
-
if (typeof payload.cookie.value !== 'string') {
|
|
25
|
-
return 'cookie.value must be a string';
|
|
26
|
-
}
|
|
27
|
-
if (typeof payload.cookie.secure !== 'boolean') {
|
|
28
|
-
return 'cookie.secure must be a boolean';
|
|
29
|
-
}
|
|
30
|
-
if (typeof payload.cookie.httpOnly !== 'boolean') {
|
|
31
|
-
return 'cookie.httpOnly must be a boolean';
|
|
32
|
-
}
|
|
33
|
-
if (typeof payload.cookie.session !== 'boolean') {
|
|
34
|
-
return 'cookie.session must be a boolean';
|
|
35
|
-
}
|
|
36
|
-
if (payload.cookie.expires !== null && (typeof payload.cookie.expires !== 'number' || !Number.isFinite(payload.cookie.expires))) {
|
|
37
|
-
return 'cookie.expires must be a finite number or null';
|
|
38
|
-
}
|
|
39
|
-
if (payload.cookie.sameSite !== null && payload.cookie.sameSite !== undefined && typeof payload.cookie.sameSite !== 'string') {
|
|
40
|
-
return 'cookie.sameSite must be a string or null';
|
|
41
|
-
}
|
|
42
|
-
if (payload.cookie.sameSite && !normalizeCookieSameSite(payload.cookie.sameSite)) {
|
|
43
|
-
return 'cookie.sameSite must be one of: Strict, Lax, None';
|
|
44
|
-
}
|
|
45
|
-
if (payload.cookie.session && payload.cookie.expires != null) {
|
|
46
|
-
return 'cookie.expires must be null when cookie.session is true';
|
|
47
|
-
}
|
|
48
|
-
if (!payload.cookie.session && payload.cookie.expires == null) {
|
|
49
|
-
return 'cookie.expires is required when cookie.session is false';
|
|
50
|
-
}
|
|
51
|
-
if (normalizeCookieSameSite(payload.cookie.sameSite) === 'None' && !payload.cookie.secure) {
|
|
52
|
-
return 'cookie.secure must be true when cookie.sameSite is None';
|
|
53
|
-
}
|
|
54
|
-
return null;
|
|
55
|
-
};
|
|
56
|
-
const validateCookieClearPayload = (payload) => {
|
|
57
|
-
if (!CLEAR_SCOPES.has(payload.scope)) {
|
|
58
|
-
return 'scope must be one of: origin, site, domain, browserContext';
|
|
59
|
-
}
|
|
60
|
-
if (payload.scope === 'domain' && !normalizeCookieDomainFilter(payload.domain)) {
|
|
61
|
-
return 'domain is required when scope is "domain"';
|
|
62
|
-
}
|
|
63
|
-
if (payload.scope !== 'domain' && payload.domain != null && typeof payload.domain !== 'string') {
|
|
64
|
-
return 'domain must be a string when provided';
|
|
65
|
-
}
|
|
66
|
-
if (payload.sessionOnly != null && typeof payload.sessionOnly !== 'boolean') {
|
|
67
|
-
return 'sessionOnly must be a boolean';
|
|
68
|
-
}
|
|
69
|
-
if (payload.authOnly != null && typeof payload.authOnly !== 'boolean') {
|
|
70
|
-
return 'authOnly must be a boolean';
|
|
71
|
-
}
|
|
72
|
-
return null;
|
|
73
|
-
};
|
|
74
4
|
const createAuthCookieRoute = (options) => defineJsonRoute({
|
|
75
5
|
method: 'POST',
|
|
76
6
|
path: `/${options.endpoint}`,
|
|
77
|
-
|
|
7
|
+
bodySchema: options.bodySchema,
|
|
78
8
|
endpoint: options.endpoint,
|
|
79
|
-
validate: options.validate,
|
|
80
9
|
handle: ({ ctx, body: payload }) => options.run(payload, ctx),
|
|
81
10
|
});
|
|
82
|
-
const validateCookieIdentityPayload = (payload) => {
|
|
83
|
-
if (typeof payload.name !== 'string' || payload.name.trim() === '') {
|
|
84
|
-
return 'name is required';
|
|
85
|
-
}
|
|
86
|
-
if (typeof payload.domain !== 'string' || payload.domain.trim() === '') {
|
|
87
|
-
return 'domain is required';
|
|
88
|
-
}
|
|
89
|
-
if (typeof payload.path !== 'string' || payload.path.trim() === '') {
|
|
90
|
-
return 'path is required';
|
|
91
|
-
}
|
|
92
|
-
if (!payload.path.startsWith('/')) {
|
|
93
|
-
return 'path must start with "/"';
|
|
94
|
-
}
|
|
95
|
-
return null;
|
|
96
|
-
};
|
|
97
11
|
export const cookieGetRoute = createAuthCookieRoute({
|
|
98
12
|
endpoint: 'auth/cookies/get',
|
|
99
|
-
|
|
13
|
+
bodySchema: authCookieGetRequestSchema,
|
|
100
14
|
run: (payload, ctx) => inspectAuthCookie(ctx.cdpSession, {
|
|
101
15
|
...payload,
|
|
102
16
|
readBrowserCookies: ctx.readBrowserCookies,
|
|
@@ -104,7 +18,7 @@ export const cookieGetRoute = createAuthCookieRoute({
|
|
|
104
18
|
});
|
|
105
19
|
export const cookieSetRoute = createAuthCookieRoute({
|
|
106
20
|
endpoint: 'auth/cookies/set',
|
|
107
|
-
|
|
21
|
+
bodySchema: authCookieSetRequestSchema,
|
|
108
22
|
run: (payload, ctx) => setAuthCookie(ctx.cdpSession, {
|
|
109
23
|
...payload,
|
|
110
24
|
readBrowserCookies: ctx.readBrowserCookies,
|
|
@@ -112,7 +26,7 @@ export const cookieSetRoute = createAuthCookieRoute({
|
|
|
112
26
|
});
|
|
113
27
|
export const cookieDeleteRoute = createAuthCookieRoute({
|
|
114
28
|
endpoint: 'auth/cookies/delete',
|
|
115
|
-
|
|
29
|
+
bodySchema: authCookieDeleteRequestSchema,
|
|
116
30
|
run: (payload, ctx) => deleteAuthCookie(ctx.cdpSession, {
|
|
117
31
|
...payload,
|
|
118
32
|
readBrowserCookies: ctx.readBrowserCookies,
|
|
@@ -120,7 +34,7 @@ export const cookieDeleteRoute = createAuthCookieRoute({
|
|
|
120
34
|
});
|
|
121
35
|
export const cookieClearRoute = createAuthCookieRoute({
|
|
122
36
|
endpoint: 'auth/cookies/clear',
|
|
123
|
-
|
|
37
|
+
bodySchema: authCookieClearRequestSchema,
|
|
124
38
|
run: (payload, ctx) => clearAuthCookies(ctx.cdpSession, {
|
|
125
39
|
...payload,
|
|
126
40
|
readBrowserCookies: ctx.readBrowserCookies,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authCookies.js","sourceRoot":"","sources":["../../../src/http/routes/authCookies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authCookies.js","sourceRoot":"","sources":["../../../src/http/routes/authCookies.ts"],"names":[],"mappings":"AAWA,OAAO,EACN,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,GAC1B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC/G,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,qBAAqB,GAAG,CAA2C,OAIxE,EAA0B,EAAE,CAC5B,eAAe,CAAsB;IACpC,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;IAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;CAC7D,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,qBAAqB,CAA8C;IAChG,QAAQ,EAAE,kBAAkB;IAC5B,UAAU,EAAE,0BAA0B;IACtC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE;QACjC,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,qBAAqB,CAA8C;IAChG,QAAQ,EAAE,kBAAkB;IAC5B,UAAU,EAAE,0BAA0B;IACtC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE;QAC7B,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAoD;IACzG,QAAQ,EAAE,qBAAqB;IAC/B,UAAU,EAAE,6BAA6B;IACzC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE;QAChC,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAkD;IACtG,QAAQ,EAAE,oBAAoB;IAC9B,UAAU,EAAE,4BAA4B;IACxC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACrB,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE;QAChC,GAAG,OAAO;QACV,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC1C,CAAC;CACH,CAAC,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ProtocolSchema } from '@vforsh/argus-core';
|
|
1
2
|
import type { HttpRequestEventMetadata } from '../server.js';
|
|
2
3
|
import type { DomNodeHandle } from '../../cdp/dom/selector.js';
|
|
3
4
|
import type { WatcherRouteDefinition } from './defineRoute.js';
|
|
@@ -25,11 +26,8 @@ type DomTargetRouteInput<TBody extends DomTargetRequestBody, TExtra extends obje
|
|
|
25
26
|
* `all` is false.
|
|
26
27
|
*/
|
|
27
28
|
action: string;
|
|
28
|
-
/**
|
|
29
|
-
|
|
30
|
-
* Returns an error message to respond 400 `invalid_request`, or null.
|
|
31
|
-
*/
|
|
32
|
-
validate?: (payload: TBody) => string | null;
|
|
29
|
+
/** Schema that validates this route's body, including the shared target fields. */
|
|
30
|
+
bodySchema: ProtocolSchema<TBody>;
|
|
33
31
|
/**
|
|
34
32
|
* Run the DOM action against the resolved handles. Receives both the
|
|
35
33
|
* "filtered" handles (subject to `text`/`all`) and `allHandles` for routes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineDomTargetRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/defineDomTargetRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK9C;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,mBAAmB,CAAC,KAAK,SAAS,oBAAoB,EAAE,MAAM,SAAS,MAAM,IAAI;IACrF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,4CAA4C;IAC5C,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAC9C;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd
|
|
1
|
+
{"version":3,"file":"defineDomTargetRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/defineDomTargetRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK9C;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,mBAAmB,CAAC,KAAK,SAAS,oBAAoB,EAAE,MAAM,SAAS,MAAM,IAAI;IACrF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,4CAA4C;IAC5C,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAC9C;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,mFAAmF;IACnF,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IACjC;;;;;;;;OAQG;IACH,GAAG,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAAC,UAAU,EAAE,aAAa,EAAE,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,YAAY,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;CACtI,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,SAAS,oBAAoB,EAAE,MAAM,SAAS,MAAM,EAC7F,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,KACvC,sBA4BA,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolveElementTargets } from '../../cdp/dom/selector.js';
|
|
2
2
|
import { defineJsonRoute } from './defineRoute.js';
|
|
3
|
-
import { respondMissingElementRef, respondMultipleMatches, respondTargetResolutionError
|
|
3
|
+
import { respondMissingElementRef, respondMultipleMatches, respondTargetResolutionError } from './domSelectorRoute.js';
|
|
4
4
|
/**
|
|
5
5
|
* Build a `WatcherRouteDefinition` for routes that resolve an element target
|
|
6
6
|
* (selector/ref + text/all/wait) and perform a DOM action.
|
|
@@ -12,9 +12,8 @@ import { respondMissingElementRef, respondMultipleMatches, respondTargetResoluti
|
|
|
12
12
|
export const defineDomTargetRoute = (input) => defineJsonRoute({
|
|
13
13
|
method: input.method ?? 'POST',
|
|
14
14
|
path: input.path,
|
|
15
|
-
|
|
15
|
+
bodySchema: input.bodySchema,
|
|
16
16
|
endpoint: input.endpoint,
|
|
17
|
-
validate: (payload) => validateDomTargetBody(payload) ?? input.validate?.(payload) ?? null,
|
|
18
17
|
handle: async ({ res, ctx, body: payload }) => {
|
|
19
18
|
const all = payload.all ?? false;
|
|
20
19
|
const resolved = await resolveElementTargets(ctx.cdpSession, ctx.elementRefs, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineDomTargetRoute.js","sourceRoot":"","sources":["../../../src/http/routes/defineDomTargetRoute.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defineDomTargetRoute.js","sourceRoot":"","sources":["../../../src/http/routes/defineDomTargetRoute.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAA;AAwCtH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,KAAyC,EAChB,EAAE,CAC3B,eAAe,CAAgD;IAC9D,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM;IAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAA;QAChC,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;YAC7E,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG;YACH,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,IAAI;SACpB,CAAC,CAAA;QACF,IAAI,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACxC,OAAO,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;QACxC,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;QACpE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAC1D,CAAC;IACD,WAAW,EAAE,4BAA4B;CACzC,CAAC,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { CdpSourceHandle } from '../../sources/types.js';
|
|
2
|
+
import { defineJsonRoute, type JsonRouteHandlerInput, type WatcherRouteDefinition } from './defineRoute.js';
|
|
3
|
+
/** The optional members of {@link CdpSourceHandle} that only an extension-backed source provides. */
|
|
4
|
+
export type ExtensionCapability = {
|
|
5
|
+
[K in keyof CdpSourceHandle]-?: undefined extends CdpSourceHandle[K] ? NonNullable<CdpSourceHandle[K]> extends (...args: never[]) => unknown ? K : never : never;
|
|
6
|
+
}[keyof CdpSourceHandle];
|
|
7
|
+
/** The capability method itself, with its optionality resolved. */
|
|
8
|
+
type ExtensionCapabilityFn<K extends ExtensionCapability> = NonNullable<CdpSourceHandle[K]>;
|
|
9
|
+
type ExtensionRouteInput<TBody, TResponse extends object, TCapability extends ExtensionCapability> = {
|
|
10
|
+
method: 'GET' | 'POST';
|
|
11
|
+
path: string;
|
|
12
|
+
bodySchema?: Parameters<typeof defineJsonRoute<TBody, TResponse>>[0]['bodySchema'];
|
|
13
|
+
/** The source-handle method this route needs. Absent on the active source means 400 `not_available`. */
|
|
14
|
+
capability: TCapability;
|
|
15
|
+
handle: (input: JsonRouteHandlerInput<TBody> & {
|
|
16
|
+
capability: ExtensionCapabilityFn<TCapability>;
|
|
17
|
+
}) => Promise<TResponse | void> | TResponse | void;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Build a route that only an extension-backed source can serve.
|
|
21
|
+
*
|
|
22
|
+
* Capability used to be checked three times per request — the `extensionOnly` route flag, the
|
|
23
|
+
* router's `sourceHandle` presence check, and a per-method `if (!ctx.sourceHandle?.x)` in the
|
|
24
|
+
* handler — because the handle expresses capability as method optionality. This owns the third
|
|
25
|
+
* check, the shared "Not available" response, and the shared `extension_action_failed` error
|
|
26
|
+
* mapping, and hands the handler a method it does not have to re-narrow.
|
|
27
|
+
*/
|
|
28
|
+
export declare const defineExtensionRoute: <TBody = undefined, TResponse extends object = object, TCapability extends ExtensionCapability = ExtensionCapability>(input: ExtensionRouteInput<TBody, TResponse, TCapability>) => WatcherRouteDefinition;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=defineExtensionRoute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineExtensionRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/defineExtensionRoute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAE3G,qGAAqG;AACrG,MAAM,MAAM,mBAAmB,GAAG;KAChC,CAAC,IAAI,MAAM,eAAe,CAAC,CAAC,GAAG,SAAS,SAAS,eAAe,CAAC,CAAC,CAAC,GACjE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GACpE,CAAC,GACD,KAAK,GACN,KAAK;CACR,CAAC,MAAM,eAAe,CAAC,CAAA;AAExB,mEAAmE;AACnE,KAAK,qBAAqB,CAAC,CAAC,SAAS,mBAAmB,IAAI,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3F,KAAK,mBAAmB,CAAC,KAAK,EAAE,SAAS,SAAS,MAAM,EAAE,WAAW,SAAS,mBAAmB,IAAI;IACpG,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAClF,wGAAwG;IACxG,UAAU,EAAE,WAAW,CAAA;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG;QAAE,UAAU,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAA;CAClJ,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAChC,KAAK,GAAG,SAAS,EACjB,SAAS,SAAS,MAAM,GAAG,MAAM,EACjC,WAAW,SAAS,mBAAmB,GAAG,mBAAmB,EAE7D,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,KACvD,sBAkBA,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { formatError } from '@vforsh/argus-core';
|
|
2
|
+
import { respondApiError } from '../httpUtils.js';
|
|
3
|
+
import { defineJsonRoute } from './defineRoute.js';
|
|
4
|
+
/**
|
|
5
|
+
* Build a route that only an extension-backed source can serve.
|
|
6
|
+
*
|
|
7
|
+
* Capability used to be checked three times per request — the `extensionOnly` route flag, the
|
|
8
|
+
* router's `sourceHandle` presence check, and a per-method `if (!ctx.sourceHandle?.x)` in the
|
|
9
|
+
* handler — because the handle expresses capability as method optionality. This owns the third
|
|
10
|
+
* check, the shared "Not available" response, and the shared `extension_action_failed` error
|
|
11
|
+
* mapping, and hands the handler a method it does not have to re-narrow.
|
|
12
|
+
*/
|
|
13
|
+
export const defineExtensionRoute = (input) => defineJsonRoute({
|
|
14
|
+
method: input.method,
|
|
15
|
+
path: input.path,
|
|
16
|
+
bodySchema: input.bodySchema,
|
|
17
|
+
extensionOnly: true,
|
|
18
|
+
handle: (handlerInput) => {
|
|
19
|
+
const capability = handlerInput.ctx.sourceHandle?.[input.capability];
|
|
20
|
+
if (!capability) {
|
|
21
|
+
return respondNotAvailable(handlerInput.res);
|
|
22
|
+
}
|
|
23
|
+
return input.handle({ ...handlerInput, capability });
|
|
24
|
+
},
|
|
25
|
+
handleError: (res, error) => {
|
|
26
|
+
respondApiError(res, 400, 'extension_action_failed', formatError(error));
|
|
27
|
+
return true;
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
const respondNotAvailable = (res) => {
|
|
31
|
+
respondApiError(res, 400, 'not_available', 'Not available');
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=defineExtensionRoute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defineExtensionRoute.js","sourceRoot":"","sources":["../../../src/http/routes/defineExtensionRoute.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,eAAe,EAA2D,MAAM,kBAAkB,CAAA;AAuB3G;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAKnC,KAAyD,EAChC,EAAE,CAC3B,eAAe,CAAmB;IACjC,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,UAAU,CAAmD,CAAA;QACtH,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QAC7C,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,UAAU,EAAE,CAAC,CAAA;IACrD,CAAC;IACD,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC3B,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,yBAAyB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QACxE,OAAO,IAAI,CAAA;IACZ,CAAC;CACD,CAAC,CAAA;AAEH,MAAM,mBAAmB,GAAG,CAAC,GAAwB,EAAQ,EAAE;IAC9D,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;AAC5D,CAAC,CAAA"}
|
|
@@ -11,16 +11,16 @@ export type WatcherRouteDefinition = {
|
|
|
11
11
|
type JsonRouteInput<TBody, TResponse extends object> = {
|
|
12
12
|
method: 'GET' | 'POST';
|
|
13
13
|
path: string;
|
|
14
|
-
bodySchema?: ProtocolSchema<TBody>;
|
|
15
|
-
parseBody?: boolean;
|
|
16
14
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
15
|
+
* Schema that parses and validates the request body.
|
|
16
|
+
*
|
|
17
|
+
* This is the only way to read a body. There used to be a `parseBody: true` escape
|
|
18
|
+
* hatch that handed the route an unvalidated payload already typed as `TBody` — the
|
|
19
|
+
* type parameter was a lie until a hand-written `validate` closure re-proved it, and
|
|
20
|
+
* ~450 LOC of per-route `typeof` checks and casts grew in that gap. Omit this and the
|
|
21
|
+
* handler receives no body at all.
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
bodySchema?: ProtocolSchema<TBody>;
|
|
24
24
|
endpoint?: HttpRequestEventMetadata['endpoint'];
|
|
25
25
|
extensionOnly?: boolean;
|
|
26
26
|
handle: (input: JsonRouteHandlerInput<TBody>) => Promise<TResponse | void> | TResponse | void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/defineRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK5D,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,YAAY,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,KAAK,cAAc,CAAC,KAAK,EAAE,SAAS,SAAS,MAAM,IAAI;IACtD,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IAClC,
|
|
1
|
+
{"version":3,"file":"defineRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/defineRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK5D,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,YAAY,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,KAAK,cAAc,CAAC,KAAK,EAAE,SAAS,SAAS,MAAM,IAAI;IACtD,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IAClC,QAAQ,CAAC,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAA;IAC7F,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,CAAA;CAC1E,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI;IAC1C,GAAG,EAAE,IAAI,CAAC,eAAe,CAAA;IACzB,GAAG,EAAE,IAAI,CAAC,cAAc,CAAA;IACxB,GAAG,EAAE,GAAG,CAAA;IACR,GAAG,EAAE,YAAY,CAAA;IACjB,IAAI,EAAE,KAAK,CAAA;CACX,CAAA;AAED,0GAA0G;AAC1G,eAAO,MAAM,eAAe,GAAI,KAAK,GAAG,SAAS,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,EACnF,OAAO,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,KACrC,sBAmCD,CAAA"}
|
|
@@ -7,19 +7,17 @@ export const defineJsonRoute = (input) => ({
|
|
|
7
7
|
path: input.path,
|
|
8
8
|
extensionOnly: input.extensionOnly,
|
|
9
9
|
handler: async (req, res, url, ctx) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (validationError) {
|
|
22
|
-
return respondInvalidBody(res, validationError);
|
|
10
|
+
let body = undefined;
|
|
11
|
+
if (input.bodySchema) {
|
|
12
|
+
const rawBody = await readJsonBody(req, res);
|
|
13
|
+
if (rawBody == null) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const parsed = input.bodySchema.parse(rawBody);
|
|
17
|
+
if (!parsed.ok) {
|
|
18
|
+
return respondInvalidBody(res, formatProtocolValidationIssues(parsed.issues));
|
|
19
|
+
}
|
|
20
|
+
body = parsed.value;
|
|
23
21
|
}
|
|
24
22
|
if (input.endpoint) {
|
|
25
23
|
emitRequest(ctx, res, input.endpoint);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineRoute.js","sourceRoot":"","sources":["../../../src/http/routes/defineRoute.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAoCxC,0GAA0G;AAC1G,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,KAAuC,EACd,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,aAAa,EAAE,KAAK,CAAC,aAAa;IAClC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrC,
|
|
1
|
+
{"version":3,"file":"defineRoute.js","sourceRoot":"","sources":["../../../src/http/routes/defineRoute.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAoCxC,0GAA0G;AAC1G,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,KAAuC,EACd,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,aAAa,EAAE,KAAK,CAAC,aAAa;IAClC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,SAAkB,CAAA;QAC7B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAC5C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACrB,OAAM;YACP,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,kBAAkB,CAAC,GAAG,EAAE,8BAA8B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YAC9E,CAAC;YACD,IAAI,GAAG,MAAM,CAAC,KAAK,CAAA;QACpB,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QACtC,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;YACjE,IAAI,QAAQ,EAAE,CAAC;gBACd,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC3B,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAM;YACP,CAAC;YACD,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC;IACF,CAAC;CACD,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domSelectorRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/domSelectorRoute.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domSelectorRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/domSelectorRoute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAGjC,KAAK,eAAe,GAAG;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,GAAG,CAAC,EAAE,OAAO,CAAA;CACb,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,eAAe,KAAG,MAAM,GAAG,IAYzE,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,KAAK,IAAI,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,IAYlG,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,KAAK,IAAI,CAAC,cAAc,EAAE,KAAK,MAAM,KAAG,IAYhF,CAAA;AAED,eAAO,MAAM,4BAA4B,GAAI,KAAK,IAAI,CAAC,cAAc,EAAE,OAAO,OAAO,KAAG,OAQvF,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { hasErrorCode } from '../../errors.js';
|
|
2
|
+
import { respondApiError, respondJson } from '../httpUtils.js';
|
|
2
3
|
/**
|
|
3
4
|
* Validate the shared DOM target body shape (exactly one of selector/ref, plus
|
|
4
5
|
* an optional `all` toggle). Returns an error message, or null when valid.
|
|
@@ -34,15 +35,11 @@ export const respondMissingElementRef = (res, ref) => {
|
|
|
34
35
|
}, 400);
|
|
35
36
|
};
|
|
36
37
|
export const respondTargetResolutionError = (res, error) => {
|
|
37
|
-
if (!error
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
const code = 'code' in error ? error.code : undefined;
|
|
41
|
-
if (code !== 'invalid_ref') {
|
|
38
|
+
if (!hasErrorCode(error, 'invalid_ref')) {
|
|
42
39
|
return false;
|
|
43
40
|
}
|
|
44
41
|
const message = error instanceof Error && error.message ? error.message : 'Unknown or stale element ref. Run argus snapshot or locate again.';
|
|
45
|
-
|
|
42
|
+
respondApiError(res, 400, 'invalid_ref', message);
|
|
46
43
|
return true;
|
|
47
44
|
};
|
|
48
45
|
//# sourceMappingURL=domSelectorRoute.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domSelectorRoute.js","sourceRoot":"","sources":["../../../src/http/routes/domSelectorRoute.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domSelectorRoute.js","sourceRoot":"","sources":["../../../src/http/routes/domSelectorRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAQ9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAwB,EAAiB,EAAE;IAChF,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAC1F,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAC3E,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,4CAA4C,CAAA;IACpD,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,uBAAuB,CAAA;IAC/B,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAwB,EAAE,OAAe,EAAE,MAAc,EAAQ,EAAE;IACzG,WAAW,CACV,GAAG,EACH;QACC,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACN,OAAO,EAAE,oBAAoB,OAAO,+BAA+B,MAAM,cAAc;YACvF,IAAI,EAAE,kBAAkB;SACxB;KACD,EACD,GAAG,CACH,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAwB,EAAE,GAAW,EAAQ,EAAE;IACvF,WAAW,CACV,GAAG,EACH;QACC,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACN,OAAO,EAAE,iCAAiC,GAAG,uCAAuC;YACpF,IAAI,EAAE,aAAa;SACnB;KACD,EACD,GAAG,CACH,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,GAAwB,EAAE,KAAc,EAAW,EAAE;IACjG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mEAAmE,CAAA;IAC7I,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IACjD,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA"}
|