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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testplane",
3
- "version": "9.0.0-rc.4",
3
+ "version": "9.0.1",
4
4
  "description": "Tests framework based on mocha and wdio",
5
5
  "main": "build/src/index.js",
6
6
  "files": [
@@ -30,14 +30,16 @@
30
30
  "lint": "eslint --cache . && prettier --check .",
31
31
  "reformat": "eslint --fix . && prettier --write .",
32
32
  "prettier-watch": "onchange '**' --exclude-path .prettierignore -- prettier --write {{changed}}",
33
- "test-unit": "_mocha \"test/!(integration|e2e|browser-env)/**/*.[jt]s\"",
34
- "test-unit:coverage": "c8 --all --src=src --reporter=html --reporter=text-summary --exclude=\"build/**\" --exclude=\"test/**\" --exclude=\"**/*.d.ts\" _mocha \"test/!(integration|browser-env|e2e)/**/*.[jt]s\"",
33
+ "test-unit": "node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha \"test/!(integration|e2e|browser-env|fixtures)/**/*.[jt]s\"",
34
+ "test-unit:coverage": "c8 --all --src=src --reporter=html --reporter=text-summary --exclude=\"build/**\" --exclude=\"test/**\" --exclude=\"**/*.d.ts\" node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha \"test/!(integration|browser-env|e2e)/**/*.[jt]s\"",
35
35
  "test-unit:generate-fixtures": "TS_NODE_PROJECT=test/tsconfig.json node -r ts-node/register -r tsconfig-paths/register test/src/browser/screen-shooter/composite-image/fixtures/generate.ts generate",
36
36
  "test": "npm run test-unit && npm run check-types && npm run lint",
37
- "test-integration": "TS_NODE_TRANSPILE_ONLY=1 mocha -r ts-node/register test/integration/*/**",
38
- "test-e2e": "npm run test-e2e:generate-fixtures && npm run test-e2e:run-tests",
39
- "test-e2e:run-tests": "node bin/testplane --config test/e2e/testplane.config.ts",
40
- "test-e2e:generate-fixtures": "node bin/testplane --config test/e2e/fixtures/basic-report/testplane.config.ts || true",
37
+ "test-integration": "TS_NODE_TRANSPILE_ONLY=1 node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha -r ts-node/register test/integration/*/**",
38
+ "test-e2e": "npm run test-e2e-mocha && npm run test-e2e-testplane",
39
+ "test-e2e-mocha": "_mocha \"test/e2e/**/*.test.js\" --ignore \"test/e2e/**/fixture-project/**\"",
40
+ "test-e2e-testplane": "npm run test-e2e-testplane:generate-fixtures && npm run test-e2e-testplane:run-tests",
41
+ "test-e2e-testplane:run-tests": "node bin/testplane --config test/e2e/testplane.config.ts",
42
+ "test-e2e-testplane:generate-fixtures": "node bin/testplane --config test/e2e/fixtures/basic-report/testplane.config.ts || true",
41
43
  "test-e2e:gui": "node bin/testplane --config test/e2e/testplane.config.ts gui",
42
44
  "test-browser-env": "TS_NODE_PROJECT=./test/browser-env/tsconfig.json node bin/testplane -r tsconfig-paths/register --config test/browser-env/testplane.config.ts",
43
45
  "test-browser-env:gui": "TS_NODE_PROJECT=./test/browser-env/tsconfig.json node bin/testplane gui -r tsconfig-paths/register --config test/browser-env/testplane.config.ts",
@@ -57,7 +59,7 @@
57
59
  },
58
60
  "homepage": "https://testplane.io/",
59
61
  "engines": {
60
- "node": ">= 18.0.0"
62
+ "node": ">= 22"
61
63
  },
62
64
  "keywords": [
63
65
  "testplane",
@@ -76,11 +78,10 @@
76
78
  "@gemini-testing/commander": "2.15.4",
77
79
  "@jspm/core": "2.0.1",
78
80
  "@jsquash/png": "3.1.1",
79
- "@puppeteer/browsers": "2.7.1",
80
- "@testplane/devtools": "8.32.5",
81
+ "@puppeteer/browsers": "3.0.4",
81
82
  "@testplane/wdio-protocols": "9.4.7",
82
83
  "@testplane/wdio-utils": "9.5.4",
83
- "@testplane/webdriverio": "9.5.23",
84
+ "@testplane/webdriverio": "9.5.28",
84
85
  "@vitest/spy": "2.1.4",
85
86
  "buffer-crc32": "1.0.0",
86
87
  "chalk": "2.4.2",
@@ -91,8 +92,6 @@
91
92
  "error-stack-parser": "2.1.4",
92
93
  "esbuild": "0.25.8",
93
94
  "expect-webdriverio": "3.6.0",
94
- "extract-zip": "2.0.1",
95
- "fastq": "1.13.0",
96
95
  "fs-extra": "7.0.1",
97
96
  "geckodriver": "4.5.0",
98
97
  "gemini-configparser": "1.4.2",
@@ -103,6 +102,7 @@
103
102
  "looks-same": "10.0.1",
104
103
  "micromatch": "4.0.5",
105
104
  "mocha": "10.2.0",
105
+ "p-limit": "3.1.0",
106
106
  "pirates": "4.0.7",
107
107
  "plugins-loader": "1.3.4",
108
108
  "png-validator": "1.1.0",
@@ -133,7 +133,7 @@
133
133
  "@rrweb/record": "2.0.0-alpha.18",
134
134
  "@sinonjs/fake-timers": "10.3.0",
135
135
  "@swc/core": "1.13.3",
136
- "@testplane/wdio-types": "9.5.4",
136
+ "@testplane/wdio-types": "9.5.5",
137
137
  "@types/babel__code-frame": "7.0.6",
138
138
  "@types/browserify": "12.0.40",
139
139
  "@types/chai": "4.3.4",
@@ -147,7 +147,7 @@
147
147
  "@types/lodash": "4.14.191",
148
148
  "@types/micromatch": "4.0.9",
149
149
  "@types/mocha": "10.0.1",
150
- "@types/node": "18.19.3",
150
+ "@types/node": "24.13.1",
151
151
  "@types/proper-lockfile": "4.1.4",
152
152
  "@types/proxyquire": "1.3.28",
153
153
  "@types/set-cookie-parser": "2.4.10",
@@ -5,9 +5,13 @@ import { ConfigInput } from "./config/types";
5
5
  export declare abstract class BaseTestplane extends AsyncEmitter {
6
6
  protected _interceptors: Interceptor[];
7
7
  protected _config: Config;
8
- static create<T extends BaseTestplane>(this: new (config?: string | ConfigInput) => T, config?: string | ConfigInput): T;
8
+ protected _initEventEmited: boolean;
9
+ private _pendingConfig?;
10
+ static create<T extends BaseTestplane>(this: new (config?: string | ConfigInput) => T, config?: string | ConfigInput): Promise<T>;
9
11
  protected constructor(config?: string | ConfigInput);
10
- protected _init(): Promise<void>;
12
+ protected _setup(): Promise<void>;
13
+ /** @note Only the first call returns a promise to wait for INIT handlers to complete, subsequent calls return immediately to avoid deadlocks */
14
+ protected _emitInitEventOnce(): Promise<void>;
11
15
  get config(): Config;
12
16
  get events(): Events;
13
17
  get errors(): typeof Errors;
@@ -10,22 +10,35 @@ const config_1 = require("./config");
10
10
  const events_1 = require("./events");
11
11
  const errors_1 = __importDefault(require("./errors"));
12
12
  const typescript_1 = require("./utils/typescript");
13
+ const repl_module_hooks_1 = require("./utils/repl-module-hooks");
13
14
  class BaseTestplane extends events_1.AsyncEmitter {
14
- static create(config) {
15
- return new this(config);
15
+ static async create(config) {
16
+ const instance = new this(config);
17
+ await instance._setup();
18
+ return instance;
16
19
  }
17
20
  constructor(config) {
18
21
  super();
19
22
  this._interceptors = [];
23
+ this._initEventEmited = false;
20
24
  this._interceptors = [];
25
+ this._pendingConfig = config;
26
+ }
27
+ async _setup() {
28
+ (0, repl_module_hooks_1.registerReplModuleHooks)();
21
29
  (0, typescript_1.registerTransformHook)(this.isWorker());
22
- this._config = config_1.Config.create(config);
30
+ this._config = await config_1.Config.create(this._pendingConfig);
31
+ this._pendingConfig = undefined;
23
32
  (0, typescript_1.updateTransformHook)(this._config);
24
33
  this._setLogLevel();
25
34
  this._loadPlugins();
26
35
  }
27
- async _init() {
28
- this._init = () => Promise.resolve(); // init only once
36
+ /** @note Only the first call returns a promise to wait for INIT handlers to complete, subsequent calls return immediately to avoid deadlocks */
37
+ async _emitInitEventOnce() {
38
+ if (this._initEventEmited) {
39
+ return;
40
+ }
41
+ this._initEventEmited = true;
29
42
  await this.emitAndWait(events_1.MasterEvents.INIT);
30
43
  }
31
44
  get config() {
@@ -1 +1 @@
1
- {"version":3,"file":"base-testplane.js","sourceRoot":"","sources":["../../src/base-testplane.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,oEAA2C;AAC3C,qCAAkC;AAClC,qCAQkB;AAClB,sDAA8B;AAC9B,mDAAgF;AAGhF,MAAsB,aAAc,SAAQ,qBAAY;IAIpD,MAAM,CAAC,MAAM,CAET,MAA6B;QAE7B,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,YAAsB,MAA6B;QAC/C,KAAK,EAAE,CAAC;QAXF,kBAAa,GAAkB,EAAE,CAAC;QAaxC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,IAAA,kCAAqB,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,eAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAA,gCAAmB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAES,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC,KAAK,GAAG,GAAkB,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,iBAAiB;QACtE,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,gBAAC,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAY,EAAE,qBAAY,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,MAAM;QACN,OAAO,gBAAM,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,KAAuB,EAAE,OAAyB;QACxD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAIS,YAAY;QAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/F,CAAC;IACL,CAAC;IAES,YAAY;QAClB,wBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;CACJ;AA1DD,sCA0DC"}
1
+ {"version":3,"file":"base-testplane.js","sourceRoot":"","sources":["../../src/base-testplane.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,oEAA2C;AAC3C,qCAAkC;AAClC,qCAQkB;AAClB,sDAA8B;AAC9B,mDAAgF;AAChF,iEAAoE;AAGpE,MAAsB,aAAc,SAAQ,qBAAY;IAMpD,MAAM,CAAC,KAAK,CAAC,MAAM,CAEf,MAA6B;QAE7B,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QAExB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,YAAsB,MAA6B;QAC/C,KAAK,EAAE,CAAC;QAjBF,kBAAa,GAAkB,EAAE,CAAC;QAElC,qBAAgB,GAAY,KAAK,CAAC;QAiBxC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,MAAM;QAClB,IAAA,2CAAuB,GAAE,CAAC;QAC1B,IAAA,kCAAqB,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,eAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAA,gCAAmB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,gJAAgJ;IACtI,KAAK,CAAC,kBAAkB;QAC9B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,gBAAC,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAY,EAAE,qBAAY,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,MAAM;QACN,OAAO,gBAAM,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,KAAuB,EAAE,OAAyB;QACxD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAIS,YAAY;QAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/F,CAAC;IACL,CAAC;IAES,YAAY;QAClB,wBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;CACJ;AA1ED,sCA0EC"}
@@ -31,6 +31,7 @@ export declare class Browser {
31
31
  protected _customCommands: Set<CustomCommand>;
32
32
  protected _wdPool?: WebdriverPool;
33
33
  protected _wdProcess: WdProcess | null;
34
+ protected _exitError?: Error;
34
35
  /** This Promise is awaited after test is finished. Can be used for cleanup.
35
36
  Right now is used to wait for time travel snapshots to finish collecting */
36
37
  protected _snapshotsPromiseRef: history.PromiseRef;
@@ -58,4 +59,5 @@ export declare class Browser {
58
59
  get snapshotsPromiseRef(): history.PromiseRef;
59
60
  get customCommands(): CustomCommand[];
60
61
  get emitter(): AsyncEmitter;
62
+ get exitError(): Error | undefined;
61
63
  }
@@ -109,11 +109,12 @@ class Browser {
109
109
  if (!lodash_1.default.isNull(this._config[optName])) {
110
110
  req = this._config[optName](req);
111
111
  }
112
- if (!req.headers["X-Request-ID"]) {
113
- req.headers["X-Request-ID"] = `${this.state.testXReqId}${browser_1.X_REQUEST_ID_DELIMITER}${crypto_1.default.randomUUID()}`;
112
+ const requestHeaders = req.headers;
113
+ if (!requestHeaders["X-Request-ID"]) {
114
+ requestHeaders["X-Request-ID"] = `${this.state.testXReqId}${browser_1.X_REQUEST_ID_DELIMITER}${crypto_1.default.randomUUID()}`;
114
115
  }
115
- if (!req.headers["traceparent"] && this.state.traceparent) {
116
- req.headers["traceparent"] = this.state.traceparent;
116
+ if (!requestHeaders["traceparent"] && this.state.traceparent) {
117
+ requestHeaders["traceparent"] = this.state.traceparent;
117
118
  }
118
119
  return req;
119
120
  };
@@ -166,6 +167,9 @@ class Browser {
166
167
  get emitter() {
167
168
  return this._emitter;
168
169
  }
170
+ get exitError() {
171
+ return this._exitError;
172
+ }
169
173
  }
170
174
  exports.Browser = Browser;
171
175
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/browser/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/browser/browser.ts"],"names":[],"mappings":"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"}
@@ -52,8 +52,11 @@ class Calibrator {
52
52
  const image = await browser.captureViewportImage();
53
53
  const { innerWidth, pixelRatio } = features;
54
54
  const hasPixelRatio = Boolean(pixelRatio && pixelRatio > 1.0);
55
- const screenshotSize = (await image.getSize());
56
- const imageFeatures = await this._findMarkerAreaInImage(image);
55
+ const screenshotSize = image.getSize();
56
+ const searchColor = image.hasICCPChunk
57
+ ? await image.getRGB(Math.floor(screenshotSize.width / 2), Math.floor(screenshotSize.height / 2))
58
+ : { R: 148, G: 250, B: 0 };
59
+ const imageFeatures = await this._findMarkerAreaInImage(image, searchColor);
57
60
  if (!imageFeatures) {
58
61
  const screenshotPath = path_1.default.join(node_os_1.default.tmpdir(), "testplane-calibration-page.png");
59
62
  await image.save(screenshotPath);
@@ -71,11 +74,11 @@ class Calibrator {
71
74
  this._cache[browser.id] = calibratedFeatures;
72
75
  return calibratedFeatures;
73
76
  }
74
- async _findMarkerAreaInImage(image) {
75
- const imageHeight = (await image.getSize()).height;
77
+ async _findMarkerAreaInImage(image, searchColor) {
78
+ const imageHeight = image.getSize().height;
76
79
  let topPart = null;
77
80
  for (let y = 0; y < imageHeight; y++) {
78
- const result = await findMarkerXBandInRow(y, image);
81
+ const result = await findMarkerXBandInRow(y, image, searchColor);
79
82
  if (result) {
80
83
  topPart = {
81
84
  top: y,
@@ -90,7 +93,7 @@ class Calibrator {
90
93
  return null;
91
94
  }
92
95
  for (let y = (imageHeight - 1); y >= 0; y--) {
93
- const result = await findMarkerXBandInRow(y, image);
96
+ const result = await findMarkerXBandInRow(y, image, searchColor);
94
97
  if (result) {
95
98
  const bottomPart = {
96
99
  top: 0,
@@ -105,12 +108,12 @@ class Calibrator {
105
108
  }
106
109
  }
107
110
  exports.Calibrator = Calibrator;
108
- async function findMarkerXBandInRow(row, image) {
109
- const markerStart = await findMarkerStartInRow(row, image);
111
+ async function findMarkerXBandInRow(row, image, searchColor) {
112
+ const markerStart = await findMarkerStartInRow(row, image, searchColor);
110
113
  if (markerStart === null) {
111
114
  return null;
112
115
  }
113
- const markerEnd = await findMarkerEndInRow(row, image);
116
+ const markerEnd = await findMarkerEndInRow(row, image, searchColor);
114
117
  if (markerEnd === null) {
115
118
  return null;
116
119
  }
@@ -119,24 +122,23 @@ async function findMarkerXBandInRow(row, image) {
119
122
  width: (0, isomorphic_1.getWidth)(markerStart, (markerEnd + 1)),
120
123
  };
121
124
  }
122
- async function isMarkerColorAtPoint(image, x, y) {
123
- const searchColor = { R: 148, G: 250, B: 0 };
125
+ async function isMarkerColorAtPoint(image, x, y, searchColor) {
124
126
  const color = await image.getRGB(x, y);
125
127
  return looks_same_1.default.colors(color, searchColor);
126
128
  }
127
- async function findMarkerStartInRow(row, image) {
128
- const imageWidth = (await image.getSize()).width;
129
+ async function findMarkerStartInRow(row, image, searchColor) {
130
+ const imageWidth = image.getSize().width;
129
131
  for (let x = 0; x < imageWidth; x++) {
130
- if (await isMarkerColorAtPoint(image, x, row)) {
132
+ if (await isMarkerColorAtPoint(image, x, row, searchColor)) {
131
133
  return x;
132
134
  }
133
135
  }
134
136
  return null;
135
137
  }
136
- async function findMarkerEndInRow(row, image) {
137
- const imageWidth = (await image.getSize()).width;
138
+ async function findMarkerEndInRow(row, image, searchColor) {
139
+ const imageWidth = image.getSize().width;
138
140
  for (let x = (imageWidth - 1); x >= 0; x--) {
139
- if (await isMarkerColorAtPoint(image, x, row)) {
141
+ if (await isMarkerColorAtPoint(image, x, row, searchColor)) {
140
142
  return x;
141
143
  }
142
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"calibrator.js","sourceRoot":"","sources":["../../../src/browser/calibrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calibrator.js","sourceRoot":"","sources":["../../../src/browser/calibrator.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  import { Image } from "../../image";
2
+ import type { CropMargins } from "./utils";
2
3
  import { type Point, type Rect, type Size } from "../isomorphic/geometry";
3
4
  export type ScreenshotMode = "fullpage" | "viewport" | "auto";
5
+ export type { CropMargins } from "./utils";
4
6
  export interface CaptureViewportImageOpts {
5
7
  viewportOffset: Point<"page", "device">;
6
8
  viewportSize: Size<"device">;
7
9
  /** Delay before taking the screenshot, in milliseconds. */
8
10
  screenshotDelay?: number;
11
+ /** Additional raw screenshot margins to crop, in physical pixels. */
12
+ cropMargins?: CropMargins;
9
13
  }
10
14
  export declare class Camera {
11
15
  private _screenshotMode;
@@ -15,8 +19,8 @@ export declare class Camera {
15
19
  private _debugTmpDir;
16
20
  static create(screenshotMode: ScreenshotMode, takeScreenshot: () => Promise<string>): Camera;
17
21
  constructor(screenshotMode: ScreenshotMode, takeScreenshot: () => Promise<string>);
18
- calibrate(calibratedArea: Rect<"image", "device">, screenshotSize?: Size<"device">): void;
22
+ calibrate(calibratedArea: Rect<"image", "device">, screenshotSize: Size<"device">): void;
19
23
  captureViewportImage(opts?: CaptureViewportImageOpts): Promise<Image>;
20
- private _cropAreaToCalibratedArea;
24
+ private _cropAreaToIntersection;
21
25
  private _cropAreaToViewport;
22
26
  }
@@ -54,7 +54,7 @@ class Camera {
54
54
  calibrate(calibratedArea, screenshotSize) {
55
55
  debug("Setting calibrated area: %O for screenshot size: %O", calibratedArea, screenshotSize ?? null);
56
56
  this._calibratedArea = calibratedArea;
57
- this._calibrationScreenshotSize = screenshotSize ?? null;
57
+ this._calibrationScreenshotSize = screenshotSize;
58
58
  }
59
59
  async captureViewportImage(opts) {
60
60
  if (opts?.screenshotDelay) {
@@ -62,35 +62,39 @@ class Camera {
62
62
  }
63
63
  const base64 = await this._takeScreenshot();
64
64
  const image = image_1.Image.fromBase64(base64);
65
- const { width, height } = (await image.getSize());
65
+ const { width, height } = image.getSize();
66
66
  const imageArea = {
67
67
  left: 0,
68
68
  top: 0,
69
69
  width,
70
70
  height,
71
71
  };
72
- const shouldApplyCalibration = this._calibrationScreenshotSize === null ||
73
- (this._calibrationScreenshotSize.width === width && this._calibrationScreenshotSize.height === height);
72
+ const shouldApplyCalibration = this._calibrationScreenshotSize !== null &&
73
+ this._calibrationScreenshotSize.width === width &&
74
+ this._calibrationScreenshotSize.height === height;
74
75
  const calibrationArea = shouldApplyCalibration ? this._calibratedArea : null;
75
- if (!shouldApplyCalibration) {
76
- debug("Skipping calibration due to screenshot size mismatch.\n calibrationScreenshotSize: %O\n screenshotSize: %O", this._calibrationScreenshotSize, { width, height });
76
+ const calibratedImageArea = this._cropAreaToIntersection(imageArea, calibrationArea);
77
+ const cropMarginsArea = utils.cropMarginsToRect(imageArea, opts?.cropMargins);
78
+ const croppedImageArea = (0, geometry_1.getIntersection)(calibratedImageArea, cropMarginsArea);
79
+ if (croppedImageArea === null) {
80
+ throw new Error(`Invalid cropMargins option: resulting screenshot crop area is empty. ` +
81
+ `imageSize: ${(0, geometry_1.prettySize)(imageArea)}, cropMargins: ${JSON.stringify(opts?.cropMargins)}`);
77
82
  }
78
- const calibratedArea = this._cropAreaToCalibratedArea(imageArea, calibrationArea);
79
- const viewportCroppedArea = this._cropAreaToViewport(calibratedArea, { width, height }, calibrationArea, opts);
80
- await utils.saveViewportImageForDebugIfNeeded(image, calibratedArea, this._debugTmpDir);
83
+ const viewportCroppedArea = this._cropAreaToViewport(croppedImageArea, { width, height }, croppedImageArea, opts);
84
+ await utils.saveViewportImageForDebugIfNeeded(image, croppedImageArea, this._debugTmpDir);
81
85
  if (viewportCroppedArea.width !== width || viewportCroppedArea.height !== height) {
82
86
  await image.crop(viewportCroppedArea);
83
87
  }
84
88
  return image;
85
89
  }
86
- _cropAreaToCalibratedArea(imageArea, calibrationArea) {
87
- if (!calibrationArea) {
90
+ _cropAreaToIntersection(imageArea, cropArea) {
91
+ if (!cropArea) {
88
92
  return imageArea;
89
93
  }
90
- const intersection = (0, geometry_1.getIntersection)(imageArea, calibrationArea);
94
+ const intersection = (0, geometry_1.getIntersection)(imageArea, cropArea);
91
95
  if (intersection === null) {
92
- logger.warn(`No intersection found between image area and calibrated viewport area, falling back to original image area.\n` +
93
- `imageArea: ${(0, geometry_1.prettyRect)(imageArea)}, calibratedViewportArea: ${(0, geometry_1.prettyRect)(calibrationArea)}\n` +
96
+ logger.warn(`No intersection found between image area and crop area, falling back to original image area.\n` +
97
+ `imageArea: ${(0, geometry_1.prettyRect)(imageArea)}, cropArea: ${(0, geometry_1.prettyRect)(cropArea)}\n` +
94
98
  `This likely means Testplane incorrectly determined area free of system UI elements. You can let us know at ${help_1.NEW_ISSUE_LINK}, providing this log and browser used.`);
95
99
  return imageArea;
96
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/camera/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/camera/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAC7B,kDAA8B;AAE9B,uCAAoC;AACpC,+CAAiC;AAEjC,2DAA6C;AAC7C,qDASgC;AAChC,+CAAsD;AAEtD,MAAM,KAAK,GAAG,IAAA,eAAS,EAAC,8BAA8B,CAAC,CAAC;AAcxD,MAAa,MAAM;IAOf,MAAM,CAAC,MAAM,CAAC,cAA8B,EAAE,cAAqC;QAC/E,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACpD,CAAC;IAED,YAAY,cAA8B,EAAE,cAAqC;QANzE,iBAAY,GAAkB,IAAI,CAAC;QAOvC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QAEvC,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,mBAAI,CAAC,IAAI,CACzB,iBAAE,CAAC,MAAM,EAAE,EACX,8BAA8B,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CACtE,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;IAED,SAAS,CAAC,cAAuC,EAAE,cAA8B;QAC7E,KAAK,CAAC,qDAAqD,EAAE,cAAc,EAAE,cAAc,IAAI,IAAI,CAAC,CAAC;QACrG,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,0BAA0B,GAAG,cAAc,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAA+B;QACtD,IAAI,IAAI,EAAE,eAAe,EAAE,CAAC;YACxB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,aAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,EAAoB,CAAC;QAC5D,MAAM,SAAS,GAA4B;YACvC,IAAI,EAAE,CAAkC;YACxC,GAAG,EAAE,CAAkC;YACvC,KAAK;YACL,MAAM;SACT,CAAC;QAEF,MAAM,sBAAsB,GACxB,IAAI,CAAC,0BAA0B,KAAK,IAAI;YACxC,IAAI,CAAC,0BAA0B,CAAC,KAAK,KAAK,KAAK;YAC/C,IAAI,CAAC,0BAA0B,CAAC,MAAM,KAAK,MAAM,CAAC;QACtD,MAAM,eAAe,GAAG,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7E,MAAM,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACrF,MAAM,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9E,MAAM,gBAAgB,GAAG,IAAA,0BAAe,EAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;QAC/E,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACX,uEAAuE;gBACnE,cAAc,IAAA,qBAAU,EAAC,SAAS,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAC/F,CAAC;QACN,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAChD,gBAAgB,EAChB,EAAE,KAAK,EAAE,MAAM,EAAE,EACjB,gBAAgB,EAChB,IAAI,CACP,CAAC;QACF,MAAM,KAAK,CAAC,iCAAiC,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE1F,IAAI,mBAAmB,CAAC,KAAK,KAAK,KAAK,IAAI,mBAAmB,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/E,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,uBAAuB,CAC3B,SAAkC,EAClC,QAAwC;QAExC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,0BAAe,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CACP,gGAAgG;gBAC5F,cAAc,IAAA,qBAAU,EAAC,SAAS,CAAC,eAAe,IAAA,qBAAU,EAAC,QAAQ,CAAC,IAAI;gBAC1E,8GAA8G,qBAAc,wCAAwC,CAC3K,CAAC;YAEF,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;gGAE4F;IACpF,mBAAmB,CACvB,eAAwC,EACxC,iBAAiC,EACjC,eAA+C,EAC/C,IAA+B;QAE/B,IAAI,CAAC,IAAI,EAAE,YAAY,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;YAC/C,OAAO,eAAe,CAAC;QAC3B,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAC/B,eAAe,EACf,iBAAiB,EACjB,eAAe,IAAI,eAAe,EAClC,IAAI,CAAC,eAAe,CACvB,CAAC;QACF,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAElE,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,eAAe,CAAC;QAC3B,CAAC;QACD,KAAK,CACD,mKAAmK,EACnK,eAAe,EACf,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,cAAc,EACnB,QAAQ,EACR,UAAU,EACV,IAAI,CAAC,eAAe,CACvB,CAAC;QAEF,MAAM,MAAM,GAAG,IAAA,0BAAe,EAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CACP,oGAAoG;gBAChG,cAAc,IAAA,qBAAU,EAAC,eAAe,CAAC,KAAK;gBAC9C,iBAAiB,IAAA,qBAAU,EAAC,IAAI,CAAC,YAAY,CAAC,KAAK;gBACnD,mBAAmB,IAAA,sBAAW,EAAC,IAAI,CAAC,cAAc,CAAC,IAAI;gBACvD,qIAAqI,qBAAc,wCAAwC,CAClM,CAAC;YAEF,OAAO,eAAe,CAAC;QAC3B,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAtJD,wBAsJC"}
@@ -1,5 +1,15 @@
1
- import { ScreenshotMode } from ".";
1
+ import type { ScreenshotMode } from ".";
2
2
  import { Image } from "../../image";
3
3
  import { Rect, Size } from "../isomorphic/geometry";
4
+ export interface CropMargins {
5
+ top?: number;
6
+ right?: number;
7
+ bottom?: number;
8
+ left?: number;
9
+ }
10
+ type NormalizedCropMargins = Required<CropMargins>;
4
11
  export declare const isFullPage: (imageSize: Rect<"image", "device">, viewportSize: Size<"device">, calibratedArea: Rect<"image", "device">, screenshotMode: ScreenshotMode) => boolean;
12
+ export declare const normalizeCropMargins: (cropMargins?: CropMargins) => NormalizedCropMargins;
13
+ export declare const cropMarginsToRect: (imageArea: Rect<"image", "device">, cropMargins?: CropMargins) => Rect<"image", "device">;
5
14
  export declare function saveViewportImageForDebugIfNeeded(viewportImage: Image, viewportCroppedArea: Rect<"image", "device">, debugDir: string | null): Promise<void>;
15
+ export {};
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.saveViewportImageForDebugIfNeeded = exports.isFullPage = void 0;
6
+ exports.saveViewportImageForDebugIfNeeded = exports.cropMarginsToRect = exports.normalizeCropMargins = exports.isFullPage = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const geometry_1 = require("../isomorphic/geometry");
@@ -21,6 +21,32 @@ const isFullPage = (imageSize, viewportSize, calibratedArea, screenshotMode) =>
21
21
  }
22
22
  };
23
23
  exports.isFullPage = isFullPage;
24
+ const normalizeCropMargins = (cropMargins) => {
25
+ const result = {
26
+ top: cropMargins?.top ?? 0,
27
+ right: cropMargins?.right ?? 0,
28
+ bottom: cropMargins?.bottom ?? 0,
29
+ left: cropMargins?.left ?? 0,
30
+ };
31
+ for (const side of ["top", "right", "bottom", "left"]) {
32
+ const value = result[side];
33
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0 || Math.floor(value) !== value) {
34
+ throw new Error(`Invalid cropMargins.${side} option: expected a non-negative integer, got ${String(value)}`);
35
+ }
36
+ }
37
+ return result;
38
+ };
39
+ exports.normalizeCropMargins = normalizeCropMargins;
40
+ const cropMarginsToRect = (imageArea, cropMargins) => {
41
+ const margins = (0, exports.normalizeCropMargins)(cropMargins);
42
+ return {
43
+ top: margins.top,
44
+ left: margins.left,
45
+ width: imageArea.width - margins.left - margins.right,
46
+ height: imageArea.height - margins.top - margins.bottom,
47
+ };
48
+ };
49
+ exports.cropMarginsToRect = cropMarginsToRect;
24
50
  async function saveViewportImageForDebugIfNeeded(viewportImage, viewportCroppedArea, debugDir) {
25
51
  if (!process.env.TESTPLANE_DEBUG_SCREENSHOTS || !debugDir) {
26
52
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/browser/camera/utils.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AAGpB,qDAA+D;AAC/D,+EAAgG;AAEzF,MAAM,UAAU,GAAG,CACtB,SAAkC,EAClC,YAA4B,EAC5B,cAAuC,EACvC,cAA8B,EACvB,EAAE;IACT,0FAA0F;IAC1F,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,IAAA,oBAAS,EAAC,cAAc,CAAC,CAAC,CAAC;IAE3F,QAAQ,cAAc,EAAE,CAAC;QACrB,KAAK,UAAU;YACX,OAAO,IAAI,CAAC;QAChB,KAAK,UAAU;YACX,OAAO,KAAK,CAAC;QACjB,KAAK,MAAM;YACP,OAAO,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,cAAc,CAAC;IACvE,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,UAAU,cAiBrB;AAEK,KAAK,UAAU,iCAAiC,CACnD,aAAoB,EACpB,mBAA4C,EAC5C,QAAuB;IAEvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxD,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,SAAS,IAAI,QAAQ,MAAM,CAAC,CAAC;QAEhF,MAAM,IAAA,6CAA+B,EACjC,aAAa,EACb;YACI;gBACI,IAAI,EAAE,mBAA4D;gBAClE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;aACxC;SACJ,EACD,UAAU,CACb,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;AACL,CAAC;AA7BD,8EA6BC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/browser/camera/utils.ts"],"names":[],"mappings":"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"}
@@ -3,50 +3,13 @@ import type { Browser } from "../types";
3
3
  type OnEventMessageFn = (cdpEventMessage: CDPEvent) => unknown;
4
4
  export declare class CDPConnection {
5
5
  onEventMessage: OnEventMessageFn | null;
6
- private readonly _cdpWsEndpoint;
7
- private readonly _headers?;
8
- private _onPong;
9
- private _pingInterval;
10
- private _pingSubsequentFails;
11
- private _onConnectionCloseFn;
12
- private _wsConnectionStatus;
13
- private _wsConnection;
14
- private _wsConnectionPromise;
15
- private _requestId;
16
- private _pendingRequests;
6
+ private readonly _wsConnection;
17
7
  private constructor();
18
8
  /** @description Creates CDPConnection without establishing it */
19
9
  static create(browser: Browser): Promise<CDPConnection>;
20
- /** @description Tries to establish ws connection with timeout */
21
- private _tryToEstablishWsConnection;
22
- /**
23
- * @description creates ws connection with retries or returns existing one
24
- * @note Concurrent requests with same params produce same ws connection
25
- */
26
- private _getWsConnection;
27
- /** @description Handles websocket incoming messages, resolving pending requests */
10
+ close(): void;
28
11
  private _onMessage;
29
- /**
30
- * @description Produces connection-"uniq" request ids
31
- * @note Theoretically, it can collide, but given "CDP_MAX_REQUEST_ID" is INT32_MAX, it wont
32
- */
33
- private _getRequestId;
34
- /** @description establishes ws connection, sends request with timeout and waits for response */
35
- private _tryToSendRequest;
36
12
  /** @description Performs high-level CDP request with retries and timeouts */
37
13
  request<T = void>(method: CDPRequest["method"], { params, sessionId }?: Omit<CDPRequest, "id" | "method">): Promise<T>;
38
- private _closeWsConnection;
39
- /**
40
- * @description Tries to re-establish connection after network drops
41
- * @note Silently gives up after failed "CDP_CONNECTION_RETRIES" attempts
42
- */
43
- private _tryToReconnect;
44
- /** @description Used to abort all pending requests when connection is closed */
45
- private _abortPendingRequests;
46
- /** @description Closes websocket connection, terminating all pending requests */
47
- close(): void;
48
- private _pingHealthCheckStop;
49
- private _isWebSocketActive;
50
- private _pingHealthCheckStart;
51
14
  }
52
15
  export {};