browser-debugger-cli 0.6.1 → 0.6.4

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 (334) hide show
  1. package/README.md +64 -3
  2. package/dist/__tests__/smoke/error-handling.smoke.test.js +9 -4
  3. package/dist/__tests__/smoke/error-handling.smoke.test.js.map +1 -1
  4. package/dist/__tests__/smoke/session-lifecycle.smoke.test.js +27 -24
  5. package/dist/__tests__/smoke/session-lifecycle.smoke.test.js.map +1 -1
  6. package/dist/__testutils__/daemonHelpers.d.ts +13 -1
  7. package/dist/__testutils__/daemonHelpers.d.ts.map +1 -1
  8. package/dist/__testutils__/daemonHelpers.js +54 -5
  9. package/dist/__testutils__/daemonHelpers.js.map +1 -1
  10. package/dist/cdp/protocol.d.ts.map +1 -1
  11. package/dist/cdp/protocol.js +6 -10
  12. package/dist/cdp/protocol.js.map +1 -1
  13. package/dist/cdp/schema.d.ts.map +1 -1
  14. package/dist/cdp/schema.js +0 -2
  15. package/dist/cdp/schema.js.map +1 -1
  16. package/dist/commands/cdp.d.ts.map +1 -1
  17. package/dist/commands/cdp.js +1 -20
  18. package/dist/commands/cdp.js.map +1 -1
  19. package/dist/commands/cleanup.d.ts.map +1 -1
  20. package/dist/commands/cleanup.js +17 -15
  21. package/dist/commands/cleanup.js.map +1 -1
  22. package/dist/commands/console.d.ts.map +1 -1
  23. package/dist/commands/console.js +0 -5
  24. package/dist/commands/console.js.map +1 -1
  25. package/dist/commands/details.d.ts.map +1 -1
  26. package/dist/commands/details.js +0 -5
  27. package/dist/commands/details.js.map +1 -1
  28. package/dist/commands/dom/a11y.d.ts +18 -0
  29. package/dist/commands/dom/a11y.d.ts.map +1 -0
  30. package/dist/commands/dom/a11y.js +134 -0
  31. package/dist/commands/dom/a11y.js.map +1 -0
  32. package/dist/commands/dom/evalHelpers.d.ts.map +1 -1
  33. package/dist/commands/dom/evalHelpers.js +1 -6
  34. package/dist/commands/dom/evalHelpers.js.map +1 -1
  35. package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
  36. package/dist/commands/dom/formFillHelpers.js +0 -9
  37. package/dist/commands/dom/formFillHelpers.js.map +1 -1
  38. package/dist/commands/dom/formInteraction.d.ts.map +1 -1
  39. package/dist/commands/dom/formInteraction.js +0 -5
  40. package/dist/commands/dom/formInteraction.js.map +1 -1
  41. package/dist/commands/dom/formSubmitHelpers.d.ts.map +1 -1
  42. package/dist/commands/dom/formSubmitHelpers.js +0 -13
  43. package/dist/commands/dom/formSubmitHelpers.js.map +1 -1
  44. package/dist/commands/dom/helpers.d.ts.map +1 -1
  45. package/dist/commands/dom/helpers.js +0 -22
  46. package/dist/commands/dom/helpers.js.map +1 -1
  47. package/dist/commands/dom/index.d.ts.map +1 -1
  48. package/dist/commands/dom/index.js +41 -26
  49. package/dist/commands/dom/index.js.map +1 -1
  50. package/dist/commands/dom/reactEventHelpers.d.ts +3 -3
  51. package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
  52. package/dist/commands/dom/reactEventHelpers.js +0 -28
  53. package/dist/commands/dom/reactEventHelpers.js.map +1 -1
  54. package/dist/commands/network.d.ts.map +1 -1
  55. package/dist/commands/network.js +159 -10
  56. package/dist/commands/network.js.map +1 -1
  57. package/dist/commands/peek.d.ts.map +1 -1
  58. package/dist/commands/peek.js +17 -12
  59. package/dist/commands/peek.js.map +1 -1
  60. package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
  61. package/dist/commands/shared/CommandRunner.js +0 -8
  62. package/dist/commands/shared/CommandRunner.js.map +1 -1
  63. package/dist/commands/shared/__tests__/validation.unit.test.d.ts +7 -0
  64. package/dist/commands/shared/__tests__/validation.unit.test.d.ts.map +1 -0
  65. package/dist/commands/shared/__tests__/validation.unit.test.js +141 -0
  66. package/dist/commands/shared/__tests__/validation.unit.test.js.map +1 -0
  67. package/dist/commands/shared/startHelpers.d.ts.map +1 -1
  68. package/dist/commands/shared/startHelpers.js +0 -10
  69. package/dist/commands/shared/startHelpers.js.map +1 -1
  70. package/dist/commands/shared/validation.d.ts +17 -0
  71. package/dist/commands/shared/validation.d.ts.map +1 -1
  72. package/dist/commands/shared/validation.js +105 -5
  73. package/dist/commands/shared/validation.js.map +1 -1
  74. package/dist/commands/start.d.ts.map +1 -1
  75. package/dist/commands/start.js +0 -6
  76. package/dist/commands/start.js.map +1 -1
  77. package/dist/commands/status.d.ts.map +1 -1
  78. package/dist/commands/status.js +0 -2
  79. package/dist/commands/status.js.map +1 -1
  80. package/dist/commands/stop.d.ts.map +1 -1
  81. package/dist/commands/stop.js +11 -13
  82. package/dist/commands/stop.js.map +1 -1
  83. package/dist/commands/tail.d.ts.map +1 -1
  84. package/dist/commands/tail.js +0 -7
  85. package/dist/commands/tail.js.map +1 -1
  86. package/dist/commands/types.d.ts +3 -0
  87. package/dist/commands/types.d.ts.map +1 -1
  88. package/dist/commands.d.ts.map +1 -1
  89. package/dist/commands.js +0 -5
  90. package/dist/commands.js.map +1 -1
  91. package/dist/connection/cdp.d.ts.map +1 -1
  92. package/dist/connection/cdp.js +0 -3
  93. package/dist/connection/cdp.js.map +1 -1
  94. package/dist/connection/diagnostics.d.ts.map +1 -1
  95. package/dist/connection/diagnostics.js +7 -4
  96. package/dist/connection/diagnostics.js.map +1 -1
  97. package/dist/connection/pageReadiness.d.ts.map +1 -1
  98. package/dist/connection/pageReadiness.js +0 -1
  99. package/dist/connection/pageReadiness.js.map +1 -1
  100. package/dist/constants.d.ts +6 -0
  101. package/dist/constants.d.ts.map +1 -1
  102. package/dist/constants.js +6 -0
  103. package/dist/constants.js.map +1 -1
  104. package/dist/daemon/__tests__/commandRegistry.contract.test.js +259 -0
  105. package/dist/daemon/__tests__/commandRegistry.contract.test.js.map +1 -1
  106. package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.d.ts +19 -0
  107. package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.d.ts.map +1 -0
  108. package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.js +212 -0
  109. package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.js.map +1 -0
  110. package/dist/daemon/handlers/BaseHandler.d.ts +75 -0
  111. package/dist/daemon/handlers/BaseHandler.d.ts.map +1 -0
  112. package/dist/daemon/handlers/BaseHandler.js +103 -0
  113. package/dist/daemon/handlers/BaseHandler.js.map +1 -0
  114. package/dist/daemon/handlers/CommandHandlers.d.ts +3 -4
  115. package/dist/daemon/handlers/CommandHandlers.d.ts.map +1 -1
  116. package/dist/daemon/handlers/CommandHandlers.js +14 -52
  117. package/dist/daemon/handlers/CommandHandlers.js.map +1 -1
  118. package/dist/daemon/handlers/QueryHandlers.d.ts +8 -6
  119. package/dist/daemon/handlers/QueryHandlers.d.ts.map +1 -1
  120. package/dist/daemon/handlers/QueryHandlers.js +42 -94
  121. package/dist/daemon/handlers/QueryHandlers.js.map +1 -1
  122. package/dist/daemon/handlers/SessionHandlers.d.ts.map +1 -1
  123. package/dist/daemon/handlers/SessionHandlers.js +0 -15
  124. package/dist/daemon/handlers/SessionHandlers.js.map +1 -1
  125. package/dist/daemon/handlers/requestHandlers.d.ts +5 -1
  126. package/dist/daemon/handlers/requestHandlers.d.ts.map +1 -1
  127. package/dist/daemon/handlers/requestHandlers.js +7 -2
  128. package/dist/daemon/handlers/requestHandlers.js.map +1 -1
  129. package/dist/daemon/handlers/responseHandler.d.ts.map +1 -1
  130. package/dist/daemon/handlers/responseHandler.js +19 -8
  131. package/dist/daemon/handlers/responseHandler.js.map +1 -1
  132. package/dist/daemon/ipcServer.d.ts.map +1 -1
  133. package/dist/daemon/ipcServer.js +4 -11
  134. package/dist/daemon/ipcServer.js.map +1 -1
  135. package/dist/daemon/launcher.d.ts.map +1 -1
  136. package/dist/daemon/launcher.js +2 -19
  137. package/dist/daemon/launcher.js.map +1 -1
  138. package/dist/daemon/lifecycle/cdpSetup.d.ts.map +1 -1
  139. package/dist/daemon/lifecycle/cdpSetup.js +0 -4
  140. package/dist/daemon/lifecycle/cdpSetup.js.map +1 -1
  141. package/dist/daemon/lifecycle/chromeConnection.js +0 -1
  142. package/dist/daemon/lifecycle/chromeConnection.js.map +1 -1
  143. package/dist/daemon/lifecycle/signalHandlers.d.ts.map +1 -1
  144. package/dist/daemon/lifecycle/signalHandlers.js +0 -3
  145. package/dist/daemon/lifecycle/signalHandlers.js.map +1 -1
  146. package/dist/daemon/lifecycle/workerCleanup.d.ts.map +1 -1
  147. package/dist/daemon/lifecycle/workerCleanup.js +1 -8
  148. package/dist/daemon/lifecycle/workerCleanup.js.map +1 -1
  149. package/dist/daemon/lifecycle/workerIpc.d.ts.map +1 -1
  150. package/dist/daemon/lifecycle/workerIpc.js +0 -1
  151. package/dist/daemon/lifecycle/workerIpc.js.map +1 -1
  152. package/dist/daemon/server/JsonlParser.d.ts.map +1 -1
  153. package/dist/daemon/server/JsonlParser.js +0 -2
  154. package/dist/daemon/server/JsonlParser.js.map +1 -1
  155. package/dist/daemon/services/SessionService.js +1 -1
  156. package/dist/daemon/services/SessionService.js.map +1 -1
  157. package/dist/daemon/startSession.d.ts.map +1 -1
  158. package/dist/daemon/startSession.js +0 -15
  159. package/dist/daemon/startSession.js.map +1 -1
  160. package/dist/daemon/worker/commandRegistry.d.ts.map +1 -1
  161. package/dist/daemon/worker/commandRegistry.js +34 -1
  162. package/dist/daemon/worker/commandRegistry.js.map +1 -1
  163. package/dist/daemon/worker/plugins.d.ts.map +1 -1
  164. package/dist/daemon/worker/plugins.js +0 -3
  165. package/dist/daemon/worker/plugins.js.map +1 -1
  166. package/dist/daemon/worker.js +0 -9
  167. package/dist/daemon/worker.js.map +1 -1
  168. package/dist/daemon.js +0 -2
  169. package/dist/daemon.js.map +1 -1
  170. package/dist/index.js +0 -14
  171. package/dist/index.js.map +1 -1
  172. package/dist/ipc/__tests__/client.contract.test.js +251 -19
  173. package/dist/ipc/__tests__/client.contract.test.js.map +1 -1
  174. package/dist/ipc/__tests__/jsonl.unit.test.js +19 -1
  175. package/dist/ipc/__tests__/jsonl.unit.test.js.map +1 -1
  176. package/dist/ipc/client.d.ts +47 -1
  177. package/dist/ipc/client.d.ts.map +1 -1
  178. package/dist/ipc/client.js +51 -0
  179. package/dist/ipc/client.js.map +1 -1
  180. package/dist/ipc/index.d.ts.map +1 -1
  181. package/dist/ipc/index.js +0 -6
  182. package/dist/ipc/index.js.map +1 -1
  183. package/dist/ipc/protocol/commands.d.ts +44 -0
  184. package/dist/ipc/protocol/commands.d.ts.map +1 -1
  185. package/dist/ipc/protocol/commands.js +8 -0
  186. package/dist/ipc/protocol/commands.js.map +1 -1
  187. package/dist/ipc/session/queries.d.ts +26 -2
  188. package/dist/ipc/session/queries.d.ts.map +1 -1
  189. package/dist/ipc/transport/index.d.ts.map +1 -1
  190. package/dist/ipc/transport/index.js +0 -1
  191. package/dist/ipc/transport/index.js.map +1 -1
  192. package/dist/ipc/transport/jsonl.d.ts +16 -0
  193. package/dist/ipc/transport/jsonl.d.ts.map +1 -1
  194. package/dist/ipc/transport/jsonl.js +24 -0
  195. package/dist/ipc/transport/jsonl.js.map +1 -1
  196. package/dist/session/chrome.js +2 -2
  197. package/dist/session/chrome.js.map +1 -1
  198. package/dist/session/cleanup.d.ts +21 -0
  199. package/dist/session/cleanup.d.ts.map +1 -1
  200. package/dist/session/cleanup.js +92 -12
  201. package/dist/session/cleanup.js.map +1 -1
  202. package/dist/session/lock.js +1 -1
  203. package/dist/session/lock.js.map +1 -1
  204. package/dist/telemetry/__tests__/a11y.unit.test.d.ts +10 -0
  205. package/dist/telemetry/__tests__/a11y.unit.test.d.ts.map +1 -0
  206. package/dist/telemetry/__tests__/a11y.unit.test.js +265 -0
  207. package/dist/telemetry/__tests__/a11y.unit.test.js.map +1 -0
  208. package/dist/telemetry/__tests__/filters.unit.test.js +119 -1
  209. package/dist/telemetry/__tests__/filters.unit.test.js.map +1 -1
  210. package/dist/telemetry/__tests__/network.contract.test.js +114 -0
  211. package/dist/telemetry/__tests__/network.contract.test.js.map +1 -1
  212. package/dist/telemetry/a11y.d.ts +78 -0
  213. package/dist/telemetry/a11y.d.ts.map +1 -0
  214. package/dist/telemetry/a11y.js +280 -0
  215. package/dist/telemetry/a11y.js.map +1 -0
  216. package/dist/telemetry/dom.d.ts +1 -1
  217. package/dist/telemetry/dom.d.ts.map +1 -1
  218. package/dist/telemetry/dom.js +36 -5
  219. package/dist/telemetry/dom.js.map +1 -1
  220. package/dist/telemetry/filters.d.ts +17 -0
  221. package/dist/telemetry/filters.d.ts.map +1 -1
  222. package/dist/telemetry/filters.js +25 -0
  223. package/dist/telemetry/filters.js.map +1 -1
  224. package/dist/telemetry/har/__tests__/builder.unit.test.d.ts +8 -0
  225. package/dist/telemetry/har/__tests__/builder.unit.test.d.ts.map +1 -0
  226. package/dist/telemetry/har/__tests__/builder.unit.test.js +694 -0
  227. package/dist/telemetry/har/__tests__/builder.unit.test.js.map +1 -0
  228. package/dist/telemetry/har/builder.d.ts +43 -0
  229. package/dist/telemetry/har/builder.d.ts.map +1 -0
  230. package/dist/telemetry/har/builder.js +440 -0
  231. package/dist/telemetry/har/builder.js.map +1 -0
  232. package/dist/telemetry/har/types.d.ts +290 -0
  233. package/dist/telemetry/har/types.d.ts.map +1 -0
  234. package/dist/telemetry/har/types.js +7 -0
  235. package/dist/telemetry/har/types.js.map +1 -0
  236. package/dist/telemetry/network.d.ts.map +1 -1
  237. package/dist/telemetry/network.js +37 -4
  238. package/dist/telemetry/network.js.map +1 -1
  239. package/dist/types.d.ts +108 -0
  240. package/dist/types.d.ts.map +1 -1
  241. package/dist/ui/OutputBuilder.d.ts.map +1 -1
  242. package/dist/ui/OutputBuilder.js +0 -8
  243. package/dist/ui/OutputBuilder.js.map +1 -1
  244. package/dist/ui/errors/CommandError.d.ts.map +1 -1
  245. package/dist/ui/errors/CommandError.js +0 -1
  246. package/dist/ui/errors/CommandError.js.map +1 -1
  247. package/dist/ui/errors/index.d.ts.map +1 -1
  248. package/dist/ui/errors/index.js +0 -2
  249. package/dist/ui/errors/index.js.map +1 -1
  250. package/dist/ui/formatters/__tests__/semantic.unit.test.d.ts +2 -0
  251. package/dist/ui/formatters/__tests__/semantic.unit.test.d.ts.map +1 -0
  252. package/dist/ui/formatters/__tests__/semantic.unit.test.js +111 -0
  253. package/dist/ui/formatters/__tests__/semantic.unit.test.js.map +1 -0
  254. package/dist/ui/formatters/a11y.d.ts +30 -0
  255. package/dist/ui/formatters/a11y.d.ts.map +1 -0
  256. package/dist/ui/formatters/a11y.js +178 -0
  257. package/dist/ui/formatters/a11y.js.map +1 -0
  258. package/dist/ui/formatters/details.d.ts.map +1 -1
  259. package/dist/ui/formatters/details.js +1 -0
  260. package/dist/ui/formatters/details.js.map +1 -1
  261. package/dist/ui/formatters/dom.d.ts.map +1 -1
  262. package/dist/ui/formatters/dom.js +0 -3
  263. package/dist/ui/formatters/dom.js.map +1 -1
  264. package/dist/ui/formatters/index.d.ts +1 -0
  265. package/dist/ui/formatters/index.d.ts.map +1 -1
  266. package/dist/ui/formatters/index.js +1 -0
  267. package/dist/ui/formatters/index.js.map +1 -1
  268. package/dist/ui/formatters/networkHeaders.d.ts +14 -0
  269. package/dist/ui/formatters/networkHeaders.d.ts.map +1 -0
  270. package/dist/ui/formatters/networkHeaders.js +47 -0
  271. package/dist/ui/formatters/networkHeaders.js.map +1 -0
  272. package/dist/ui/formatters/preview.d.ts +2 -0
  273. package/dist/ui/formatters/preview.d.ts.map +1 -1
  274. package/dist/ui/formatters/preview.js +67 -23
  275. package/dist/ui/formatters/preview.js.map +1 -1
  276. package/dist/ui/formatters/semantic.d.ts +36 -0
  277. package/dist/ui/formatters/semantic.d.ts.map +1 -0
  278. package/dist/ui/formatters/semantic.js +98 -0
  279. package/dist/ui/formatters/semantic.js.map +1 -0
  280. package/dist/ui/formatters/status.d.ts.map +1 -1
  281. package/dist/ui/formatters/status.js +1 -12
  282. package/dist/ui/formatters/status.js.map +1 -1
  283. package/dist/ui/formatting.d.ts.map +1 -1
  284. package/dist/ui/formatting.js +0 -6
  285. package/dist/ui/formatting.js.map +1 -1
  286. package/dist/ui/logging/logger.d.ts +1 -1
  287. package/dist/ui/logging/logger.d.ts.map +1 -1
  288. package/dist/ui/logging/logger.js.map +1 -1
  289. package/dist/ui/messages/chrome.d.ts.map +1 -1
  290. package/dist/ui/messages/chrome.js +0 -6
  291. package/dist/ui/messages/chrome.js.map +1 -1
  292. package/dist/ui/messages/commands.d.ts +7 -0
  293. package/dist/ui/messages/commands.d.ts.map +1 -1
  294. package/dist/ui/messages/commands.js +9 -12
  295. package/dist/ui/messages/commands.js.map +1 -1
  296. package/dist/ui/messages/debug.d.ts.map +1 -1
  297. package/dist/ui/messages/debug.js +0 -6
  298. package/dist/ui/messages/debug.js.map +1 -1
  299. package/dist/ui/messages/internal.d.ts.map +1 -1
  300. package/dist/ui/messages/internal.js +0 -3
  301. package/dist/ui/messages/internal.js.map +1 -1
  302. package/dist/ui/messages/preview.d.ts.map +1 -1
  303. package/dist/ui/messages/preview.js +0 -12
  304. package/dist/ui/messages/preview.js.map +1 -1
  305. package/dist/ui/messages/session.d.ts.map +1 -1
  306. package/dist/ui/messages/session.js +0 -3
  307. package/dist/ui/messages/session.js.map +1 -1
  308. package/dist/utils/__tests__/errors.unit.test.d.ts +12 -0
  309. package/dist/utils/__tests__/errors.unit.test.d.ts.map +1 -0
  310. package/dist/utils/__tests__/errors.unit.test.js +255 -0
  311. package/dist/utils/__tests__/errors.unit.test.js.map +1 -0
  312. package/dist/utils/__tests__/http.unit.test.d.ts +12 -0
  313. package/dist/utils/__tests__/http.unit.test.d.ts.map +1 -0
  314. package/dist/utils/__tests__/http.unit.test.js +218 -0
  315. package/dist/utils/__tests__/http.unit.test.js.map +1 -0
  316. package/dist/utils/__tests__/process.unit.test.d.ts +14 -0
  317. package/dist/utils/__tests__/process.unit.test.d.ts.map +1 -0
  318. package/dist/utils/__tests__/process.unit.test.js +124 -0
  319. package/dist/utils/__tests__/process.unit.test.js.map +1 -0
  320. package/dist/utils/__tests__/session.contract.test.js +1 -1
  321. package/dist/utils/__tests__/session.contract.test.js.map +1 -1
  322. package/dist/utils/atomicFile.d.ts.map +1 -1
  323. package/dist/utils/atomicFile.js +9 -6
  324. package/dist/utils/atomicFile.js.map +1 -1
  325. package/dist/utils/exitCodes.d.ts.map +1 -1
  326. package/dist/utils/exitCodes.js +0 -2
  327. package/dist/utils/exitCodes.js.map +1 -1
  328. package/dist/utils/validation.d.ts.map +1 -1
  329. package/dist/utils/validation.js +0 -3
  330. package/dist/utils/validation.js.map +1 -1
  331. package/dist/utils/version.d.ts.map +1 -1
  332. package/dist/utils/version.js +0 -1
  333. package/dist/utils/version.js.map +1 -1
  334. package/package.json +22 -1
@@ -0,0 +1,265 @@
1
+ /**
2
+ * Unit tests for accessibility tree pure functions.
3
+ *
4
+ * Tests the contract of pure functions:
5
+ * - buildTreeFromRawNodes: Tree construction from CDP nodes
6
+ * - parseQueryPattern: Pattern string parsing
7
+ * - queryA11yTree: Tree querying logic
8
+ */
9
+ import { strict as assert } from 'node:assert';
10
+ import { describe, test } from 'node:test';
11
+ import { buildTreeFromRawNodes, parseQueryPattern, queryA11yTree } from '../../telemetry/a11y.js';
12
+ describe('buildTreeFromRawNodes', () => {
13
+ test('builds tree from valid CDP nodes', () => {
14
+ const rawNodes = [
15
+ {
16
+ nodeId: '1',
17
+ ignored: false,
18
+ role: { type: 'role', value: 'RootWebArea' },
19
+ name: { type: 'computedString', value: 'Test Page' },
20
+ childIds: ['2', '3'],
21
+ },
22
+ {
23
+ nodeId: '2',
24
+ ignored: false,
25
+ role: { type: 'role', value: 'button' },
26
+ name: { type: 'computedString', value: 'Submit' },
27
+ properties: [{ name: 'focusable', value: { type: 'boolean', value: true } }],
28
+ },
29
+ {
30
+ nodeId: '3',
31
+ ignored: false,
32
+ role: { type: 'role', value: 'textbox' },
33
+ name: { type: 'computedString', value: 'Email' },
34
+ properties: [{ name: 'required', value: { type: 'boolean', value: true } }],
35
+ },
36
+ ];
37
+ const tree = buildTreeFromRawNodes(rawNodes);
38
+ assert.equal(tree.count, 3, 'Should count all non-ignored nodes');
39
+ assert.equal(tree.root.role, 'RootWebArea', 'First node should be root');
40
+ assert.equal(tree.root.name, 'Test Page');
41
+ assert.ok(tree.nodes.has('1'), 'Should index node by nodeId');
42
+ assert.ok(tree.nodes.has('2'), 'Should index all nodes');
43
+ assert.ok(tree.nodes.has('3'), 'Should index all nodes');
44
+ });
45
+ test('filters out ignored nodes', () => {
46
+ const rawNodes = [
47
+ {
48
+ nodeId: '1',
49
+ ignored: false,
50
+ role: { type: 'role', value: 'button' },
51
+ name: { type: 'computedString', value: 'Click Me' },
52
+ },
53
+ {
54
+ nodeId: '2',
55
+ ignored: true,
56
+ ignoredReasons: [{ name: 'uninteresting', value: { type: 'boolean', value: true } }],
57
+ role: { type: 'role', value: 'none' },
58
+ },
59
+ {
60
+ nodeId: '3',
61
+ ignored: false,
62
+ role: { type: 'role', value: 'textbox' },
63
+ name: { type: 'computedString', value: 'Input' },
64
+ },
65
+ ];
66
+ const tree = buildTreeFromRawNodes(rawNodes);
67
+ assert.equal(tree.count, 2, 'Should exclude ignored nodes');
68
+ assert.ok(tree.nodes.has('1'), 'Should include non-ignored nodes');
69
+ assert.ok(!tree.nodes.has('2'), 'Should exclude ignored node');
70
+ assert.ok(tree.nodes.has('3'), 'Should include non-ignored nodes');
71
+ });
72
+ test('extracts common properties (focusable, focused, disabled, required)', () => {
73
+ const rawNodes = [
74
+ {
75
+ nodeId: '1',
76
+ ignored: false,
77
+ role: { type: 'role', value: 'textbox' },
78
+ name: { type: 'computedString', value: 'Email' },
79
+ properties: [
80
+ { name: 'focusable', value: { type: 'boolean', value: true } },
81
+ { name: 'focused', value: { type: 'boolean', value: true } },
82
+ { name: 'required', value: { type: 'boolean', value: true } },
83
+ ],
84
+ },
85
+ ];
86
+ const tree = buildTreeFromRawNodes(rawNodes);
87
+ const node = tree.nodes.get('1');
88
+ assert.ok(node);
89
+ assert.equal(node.focusable, true);
90
+ assert.equal(node.focused, true);
91
+ assert.equal(node.required, true);
92
+ });
93
+ test('stores non-standard properties in properties map', () => {
94
+ const rawNodes = [
95
+ {
96
+ nodeId: '1',
97
+ ignored: false,
98
+ role: { type: 'role', value: 'textbox' },
99
+ properties: [
100
+ { name: 'invalid', value: { type: 'string', value: 'false' } },
101
+ { name: 'editable', value: { type: 'string', value: 'plaintext' } },
102
+ ],
103
+ },
104
+ ];
105
+ const tree = buildTreeFromRawNodes(rawNodes);
106
+ const node = tree.nodes.get('1');
107
+ assert.ok(node);
108
+ assert.ok(node.properties);
109
+ assert.equal(node.properties['invalid'], 'false');
110
+ assert.equal(node.properties['editable'], 'plaintext');
111
+ });
112
+ test('throws error when no non-ignored nodes found', () => {
113
+ const rawNodes = [
114
+ {
115
+ nodeId: '1',
116
+ ignored: true,
117
+ ignoredReasons: [{ name: 'uninteresting', value: { type: 'boolean', value: true } }],
118
+ role: { type: 'role', value: 'none' },
119
+ },
120
+ ];
121
+ assert.throws(() => buildTreeFromRawNodes(rawNodes), /No root node found/, 'Should throw when all nodes are ignored');
122
+ });
123
+ test('handles empty node array', () => {
124
+ const rawNodes = [];
125
+ assert.throws(() => buildTreeFromRawNodes(rawNodes), /No root node found/, 'Should throw for empty array');
126
+ });
127
+ });
128
+ describe('parseQueryPattern', () => {
129
+ test('parses single field pattern', () => {
130
+ const pattern = parseQueryPattern('role:button');
131
+ assert.equal(pattern.role, 'button');
132
+ assert.equal(pattern.name, undefined);
133
+ assert.equal(pattern.description, undefined);
134
+ });
135
+ test('parses multiple field pattern with AND logic', () => {
136
+ const pattern = parseQueryPattern('role:button name:Submit');
137
+ assert.equal(pattern.role, 'button');
138
+ assert.equal(pattern.name, 'Submit');
139
+ });
140
+ test('parses all three fields', () => {
141
+ const pattern = parseQueryPattern('role:button name:Submit description:Primary');
142
+ assert.equal(pattern.role, 'button');
143
+ assert.equal(pattern.name, 'Submit');
144
+ assert.equal(pattern.description, 'Primary');
145
+ });
146
+ test('handles values with spaces (takes first word)', () => {
147
+ const pattern = parseQueryPattern('role:button name:Submit Form');
148
+ assert.equal(pattern.role, 'button');
149
+ assert.equal(pattern.name, 'Submit');
150
+ });
151
+ test('handles description shorthand (desc)', () => {
152
+ const pattern = parseQueryPattern('desc:Main');
153
+ assert.equal(pattern.description, 'Main');
154
+ });
155
+ test('handles values with colons', () => {
156
+ const pattern = parseQueryPattern('name:Click:Me');
157
+ assert.equal(pattern.name, 'Click:Me');
158
+ });
159
+ test('ignores invalid fields', () => {
160
+ const pattern = parseQueryPattern('invalid:value role:button');
161
+ assert.equal(pattern.role, 'button');
162
+ assert.equal(Object.keys(pattern).length, 1, 'Should only include valid fields');
163
+ });
164
+ test('returns empty object for invalid pattern', () => {
165
+ const pattern = parseQueryPattern('invalid:value');
166
+ assert.deepEqual(pattern, {});
167
+ });
168
+ test('is case-insensitive for field names', () => {
169
+ const pattern = parseQueryPattern('ROLE:button Name:Submit DESC:Primary');
170
+ assert.equal(pattern.role, 'button');
171
+ assert.equal(pattern.name, 'Submit');
172
+ assert.equal(pattern.description, 'Primary');
173
+ });
174
+ });
175
+ describe('queryA11yTree', () => {
176
+ const tree = {
177
+ root: {
178
+ nodeId: '1',
179
+ role: 'RootWebArea',
180
+ name: 'Test Page',
181
+ },
182
+ nodes: new Map([
183
+ ['1', { nodeId: '1', role: 'RootWebArea', name: 'Test Page' }],
184
+ ['2', { nodeId: '2', role: 'button', name: 'Submit Form', focusable: true }],
185
+ ['3', { nodeId: '3', role: 'button', name: 'Cancel', focusable: true }],
186
+ ['4', { nodeId: '4', role: 'textbox', name: 'Email Address', required: true }],
187
+ ['5', { nodeId: '5', role: 'textbox', name: 'Password', required: true }],
188
+ ]),
189
+ count: 5,
190
+ };
191
+ test('queries by role only', () => {
192
+ const result = queryA11yTree(tree, { role: 'button' });
193
+ assert.equal(result.count, 2, 'Should find both buttons');
194
+ assert.equal(result.nodes.length, 2);
195
+ assert.ok(result.nodes.every((n) => n.role === 'button'), 'All results should be buttons');
196
+ });
197
+ test('queries by name only', () => {
198
+ const result = queryA11yTree(tree, { name: 'Email' });
199
+ assert.equal(result.count, 1);
200
+ assert.ok(result.nodes[0]);
201
+ assert.equal(result.nodes[0].name, 'Email Address');
202
+ });
203
+ test('queries with AND logic (role + name)', () => {
204
+ const result = queryA11yTree(tree, { role: 'button', name: 'Submit' });
205
+ assert.equal(result.count, 1);
206
+ assert.ok(result.nodes[0]);
207
+ assert.equal(result.nodes[0].name, 'Submit Form');
208
+ assert.equal(result.nodes[0].role, 'button');
209
+ });
210
+ test('name matching is case-insensitive', () => {
211
+ const result = queryA11yTree(tree, { name: 'submit' });
212
+ assert.equal(result.count, 1);
213
+ assert.ok(result.nodes[0]);
214
+ assert.equal(result.nodes[0].name, 'Submit Form');
215
+ });
216
+ test('name matching is substring match', () => {
217
+ const result = queryA11yTree(tree, { name: 'Form' });
218
+ assert.equal(result.count, 1);
219
+ assert.ok(result.nodes[0]);
220
+ assert.equal(result.nodes[0].name, 'Submit Form');
221
+ });
222
+ test('role matching is case-insensitive', () => {
223
+ const result = queryA11yTree(tree, { role: 'BUTTON' });
224
+ assert.equal(result.count, 2);
225
+ });
226
+ test('returns empty result when no matches', () => {
227
+ const result = queryA11yTree(tree, { role: 'heading' });
228
+ assert.equal(result.count, 0);
229
+ assert.equal(result.nodes.length, 0);
230
+ });
231
+ test('returns query pattern in result', () => {
232
+ const pattern = { role: 'button', name: 'Submit' };
233
+ const result = queryA11yTree(tree, pattern);
234
+ assert.deepEqual(result.pattern, pattern);
235
+ });
236
+ test('queries by description', () => {
237
+ const treeWithDesc = {
238
+ root: { nodeId: '1', role: 'button', name: 'Click' },
239
+ nodes: new Map([
240
+ ['1', { nodeId: '1', role: 'button', name: 'Click', description: 'Primary action' }],
241
+ ['2', { nodeId: '2', role: 'button', name: 'Cancel', description: 'Secondary action' }],
242
+ ]),
243
+ count: 2,
244
+ };
245
+ const result = queryA11yTree(treeWithDesc, { description: 'Primary' });
246
+ assert.equal(result.count, 1);
247
+ assert.ok(result.nodes[0]);
248
+ assert.equal(result.nodes[0].description, 'Primary action');
249
+ });
250
+ test('handles nodes without name field', () => {
251
+ const treeWithoutNames = {
252
+ root: { nodeId: '1', role: 'generic' },
253
+ nodes: new Map([
254
+ ['1', { nodeId: '1', role: 'generic' }],
255
+ ['2', { nodeId: '2', role: 'button', name: 'Submit' }],
256
+ ]),
257
+ count: 2,
258
+ };
259
+ const result = queryA11yTree(treeWithoutNames, { name: 'Submit' });
260
+ assert.equal(result.count, 1);
261
+ assert.ok(result.nodes[0]);
262
+ assert.equal(result.nodes[0].name, 'Submit');
263
+ });
264
+ });
265
+ //# sourceMappingURL=a11y.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a11y.unit.test.js","sourceRoot":"","sources":["../../../src/telemetry/__tests__/a11y.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as assert from 'node:assert/strict';
2
2
  import { describe, it } from 'node:test';
3
- import { matchesWildcard, shouldFetchBody, shouldExcludeUrl, shouldExcludeDomain, shouldExcludeConsoleMessage, DEFAULT_SKIP_BODY_PATTERNS, DEFAULT_EXCLUDED_DOMAINS, DEFAULT_EXCLUDED_CONSOLE_PATTERNS, } from '../../telemetry/filters.js';
3
+ import { matchesWildcard, shouldFetchBody, shouldExcludeUrl, shouldExcludeDomain, shouldExcludeConsoleMessage, filterByResourceType, DEFAULT_SKIP_BODY_PATTERNS, DEFAULT_EXCLUDED_DOMAINS, DEFAULT_EXCLUDED_CONSOLE_PATTERNS, } from '../../telemetry/filters.js';
4
4
  void describe('filters - matchesWildcard', () => {
5
5
  void it('should match exact strings', () => {
6
6
  assert.equal(matchesWildcard('api.example.com', 'api.example.com'), true);
@@ -236,4 +236,122 @@ void describe('filters - constants', () => {
236
236
  assert.ok(DEFAULT_EXCLUDED_CONSOLE_PATTERNS.includes('[WDS]'));
237
237
  });
238
238
  });
239
+ void describe('filters - filterByResourceType', () => {
240
+ const createMockRequest = (url, resourceType) => {
241
+ const base = {
242
+ requestId: `req-${url}`,
243
+ url,
244
+ method: 'GET',
245
+ timestamp: Date.now(),
246
+ };
247
+ if (resourceType !== undefined) {
248
+ base.resourceType = resourceType;
249
+ }
250
+ return base;
251
+ };
252
+ void it('should return all requests when types array is empty', () => {
253
+ const requests = [
254
+ createMockRequest('https://example.com/', 'Document'),
255
+ createMockRequest('https://example.com/api/data', 'XHR'),
256
+ createMockRequest('https://example.com/app.js', 'Script'),
257
+ ];
258
+ const result = filterByResourceType(requests, []);
259
+ assert.equal(result.length, 3);
260
+ assert.deepEqual(result, requests);
261
+ });
262
+ void it('should filter by single resource type', () => {
263
+ const requests = [
264
+ createMockRequest('https://example.com/', 'Document'),
265
+ createMockRequest('https://example.com/api/data', 'XHR'),
266
+ createMockRequest('https://example.com/style.css', 'Stylesheet'),
267
+ createMockRequest('https://example.com/app.js', 'Script'),
268
+ ];
269
+ const result = filterByResourceType(requests, ['Document']);
270
+ assert.equal(result.length, 1);
271
+ assert.ok(result[0]);
272
+ assert.equal(result[0].resourceType, 'Document');
273
+ assert.equal(result[0].url, 'https://example.com/');
274
+ });
275
+ void it('should filter by multiple resource types', () => {
276
+ const requests = [
277
+ createMockRequest('https://example.com/', 'Document'),
278
+ createMockRequest('https://example.com/api/users', 'XHR'),
279
+ createMockRequest('https://example.com/api/posts', 'Fetch'),
280
+ createMockRequest('https://example.com/app.js', 'Script'),
281
+ createMockRequest('https://example.com/logo.png', 'Image'),
282
+ ];
283
+ const result = filterByResourceType(requests, ['XHR', 'Fetch']);
284
+ assert.equal(result.length, 2);
285
+ assert.ok(result[0] && result[1]);
286
+ assert.equal(result[0].resourceType, 'XHR');
287
+ assert.equal(result[1].resourceType, 'Fetch');
288
+ });
289
+ void it('should exclude requests without resourceType', () => {
290
+ const requests = [
291
+ createMockRequest('https://example.com/', 'Document'),
292
+ createMockRequest('https://example.com/api/data', undefined),
293
+ createMockRequest('https://example.com/app.js', 'Script'),
294
+ ];
295
+ const result = filterByResourceType(requests, ['Document', 'Script']);
296
+ assert.equal(result.length, 2);
297
+ assert.ok(result.every((req) => req.resourceType !== undefined));
298
+ });
299
+ void it('should handle all 19 CDP ResourceType values', () => {
300
+ const types = [
301
+ 'Document',
302
+ 'Stylesheet',
303
+ 'Image',
304
+ 'Media',
305
+ 'Font',
306
+ 'Script',
307
+ 'TextTrack',
308
+ 'XHR',
309
+ 'Fetch',
310
+ 'Prefetch',
311
+ 'EventSource',
312
+ 'WebSocket',
313
+ 'Manifest',
314
+ 'SignedExchange',
315
+ 'Ping',
316
+ 'CSPViolationReport',
317
+ 'Preflight',
318
+ 'Other',
319
+ ];
320
+ const requests = types.map((type) => createMockRequest(`https://example.com/${type}`, type));
321
+ types.forEach((type) => {
322
+ const result = filterByResourceType(requests, [type]);
323
+ assert.equal(result.length, 1);
324
+ assert.ok(result[0]);
325
+ assert.equal(result[0].resourceType, type);
326
+ });
327
+ });
328
+ void it('should return empty array when no requests match', () => {
329
+ const requests = [
330
+ createMockRequest('https://example.com/app.js', 'Script'),
331
+ createMockRequest('https://example.com/style.css', 'Stylesheet'),
332
+ ];
333
+ const result = filterByResourceType(requests, ['Document']);
334
+ assert.equal(result.length, 0);
335
+ });
336
+ void it('should handle empty requests array', () => {
337
+ const result = filterByResourceType([], ['Document']);
338
+ assert.equal(result.length, 0);
339
+ });
340
+ void it('should preserve request properties', () => {
341
+ const fullRequest = {
342
+ requestId: 'req-1',
343
+ url: 'https://example.com/',
344
+ method: 'POST',
345
+ timestamp: 1234567890,
346
+ resourceType: 'Document',
347
+ status: 200,
348
+ mimeType: 'text/html',
349
+ requestHeaders: { 'User-Agent': 'Test' },
350
+ responseHeaders: { 'Content-Type': 'text/html' },
351
+ };
352
+ const result = filterByResourceType([fullRequest], ['Document']);
353
+ assert.equal(result.length, 1);
354
+ assert.deepEqual(result[0], fullRequest);
355
+ });
356
+ });
239
357
  //# sourceMappingURL=filters.unit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filters.unit.test.js","sourceRoot":"","sources":["../../../src/telemetry/__tests__/filters.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.unit.test.js","sourceRoot":"","sources":["../../../src/telemetry/__tests__/filters.unit.test.ts"],"names":[],"mappings":"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"}
@@ -233,6 +233,120 @@ void describe('Network telemetry contract', () => {
233
233
  void cleanup();
234
234
  });
235
235
  });
236
+ void describe('Resource type capture', () => {
237
+ void it('should capture resourceType from requestWillBeSent when present', async () => {
238
+ const cleanup = await startNetworkCollection(mockCDP, requests, {
239
+ includeAll: true,
240
+ });
241
+ mockCDP.emit('Network.requestWillBeSent', createRequestEvent({
242
+ requestId: 'req-1',
243
+ request: createTestRequest({ url: 'https://example.com/', method: 'GET' }),
244
+ type: 'Document',
245
+ }));
246
+ mockCDP.emit('Network.loadingFinished', {
247
+ requestId: 'req-1',
248
+ timestamp: 1100,
249
+ encodedDataLength: 1234,
250
+ });
251
+ assert.equal(requests.length, 1);
252
+ assert.ok(requests[0]);
253
+ assert.equal(requests[0].resourceType, 'Document');
254
+ void cleanup();
255
+ });
256
+ void it('should update resourceType from responseReceived', async () => {
257
+ const cleanup = await startNetworkCollection(mockCDP, requests, {
258
+ includeAll: true,
259
+ });
260
+ mockCDP.emit('Network.requestWillBeSent', createRequestEvent({
261
+ requestId: 'req-1',
262
+ request: createTestRequest({ url: 'https://api.example.com/data', method: 'GET' }),
263
+ type: 'XHR',
264
+ }));
265
+ mockCDP.emit('Network.responseReceived', createResponseEvent({
266
+ requestId: 'req-1',
267
+ type: 'Fetch',
268
+ response: createTestResponse({ status: 200, mimeType: 'application/json' }),
269
+ }));
270
+ mockCDP.emit('Network.loadingFinished', {
271
+ requestId: 'req-1',
272
+ timestamp: 1100,
273
+ encodedDataLength: 1234,
274
+ });
275
+ assert.equal(requests.length, 1);
276
+ assert.ok(requests[0]);
277
+ assert.equal(requests[0].resourceType, 'Fetch');
278
+ void cleanup();
279
+ });
280
+ void it('should handle all 19 CDP ResourceType values', async () => {
281
+ const cleanup = await startNetworkCollection(mockCDP, requests, {
282
+ includeAll: true,
283
+ });
284
+ const resourceTypes = [
285
+ 'Document',
286
+ 'Stylesheet',
287
+ 'Image',
288
+ 'Media',
289
+ 'Font',
290
+ 'Script',
291
+ 'TextTrack',
292
+ 'XHR',
293
+ 'Fetch',
294
+ 'Prefetch',
295
+ 'EventSource',
296
+ 'WebSocket',
297
+ 'Manifest',
298
+ 'SignedExchange',
299
+ 'Ping',
300
+ 'CSPViolationReport',
301
+ 'Preflight',
302
+ 'Other',
303
+ ];
304
+ resourceTypes.forEach((type, index) => {
305
+ mockCDP.emit('Network.requestWillBeSent', createRequestEvent({
306
+ requestId: `req-${index}`,
307
+ request: createTestRequest({ url: `https://example.com/${index}` }),
308
+ type,
309
+ }));
310
+ mockCDP.emit('Network.loadingFinished', {
311
+ requestId: `req-${index}`,
312
+ timestamp: 1100 + index,
313
+ encodedDataLength: 1234,
314
+ });
315
+ });
316
+ assert.equal(requests.length, resourceTypes.length);
317
+ requests.forEach((req, index) => {
318
+ assert.ok(req);
319
+ assert.equal(req.resourceType, resourceTypes[index]);
320
+ });
321
+ void cleanup();
322
+ });
323
+ void it('should handle missing resourceType in requestWillBeSent', async () => {
324
+ const cleanup = await startNetworkCollection(mockCDP, requests, {
325
+ includeAll: true,
326
+ });
327
+ // Emit request without type field (omitted, not undefined)
328
+ const requestEvent = createRequestEvent({
329
+ requestId: 'req-1',
330
+ request: createTestRequest({ url: 'https://example.com/' }),
331
+ });
332
+ // Don't set type field at all to test optional behavior
333
+ mockCDP.emit('Network.requestWillBeSent', requestEvent);
334
+ mockCDP.emit('Network.responseReceived', createResponseEvent({
335
+ requestId: 'req-1',
336
+ type: 'Document',
337
+ response: createTestResponse({ status: 200 }),
338
+ }));
339
+ mockCDP.emit('Network.loadingFinished', {
340
+ requestId: 'req-1',
341
+ timestamp: 1100,
342
+ encodedDataLength: 1234,
343
+ });
344
+ assert.equal(requests.length, 1);
345
+ assert.ok(requests[0]);
346
+ assert.equal(requests[0].resourceType, 'Document');
347
+ void cleanup();
348
+ });
349
+ });
236
350
  void describe('Edge case: Out-of-order events', () => {
237
351
  void it('should handle response arriving before request', async () => {
238
352
  const cleanup = await startNetworkCollection(mockCDP, requests);