testplane 9.0.0-rc.4 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/build/package.json +11 -11
  2. package/build/src/base-testplane.d.ts +6 -2
  3. package/build/src/base-testplane.js +18 -5
  4. package/build/src/base-testplane.js.map +1 -1
  5. package/build/src/browser/browser.d.ts +2 -0
  6. package/build/src/browser/browser.js +8 -4
  7. package/build/src/browser/browser.js.map +1 -1
  8. package/build/src/browser/calibrator.js +19 -17
  9. package/build/src/browser/calibrator.js.map +1 -1
  10. package/build/src/browser/camera/index.d.ts +6 -2
  11. package/build/src/browser/camera/index.js +18 -14
  12. package/build/src/browser/camera/index.js.map +1 -1
  13. package/build/src/browser/camera/utils.d.ts +11 -1
  14. package/build/src/browser/camera/utils.js +27 -1
  15. package/build/src/browser/camera/utils.js.map +1 -1
  16. package/build/src/browser/cdp/connection.d.ts +2 -39
  17. package/build/src/browser/cdp/connection.js +73 -353
  18. package/build/src/browser/cdp/connection.js.map +1 -1
  19. package/build/src/browser/cdp/constants.d.ts +0 -10
  20. package/build/src/browser/cdp/constants.js +1 -11
  21. package/build/src/browser/cdp/constants.js.map +1 -1
  22. package/build/src/browser/cdp/domains/css.d.ts +14 -6
  23. package/build/src/browser/cdp/domains/css.js +4 -0
  24. package/build/src/browser/cdp/domains/css.js.map +1 -1
  25. package/build/src/browser/cdp/domains/debugger.d.ts +1 -1
  26. package/build/src/browser/cdp/domains/fetch.d.ts +163 -0
  27. package/build/src/browser/cdp/domains/fetch.js +51 -0
  28. package/build/src/browser/cdp/domains/fetch.js.map +1 -0
  29. package/build/src/browser/cdp/domains/network.d.ts +290 -0
  30. package/build/src/browser/cdp/domains/network.js +75 -0
  31. package/build/src/browser/cdp/domains/network.js.map +1 -0
  32. package/build/src/browser/cdp/domains/page.d.ts +378 -0
  33. package/build/src/browser/cdp/domains/page.js +114 -0
  34. package/build/src/browser/cdp/domains/page.js.map +1 -0
  35. package/build/src/browser/cdp/emitter.d.ts +2 -1
  36. package/build/src/browser/cdp/emitter.js +2 -2
  37. package/build/src/browser/cdp/emitter.js.map +1 -1
  38. package/build/src/browser/cdp/error.d.ts +14 -20
  39. package/build/src/browser/cdp/error.js +29 -32
  40. package/build/src/browser/cdp/error.js.map +1 -1
  41. package/build/src/browser/cdp/index.d.ts +6 -0
  42. package/build/src/browser/cdp/index.js +21 -6
  43. package/build/src/browser/cdp/index.js.map +1 -1
  44. package/build/src/browser/cdp/selectivity/constants.d.ts +2 -0
  45. package/build/src/browser/cdp/selectivity/constants.js +3 -1
  46. package/build/src/browser/cdp/selectivity/constants.js.map +1 -1
  47. package/build/src/browser/cdp/selectivity/css-selectivity.d.ts +13 -3
  48. package/build/src/browser/cdp/selectivity/css-selectivity.js +211 -62
  49. package/build/src/browser/cdp/selectivity/css-selectivity.js.map +1 -1
  50. package/build/src/browser/cdp/selectivity/fs-cache.d.ts +12 -0
  51. package/build/src/browser/cdp/selectivity/fs-cache.js +122 -0
  52. package/build/src/browser/cdp/selectivity/fs-cache.js.map +1 -0
  53. package/build/src/browser/cdp/selectivity/hash-provider.d.ts +1 -0
  54. package/build/src/browser/cdp/selectivity/hash-provider.js +5 -3
  55. package/build/src/browser/cdp/selectivity/hash-provider.js.map +1 -1
  56. package/build/src/browser/cdp/selectivity/hash-reader.d.ts +2 -3
  57. package/build/src/browser/cdp/selectivity/hash-reader.js +39 -26
  58. package/build/src/browser/cdp/selectivity/hash-reader.js.map +1 -1
  59. package/build/src/browser/cdp/selectivity/hash-writer.d.ts +2 -2
  60. package/build/src/browser/cdp/selectivity/hash-writer.js +16 -62
  61. package/build/src/browser/cdp/selectivity/hash-writer.js.map +1 -1
  62. package/build/src/browser/cdp/selectivity/index.d.ts +6 -2
  63. package/build/src/browser/cdp/selectivity/index.js +147 -24
  64. package/build/src/browser/cdp/selectivity/index.js.map +1 -1
  65. package/build/src/browser/cdp/selectivity/js-selectivity.d.ts +11 -4
  66. package/build/src/browser/cdp/selectivity/js-selectivity.js +200 -87
  67. package/build/src/browser/cdp/selectivity/js-selectivity.js.map +1 -1
  68. package/build/src/browser/cdp/selectivity/json-utils.d.ts +5 -0
  69. package/build/src/browser/cdp/selectivity/json-utils.js +19 -9
  70. package/build/src/browser/cdp/selectivity/json-utils.js.map +1 -1
  71. package/build/src/browser/cdp/selectivity/merge-dumps/index.d.ts +2 -0
  72. package/build/src/browser/cdp/selectivity/merge-dumps/index.js +28 -0
  73. package/build/src/browser/cdp/selectivity/merge-dumps/index.js.map +1 -0
  74. package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.d.ts +2 -0
  75. package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.js +39 -0
  76. package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.js.map +1 -0
  77. package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.d.ts +2 -0
  78. package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.js +129 -0
  79. package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.js.map +1 -0
  80. package/build/src/browser/cdp/selectivity/modes.d.ts +4 -0
  81. package/build/src/browser/cdp/selectivity/modes.js +11 -0
  82. package/build/src/browser/cdp/selectivity/modes.js.map +1 -0
  83. package/build/src/browser/cdp/selectivity/runner.d.ts +5 -0
  84. package/build/src/browser/cdp/selectivity/runner.js +114 -22
  85. package/build/src/browser/cdp/selectivity/runner.js.map +1 -1
  86. package/build/src/browser/cdp/selectivity/test-dependencies-reader.js +1 -1
  87. package/build/src/browser/cdp/selectivity/test-dependencies-reader.js.map +1 -1
  88. package/build/src/browser/cdp/selectivity/test-dependencies-writer.js +1 -1
  89. package/build/src/browser/cdp/selectivity/test-dependencies-writer.js.map +1 -1
  90. package/build/src/browser/cdp/selectivity/testplane-selectivity.d.ts +3 -1
  91. package/build/src/browser/cdp/selectivity/testplane-selectivity.js +64 -13
  92. package/build/src/browser/cdp/selectivity/testplane-selectivity.js.map +1 -1
  93. package/build/src/browser/cdp/selectivity/types.d.ts +6 -0
  94. package/build/src/browser/cdp/selectivity/types.js.map +1 -1
  95. package/build/src/browser/cdp/selectivity/used-dumps-tracker.d.ts +7 -0
  96. package/build/src/browser/cdp/selectivity/used-dumps-tracker.js +25 -0
  97. package/build/src/browser/cdp/selectivity/used-dumps-tracker.js.map +1 -0
  98. package/build/src/browser/cdp/selectivity/utils.d.ts +18 -9
  99. package/build/src/browser/cdp/selectivity/utils.js +111 -34
  100. package/build/src/browser/cdp/selectivity/utils.js.map +1 -1
  101. package/build/src/browser/cdp/types.d.ts +214 -0
  102. package/build/src/browser/cdp/utils.d.ts +0 -6
  103. package/build/src/browser/cdp/utils.js +1 -6
  104. package/build/src/browser/cdp/utils.js.map +1 -1
  105. package/build/src/browser/client-scripts/calibrate.js +2 -2
  106. package/build/src/browser/client-scripts/rrweb-record.min.js +2 -2
  107. package/build/src/browser/client-scripts/screen-shooter/build/bundle.compat.js +10 -10
  108. package/build/src/browser/client-scripts/screen-shooter/build/bundle.native.js +10 -10
  109. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/implementation.js +21 -8
  110. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/operations.js +57 -29
  111. package/build/src/browser/commands/assert-view/errors/image-diff-error.d.ts +1 -0
  112. package/build/src/browser/commands/assert-view/index.js +23 -3
  113. package/build/src/browser/commands/assert-view/index.js.map +1 -1
  114. package/build/src/browser/commands/openAndWait.js +23 -26
  115. package/build/src/browser/commands/openAndWait.js.map +1 -1
  116. package/build/src/browser/commands/restoreState/index.js +19 -8
  117. package/build/src/browser/commands/restoreState/index.js.map +1 -1
  118. package/build/src/browser/commands/saveState/index.d.ts +1 -2
  119. package/build/src/browser/commands/saveState/index.js +8 -12
  120. package/build/src/browser/commands/saveState/index.js.map +1 -1
  121. package/build/src/browser/commands/switchToRepl.js +27 -9
  122. package/build/src/browser/commands/switchToRepl.js.map +1 -1
  123. package/build/src/browser/existing-browser.d.ts +2 -0
  124. package/build/src/browser/existing-browser.js +15 -0
  125. package/build/src/browser/existing-browser.js.map +1 -1
  126. package/build/src/browser/history/index.d.ts +8 -1
  127. package/build/src/browser/history/index.js +41 -17
  128. package/build/src/browser/history/index.js.map +1 -1
  129. package/build/src/browser/history/rrweb.d.ts +3 -1
  130. package/build/src/browser/history/rrweb.js +122 -27
  131. package/build/src/browser/history/rrweb.js.map +1 -1
  132. package/build/src/browser/isomorphic/tsconfig.tsbuildinfo +1 -1
  133. package/build/src/browser/new-browser.d.ts +1 -1
  134. package/build/src/browser/new-browser.js +6 -12
  135. package/build/src/browser/new-browser.js.map +1 -1
  136. package/build/src/browser/screen-shooter/composite-image/index.d.ts +23 -0
  137. package/build/src/browser/screen-shooter/composite-image/index.js +161 -14
  138. package/build/src/browser/screen-shooter/composite-image/index.js.map +1 -1
  139. package/build/src/browser/screen-shooter/debug.d.ts +3 -0
  140. package/build/src/browser/screen-shooter/debug.js +25 -0
  141. package/build/src/browser/screen-shooter/debug.js.map +1 -0
  142. package/build/src/browser/screen-shooter/elements-screen-shooter.d.ts +0 -1
  143. package/build/src/browser/screen-shooter/elements-screen-shooter.js +127 -75
  144. package/build/src/browser/screen-shooter/elements-screen-shooter.js.map +1 -1
  145. package/build/src/browser/screen-shooter/full-page-screen-shooter.d.ts +3 -2
  146. package/build/src/browser/screen-shooter/full-page-screen-shooter.js +19 -15
  147. package/build/src/browser/screen-shooter/full-page-screen-shooter.js.map +1 -1
  148. package/build/src/browser/screen-shooter/operations/index.d.ts +1 -0
  149. package/build/src/browser/screen-shooter/operations/index.js +3 -1
  150. package/build/src/browser/screen-shooter/operations/index.js.map +1 -1
  151. package/build/src/browser/screen-shooter/operations/pointer-events.js +7 -0
  152. package/build/src/browser/screen-shooter/operations/pointer-events.js.map +1 -1
  153. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.d.ts +2 -0
  154. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js +133 -0
  155. package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js.map +1 -0
  156. package/build/src/browser/screen-shooter/viewport-screen-shooter.d.ts +2 -1
  157. package/build/src/browser/screen-shooter/viewport-screen-shooter.js +3 -5
  158. package/build/src/browser/screen-shooter/viewport-screen-shooter.js.map +1 -1
  159. package/build/src/browser/types.d.ts +6 -4
  160. package/build/src/browser/wsdriver/compression.d.ts +5 -0
  161. package/build/src/browser/wsdriver/compression.js +79 -0
  162. package/build/src/browser/wsdriver/compression.js.map +1 -0
  163. package/build/src/browser/wsdriver/constants.d.ts +11 -0
  164. package/build/src/browser/wsdriver/constants.js +15 -0
  165. package/build/src/browser/wsdriver/constants.js.map +1 -0
  166. package/build/src/browser/wsdriver/debug.d.ts +2 -0
  167. package/build/src/browser/wsdriver/debug.js +9 -0
  168. package/build/src/browser/wsdriver/debug.js.map +1 -0
  169. package/build/src/browser/wsdriver/error.d.ts +18 -0
  170. package/build/src/browser/wsdriver/error.js +36 -0
  171. package/build/src/browser/wsdriver/error.js.map +1 -0
  172. package/build/src/browser/wsdriver/index.d.ts +23 -0
  173. package/build/src/browser/wsdriver/index.js +261 -0
  174. package/build/src/browser/wsdriver/index.js.map +1 -0
  175. package/build/src/browser/wsdriver/request.d.ts +10 -0
  176. package/build/src/browser/wsdriver/request.js +58 -0
  177. package/build/src/browser/wsdriver/request.js.map +1 -0
  178. package/build/src/browser/wsdriver/response.d.ts +3 -0
  179. package/build/src/browser/wsdriver/response.js +111 -0
  180. package/build/src/browser/wsdriver/response.js.map +1 -0
  181. package/build/src/browser/wsdriver/types.d.ts +71 -0
  182. package/build/src/browser/wsdriver/types.js +27 -0
  183. package/build/src/browser/wsdriver/types.js.map +1 -0
  184. package/build/src/browser-pool/basic-pool.js +3 -1
  185. package/build/src/browser-pool/basic-pool.js.map +1 -1
  186. package/build/src/cli/commands/selectivity-merge-dumps/index.d.ts +2 -0
  187. package/build/src/cli/commands/selectivity-merge-dumps/index.js +50 -0
  188. package/build/src/cli/commands/selectivity-merge-dumps/index.js.map +1 -0
  189. package/build/src/cli/constants.d.ts +1 -0
  190. package/build/src/cli/constants.js +1 -0
  191. package/build/src/cli/constants.js.map +1 -1
  192. package/build/src/cli/index.js +3 -5
  193. package/build/src/cli/index.js.map +1 -1
  194. package/build/src/config/browser-options.js +11 -3
  195. package/build/src/config/browser-options.js.map +1 -1
  196. package/build/src/config/defaults.d.ts +7 -2
  197. package/build/src/config/defaults.js +10 -5
  198. package/build/src/config/defaults.js.map +1 -1
  199. package/build/src/config/index.d.ts +10 -6
  200. package/build/src/config/index.js +67 -42
  201. package/build/src/config/index.js.map +1 -1
  202. package/build/src/config/types.d.ts +59 -14
  203. package/build/src/config/types.js +15 -5
  204. package/build/src/config/types.js.map +1 -1
  205. package/build/src/config/utils.d.ts +2 -2
  206. package/build/src/config/utils.js +11 -6
  207. package/build/src/config/utils.js.map +1 -1
  208. package/build/src/constants/config.d.ts +0 -1
  209. package/build/src/constants/config.js +1 -2
  210. package/build/src/constants/config.js.map +1 -1
  211. package/build/src/constants/png.d.ts +1 -0
  212. package/build/src/constants/repl.d.ts +2 -0
  213. package/build/src/constants/repl.js +6 -0
  214. package/build/src/constants/repl.js.map +1 -0
  215. package/build/src/dev-server/index.d.ts +1 -1
  216. package/build/src/dev-server/index.js +1 -1
  217. package/build/src/dev-server/index.js.map +1 -1
  218. package/build/src/globals.d.ts +7 -0
  219. package/build/src/globals.js +10 -0
  220. package/build/src/globals.js.map +1 -0
  221. package/build/src/image.d.ts +6 -1
  222. package/build/src/image.js +56 -2
  223. package/build/src/image.js.map +1 -1
  224. package/build/src/index.d.ts +3 -13
  225. package/build/src/index.js +5 -1
  226. package/build/src/index.js.map +1 -1
  227. package/build/src/runner/browser-env/vite/browser-modules/driver.js +6 -8
  228. package/build/src/runner/browser-env/vite/browser-modules/driver.js.map +1 -1
  229. package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
  230. package/build/src/runner/browser-env/vite/browser-modules/types.d.ts +1 -1
  231. package/build/src/runner/index.js +1 -0
  232. package/build/src/runner/index.js.map +1 -1
  233. package/build/src/runner/suite-monitor.d.ts +1 -1
  234. package/build/src/runner/test-runner/regular-test-runner.js +2 -2
  235. package/build/src/runner/test-runner/regular-test-runner.js.map +1 -1
  236. package/build/src/signal-handler.d.ts +2 -2
  237. package/build/src/signal-handler.js +24 -11
  238. package/build/src/signal-handler.js.map +1 -1
  239. package/build/src/test-reader/mocha-reader/mocha-event-bus.d.ts +1 -1
  240. package/build/src/test-reader/test-parser.js +3 -3
  241. package/build/src/test-reader/test-parser.js.map +1 -1
  242. package/build/src/testplane.d.ts +4 -5
  243. package/build/src/testplane.js +20 -10
  244. package/build/src/testplane.js.map +1 -1
  245. package/build/src/types/globals.d.ts +16 -0
  246. package/build/src/types/globals.js +3 -0
  247. package/build/src/types/globals.js.map +1 -0
  248. package/build/src/types/index.d.ts +2 -3
  249. package/build/src/utils/crypto.d.ts +1 -0
  250. package/build/src/utils/crypto.js +2 -1
  251. package/build/src/utils/crypto.js.map +1 -1
  252. package/build/src/utils/eight-bit-rgba-to-png.d.ts +1 -0
  253. package/build/src/utils/repl-instrumentation/index.d.ts +1 -0
  254. package/build/src/utils/repl-instrumentation/index.js +46 -0
  255. package/build/src/utils/repl-instrumentation/index.js.map +1 -0
  256. package/build/src/utils/repl-instrumentation/typescript.d.ts +7 -0
  257. package/build/src/utils/repl-instrumentation/typescript.js +307 -0
  258. package/build/src/utils/repl-instrumentation/typescript.js.map +1 -0
  259. package/build/src/utils/repl-module-hooks.d.ts +1 -0
  260. package/build/src/utils/repl-module-hooks.js +111 -0
  261. package/build/src/utils/repl-module-hooks.js.map +1 -0
  262. package/build/src/utils/workers-registry.d.ts +2 -2
  263. package/build/src/utils/workers-registry.js +1 -0
  264. package/build/src/utils/workers-registry.js.map +1 -1
  265. package/build/src/vendors/expect-webdriverio/matchers-overrides.d.ts +49 -0
  266. package/build/src/vendors/expect-webdriverio/matchers-overrides.js +3 -0
  267. package/build/src/vendors/expect-webdriverio/matchers-overrides.js.map +1 -0
  268. package/build/src/worker/runner/browser-pool.js +4 -1
  269. package/build/src/worker/runner/browser-pool.js.map +1 -1
  270. package/build/src/worker/runner/index.js +6 -3
  271. package/build/src/worker/runner/index.js.map +1 -1
  272. package/build/src/worker/runner/sequence-test-parser.js +5 -7
  273. package/build/src/worker/runner/sequence-test-parser.js.map +1 -1
  274. package/build/src/worker/runner/test-runner/capture-fail-screenshot.js +2 -3
  275. package/build/src/worker/runner/test-runner/capture-fail-screenshot.js.map +1 -1
  276. package/build/src/worker/runner/test-runner/execution-thread.d.ts +0 -1
  277. package/build/src/worker/runner/test-runner/execution-thread.js +0 -5
  278. package/build/src/worker/runner/test-runner/execution-thread.js.map +1 -1
  279. package/build/src/worker/runner/test-runner/index.d.ts +1 -0
  280. package/build/src/worker/runner/test-runner/index.js +47 -2
  281. package/build/src/worker/runner/test-runner/index.js.map +1 -1
  282. package/build/src/worker/testplane-facade.js +5 -3
  283. package/build/src/worker/testplane-facade.js.map +1 -1
  284. package/build/src/worker/testplane.d.ts +1 -0
  285. package/build/src/worker/testplane.js +4 -1
  286. package/build/src/worker/testplane.js.map +1 -1
  287. package/build/src/ws-connection/constants.d.ts +13 -0
  288. package/build/src/ws-connection/constants.js +17 -0
  289. package/build/src/ws-connection/constants.js.map +1 -0
  290. package/build/src/ws-connection/error.d.ts +52 -0
  291. package/build/src/ws-connection/error.js +84 -0
  292. package/build/src/ws-connection/error.js.map +1 -0
  293. package/build/src/ws-connection/index.d.ts +83 -0
  294. package/build/src/ws-connection/index.js +397 -0
  295. package/build/src/ws-connection/index.js.map +1 -0
  296. package/build/src/ws-connection/utils.d.ts +6 -0
  297. package/build/src/ws-connection/utils.js +9 -0
  298. package/build/src/ws-connection/utils.js.map +1 -0
  299. package/package.json +11 -11
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testplane",
3
- "version": "9.0.0-rc.4",
3
+ "version": "9.0.0",
4
4
  "description": "Tests framework based on mocha and wdio",
5
5
  "main": "build/src/index.js",
6
6
  "files": [
@@ -30,12 +30,13 @@
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",
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-repl && npm run test-e2e:generate-fixtures && npm run test-e2e:run-tests",
39
+ "test-e2e-repl": "_mocha \"test/e2e/**/*.test.js\" --ignore \"test/e2e/**/fixture-project/**\"",
39
40
  "test-e2e:run-tests": "node bin/testplane --config test/e2e/testplane.config.ts",
40
41
  "test-e2e:generate-fixtures": "node bin/testplane --config test/e2e/fixtures/basic-report/testplane.config.ts || true",
41
42
  "test-e2e:gui": "node bin/testplane --config test/e2e/testplane.config.ts gui",
@@ -57,7 +58,7 @@
57
58
  },
58
59
  "homepage": "https://testplane.io/",
59
60
  "engines": {
60
- "node": ">= 18.0.0"
61
+ "node": ">= 22"
61
62
  },
62
63
  "keywords": [
63
64
  "testplane",
@@ -77,10 +78,9 @@
77
78
  "@jspm/core": "2.0.1",
78
79
  "@jsquash/png": "3.1.1",
79
80
  "@puppeteer/browsers": "2.7.1",
80
- "@testplane/devtools": "8.32.5",
81
81
  "@testplane/wdio-protocols": "9.4.7",
82
82
  "@testplane/wdio-utils": "9.5.4",
83
- "@testplane/webdriverio": "9.5.23",
83
+ "@testplane/webdriverio": "9.5.28",
84
84
  "@vitest/spy": "2.1.4",
85
85
  "buffer-crc32": "1.0.0",
86
86
  "chalk": "2.4.2",
@@ -92,7 +92,6 @@
92
92
  "esbuild": "0.25.8",
93
93
  "expect-webdriverio": "3.6.0",
94
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 {};