testplane 9.0.0-rc.4 → 9.0.1

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 (315) hide show
  1. package/build/package.json +15 -15
  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-bridge/index.js +7 -4
  106. package/build/src/browser/client-bridge/index.js.map +1 -1
  107. package/build/src/browser/client-scripts/browser-utils/build/bundle.compat.js +1 -1
  108. package/build/src/browser/client-scripts/browser-utils/build/bundle.native.js +1 -1
  109. package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/shared/lib.compat.js +9 -1
  110. package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/shared/lib.native.js +5 -1
  111. package/build/src/browser/client-scripts/calibrate.js +10 -3
  112. package/build/src/browser/client-scripts/rrweb-record.min.js +2 -2
  113. package/build/src/browser/client-scripts/screen-shooter/build/bundle.compat.js +35 -23
  114. package/build/src/browser/client-scripts/screen-shooter/build/bundle.native.js +20 -16
  115. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/implementation.js +21 -8
  116. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/operations.js +57 -29
  117. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/dom.js +25 -1
  118. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/lib.compat.js +9 -1
  119. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/lib.native.js +5 -1
  120. package/build/src/browser/commands/assert-view/errors/image-diff-error.d.ts +1 -0
  121. package/build/src/browser/commands/assert-view/index.js +41 -15
  122. package/build/src/browser/commands/assert-view/index.js.map +1 -1
  123. package/build/src/browser/commands/openAndWait.js +23 -26
  124. package/build/src/browser/commands/openAndWait.js.map +1 -1
  125. package/build/src/browser/commands/restoreState/index.js +19 -8
  126. package/build/src/browser/commands/restoreState/index.js.map +1 -1
  127. package/build/src/browser/commands/saveState/index.d.ts +1 -2
  128. package/build/src/browser/commands/saveState/index.js +8 -12
  129. package/build/src/browser/commands/saveState/index.js.map +1 -1
  130. package/build/src/browser/commands/switchToRepl.js +27 -9
  131. package/build/src/browser/commands/switchToRepl.js.map +1 -1
  132. package/build/src/browser/existing-browser.d.ts +2 -0
  133. package/build/src/browser/existing-browser.js +15 -0
  134. package/build/src/browser/existing-browser.js.map +1 -1
  135. package/build/src/browser/history/index.d.ts +8 -1
  136. package/build/src/browser/history/index.js +46 -17
  137. package/build/src/browser/history/index.js.map +1 -1
  138. package/build/src/browser/history/rrweb.d.ts +3 -1
  139. package/build/src/browser/history/rrweb.js +158 -29
  140. package/build/src/browser/history/rrweb.js.map +1 -1
  141. package/build/src/browser/isomorphic/tsconfig.tsbuildinfo +1 -1
  142. package/build/src/browser/new-browser.d.ts +2 -1
  143. package/build/src/browser/new-browser.js +9 -12
  144. package/build/src/browser/new-browser.js.map +1 -1
  145. package/build/src/browser/screen-shooter/composite-image/index.d.ts +23 -0
  146. package/build/src/browser/screen-shooter/composite-image/index.js +161 -14
  147. package/build/src/browser/screen-shooter/composite-image/index.js.map +1 -1
  148. package/build/src/browser/screen-shooter/debug.d.ts +3 -0
  149. package/build/src/browser/screen-shooter/debug.js +25 -0
  150. package/build/src/browser/screen-shooter/debug.js.map +1 -0
  151. package/build/src/browser/screen-shooter/elements-screen-shooter.d.ts +0 -1
  152. package/build/src/browser/screen-shooter/elements-screen-shooter.js +120 -61
  153. package/build/src/browser/screen-shooter/elements-screen-shooter.js.map +1 -1
  154. package/build/src/browser/screen-shooter/full-page-screen-shooter.d.ts +3 -2
  155. package/build/src/browser/screen-shooter/full-page-screen-shooter.js +19 -15
  156. package/build/src/browser/screen-shooter/full-page-screen-shooter.js.map +1 -1
  157. package/build/src/browser/screen-shooter/operations/index.d.ts +1 -0
  158. package/build/src/browser/screen-shooter/operations/index.js +3 -1
  159. package/build/src/browser/screen-shooter/operations/index.js.map +1 -1
  160. package/build/src/browser/screen-shooter/operations/pointer-events.js +7 -0
  161. package/build/src/browser/screen-shooter/operations/pointer-events.js.map +1 -1
  162. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.d.ts +6 -0
  163. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js +147 -0
  164. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js.map +1 -0
  165. package/build/src/browser/screen-shooter/viewport-screen-shooter.d.ts +2 -1
  166. package/build/src/browser/screen-shooter/viewport-screen-shooter.js +3 -5
  167. package/build/src/browser/screen-shooter/viewport-screen-shooter.js.map +1 -1
  168. package/build/src/browser/types.d.ts +6 -4
  169. package/build/src/browser/wsdriver/compression.d.ts +5 -0
  170. package/build/src/browser/wsdriver/compression.js +79 -0
  171. package/build/src/browser/wsdriver/compression.js.map +1 -0
  172. package/build/src/browser/wsdriver/constants.d.ts +11 -0
  173. package/build/src/browser/wsdriver/constants.js +15 -0
  174. package/build/src/browser/wsdriver/constants.js.map +1 -0
  175. package/build/src/browser/wsdriver/debug.d.ts +2 -0
  176. package/build/src/browser/wsdriver/debug.js +9 -0
  177. package/build/src/browser/wsdriver/debug.js.map +1 -0
  178. package/build/src/browser/wsdriver/error.d.ts +18 -0
  179. package/build/src/browser/wsdriver/error.js +36 -0
  180. package/build/src/browser/wsdriver/error.js.map +1 -0
  181. package/build/src/browser/wsdriver/index.d.ts +23 -0
  182. package/build/src/browser/wsdriver/index.js +261 -0
  183. package/build/src/browser/wsdriver/index.js.map +1 -0
  184. package/build/src/browser/wsdriver/request.d.ts +10 -0
  185. package/build/src/browser/wsdriver/request.js +58 -0
  186. package/build/src/browser/wsdriver/request.js.map +1 -0
  187. package/build/src/browser/wsdriver/response.d.ts +3 -0
  188. package/build/src/browser/wsdriver/response.js +111 -0
  189. package/build/src/browser/wsdriver/response.js.map +1 -0
  190. package/build/src/browser/wsdriver/types.d.ts +71 -0
  191. package/build/src/browser/wsdriver/types.js +27 -0
  192. package/build/src/browser/wsdriver/types.js.map +1 -0
  193. package/build/src/browser-installer/chromium/utils.js +1 -0
  194. package/build/src/browser-installer/chromium/utils.js.map +1 -1
  195. package/build/src/browser-installer/utils.js +50 -3
  196. package/build/src/browser-installer/utils.js.map +1 -1
  197. package/build/src/browser-pool/basic-pool.js +3 -1
  198. package/build/src/browser-pool/basic-pool.js.map +1 -1
  199. package/build/src/cli/commands/selectivity-merge-dumps/index.d.ts +2 -0
  200. package/build/src/cli/commands/selectivity-merge-dumps/index.js +50 -0
  201. package/build/src/cli/commands/selectivity-merge-dumps/index.js.map +1 -0
  202. package/build/src/cli/constants.d.ts +1 -0
  203. package/build/src/cli/constants.js +1 -0
  204. package/build/src/cli/constants.js.map +1 -1
  205. package/build/src/cli/index.js +13 -19
  206. package/build/src/cli/index.js.map +1 -1
  207. package/build/src/cli/repl-options.d.ts +3 -0
  208. package/build/src/cli/repl-options.js +16 -0
  209. package/build/src/cli/repl-options.js.map +1 -0
  210. package/build/src/config/browser-options.js +11 -3
  211. package/build/src/config/browser-options.js.map +1 -1
  212. package/build/src/config/defaults.d.ts +7 -2
  213. package/build/src/config/defaults.js +10 -5
  214. package/build/src/config/defaults.js.map +1 -1
  215. package/build/src/config/index.d.ts +10 -6
  216. package/build/src/config/index.js +67 -42
  217. package/build/src/config/index.js.map +1 -1
  218. package/build/src/config/types.d.ts +59 -14
  219. package/build/src/config/types.js +15 -5
  220. package/build/src/config/types.js.map +1 -1
  221. package/build/src/config/utils.d.ts +2 -2
  222. package/build/src/config/utils.js +11 -6
  223. package/build/src/config/utils.js.map +1 -1
  224. package/build/src/constants/config.d.ts +0 -1
  225. package/build/src/constants/config.js +1 -2
  226. package/build/src/constants/config.js.map +1 -1
  227. package/build/src/constants/png.d.ts +1 -0
  228. package/build/src/constants/repl.d.ts +2 -0
  229. package/build/src/constants/repl.js +6 -0
  230. package/build/src/constants/repl.js.map +1 -0
  231. package/build/src/dev-server/index.d.ts +1 -1
  232. package/build/src/dev-server/index.js +1 -1
  233. package/build/src/dev-server/index.js.map +1 -1
  234. package/build/src/globals.d.ts +7 -0
  235. package/build/src/globals.js +10 -0
  236. package/build/src/globals.js.map +1 -0
  237. package/build/src/image.d.ts +6 -1
  238. package/build/src/image.js +56 -2
  239. package/build/src/image.js.map +1 -1
  240. package/build/src/index.d.ts +3 -13
  241. package/build/src/index.js +5 -1
  242. package/build/src/index.js.map +1 -1
  243. package/build/src/runner/browser-env/vite/browser-modules/driver.js +6 -8
  244. package/build/src/runner/browser-env/vite/browser-modules/driver.js.map +1 -1
  245. package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
  246. package/build/src/runner/browser-env/vite/browser-modules/types.d.ts +1 -1
  247. package/build/src/runner/index.js +1 -0
  248. package/build/src/runner/index.js.map +1 -1
  249. package/build/src/runner/suite-monitor.d.ts +1 -1
  250. package/build/src/runner/test-runner/regular-test-runner.js +2 -2
  251. package/build/src/runner/test-runner/regular-test-runner.js.map +1 -1
  252. package/build/src/signal-handler.d.ts +2 -2
  253. package/build/src/signal-handler.js +24 -11
  254. package/build/src/signal-handler.js.map +1 -1
  255. package/build/src/test-reader/mocha-reader/mocha-event-bus.d.ts +1 -1
  256. package/build/src/test-reader/test-parser.js +3 -3
  257. package/build/src/test-reader/test-parser.js.map +1 -1
  258. package/build/src/testplane.d.ts +4 -5
  259. package/build/src/testplane.js +20 -10
  260. package/build/src/testplane.js.map +1 -1
  261. package/build/src/types/globals.d.ts +16 -0
  262. package/build/src/types/globals.js +3 -0
  263. package/build/src/types/globals.js.map +1 -0
  264. package/build/src/types/index.d.ts +2 -3
  265. package/build/src/utils/crypto.d.ts +1 -0
  266. package/build/src/utils/crypto.js +2 -1
  267. package/build/src/utils/crypto.js.map +1 -1
  268. package/build/src/utils/eight-bit-rgba-to-png.d.ts +1 -0
  269. package/build/src/utils/repl-instrumentation/index.d.ts +1 -0
  270. package/build/src/utils/repl-instrumentation/index.js +46 -0
  271. package/build/src/utils/repl-instrumentation/index.js.map +1 -0
  272. package/build/src/utils/repl-instrumentation/typescript.d.ts +7 -0
  273. package/build/src/utils/repl-instrumentation/typescript.js +307 -0
  274. package/build/src/utils/repl-instrumentation/typescript.js.map +1 -0
  275. package/build/src/utils/repl-module-hooks.d.ts +1 -0
  276. package/build/src/utils/repl-module-hooks.js +181 -0
  277. package/build/src/utils/repl-module-hooks.js.map +1 -0
  278. package/build/src/utils/workers-registry.d.ts +2 -2
  279. package/build/src/utils/workers-registry.js +1 -0
  280. package/build/src/utils/workers-registry.js.map +1 -1
  281. package/build/src/vendors/expect-webdriverio/matchers-overrides.d.ts +49 -0
  282. package/build/src/vendors/expect-webdriverio/matchers-overrides.js +3 -0
  283. package/build/src/vendors/expect-webdriverio/matchers-overrides.js.map +1 -0
  284. package/build/src/worker/runner/browser-pool.js +4 -1
  285. package/build/src/worker/runner/browser-pool.js.map +1 -1
  286. package/build/src/worker/runner/index.js +6 -3
  287. package/build/src/worker/runner/index.js.map +1 -1
  288. package/build/src/worker/runner/sequence-test-parser.js +5 -7
  289. package/build/src/worker/runner/sequence-test-parser.js.map +1 -1
  290. package/build/src/worker/runner/test-runner/capture-fail-screenshot.js +2 -3
  291. package/build/src/worker/runner/test-runner/capture-fail-screenshot.js.map +1 -1
  292. package/build/src/worker/runner/test-runner/execution-thread.d.ts +0 -1
  293. package/build/src/worker/runner/test-runner/execution-thread.js +0 -5
  294. package/build/src/worker/runner/test-runner/execution-thread.js.map +1 -1
  295. package/build/src/worker/runner/test-runner/index.d.ts +1 -0
  296. package/build/src/worker/runner/test-runner/index.js +47 -2
  297. package/build/src/worker/runner/test-runner/index.js.map +1 -1
  298. package/build/src/worker/testplane-facade.js +5 -3
  299. package/build/src/worker/testplane-facade.js.map +1 -1
  300. package/build/src/worker/testplane.d.ts +1 -0
  301. package/build/src/worker/testplane.js +4 -1
  302. package/build/src/worker/testplane.js.map +1 -1
  303. package/build/src/ws-connection/constants.d.ts +13 -0
  304. package/build/src/ws-connection/constants.js +17 -0
  305. package/build/src/ws-connection/constants.js.map +1 -0
  306. package/build/src/ws-connection/error.d.ts +52 -0
  307. package/build/src/ws-connection/error.js +84 -0
  308. package/build/src/ws-connection/error.js.map +1 -0
  309. package/build/src/ws-connection/index.d.ts +83 -0
  310. package/build/src/ws-connection/index.js +397 -0
  311. package/build/src/ws-connection/index.js.map +1 -0
  312. package/build/src/ws-connection/utils.d.ts +6 -0
  313. package/build/src/ws-connection/utils.js +9 -0
  314. package/build/src/ws-connection/utils.js.map +1 -0
  315. package/package.json +15 -15
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.waitForSelectorsToSettle = void 0;
7
+ const node_timers_1 = require("node:timers");
8
+ const debug_1 = __importDefault(require("debug"));
9
+ const debug = (0, debug_1.default)("testplane:screenshots:selectors-settle");
10
+ const SELECTORS_SETTLE_BROWSER_TIMEOUT_MS = 3000;
11
+ const SELECTORS_SETTLE_FALLBACK_INTERVAL_MS = 50;
12
+ const SELECTORS_SETTLE_FALLBACK_ATTEMPTS = 5;
13
+ async function waitForSelectorsToSettle(browser, selectors, options = {}) {
14
+ try {
15
+ const settleResult = await waitForSelectorsToSettleInBrowser(browser, selectors, options);
16
+ if (settleResult.success) {
17
+ return;
18
+ }
19
+ debug("Browser-side waitForSelectorsToSettle cannot run, using Node-side polling");
20
+ }
21
+ catch (err) {
22
+ const scriptTimeoutError = err;
23
+ const scriptTimeoutErrorText = err && typeof err === "object"
24
+ ? [scriptTimeoutError.name, scriptTimeoutError.message, scriptTimeoutError.error].join(" ")
25
+ : "";
26
+ if (!/script timeout/i.test(scriptTimeoutErrorText)) {
27
+ throw err;
28
+ }
29
+ debug("Browser-side waitForSelectorsToSettle hit script timeout, using Node-side polling");
30
+ }
31
+ await waitForSelectorsToSettleInNode(browser, selectors);
32
+ }
33
+ exports.waitForSelectorsToSettle = waitForSelectorsToSettle;
34
+ async function waitForSelectorsToSettleInBrowser(browser, selectors, options) {
35
+ if (options.needsCompatLib) {
36
+ return { success: false };
37
+ }
38
+ const originalScriptTimeout = typeof browser.getTimeouts === "function" ? (await browser.getTimeouts())?.script : undefined;
39
+ const shouldRestoreScriptTimeout = typeof originalScriptTimeout === "number";
40
+ let executionError = null;
41
+ let result;
42
+ if (shouldRestoreScriptTimeout) {
43
+ await browser.setTimeout({ script: SELECTORS_SETTLE_BROWSER_TIMEOUT_MS });
44
+ }
45
+ else {
46
+ debug("Browser does not report script timeout, running browser-side polling without timeout override");
47
+ }
48
+ try {
49
+ result = await browser.execute(async (selectors) => {
50
+ let setTimeoutSource = "";
51
+ try {
52
+ setTimeoutSource = typeof setTimeout === "function" ? Function.prototype.toString.call(setTimeout) : "";
53
+ }
54
+ catch {
55
+ return { success: false };
56
+ }
57
+ if (!setTimeoutSource.includes("[native code]")) {
58
+ return { success: false };
59
+ }
60
+ const PAGE_SETTLE_MAX_WAIT_MS = 50;
61
+ const PAGE_SETTLE_MAX_ITERATIONS = 500;
62
+ const PAGE_SETTLE_MATCHES_THRESHOLD = 3;
63
+ const startedAt = performance.now();
64
+ let iterations = 0;
65
+ let matches = 0;
66
+ let lastBoundingClientRects = selectors.map(selector => {
67
+ const element = document.querySelector(selector);
68
+ return element ? element.getBoundingClientRect() : null;
69
+ });
70
+ while (performance.now() - startedAt < PAGE_SETTLE_MAX_WAIT_MS &&
71
+ iterations < PAGE_SETTLE_MAX_ITERATIONS &&
72
+ matches < PAGE_SETTLE_MATCHES_THRESHOLD) {
73
+ const currentBoundingClientRects = selectors.map(selector => {
74
+ const element = document.querySelector(selector);
75
+ return element ? element.getBoundingClientRect() : null;
76
+ });
77
+ if (currentBoundingClientRects.every((rect, index) => {
78
+ const lastRect = lastBoundingClientRects[index];
79
+ if (!rect || !lastRect) {
80
+ return rect === lastRect;
81
+ }
82
+ return rect.top === lastRect.top && rect.height === lastRect.height;
83
+ })) {
84
+ matches++;
85
+ }
86
+ else {
87
+ matches = 0;
88
+ }
89
+ lastBoundingClientRects = currentBoundingClientRects;
90
+ iterations++;
91
+ await new Promise(resolve => setTimeout(resolve, 5));
92
+ }
93
+ return { success: true };
94
+ }, selectors);
95
+ }
96
+ catch (err) {
97
+ executionError = err;
98
+ }
99
+ if (shouldRestoreScriptTimeout) {
100
+ try {
101
+ await browser.setTimeout({ script: originalScriptTimeout });
102
+ }
103
+ catch (restoreError) {
104
+ if (executionError) {
105
+ debug("Failed to restore original script timeout after selectors settle error: %s", restoreError instanceof Error ? restoreError.message : String(restoreError));
106
+ }
107
+ else {
108
+ throw restoreError;
109
+ }
110
+ }
111
+ }
112
+ if (executionError) {
113
+ throw executionError;
114
+ }
115
+ return result ?? { success: true };
116
+ }
117
+ async function waitForSelectorsToSettleInNode(browser, selectors) {
118
+ const PAGE_SETTLE_MATCHES_THRESHOLD = 3;
119
+ let matches = 0;
120
+ let lastBoundingClientRects;
121
+ for (let attempt = 0; attempt <= SELECTORS_SETTLE_FALLBACK_ATTEMPTS && matches < PAGE_SETTLE_MATCHES_THRESHOLD; attempt++) {
122
+ if (lastBoundingClientRects) {
123
+ await new Promise(resolve => {
124
+ const timeoutId = (0, node_timers_1.setTimeout)(resolve, SELECTORS_SETTLE_FALLBACK_INTERVAL_MS);
125
+ timeoutId.unref();
126
+ });
127
+ }
128
+ const previousBoundingClientRects = lastBoundingClientRects;
129
+ const currentBoundingClientRects = await browser.execute(function (selectors) {
130
+ return selectors.map(function (selector) {
131
+ const element = document.querySelector(selector);
132
+ const rect = element ? element.getBoundingClientRect() : null;
133
+ return rect ? { top: rect.top, height: rect.height } : null;
134
+ });
135
+ }, selectors);
136
+ if (previousBoundingClientRects) {
137
+ matches = currentBoundingClientRects.every((rect, index) => {
138
+ const previousRect = previousBoundingClientRects[index];
139
+ return rect?.top === previousRect?.top && rect?.height === previousRect?.height;
140
+ })
141
+ ? matches + 1
142
+ : 0;
143
+ }
144
+ lastBoundingClientRects = currentBoundingClientRects;
145
+ }
146
+ }
147
+ //# sourceMappingURL=wait-for-selectors-to-settle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-selectors-to-settle.js","sourceRoot":"","sources":["../../../../../src/browser/screen-shooter/operations/wait-for-selectors-to-settle.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Image } from "../../image";
2
2
  import type { DisableHoverMode } from "../isomorphic/types";
3
3
  import type { WdioBrowser } from "../../types";
4
- import { Camera } from "../camera";
4
+ import { Camera, type CropMargins } from "../camera";
5
5
  import type * as browserSideScreenshooterImplementation from "../client-scripts/screen-shooter/implementation";
6
6
  import { ClientBridge } from "../client-bridge";
7
7
  interface ScreenShooterBrowserProperties {
@@ -21,6 +21,7 @@ interface ViewportCaptureOpts {
21
21
  screenshotDelay?: number;
22
22
  disableAnimation?: boolean;
23
23
  disableHover?: DisableHoverMode;
24
+ cropMargins?: CropMargins;
24
25
  }
25
26
  interface ViewportCaptureResult {
26
27
  image: Image;
@@ -1,15 +1,12 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.ViewportScreenShooter = void 0;
7
- const debug_1 = __importDefault(require("debug"));
8
4
  const client_bridge_1 = require("../client-bridge");
9
5
  const types_1 = require("../isomorphic/types");
10
6
  const operations_1 = require("./operations");
11
7
  const history_1 = require("../history");
12
- const debug = (0, debug_1.default)("testplane:screenshots:viewport-screen-shooter");
8
+ const debug_1 = require("./debug");
9
+ const debug = (0, debug_1.makeVerboseScreenshotsDebug)("testplane:screenshots:viewport-screen-shooter");
13
10
  class ViewportScreenShooter {
14
11
  static async create(params) {
15
12
  const browserSideScreenshooter = await client_bridge_1.ClientBridge.create(params.browser, "screen-shooter", { needsCompatLib: params.browserProperties.needsCompatLib });
@@ -66,6 +63,7 @@ class ViewportScreenShooter {
66
63
  viewportSize,
67
64
  viewportOffset,
68
65
  screenshotDelay: opts.screenshotDelay,
66
+ cropMargins: opts.cropMargins,
69
67
  });
70
68
  return {
71
69
  image,
@@ -1 +1 @@
1
- {"version":3,"file":"viewport-screen-shooter.js","sourceRoot":"","sources":["../../../../src/browser/screen-shooter/viewport-screen-shooter.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA8B;AAM9B,oDAAgD;AAChD,+CAAyD;AACzD,6CAMsB;AACtB,wCAA+C;AAE/C,MAAM,KAAK,GAAG,IAAA,eAAS,EAAC,+CAA+C,CAAC,CAAC;AA6BzE,MAAa,qBAAqB;IAM9B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAwC;QACxD,MAAM,wBAAwB,GAAG,MAAM,4BAAY,CAAC,MAAM,CACtD,MAAM,CAAC,OAAO,EACd,gBAAgB,EAChB,EAAE,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAC9D,CAAC;QAEF,OAAO,IAAI,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,wBAAwB,EAAmC;QACzG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,yBAAyB,GAAG,wBAAwB,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA4B,EAAE;QACxC,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACxF,OAAO,CAAC,IAAI,CAAC,yEAAyE,GAAG,EAAE,CAAC,CAAC;YACjG,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAyB;QAChD,MAAM,aAAa,GAAG,MAAM,IAAA,2BAAiB,EAAC,EAAE,EAAE,GAAG,EAAE,CACnD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAC7D;gBACI,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,mBAAmB;gBAC1D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,YAAY,EAAE,IAAI,CAAC,YAAY;aAClC;SACJ,CAAC,CACL,CAAC;QAEF,KAAK,CAAC,oCAAoC,EAAE;YACxC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,mBAAmB;YAC1D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,CAAC;QACH,KAAK,CAAC,sCAAsC,EAAE,aAAa,CAAC,CAAC;QAE7D,IAAI,IAAA,0BAAkB,EAAC,aAAa,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACX,iDAAiD,aAAa,CAAC,SAAS,MAAM,aAAa,CAAC,OAAO,EAAE,CACxG,CAAC;QACN,CAAC;QAED,0DAA0D;QAC1D,IAAI,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvE,MAAM,IAAA,oCAAuB,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,IAAA,wCAA2B,EAAC,IAAI,CAAC,QAAQ,EAAE;YAC7C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,qBAAqB,EAAE,aAAa,CAAC,qBAAqB;SAC7D,CAAC,CAAC;QAEH,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC;QAEvD,KAAK,CAAC,0EAA0E,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QAEhH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAClD,YAAY;YACZ,cAAc;YACd,eAAe,EAAE,IAAI,CAAC,eAAe;SACxC,CAAC,CAAC;QAEH,OAAO;YACH,KAAK;YACL,IAAI,EAAE;gBACF,YAAY,EAAE,aAAa,CAAC,YAAY;gBACxC,UAAU,EAAE,aAAa,CAAC,UAAU;aACvC;SACJ,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAyB;QAC5C,OAAO,IAAA,2BAAiB,EAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,IAAA,2BAAc,EAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAErD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM,IAAA,kCAAqB,EACvB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,yBAAyB,EAC9B,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAC9C,CAAC;YACN,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;gBACrD,MAAM,IAAA,iCAAoB,EAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAzGD,sDAyGC"}
1
+ {"version":3,"file":"viewport-screen-shooter.js","sourceRoot":"","sources":["../../../../src/browser/screen-shooter/viewport-screen-shooter.ts"],"names":[],"mappings":";;;AAKA,oDAAgD;AAChD,+CAAyD;AACzD,6CAMsB;AACtB,wCAA+C;AAC/C,mCAAsD;AAEtD,MAAM,KAAK,GAAG,IAAA,mCAA2B,EAAC,+CAA+C,CAAC,CAAC;AA8B3F,MAAa,qBAAqB;IAM9B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAwC;QACxD,MAAM,wBAAwB,GAAG,MAAM,4BAAY,CAAC,MAAM,CACtD,MAAM,CAAC,OAAO,EACd,gBAAgB,EAChB,EAAE,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAC9D,CAAC;QAEF,OAAO,IAAI,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,wBAAwB,EAAmC;QACzG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,yBAAyB,GAAG,wBAAwB,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA4B,EAAE;QACxC,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACxF,OAAO,CAAC,IAAI,CAAC,yEAAyE,GAAG,EAAE,CAAC,CAAC;YACjG,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAyB;QAChD,MAAM,aAAa,GAAG,MAAM,IAAA,2BAAiB,EAAC,EAAE,EAAE,GAAG,EAAE,CACnD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAC7D;gBACI,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,mBAAmB;gBAC1D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,YAAY,EAAE,IAAI,CAAC,YAAY;aAClC;SACJ,CAAC,CACL,CAAC;QAEF,KAAK,CAAC,oCAAoC,EAAE;YACxC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,mBAAmB;YAC1D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,CAAC;QACH,KAAK,CAAC,sCAAsC,EAAE,aAAa,CAAC,CAAC;QAE7D,IAAI,IAAA,0BAAkB,EAAC,aAAa,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACX,iDAAiD,aAAa,CAAC,SAAS,MAAM,aAAa,CAAC,OAAO,EAAE,CACxG,CAAC;QACN,CAAC;QAED,0DAA0D;QAC1D,IAAI,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvE,MAAM,IAAA,oCAAuB,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,IAAA,wCAA2B,EAAC,IAAI,CAAC,QAAQ,EAAE;YAC7C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,qBAAqB,EAAE,aAAa,CAAC,qBAAqB;SAC7D,CAAC,CAAC;QAEH,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC;QAEvD,KAAK,CAAC,0EAA0E,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QAEhH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAClD,YAAY;YACZ,cAAc;YACd,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW;SAChC,CAAC,CAAC;QAEH,OAAO;YACH,KAAK;YACL,IAAI,EAAE;gBACF,YAAY,EAAE,aAAa,CAAC,YAAY;gBACxC,UAAU,EAAE,aAAa,CAAC,UAAU;aACvC;SACJ,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAyB;QAC5C,OAAO,IAAA,2BAAiB,EAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,IAAA,2BAAc,EAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAErD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM,IAAA,kCAAqB,EACvB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,yBAAyB,EAC9B,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAC9C,CAAC;YACN,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;gBACrD,MAAM,IAAA,iCAAoB,EAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA1GD,sDA0GC"}
@@ -87,12 +87,13 @@ declare global {
87
87
  * await this.browser.url('some/url');
88
88
  * await this.browser.assertView('plain', '.button', {
89
89
  * ignoreElements: ['.link'],
90
- * tolerance: 2.3,
90
+ * tolerance: 3.0,
91
91
  * antialiasingTolerance: 4,
92
92
  * allowViewportOverflow: true,
93
93
  * captureElementFromTop: true,
94
94
  * compositeImage: true,
95
95
  * screenshotDelay: 600,
96
+ * cropMargins: { top: 2, right: 4, bottom: 2, left: 4 },
96
97
  * selectorToScroll: '.modal'
97
98
  * });
98
99
  *});
@@ -102,7 +103,7 @@ declare global {
102
103
  * @param selectors DOM-node selector that you need to capture
103
104
  * @param opts additional options, currently available:
104
105
  * "ignoreElements", "tolerance", "antialiasingTolerance", "allowViewportOverflow", "captureElementFromTop",
105
- * "compositeImage", "screenshotDelay", "selectorToScroll"
106
+ * "compositeImage", "screenshotDelay", "cropMargins", "selectorToScroll"
106
107
  */
107
108
  assertView: AssertViewCommand;
108
109
  /**
@@ -160,12 +161,13 @@ declare global {
160
161
  * const button = await this.browser.$('.button');
161
162
  * await button.assertView('plain', {
162
163
  * ignoreElements: ['.link'],
163
- * tolerance: 2.3,
164
+ * tolerance: 3.0,
164
165
  * antialiasingTolerance: 4,
165
166
  * allowViewportOverflow: true,
166
167
  * captureElementFromTop: true,
167
168
  * compositeImage: true,
168
169
  * screenshotDelay: 600,
170
+ * cropMargins: { top: 2, right: 4, bottom: 2, left: 4 },
169
171
  * selectorToScroll: '.modal'
170
172
  * });
171
173
  *});
@@ -174,7 +176,7 @@ declare global {
174
176
  * @param state state name, should be unique within one test
175
177
  * @param opts additional options, currently available:
176
178
  * "ignoreElements", "tolerance", "antialiasingTolerance", "allowViewportOverflow", "captureElementFromTop",
177
- * "compositeImage", "screenshotDelay", "selectorToScroll"
179
+ * "compositeImage", "screenshotDelay", "cropMargins", "selectorToScroll"
178
180
  */
179
181
  assertView: AssertViewElementCommand;
180
182
  moveCursorTo: MoveCursorToCommand;
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { WsDriverCompressionType } from "./types";
4
+ export declare const getDecompressed: (compressedPayload: Buffer, compressionType: WsDriverCompressionType) => Promise<Buffer>;
5
+ export declare const getCompressed: (decompressedPayload: Buffer, compressionType: WsDriverCompressionType) => Promise<Buffer>;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getCompressed = exports.getDecompressed = void 0;
7
+ const node_zlib_1 = __importDefault(require("node:zlib"));
8
+ const types_1 = require("./types");
9
+ const getDecompressed = async (compressedPayload, compressionType) => {
10
+ if (compressionType === types_1.WsDriverCompression.None) {
11
+ return compressedPayload;
12
+ }
13
+ if (compressionType === types_1.WsDriverCompression.GZIP) {
14
+ return new Promise((resolve, reject) => {
15
+ node_zlib_1.default.gunzip(compressedPayload, (err, result) => {
16
+ if (err) {
17
+ reject(err);
18
+ }
19
+ else {
20
+ resolve(result);
21
+ }
22
+ });
23
+ });
24
+ }
25
+ if (compressionType === types_1.WsDriverCompression.ZSTD) {
26
+ if (!("zstd" in process.versions) || !("zstdDecompress" in node_zlib_1.default)) {
27
+ throw new Error("Can't decompress zstd compressed message");
28
+ }
29
+ const typedZstdDecompress = node_zlib_1.default.zstdDecompress;
30
+ return new Promise((resolve, reject) => {
31
+ typedZstdDecompress(compressedPayload, (err, result) => {
32
+ if (err) {
33
+ reject(err);
34
+ }
35
+ else {
36
+ resolve(result);
37
+ }
38
+ });
39
+ });
40
+ }
41
+ throw new Error(`Unknown compression type: "${compressionType}"`);
42
+ };
43
+ exports.getDecompressed = getDecompressed;
44
+ const getCompressed = async (decompressedPayload, compressionType) => {
45
+ if (compressionType === types_1.WsDriverCompression.None) {
46
+ return decompressedPayload;
47
+ }
48
+ if (compressionType === types_1.WsDriverCompression.GZIP) {
49
+ return new Promise((resolve, reject) => {
50
+ node_zlib_1.default.gzip(decompressedPayload, { level: 4 }, (err, result) => {
51
+ if (err) {
52
+ reject(err);
53
+ }
54
+ else {
55
+ resolve(result);
56
+ }
57
+ });
58
+ });
59
+ }
60
+ if (compressionType === types_1.WsDriverCompression.ZSTD) {
61
+ if (!("zstd" in process.versions) || !("zstdCompress" in node_zlib_1.default)) {
62
+ throw new Error("Can't compress payload with zstd");
63
+ }
64
+ const typedZstdCompress = node_zlib_1.default.zstdCompress;
65
+ return new Promise((resolve, reject) => {
66
+ typedZstdCompress(decompressedPayload, (err, result) => {
67
+ if (err) {
68
+ reject(err);
69
+ }
70
+ else {
71
+ resolve(result);
72
+ }
73
+ });
74
+ });
75
+ }
76
+ throw new Error(`Unknown compression type: "${compressionType}"`);
77
+ };
78
+ exports.getCompressed = getCompressed;
79
+ //# sourceMappingURL=compression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.js","sourceRoot":"","sources":["../../../../src/browser/wsdriver/compression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const WSD_CONNECTION_TIMEOUT = 15000;
2
+ export declare const WSD_CONNECTION_RETRIES = 3;
3
+ export declare const WSD_CONNECTION_RETRY_BASE_DELAY = 500;
4
+ export declare const WSD_REQUEST_RETRIES = 3;
5
+ export declare const WSD_REQUEST_RETRY_BASE_DELAY = 500;
6
+ export declare const WSD_COMPRESSION_THRESHOLD_BYTES = 1024;
7
+ export declare const WSD_ACCEPT_ENCODING_HEADER = "wsdriver-accept-encoding";
8
+ export declare const WSD_COMPRESSION_TYPE: {
9
+ readonly ZSTD: "zstd";
10
+ readonly GZIP: "gzip";
11
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WSD_COMPRESSION_TYPE = exports.WSD_ACCEPT_ENCODING_HEADER = exports.WSD_COMPRESSION_THRESHOLD_BYTES = exports.WSD_REQUEST_RETRY_BASE_DELAY = exports.WSD_REQUEST_RETRIES = exports.WSD_CONNECTION_RETRY_BASE_DELAY = exports.WSD_CONNECTION_RETRIES = exports.WSD_CONNECTION_TIMEOUT = void 0;
4
+ exports.WSD_CONNECTION_TIMEOUT = 15000; // 15 sec
5
+ exports.WSD_CONNECTION_RETRIES = 3;
6
+ exports.WSD_CONNECTION_RETRY_BASE_DELAY = 500;
7
+ exports.WSD_REQUEST_RETRIES = 3;
8
+ exports.WSD_REQUEST_RETRY_BASE_DELAY = 500;
9
+ exports.WSD_COMPRESSION_THRESHOLD_BYTES = 1024;
10
+ exports.WSD_ACCEPT_ENCODING_HEADER = "wsdriver-accept-encoding";
11
+ exports.WSD_COMPRESSION_TYPE = {
12
+ ZSTD: "zstd",
13
+ GZIP: "gzip",
14
+ };
15
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/browser/wsdriver/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;AAEtC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,4BAA4B,GAAG,GAAG,CAAC;AAEnC,QAAA,+BAA+B,GAAG,IAAI,CAAC;AACvC,QAAA,0BAA0B,GAAG,0BAA0B,CAAC;AAExD,QAAA,oBAAoB,GAAG;IAChC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ import debugModule from "debug";
2
+ export declare const debugWSDriver: debugModule.Debugger;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.debugWSDriver = void 0;
7
+ const debug_1 = __importDefault(require("debug"));
8
+ exports.debugWSDriver = (0, debug_1.default)("testplane:wsdriver");
9
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../../src/browser/wsdriver/debug.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAgC;AAEnB,QAAA,aAAa,GAAG,IAAA,eAAW,EAAC,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { WsError, WsConnectionEstablishmentError, WsConnectionTerminatedError, WsTimeoutError, WsConnectionBreakError } from "../../ws-connection/error";
2
+ export declare class WSDriverError extends WsError {
3
+ isRetryable(): boolean;
4
+ }
5
+ export declare class WSDriverRequestAgentEstablishmentError extends WsConnectionEstablishmentError {
6
+ }
7
+ export declare class WSDriverRequestAgentBreakError extends WsConnectionBreakError {
8
+ }
9
+ export declare class WSDriverRequestAgentTerminatedError extends WsConnectionTerminatedError {
10
+ }
11
+ export declare class WSDriverRequestAgentTimeoutError extends WsTimeoutError {
12
+ }
13
+ export declare class WSDriverRequestTimeoutError extends WsTimeoutError {
14
+ isRetryable(): boolean;
15
+ }
16
+ export declare class WSDriverRequestError extends WsError {
17
+ isRetryable(): boolean;
18
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WSDriverRequestError = exports.WSDriverRequestTimeoutError = exports.WSDriverRequestAgentTimeoutError = exports.WSDriverRequestAgentTerminatedError = exports.WSDriverRequestAgentBreakError = exports.WSDriverRequestAgentEstablishmentError = exports.WSDriverError = void 0;
4
+ const error_1 = require("../../ws-connection/error");
5
+ class WSDriverError extends error_1.WsError {
6
+ isRetryable() {
7
+ return false;
8
+ }
9
+ }
10
+ exports.WSDriverError = WSDriverError;
11
+ class WSDriverRequestAgentEstablishmentError extends error_1.WsConnectionEstablishmentError {
12
+ }
13
+ exports.WSDriverRequestAgentEstablishmentError = WSDriverRequestAgentEstablishmentError;
14
+ class WSDriverRequestAgentBreakError extends error_1.WsConnectionBreakError {
15
+ }
16
+ exports.WSDriverRequestAgentBreakError = WSDriverRequestAgentBreakError;
17
+ class WSDriverRequestAgentTerminatedError extends error_1.WsConnectionTerminatedError {
18
+ }
19
+ exports.WSDriverRequestAgentTerminatedError = WSDriverRequestAgentTerminatedError;
20
+ class WSDriverRequestAgentTimeoutError extends error_1.WsTimeoutError {
21
+ }
22
+ exports.WSDriverRequestAgentTimeoutError = WSDriverRequestAgentTimeoutError;
23
+ class WSDriverRequestTimeoutError extends error_1.WsTimeoutError {
24
+ isRetryable() {
25
+ // Webdriverio manages timeouted requests on its own
26
+ return false;
27
+ }
28
+ }
29
+ exports.WSDriverRequestTimeoutError = WSDriverRequestTimeoutError;
30
+ class WSDriverRequestError extends error_1.WsError {
31
+ isRetryable() {
32
+ return true;
33
+ }
34
+ }
35
+ exports.WSDriverRequestError = WSDriverRequestError;
36
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/browser/wsdriver/error.ts"],"names":[],"mappings":";;;AAAA,qDAMmC;AAEnC,MAAa,aAAc,SAAQ,eAAO;IACtC,WAAW;QACP,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAJD,sCAIC;AAED,MAAa,sCAAuC,SAAQ,sCAA8B;CAAG;AAA7F,wFAA6F;AAC7F,MAAa,8BAA+B,SAAQ,8BAAsB;CAAG;AAA7E,wEAA6E;AAC7E,MAAa,mCAAoC,SAAQ,mCAA2B;CAAG;AAAvF,kFAAuF;AACvF,MAAa,gCAAiC,SAAQ,sBAAc;CAAG;AAAvE,4EAAuE;AACvE,MAAa,2BAA4B,SAAQ,sBAAc;IAC3D,WAAW;QACP,oDAAoD;QACpD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AALD,kEAKC;AACD,MAAa,oBAAqB,SAAQ,eAAO;IAC7C,WAAW;QACP,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAJD,oDAIC"}
@@ -0,0 +1,23 @@
1
+ import { RequestWsDriverOptions, RequestWsDriverResponse } from "./types";
2
+ import { BrowserConfig } from "../../config/browser-config";
3
+ export declare class WSDriverRequestAgent {
4
+ private readonly _wsConnection;
5
+ private _clientSupportedCompressionTypes;
6
+ private _serverSupportedCompressionType?;
7
+ private _sessionId;
8
+ private _sessionPrefix;
9
+ private constructor();
10
+ /** @description Creates WSDriverRequestAgent without establishing it */
11
+ static create({ sessionId, sessionCaps, headers, browserConfig, }: {
12
+ sessionId: string;
13
+ sessionCaps: WebdriverIO.Capabilities;
14
+ headers: Record<string, string>;
15
+ browserConfig: BrowserConfig;
16
+ }): WSDriverRequestAgent;
17
+ close(): void;
18
+ private _onMessage;
19
+ private _getRequestCompressionType;
20
+ private _getConnectionProperties;
21
+ /** @description Performs high-level WSDriver request with timeout */
22
+ request(url: URL, options: RequestWsDriverOptions): Promise<RequestWsDriverResponse>;
23
+ }