browser-debugger-cli 0.6.10 → 0.6.11
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/README.md +10 -0
- package/dist/commands/cdp.js +1 -1
- package/dist/commands/cdp.js.map +1 -1
- package/dist/commands/cleanup.js +1 -1
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/console.d.ts +4 -28
- package/dist/commands/console.d.ts.map +1 -1
- package/dist/commands/console.js +81 -187
- package/dist/commands/console.js.map +1 -1
- package/dist/commands/details.d.ts.map +1 -1
- package/dist/commands/details.js +8 -0
- package/dist/commands/details.js.map +1 -1
- package/dist/commands/dom/DomElementResolver.d.ts +2 -2
- package/dist/commands/dom/DomElementResolver.d.ts.map +1 -1
- package/dist/commands/dom/DomElementResolver.js +6 -6
- package/dist/commands/dom/DomElementResolver.js.map +1 -1
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.d.ts +2 -0
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.d.ts.map +1 -0
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.js +184 -0
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.js.map +1 -0
- package/dist/commands/dom/a11y.d.ts.map +1 -1
- package/dist/commands/dom/a11y.js +9 -9
- package/dist/commands/dom/a11y.js.map +1 -1
- package/dist/commands/dom/evalHelpers.d.ts.map +1 -1
- package/dist/commands/dom/evalHelpers.js +10 -7
- package/dist/commands/dom/evalHelpers.js.map +1 -1
- package/dist/commands/dom/formFillHelpers.d.ts +2 -1
- package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
- package/dist/commands/dom/formFillHelpers.js +22 -20
- package/dist/commands/dom/formFillHelpers.js.map +1 -1
- package/dist/commands/dom/formInteraction.d.ts.map +1 -1
- package/dist/commands/dom/formInteraction.js +26 -10
- package/dist/commands/dom/formInteraction.js.map +1 -1
- package/dist/commands/dom/formSubmitHelpers.d.ts +2 -1
- package/dist/commands/dom/formSubmitHelpers.d.ts.map +1 -1
- package/dist/commands/dom/formSubmitHelpers.js.map +1 -1
- package/dist/commands/dom/helpers.d.ts +11 -4
- package/dist/commands/dom/helpers.d.ts.map +1 -1
- package/dist/commands/dom/helpers.js +324 -40
- package/dist/commands/dom/helpers.js.map +1 -1
- package/dist/commands/dom/index.d.ts.map +1 -1
- package/dist/commands/dom/index.js +15 -5
- package/dist/commands/dom/index.js.map +1 -1
- package/dist/commands/dom/reactEventHelpers.d.ts +4 -4
- package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
- package/dist/commands/dom/reactEventHelpers.js +11 -11
- package/dist/commands/dom/screenshotResize.d.ts +81 -0
- package/dist/commands/dom/screenshotResize.d.ts.map +1 -0
- package/dist/commands/dom/screenshotResize.js +103 -0
- package/dist/commands/dom/screenshotResize.js.map +1 -0
- package/dist/commands/helpJson.d.ts +20 -0
- package/dist/commands/helpJson.d.ts.map +1 -1
- package/dist/commands/helpJson.js +21 -29
- package/dist/commands/helpJson.js.map +1 -1
- package/dist/commands/network/har.d.ts.map +1 -1
- package/dist/commands/network/har.js +3 -2
- package/dist/commands/network/har.js.map +1 -1
- package/dist/commands/network/list.d.ts +0 -8
- package/dist/commands/network/list.d.ts.map +1 -1
- package/dist/commands/network/list.js +131 -201
- package/dist/commands/network/list.js.map +1 -1
- package/dist/commands/network/shared.d.ts.map +1 -1
- package/dist/commands/network/shared.js +6 -0
- package/dist/commands/network/shared.js.map +1 -1
- package/dist/commands/optionBehaviors.d.ts +26 -0
- package/dist/commands/optionBehaviors.d.ts.map +1 -0
- package/dist/commands/optionBehaviors.js +184 -0
- package/dist/commands/optionBehaviors.js.map +1 -0
- package/dist/commands/peek.d.ts +2 -4
- package/dist/commands/peek.d.ts.map +1 -1
- package/dist/commands/peek.js +108 -92
- package/dist/commands/peek.js.map +1 -1
- package/dist/commands/shared/CommandRunner.js +1 -1
- package/dist/commands/shared/CommandRunner.js.map +1 -1
- package/dist/commands/shared/dataFetcher.d.ts +58 -0
- package/dist/commands/shared/dataFetcher.d.ts.map +1 -0
- package/dist/commands/shared/dataFetcher.js +98 -0
- package/dist/commands/shared/dataFetcher.js.map +1 -0
- package/dist/commands/shared/optionTypes.d.ts +8 -4
- package/dist/commands/shared/optionTypes.d.ts.map +1 -1
- package/dist/commands/shared/startHelpers.d.ts.map +1 -1
- package/dist/commands/shared/startHelpers.js +6 -5
- package/dist/commands/shared/startHelpers.js.map +1 -1
- package/dist/commands/shared/validation.d.ts +0 -45
- package/dist/commands/shared/validation.d.ts.map +1 -1
- package/dist/commands/shared/validation.js +65 -107
- package/dist/commands/shared/validation.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +13 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +15 -4
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tail.d.ts +2 -7
- package/dist/commands/tail.d.ts.map +1 -1
- package/dist/commands/tail.js +61 -64
- package/dist/commands/tail.js.map +1 -1
- package/dist/connection/cdp.d.ts.map +1 -1
- package/dist/connection/cdp.js +5 -3
- package/dist/connection/cdp.js.map +1 -1
- package/dist/connection/diagnostics.js +1 -1
- package/dist/connection/diagnostics.js.map +1 -1
- package/dist/connection/errors.d.ts +0 -7
- package/dist/connection/errors.d.ts.map +1 -1
- package/dist/connection/errors.js +0 -7
- package/dist/connection/errors.js.map +1 -1
- package/dist/connection/launcher/binaryResolver.d.ts.map +1 -1
- package/dist/connection/launcher/binaryResolver.js +2 -1
- package/dist/connection/launcher/binaryResolver.js.map +1 -1
- package/dist/connection/launcher/preferencesLoader.d.ts.map +1 -1
- package/dist/connection/launcher/preferencesLoader.js +2 -1
- package/dist/connection/launcher/preferencesLoader.js.map +1 -1
- package/dist/connection/launcher.d.ts.map +1 -1
- package/dist/connection/launcher.js +2 -1
- package/dist/connection/launcher.js.map +1 -1
- package/dist/connection/pageReadiness.d.ts.map +1 -1
- package/dist/connection/pageReadiness.js +2 -9
- package/dist/connection/pageReadiness.js.map +1 -1
- package/dist/daemon/handlers/BaseHandler.d.ts.map +1 -1
- package/dist/daemon/handlers/BaseHandler.js +1 -1
- package/dist/daemon/handlers/BaseHandler.js.map +1 -1
- package/dist/daemon/handlers/QueryHandlers.d.ts.map +1 -1
- package/dist/daemon/handlers/QueryHandlers.js +1 -1
- package/dist/daemon/handlers/QueryHandlers.js.map +1 -1
- package/dist/daemon/handlers/SessionHandlers.d.ts.map +1 -1
- package/dist/daemon/handlers/SessionHandlers.js +1 -1
- package/dist/daemon/handlers/SessionHandlers.js.map +1 -1
- package/dist/daemon/ipcServer.js +1 -1
- package/dist/daemon/ipcServer.js.map +1 -1
- package/dist/daemon/launcher.d.ts.map +1 -1
- package/dist/daemon/launcher.js +3 -2
- package/dist/daemon/launcher.js.map +1 -1
- package/dist/daemon/lifecycle/signalHandlers.d.ts.map +1 -1
- package/dist/daemon/lifecycle/signalHandlers.js +1 -1
- package/dist/daemon/lifecycle/signalHandlers.js.map +1 -1
- package/dist/daemon/lifecycle/workerCleanup.d.ts.map +1 -1
- package/dist/daemon/lifecycle/workerCleanup.js +4 -3
- package/dist/daemon/lifecycle/workerCleanup.js.map +1 -1
- package/dist/daemon/lifecycle/workerConfig.d.ts.map +1 -1
- package/dist/daemon/lifecycle/workerConfig.js +1 -1
- package/dist/daemon/lifecycle/workerConfig.js.map +1 -1
- package/dist/daemon/lifecycle/workerIpc.d.ts.map +1 -1
- package/dist/daemon/lifecycle/workerIpc.js +1 -1
- package/dist/daemon/lifecycle/workerIpc.js.map +1 -1
- package/dist/daemon/server/JsonlParser.d.ts.map +1 -1
- package/dist/daemon/server/JsonlParser.js +1 -1
- package/dist/daemon/server/JsonlParser.js.map +1 -1
- package/dist/daemon/startSession.d.ts.map +1 -1
- package/dist/daemon/startSession.js +1 -1
- package/dist/daemon/startSession.js.map +1 -1
- package/dist/daemon/worker/plugins.js +3 -3
- package/dist/daemon/worker/plugins.js.map +1 -1
- package/dist/index.js +23 -7
- package/dist/index.js.map +1 -1
- package/dist/ipc/utils/errors.js +1 -1
- package/dist/ipc/utils/errors.js.map +1 -1
- package/dist/session/QueryCacheManager.d.ts.map +1 -1
- package/dist/session/QueryCacheManager.js +1 -1
- package/dist/session/QueryCacheManager.js.map +1 -1
- package/dist/session/chrome.js +1 -1
- package/dist/session/chrome.js.map +1 -1
- package/dist/session/cleanup.js +5 -5
- package/dist/session/cleanup.js.map +1 -1
- package/dist/session/lock.js +1 -1
- package/dist/session/lock.js.map +1 -1
- package/dist/session/metadata.d.ts.map +1 -1
- package/dist/session/metadata.js +1 -1
- package/dist/session/metadata.js.map +1 -1
- package/dist/session/pid.js +1 -1
- package/dist/session/pid.js.map +1 -1
- package/dist/telemetry/dom.d.ts.map +1 -1
- package/dist/telemetry/dom.js +1 -1
- package/dist/telemetry/dom.js.map +1 -1
- package/dist/telemetry/filterPresets.d.ts.map +1 -1
- package/dist/telemetry/filterPresets.js +5 -2
- package/dist/telemetry/filterPresets.js.map +1 -1
- package/dist/telemetry/network.d.ts.map +1 -1
- package/dist/telemetry/network.js +1 -1
- package/dist/telemetry/network.js.map +1 -1
- package/dist/types.d.ts +97 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +33 -1
- package/dist/types.js.map +1 -1
- package/dist/ui/OutputBuilder.d.ts +2 -44
- package/dist/ui/OutputBuilder.d.ts.map +1 -1
- package/dist/ui/OutputBuilder.js +71 -103
- package/dist/ui/OutputBuilder.js.map +1 -1
- package/dist/ui/errors/CommandError.d.ts +0 -2
- package/dist/ui/errors/CommandError.d.ts.map +1 -1
- package/dist/ui/errors/CommandError.js.map +1 -1
- package/dist/ui/formatters/dom.d.ts +8 -19
- package/dist/ui/formatters/dom.d.ts.map +1 -1
- package/dist/ui/formatters/dom.js +12 -68
- package/dist/ui/formatters/dom.js.map +1 -1
- package/dist/ui/logging/logger.d.ts +1 -1
- package/dist/ui/logging/logger.d.ts.map +1 -1
- package/dist/ui/logging/logger.js +1 -1
- package/dist/ui/logging/logger.js.map +1 -1
- package/dist/ui/messages/dom.d.ts +14 -0
- package/dist/ui/messages/dom.d.ts.map +1 -0
- package/dist/ui/messages/dom.js +28 -0
- package/dist/ui/messages/dom.js.map +1 -0
- package/dist/ui/messages/errors.d.ts +83 -0
- package/dist/ui/messages/errors.d.ts.map +1 -1
- package/dist/ui/messages/errors.js +171 -0
- package/dist/ui/messages/errors.js.map +1 -1
- package/dist/utils/async.d.ts +10 -0
- package/dist/utils/async.d.ts.map +1 -0
- package/dist/utils/async.js +12 -0
- package/dist/utils/async.js.map +1 -0
- package/dist/utils/atomicFile.js +1 -1
- package/dist/utils/atomicFile.js.map +1 -1
- package/dist/utils/errorMapping.d.ts.map +1 -1
- package/dist/utils/errorMapping.js +4 -1
- package/dist/utils/errorMapping.js.map +1 -1
- package/dist/utils/exitCodes.d.ts +16 -17
- package/dist/utils/exitCodes.d.ts.map +1 -1
- package/dist/utils/exitCodes.js +85 -17
- package/dist/utils/exitCodes.js.map +1 -1
- package/dist/utils/suggestions.d.ts +19 -0
- package/dist/utils/suggestions.d.ts.map +1 -0
- package/dist/utils/suggestions.js +34 -0
- package/dist/utils/suggestions.js.map +1 -0
- package/dist/utils/taskMappings.d.ts.map +1 -1
- package/dist/utils/taskMappings.js +35 -0
- package/dist/utils/taskMappings.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,11 +4,14 @@
|
|
|
4
4
|
* Provides query, get, and screenshot functionality using the worker's persistent CDP connection.
|
|
5
5
|
* All operations go through IPC callCDP() for optimal performance.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { calculateImageTokens, calculateResizeScale, isTallPage, shouldResize, } from '../../commands/dom/screenshotResize.js';
|
|
8
|
+
import { CDPConnectionError } from '../../connection/errors.js';
|
|
8
9
|
import { callCDP } from '../../ipc/client.js';
|
|
9
10
|
import { CommandError } from '../../ui/errors/index.js';
|
|
10
11
|
import { createLogger } from '../../ui/logging/index.js';
|
|
12
|
+
import { noNodesFoundError, indexOutOfRangeError, elementNotVisibleError, elementZeroDimensionsError, eitherArgumentRequiredError, } from '../../ui/messages/errors.js';
|
|
11
13
|
import { ConcurrencyLimiter } from '../../utils/concurrency.js';
|
|
14
|
+
import { getErrorMessage } from '../../utils/errors.js';
|
|
12
15
|
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
13
16
|
const log = createLogger('dom');
|
|
14
17
|
/**
|
|
@@ -16,6 +19,150 @@ const log = createLogger('dom');
|
|
|
16
19
|
* Prevents overwhelming CDP connection with too many simultaneous requests.
|
|
17
20
|
*/
|
|
18
21
|
const CDP_CONCURRENCY_LIMIT = 10;
|
|
22
|
+
/** Network idle threshold after scroll (shorter than page load) */
|
|
23
|
+
const POST_SCROLL_NETWORK_IDLE_MS = 150;
|
|
24
|
+
/** DOM stable threshold after scroll (shorter than page load) */
|
|
25
|
+
const POST_SCROLL_DOM_STABLE_MS = 200;
|
|
26
|
+
/** Maximum wait for post-scroll stability */
|
|
27
|
+
const POST_SCROLL_MAX_WAIT_MS = 2000;
|
|
28
|
+
/** Check interval for stability polling */
|
|
29
|
+
const STABILITY_CHECK_INTERVAL_MS = 50;
|
|
30
|
+
/**
|
|
31
|
+
* Wait for page to stabilize after scrolling.
|
|
32
|
+
*
|
|
33
|
+
* Detects lazy-loaded content and DOM mutations triggered by scroll.
|
|
34
|
+
* Uses shorter thresholds than full page load since we're only waiting
|
|
35
|
+
* for scroll-triggered content, not initial page load.
|
|
36
|
+
*
|
|
37
|
+
* @returns Promise that resolves when page is stable or timeout reached
|
|
38
|
+
*/
|
|
39
|
+
async function waitForPostScrollStability() {
|
|
40
|
+
const deadline = Date.now() + POST_SCROLL_MAX_WAIT_MS;
|
|
41
|
+
await callCDP('Runtime.evaluate', {
|
|
42
|
+
expression: `
|
|
43
|
+
(() => {
|
|
44
|
+
window.__bdg_scrollStability = {
|
|
45
|
+
lastNetworkActivity: Date.now(),
|
|
46
|
+
lastDomMutation: Date.now(),
|
|
47
|
+
activeRequests: 0
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const state = window.__bdg_scrollStability;
|
|
51
|
+
|
|
52
|
+
// Track network activity via Performance Observer
|
|
53
|
+
if (window.PerformanceObserver) {
|
|
54
|
+
const perfObserver = new PerformanceObserver((list) => {
|
|
55
|
+
for (const entry of list.getEntries()) {
|
|
56
|
+
if (entry.entryType === 'resource') {
|
|
57
|
+
state.lastNetworkActivity = Date.now();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
try {
|
|
62
|
+
perfObserver.observe({ entryTypes: ['resource'] });
|
|
63
|
+
state.perfObserver = perfObserver;
|
|
64
|
+
} catch (e) {}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Track DOM mutations
|
|
68
|
+
const mutationObserver = new MutationObserver(() => {
|
|
69
|
+
state.lastDomMutation = Date.now();
|
|
70
|
+
});
|
|
71
|
+
mutationObserver.observe(document.body || document.documentElement, {
|
|
72
|
+
childList: true,
|
|
73
|
+
subtree: true,
|
|
74
|
+
attributes: true
|
|
75
|
+
});
|
|
76
|
+
state.mutationObserver = mutationObserver;
|
|
77
|
+
})()
|
|
78
|
+
`,
|
|
79
|
+
returnByValue: true,
|
|
80
|
+
});
|
|
81
|
+
try {
|
|
82
|
+
while (Date.now() < deadline) {
|
|
83
|
+
const checkResult = await callCDP('Runtime.evaluate', {
|
|
84
|
+
expression: `
|
|
85
|
+
(() => {
|
|
86
|
+
const state = window.__bdg_scrollStability;
|
|
87
|
+
if (!state) return { networkIdle: 999, domIdle: 999 };
|
|
88
|
+
return {
|
|
89
|
+
networkIdle: Date.now() - state.lastNetworkActivity,
|
|
90
|
+
domIdle: Date.now() - state.lastDomMutation
|
|
91
|
+
};
|
|
92
|
+
})()
|
|
93
|
+
`,
|
|
94
|
+
returnByValue: true,
|
|
95
|
+
});
|
|
96
|
+
const value = checkResult.data?.result?.result?.value;
|
|
97
|
+
const networkIdle = value?.networkIdle ?? 0;
|
|
98
|
+
const domIdle = value?.domIdle ?? 0;
|
|
99
|
+
if (networkIdle >= POST_SCROLL_NETWORK_IDLE_MS && domIdle >= POST_SCROLL_DOM_STABLE_MS) {
|
|
100
|
+
log.debug(`Post-scroll stable: network ${networkIdle}ms, DOM ${domIdle}ms`);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
await new Promise((resolve) => setTimeout(resolve, STABILITY_CHECK_INTERVAL_MS));
|
|
104
|
+
}
|
|
105
|
+
log.debug('Post-scroll stability timeout, proceeding anyway');
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
await callCDP('Runtime.evaluate', {
|
|
109
|
+
expression: `
|
|
110
|
+
(() => {
|
|
111
|
+
const state = window.__bdg_scrollStability;
|
|
112
|
+
if (state) {
|
|
113
|
+
state.perfObserver?.disconnect();
|
|
114
|
+
state.mutationObserver?.disconnect();
|
|
115
|
+
delete window.__bdg_scrollStability;
|
|
116
|
+
}
|
|
117
|
+
})()
|
|
118
|
+
`,
|
|
119
|
+
returnByValue: true,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Scroll an element into view before capture.
|
|
125
|
+
*
|
|
126
|
+
* Returns the original scroll position so it can be restored after capture.
|
|
127
|
+
* Waits for lazy-loaded content and DOM mutations to stabilize before returning.
|
|
128
|
+
*
|
|
129
|
+
* @param selector - CSS selector of element to scroll to
|
|
130
|
+
* @returns Original scroll position before scrolling
|
|
131
|
+
* @throws CommandError if element not found
|
|
132
|
+
*/
|
|
133
|
+
async function scrollToElement(selector) {
|
|
134
|
+
const result = await callCDP('Runtime.evaluate', {
|
|
135
|
+
expression: `
|
|
136
|
+
(() => {
|
|
137
|
+
const el = document.querySelector(${JSON.stringify(selector)});
|
|
138
|
+
if (!el) return { found: false };
|
|
139
|
+
const originalX = window.scrollX;
|
|
140
|
+
const originalY = window.scrollY;
|
|
141
|
+
el.scrollIntoView({ block: 'center', behavior: 'instant' });
|
|
142
|
+
return { found: true, originalX, originalY };
|
|
143
|
+
})()
|
|
144
|
+
`,
|
|
145
|
+
returnByValue: true,
|
|
146
|
+
});
|
|
147
|
+
const value = result.data?.result?.result?.value;
|
|
148
|
+
if (!value?.found) {
|
|
149
|
+
const err = noNodesFoundError(selector);
|
|
150
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
151
|
+
}
|
|
152
|
+
await waitForPostScrollStability();
|
|
153
|
+
return { x: value.originalX ?? 0, y: value.originalY ?? 0 };
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Restore scroll position after capture.
|
|
157
|
+
*
|
|
158
|
+
* @param position - Scroll position to restore
|
|
159
|
+
*/
|
|
160
|
+
async function restoreScrollPosition(position) {
|
|
161
|
+
await callCDP('Runtime.evaluate', {
|
|
162
|
+
expression: `window.scrollTo(${position.x}, ${position.y})`,
|
|
163
|
+
returnByValue: true,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
19
166
|
/**
|
|
20
167
|
* Query DOM elements by CSS selector using CDP relay.
|
|
21
168
|
*
|
|
@@ -157,28 +304,33 @@ export async function getDOMElements(options) {
|
|
|
157
304
|
const queryResult = queryResponse.data?.result;
|
|
158
305
|
nodeIds = queryResult?.nodeIds ?? [];
|
|
159
306
|
if (nodeIds.length === 0) {
|
|
160
|
-
|
|
307
|
+
const err = noNodesFoundError(options.selector);
|
|
308
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
161
309
|
}
|
|
162
310
|
if (options.nth !== undefined) {
|
|
163
|
-
if (options.nth <
|
|
164
|
-
|
|
311
|
+
if (options.nth < 0 || options.nth >= nodeIds.length) {
|
|
312
|
+
const err = indexOutOfRangeError(options.nth, nodeIds.length - 1);
|
|
313
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.INVALID_ARGUMENTS);
|
|
165
314
|
}
|
|
166
|
-
const nthNode = nodeIds[options.nth
|
|
315
|
+
const nthNode = nodeIds[options.nth];
|
|
167
316
|
if (nthNode === undefined) {
|
|
168
|
-
|
|
317
|
+
const err = indexOutOfRangeError(options.nth, nodeIds.length - 1);
|
|
318
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
169
319
|
}
|
|
170
320
|
nodeIds = [nthNode];
|
|
171
321
|
}
|
|
172
322
|
else if (!options.all) {
|
|
173
323
|
const firstNode = nodeIds[0];
|
|
174
324
|
if (firstNode === undefined) {
|
|
175
|
-
|
|
325
|
+
const err = noNodesFoundError(options.selector ?? '');
|
|
326
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
176
327
|
}
|
|
177
328
|
nodeIds = [firstNode];
|
|
178
329
|
}
|
|
179
330
|
}
|
|
180
331
|
else {
|
|
181
|
-
|
|
332
|
+
const err = eitherArgumentRequiredError('selector', 'nodeId', 'bdg dom get <selector> or bdg dom get --node-id <id>');
|
|
333
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.INVALID_ARGUMENTS);
|
|
182
334
|
}
|
|
183
335
|
if (nodeIds.length > 20) {
|
|
184
336
|
log.debug(`Fetching details for ${nodeIds.length} DOM elements`);
|
|
@@ -222,25 +374,91 @@ export async function getDOMElements(options) {
|
|
|
222
374
|
/**
|
|
223
375
|
* Capture a screenshot of the page using CDP relay.
|
|
224
376
|
*
|
|
377
|
+
* By default, auto-resizes images exceeding 1568px on longest edge to optimize
|
|
378
|
+
* for Claude Vision token cost (~1,600 tokens max). Tall pages (aspect ratio > 3:1)
|
|
379
|
+
* automatically fall back to viewport capture. Use noResize option to disable.
|
|
380
|
+
*
|
|
225
381
|
* @param outputPath - Path to save screenshot
|
|
226
|
-
* @param options - Screenshot options (format, quality, fullPage)
|
|
227
|
-
* @returns Screenshot result with path, format, dimensions, and
|
|
382
|
+
* @param options - Screenshot options (format, quality, fullPage, noResize, scroll)
|
|
383
|
+
* @returns Screenshot result with path, format, dimensions, size, and capture metadata
|
|
228
384
|
* @throws CDPConnectionError if CDP operation fails
|
|
229
385
|
*/
|
|
230
386
|
export async function capturePageScreenshot(outputPath, options = {}) {
|
|
231
387
|
const format = options.format ?? 'png';
|
|
232
388
|
const quality = format === 'jpeg' ? (options.quality ?? 90) : undefined;
|
|
233
|
-
const
|
|
389
|
+
const requestedFullPage = options.fullPage ?? true;
|
|
390
|
+
const noResize = options.noResize ?? false;
|
|
391
|
+
let originalScrollPosition;
|
|
392
|
+
if (options.scroll) {
|
|
393
|
+
originalScrollPosition = await scrollToElement(options.scroll);
|
|
394
|
+
}
|
|
395
|
+
const dprResponse = await callCDP('Runtime.evaluate', {
|
|
396
|
+
expression: 'window.devicePixelRatio',
|
|
397
|
+
returnByValue: true,
|
|
398
|
+
});
|
|
399
|
+
const devicePixelRatio = dprResponse.data?.result?.result?.value ?? 1;
|
|
234
400
|
const metricsResponse = await callCDP('Page.getLayoutMetrics', {});
|
|
235
401
|
const metricsResult = metricsResponse.data?.result;
|
|
236
402
|
const contentSize = metricsResult?.contentSize ?? { width: 0, height: 0 };
|
|
237
403
|
const viewport = metricsResult?.visualViewport ?? { clientWidth: 0, clientHeight: 0 };
|
|
238
|
-
const
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
const
|
|
404
|
+
const pageIsTooTall = !noResize && requestedFullPage && isTallPage(contentSize.width, contentSize.height);
|
|
405
|
+
const useScroll = options.scroll !== undefined;
|
|
406
|
+
const effectiveFullPage = useScroll ? false : pageIsTooTall ? false : requestedFullPage;
|
|
407
|
+
const captureWidth = effectiveFullPage ? contentSize.width : viewport.clientWidth;
|
|
408
|
+
const captureHeight = effectiveFullPage ? contentSize.height : viewport.clientHeight;
|
|
409
|
+
const resized = shouldResize(captureWidth, captureHeight, noResize);
|
|
410
|
+
const scale = resized ? calculateResizeScale(captureWidth, captureHeight) : 1;
|
|
411
|
+
const finalWidth = Math.round(captureWidth * scale);
|
|
412
|
+
const finalHeight = Math.round(captureHeight * scale);
|
|
413
|
+
if (devicePixelRatio !== 1) {
|
|
414
|
+
await callCDP('Emulation.setDeviceMetricsOverride', {
|
|
415
|
+
width: Math.round(viewport.clientWidth),
|
|
416
|
+
height: Math.round(viewport.clientHeight),
|
|
417
|
+
deviceScaleFactor: 1,
|
|
418
|
+
mobile: false,
|
|
419
|
+
});
|
|
420
|
+
// Re-scroll after DPR override (setDeviceMetricsOverride resets scroll position)
|
|
421
|
+
if (options.scroll) {
|
|
422
|
+
await callCDP('Runtime.evaluate', {
|
|
423
|
+
expression: `document.querySelector(${JSON.stringify(options.scroll)})?.scrollIntoView({ block: 'center', behavior: 'instant' })`,
|
|
424
|
+
returnByValue: true,
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
// Get scroll position for clip coordinates (clip uses document coordinates, not viewport)
|
|
429
|
+
let clipX = 0;
|
|
430
|
+
let clipY = 0;
|
|
431
|
+
if (useScroll && !effectiveFullPage) {
|
|
432
|
+
const scrollResponse = await callCDP('Runtime.evaluate', {
|
|
433
|
+
expression: 'JSON.stringify({ x: window.scrollX, y: window.scrollY })',
|
|
434
|
+
returnByValue: true,
|
|
435
|
+
});
|
|
436
|
+
const scrollPos = JSON.parse(scrollResponse.data?.result?.result?.value ??
|
|
437
|
+
'{"x":0,"y":0}');
|
|
438
|
+
clipX = scrollPos.x;
|
|
439
|
+
clipY = scrollPos.y;
|
|
440
|
+
}
|
|
441
|
+
let screenshotResult;
|
|
442
|
+
try {
|
|
443
|
+
const screenshotResponse = await callCDP('Page.captureScreenshot', {
|
|
444
|
+
format,
|
|
445
|
+
...(quality !== undefined && { quality }),
|
|
446
|
+
captureBeyondViewport: effectiveFullPage,
|
|
447
|
+
clip: {
|
|
448
|
+
x: clipX,
|
|
449
|
+
y: clipY,
|
|
450
|
+
width: captureWidth,
|
|
451
|
+
height: captureHeight,
|
|
452
|
+
scale,
|
|
453
|
+
},
|
|
454
|
+
});
|
|
455
|
+
screenshotResult = screenshotResponse.data?.result;
|
|
456
|
+
}
|
|
457
|
+
finally {
|
|
458
|
+
if (devicePixelRatio !== 1) {
|
|
459
|
+
await callCDP('Emulation.clearDeviceMetricsOverride', {});
|
|
460
|
+
}
|
|
461
|
+
}
|
|
244
462
|
if (!screenshotResult?.data) {
|
|
245
463
|
throw new CDPConnectionError('No screenshot data returned', new Error('Empty response'));
|
|
246
464
|
}
|
|
@@ -252,20 +470,43 @@ export async function capturePageScreenshot(outputPath, options = {}) {
|
|
|
252
470
|
const result = {
|
|
253
471
|
path: absolutePath,
|
|
254
472
|
format,
|
|
255
|
-
width:
|
|
256
|
-
height:
|
|
473
|
+
width: finalWidth,
|
|
474
|
+
height: finalHeight,
|
|
257
475
|
size: buffer.length,
|
|
258
|
-
fullPage,
|
|
476
|
+
fullPage: effectiveFullPage,
|
|
477
|
+
captureMode: effectiveFullPage ? 'full_page' : 'viewport',
|
|
478
|
+
finalTokens: calculateImageTokens(finalWidth, finalHeight),
|
|
259
479
|
};
|
|
260
480
|
if (quality !== undefined) {
|
|
261
481
|
result.quality = quality;
|
|
262
482
|
}
|
|
263
|
-
if (!
|
|
483
|
+
if (!effectiveFullPage) {
|
|
264
484
|
result.viewport = {
|
|
265
485
|
width: viewport.clientWidth,
|
|
266
486
|
height: viewport.clientHeight,
|
|
267
487
|
};
|
|
268
488
|
}
|
|
489
|
+
if (resized) {
|
|
490
|
+
result.resized = true;
|
|
491
|
+
result.originalWidth = captureWidth;
|
|
492
|
+
result.originalHeight = captureHeight;
|
|
493
|
+
result.originalTokens = calculateImageTokens(captureWidth, captureHeight);
|
|
494
|
+
}
|
|
495
|
+
if (pageIsTooTall && !useScroll) {
|
|
496
|
+
const aspectRatio = Math.round((contentSize.height / contentSize.width) * 10) / 10;
|
|
497
|
+
result.fullPageSkipped = {
|
|
498
|
+
reason: 'page_too_tall',
|
|
499
|
+
originalHeight: contentSize.height,
|
|
500
|
+
aspectRatio,
|
|
501
|
+
};
|
|
502
|
+
result.warning = `Full page capture skipped: page too tall (${aspectRatio}:1 aspect ratio). Only viewport captured.`;
|
|
503
|
+
}
|
|
504
|
+
if (useScroll && options.scroll) {
|
|
505
|
+
result.scrolledTo = options.scroll;
|
|
506
|
+
}
|
|
507
|
+
if (originalScrollPosition) {
|
|
508
|
+
await restoreScrollPosition(originalScrollPosition);
|
|
509
|
+
}
|
|
269
510
|
return result;
|
|
270
511
|
}
|
|
271
512
|
/**
|
|
@@ -283,7 +524,8 @@ export async function getElementBounds(nodeId) {
|
|
|
283
524
|
const response = await callCDP('DOM.getBoxModel', { nodeId });
|
|
284
525
|
const boxModel = response.data?.result;
|
|
285
526
|
if (!boxModel?.model?.content) {
|
|
286
|
-
|
|
527
|
+
const err = elementNotVisibleError();
|
|
528
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
287
529
|
}
|
|
288
530
|
const content = boxModel.model.content;
|
|
289
531
|
const x = content[0] ?? 0;
|
|
@@ -291,7 +533,8 @@ export async function getElementBounds(nodeId) {
|
|
|
291
533
|
const width = (content[2] ?? 0) - x;
|
|
292
534
|
const height = (content[5] ?? 0) - y;
|
|
293
535
|
if (width <= 0 || height <= 0) {
|
|
294
|
-
|
|
536
|
+
const err = elementZeroDimensionsError();
|
|
537
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.INVALID_ARGUMENTS);
|
|
295
538
|
}
|
|
296
539
|
return { x, y, width, height };
|
|
297
540
|
}
|
|
@@ -317,7 +560,8 @@ export async function resolveSelector(selector) {
|
|
|
317
560
|
});
|
|
318
561
|
const queryResult = queryResponse.data?.result;
|
|
319
562
|
if (!queryResult?.nodeId) {
|
|
320
|
-
|
|
563
|
+
const err = noNodesFoundError(selector);
|
|
564
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
321
565
|
}
|
|
322
566
|
return queryResult.nodeId;
|
|
323
567
|
}
|
|
@@ -325,29 +569,62 @@ export async function resolveSelector(selector) {
|
|
|
325
569
|
* Capture screenshot of a specific element.
|
|
326
570
|
*
|
|
327
571
|
* Uses the element's bounding box to clip the screenshot region.
|
|
572
|
+
* By default, auto-resizes images exceeding 1568px on longest edge to optimize
|
|
573
|
+
* for Claude Vision token cost (~1,600 tokens max). Use noResize option to disable.
|
|
328
574
|
*
|
|
329
575
|
* @param outputPath - Output file path
|
|
330
576
|
* @param nodeId - CDP node ID of element
|
|
331
|
-
* @param options - Format and
|
|
332
|
-
* @returns Screenshot result with element bounds
|
|
577
|
+
* @param options - Format, quality, and noResize options
|
|
578
|
+
* @returns Screenshot result with element bounds and resize metadata
|
|
333
579
|
*/
|
|
334
580
|
export async function captureElementScreenshot(outputPath, nodeId, options = {}) {
|
|
335
581
|
const bounds = await getElementBounds(nodeId);
|
|
336
582
|
const format = options.format ?? 'png';
|
|
337
583
|
const quality = format === 'jpeg' ? (options.quality ?? 90) : undefined;
|
|
338
|
-
const
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
x: bounds.x,
|
|
343
|
-
y: bounds.y,
|
|
344
|
-
width: bounds.width,
|
|
345
|
-
height: bounds.height,
|
|
346
|
-
scale: 1,
|
|
347
|
-
},
|
|
348
|
-
captureBeyondViewport: true,
|
|
584
|
+
const noResize = options.noResize ?? false;
|
|
585
|
+
const dprResponse = await callCDP('Runtime.evaluate', {
|
|
586
|
+
expression: 'window.devicePixelRatio',
|
|
587
|
+
returnByValue: true,
|
|
349
588
|
});
|
|
350
|
-
const
|
|
589
|
+
const devicePixelRatio = dprResponse.data?.result?.result?.value ?? 1;
|
|
590
|
+
const originalWidth = bounds.width;
|
|
591
|
+
const originalHeight = bounds.height;
|
|
592
|
+
const resized = shouldResize(originalWidth, originalHeight, noResize);
|
|
593
|
+
const scale = resized ? calculateResizeScale(originalWidth, originalHeight) : 1;
|
|
594
|
+
const finalWidth = Math.round(originalWidth * scale);
|
|
595
|
+
const finalHeight = Math.round(originalHeight * scale);
|
|
596
|
+
const metricsResponse = await callCDP('Page.getLayoutMetrics', {});
|
|
597
|
+
const metricsResult = metricsResponse.data?.result;
|
|
598
|
+
const viewport = metricsResult?.visualViewport ?? { clientWidth: 800, clientHeight: 600 };
|
|
599
|
+
if (devicePixelRatio !== 1) {
|
|
600
|
+
await callCDP('Emulation.setDeviceMetricsOverride', {
|
|
601
|
+
width: Math.round(viewport.clientWidth),
|
|
602
|
+
height: Math.round(viewport.clientHeight),
|
|
603
|
+
deviceScaleFactor: 1,
|
|
604
|
+
mobile: false,
|
|
605
|
+
});
|
|
606
|
+
}
|
|
607
|
+
let screenshotResult;
|
|
608
|
+
try {
|
|
609
|
+
const screenshotResponse = await callCDP('Page.captureScreenshot', {
|
|
610
|
+
format,
|
|
611
|
+
...(quality !== undefined && { quality }),
|
|
612
|
+
clip: {
|
|
613
|
+
x: bounds.x,
|
|
614
|
+
y: bounds.y,
|
|
615
|
+
width: bounds.width,
|
|
616
|
+
height: bounds.height,
|
|
617
|
+
scale,
|
|
618
|
+
},
|
|
619
|
+
captureBeyondViewport: true,
|
|
620
|
+
});
|
|
621
|
+
screenshotResult = screenshotResponse.data?.result;
|
|
622
|
+
}
|
|
623
|
+
finally {
|
|
624
|
+
if (devicePixelRatio !== 1) {
|
|
625
|
+
await callCDP('Emulation.clearDeviceMetricsOverride', {});
|
|
626
|
+
}
|
|
627
|
+
}
|
|
351
628
|
if (!screenshotResult?.data) {
|
|
352
629
|
throw new CDPConnectionError('No screenshot data returned', new Error('Empty response'));
|
|
353
630
|
}
|
|
@@ -359,14 +636,21 @@ export async function captureElementScreenshot(outputPath, nodeId, options = {})
|
|
|
359
636
|
const result = {
|
|
360
637
|
path: absolutePath,
|
|
361
638
|
format,
|
|
362
|
-
width:
|
|
363
|
-
height:
|
|
639
|
+
width: finalWidth,
|
|
640
|
+
height: finalHeight,
|
|
364
641
|
size: buffer.length,
|
|
365
642
|
fullPage: false,
|
|
643
|
+
finalTokens: calculateImageTokens(finalWidth, finalHeight),
|
|
366
644
|
};
|
|
367
645
|
if (quality !== undefined) {
|
|
368
646
|
result.quality = quality;
|
|
369
647
|
}
|
|
648
|
+
if (resized) {
|
|
649
|
+
result.resized = true;
|
|
650
|
+
result.originalWidth = originalWidth;
|
|
651
|
+
result.originalHeight = originalHeight;
|
|
652
|
+
result.originalTokens = calculateImageTokens(originalWidth, originalHeight);
|
|
653
|
+
}
|
|
370
654
|
return result;
|
|
371
655
|
}
|
|
372
656
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/dom/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/dom/helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,YAAY,GACb,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAU1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAYhC;;;GAGG;AACH,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAUjC,mEAAmE;AACnE,MAAM,2BAA2B,GAAG,GAAG,CAAC;AACxC,iEAAiE;AACjE,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,6CAA6C;AAC7C,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,2CAA2C;AAC3C,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC;;;;;;;;GAQG;AACH,KAAK,UAAU,0BAA0B;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,uBAAuB,CAAC;IAEtD,MAAM,OAAO,CAAC,kBAAkB,EAAE;QAChC,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoCX;QACD,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE;gBACpD,UAAU,EAAE;;;;;;;;;SASX;gBACD,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YAEH,MAAM,KAAK,GACT,WAAW,CAAC,IAAI,EAAE,MAGnB,EAAE,MAAM,EAAE,KAAK,CAAC;YACjB,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC;YAEpC,IAAI,WAAW,IAAI,2BAA2B,IAAI,OAAO,IAAI,yBAAyB,EAAE,CAAC;gBACvF,GAAG,CAAC,KAAK,CAAC,+BAA+B,WAAW,WAAW,OAAO,IAAI,CAAC,CAAC;gBAC5E,OAAO;YACT,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC;QACnF,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAChE,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,kBAAkB,EAAE;YAChC,UAAU,EAAE;;;;;;;;;OASX;YACD,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,eAAe,CAAC,QAAgB;IAC7C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE;QAC/C,UAAU,EAAE;;4CAE4B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;;;;;;;KAO/D;QACD,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,MAAM,KAAK,GACT,MAAM,CAAC,IAAI,EAAE,MAGd,EAAE,MAAM,EAAE,KAAK,CAAC;IACjB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,IAAI,YAAY,CACpB,GAAG,CAAC,OAAO,EACX,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;IAED,MAAM,0BAA0B,EAAE,CAAC;IAEnC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,qBAAqB,CAAC,QAAwB;IAC3D,MAAM,OAAO,CAAC,kBAAkB,EAAE;QAChC,UAAU,EAAE,mBAAmB,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,GAAG;QAC3D,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IACrD,MAAM,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAEhC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,MAAsD,CAAC;IACrF,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,kBAAkB,CAAC,6BAA6B,EAAE,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,sBAAsB,EAAE;QAC1D,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;QACvB,QAAQ;KACT,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,MAE3B,CAAC;IACd,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO,IAAI,EAAE,CAAC;IAE3C,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,MAAM,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QACrB,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,MAEzB,CAAC;QACd,MAAM,QAAQ,GAAG,UAAU,EAAE,IAAI,CAAC;QAElC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC7C,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE5C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,MAEzB,CAAC;QACd,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC;QAE9C,MAAM,WAAW,GAAG,SAAS;aAC1B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAElF,MAAM,IAAI,GAMN,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAEtB,IAAI,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACxB,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACpC,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEpC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACH,CACF,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAEhC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,MAAuD,CAAC;QAC9F,MAAM,QAAQ,GAAG,UAAU,EAAE,IAAI,CAAC;QAElC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC7C,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE5C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,MAAuD,CAAC;QAC9F,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC;QAE9C,MAAM,WAAW,GAAG,SAAS;aAC1B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAElF,MAAM,OAAO,GAAe,EAAE,GAAG,EAAE,CAAC;QACpC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC7D,IAAI,OAAO;YAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,wCAAwC,MAAM,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAsB;IACzD,MAAM,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAEhC,IAAI,OAAO,GAAa,EAAE,CAAC;IAE3B,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,MAAsD,CAAC;QACrF,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,kBAAkB,CAAC,6BAA6B,EAAE,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,sBAAsB,EAAE;YAC1D,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;YACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,MAE3B,CAAC;QACd,OAAO,GAAG,WAAW,EAAE,OAAO,IAAI,EAAE,CAAC;QAErC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,IAAI,YAAY,CACpB,GAAG,CAAC,OAAO,EACX,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,kBAAkB,CAC9B,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACrD,MAAM,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAClE,MAAM,IAAI,YAAY,CACpB,GAAG,CAAC,OAAO,EACX,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,iBAAiB,CAC7B,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAClE,MAAM,IAAI,YAAY,CACpB,GAAG,CAAC,OAAO,EACX,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,kBAAkB,CAC9B,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACtD,MAAM,IAAI,YAAY,CACpB,GAAG,CAAC,OAAO,EACX,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,kBAAkB,CAC9B,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,2BAA2B,CACrC,UAAU,EACV,QAAQ,EACR,sDAAsD,CACvD,CAAC;QACF,MAAM,IAAI,YAAY,CACpB,GAAG,CAAC,OAAO,EACX,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,iBAAiB,CAC7B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,MAAM,eAAe,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACrB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QACrB,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,MAEzB,CAAC;QACd,MAAM,QAAQ,GAAG,UAAU,EAAE,IAAI,CAAC;QAElC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;QAED,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC7C,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE5C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,MAEzB,CAAC;QACd,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,CAAC;QAExC,MAAM,IAAI,GAMN,EAAE,MAAM,EAAE,CAAC;QAEf,IAAI,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACxB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QACrE,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACpC,IAAI,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACH,CACF,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB,EAClB,UAA6B,EAAE;IAE/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;IAE3C,IAAI,sBAAkD,CAAC;IACvD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,sBAAsB,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE;QACpD,UAAU,EAAE,yBAAyB;QACrC,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IACH,MAAM,gBAAgB,GACnB,WAAW,CAAC,IAAI,EAAE,MAA0C,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;IAEpF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,EAAE,MAE/B,CAAC;IAEd,MAAM,WAAW,GAAG,aAAa,EAAE,WAAW,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAC1E,MAAM,QAAQ,GAAG,aAAa,EAAE,cAAc,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAEtF,MAAM,aAAa,GACjB,CAAC,QAAQ,IAAI,iBAAiB,IAAI,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;IAC/C,MAAM,iBAAiB,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAExF,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;IAClF,MAAM,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;IAErF,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;IAEtD,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,CAAC,oCAAoC,EAAE;YAClD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;YACzC,iBAAiB,EAAE,CAAC;YACpB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,iFAAiF;QACjF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,OAAO,CAAC,kBAAkB,EAAE;gBAChC,UAAU,EAAE,0BAA0B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,6DAA6D;gBACjI,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0FAA0F;IAC1F,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,SAAS,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE;YACvD,UAAU,EAAE,0DAA0D;YACtE,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CACzB,cAAc,CAAC,IAAI,EAAE,MAA0C,EAAE,MAAM,EAAE,KAAK;YAC7E,eAAe,CACU,CAAC;QAC9B,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;QACpB,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,gBAAqE,CAAC;IAC1E,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,wBAAwB,EAAE;YACjE,MAAM;YACN,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;YACzC,qBAAqB,EAAE,iBAAiB;YACxC,IAAI,EAAE;gBACJ,CAAC,EAAE,KAAK;gBACR,CAAC,EAAE,KAAK;gBACR,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,aAAa;gBACrB,KAAK;aACN;SACF,CAAC,CAAC;QACH,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAE/B,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,kBAAkB,CAAC,6BAA6B,EAAE,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE5D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAqB;QAC/B,IAAI,EAAE,YAAY;QAClB,MAAM;QACN,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,QAAQ,EAAE,iBAAiB;QAC3B,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;QACzD,WAAW,EAAE,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC;KAC3D,CAAC;IAEF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,GAAG;YAChB,KAAK,EAAE,QAAQ,CAAC,WAAW;YAC3B,MAAM,EAAE,QAAQ,CAAC,YAAY;SAC9B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC;QACpC,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC;QACtC,MAAM,CAAC,cAAc,GAAG,oBAAoB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,aAAa,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACnF,MAAM,CAAC,eAAe,GAAG;YACvB,MAAM,EAAE,eAAe;YACvB,cAAc,EAAE,WAAW,CAAC,MAAM;YAClC,WAAW;SACZ,CAAC;QACF,MAAM,CAAC,OAAO,GAAG,6CAA6C,WAAW,2CAA2C,CAAC;IACvH,CAAC;IAED,IAAI,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc;IACnD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAsD,CAAC;IAEvF,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,sBAAsB,EAAE,CAAC;QACrC,MAAM,IAAI,YAAY,CACpB,GAAG,CAAC,OAAO,EACX,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;IACvC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAErC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,0BAA0B,EAAE,CAAC;QACzC,MAAM,IAAI,YAAY,CACpB,GAAG,CAAC,OAAO,EACX,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,iBAAiB,CAC7B,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAEhC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,MAAsD,CAAC;IAErF,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,kBAAkB,CAAC,6BAA6B,EAAE,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,mBAAmB,EAAE;QACvD,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;QACvB,QAAQ;KACT,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,MAAwD,CAAC;IAEjG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,IAAI,YAAY,CACpB,GAAG,CAAC,OAAO,EACX,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC,MAAM,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAAkB,EAClB,MAAc,EACd,UAA6E,EAAE;IAE/E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;IAE3C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE;QACpD,UAAU,EAAE,yBAAyB;QACrC,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IACH,MAAM,gBAAgB,GACnB,WAAW,CAAC,IAAI,EAAE,MAA0C,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;IAEpF,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;IACnC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;IAEvD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,EAAE,MAE/B,CAAC;IACd,MAAM,QAAQ,GAAG,aAAa,EAAE,cAAc,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAE1F,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,CAAC,oCAAoC,EAAE;YAClD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;YACzC,iBAAiB,EAAE,CAAC;YACpB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAED,IAAI,gBAAqE,CAAC;IAC1E,IAAI,CAAC;QACH,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,wBAAwB,EAAE;YACjE,MAAM;YACN,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;YACzC,IAAI,EAAE;gBACJ,CAAC,EAAE,MAAM,CAAC,CAAC;gBACX,CAAC,EAAE,MAAM,CAAC,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK;aACN;YACD,qBAAqB,EAAE,IAAI;SAC5B,CAAC,CAAC;QACH,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAE/B,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,kBAAkB,CAAC,6BAA6B,EAAE,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE5D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAqB;QAC/B,IAAI,EAAE,YAAY;QAClB,MAAM;QACN,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC;KAC3D,CAAC;IAEF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;QACrC,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;QACvC,MAAM,CAAC,cAAc,GAAG,oBAAoB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8qBzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0D1D"}
|
|
@@ -9,9 +9,11 @@ import { resolveA11yNode } from '../../telemetry/a11y.js';
|
|
|
9
9
|
import { synthesizeA11yNode } from '../../telemetry/roleInference.js';
|
|
10
10
|
import { CommandError } from '../../ui/errors/index.js';
|
|
11
11
|
import { formatDomQuery, formatDomGet, formatDomEval, formatDomScreenshot, } from '../../ui/formatters/dom.js';
|
|
12
|
-
import {
|
|
12
|
+
import { createLogger } from '../../ui/logging/index.js';
|
|
13
|
+
import { missingArgumentError, elementAtIndexNotFoundError, noNodesFoundError, } from '../../ui/messages/errors.js';
|
|
13
14
|
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
14
15
|
import { filterDefined } from '../../utils/objects.js';
|
|
16
|
+
const log = createLogger('dom');
|
|
15
17
|
/**
|
|
16
18
|
* Build filtered screenshot options from command options.
|
|
17
19
|
*
|
|
@@ -23,6 +25,8 @@ function buildPageScreenshotOptions(options) {
|
|
|
23
25
|
format: options.format,
|
|
24
26
|
quality: options.quality,
|
|
25
27
|
fullPage: options.fullPage,
|
|
28
|
+
noResize: options.resize === false,
|
|
29
|
+
scroll: options.scroll,
|
|
26
30
|
});
|
|
27
31
|
}
|
|
28
32
|
/**
|
|
@@ -35,6 +39,7 @@ function buildElementScreenshotOptions(options) {
|
|
|
35
39
|
return filterDefined({
|
|
36
40
|
format: options.format,
|
|
37
41
|
quality: options.quality,
|
|
42
|
+
noResize: options.resize === false,
|
|
38
43
|
});
|
|
39
44
|
}
|
|
40
45
|
/**
|
|
@@ -62,7 +67,8 @@ async function resolveElementNodeId(options) {
|
|
|
62
67
|
if (options.selector !== undefined) {
|
|
63
68
|
return resolveSelector(options.selector);
|
|
64
69
|
}
|
|
65
|
-
|
|
70
|
+
const err = missingArgumentError('--selector "css-selector" or --index N from a previous query');
|
|
71
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.INVALID_ARGUMENTS);
|
|
66
72
|
}
|
|
67
73
|
/**
|
|
68
74
|
* Add element metadata to screenshot result.
|
|
@@ -275,7 +281,8 @@ async function handleIndexGetSemantic(index, options) {
|
|
|
275
281
|
]);
|
|
276
282
|
const node = resolveNodeWithFallback(a11yNode, domContext, targetNode.nodeId);
|
|
277
283
|
if (!node) {
|
|
278
|
-
|
|
284
|
+
const err = elementAtIndexNotFoundError(index, 'cached query');
|
|
285
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
279
286
|
}
|
|
280
287
|
return { success: true, data: { node, domContext } };
|
|
281
288
|
}, options, formatSemanticNodeWithContext);
|
|
@@ -334,7 +341,8 @@ async function handleSelectorGetSemantic(selector, options) {
|
|
|
334
341
|
}
|
|
335
342
|
const node = resolveNodeWithFallback(a11yNode, domContext, nodeId);
|
|
336
343
|
if (!node) {
|
|
337
|
-
|
|
344
|
+
const err = noNodesFoundError(selector);
|
|
345
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
338
346
|
}
|
|
339
347
|
return { success: true, data: { node, domContext } };
|
|
340
348
|
}, options, formatSemanticNodeWithContext);
|
|
@@ -435,7 +443,7 @@ async function handleSequenceCapture(outputDir, options) {
|
|
|
435
443
|
const filename = formatFrameFilename(frameCount, format);
|
|
436
444
|
const outputPath = path.join(absoluteDir, filename);
|
|
437
445
|
await captureSequenceFrame(outputPath, options);
|
|
438
|
-
|
|
446
|
+
log.info(`Frame ${frameCount}: ${filename}`);
|
|
439
447
|
if (limit > 0 && frameCount >= limit) {
|
|
440
448
|
process.emit('SIGINT');
|
|
441
449
|
}
|
|
@@ -539,6 +547,8 @@ export function registerDomCommands(program) {
|
|
|
539
547
|
.option('--format <format>', 'Image format: png or jpeg (default: png)')
|
|
540
548
|
.option('--quality <number>', 'JPEG quality 0-100 (default: 90)', parseInt)
|
|
541
549
|
.option('--no-full-page', 'Capture viewport only (default: full page)')
|
|
550
|
+
.option('--no-resize', 'Disable auto-resize (full resolution)')
|
|
551
|
+
.option('--scroll <selector>', 'Scroll element into view before capture')
|
|
542
552
|
.option('-f, --follow', 'Continuous capture mode to directory')
|
|
543
553
|
.option('--interval <ms>', 'Capture interval for --follow (default: 1000)')
|
|
544
554
|
.option('--limit <count>', 'Max frames for --follow')
|