@vforsh/argus-watcher 0.5.3 → 0.5.5
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/cdp/ffmpeg.d.ts +22 -6
- package/dist/cdp/ffmpeg.d.ts.map +1 -1
- package/dist/cdp/ffmpeg.js +90 -30
- package/dist/cdp/ffmpeg.js.map +1 -1
- package/dist/cdp/navigation.d.ts +82 -0
- package/dist/cdp/navigation.d.ts.map +1 -0
- package/dist/cdp/navigation.js +186 -0
- package/dist/cdp/navigation.js.map +1 -0
- package/dist/cdp/protocol.d.ts +24 -0
- package/dist/cdp/protocol.d.ts.map +1 -1
- package/dist/cdp/recording.d.ts +3 -1
- package/dist/cdp/recording.d.ts.map +1 -1
- package/dist/cdp/recording.js +237 -132
- package/dist/cdp/recording.js.map +1 -1
- package/dist/cdp/recordingSession.d.ts +97 -0
- package/dist/cdp/recordingSession.d.ts.map +1 -0
- package/dist/cdp/recordingSession.js +157 -0
- package/dist/cdp/recordingSession.js.map +1 -0
- package/dist/cdp/scenarioBridge.d.ts +2 -0
- package/dist/cdp/scenarioBridge.d.ts.map +1 -1
- package/dist/cdp/scenarioBridge.js +49 -3
- package/dist/cdp/scenarioBridge.js.map +1 -1
- package/dist/cdp/screenshot.d.ts.map +1 -1
- package/dist/cdp/screenshot.js +3 -2
- package/dist/cdp/screenshot.js.map +1 -1
- package/dist/cdp/visualCapture.d.ts +20 -0
- package/dist/cdp/visualCapture.d.ts.map +1 -1
- package/dist/cdp/visualCapture.js +53 -42
- package/dist/cdp/visualCapture.js.map +1 -1
- package/dist/cdp/watcher.d.ts.map +1 -1
- package/dist/cdp/watcher.js +55 -1
- package/dist/cdp/watcher.js.map +1 -1
- package/dist/http/endpoints.d.ts +1 -1
- package/dist/http/endpoints.d.ts.map +1 -1
- package/dist/http/endpoints.js +3 -0
- package/dist/http/endpoints.js.map +1 -1
- package/dist/http/routes/getStatus.js +1 -0
- package/dist/http/routes/getStatus.js.map +1 -1
- package/dist/http/routes/index.d.ts.map +1 -1
- package/dist/http/routes/index.js +4 -0
- package/dist/http/routes/index.js.map +1 -1
- package/dist/http/routes/postDomClick.d.ts.map +1 -1
- package/dist/http/routes/postDomClick.js +15 -9
- package/dist/http/routes/postDomClick.js.map +1 -1
- package/dist/http/routes/postDomKeydown.d.ts.map +1 -1
- package/dist/http/routes/postDomKeydown.js +4 -2
- package/dist/http/routes/postDomKeydown.js.map +1 -1
- package/dist/http/routes/postEval.d.ts.map +1 -1
- package/dist/http/routes/postEval.js +1 -0
- package/dist/http/routes/postEval.js.map +1 -1
- package/dist/http/routes/postNavigate.d.ts +12 -0
- package/dist/http/routes/postNavigate.d.ts.map +1 -0
- package/dist/http/routes/postNavigate.js +51 -0
- package/dist/http/routes/postNavigate.js.map +1 -0
- package/dist/http/routes/postNavigateHistory.d.ts +9 -0
- package/dist/http/routes/postNavigateHistory.d.ts.map +1 -0
- package/dist/http/routes/postNavigateHistory.js +35 -0
- package/dist/http/routes/postNavigateHistory.js.map +1 -0
- package/dist/http/routes/postRecord.d.ts.map +1 -1
- package/dist/http/routes/postRecord.js +9 -0
- package/dist/http/routes/postRecord.js.map +1 -1
- package/dist/internal.d.ts +1 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +1 -0
- package/dist/internal.js.map +1 -1
- package/dist/sources/extension-session-events.d.ts.map +1 -1
- package/dist/sources/extension-session-events.js +21 -0
- package/dist/sources/extension-session-events.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { evaluateInPage } from './pageState.js';
|
|
2
2
|
import { resolveFirstSelectorNodeId } from './dom/selector.js';
|
|
3
|
+
/** Translate a viewport-relative clip into the document coordinates `Page.captureScreenshot` expects. */
|
|
4
|
+
export const toPageClip = (clip, pageOffset) => ({
|
|
5
|
+
...clip,
|
|
6
|
+
x: clip.x + (pageOffset?.x ?? 0),
|
|
7
|
+
y: clip.y + (pageOffset?.y ?? 0),
|
|
8
|
+
});
|
|
3
9
|
/**
|
|
4
10
|
* Resolve a viewport/selector/clip request into the top-level page session that can capture pixels.
|
|
5
11
|
* Frame targets use their selected frame session for DOM lookup, then translate the clip to page pixels.
|
|
@@ -15,58 +21,65 @@ export const createVisualCapturePlan = async (session, pageSession, request) =>
|
|
|
15
21
|
subject,
|
|
16
22
|
});
|
|
17
23
|
}
|
|
18
|
-
|
|
19
|
-
if (
|
|
24
|
+
// Whole-viewport capture needs no geometry at all, so it costs no round-trips.
|
|
25
|
+
if (subject.kind === 'viewport') {
|
|
20
26
|
return { session };
|
|
21
27
|
}
|
|
28
|
+
const viewport = await resolveViewportState(session);
|
|
22
29
|
return {
|
|
23
30
|
session,
|
|
24
|
-
clip,
|
|
25
|
-
viewport:
|
|
31
|
+
clip: await resolveSubjectClip(session, subject, viewport),
|
|
32
|
+
viewport: viewport.size,
|
|
33
|
+
pageOffset: viewport.offset,
|
|
26
34
|
};
|
|
27
35
|
};
|
|
28
36
|
const createFrameCapturePlan = async (options) => {
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
if (!subjectClip) {
|
|
37
|
+
const pageViewport = await resolveViewportState(options.pageSession);
|
|
38
|
+
const frameClip = await resolveFrameViewportClip(options.pageSession, options.frameContext.frameId, pageViewport);
|
|
39
|
+
if (options.subject.kind === 'viewport') {
|
|
33
40
|
return {
|
|
34
41
|
session: options.pageSession,
|
|
35
42
|
clip: frameClip,
|
|
36
|
-
viewport: pageViewport,
|
|
43
|
+
viewport: pageViewport.size,
|
|
44
|
+
pageOffset: pageViewport.offset,
|
|
37
45
|
};
|
|
38
46
|
}
|
|
47
|
+
const frameViewport = await resolveViewportState(options.frameSession);
|
|
48
|
+
const subjectClip = await resolveSubjectClip(options.frameSession, options.subject, frameViewport);
|
|
39
49
|
return {
|
|
40
50
|
session: options.pageSession,
|
|
51
|
+
// Both are viewport-relative to their own document, so the sum lands in page-viewport space.
|
|
41
52
|
clip: offsetClip(frameClip, subjectClip),
|
|
42
|
-
viewport: pageViewport,
|
|
53
|
+
viewport: pageViewport.size,
|
|
54
|
+
pageOffset: pageViewport.offset,
|
|
43
55
|
};
|
|
44
56
|
};
|
|
45
|
-
const resolveFrameViewportClip = async (pageSession, frameId) => {
|
|
57
|
+
const resolveFrameViewportClip = async (pageSession, frameId, viewport) => {
|
|
46
58
|
const owner = await pageSession.sendAndWait('DOM.getFrameOwner', {
|
|
47
59
|
frameId,
|
|
48
60
|
});
|
|
49
61
|
if (owner.backendNodeId == null && owner.nodeId == null) {
|
|
50
62
|
throw new Error(`Unable to resolve iframe owner for frame: ${frameId}`);
|
|
51
63
|
}
|
|
52
|
-
return resolveNodeClip(pageSession, owner);
|
|
64
|
+
return resolveNodeClip(pageSession, owner, viewport);
|
|
53
65
|
};
|
|
54
|
-
const resolveSelectorClip = async (session, selector) => {
|
|
66
|
+
const resolveSelectorClip = async (session, selector, viewport) => {
|
|
55
67
|
const nodeId = await resolveFirstSelectorNodeId(session, selector);
|
|
56
68
|
if (!nodeId) {
|
|
57
69
|
throw new Error(`No element found for selector: ${selector}`);
|
|
58
70
|
}
|
|
59
|
-
return resolveNodeClip(session, { nodeId });
|
|
71
|
+
return resolveNodeClip(session, { nodeId }, viewport);
|
|
60
72
|
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
case 'selector':
|
|
66
|
-
return resolveSelectorClip(session, subject.selector);
|
|
67
|
-
case 'clip':
|
|
68
|
-
return resolveViewportRectClip(session, subject.clip);
|
|
73
|
+
/** Resolve a crop subject. Viewport subjects never reach here — they have no rectangle to resolve. */
|
|
74
|
+
const resolveSubjectClip = async (session, subject, viewport) => {
|
|
75
|
+
if (subject.kind === 'selector') {
|
|
76
|
+
return resolveSelectorClip(session, subject.selector, viewport);
|
|
69
77
|
}
|
|
78
|
+
return {
|
|
79
|
+
...subject.clip,
|
|
80
|
+
// CDP clip rectangles always need the current viewport scale, even when x/y are already viewport-relative.
|
|
81
|
+
scale: viewport.scale,
|
|
82
|
+
};
|
|
70
83
|
};
|
|
71
84
|
export const resolveVisualCaptureSubject = (request) => {
|
|
72
85
|
if (request.selector) {
|
|
@@ -77,18 +90,7 @@ export const resolveVisualCaptureSubject = (request) => {
|
|
|
77
90
|
}
|
|
78
91
|
return { kind: 'viewport' };
|
|
79
92
|
};
|
|
80
|
-
const
|
|
81
|
-
const viewport = await resolveVisualViewport(session);
|
|
82
|
-
return {
|
|
83
|
-
x: clip.x,
|
|
84
|
-
y: clip.y,
|
|
85
|
-
width: clip.width,
|
|
86
|
-
height: clip.height,
|
|
87
|
-
// CDP clip rectangles always need the current viewport scale, even when x/y are already viewport-relative.
|
|
88
|
-
scale: viewport?.scale ?? 1,
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
const resolveNodeClip = async (session, target) => {
|
|
93
|
+
const resolveNodeClip = async (session, target, viewport) => {
|
|
92
94
|
const boxResult = await session.sendAndWait('DOM.getBoxModel', target.nodeId != null ? { nodeId: target.nodeId } : { backendNodeId: target.backendNodeId });
|
|
93
95
|
const quad = boxResult.model?.content ??
|
|
94
96
|
boxResult.model?.border;
|
|
@@ -99,16 +101,18 @@ const resolveNodeClip = async (session, target) => {
|
|
|
99
101
|
if (rect.width <= 0 || rect.height <= 0) {
|
|
100
102
|
throw new Error('Element has zero area');
|
|
101
103
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
/**
|
|
105
|
+
* No scroll offset is subtracted here: `DOM.getBoxModel` already reports viewport-relative CSS
|
|
106
|
+
* pixels, matching `getBoundingClientRect`. Subtracting `pageY` as well double-counted the
|
|
107
|
+
* scroll, which was invisible at scroll offset 0 and put the crop entirely off-frame anywhere
|
|
108
|
+
* else — a blank screenshot, or a 2px-tall recording.
|
|
109
|
+
*/
|
|
106
110
|
return {
|
|
107
|
-
x: rect.x
|
|
108
|
-
y: rect.y
|
|
111
|
+
x: rect.x,
|
|
112
|
+
y: rect.y,
|
|
109
113
|
width: rect.width,
|
|
110
114
|
height: rect.height,
|
|
111
|
-
scale,
|
|
115
|
+
scale: viewport.scale,
|
|
112
116
|
};
|
|
113
117
|
};
|
|
114
118
|
const resolveVisualViewport = async (session) => {
|
|
@@ -116,8 +120,15 @@ const resolveVisualViewport = async (session) => {
|
|
|
116
120
|
const payload = metrics;
|
|
117
121
|
return payload.cssVisualViewport ?? payload.visualViewport;
|
|
118
122
|
};
|
|
119
|
-
const
|
|
123
|
+
const resolveViewportState = async (session) => {
|
|
120
124
|
const viewport = await resolveVisualViewport(session);
|
|
125
|
+
return {
|
|
126
|
+
size: await resolveViewportSize(session, viewport),
|
|
127
|
+
offset: { x: viewport?.pageX ?? 0, y: viewport?.pageY ?? 0 },
|
|
128
|
+
scale: viewport?.scale ?? 1,
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
const resolveViewportSize = async (session, viewport) => {
|
|
121
132
|
if (isPositiveFiniteNumber(viewport?.clientWidth) && isPositiveFiniteNumber(viewport?.clientHeight)) {
|
|
122
133
|
return { width: viewport.clientWidth, height: viewport.clientHeight };
|
|
123
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualCapture.js","sourceRoot":"","sources":["../../src/cdp/visualCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"visualCapture.js","sourceRoot":"","sources":["../../src/cdp/visualCapture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/cdp/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAG/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAiB,KAAK,YAAY,EAAoC,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/cdp/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAG/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAiB,KAAK,YAAY,EAAoC,MAAM,oBAAoB,CAAA;AAEvG,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAG3E,qCAAqC;AACrC,MAAM,MAAM,SAAS,GAAG;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;QACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACvB,GAAG,IAAI,CAAA;IACR,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,yCAAyC;AACzC,MAAM,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,CAAA;IAC5C,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;IACrC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,IAAI,CAAA;IACxE,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACjF,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,aAAa,CAAC,EAAE,oBAAoB,CAAA;IACpC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IACpC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,UAAU,EAAE,iBAAiB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,gBAAgB,CAAA;IACzB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,SAAS,EAAE,MAAM,SAAS,GAAG,IAAI,CAAA;IACjC;;;;;OAKG;IACH,SAAS,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,eAAe,GAAI,SAAS,iBAAiB,KAAG,gBA6L5D,CAAA"}
|
package/dist/cdp/watcher.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { formatError } from '@vforsh/argus-core';
|
|
2
2
|
import { createCdpSessionHandle } from './connection.js';
|
|
3
3
|
import { fetchPageIntl, toConsoleEvent, toExceptionEvent } from './watcherEvents.js';
|
|
4
|
+
import { tryEvaluateInPage } from './pageState.js';
|
|
4
5
|
import { findTarget } from './watcherTargets.js';
|
|
5
6
|
import { delay } from '@vforsh/argus-core';
|
|
6
7
|
/** Start CDP polling + websocket subscriptions for console/exception events. */
|
|
@@ -8,6 +9,8 @@ export const startCdpWatcher = (options) => {
|
|
|
8
9
|
let stopped = false;
|
|
9
10
|
let socket = null;
|
|
10
11
|
let currentTarget = null;
|
|
12
|
+
/** Top frame of the attached page, so iframe navigation events cannot be mistaken for the page's. */
|
|
13
|
+
let topFrameId = null;
|
|
11
14
|
const { session, attach, detach } = options.sessionHandle ?? createCdpSessionHandle();
|
|
12
15
|
const stop = async () => {
|
|
13
16
|
stopped = true;
|
|
@@ -42,13 +45,30 @@ export const startCdpWatcher = (options) => {
|
|
|
42
45
|
if (!navigation) {
|
|
43
46
|
return;
|
|
44
47
|
}
|
|
48
|
+
topFrameId = navigation.frameId ?? topFrameId;
|
|
45
49
|
currentTarget.url = navigation.url;
|
|
50
|
+
// The status snapshot is the watcher's public answer to "where is the page" — it backs
|
|
51
|
+
// `argus page url`, relative URL resolution in /navigate, and the indicator. Emitting only
|
|
52
|
+
// on attach left it frozen at whatever URL the target had when the socket opened.
|
|
53
|
+
emitAttachedStatus();
|
|
46
54
|
options.onPageNavigation?.({ url: navigation.url, title: currentTarget.title ?? null });
|
|
47
55
|
});
|
|
56
|
+
session.onEvent('Page.navigatedWithinDocument', (params) => {
|
|
57
|
+
if (!currentTarget || !params.url || (topFrameId != null && params.frameId !== topFrameId)) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
// Same-document: the URL changed but the document did not. Deliberately not a page
|
|
61
|
+
// navigation — rotating logs and dropping sourcemaps for a hash change would be wrong.
|
|
62
|
+
currentTarget.url = params.url;
|
|
63
|
+
emitAttachedStatus();
|
|
64
|
+
});
|
|
48
65
|
session.onEvent('Page.domContentEventFired', () => {
|
|
49
66
|
if (!currentTarget) {
|
|
50
67
|
return;
|
|
51
68
|
}
|
|
69
|
+
// The new document's title does not exist yet at frameNavigated time; refresh it once the
|
|
70
|
+
// DOM is parsed so status does not report the previous page's title against the new URL.
|
|
71
|
+
void refreshTargetTitle();
|
|
52
72
|
options.onPageLoad?.();
|
|
53
73
|
});
|
|
54
74
|
return {
|
|
@@ -57,6 +77,35 @@ export const startCdpWatcher = (options) => {
|
|
|
57
77
|
session,
|
|
58
78
|
getTarget: () => (currentTarget ? { ...currentTarget } : null),
|
|
59
79
|
};
|
|
80
|
+
/** Publish the current target as an attached status. No-op before the first attach. */
|
|
81
|
+
function emitAttachedStatus() {
|
|
82
|
+
if (!currentTarget) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
options.onStatus({
|
|
86
|
+
attached: true,
|
|
87
|
+
target: {
|
|
88
|
+
title: currentTarget.title ?? null,
|
|
89
|
+
url: currentTarget.url ?? null,
|
|
90
|
+
type: currentTarget.type ?? null,
|
|
91
|
+
parentId: currentTarget.parentId ?? null,
|
|
92
|
+
},
|
|
93
|
+
reason: null,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/** Best-effort title refresh after a navigation. A failed read leaves the old title in place. */
|
|
97
|
+
async function refreshTargetTitle() {
|
|
98
|
+
const target = currentTarget;
|
|
99
|
+
if (!target) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const title = await tryEvaluateInPage(session, 'document.title');
|
|
103
|
+
if (typeof title !== 'string' || target !== currentTarget || target.title === title) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
target.title = title;
|
|
107
|
+
emitAttachedStatus();
|
|
108
|
+
}
|
|
60
109
|
async function runLoop() {
|
|
61
110
|
let backoffMs = 1_000;
|
|
62
111
|
while (!stopped) {
|
|
@@ -93,6 +142,7 @@ export const startCdpWatcher = (options) => {
|
|
|
93
142
|
ws.addEventListener('close', () => {
|
|
94
143
|
const reason = stopped ? 'stopped' : 'socket_closed';
|
|
95
144
|
currentTarget = null;
|
|
145
|
+
topFrameId = null;
|
|
96
146
|
detach(reason);
|
|
97
147
|
options.onStatus({ attached: false, target: null, reason });
|
|
98
148
|
options.onDetach?.(reason);
|
|
@@ -103,6 +153,10 @@ export const startCdpWatcher = (options) => {
|
|
|
103
153
|
}
|
|
104
154
|
await session.sendAndWait('Runtime.enable');
|
|
105
155
|
await session.sendAndWait('Page.enable');
|
|
156
|
+
// Learn the top frame up front; without it a hash change in an iframe would overwrite the
|
|
157
|
+
// page's URL before the first top-frame navigation ever names it.
|
|
158
|
+
const frameTree = await session.sendAndWait('Page.getFrameTree').catch(() => null);
|
|
159
|
+
topFrameId = frameTree?.frameTree?.frame.id ?? null;
|
|
106
160
|
await options.onAttach?.(session, target);
|
|
107
161
|
// Only signal attached after we've enabled the necessary domains
|
|
108
162
|
options.onStatus({
|
|
@@ -129,7 +183,7 @@ const parseNavigation = (params) => {
|
|
|
129
183
|
if (record.frame?.parentId) {
|
|
130
184
|
return null;
|
|
131
185
|
}
|
|
132
|
-
return { url };
|
|
186
|
+
return { url, frameId: record.frame?.id };
|
|
133
187
|
};
|
|
134
188
|
const createSystemLog = (message) => ({
|
|
135
189
|
ts: Date.now(),
|
package/dist/cdp/watcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/cdp/watcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAExD,OAAO,EAAE,aAAa,EAAqB,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACvG,OAAO,EAAE,UAAU,EAAkB,MAAM,qBAAqB,CAAA;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AA6C1C,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAA0B,EAAoB,EAAE;IAC/E,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,MAAM,GAAqB,IAAI,CAAA;IACnC,IAAI,aAAa,GAAqB,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/cdp/watcher.ts"],"names":[],"mappings":"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"}
|
package/dist/http/endpoints.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { LogLevel, NetParty, NetRequestBodyPart, NetScope } from '@vforsh/a
|
|
|
6
6
|
* used to be hand-maintained in both files, so adding a route meant editing the same 61 literals
|
|
7
7
|
* twice or emitting an endpoint the public event could not name.
|
|
8
8
|
*/
|
|
9
|
-
export declare const WATCHER_ENDPOINTS: readonly ["logs", "tail", "net", "net/requests", "net/request", "net/request/body", "net/tail", "net/clear", "net/mock", "net/mock/add", "net/mock/remove", "net/mock/clear", "net/ws", "net/ws/connection", "net/sse", "auth/cookies", "auth/cookies/get", "auth/cookies/set", "auth/cookies/delete", "auth/cookies/clear", "auth/state", "auth/state/load", "eval", "trace/start", "trace/stop", "record", "record/start", "record/stop", "screenshot", "snapshot", "locate/role", "locate/text", "locate/label", "code/list", "code/read", "code/grep", "code/edit", "dom/tree", "dom/info", "dom/hover", "dom/click", "dom/drag", "dom/keydown", "dom/add", "dom/remove", "dom/modify", "dom/set-file", "dom/focus", "dom/fill", "dom/scroll", "dom/scroll-to", "emulation", "throttle", "dialog/status", "dialog/handle", "visibility", "storage/local", "storage/session", "reload", "shutdown", "tabs", "extension/diagnostics", "targets", "attach", "detach"];
|
|
9
|
+
export declare const WATCHER_ENDPOINTS: readonly ["logs", "tail", "net", "net/requests", "net/request", "net/request/body", "net/tail", "net/clear", "net/mock", "net/mock/add", "net/mock/remove", "net/mock/clear", "net/ws", "net/ws/connection", "net/sse", "auth/cookies", "auth/cookies/get", "auth/cookies/set", "auth/cookies/delete", "auth/cookies/clear", "auth/state", "auth/state/load", "eval", "trace/start", "trace/stop", "record", "record/start", "record/stop", "record/status", "screenshot", "snapshot", "locate/role", "locate/text", "locate/label", "code/list", "code/read", "code/grep", "code/edit", "dom/tree", "dom/info", "dom/hover", "dom/click", "dom/drag", "dom/keydown", "dom/add", "dom/remove", "dom/modify", "dom/set-file", "dom/focus", "dom/fill", "dom/scroll", "dom/scroll-to", "emulation", "throttle", "dialog/status", "dialog/handle", "visibility", "storage/local", "storage/session", "reload", "navigate", "navigate/history", "shutdown", "tabs", "extension/diagnostics", "targets", "attach", "detach"];
|
|
10
10
|
/** An endpoint the watcher serves. */
|
|
11
11
|
export type WatcherEndpoint = (typeof WATCHER_ENDPOINTS)[number];
|
|
12
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/http/endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE1F;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/http/endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE1F;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,y9BAqEpB,CAAA;AAEV,sCAAsC;AACtC,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhE;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,CAAC,EAAE,WAAW,GAAG,aAAa,CAAA;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA"}
|
package/dist/http/endpoints.js
CHANGED
|
@@ -34,6 +34,7 @@ export const WATCHER_ENDPOINTS = [
|
|
|
34
34
|
'record',
|
|
35
35
|
'record/start',
|
|
36
36
|
'record/stop',
|
|
37
|
+
'record/status',
|
|
37
38
|
'screenshot',
|
|
38
39
|
'snapshot',
|
|
39
40
|
'locate/role',
|
|
@@ -65,6 +66,8 @@ export const WATCHER_ENDPOINTS = [
|
|
|
65
66
|
'storage/local',
|
|
66
67
|
'storage/session',
|
|
67
68
|
'reload',
|
|
69
|
+
'navigate',
|
|
70
|
+
'navigate/history',
|
|
68
71
|
'shutdown',
|
|
69
72
|
'tabs',
|
|
70
73
|
'extension/diagnostics',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/http/endpoints.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,MAAM;IACN,MAAM;IACN,KAAK;IACL,cAAc;IACd,aAAa;IACb,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,UAAU;IACV,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,QAAQ;IACR,mBAAmB;IACnB,SAAS;IACT,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,YAAY;IACZ,iBAAiB;IACjB,MAAM;IACN,aAAa;IACb,YAAY;IACZ,QAAQ;IACR,cAAc;IACd,aAAa;IACb,YAAY;IACZ,UAAU;IACV,aAAa;IACb,aAAa;IACb,cAAc;IACd,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,aAAa;IACb,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,WAAW;IACX,UAAU;IACV,YAAY;IACZ,eAAe;IACf,WAAW;IACX,UAAU;IACV,eAAe;IACf,eAAe;IACf,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,QAAQ;IACR,UAAU;IACV,MAAM;IACN,uBAAuB;IACvB,SAAS;IACT,QAAQ;IACR,QAAQ;CACC,CAAA"}
|
|
1
|
+
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/http/endpoints.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,MAAM;IACN,MAAM;IACN,KAAK;IACL,cAAc;IACd,aAAa;IACb,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,UAAU;IACV,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,QAAQ;IACR,mBAAmB;IACnB,SAAS;IACT,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,YAAY;IACZ,iBAAiB;IACjB,MAAM;IACN,aAAa;IACb,YAAY;IACZ,QAAQ;IACR,cAAc;IACd,aAAa;IACb,eAAe;IACf,YAAY;IACZ,UAAU;IACV,aAAa;IACb,aAAa;IACb,cAAc;IACd,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,UAAU;IACV,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,aAAa;IACb,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,WAAW;IACX,UAAU;IACV,YAAY;IACZ,eAAe;IACf,WAAW;IACX,UAAU;IACV,eAAe;IACf,eAAe;IACf,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,QAAQ;IACR,UAAU;IACV,kBAAkB;IAClB,UAAU;IACV,MAAM;IACN,uBAAuB;IACvB,SAAS;IACT,QAAQ;IACR,QAAQ;CACC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getStatus.js","sourceRoot":"","sources":["../../../src/http/routes/getStatus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAA4B;IAC/D,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;CACrC,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,CAAC,GAAiB,EAAkB,EAAE;IACzD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;IAChC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;IACpC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,EAAE,CAAA;IAEpC,OAAO;QACN,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,IAAI;QAC1C,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE;QACvB,MAAM;QACN,OAAO;QACP,eAAe,EAAE,sBAAsB;QACvC,cAAc,EAAE,WAAW,CAAC,OAAO;QACnC,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE;KAC3B,CAAA;AACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"getStatus.js","sourceRoot":"","sources":["../../../src/http/routes/getStatus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAA4B;IAC/D,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;CACrC,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,CAAC,GAAiB,EAAkB,EAAE;IACzD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;IAChC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;IACpC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,EAAE,CAAA;IAEpC,OAAO;QACN,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,IAAI;QAC1C,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE;QACvB,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QAChC,MAAM;QACN,OAAO;QACP,eAAe,EAAE,sBAAsB;QACvC,cAAc,EAAE,WAAW,CAAC,OAAO;QACnC,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE;KAC3B,CAAA;AACF,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAgE9D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,sBAAsB,EAiE1D,CAAA"}
|
|
@@ -50,6 +50,8 @@ import { route as getDialog } from './getDialog.js';
|
|
|
50
50
|
import { route as postDialog } from './postDialog.js';
|
|
51
51
|
import { route as postVisibility } from './postVisibility.js';
|
|
52
52
|
import { storageRoutes } from './storage.js';
|
|
53
|
+
import { route as postNavigate } from './postNavigate.js';
|
|
54
|
+
import { route as postNavigateHistory } from './postNavigateHistory.js';
|
|
53
55
|
import { route as postReload } from './postReload.js';
|
|
54
56
|
import { route as postShutdown } from './postShutdown.js';
|
|
55
57
|
import { route as getExtensionTabs } from './getExtensionTabs.js';
|
|
@@ -117,6 +119,8 @@ export const watcherRoutes = [
|
|
|
117
119
|
postDialog,
|
|
118
120
|
postVisibility,
|
|
119
121
|
...storageRoutes,
|
|
122
|
+
postNavigate,
|
|
123
|
+
postNavigateHistory,
|
|
120
124
|
postReload,
|
|
121
125
|
postShutdown,
|
|
122
126
|
getExtensionTabs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http/routes/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http/routes/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postDomClick.d.ts","sourceRoot":"","sources":["../../../src/http/routes/postDomClick.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postDomClick.d.ts","sourceRoot":"","sources":["../../../src/http/routes/postDomClick.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,KAAK,mDA8DhB,CAAA"}
|
|
@@ -3,6 +3,7 @@ import { respondMissingElementRef, respondMultipleMatches, respondTargetResoluti
|
|
|
3
3
|
import { defineJsonRoute } from './defineRoute.js';
|
|
4
4
|
import { clickDomNodes, clickAtPoint, resolveNodePoint } from '../../cdp/mouse.js';
|
|
5
5
|
import { resolveElementTargets } from '../../cdp/dom/selector.js';
|
|
6
|
+
import { withNavigationWait } from '../../cdp/navigation.js';
|
|
6
7
|
export const route = defineJsonRoute({
|
|
7
8
|
method: 'POST',
|
|
8
9
|
path: '/dom/click',
|
|
@@ -14,9 +15,14 @@ export const route = defineJsonRoute({
|
|
|
14
15
|
const waitMs = payload.wait ?? 0;
|
|
15
16
|
const hasElementTarget = payload.selector != null || payload.ref != null;
|
|
16
17
|
const hasCoords = payload.x != null || payload.y != null;
|
|
18
|
+
// The navigation wait is armed around the click itself, never around selector resolution:
|
|
19
|
+
// waiting on the page-scoped session is meaningless until something has actually been clicked.
|
|
20
|
+
const clickWithNav = async (act, matches, clicked) => {
|
|
21
|
+
const { navigation } = await withNavigationWait(ctx.pageCdpSession, payload, () => ctx.buffer.beginLogEpoch(), act);
|
|
22
|
+
return { ok: true, matches, clicked, navigation };
|
|
23
|
+
};
|
|
17
24
|
if (!hasElementTarget) {
|
|
18
|
-
await clickAtPoint(ctx.cdpSession, payload.x, payload.y, button);
|
|
19
|
-
return { ok: true, matches: 0, clicked: 1 };
|
|
25
|
+
return await clickWithNav(() => clickAtPoint(ctx.cdpSession, payload.x, payload.y, button), 0, 1);
|
|
20
26
|
}
|
|
21
27
|
const resolved = await resolveElementTargets(ctx.cdpSession, ctx.elementRefs, {
|
|
22
28
|
selector: payload.selector,
|
|
@@ -38,14 +44,14 @@ export const route = defineJsonRoute({
|
|
|
38
44
|
return { ok: true, matches: 0, clicked: 0 };
|
|
39
45
|
}
|
|
40
46
|
if (hasCoords) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
return await clickWithNav(async () => {
|
|
48
|
+
for (const handle of handles) {
|
|
49
|
+
const point = await resolveNodePoint(ctx.cdpSession, handle, { x: payload.x, y: payload.y });
|
|
50
|
+
await clickAtPoint(ctx.cdpSession, point.x, point.y, button);
|
|
51
|
+
}
|
|
52
|
+
}, allHandles.length, handles.length);
|
|
46
53
|
}
|
|
47
|
-
await clickDomNodes(ctx.cdpSession, handles, button);
|
|
48
|
-
return { ok: true, matches: allHandles.length, clicked: handles.length };
|
|
54
|
+
return await clickWithNav(() => clickDomNodes(ctx.cdpSession, handles, button), allHandles.length, handles.length);
|
|
49
55
|
},
|
|
50
56
|
handleError: respondTargetResolutionError,
|
|
51
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postDomClick.js","sourceRoot":"","sources":["../../../src/http/routes/postDomClick.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAA;AACtH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"postDomClick.js","sourceRoot":"","sources":["../../../src/http/routes/postDomClick.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAA;AACtH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAAC;IACpC,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,YAAY;IAClB,UAAU,EAAE,qBAAqB;IACjC,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAA;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAA;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAA;QAChC,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAA;QACxE,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,IAAI,CAAA;QAExD,0FAA0F;QAC1F,+FAA+F;QAC/F,MAAM,YAAY,GAAG,KAAK,EAAE,GAAwB,EAAE,OAAe,EAAE,OAAe,EAA6B,EAAE;YACpH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,CAAA;YACnH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;QAClD,CAAC,CAAA;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvB,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAE,EAAE,OAAO,CAAC,CAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACpG,CAAC;QAED,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;SACN,CAAC,CAAA;QAEF,IAAI,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACxC,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;YAC1C,OAAM;QACP,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;QACxC,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACvD,OAAM;QACP,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAA6B,CAAA;QACvE,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACf,OAAO,MAAM,YAAY,CACxB,KAAK,IAAI,EAAE;gBACV,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAE,EAAE,CAAC,CAAA;oBAC9F,MAAM,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;gBAC7D,CAAC;YACF,CAAC,EACD,UAAU,CAAC,MAAM,EACjB,OAAO,CAAC,MAAM,CACd,CAAA;QACF,CAAC;QAED,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACnH,CAAC;IACD,WAAW,EAAE,4BAA4B;CACzC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postDomKeydown.d.ts","sourceRoot":"","sources":["../../../src/http/routes/postDomKeydown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postDomKeydown.d.ts","sourceRoot":"","sources":["../../../src/http/routes/postDomKeydown.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,KAAK,mDAkChB,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { domKeydownRequestSchema } from '@vforsh/argus-core';
|
|
2
2
|
import { dispatchKeydown, parseModifiers } from '../../cdp/keyboard.js';
|
|
3
3
|
import { ensurePageInputFocus } from '../../cdp/pageFocus.js';
|
|
4
|
+
import { withNavigationWait } from '../../cdp/navigation.js';
|
|
4
5
|
import { defineJsonRoute } from './defineRoute.js';
|
|
5
6
|
export const route = defineJsonRoute({
|
|
6
7
|
method: 'POST',
|
|
@@ -11,12 +12,12 @@ export const route = defineJsonRoute({
|
|
|
11
12
|
// Chrome drops keyboard input aimed at an unfocused page and still acks the CDP command,
|
|
12
13
|
// so prove the page can receive it before reporting a dispatch.
|
|
13
14
|
const activation = await ensurePageInputFocus(ctx.pageCdpSession, ctx.visibilityController);
|
|
14
|
-
const result = await dispatchKeydown(ctx.cdpSession, {
|
|
15
|
+
const { result, navigation } = await withNavigationWait(ctx.pageCdpSession, payload, () => ctx.buffer.beginLogEpoch(), () => dispatchKeydown(ctx.cdpSession, {
|
|
15
16
|
key: payload.key,
|
|
16
17
|
code: payload.code,
|
|
17
18
|
selector: payload.selector,
|
|
18
19
|
modifiers: parseModifiers(payload.modifiers),
|
|
19
|
-
});
|
|
20
|
+
}));
|
|
20
21
|
return {
|
|
21
22
|
ok: true,
|
|
22
23
|
key: result.key,
|
|
@@ -25,6 +26,7 @@ export const route = defineJsonRoute({
|
|
|
25
26
|
focused: result.focused,
|
|
26
27
|
activated: activation.activated,
|
|
27
28
|
event: result.event,
|
|
29
|
+
navigation,
|
|
28
30
|
};
|
|
29
31
|
},
|
|
30
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postDomKeydown.js","sourceRoot":"","sources":["../../../src/http/routes/postDomKeydown.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAAwC;IAC3E,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,uBAAuB;IACnC,QAAQ,EAAE,aAAa;IACvB,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QACxC,yFAAyF;QACzF,gEAAgE;QAChE,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAE3F,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE;
|
|
1
|
+
{"version":3,"file":"postDomKeydown.js","sourceRoot":"","sources":["../../../src/http/routes/postDomKeydown.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAAwC;IAC3E,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,uBAAuB;IACnC,QAAQ,EAAE,aAAa;IACvB,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QACxC,yFAAyF;QACzF,gEAAgE;QAChE,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAE3F,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB,CACtD,GAAG,CAAC,cAAc,EAClB,OAAO,EACP,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,EAChC,GAAG,EAAE,CACJ,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE;YAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;SAC5C,CAAC,CACH,CAAA;QAED,OAAO;YACN,EAAE,EAAE,IAAI;YACR,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU;SACV,CAAA;IACF,CAAC;CACD,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postEval.d.ts","sourceRoot":"","sources":["../../../src/http/routes/postEval.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"postEval.d.ts","sourceRoot":"","sources":["../../../src/http/routes/postEval.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,KAAK,mDAqBhB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postEval.js","sourceRoot":"","sources":["../../../src/http/routes/postEval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEpE;;;;;;GAMG;AACH,MAAM,2BAA2B,GAAG,MAAM,CAAA;AAE1C,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAA4B;IAC/D,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAClC,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;QAC1D,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;QAClD,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;QAC5D,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;QACrD,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,2BAA2B;QAC7E,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;QACnD,gBAAgB,EAAE;YACjB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,aAAa,EAAE,GAAG,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"postEval.js","sourceRoot":"","sources":["../../../src/http/routes/postEval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEpE;;;;;;GAMG;AACH,MAAM,2BAA2B,GAAG,MAAM,CAAA;AAE1C,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAA4B;IAC/D,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,OAAO;IACb,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAClC,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;QAC1D,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;QAClD,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;QAC5D,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;QACrD,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,2BAA2B;QAC7E,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;QACnD,gBAAgB,EAAE;YACjB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACtB;KACD,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAG,CAAC,IAAyB,EAAsC,EAAE;IAC3F,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,MAAM,UAAU,GAA2B,EAAE,CAAA;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACxB,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;AACnE,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navigate the attached page.
|
|
3
|
+
*
|
|
4
|
+
* URL resolution happens here rather than in the CLI because the watcher owns the authoritative
|
|
5
|
+
* current URL: `/settings`, `?tab=2`, and a bare `--param` rewrite all need it, and asking for it
|
|
6
|
+
* first would cost a round trip and open a race with whatever else is navigating the page.
|
|
7
|
+
*
|
|
8
|
+
* The log epoch is opened *before* the command is dispatched, so everything the new document
|
|
9
|
+
* logs — including a console line in its first inline script — lands after it.
|
|
10
|
+
*/
|
|
11
|
+
export declare const route: import("./defineRoute.js").WatcherRouteDefinition;
|
|
12
|
+
//# sourceMappingURL=postNavigate.d.ts.map
|