testplane 9.0.0-rc.4 → 9.0.0

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 (299) hide show
  1. package/build/package.json +11 -11
  2. package/build/src/base-testplane.d.ts +6 -2
  3. package/build/src/base-testplane.js +18 -5
  4. package/build/src/base-testplane.js.map +1 -1
  5. package/build/src/browser/browser.d.ts +2 -0
  6. package/build/src/browser/browser.js +8 -4
  7. package/build/src/browser/browser.js.map +1 -1
  8. package/build/src/browser/calibrator.js +19 -17
  9. package/build/src/browser/calibrator.js.map +1 -1
  10. package/build/src/browser/camera/index.d.ts +6 -2
  11. package/build/src/browser/camera/index.js +18 -14
  12. package/build/src/browser/camera/index.js.map +1 -1
  13. package/build/src/browser/camera/utils.d.ts +11 -1
  14. package/build/src/browser/camera/utils.js +27 -1
  15. package/build/src/browser/camera/utils.js.map +1 -1
  16. package/build/src/browser/cdp/connection.d.ts +2 -39
  17. package/build/src/browser/cdp/connection.js +73 -353
  18. package/build/src/browser/cdp/connection.js.map +1 -1
  19. package/build/src/browser/cdp/constants.d.ts +0 -10
  20. package/build/src/browser/cdp/constants.js +1 -11
  21. package/build/src/browser/cdp/constants.js.map +1 -1
  22. package/build/src/browser/cdp/domains/css.d.ts +14 -6
  23. package/build/src/browser/cdp/domains/css.js +4 -0
  24. package/build/src/browser/cdp/domains/css.js.map +1 -1
  25. package/build/src/browser/cdp/domains/debugger.d.ts +1 -1
  26. package/build/src/browser/cdp/domains/fetch.d.ts +163 -0
  27. package/build/src/browser/cdp/domains/fetch.js +51 -0
  28. package/build/src/browser/cdp/domains/fetch.js.map +1 -0
  29. package/build/src/browser/cdp/domains/network.d.ts +290 -0
  30. package/build/src/browser/cdp/domains/network.js +75 -0
  31. package/build/src/browser/cdp/domains/network.js.map +1 -0
  32. package/build/src/browser/cdp/domains/page.d.ts +378 -0
  33. package/build/src/browser/cdp/domains/page.js +114 -0
  34. package/build/src/browser/cdp/domains/page.js.map +1 -0
  35. package/build/src/browser/cdp/emitter.d.ts +2 -1
  36. package/build/src/browser/cdp/emitter.js +2 -2
  37. package/build/src/browser/cdp/emitter.js.map +1 -1
  38. package/build/src/browser/cdp/error.d.ts +14 -20
  39. package/build/src/browser/cdp/error.js +29 -32
  40. package/build/src/browser/cdp/error.js.map +1 -1
  41. package/build/src/browser/cdp/index.d.ts +6 -0
  42. package/build/src/browser/cdp/index.js +21 -6
  43. package/build/src/browser/cdp/index.js.map +1 -1
  44. package/build/src/browser/cdp/selectivity/constants.d.ts +2 -0
  45. package/build/src/browser/cdp/selectivity/constants.js +3 -1
  46. package/build/src/browser/cdp/selectivity/constants.js.map +1 -1
  47. package/build/src/browser/cdp/selectivity/css-selectivity.d.ts +13 -3
  48. package/build/src/browser/cdp/selectivity/css-selectivity.js +211 -62
  49. package/build/src/browser/cdp/selectivity/css-selectivity.js.map +1 -1
  50. package/build/src/browser/cdp/selectivity/fs-cache.d.ts +12 -0
  51. package/build/src/browser/cdp/selectivity/fs-cache.js +122 -0
  52. package/build/src/browser/cdp/selectivity/fs-cache.js.map +1 -0
  53. package/build/src/browser/cdp/selectivity/hash-provider.d.ts +1 -0
  54. package/build/src/browser/cdp/selectivity/hash-provider.js +5 -3
  55. package/build/src/browser/cdp/selectivity/hash-provider.js.map +1 -1
  56. package/build/src/browser/cdp/selectivity/hash-reader.d.ts +2 -3
  57. package/build/src/browser/cdp/selectivity/hash-reader.js +39 -26
  58. package/build/src/browser/cdp/selectivity/hash-reader.js.map +1 -1
  59. package/build/src/browser/cdp/selectivity/hash-writer.d.ts +2 -2
  60. package/build/src/browser/cdp/selectivity/hash-writer.js +16 -62
  61. package/build/src/browser/cdp/selectivity/hash-writer.js.map +1 -1
  62. package/build/src/browser/cdp/selectivity/index.d.ts +6 -2
  63. package/build/src/browser/cdp/selectivity/index.js +147 -24
  64. package/build/src/browser/cdp/selectivity/index.js.map +1 -1
  65. package/build/src/browser/cdp/selectivity/js-selectivity.d.ts +11 -4
  66. package/build/src/browser/cdp/selectivity/js-selectivity.js +200 -87
  67. package/build/src/browser/cdp/selectivity/js-selectivity.js.map +1 -1
  68. package/build/src/browser/cdp/selectivity/json-utils.d.ts +5 -0
  69. package/build/src/browser/cdp/selectivity/json-utils.js +19 -9
  70. package/build/src/browser/cdp/selectivity/json-utils.js.map +1 -1
  71. package/build/src/browser/cdp/selectivity/merge-dumps/index.d.ts +2 -0
  72. package/build/src/browser/cdp/selectivity/merge-dumps/index.js +28 -0
  73. package/build/src/browser/cdp/selectivity/merge-dumps/index.js.map +1 -0
  74. package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.d.ts +2 -0
  75. package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.js +39 -0
  76. package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.js.map +1 -0
  77. package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.d.ts +2 -0
  78. package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.js +129 -0
  79. package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.js.map +1 -0
  80. package/build/src/browser/cdp/selectivity/modes.d.ts +4 -0
  81. package/build/src/browser/cdp/selectivity/modes.js +11 -0
  82. package/build/src/browser/cdp/selectivity/modes.js.map +1 -0
  83. package/build/src/browser/cdp/selectivity/runner.d.ts +5 -0
  84. package/build/src/browser/cdp/selectivity/runner.js +114 -22
  85. package/build/src/browser/cdp/selectivity/runner.js.map +1 -1
  86. package/build/src/browser/cdp/selectivity/test-dependencies-reader.js +1 -1
  87. package/build/src/browser/cdp/selectivity/test-dependencies-reader.js.map +1 -1
  88. package/build/src/browser/cdp/selectivity/test-dependencies-writer.js +1 -1
  89. package/build/src/browser/cdp/selectivity/test-dependencies-writer.js.map +1 -1
  90. package/build/src/browser/cdp/selectivity/testplane-selectivity.d.ts +3 -1
  91. package/build/src/browser/cdp/selectivity/testplane-selectivity.js +64 -13
  92. package/build/src/browser/cdp/selectivity/testplane-selectivity.js.map +1 -1
  93. package/build/src/browser/cdp/selectivity/types.d.ts +6 -0
  94. package/build/src/browser/cdp/selectivity/types.js.map +1 -1
  95. package/build/src/browser/cdp/selectivity/used-dumps-tracker.d.ts +7 -0
  96. package/build/src/browser/cdp/selectivity/used-dumps-tracker.js +25 -0
  97. package/build/src/browser/cdp/selectivity/used-dumps-tracker.js.map +1 -0
  98. package/build/src/browser/cdp/selectivity/utils.d.ts +18 -9
  99. package/build/src/browser/cdp/selectivity/utils.js +111 -34
  100. package/build/src/browser/cdp/selectivity/utils.js.map +1 -1
  101. package/build/src/browser/cdp/types.d.ts +214 -0
  102. package/build/src/browser/cdp/utils.d.ts +0 -6
  103. package/build/src/browser/cdp/utils.js +1 -6
  104. package/build/src/browser/cdp/utils.js.map +1 -1
  105. package/build/src/browser/client-scripts/calibrate.js +2 -2
  106. package/build/src/browser/client-scripts/rrweb-record.min.js +2 -2
  107. package/build/src/browser/client-scripts/screen-shooter/build/bundle.compat.js +10 -10
  108. package/build/src/browser/client-scripts/screen-shooter/build/bundle.native.js +10 -10
  109. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/implementation.js +21 -8
  110. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/operations.js +57 -29
  111. package/build/src/browser/commands/assert-view/errors/image-diff-error.d.ts +1 -0
  112. package/build/src/browser/commands/assert-view/index.js +23 -3
  113. package/build/src/browser/commands/assert-view/index.js.map +1 -1
  114. package/build/src/browser/commands/openAndWait.js +23 -26
  115. package/build/src/browser/commands/openAndWait.js.map +1 -1
  116. package/build/src/browser/commands/restoreState/index.js +19 -8
  117. package/build/src/browser/commands/restoreState/index.js.map +1 -1
  118. package/build/src/browser/commands/saveState/index.d.ts +1 -2
  119. package/build/src/browser/commands/saveState/index.js +8 -12
  120. package/build/src/browser/commands/saveState/index.js.map +1 -1
  121. package/build/src/browser/commands/switchToRepl.js +27 -9
  122. package/build/src/browser/commands/switchToRepl.js.map +1 -1
  123. package/build/src/browser/existing-browser.d.ts +2 -0
  124. package/build/src/browser/existing-browser.js +15 -0
  125. package/build/src/browser/existing-browser.js.map +1 -1
  126. package/build/src/browser/history/index.d.ts +8 -1
  127. package/build/src/browser/history/index.js +41 -17
  128. package/build/src/browser/history/index.js.map +1 -1
  129. package/build/src/browser/history/rrweb.d.ts +3 -1
  130. package/build/src/browser/history/rrweb.js +122 -27
  131. package/build/src/browser/history/rrweb.js.map +1 -1
  132. package/build/src/browser/isomorphic/tsconfig.tsbuildinfo +1 -1
  133. package/build/src/browser/new-browser.d.ts +1 -1
  134. package/build/src/browser/new-browser.js +6 -12
  135. package/build/src/browser/new-browser.js.map +1 -1
  136. package/build/src/browser/screen-shooter/composite-image/index.d.ts +23 -0
  137. package/build/src/browser/screen-shooter/composite-image/index.js +161 -14
  138. package/build/src/browser/screen-shooter/composite-image/index.js.map +1 -1
  139. package/build/src/browser/screen-shooter/debug.d.ts +3 -0
  140. package/build/src/browser/screen-shooter/debug.js +25 -0
  141. package/build/src/browser/screen-shooter/debug.js.map +1 -0
  142. package/build/src/browser/screen-shooter/elements-screen-shooter.d.ts +0 -1
  143. package/build/src/browser/screen-shooter/elements-screen-shooter.js +127 -75
  144. package/build/src/browser/screen-shooter/elements-screen-shooter.js.map +1 -1
  145. package/build/src/browser/screen-shooter/full-page-screen-shooter.d.ts +3 -2
  146. package/build/src/browser/screen-shooter/full-page-screen-shooter.js +19 -15
  147. package/build/src/browser/screen-shooter/full-page-screen-shooter.js.map +1 -1
  148. package/build/src/browser/screen-shooter/operations/index.d.ts +1 -0
  149. package/build/src/browser/screen-shooter/operations/index.js +3 -1
  150. package/build/src/browser/screen-shooter/operations/index.js.map +1 -1
  151. package/build/src/browser/screen-shooter/operations/pointer-events.js +7 -0
  152. package/build/src/browser/screen-shooter/operations/pointer-events.js.map +1 -1
  153. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.d.ts +2 -0
  154. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js +133 -0
  155. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js.map +1 -0
  156. package/build/src/browser/screen-shooter/viewport-screen-shooter.d.ts +2 -1
  157. package/build/src/browser/screen-shooter/viewport-screen-shooter.js +3 -5
  158. package/build/src/browser/screen-shooter/viewport-screen-shooter.js.map +1 -1
  159. package/build/src/browser/types.d.ts +6 -4
  160. package/build/src/browser/wsdriver/compression.d.ts +5 -0
  161. package/build/src/browser/wsdriver/compression.js +79 -0
  162. package/build/src/browser/wsdriver/compression.js.map +1 -0
  163. package/build/src/browser/wsdriver/constants.d.ts +11 -0
  164. package/build/src/browser/wsdriver/constants.js +15 -0
  165. package/build/src/browser/wsdriver/constants.js.map +1 -0
  166. package/build/src/browser/wsdriver/debug.d.ts +2 -0
  167. package/build/src/browser/wsdriver/debug.js +9 -0
  168. package/build/src/browser/wsdriver/debug.js.map +1 -0
  169. package/build/src/browser/wsdriver/error.d.ts +18 -0
  170. package/build/src/browser/wsdriver/error.js +36 -0
  171. package/build/src/browser/wsdriver/error.js.map +1 -0
  172. package/build/src/browser/wsdriver/index.d.ts +23 -0
  173. package/build/src/browser/wsdriver/index.js +261 -0
  174. package/build/src/browser/wsdriver/index.js.map +1 -0
  175. package/build/src/browser/wsdriver/request.d.ts +10 -0
  176. package/build/src/browser/wsdriver/request.js +58 -0
  177. package/build/src/browser/wsdriver/request.js.map +1 -0
  178. package/build/src/browser/wsdriver/response.d.ts +3 -0
  179. package/build/src/browser/wsdriver/response.js +111 -0
  180. package/build/src/browser/wsdriver/response.js.map +1 -0
  181. package/build/src/browser/wsdriver/types.d.ts +71 -0
  182. package/build/src/browser/wsdriver/types.js +27 -0
  183. package/build/src/browser/wsdriver/types.js.map +1 -0
  184. package/build/src/browser-pool/basic-pool.js +3 -1
  185. package/build/src/browser-pool/basic-pool.js.map +1 -1
  186. package/build/src/cli/commands/selectivity-merge-dumps/index.d.ts +2 -0
  187. package/build/src/cli/commands/selectivity-merge-dumps/index.js +50 -0
  188. package/build/src/cli/commands/selectivity-merge-dumps/index.js.map +1 -0
  189. package/build/src/cli/constants.d.ts +1 -0
  190. package/build/src/cli/constants.js +1 -0
  191. package/build/src/cli/constants.js.map +1 -1
  192. package/build/src/cli/index.js +3 -5
  193. package/build/src/cli/index.js.map +1 -1
  194. package/build/src/config/browser-options.js +11 -3
  195. package/build/src/config/browser-options.js.map +1 -1
  196. package/build/src/config/defaults.d.ts +7 -2
  197. package/build/src/config/defaults.js +10 -5
  198. package/build/src/config/defaults.js.map +1 -1
  199. package/build/src/config/index.d.ts +10 -6
  200. package/build/src/config/index.js +67 -42
  201. package/build/src/config/index.js.map +1 -1
  202. package/build/src/config/types.d.ts +59 -14
  203. package/build/src/config/types.js +15 -5
  204. package/build/src/config/types.js.map +1 -1
  205. package/build/src/config/utils.d.ts +2 -2
  206. package/build/src/config/utils.js +11 -6
  207. package/build/src/config/utils.js.map +1 -1
  208. package/build/src/constants/config.d.ts +0 -1
  209. package/build/src/constants/config.js +1 -2
  210. package/build/src/constants/config.js.map +1 -1
  211. package/build/src/constants/png.d.ts +1 -0
  212. package/build/src/constants/repl.d.ts +2 -0
  213. package/build/src/constants/repl.js +6 -0
  214. package/build/src/constants/repl.js.map +1 -0
  215. package/build/src/dev-server/index.d.ts +1 -1
  216. package/build/src/dev-server/index.js +1 -1
  217. package/build/src/dev-server/index.js.map +1 -1
  218. package/build/src/globals.d.ts +7 -0
  219. package/build/src/globals.js +10 -0
  220. package/build/src/globals.js.map +1 -0
  221. package/build/src/image.d.ts +6 -1
  222. package/build/src/image.js +56 -2
  223. package/build/src/image.js.map +1 -1
  224. package/build/src/index.d.ts +3 -13
  225. package/build/src/index.js +5 -1
  226. package/build/src/index.js.map +1 -1
  227. package/build/src/runner/browser-env/vite/browser-modules/driver.js +6 -8
  228. package/build/src/runner/browser-env/vite/browser-modules/driver.js.map +1 -1
  229. package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
  230. package/build/src/runner/browser-env/vite/browser-modules/types.d.ts +1 -1
  231. package/build/src/runner/index.js +1 -0
  232. package/build/src/runner/index.js.map +1 -1
  233. package/build/src/runner/suite-monitor.d.ts +1 -1
  234. package/build/src/runner/test-runner/regular-test-runner.js +2 -2
  235. package/build/src/runner/test-runner/regular-test-runner.js.map +1 -1
  236. package/build/src/signal-handler.d.ts +2 -2
  237. package/build/src/signal-handler.js +24 -11
  238. package/build/src/signal-handler.js.map +1 -1
  239. package/build/src/test-reader/mocha-reader/mocha-event-bus.d.ts +1 -1
  240. package/build/src/test-reader/test-parser.js +3 -3
  241. package/build/src/test-reader/test-parser.js.map +1 -1
  242. package/build/src/testplane.d.ts +4 -5
  243. package/build/src/testplane.js +20 -10
  244. package/build/src/testplane.js.map +1 -1
  245. package/build/src/types/globals.d.ts +16 -0
  246. package/build/src/types/globals.js +3 -0
  247. package/build/src/types/globals.js.map +1 -0
  248. package/build/src/types/index.d.ts +2 -3
  249. package/build/src/utils/crypto.d.ts +1 -0
  250. package/build/src/utils/crypto.js +2 -1
  251. package/build/src/utils/crypto.js.map +1 -1
  252. package/build/src/utils/eight-bit-rgba-to-png.d.ts +1 -0
  253. package/build/src/utils/repl-instrumentation/index.d.ts +1 -0
  254. package/build/src/utils/repl-instrumentation/index.js +46 -0
  255. package/build/src/utils/repl-instrumentation/index.js.map +1 -0
  256. package/build/src/utils/repl-instrumentation/typescript.d.ts +7 -0
  257. package/build/src/utils/repl-instrumentation/typescript.js +307 -0
  258. package/build/src/utils/repl-instrumentation/typescript.js.map +1 -0
  259. package/build/src/utils/repl-module-hooks.d.ts +1 -0
  260. package/build/src/utils/repl-module-hooks.js +111 -0
  261. package/build/src/utils/repl-module-hooks.js.map +1 -0
  262. package/build/src/utils/workers-registry.d.ts +2 -2
  263. package/build/src/utils/workers-registry.js +1 -0
  264. package/build/src/utils/workers-registry.js.map +1 -1
  265. package/build/src/vendors/expect-webdriverio/matchers-overrides.d.ts +49 -0
  266. package/build/src/vendors/expect-webdriverio/matchers-overrides.js +3 -0
  267. package/build/src/vendors/expect-webdriverio/matchers-overrides.js.map +1 -0
  268. package/build/src/worker/runner/browser-pool.js +4 -1
  269. package/build/src/worker/runner/browser-pool.js.map +1 -1
  270. package/build/src/worker/runner/index.js +6 -3
  271. package/build/src/worker/runner/index.js.map +1 -1
  272. package/build/src/worker/runner/sequence-test-parser.js +5 -7
  273. package/build/src/worker/runner/sequence-test-parser.js.map +1 -1
  274. package/build/src/worker/runner/test-runner/capture-fail-screenshot.js +2 -3
  275. package/build/src/worker/runner/test-runner/capture-fail-screenshot.js.map +1 -1
  276. package/build/src/worker/runner/test-runner/execution-thread.d.ts +0 -1
  277. package/build/src/worker/runner/test-runner/execution-thread.js +0 -5
  278. package/build/src/worker/runner/test-runner/execution-thread.js.map +1 -1
  279. package/build/src/worker/runner/test-runner/index.d.ts +1 -0
  280. package/build/src/worker/runner/test-runner/index.js +47 -2
  281. package/build/src/worker/runner/test-runner/index.js.map +1 -1
  282. package/build/src/worker/testplane-facade.js +5 -3
  283. package/build/src/worker/testplane-facade.js.map +1 -1
  284. package/build/src/worker/testplane.d.ts +1 -0
  285. package/build/src/worker/testplane.js +4 -1
  286. package/build/src/worker/testplane.js.map +1 -1
  287. package/build/src/ws-connection/constants.d.ts +13 -0
  288. package/build/src/ws-connection/constants.js +17 -0
  289. package/build/src/ws-connection/constants.js.map +1 -0
  290. package/build/src/ws-connection/error.d.ts +52 -0
  291. package/build/src/ws-connection/error.js +84 -0
  292. package/build/src/ws-connection/error.js.map +1 -0
  293. package/build/src/ws-connection/index.d.ts +83 -0
  294. package/build/src/ws-connection/index.js +397 -0
  295. package/build/src/ws-connection/index.js.map +1 -0
  296. package/build/src/ws-connection/utils.d.ts +6 -0
  297. package/build/src/ws-connection/utils.js +9 -0
  298. package/build/src/ws-connection/utils.js.map +1 -0
  299. package/package.json +11 -11
@@ -1,45 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CDPConnection = void 0;
4
- const ws_1 = require("ws");
4
+ const node_util_1 = require("node:util");
5
5
  const debug_1 = require("./debug");
6
6
  const ws_endpoint_1 = require("./ws-endpoint");
7
7
  const utils_1 = require("./utils");
8
8
  const error_1 = require("./error");
9
9
  const constants_1 = require("./constants");
10
- var WsConnectionStatus;
11
- (function (WsConnectionStatus) {
12
- WsConnectionStatus[WsConnectionStatus["DISCONNECTED"] = 0] = "DISCONNECTED";
13
- WsConnectionStatus[WsConnectionStatus["CONNECTING"] = 1] = "CONNECTING";
14
- WsConnectionStatus[WsConnectionStatus["CONNECTED"] = 2] = "CONNECTED";
15
- WsConnectionStatus[WsConnectionStatus["CLOSED"] = 3] = "CLOSED";
16
- })(WsConnectionStatus || (WsConnectionStatus = {}));
17
- // Closing WS when its still not connected produces error:
18
- // https://github.com/websockets/ws/blob/86eac5b44ac2bff9087ec40c9bd06bc7b4f0da07/lib/websocket.js#L297-L301
19
- const closeWsConnection = (ws) => {
20
- if (ws.readyState !== ws.CONNECTING) {
21
- ws.close();
22
- }
23
- else {
24
- ws.once("open", () => {
25
- ws.close();
26
- });
27
- }
28
- };
10
+ const ws_connection_1 = require("../../ws-connection");
11
+ const constants_2 = require("../../ws-connection/constants");
12
+ const error_2 = require("../../ws-connection/error");
13
+ const utils_2 = require("../../ws-connection/utils");
29
14
  class CDPConnection {
30
15
  constructor(cdpWsEndpoint, headers) {
31
16
  this.onEventMessage = null;
32
- this._onPong = null;
33
- this._pingInterval = null;
34
- this._pingSubsequentFails = 0;
35
- this._onConnectionCloseFn = null; // Defined, if there is connection attempt at the moment
36
- this._wsConnectionStatus = WsConnectionStatus.DISCONNECTED;
37
- this._wsConnection = null;
38
- this._wsConnectionPromise = null;
39
- this._requestId = 0;
40
- this._pendingRequests = {};
41
- this._cdpWsEndpoint = cdpWsEndpoint;
42
- this._headers = headers;
17
+ this._wsConnection = new ws_connection_1.WsConnection(cdpWsEndpoint, {
18
+ headers,
19
+ debugFn: debug_1.debugCdp,
20
+ retries: {
21
+ count: constants_1.CDP_CONNECTION_RETRIES,
22
+ baseDelay: constants_1.CDP_CONNECTION_RETRY_BASE_DELAY,
23
+ },
24
+ timeouts: {
25
+ request: constants_1.CDP_REQUEST_TIMEOUT,
26
+ createSession: constants_1.CDP_CONNECTION_TIMEOUT,
27
+ },
28
+ errors: {
29
+ ConnectionEstablishment: error_1.CDPConnectionEstablishmentError,
30
+ ConnectionBreak: error_1.CDPConnectionBreakError,
31
+ ConnectionTerminated: error_1.CDPConnectionTerminatedError,
32
+ ConnectionTimeout: error_1.CDPConnectionTimeoutError,
33
+ RequestTimeout: error_1.CDPRequestError,
34
+ },
35
+ onMessage: this._onMessage.bind(this),
36
+ });
43
37
  }
44
38
  /** @description Creates CDPConnection without establishing it */
45
39
  static async create(browser) {
@@ -51,156 +45,21 @@ class CDPConnection {
51
45
  }
52
46
  return new this(cdpWsEndpoint, headers);
53
47
  }
54
- /** @description Tries to establish ws connection with timeout */
55
- async _tryToEstablishWsConnection(endpoint) {
56
- return new Promise(resolve => {
57
- try {
58
- const onConnectionCloseFn = () => done(new error_1.CDPConnectionTerminatedError());
59
- if (this._wsConnectionStatus === WsConnectionStatus.CLOSED) {
60
- onConnectionCloseFn();
61
- }
62
- else {
63
- this._onConnectionCloseFn = onConnectionCloseFn;
64
- }
65
- // eslint-disable-next-line
66
- const cdpConnectionInstance = this;
67
- const ws = new ws_1.WebSocket(endpoint, { headers: this._headers });
68
- let isSettled = false;
69
- const timeoutId = setTimeout(() => {
70
- closeWsConnection(ws);
71
- done(new error_1.CDPTimeoutError({
72
- message: `Couldn't establish CDP connection to "${endpoint}" in ${constants_1.CDP_CONNECTION_TIMEOUT}ms`,
73
- }));
74
- }, constants_1.CDP_CONNECTION_TIMEOUT).unref();
75
- const onOpen = () => {
76
- done(ws);
77
- };
78
- const onError = (error) => {
79
- closeWsConnection(ws);
80
- done(new error_1.CDPError({
81
- message: `Couldn't establish CDP connection to "${endpoint}": ${error}`,
82
- }));
83
- };
84
- const onClose = () => {
85
- done(new error_1.CDPError({
86
- message: `CDP connection to "${endpoint}" unexpectedly closed while establishing`,
87
- }));
88
- };
89
- ws.on("open", onOpen);
90
- ws.on("error", onError);
91
- ws.on("close", onClose);
92
- // eslint-disable-next-line no-inner-declarations
93
- function done(result) {
94
- if (isSettled) {
95
- return;
96
- }
97
- cdpConnectionInstance._onConnectionCloseFn = null;
98
- isSettled = true;
99
- clearTimeout(timeoutId);
100
- ws.off("open", onOpen);
101
- ws.off("error", onError);
102
- ws.off("close", onClose);
103
- resolve(result);
104
- }
105
- }
106
- catch (err) {
107
- resolve(err);
108
- }
109
- });
110
- }
111
- /**
112
- * @description creates ws connection with retries or returns existing one
113
- * @note Concurrent requests with same params produce same ws connection
114
- */
115
- async _getWsConnection() {
116
- const ws = this._wsConnection;
117
- if (this._wsConnectionStatus === WsConnectionStatus.CLOSED) {
118
- throw new error_1.CDPConnectionTerminatedError({ message: `Session to ${this._cdpWsEndpoint} was closed` });
119
- }
120
- if (this._wsConnectionStatus === WsConnectionStatus.CONNECTING && this._wsConnectionPromise) {
121
- return this._wsConnectionPromise;
122
- }
123
- if (this._wsConnectionStatus === WsConnectionStatus.CONNECTED && ws && ws.readyState === ws.OPEN) {
124
- return ws;
125
- }
126
- if (this._wsConnectionStatus === WsConnectionStatus.CONNECTED && ws && ws.readyState !== ws.OPEN) {
127
- this._closeWsConnection("CDP connection was in invalid state", WsConnectionStatus.DISCONNECTED);
128
- }
129
- this._wsConnectionStatus = WsConnectionStatus.CONNECTING;
130
- this._wsConnectionPromise = (async () => {
131
- try {
132
- for (let retriesLeft = constants_1.CDP_CONNECTION_RETRIES; retriesLeft >= 0; retriesLeft--) {
133
- const result = await this._tryToEstablishWsConnection(this._cdpWsEndpoint);
134
- if (this._wsConnectionStatus === WsConnectionStatus.CLOSED) {
135
- if (result instanceof ws_1.WebSocket) {
136
- closeWsConnection(result);
137
- }
138
- throw new error_1.CDPConnectionTerminatedError();
139
- }
140
- if (result instanceof ws_1.WebSocket) {
141
- (0, debug_1.debugCdp)(`Established CDP connection to ${this._cdpWsEndpoint}`);
142
- this._wsConnection = result;
143
- this._wsConnectionStatus = WsConnectionStatus.CONNECTED;
144
- this._pingHealthCheckStart();
145
- const onPing = () => result.pong();
146
- const onMessage = (data) => this._onMessage(data);
147
- const onError = (err) => {
148
- if (result === this._wsConnection) {
149
- this._closeWsConnection(`An error occured in CDP connection: ${err}`, WsConnectionStatus.DISCONNECTED);
150
- this._tryToReconnect();
151
- }
152
- };
153
- result.on("ping", onPing);
154
- result.on("message", onMessage);
155
- result.on("error", onError);
156
- result.once("close", () => {
157
- result.off("ping", onPing);
158
- result.off("message", onMessage);
159
- result.off("error", onError);
160
- if (result === this._wsConnection) {
161
- this._closeWsConnection("CDP connection was closed unexpectedly", WsConnectionStatus.DISCONNECTED);
162
- this._tryToReconnect();
163
- }
164
- });
165
- return result;
166
- }
167
- if (!(result instanceof error_1.CDPError) || result instanceof error_1.CDPConnectionTerminatedError) {
168
- throw result;
169
- }
170
- (0, debug_1.debugCdp)(`${result.message}; retries left: ${retriesLeft}`);
171
- // Intentionally avoiding wait after timeout
172
- if (result instanceof error_1.CDPError && !(result instanceof error_1.CDPTimeoutError)) {
173
- await (0, utils_1.exponentiallyWait)({
174
- baseDelay: constants_1.CDP_CONNECTION_RETRY_BASE_DELAY,
175
- attempt: constants_1.CDP_CONNECTION_RETRIES - retriesLeft,
176
- });
177
- }
178
- }
179
- throw new error_1.CDPError({
180
- message: `Couldn't establish CDP connection to ${this._cdpWsEndpoint} in ${constants_1.CDP_CONNECTION_RETRIES} retries`,
181
- });
182
- }
183
- catch (err) {
184
- if (this._wsConnectionStatus === WsConnectionStatus.CONNECTING) {
185
- this._wsConnectionStatus = WsConnectionStatus.DISCONNECTED;
186
- this._wsConnectionPromise = null;
187
- }
188
- throw err;
189
- }
190
- finally {
191
- if (this._wsConnectionStatus !== WsConnectionStatus.CONNECTING) {
192
- this._wsConnectionPromise = null;
193
- }
194
- }
195
- })();
196
- return this._wsConnectionPromise;
48
+ close() {
49
+ this._wsConnection.close();
197
50
  }
198
- /** @description Handles websocket incoming messages, resolving pending requests */
199
51
  _onMessage(data) {
200
52
  const message = data.toString("utf8");
201
- (0, debug_1.debugCdp)(`< ${message}`);
202
53
  try {
203
54
  const jsonParsedMessage = JSON.parse(message);
55
+ if (debug_1.debugCdp.enabled) {
56
+ (0, debug_1.debugCdp)(`< ${(0, node_util_1.inspect)(jsonParsedMessage, {
57
+ depth: 3,
58
+ maxStringLength: 150,
59
+ breakLength: Infinity,
60
+ compact: true,
61
+ })}`);
62
+ }
204
63
  if (!("id" in jsonParsedMessage)) {
205
64
  if (this.onEventMessage) {
206
65
  this.onEventMessage(jsonParsedMessage);
@@ -208,218 +67,79 @@ class CDPConnection {
208
67
  return;
209
68
  }
210
69
  const requestId = jsonParsedMessage.id;
211
- if (!this._pendingRequests[requestId]) {
212
- (0, debug_1.debugCdp)(`Received response to request ${requestId}, which is probably timed out already`);
213
- return;
214
- }
215
70
  if ("result" in jsonParsedMessage) {
216
- this._pendingRequests[requestId](jsonParsedMessage.result);
71
+ this._wsConnection.provideResponseFor(requestId, jsonParsedMessage.result);
217
72
  }
218
73
  else if ("error" in jsonParsedMessage) {
219
- this._pendingRequests[requestId](new error_1.CDPError({
74
+ this._wsConnection.provideResponseFor(requestId, new error_1.CDPRequestError({
220
75
  message: jsonParsedMessage.error.message,
221
76
  code: jsonParsedMessage.error.code,
222
- requestId: requestId,
77
+ requestId,
223
78
  }));
224
79
  }
225
80
  else {
226
- this._pendingRequests[requestId](new error_1.CDPError({
81
+ this._wsConnection.provideResponseFor(requestId, new error_1.CDPRequestError({
227
82
  message: "Received malformed response without result",
228
- code: constants_1.CDP_ERROR_CODE.MALFORMED_RESPONSE,
229
- requestId: requestId,
83
+ code: constants_2.WS_ERROR_CODE.MALFORMED_RESPONSE,
84
+ requestId,
230
85
  }));
231
86
  }
232
87
  }
233
88
  catch (err) {
234
- (0, debug_1.debugCdp)(`Couldn't process CDP message.\n\tError: ${err}\n\tMessage: "${message}"`);
89
+ if (debug_1.debugCdp.enabled) {
90
+ (0, debug_1.debugCdp)(`\u2718 Couldn't process CDP message\n\tError: ${err}\n\tMessage: "${message}"`);
91
+ }
235
92
  const requestId = (0, utils_1.extractRequestIdFromBrokenResponse)(message);
236
- if (requestId && this._pendingRequests[requestId]) {
237
- this._pendingRequests[requestId](new error_1.CDPError({
93
+ if (requestId) {
94
+ this._wsConnection.provideResponseFor(requestId, new error_1.CDPRequestError({
238
95
  message: "Received malformed response: response is invalid JSON",
239
- code: constants_1.CDP_ERROR_CODE.MALFORMED_RESPONSE,
240
- requestId: requestId,
96
+ code: constants_2.WS_ERROR_CODE.MALFORMED_RESPONSE,
97
+ requestId,
241
98
  }));
242
99
  }
243
100
  }
244
101
  }
245
- /**
246
- * @description Produces connection-"uniq" request ids
247
- * @note Theoretically, it can collide, but given "CDP_MAX_REQUEST_ID" is INT32_MAX, it wont
248
- */
249
- _getRequestId() {
250
- const id = ++this._requestId;
251
- if (this._requestId >= constants_1.CDP_MAX_REQUEST_ID) {
252
- this._requestId = 0;
253
- }
254
- return id;
255
- }
256
- /** @description establishes ws connection, sends request with timeout and waits for response */
257
- async _tryToSendRequest(method, { params, sessionId }) {
258
- const id = this._getRequestId();
259
- const ws = await this._getWsConnection();
260
- const requestMessage = JSON.stringify({ id, sessionId, method, params });
261
- if (this._wsConnectionStatus === WsConnectionStatus.CLOSED) {
262
- throw new error_1.CDPConnectionTerminatedError({
263
- message: `Couldn't send "${requestMessage}" because CDP connection was manually closed`,
264
- });
265
- }
266
- (0, debug_1.debugCdp)(`> ${requestMessage}`);
267
- return new Promise(resolve => {
268
- const pendingRequests = this._pendingRequests;
269
- let isSettled = false;
270
- const onTimeout = setTimeout(() => {
271
- const err = new error_1.CDPTimeoutError({
272
- message: `Timed out while waiting for ${method} for ${constants_1.CDP_REQUEST_TIMEOUT}ms`,
273
- requestId: id,
274
- });
275
- done(err);
276
- }, constants_1.CDP_REQUEST_TIMEOUT).unref();
277
- function done(response) {
278
- if (isSettled) {
279
- return;
280
- }
281
- isSettled = true;
282
- delete pendingRequests[id];
283
- clearTimeout(onTimeout);
284
- resolve(response);
285
- }
286
- pendingRequests[id] = done;
287
- ws.send(requestMessage, error => {
288
- if (!error) {
289
- return;
290
- }
291
- done(new error_1.CDPError({
292
- message: `Couldn't send CDP request "${method}": ${error.message}`,
293
- code: constants_1.CDP_ERROR_CODE.SEND_FAILED,
294
- requestId: id,
295
- }));
296
- // Proactively closing connection as "send error" is marker that something bad with connection happened
297
- if (ws === this._wsConnection) {
298
- this._closeWsConnection("CDP connection was considered broken as 'send' failed", WsConnectionStatus.DISCONNECTED);
299
- this._tryToReconnect();
300
- }
301
- });
302
- });
303
- }
304
102
  /** @description Performs high-level CDP request with retries and timeouts */
305
103
  async request(method, { params, sessionId } = {}) {
306
104
  let result;
307
105
  for (let retriesLeft = constants_1.CDP_REQUEST_RETRIES; retriesLeft >= 0; retriesLeft--) {
308
- result = (await this._tryToSendRequest(method, { params, sessionId }));
309
- const noRetriesLeft = retriesLeft <= 0;
310
- const connectionIsClosed = this._wsConnectionStatus === WsConnectionStatus.CLOSED;
311
- if (!(result instanceof error_1.CDPError) || result.isNonRetryable() || noRetriesLeft || connectionIsClosed) {
106
+ const id = this._wsConnection.getRequestId();
107
+ const requestMessage = JSON.stringify({ id, sessionId, method, params });
108
+ if (debug_1.debugCdp.enabled) {
109
+ (0, debug_1.debugCdp)(`> ${(0, node_util_1.inspect)(requestMessage, {
110
+ depth: 3,
111
+ maxStringLength: 150,
112
+ breakLength: Infinity,
113
+ compact: true,
114
+ })}`);
115
+ }
116
+ result = (await this._wsConnection.makeRequest(id, requestMessage));
117
+ if (!(result instanceof error_2.WsError) || !result.isRetryable() || retriesLeft <= 0) {
312
118
  break;
313
119
  }
314
- (0, debug_1.debugCdp)(`${result.message}; retries left: ${retriesLeft}`);
120
+ if (debug_1.debugCdp.enabled) {
121
+ (0, debug_1.debugCdp)(`⟳ ${(0, node_util_1.inspect)({
122
+ id,
123
+ sessionId,
124
+ method,
125
+ params,
126
+ errorMessage: result.message,
127
+ retriesLeft: retriesLeft,
128
+ })}`);
129
+ }
315
130
  // Intentionally avoiding wait after timeout
316
- if (result instanceof error_1.CDPError && !(result instanceof error_1.CDPTimeoutError)) {
317
- await (0, utils_1.exponentiallyWait)({
131
+ if (!(result instanceof error_1.CDPRequestTimeoutError)) {
132
+ await (0, utils_2.exponentiallyWait)({
318
133
  baseDelay: constants_1.CDP_REQUEST_RETRY_BASE_DELAY,
319
134
  attempt: constants_1.CDP_REQUEST_RETRIES - retriesLeft,
320
135
  });
321
136
  }
322
137
  }
323
- if (result instanceof Error) {
138
+ if (result instanceof error_2.WsError) {
324
139
  throw result;
325
140
  }
326
141
  return result;
327
142
  }
328
- _closeWsConnection(sessionAbortMessage, status) {
329
- const ws = this._wsConnection;
330
- if (!ws || this._wsConnectionStatus === WsConnectionStatus.CLOSED) {
331
- this._wsConnection = null;
332
- return;
333
- }
334
- (0, debug_1.debugCdp)(`${sessionAbortMessage}; endpoint: "${this._cdpWsEndpoint}"`);
335
- if (status === WsConnectionStatus.CLOSED && this._onConnectionCloseFn) {
336
- this._onConnectionCloseFn();
337
- }
338
- this._wsConnection = null;
339
- this._wsConnectionStatus = status;
340
- this._abortPendingRequests(`Request was aborted because ${sessionAbortMessage}`);
341
- this._pingHealthCheckStop();
342
- closeWsConnection(ws);
343
- }
344
- /**
345
- * @description Tries to re-establish connection after network drops
346
- * @note Silently gives up after failed "CDP_CONNECTION_RETRIES" attempts
347
- */
348
- _tryToReconnect() {
349
- (0, debug_1.debugCdp)(`Trying to reconnect; endpoint: "${this._cdpWsEndpoint}"`);
350
- this._getWsConnection()
351
- .then(() => (0, debug_1.debugCdp)(`Successfully reconnected to session; endpoint: "${this._cdpWsEndpoint}"`))
352
- .catch(() => (0, debug_1.debugCdp)(`Couldn't reconnect to session automatically; endpoint: "${this._cdpWsEndpoint}"`));
353
- }
354
- /** @description Used to abort all pending requests when connection is closed */
355
- _abortPendingRequests(message) {
356
- const pendingRequests = this._pendingRequests;
357
- const pendingRequestIds = Object.keys(pendingRequests).map(Number);
358
- this._pendingRequests = {};
359
- for (const requestId of pendingRequestIds) {
360
- if (pendingRequests[requestId]) {
361
- pendingRequests[requestId](new error_1.CDPConnectionTerminatedError({
362
- message,
363
- requestId,
364
- }));
365
- }
366
- }
367
- }
368
- /** @description Closes websocket connection, terminating all pending requests */
369
- close() {
370
- this._closeWsConnection("Connection was closed manually", WsConnectionStatus.CLOSED);
371
- }
372
- _pingHealthCheckStop() {
373
- this._pingSubsequentFails = 0;
374
- if (this._pingInterval) {
375
- clearInterval(this._pingInterval);
376
- }
377
- if (this._wsConnection && this._onPong) {
378
- this._wsConnection.off("pong", this._onPong);
379
- }
380
- }
381
- _isWebSocketActive(ws) {
382
- return Boolean(ws.readyState !== ws.CLOSED && ws.readyState !== ws.CLOSING && ws === this._wsConnection);
383
- }
384
- _pingHealthCheckStart() {
385
- this._pingHealthCheckStop();
386
- const ws = this._wsConnection;
387
- if (!ws || !this._isWebSocketActive(ws)) {
388
- return;
389
- }
390
- this._pingHealthCheckStop();
391
- let isWaitingForPong = false;
392
- let pongTimeout;
393
- const onPong = (this._onPong = () => {
394
- if (isWaitingForPong && this._isWebSocketActive(ws)) {
395
- isWaitingForPong = false;
396
- (0, debug_1.debugCdp)("< PONG");
397
- clearTimeout(pongTimeout);
398
- this._pingSubsequentFails = 0;
399
- }
400
- });
401
- ws.on("pong", onPong);
402
- const pingInterval = (this._pingInterval = setInterval(() => {
403
- if (!this._isWebSocketActive(ws)) {
404
- clearInterval(pingInterval);
405
- return;
406
- }
407
- pongTimeout = setTimeout(() => {
408
- if (isWaitingForPong && this._isWebSocketActive(ws)) {
409
- isWaitingForPong = false;
410
- this._pingSubsequentFails++;
411
- (0, debug_1.debugCdp)(`Ping failed(${this._pingSubsequentFails} in a row) in ${constants_1.CDP_PING_TIMEOUT}ms`);
412
- if (this._pingSubsequentFails >= constants_1.CDP_PING_MAX_SUBSEQUENT_FAILS) {
413
- this._closeWsConnection(`CDP connection was considered broken as ${this._pingSubsequentFails} pings failed in a row`, WsConnectionStatus.DISCONNECTED);
414
- this._tryToReconnect();
415
- }
416
- }
417
- }, constants_1.CDP_PING_TIMEOUT).unref();
418
- ws.ping();
419
- (0, debug_1.debugCdp)("> PING");
420
- isWaitingForPong = true;
421
- }, constants_1.CDP_PING_INTERVAL).unref());
422
- }
423
143
  }
424
144
  exports.CDPConnection = CDPConnection;
425
145
  //# sourceMappingURL=connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../../src/browser/cdp/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../../src/browser/cdp/connection.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,3 @@ export declare const CDP_CONNECTION_RETRY_BASE_DELAY = 500;
4
4
  export declare const CDP_REQUEST_TIMEOUT = 15000;
5
5
  export declare const CDP_REQUEST_RETRIES = 3;
6
6
  export declare const CDP_REQUEST_RETRY_BASE_DELAY = 500;
7
- export declare const CDP_MAX_REQUEST_ID = 2147483647;
8
- export declare const CDP_PING_INTERVAL = 15000;
9
- export declare const CDP_PING_TIMEOUT = 10000;
10
- export declare const CDP_PING_MAX_SUBSEQUENT_FAILS = 2;
11
- export declare const CDP_ERROR_CODE: {
12
- readonly MALFORMED_RESPONSE: -32810;
13
- readonly SEND_FAILED: -32820;
14
- readonly TIMEOUT: -32830;
15
- readonly CONNECTION_TERMINATED: -32840;
16
- };
@@ -1,20 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CDP_ERROR_CODE = exports.CDP_PING_MAX_SUBSEQUENT_FAILS = exports.CDP_PING_TIMEOUT = exports.CDP_PING_INTERVAL = exports.CDP_MAX_REQUEST_ID = exports.CDP_REQUEST_RETRY_BASE_DELAY = exports.CDP_REQUEST_RETRIES = exports.CDP_REQUEST_TIMEOUT = exports.CDP_CONNECTION_RETRY_BASE_DELAY = exports.CDP_CONNECTION_RETRIES = exports.CDP_CONNECTION_TIMEOUT = void 0;
3
+ exports.CDP_REQUEST_RETRY_BASE_DELAY = exports.CDP_REQUEST_RETRIES = exports.CDP_REQUEST_TIMEOUT = exports.CDP_CONNECTION_RETRY_BASE_DELAY = exports.CDP_CONNECTION_RETRIES = exports.CDP_CONNECTION_TIMEOUT = void 0;
4
4
  exports.CDP_CONNECTION_TIMEOUT = 15000; // 15 sec
5
5
  exports.CDP_CONNECTION_RETRIES = 3;
6
6
  exports.CDP_CONNECTION_RETRY_BASE_DELAY = 500;
7
7
  exports.CDP_REQUEST_TIMEOUT = 15000; // 15 sec
8
8
  exports.CDP_REQUEST_RETRIES = 3;
9
9
  exports.CDP_REQUEST_RETRY_BASE_DELAY = 500;
10
- exports.CDP_MAX_REQUEST_ID = 2147483647; // INT32_MAX
11
- exports.CDP_PING_INTERVAL = 15000; // 15 sec
12
- exports.CDP_PING_TIMEOUT = 10000; // 10 sec
13
- exports.CDP_PING_MAX_SUBSEQUENT_FAILS = 2;
14
- exports.CDP_ERROR_CODE = {
15
- MALFORMED_RESPONSE: -32810, // Custom error code
16
- SEND_FAILED: -32820, // Custom error code
17
- TIMEOUT: -32830, // Custom error code
18
- CONNECTION_TERMINATED: -32840, // Custom error code
19
- };
20
10
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/browser/cdp/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,KAAK,CAAC,CAAC,SAAS;AACzC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAC3B,QAAA,+BAA+B,GAAG,GAAG,CAAC;AACtC,QAAA,mBAAmB,GAAG,KAAK,CAAC,CAAC,SAAS;AACtC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,4BAA4B,GAAG,GAAG,CAAC;AACnC,QAAA,kBAAkB,GAAG,UAAU,CAAC,CAAC,YAAY;AAC7C,QAAA,iBAAiB,GAAG,KAAK,CAAC,CAAC,SAAS;AACpC,QAAA,gBAAgB,GAAG,KAAK,CAAC,CAAC,SAAS;AACnC,QAAA,6BAA6B,GAAG,CAAC,CAAC;AAClC,QAAA,cAAc,GAAG;IAC1B,kBAAkB,EAAE,CAAC,KAAK,EAAE,oBAAoB;IAChD,WAAW,EAAE,CAAC,KAAK,EAAE,oBAAoB;IACzC,OAAO,EAAE,CAAC,KAAK,EAAE,oBAAoB;IACrC,qBAAqB,EAAE,CAAC,KAAK,EAAE,oBAAoB;CAC7C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/browser/cdp/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,KAAK,CAAC,CAAC,SAAS;AACzC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAC3B,QAAA,+BAA+B,GAAG,GAAG,CAAC;AACtC,QAAA,mBAAmB,GAAG,KAAK,CAAC,CAAC,SAAS;AACtC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,4BAA4B,GAAG,GAAG,CAAC"}
@@ -1,13 +1,19 @@
1
1
  import { CDPConnection } from "../connection";
2
2
  import { CDPEventEmitter } from "../emitter";
3
3
  import type { CDPCSSStyleSheetHeader, CDPSessionId, CDPStyleSheetId } from "../types";
4
+ export interface CSSRuleUsage {
5
+ styleSheetId: CDPStyleSheetId;
6
+ startOffset: number;
7
+ endOffset: number;
8
+ used: boolean;
9
+ }
4
10
  interface StopRuleUsageTrackingResponse {
5
- ruleUsage: Array<{
6
- styleSheetId: CDPStyleSheetId;
7
- startOffset: number;
8
- endOffset: number;
9
- used: boolean;
10
- }>;
11
+ ruleUsage: CSSRuleUsage[];
12
+ }
13
+ interface TakeCoverageDeltaResponse {
14
+ coverage: CSSRuleUsage[];
15
+ /** Monotonically increasing time, in seconds. */
16
+ timestamp: number;
11
17
  }
12
18
  export interface CssEvents {
13
19
  fontsUpdated: {
@@ -42,5 +48,7 @@ export declare class CDPCss extends CDPEventEmitter<CssEvents> {
42
48
  startRuleUsageTracking(sessionId: CDPSessionId): Promise<void>;
43
49
  /** @link https://chromedevtools.github.io/devtools-protocol/tot/CSS/#method-stopRuleUsageTracking */
44
50
  stopRuleUsageTracking(sessionId: CDPSessionId): Promise<StopRuleUsageTrackingResponse>;
51
+ /** @link https://chromedevtools.github.io/devtools-protocol/tot/CSS/#method-takeCoverageDelta */
52
+ takeCoverageDelta(sessionId: CDPSessionId): Promise<TakeCoverageDeltaResponse>;
45
53
  }
46
54
  export {};
@@ -30,6 +30,10 @@ class CDPCss extends emitter_1.CDPEventEmitter {
30
30
  async stopRuleUsageTracking(sessionId) {
31
31
  return this._connection.request("CSS.stopRuleUsageTracking", { sessionId });
32
32
  }
33
+ /** @link https://chromedevtools.github.io/devtools-protocol/tot/CSS/#method-takeCoverageDelta */
34
+ async takeCoverageDelta(sessionId) {
35
+ return this._connection.request("CSS.takeCoverageDelta", { sessionId });
36
+ }
33
37
  }
34
38
  exports.CDPCss = CDPCss;
35
39
  //# sourceMappingURL=css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/domains/css.ts"],"names":[],"mappings":";;;AACA,wCAA6C;AA4B7C,wEAAwE;AACxE,MAAa,MAAO,SAAQ,yBAA0B;IAGlD,YAAmB,UAAyB;QACxC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAED,yDAAyD;IACzD,sFAAsF;IACtF,KAAK,CAAC,MAAM,CAAC,SAAuB;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,yDAAyD;IACzD,uFAAuF;IACvF,KAAK,CAAC,OAAO,CAAC,SAAuB;QACjC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,iGAAiG;IACjG,KAAK,CAAC,iBAAiB,CAAC,SAAuB,EAAE,YAA6B;QAC1E,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,sGAAsG;IACtG,KAAK,CAAC,sBAAsB,CAAC,SAAuB;QAChD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,qGAAqG;IACrG,KAAK,CAAC,qBAAqB,CAAC,SAAuB;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAChF,CAAC;CACJ;AAnCD,wBAmCC"}
1
+ {"version":3,"file":"css.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/domains/css.ts"],"names":[],"mappings":";;;AACA,wCAA6C;AAoC7C,wEAAwE;AACxE,MAAa,MAAO,SAAQ,yBAA0B;IAGlD,YAAmB,UAAyB;QACxC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAED,yDAAyD;IACzD,sFAAsF;IACtF,KAAK,CAAC,MAAM,CAAC,SAAuB;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,yDAAyD;IACzD,uFAAuF;IACvF,KAAK,CAAC,OAAO,CAAC,SAAuB;QACjC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,iGAAiG;IACjG,KAAK,CAAC,iBAAiB,CAAC,SAAuB,EAAE,YAA6B;QAC1E,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,sGAAsG;IACtG,KAAK,CAAC,sBAAsB,CAAC,SAAuB;QAChD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,qGAAqG;IACrG,KAAK,CAAC,qBAAqB,CAAC,SAAuB;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,iGAAiG;IACjG,KAAK,CAAC,iBAAiB,CAAC,SAAuB;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5E,CAAC;CACJ;AAxCD,wBAwCC"}
@@ -36,7 +36,7 @@ interface GetScriptSourceResponse {
36
36
  }
37
37
  export interface DebuggerEvents {
38
38
  paused: {
39
- callFrames: CDPDebuggerCallFrame;
39
+ callFrames: CDPDebuggerCallFrame[];
40
40
  /** Location of console.profileEnd(). */
41
41
  reason: CDPDebuggerPausedReason;
42
42
  /** Object containing break-specific auxiliary properties. */