browser-debugger-cli 0.6.9 → 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.
Files changed (259) hide show
  1. package/README.md +10 -0
  2. package/dist/commands/cdp.js +1 -1
  3. package/dist/commands/cdp.js.map +1 -1
  4. package/dist/commands/cleanup.js +1 -1
  5. package/dist/commands/cleanup.js.map +1 -1
  6. package/dist/commands/console.d.ts +4 -28
  7. package/dist/commands/console.d.ts.map +1 -1
  8. package/dist/commands/console.js +82 -192
  9. package/dist/commands/console.js.map +1 -1
  10. package/dist/commands/details.d.ts.map +1 -1
  11. package/dist/commands/details.js +27 -8
  12. package/dist/commands/details.js.map +1 -1
  13. package/dist/commands/dom/DomElementResolver.d.ts +25 -9
  14. package/dist/commands/dom/DomElementResolver.d.ts.map +1 -1
  15. package/dist/commands/dom/DomElementResolver.js +65 -17
  16. package/dist/commands/dom/DomElementResolver.js.map +1 -1
  17. package/dist/commands/dom/__tests__/screenshotResize.unit.test.d.ts +2 -0
  18. package/dist/commands/dom/__tests__/screenshotResize.unit.test.d.ts.map +1 -0
  19. package/dist/commands/dom/__tests__/screenshotResize.unit.test.js +184 -0
  20. package/dist/commands/dom/__tests__/screenshotResize.unit.test.js.map +1 -0
  21. package/dist/commands/dom/a11y.d.ts.map +1 -1
  22. package/dist/commands/dom/a11y.js +9 -9
  23. package/dist/commands/dom/a11y.js.map +1 -1
  24. package/dist/commands/dom/evalHelpers.d.ts.map +1 -1
  25. package/dist/commands/dom/evalHelpers.js +10 -7
  26. package/dist/commands/dom/evalHelpers.js.map +1 -1
  27. package/dist/commands/dom/formFillHelpers.d.ts +2 -1
  28. package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
  29. package/dist/commands/dom/formFillHelpers.js +22 -20
  30. package/dist/commands/dom/formFillHelpers.js.map +1 -1
  31. package/dist/commands/dom/formInteraction.d.ts.map +1 -1
  32. package/dist/commands/dom/formInteraction.js +26 -10
  33. package/dist/commands/dom/formInteraction.js.map +1 -1
  34. package/dist/commands/dom/formSubmitHelpers.d.ts +2 -1
  35. package/dist/commands/dom/formSubmitHelpers.d.ts.map +1 -1
  36. package/dist/commands/dom/formSubmitHelpers.js.map +1 -1
  37. package/dist/commands/dom/helpers.d.ts +47 -4
  38. package/dist/commands/dom/helpers.d.ts.map +1 -1
  39. package/dist/commands/dom/helpers.js +406 -21
  40. package/dist/commands/dom/helpers.js.map +1 -1
  41. package/dist/commands/dom/index.d.ts +1 -1
  42. package/dist/commands/dom/index.d.ts.map +1 -1
  43. package/dist/commands/dom/index.js +414 -151
  44. package/dist/commands/dom/index.js.map +1 -1
  45. package/dist/commands/dom/reactEventHelpers.d.ts +4 -4
  46. package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
  47. package/dist/commands/dom/reactEventHelpers.js +11 -11
  48. package/dist/commands/dom/screenshotResize.d.ts +81 -0
  49. package/dist/commands/dom/screenshotResize.d.ts.map +1 -0
  50. package/dist/commands/dom/screenshotResize.js +103 -0
  51. package/dist/commands/dom/screenshotResize.js.map +1 -0
  52. package/dist/commands/helpJson.d.ts +20 -0
  53. package/dist/commands/helpJson.d.ts.map +1 -1
  54. package/dist/commands/helpJson.js +48 -39
  55. package/dist/commands/helpJson.js.map +1 -1
  56. package/dist/commands/network/har.d.ts.map +1 -1
  57. package/dist/commands/network/har.js +3 -2
  58. package/dist/commands/network/har.js.map +1 -1
  59. package/dist/commands/network/list.d.ts +0 -8
  60. package/dist/commands/network/list.d.ts.map +1 -1
  61. package/dist/commands/network/list.js +134 -208
  62. package/dist/commands/network/list.js.map +1 -1
  63. package/dist/commands/network/shared.d.ts.map +1 -1
  64. package/dist/commands/network/shared.js +6 -0
  65. package/dist/commands/network/shared.js.map +1 -1
  66. package/dist/commands/optionBehaviors.d.ts +26 -0
  67. package/dist/commands/optionBehaviors.d.ts.map +1 -0
  68. package/dist/commands/optionBehaviors.js +184 -0
  69. package/dist/commands/optionBehaviors.js.map +1 -0
  70. package/dist/commands/peek.d.ts +2 -4
  71. package/dist/commands/peek.d.ts.map +1 -1
  72. package/dist/commands/peek.js +109 -97
  73. package/dist/commands/peek.js.map +1 -1
  74. package/dist/commands/shared/CommandRunner.js +1 -1
  75. package/dist/commands/shared/CommandRunner.js.map +1 -1
  76. package/dist/commands/shared/dataFetcher.d.ts +58 -0
  77. package/dist/commands/shared/dataFetcher.d.ts.map +1 -0
  78. package/dist/commands/shared/dataFetcher.js +98 -0
  79. package/dist/commands/shared/dataFetcher.js.map +1 -0
  80. package/dist/commands/shared/followMode.d.ts +50 -0
  81. package/dist/commands/shared/followMode.d.ts.map +1 -0
  82. package/dist/commands/shared/followMode.js +58 -0
  83. package/dist/commands/shared/followMode.js.map +1 -0
  84. package/dist/commands/shared/optionTypes.d.ts +18 -4
  85. package/dist/commands/shared/optionTypes.d.ts.map +1 -1
  86. package/dist/commands/shared/startHelpers.d.ts.map +1 -1
  87. package/dist/commands/shared/startHelpers.js +6 -5
  88. package/dist/commands/shared/startHelpers.js.map +1 -1
  89. package/dist/commands/shared/validation.d.ts +0 -45
  90. package/dist/commands/shared/validation.d.ts.map +1 -1
  91. package/dist/commands/shared/validation.js +65 -107
  92. package/dist/commands/shared/validation.js.map +1 -1
  93. package/dist/commands/status.d.ts.map +1 -1
  94. package/dist/commands/status.js +18 -9
  95. package/dist/commands/status.js.map +1 -1
  96. package/dist/commands/stop.d.ts.map +1 -1
  97. package/dist/commands/stop.js +15 -4
  98. package/dist/commands/stop.js.map +1 -1
  99. package/dist/commands/tail.d.ts +2 -7
  100. package/dist/commands/tail.d.ts.map +1 -1
  101. package/dist/commands/tail.js +67 -79
  102. package/dist/commands/tail.js.map +1 -1
  103. package/dist/commands/types.d.ts +11 -5
  104. package/dist/commands/types.d.ts.map +1 -1
  105. package/dist/connection/cdp.d.ts.map +1 -1
  106. package/dist/connection/cdp.js +5 -3
  107. package/dist/connection/cdp.js.map +1 -1
  108. package/dist/connection/diagnostics.d.ts +9 -0
  109. package/dist/connection/diagnostics.d.ts.map +1 -1
  110. package/dist/connection/diagnostics.js +14 -1
  111. package/dist/connection/diagnostics.js.map +1 -1
  112. package/dist/connection/errors.d.ts +0 -7
  113. package/dist/connection/errors.d.ts.map +1 -1
  114. package/dist/connection/errors.js +0 -7
  115. package/dist/connection/errors.js.map +1 -1
  116. package/dist/connection/handlers.d.ts +1 -8
  117. package/dist/connection/handlers.d.ts.map +1 -1
  118. package/dist/connection/handlers.js.map +1 -1
  119. package/dist/connection/launcher/binaryResolver.d.ts.map +1 -1
  120. package/dist/connection/launcher/binaryResolver.js +3 -15
  121. package/dist/connection/launcher/binaryResolver.js.map +1 -1
  122. package/dist/connection/launcher/preferencesLoader.d.ts.map +1 -1
  123. package/dist/connection/launcher/preferencesLoader.js +2 -1
  124. package/dist/connection/launcher/preferencesLoader.js.map +1 -1
  125. package/dist/connection/launcher.d.ts.map +1 -1
  126. package/dist/connection/launcher.js +5 -16
  127. package/dist/connection/launcher.js.map +1 -1
  128. package/dist/connection/pageReadiness.d.ts.map +1 -1
  129. package/dist/connection/pageReadiness.js +13 -16
  130. package/dist/connection/pageReadiness.js.map +1 -1
  131. package/dist/connection/typed-cdp.d.ts +3 -5
  132. package/dist/connection/typed-cdp.d.ts.map +1 -1
  133. package/dist/connection/typed-cdp.js +1 -1
  134. package/dist/connection/typed-cdp.js.map +1 -1
  135. package/dist/daemon/handlers/BaseHandler.d.ts.map +1 -1
  136. package/dist/daemon/handlers/BaseHandler.js +1 -1
  137. package/dist/daemon/handlers/BaseHandler.js.map +1 -1
  138. package/dist/daemon/handlers/QueryHandlers.d.ts.map +1 -1
  139. package/dist/daemon/handlers/QueryHandlers.js +1 -1
  140. package/dist/daemon/handlers/QueryHandlers.js.map +1 -1
  141. package/dist/daemon/handlers/SessionHandlers.d.ts.map +1 -1
  142. package/dist/daemon/handlers/SessionHandlers.js +1 -1
  143. package/dist/daemon/handlers/SessionHandlers.js.map +1 -1
  144. package/dist/daemon/handlers/responseHandler.d.ts.map +1 -1
  145. package/dist/daemon/handlers/responseHandler.js +10 -0
  146. package/dist/daemon/handlers/responseHandler.js.map +1 -1
  147. package/dist/daemon/ipcServer.js +1 -1
  148. package/dist/daemon/ipcServer.js.map +1 -1
  149. package/dist/daemon/launcher.d.ts.map +1 -1
  150. package/dist/daemon/launcher.js +3 -2
  151. package/dist/daemon/launcher.js.map +1 -1
  152. package/dist/daemon/lifecycle/signalHandlers.d.ts.map +1 -1
  153. package/dist/daemon/lifecycle/signalHandlers.js +1 -1
  154. package/dist/daemon/lifecycle/signalHandlers.js.map +1 -1
  155. package/dist/daemon/lifecycle/workerCleanup.d.ts.map +1 -1
  156. package/dist/daemon/lifecycle/workerCleanup.js +4 -3
  157. package/dist/daemon/lifecycle/workerCleanup.js.map +1 -1
  158. package/dist/daemon/lifecycle/workerConfig.d.ts.map +1 -1
  159. package/dist/daemon/lifecycle/workerConfig.js +1 -1
  160. package/dist/daemon/lifecycle/workerConfig.js.map +1 -1
  161. package/dist/daemon/lifecycle/workerIpc.d.ts.map +1 -1
  162. package/dist/daemon/lifecycle/workerIpc.js +1 -1
  163. package/dist/daemon/lifecycle/workerIpc.js.map +1 -1
  164. package/dist/daemon/server/JsonlParser.d.ts.map +1 -1
  165. package/dist/daemon/server/JsonlParser.js +1 -1
  166. package/dist/daemon/server/JsonlParser.js.map +1 -1
  167. package/dist/daemon/startSession.d.ts.map +1 -1
  168. package/dist/daemon/startSession.js +1 -1
  169. package/dist/daemon/startSession.js.map +1 -1
  170. package/dist/daemon/worker/TelemetryStore.d.ts +2 -1
  171. package/dist/daemon/worker/TelemetryStore.d.ts.map +1 -1
  172. package/dist/daemon/worker/TelemetryStore.js +4 -0
  173. package/dist/daemon/worker/TelemetryStore.js.map +1 -1
  174. package/dist/daemon/worker/plugins.d.ts.map +1 -1
  175. package/dist/daemon/worker/plugins.js +9 -2
  176. package/dist/daemon/worker/plugins.js.map +1 -1
  177. package/dist/index.js +23 -7
  178. package/dist/index.js.map +1 -1
  179. package/dist/ipc/utils/errors.js +1 -1
  180. package/dist/ipc/utils/errors.js.map +1 -1
  181. package/dist/session/QueryCacheManager.d.ts.map +1 -1
  182. package/dist/session/QueryCacheManager.js +1 -1
  183. package/dist/session/QueryCacheManager.js.map +1 -1
  184. package/dist/session/chrome.js +1 -1
  185. package/dist/session/chrome.js.map +1 -1
  186. package/dist/session/cleanup.js +5 -5
  187. package/dist/session/cleanup.js.map +1 -1
  188. package/dist/session/lock.js +1 -1
  189. package/dist/session/lock.js.map +1 -1
  190. package/dist/session/metadata.d.ts.map +1 -1
  191. package/dist/session/metadata.js +1 -1
  192. package/dist/session/metadata.js.map +1 -1
  193. package/dist/session/pid.js +1 -1
  194. package/dist/session/pid.js.map +1 -1
  195. package/dist/telemetry/dom.d.ts.map +1 -1
  196. package/dist/telemetry/dom.js +1 -1
  197. package/dist/telemetry/dom.js.map +1 -1
  198. package/dist/telemetry/filterPresets.d.ts.map +1 -1
  199. package/dist/telemetry/filterPresets.js +5 -2
  200. package/dist/telemetry/filterPresets.js.map +1 -1
  201. package/dist/telemetry/navigation.d.ts.map +1 -1
  202. package/dist/telemetry/navigation.js +7 -0
  203. package/dist/telemetry/navigation.js.map +1 -1
  204. package/dist/telemetry/network.d.ts +12 -1
  205. package/dist/telemetry/network.d.ts.map +1 -1
  206. package/dist/telemetry/network.js +117 -1
  207. package/dist/telemetry/network.js.map +1 -1
  208. package/dist/types.d.ts +148 -0
  209. package/dist/types.d.ts.map +1 -1
  210. package/dist/types.js +33 -1
  211. package/dist/types.js.map +1 -1
  212. package/dist/ui/OutputBuilder.d.ts +2 -44
  213. package/dist/ui/OutputBuilder.d.ts.map +1 -1
  214. package/dist/ui/OutputBuilder.js +71 -103
  215. package/dist/ui/OutputBuilder.js.map +1 -1
  216. package/dist/ui/errors/CommandError.d.ts +0 -2
  217. package/dist/ui/errors/CommandError.d.ts.map +1 -1
  218. package/dist/ui/errors/CommandError.js.map +1 -1
  219. package/dist/ui/formatters/dom.d.ts +10 -30
  220. package/dist/ui/formatters/dom.d.ts.map +1 -1
  221. package/dist/ui/formatters/dom.js +13 -36
  222. package/dist/ui/formatters/dom.js.map +1 -1
  223. package/dist/ui/logging/logger.d.ts +1 -1
  224. package/dist/ui/logging/logger.d.ts.map +1 -1
  225. package/dist/ui/logging/logger.js +1 -1
  226. package/dist/ui/logging/logger.js.map +1 -1
  227. package/dist/ui/messages/dom.d.ts +14 -0
  228. package/dist/ui/messages/dom.d.ts.map +1 -0
  229. package/dist/ui/messages/dom.js +28 -0
  230. package/dist/ui/messages/dom.js.map +1 -0
  231. package/dist/ui/messages/errors.d.ts +83 -0
  232. package/dist/ui/messages/errors.d.ts.map +1 -1
  233. package/dist/ui/messages/errors.js +171 -0
  234. package/dist/ui/messages/errors.js.map +1 -1
  235. package/dist/utils/async.d.ts +10 -0
  236. package/dist/utils/async.d.ts.map +1 -0
  237. package/dist/utils/async.js +12 -0
  238. package/dist/utils/async.js.map +1 -0
  239. package/dist/utils/atomicFile.js +1 -1
  240. package/dist/utils/atomicFile.js.map +1 -1
  241. package/dist/utils/errorMapping.d.ts.map +1 -1
  242. package/dist/utils/errorMapping.js +4 -1
  243. package/dist/utils/errorMapping.js.map +1 -1
  244. package/dist/utils/exitCodes.d.ts +17 -16
  245. package/dist/utils/exitCodes.d.ts.map +1 -1
  246. package/dist/utils/exitCodes.js +86 -16
  247. package/dist/utils/exitCodes.js.map +1 -1
  248. package/dist/utils/suggestions.d.ts +19 -0
  249. package/dist/utils/suggestions.d.ts.map +1 -0
  250. package/dist/utils/suggestions.js +34 -0
  251. package/dist/utils/suggestions.js.map +1 -0
  252. package/dist/utils/taskMappings.d.ts.map +1 -1
  253. package/dist/utils/taskMappings.js +35 -0
  254. package/dist/utils/taskMappings.js.map +1 -1
  255. package/dist/utils/typeGuards.d.ts +11 -4
  256. package/dist/utils/typeGuards.d.ts.map +1 -1
  257. package/dist/utils/typeGuards.js +1 -17
  258. package/dist/utils/typeGuards.js.map +1 -1
  259. package/package.json +4 -4
@@ -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 { CDPConnectionError, getErrorMessage } from '../../connection/errors.js';
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
- throw new CommandError(`No nodes found matching "${options.selector}"`, { suggestion: 'Verify the CSS selector is correct' }, EXIT_CODES.RESOURCE_NOT_FOUND);
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 < 1 || options.nth > nodeIds.length) {
164
- throw new CommandError(`--nth ${options.nth} out of range (found ${nodeIds.length} nodes)`, { suggestion: `Use a value between 1 and ${nodeIds.length}` }, EXIT_CODES.INVALID_ARGUMENTS);
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 - 1];
315
+ const nthNode = nodeIds[options.nth];
167
316
  if (nthNode === undefined) {
168
- throw new CommandError(`Element at index ${options.nth} not found`, {}, EXIT_CODES.RESOURCE_NOT_FOUND);
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
- throw new CommandError('No nodes found', {}, EXIT_CODES.RESOURCE_NOT_FOUND);
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
- throw new CommandError('Either selector or nodeId must be provided', {}, EXIT_CODES.INVALID_ARGUMENTS);
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 size
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 fullPage = options.fullPage ?? true;
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 screenshotResponse = await callCDP('Page.captureScreenshot', {
239
- format,
240
- ...(quality !== undefined && { quality }),
241
- captureBeyondViewport: fullPage,
242
- });
243
- const screenshotResult = screenshotResponse.data?.result;
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,187 @@ export async function capturePageScreenshot(outputPath, options = {}) {
252
470
  const result = {
253
471
  path: absolutePath,
254
472
  format,
255
- width: fullPage ? contentSize.width : viewport.clientWidth,
256
- height: fullPage ? contentSize.height : viewport.clientHeight,
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 (!fullPage) {
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
+ }
510
+ return result;
511
+ }
512
+ /**
513
+ * Get element bounding box via CDP DOM.getBoxModel.
514
+ *
515
+ * Extracts the content box coordinates from the box model quad array.
516
+ * The content quad is an array of 8 numbers: [x1,y1, x2,y2, x3,y3, x4,y4]
517
+ * representing the four corners of the content box.
518
+ *
519
+ * @param nodeId - CDP node ID
520
+ * @returns Element bounds (x, y, width, height)
521
+ * @throws CommandError if element not found or has zero dimensions
522
+ */
523
+ export async function getElementBounds(nodeId) {
524
+ const response = await callCDP('DOM.getBoxModel', { nodeId });
525
+ const boxModel = response.data?.result;
526
+ if (!boxModel?.model?.content) {
527
+ const err = elementNotVisibleError();
528
+ throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.RESOURCE_NOT_FOUND);
529
+ }
530
+ const content = boxModel.model.content;
531
+ const x = content[0] ?? 0;
532
+ const y = content[1] ?? 0;
533
+ const width = (content[2] ?? 0) - x;
534
+ const height = (content[5] ?? 0) - y;
535
+ if (width <= 0 || height <= 0) {
536
+ const err = elementZeroDimensionsError();
537
+ throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.INVALID_ARGUMENTS);
538
+ }
539
+ return { x, y, width, height };
540
+ }
541
+ /**
542
+ * Resolve CSS selector to CDP nodeId.
543
+ *
544
+ * Queries the document for a single element matching the selector.
545
+ *
546
+ * @param selector - CSS selector string
547
+ * @returns CDP nodeId
548
+ * @throws CommandError if element not found
549
+ */
550
+ export async function resolveSelector(selector) {
551
+ await callCDP('DOM.enable', {});
552
+ const docResponse = await callCDP('DOM.getDocument', {});
553
+ const doc = docResponse.data?.result;
554
+ if (!doc?.root?.nodeId) {
555
+ throw new CDPConnectionError('Failed to get document root', new Error('No root node'));
556
+ }
557
+ const queryResponse = await callCDP('DOM.querySelector', {
558
+ nodeId: doc.root.nodeId,
559
+ selector,
560
+ });
561
+ const queryResult = queryResponse.data?.result;
562
+ if (!queryResult?.nodeId) {
563
+ const err = noNodesFoundError(selector);
564
+ throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.RESOURCE_NOT_FOUND);
565
+ }
566
+ return queryResult.nodeId;
567
+ }
568
+ /**
569
+ * Capture screenshot of a specific element.
570
+ *
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.
574
+ *
575
+ * @param outputPath - Output file path
576
+ * @param nodeId - CDP node ID of element
577
+ * @param options - Format, quality, and noResize options
578
+ * @returns Screenshot result with element bounds and resize metadata
579
+ */
580
+ export async function captureElementScreenshot(outputPath, nodeId, options = {}) {
581
+ const bounds = await getElementBounds(nodeId);
582
+ const format = options.format ?? 'png';
583
+ const quality = format === 'jpeg' ? (options.quality ?? 90) : undefined;
584
+ const noResize = options.noResize ?? false;
585
+ const dprResponse = await callCDP('Runtime.evaluate', {
586
+ expression: 'window.devicePixelRatio',
587
+ returnByValue: true,
588
+ });
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
+ }
628
+ if (!screenshotResult?.data) {
629
+ throw new CDPConnectionError('No screenshot data returned', new Error('Empty response'));
630
+ }
631
+ const path = await import('path');
632
+ const { AtomicFileWriter } = await import('../../utils/atomicFile.js');
633
+ const buffer = Buffer.from(screenshotResult.data, 'base64');
634
+ const absolutePath = path.resolve(outputPath);
635
+ await AtomicFileWriter.writeBufferAsync(absolutePath, buffer);
636
+ const result = {
637
+ path: absolutePath,
638
+ format,
639
+ width: finalWidth,
640
+ height: finalHeight,
641
+ size: buffer.length,
642
+ fullPage: false,
643
+ finalTokens: calculateImageTokens(finalWidth, finalHeight),
644
+ };
645
+ if (quality !== undefined) {
646
+ result.quality = quality;
647
+ }
648
+ if (resized) {
649
+ result.resized = true;
650
+ result.originalWidth = originalWidth;
651
+ result.originalHeight = originalHeight;
652
+ result.originalTokens = calculateImageTokens(originalWidth, originalHeight);
653
+ }
269
654
  return result;
270
655
  }
271
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":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Command } from 'commander';
2
2
  /**
3
- * Register DOM telemetry commands
3
+ * Register DOM telemetry commands.
4
4
  *
5
5
  * @param program - Commander.js Command instance
6
6
  */
@@ -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;AAqVzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmD1D"}
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"}