browser-debugger-cli 0.6.5 → 0.6.7

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 (223) hide show
  1. package/README.md +48 -269
  2. package/dist/commands/__tests__/helpJson.contract.test.d.ts +12 -0
  3. package/dist/commands/__tests__/helpJson.contract.test.d.ts.map +1 -0
  4. package/dist/commands/__tests__/helpJson.contract.test.js +121 -0
  5. package/dist/commands/__tests__/helpJson.contract.test.js.map +1 -0
  6. package/dist/commands/__tests__/machineReadableHelp.contract.test.js +26 -7
  7. package/dist/commands/__tests__/machineReadableHelp.contract.test.js.map +1 -1
  8. package/dist/commands/cdp.d.ts.map +1 -1
  9. package/dist/commands/cdp.js.map +1 -1
  10. package/dist/commands/cleanup.d.ts.map +1 -1
  11. package/dist/commands/cleanup.js +17 -91
  12. package/dist/commands/cleanup.js.map +1 -1
  13. package/dist/commands/console.d.ts.map +1 -1
  14. package/dist/commands/console.js.map +1 -1
  15. package/dist/commands/details.d.ts.map +1 -1
  16. package/dist/commands/details.js +3 -1
  17. package/dist/commands/details.js.map +1 -1
  18. package/dist/commands/dom/DomElementResolver.d.ts +138 -0
  19. package/dist/commands/dom/DomElementResolver.d.ts.map +1 -0
  20. package/dist/commands/dom/DomElementResolver.js +173 -0
  21. package/dist/commands/dom/DomElementResolver.js.map +1 -0
  22. package/dist/commands/dom/a11y.d.ts.map +1 -1
  23. package/dist/commands/dom/a11y.js +37 -33
  24. package/dist/commands/dom/a11y.js.map +1 -1
  25. package/dist/commands/dom/evalHelpers.d.ts.map +1 -1
  26. package/dist/commands/dom/evalHelpers.js +1 -1
  27. package/dist/commands/dom/evalHelpers.js.map +1 -1
  28. package/dist/commands/dom/formFillHelpers.d.ts +68 -2
  29. package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
  30. package/dist/commands/dom/formFillHelpers.js +216 -70
  31. package/dist/commands/dom/formFillHelpers.js.map +1 -1
  32. package/dist/commands/dom/formInteraction.d.ts.map +1 -1
  33. package/dist/commands/dom/formInteraction.js +128 -15
  34. package/dist/commands/dom/formInteraction.js.map +1 -1
  35. package/dist/commands/dom/helpers.d.ts +11 -2
  36. package/dist/commands/dom/helpers.d.ts.map +1 -1
  37. package/dist/commands/dom/helpers.js +50 -1
  38. package/dist/commands/dom/helpers.js.map +1 -1
  39. package/dist/commands/dom/index.d.ts.map +1 -1
  40. package/dist/commands/dom/index.js +105 -52
  41. package/dist/commands/dom/index.js.map +1 -1
  42. package/dist/commands/dom/keyMapping.d.ts +56 -0
  43. package/dist/commands/dom/keyMapping.d.ts.map +1 -0
  44. package/dist/commands/dom/keyMapping.js +110 -0
  45. package/dist/commands/dom/keyMapping.js.map +1 -0
  46. package/dist/commands/dom/reactEventHelpers.d.ts +19 -20
  47. package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
  48. package/dist/commands/dom/reactEventHelpers.js +73 -80
  49. package/dist/commands/dom/reactEventHelpers.js.map +1 -1
  50. package/dist/commands/helpJson.d.ts +165 -0
  51. package/dist/commands/helpJson.d.ts.map +1 -0
  52. package/dist/commands/helpJson.js +252 -0
  53. package/dist/commands/helpJson.js.map +1 -0
  54. package/dist/commands/machineReadableHelp.d.ts +21 -2
  55. package/dist/commands/machineReadableHelp.d.ts.map +1 -1
  56. package/dist/commands/machineReadableHelp.js +95 -60
  57. package/dist/commands/machineReadableHelp.js.map +1 -1
  58. package/dist/commands/network.d.ts.map +1 -1
  59. package/dist/commands/network.js.map +1 -1
  60. package/dist/commands/peek.d.ts.map +1 -1
  61. package/dist/commands/peek.js +20 -13
  62. package/dist/commands/peek.js.map +1 -1
  63. package/dist/commands/shared/CommandRunner.d.ts +4 -10
  64. package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
  65. package/dist/commands/shared/CommandRunner.js +2 -2
  66. package/dist/commands/shared/CommandRunner.js.map +1 -1
  67. package/dist/commands/shared/commonOptions.d.ts +0 -15
  68. package/dist/commands/shared/commonOptions.d.ts.map +1 -1
  69. package/dist/commands/shared/commonOptions.js +0 -32
  70. package/dist/commands/shared/commonOptions.js.map +1 -1
  71. package/dist/commands/shared/optionTypes.d.ts +237 -0
  72. package/dist/commands/shared/optionTypes.d.ts.map +1 -0
  73. package/dist/commands/shared/optionTypes.js +20 -0
  74. package/dist/commands/shared/optionTypes.js.map +1 -0
  75. package/dist/commands/shared/startHelpers.d.ts.map +1 -1
  76. package/dist/commands/shared/startHelpers.js +3 -3
  77. package/dist/commands/shared/startHelpers.js.map +1 -1
  78. package/dist/commands/start.d.ts.map +1 -1
  79. package/dist/commands/start.js +8 -6
  80. package/dist/commands/start.js.map +1 -1
  81. package/dist/commands/status.d.ts.map +1 -1
  82. package/dist/commands/status.js.map +1 -1
  83. package/dist/commands/stop.d.ts.map +1 -1
  84. package/dist/commands/stop.js +17 -43
  85. package/dist/commands/stop.js.map +1 -1
  86. package/dist/commands/tail.d.ts.map +1 -1
  87. package/dist/commands/tail.js +49 -59
  88. package/dist/commands/tail.js.map +1 -1
  89. package/dist/connection/types.d.ts +2 -1
  90. package/dist/connection/types.d.ts.map +1 -1
  91. package/dist/constants.d.ts +19 -1
  92. package/dist/constants.d.ts.map +1 -1
  93. package/dist/constants.js +45 -2
  94. package/dist/constants.js.map +1 -1
  95. package/dist/daemon/handlers/responseHandler.d.ts.map +1 -1
  96. package/dist/daemon/handlers/responseHandler.js +1 -0
  97. package/dist/daemon/handlers/responseHandler.js.map +1 -1
  98. package/dist/daemon/ipcServer.js +8 -8
  99. package/dist/daemon/ipcServer.js.map +1 -1
  100. package/dist/daemon/lifecycle/signalHandlers.d.ts.map +1 -1
  101. package/dist/daemon/lifecycle/signalHandlers.js +19 -3
  102. package/dist/daemon/lifecycle/signalHandlers.js.map +1 -1
  103. package/dist/daemon/lifecycle/workerCleanup.d.ts.map +1 -1
  104. package/dist/daemon/lifecycle/workerCleanup.js +5 -2
  105. package/dist/daemon/lifecycle/workerCleanup.js.map +1 -1
  106. package/dist/daemon/patternDefinitions.d.ts +0 -13
  107. package/dist/daemon/patternDefinitions.d.ts.map +1 -1
  108. package/dist/daemon/patternDefinitions.js +0 -17
  109. package/dist/daemon/patternDefinitions.js.map +1 -1
  110. package/dist/daemon/worker/commandRegistry.d.ts.map +1 -1
  111. package/dist/daemon/worker/commandRegistry.js +1 -0
  112. package/dist/daemon/worker/commandRegistry.js.map +1 -1
  113. package/dist/index.js +34 -2
  114. package/dist/index.js.map +1 -1
  115. package/dist/ipc/__tests__/jsonl.unit.test.js +5 -5
  116. package/dist/ipc/__tests__/jsonl.unit.test.js.map +1 -1
  117. package/dist/ipc/protocol/commands.d.ts +2 -0
  118. package/dist/ipc/protocol/commands.d.ts.map +1 -1
  119. package/dist/ipc/protocol/commands.js.map +1 -1
  120. package/dist/ipc/session/queries.d.ts +2 -0
  121. package/dist/ipc/session/queries.d.ts.map +1 -1
  122. package/dist/ipc/utils/responseValidator.d.ts +7 -1
  123. package/dist/ipc/utils/responseValidator.d.ts.map +1 -1
  124. package/dist/ipc/utils/responseValidator.js +6 -1
  125. package/dist/ipc/utils/responseValidator.js.map +1 -1
  126. package/dist/session/QueryCacheManager.d.ts +140 -0
  127. package/dist/session/QueryCacheManager.d.ts.map +1 -0
  128. package/dist/session/QueryCacheManager.js +233 -0
  129. package/dist/session/QueryCacheManager.js.map +1 -0
  130. package/dist/session/cleanup.d.ts +63 -1
  131. package/dist/session/cleanup.d.ts.map +1 -1
  132. package/dist/session/cleanup.js +191 -65
  133. package/dist/session/cleanup.js.map +1 -1
  134. package/dist/session/queryCache.d.ts +25 -14
  135. package/dist/session/queryCache.d.ts.map +1 -1
  136. package/dist/session/queryCache.js +31 -60
  137. package/dist/session/queryCache.js.map +1 -1
  138. package/dist/telemetry/__tests__/roleInference.unit.test.d.ts +9 -0
  139. package/dist/telemetry/__tests__/roleInference.unit.test.d.ts.map +1 -0
  140. package/dist/telemetry/__tests__/roleInference.unit.test.js +138 -0
  141. package/dist/telemetry/__tests__/roleInference.unit.test.js.map +1 -0
  142. package/dist/telemetry/dom.d.ts +1 -0
  143. package/dist/telemetry/dom.d.ts.map +1 -1
  144. package/dist/telemetry/dom.js +9 -4
  145. package/dist/telemetry/dom.js.map +1 -1
  146. package/dist/telemetry/filters.d.ts +3 -0
  147. package/dist/telemetry/filters.d.ts.map +1 -1
  148. package/dist/telemetry/filters.js +25 -3
  149. package/dist/telemetry/filters.js.map +1 -1
  150. package/dist/telemetry/network.d.ts.map +1 -1
  151. package/dist/telemetry/network.js +35 -6
  152. package/dist/telemetry/network.js.map +1 -1
  153. package/dist/telemetry/roleInference.d.ts +50 -0
  154. package/dist/telemetry/roleInference.d.ts.map +1 -0
  155. package/dist/telemetry/roleInference.js +163 -0
  156. package/dist/telemetry/roleInference.js.map +1 -0
  157. package/dist/telemetry/utils.d.ts +0 -57
  158. package/dist/telemetry/utils.d.ts.map +1 -1
  159. package/dist/telemetry/utils.js +0 -71
  160. package/dist/telemetry/utils.js.map +1 -1
  161. package/dist/types/dom.d.ts +11 -0
  162. package/dist/types/dom.d.ts.map +1 -1
  163. package/dist/types.d.ts +2 -0
  164. package/dist/types.d.ts.map +1 -1
  165. package/dist/ui/formatters/a11y.d.ts +13 -3
  166. package/dist/ui/formatters/a11y.d.ts.map +1 -1
  167. package/dist/ui/formatters/a11y.js +18 -3
  168. package/dist/ui/formatters/a11y.js.map +1 -1
  169. package/dist/ui/formatters/preview.d.ts +4 -0
  170. package/dist/ui/formatters/preview.d.ts.map +1 -1
  171. package/dist/ui/formatters/preview.js +26 -43
  172. package/dist/ui/formatters/preview.js.map +1 -1
  173. package/dist/ui/formatters/sessionFormatters.d.ts.map +1 -1
  174. package/dist/ui/formatters/sessionFormatters.js +2 -0
  175. package/dist/ui/formatters/sessionFormatters.js.map +1 -1
  176. package/dist/ui/logging/index.d.ts +1 -1
  177. package/dist/ui/logging/index.d.ts.map +1 -1
  178. package/dist/ui/logging/index.js +1 -1
  179. package/dist/ui/logging/index.js.map +1 -1
  180. package/dist/ui/logging/logger.d.ts +21 -0
  181. package/dist/ui/logging/logger.d.ts.map +1 -1
  182. package/dist/ui/logging/logger.js +24 -6
  183. package/dist/ui/logging/logger.js.map +1 -1
  184. package/dist/ui/messages/commands.d.ts +0 -14
  185. package/dist/ui/messages/commands.d.ts.map +1 -1
  186. package/dist/ui/messages/commands.js +0 -18
  187. package/dist/ui/messages/commands.js.map +1 -1
  188. package/dist/ui/messages/errors.d.ts +0 -16
  189. package/dist/ui/messages/errors.d.ts.map +1 -1
  190. package/dist/ui/messages/errors.js +0 -18
  191. package/dist/ui/messages/errors.js.map +1 -1
  192. package/dist/ui/messages/hints.d.ts +0 -10
  193. package/dist/ui/messages/hints.d.ts.map +1 -1
  194. package/dist/ui/messages/hints.js +0 -12
  195. package/dist/ui/messages/hints.js.map +1 -1
  196. package/dist/utils/decisionTrees.d.ts +0 -17
  197. package/dist/utils/decisionTrees.d.ts.map +1 -1
  198. package/dist/utils/decisionTrees.js +5 -21
  199. package/dist/utils/decisionTrees.js.map +1 -1
  200. package/dist/utils/errorMapping.d.ts +60 -0
  201. package/dist/utils/errorMapping.d.ts.map +1 -0
  202. package/dist/utils/errorMapping.js +97 -0
  203. package/dist/utils/errorMapping.js.map +1 -0
  204. package/dist/utils/file.d.ts +27 -0
  205. package/dist/utils/file.d.ts.map +1 -0
  206. package/dist/utils/file.js +37 -0
  207. package/dist/utils/file.js.map +1 -0
  208. package/dist/utils/levenshtein.d.ts +0 -17
  209. package/dist/utils/levenshtein.d.ts.map +1 -1
  210. package/dist/utils/levenshtein.js +0 -31
  211. package/dist/utils/levenshtein.js.map +1 -1
  212. package/dist/utils/taskMappings.d.ts +0 -17
  213. package/dist/utils/taskMappings.d.ts.map +1 -1
  214. package/dist/utils/taskMappings.js +5 -21
  215. package/dist/utils/taskMappings.js.map +1 -1
  216. package/dist/utils/typeGuards.d.ts +62 -0
  217. package/dist/utils/typeGuards.d.ts.map +1 -0
  218. package/dist/utils/typeGuards.js +94 -0
  219. package/dist/utils/typeGuards.js.map +1 -0
  220. package/dist/utils/url.d.ts.map +1 -1
  221. package/dist/utils/url.js +15 -2
  222. package/dist/utils/url.js.map +1 -1
  223. package/package.json +1 -1
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Role inference utilities for synthesizing accessibility nodes from DOM context.
3
+ *
4
+ * When Chrome's accessibility tree returns no data for an element (all nodes ignored),
5
+ * these utilities infer semantic meaning from HTML tags using implicit ARIA roles.
6
+ *
7
+ * @see https://www.w3.org/TR/html-aria/#docconformance
8
+ */
9
+ /**
10
+ * Implicit ARIA roles mapped from HTML tags.
11
+ *
12
+ * Based on WAI-ARIA specification for HTML elements.
13
+ * These represent the default accessibility semantics browsers assign to elements.
14
+ *
15
+ * @see https://www.w3.org/TR/html-aria/#docconformance
16
+ */
17
+ const IMPLICIT_ARIA_ROLES = {
18
+ // Interactive elements
19
+ a: 'link',
20
+ button: 'button',
21
+ input: 'textbox',
22
+ select: 'combobox',
23
+ textarea: 'textbox',
24
+ option: 'option',
25
+ // Headings
26
+ h1: 'heading',
27
+ h2: 'heading',
28
+ h3: 'heading',
29
+ h4: 'heading',
30
+ h5: 'heading',
31
+ h6: 'heading',
32
+ // Landmarks
33
+ nav: 'navigation',
34
+ main: 'main',
35
+ header: 'banner',
36
+ footer: 'contentinfo',
37
+ aside: 'complementary',
38
+ section: 'region',
39
+ article: 'article',
40
+ form: 'form',
41
+ search: 'search',
42
+ // Media
43
+ img: 'image',
44
+ figure: 'figure',
45
+ figcaption: 'caption',
46
+ video: 'video',
47
+ audio: 'audio',
48
+ // Lists
49
+ ul: 'list',
50
+ ol: 'list',
51
+ li: 'listitem',
52
+ dl: 'list',
53
+ dt: 'term',
54
+ dd: 'definition',
55
+ menu: 'menu',
56
+ menuitem: 'menuitem',
57
+ // Tables
58
+ table: 'table',
59
+ thead: 'rowgroup',
60
+ tbody: 'rowgroup',
61
+ tfoot: 'rowgroup',
62
+ tr: 'row',
63
+ th: 'columnheader',
64
+ td: 'cell',
65
+ // Other semantic elements
66
+ dialog: 'dialog',
67
+ details: 'group',
68
+ summary: 'button',
69
+ progress: 'progressbar',
70
+ meter: 'meter',
71
+ output: 'status',
72
+ address: 'group',
73
+ blockquote: 'blockquote',
74
+ code: 'code',
75
+ pre: 'group',
76
+ hr: 'separator',
77
+ };
78
+ /**
79
+ * Default role when no implicit mapping exists.
80
+ */
81
+ const DEFAULT_ROLE = 'generic';
82
+ /**
83
+ * Maximum length for synthesized accessible name from DOM text preview.
84
+ */
85
+ const MAX_NAME_LENGTH = 100;
86
+ /**
87
+ * Infers an ARIA role from an HTML tag name.
88
+ *
89
+ * Uses the WAI-ARIA specification's implicit role mappings.
90
+ * Returns 'generic' for unknown or non-semantic tags (div, span, etc.).
91
+ *
92
+ * @param tag - HTML tag name (case-insensitive)
93
+ * @returns Inferred ARIA role
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * inferRoleFromTag('button') // => 'button'
98
+ * inferRoleFromTag('H1') // => 'heading'
99
+ * inferRoleFromTag('div') // => 'generic'
100
+ * ```
101
+ */
102
+ export function inferRoleFromTag(tag) {
103
+ const normalizedTag = tag.toLowerCase();
104
+ return IMPLICIT_ARIA_ROLES[normalizedTag] ?? DEFAULT_ROLE;
105
+ }
106
+ /**
107
+ * Extracts heading level from tag name.
108
+ *
109
+ * @param tag - HTML tag name
110
+ * @returns Heading level (1-6) or null if not a heading
111
+ */
112
+ function extractHeadingLevel(tag) {
113
+ const match = tag.toLowerCase().match(/^h([1-6])$/);
114
+ const level = match?.[1];
115
+ if (!level) {
116
+ return null;
117
+ }
118
+ return parseInt(level, 10);
119
+ }
120
+ /**
121
+ * Synthesizes an A11yNode from DOM context when accessibility data is unavailable.
122
+ *
123
+ * Creates a minimal accessibility node with:
124
+ * - Role inferred from HTML tag
125
+ * - Name from text preview (if available)
126
+ * - `inferred: true` flag to signal synthesized data
127
+ *
128
+ * @param domContext - DOM context with tag, classes, and text preview
129
+ * @param nodeId - CDP node ID to associate with the synthesized node
130
+ * @returns Synthesized A11yNode with `inferred: true`
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * synthesizeA11yNode(
135
+ * { tag: 'a', preview: 'Main page', classes: ['nav-link'] },
136
+ * 123
137
+ * );
138
+ * // => { nodeId: '123', role: 'link', name: 'Main page', inferred: true, backendDOMNodeId: 123 }
139
+ * ```
140
+ */
141
+ export function synthesizeA11yNode(domContext, nodeId) {
142
+ const role = inferRoleFromTag(domContext.tag);
143
+ const node = {
144
+ nodeId: String(nodeId),
145
+ role,
146
+ inferred: true,
147
+ backendDOMNodeId: nodeId,
148
+ };
149
+ // Use text preview as accessible name (truncated if needed)
150
+ if (domContext.preview) {
151
+ const name = domContext.preview.length > MAX_NAME_LENGTH
152
+ ? domContext.preview.slice(0, MAX_NAME_LENGTH - 3) + '...'
153
+ : domContext.preview;
154
+ node.name = name;
155
+ }
156
+ // Add heading level as property for h1-h6 elements
157
+ const headingLevel = extractHeadingLevel(domContext.tag);
158
+ if (headingLevel !== null) {
159
+ node.properties = { level: headingLevel };
160
+ }
161
+ return node;
162
+ }
163
+ //# sourceMappingURL=roleInference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roleInference.js","sourceRoot":"","sources":["../../src/telemetry/roleInference.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAA2B;IAClD,uBAAuB;IACvB,CAAC,EAAE,MAAM;IACT,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,QAAQ;IAEhB,WAAW;IACX,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,SAAS;IAEb,YAAY;IACZ,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,eAAe;IACtB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAEhB,QAAQ;IACR,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IAEd,QAAQ;IACR,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IAEpB,SAAS;IACT,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,cAAc;IAClB,EAAE,EAAE,MAAM;IAEV,0BAA0B;IAC1B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,OAAO;IACZ,EAAE,EAAE,WAAW;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B;;GAEG;AACH,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACxC,OAAO,mBAAmB,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAsB,EAAE,MAAc;IACvE,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,IAAI,GAAa;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACtB,IAAI;QACJ,QAAQ,EAAE,IAAI;QACd,gBAAgB,EAAE,MAAM;KACzB,CAAC;IAEF,4DAA4D;IAC5D,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,GACR,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,eAAe;YACzC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,GAAG,KAAK;YAC1D,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,mDAAmD;IACnD,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACzD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -25,61 +25,4 @@ export declare function pushWithLimit<T>(buffer: T[], item: T, limit: number, on
25
25
  * ```
26
26
  */
27
27
  export declare function withTimeout<T>(promise: Promise<T>, timeoutMs: number, label: string): Promise<T>;
28
- /**
29
- * Result of a batch CDP operation.
30
- */
31
- export interface BatchCDPResult<T> {
32
- /** Successfully resolved results */
33
- results: T[];
34
- /** Errors that occurred during execution */
35
- errors: Array<{
36
- index: number;
37
- error: Error;
38
- }>;
39
- }
40
- /**
41
- * Execute multiple CDP operations in parallel with concurrency control.
42
- *
43
- * Processes an array of async operations with a maximum concurrency limit,
44
- * preventing overwhelming of the CDP connection. Collects both successful
45
- * results and errors, allowing partial success handling.
46
- *
47
- * @param operations - Array of async operations to execute
48
- * @param concurrency - Maximum number of concurrent operations (default: 10)
49
- * @returns Object containing successful results and errors with their indices
50
- *
51
- * @example
52
- * ```typescript
53
- * const operations = nodeIds.map(id => () => cdp.send('DOM.describeNode', { nodeId: id }));
54
- * const { results, errors } = await batchCDPOperations(operations, 5);
55
- *
56
- * if (errors.length > 0) {
57
- * log.debug(`Failed to describe ${errors.length} nodes`);
58
- * }
59
- * ```
60
- */
61
- export declare function batchCDPOperations<T>(operations: Array<() => Promise<T>>, concurrency?: number): Promise<BatchCDPResult<T>>;
62
- /**
63
- * Process an array in parallel with concurrency control and transformation.
64
- *
65
- * Similar to `Promise.all(array.map(fn))` but with concurrency limiting and
66
- * error collection. Useful for processing large arrays of data that require
67
- * async operations without blocking the entire event loop.
68
- *
69
- * @param items - Array of items to process
70
- * @param mapper - Async function to transform each item
71
- * @param concurrency - Maximum number of concurrent operations (default: 10)
72
- * @returns Object containing successful results and errors with their indices
73
- *
74
- * @example
75
- * ```typescript
76
- * const requestIds = ['req1', 'req2', 'req3'];
77
- * const { results, errors } = await parallelMap(
78
- * requestIds,
79
- * async (id) => cdp.send('Network.getResponseBody', { requestId: id }),
80
- * 5
81
- * );
82
- * ```
83
- */
84
- export declare function parallelMap<T, R>(items: T[], mapper: (item: T, index: number) => Promise<R>, concurrency?: number): Promise<BatchCDPResult<R>>;
85
28
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/telemetry/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+BH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,MAAM,EAAE,CAAC,EAAE,EACX,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,IAAI,GACzB,IAAI,CAQN;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,CAOZ;AAQD;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,oCAAoC;IACpC,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,4CAA4C;IAC5C,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,UAAU,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EACnC,WAAW,GAAE,MAAgC,GAC5C,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAsB5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,EACV,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9C,WAAW,GAAE,MAAgC,GAC5C,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAG5B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/telemetry/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6BH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,MAAM,EAAE,CAAC,EAAE,EACX,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,IAAI,GACzB,IAAI,CAQN;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,CAOZ"}
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * Shared utilities for telemetry collectors
3
3
  */
4
- import { ConcurrencyLimiter } from '../utils/concurrency.js';
5
4
  /**
6
5
  * Push an item to a bounded buffer with limit enforcement.
7
6
  *
@@ -65,74 +64,4 @@ export async function withTimeout(promise, timeoutMs, label) {
65
64
  new Promise((_, reject) => setTimeout(() => reject(new Error(`CDP ${label} timed out after ${timeoutMs}ms`)), timeoutMs)),
66
65
  ]);
67
66
  }
68
- /**
69
- * Default concurrency limit for batch CDP operations.
70
- * Prevents overwhelming the CDP connection with too many simultaneous requests.
71
- */
72
- const DEFAULT_CDP_CONCURRENCY = 10;
73
- /**
74
- * Execute multiple CDP operations in parallel with concurrency control.
75
- *
76
- * Processes an array of async operations with a maximum concurrency limit,
77
- * preventing overwhelming of the CDP connection. Collects both successful
78
- * results and errors, allowing partial success handling.
79
- *
80
- * @param operations - Array of async operations to execute
81
- * @param concurrency - Maximum number of concurrent operations (default: 10)
82
- * @returns Object containing successful results and errors with their indices
83
- *
84
- * @example
85
- * ```typescript
86
- * const operations = nodeIds.map(id => () => cdp.send('DOM.describeNode', { nodeId: id }));
87
- * const { results, errors } = await batchCDPOperations(operations, 5);
88
- *
89
- * if (errors.length > 0) {
90
- * log.debug(`Failed to describe ${errors.length} nodes`);
91
- * }
92
- * ```
93
- */
94
- export async function batchCDPOperations(operations, concurrency = DEFAULT_CDP_CONCURRENCY) {
95
- const limiter = new ConcurrencyLimiter(concurrency);
96
- const results = [];
97
- const errors = [];
98
- await Promise.all(operations.map((operation, index) => limiter.run(async () => {
99
- try {
100
- const result = await operation();
101
- results.push(result);
102
- }
103
- catch (error) {
104
- errors.push({
105
- index,
106
- error: error instanceof Error ? error : new Error(String(error)),
107
- });
108
- }
109
- })));
110
- return { results, errors };
111
- }
112
- /**
113
- * Process an array in parallel with concurrency control and transformation.
114
- *
115
- * Similar to `Promise.all(array.map(fn))` but with concurrency limiting and
116
- * error collection. Useful for processing large arrays of data that require
117
- * async operations without blocking the entire event loop.
118
- *
119
- * @param items - Array of items to process
120
- * @param mapper - Async function to transform each item
121
- * @param concurrency - Maximum number of concurrent operations (default: 10)
122
- * @returns Object containing successful results and errors with their indices
123
- *
124
- * @example
125
- * ```typescript
126
- * const requestIds = ['req1', 'req2', 'req3'];
127
- * const { results, errors } = await parallelMap(
128
- * requestIds,
129
- * async (id) => cdp.send('Network.getResponseBody', { requestId: id }),
130
- * 5
131
- * );
132
- * ```
133
- */
134
- export async function parallelMap(items, mapper, concurrency = DEFAULT_CDP_CONCURRENCY) {
135
- const operations = items.map((item, index) => () => mapper(item, index));
136
- return batchCDPOperations(operations, concurrency);
137
- }
138
67
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/telemetry/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAa,CAAC;AAErD,MAAM,UAAU,aAAa,CAC3B,MAAW,EACX,IAAO,EACP,KAAa,EACb,cAA0B;IAE1B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAmB,EACnB,SAAiB,EACjB,KAAa;IAEb,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,OAAO;QACP,IAAI,OAAO,CAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC3B,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,oBAAoB,SAAS,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAC9F;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAYnC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAmC,EACnC,cAAsB,uBAAuB;IAE7C,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,MAAM,MAAM,GAA2C,EAAE,CAAC;IAE1D,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAClC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK;gBACL,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACjE,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CACH,CACF,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAU,EACV,MAA8C,EAC9C,cAAsB,uBAAuB;IAE7C,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACzE,OAAO,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/telemetry/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAa,CAAC;AAErD,MAAM,UAAU,aAAa,CAC3B,MAAW,EACX,IAAO,EACP,KAAa,EACb,cAA0B;IAE1B,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAmB,EACnB,SAAiB,EACjB,KAAa;IAEb,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,OAAO;QACP,IAAI,OAAO,CAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC3B,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,oBAAoB,SAAS,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAC9F;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -4,6 +4,15 @@
4
4
  * Shared type definitions for DOM query, get, and screenshot operations.
5
5
  * Used by both commands and formatters to avoid circular dependencies.
6
6
  */
7
+ /**
8
+ * DOM context information for enriching semantic output.
9
+ * Used when a11y name is missing to provide useful element context.
10
+ */
11
+ export interface DomContext {
12
+ tag: string;
13
+ classes?: string[];
14
+ preview?: string;
15
+ }
7
16
  /**
8
17
  * Result of a DOM query operation
9
18
  */
@@ -17,6 +26,8 @@ export interface DomQueryResult {
17
26
  classes?: string[];
18
27
  preview?: string;
19
28
  }>;
29
+ /** Navigation ID when query was performed (for staleness detection). */
30
+ navigationId?: number;
20
31
  }
21
32
  /**
22
33
  * Result of a DOM get operation
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/types/dom.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/types/dom.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
package/dist/types.d.ts CHANGED
@@ -116,6 +116,8 @@ export interface A11yNode {
116
116
  childIds?: string[];
117
117
  /** Associated DOM node ID for querying */
118
118
  backendDOMNodeId?: number;
119
+ /** True when node is synthesized from DOM context (a11y unavailable) */
120
+ inferred?: boolean;
119
121
  }
120
122
  /**
121
123
  * Accessibility tree data structure.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,12 @@
1
+ import type { DomContext } from '../../types/dom.js';
1
2
  import type { A11yTree, A11yQueryResult, A11yNode } from '../../types.js';
3
+ /**
4
+ * Data structure for a11y node with DOM context.
5
+ */
6
+ interface A11yNodeWithContext {
7
+ node: A11yNode;
8
+ domContext: DomContext | null;
9
+ }
2
10
  /**
3
11
  * Format accessibility tree for human-readable output.
4
12
  *
@@ -19,12 +27,14 @@ export declare function formatA11yTree(tree: A11yTree): string;
19
27
  */
20
28
  export declare function formatA11yQueryResult(result: A11yQueryResult): string;
21
29
  /**
22
- * Format single accessibility node for human-readable output.
30
+ * Format single accessibility node with DOM context fallback.
23
31
  *
24
32
  * Shows detailed properties including role, name, description, value, and states.
33
+ * When a11y data is sparse, includes DOM context (tag, classes, text preview).
25
34
  *
26
- * @param node - Accessibility node
35
+ * @param data - Accessibility node with DOM context
27
36
  * @returns Formatted output string
28
37
  */
29
- export declare function formatA11yNode(node: A11yNode): string;
38
+ export declare function formatA11yNodeWithContext(data: A11yNodeWithContext): string;
39
+ export {};
30
40
  //# sourceMappingURL=a11y.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"a11y.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/a11y.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AActE;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAmBrD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAyBrE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CA8CrD"}
1
+ {"version":3,"file":"a11y.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/a11y.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtE;;GAEG;AACH,UAAU,mBAAmB;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAaD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAmBrD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAyBrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA6D3E"}
@@ -63,17 +63,20 @@ export function formatA11yQueryResult(result) {
63
63
  return fmt.build();
64
64
  }
65
65
  /**
66
- * Format single accessibility node for human-readable output.
66
+ * Format single accessibility node with DOM context fallback.
67
67
  *
68
68
  * Shows detailed properties including role, name, description, value, and states.
69
+ * When a11y data is sparse, includes DOM context (tag, classes, text preview).
69
70
  *
70
- * @param node - Accessibility node
71
+ * @param data - Accessibility node with DOM context
71
72
  * @returns Formatted output string
72
73
  */
73
- export function formatA11yNode(node) {
74
+ export function formatA11yNodeWithContext(data) {
75
+ const { node, domContext } = data;
74
76
  const fmt = new OutputFormatter();
75
77
  fmt.text(`Accessibility Node: ${node.role}`).separator('─', SEPARATOR_WIDTH).blank();
76
78
  const props = [];
79
+ // A11y properties
77
80
  if (node.name) {
78
81
  props.push(['Name', node.name]);
79
82
  }
@@ -83,6 +86,18 @@ export function formatA11yNode(node) {
83
86
  if (node.value !== undefined) {
84
87
  props.push(['Value', node.value]);
85
88
  }
89
+ // DOM context fallback when a11y data is sparse
90
+ if (domContext) {
91
+ props.push(['Tag', `<${domContext.tag}>`]);
92
+ if (domContext.classes && domContext.classes.length > 0) {
93
+ props.push(['Classes', domContext.classes.join(' ')]);
94
+ }
95
+ if (domContext.preview && !node.name && !node.description) {
96
+ // Only show text preview if no a11y name/description
97
+ props.push(['Text Preview', domContext.preview]);
98
+ }
99
+ }
100
+ // State properties
86
101
  if (node.focusable) {
87
102
  props.push(['Focusable', 'yes']);
88
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"a11y.js","sourceRoot":"","sources":["../../../src/ui/formatters/a11y.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"a11y.js","sourceRoot":"","sources":["../../../src/ui/formatters/a11y.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,10 @@ export interface PreviewOptions {
19
19
  follow?: boolean | undefined;
20
20
  /** Current view timestamp (for follow mode to show refresh time). */
21
21
  viewedAt?: Date | undefined;
22
+ /** Resource types that were filtered (for showing feedback when no matches). */
23
+ filteredTypes?: string[] | undefined;
24
+ /** Total network requests before filtering (for showing feedback when no matches). */
25
+ unfilteredNetworkCount?: number | undefined;
22
26
  }
23
27
  /**
24
28
  * Format preview output (peek command)
@@ -1 +1 @@
1
- {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/preview.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAiGzC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,+BAA+B;IAC/B,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAMhF"}
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/preview.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAoDzC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,+BAA+B;IAC/B,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAC5B,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,sFAAsF;IACtF,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAMhF"}
@@ -1,49 +1,12 @@
1
+ import { RESOURCE_TYPE_ABBREVIATIONS, MIME_TYPE_RULES } from '../../constants.js';
1
2
  import { OutputFormatter, truncateUrl, truncateText } from '../../ui/formatting.js';
2
3
  import { PREVIEW_EMPTY_STATES, PREVIEW_HEADERS, compactTipsMessage, verboseCommandsMessage, } from '../../ui/messages/preview.js';
3
4
  import { semantic } from './semantic.js';
4
- /**
5
- * Resource type abbreviation mapping for compact display.
6
- * Defined at module level to avoid recreation on every call.
7
- */
8
- const RESOURCE_TYPE_ABBREVIATIONS = {
9
- Document: 'DOC',
10
- Stylesheet: 'CSS',
11
- Image: 'IMG',
12
- Media: 'MED',
13
- Font: 'FNT',
14
- Script: 'SCR',
15
- TextTrack: 'TXT',
16
- XHR: 'XHR',
17
- Fetch: 'FET',
18
- Prefetch: 'PRE',
19
- EventSource: 'EVT',
20
- WebSocket: 'WS',
21
- Manifest: 'MAN',
22
- SignedExchange: 'SGX',
23
- Ping: 'PNG',
24
- CSPViolationReport: 'CSP',
25
- Preflight: 'FLT',
26
- FedCM: 'FED',
27
- Other: 'OTH',
28
- };
29
- /**
30
- * Rules for inferring resource types from MIME patterns.
31
- * Ordered by precedence (first match wins).
32
- */
33
- const MIME_TYPE_RULES = [
34
- { type: 'Document', match: /text\/html/i },
35
- { type: 'Stylesheet', match: /text\/css/i },
36
- { type: 'Script', match: /(java|ecma)script/i },
37
- { type: 'Image', match: /^image\//i },
38
- { type: 'Font', match: /font/i },
39
- { type: 'Media', match: /^(video|audio)\//i },
40
- { type: 'XHR', match: /json|xml/i },
41
- ];
42
5
  /**
43
6
  * Infer resource type from MIME type when CDP doesn't provide it.
44
7
  *
45
8
  * @param mimeType - MIME type string (e.g., 'application/json', 'text/html')
46
- * @returns Inferred Protocol.Network.ResourceType or undefined
9
+ * @returns Inferred resource type string or undefined
47
10
  */
48
11
  function inferResourceTypeFromMime(mimeType) {
49
12
  if (!mimeType)
@@ -145,14 +108,24 @@ function formatPreviewCompact(output, options) {
145
108
  const hasNetworkData = output.data.network && output.data.network.length > 0;
146
109
  const hasConsoleData = output.data.console && output.data.console.length > 0;
147
110
  if (!options.console && output.data.network) {
148
- if (options.console === undefined || hasNetworkData) {
111
+ if (!options.console || hasNetworkData) {
149
112
  const requests = lastCount === 0 ? output.data.network : output.data.network.slice(-lastCount);
150
113
  const showingCount = requests.length;
151
114
  const totalCount = output.data.network.length;
152
115
  const limitHint = formatLimitHint(showingCount, totalCount);
153
116
  fmt.text(`NETWORK (${showingCount}/${totalCount})${limitHint}:`);
154
117
  if (requests.length === 0) {
155
- fmt.text(` ${PREVIEW_EMPTY_STATES.NO_DATA}`);
118
+ if (options.filteredTypes &&
119
+ options.filteredTypes.length > 0 &&
120
+ options.unfilteredNetworkCount &&
121
+ options.unfilteredNetworkCount > 0) {
122
+ const typesStr = options.filteredTypes.join(', ');
123
+ fmt.text(` No ${typesStr} requests found (filtered from ${options.unfilteredNetworkCount} total requests)`);
124
+ fmt.text(` Try: bdg peek --network (to see all types)`);
125
+ }
126
+ else {
127
+ fmt.text(` ${PREVIEW_EMPTY_STATES.NO_DATA}`);
128
+ }
156
129
  }
157
130
  else {
158
131
  const networkLines = requests.map((req) => {
@@ -226,14 +199,24 @@ function formatPreviewVerbose(output, options) {
226
199
  const hasNetworkData = output.data.network && output.data.network.length > 0;
227
200
  const hasConsoleData = output.data.console && output.data.console.length > 0;
228
201
  if (!options.console && output.data.network) {
229
- if (options.console === undefined || hasNetworkData) {
202
+ if (!options.console || hasNetworkData) {
230
203
  const requests = lastCount === 0 ? output.data.network : output.data.network.slice(-lastCount);
231
204
  const title = lastCount === 0
232
205
  ? `Network Requests (all ${requests.length})`
233
206
  : `Network Requests (last ${requests.length} of ${output.data.network.length})`;
234
207
  fmt.text(title).separator('━', 50);
235
208
  if (requests.length === 0) {
236
- fmt.text(PREVIEW_EMPTY_STATES.NO_NETWORK_REQUESTS);
209
+ if (options.filteredTypes &&
210
+ options.filteredTypes.length > 0 &&
211
+ options.unfilteredNetworkCount &&
212
+ options.unfilteredNetworkCount > 0) {
213
+ const typesStr = options.filteredTypes.join(', ');
214
+ fmt.text(`No ${typesStr} requests found (filtered from ${options.unfilteredNetworkCount} total requests)`);
215
+ fmt.text(`Try: bdg peek --network (to see all resource types)`);
216
+ }
217
+ else {
218
+ fmt.text(PREVIEW_EMPTY_STATES.NO_NETWORK_REQUESTS);
219
+ }
237
220
  }
238
221
  else {
239
222
  requests.forEach((req) => {