@wdio/image-comparison-core 1.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 (416) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/LICENSE +21 -0
  3. package/README.md +12 -0
  4. package/assets/ios/ipadair4th.ipadair5th-bottom.png +0 -0
  5. package/assets/ios/ipadair4th.ipadair5th-top.png +0 -0
  6. package/assets/ios/ipadmini6th-bottom.png +0 -0
  7. package/assets/ios/ipadmini6th-top.png +0 -0
  8. package/assets/ios/ipadpro11-bottom.png +0 -0
  9. package/assets/ios/ipadpro11-top.png +0 -0
  10. package/assets/ios/ipadpro129-bottom.png +0 -0
  11. package/assets/ios/ipadpro129-top.png +0 -0
  12. package/assets/ios/iphone11promax-bottom.png +0 -0
  13. package/assets/ios/iphone11promax-top.png +0 -0
  14. package/assets/ios/iphone12.iphone12pro-top.png +0 -0
  15. package/assets/ios/iphone12.iphone12pro.iphone13.iphone13pro.iphone14-bottom.png +0 -0
  16. package/assets/ios/iphone12mini-top.png +0 -0
  17. package/assets/ios/iphone12mini.iphone13mini-bottom.png +0 -0
  18. package/assets/ios/iphone12promax-top.png +0 -0
  19. package/assets/ios/iphone12promax.iphone13promax.iphone14plus-bottom.png +0 -0
  20. package/assets/ios/iphone13.iphone13pro.iphone14-top.png +0 -0
  21. package/assets/ios/iphone13mini-top.png +0 -0
  22. package/assets/ios/iphone13promax.iphone14plus-top.png +0 -0
  23. package/assets/ios/iphone14pro-bottom.png +0 -0
  24. package/assets/ios/iphone14pro-top.png +0 -0
  25. package/assets/ios/iphone14promax-bottom.png +0 -0
  26. package/assets/ios/iphone14promax-top.png +0 -0
  27. package/assets/ios/iphone15-bottom.png +0 -0
  28. package/assets/ios/iphone15-top.png +0 -0
  29. package/assets/ios/iphonex.iphonexs.iphone11pro-bottom.png +0 -0
  30. package/assets/ios/iphonex.iphonexs.iphone11pro-top.png +0 -0
  31. package/assets/ios/iphonexr.iphone11-bottom.png +0 -0
  32. package/assets/ios/iphonexr.iphone11-top.png +0 -0
  33. package/assets/ios/iphonexsmax-bottom.png +0 -0
  34. package/assets/ios/iphonexsmax-top.png +0 -0
  35. package/dist/base.d.ts +18 -0
  36. package/dist/base.d.ts.map +1 -0
  37. package/dist/base.interfaces.d.ts +200 -0
  38. package/dist/base.interfaces.d.ts.map +1 -0
  39. package/dist/base.interfaces.js +1 -0
  40. package/dist/base.js +58 -0
  41. package/dist/base.test.d.ts +2 -0
  42. package/dist/base.test.d.ts.map +1 -0
  43. package/dist/base.test.js +45 -0
  44. package/dist/clientSideScripts/checkMetaTag.d.ts +2 -0
  45. package/dist/clientSideScripts/checkMetaTag.d.ts.map +1 -0
  46. package/dist/clientSideScripts/checkMetaTag.js +9 -0
  47. package/dist/clientSideScripts/checkMetaTag.test.d.ts +2 -0
  48. package/dist/clientSideScripts/checkMetaTag.test.d.ts.map +1 -0
  49. package/dist/clientSideScripts/checkMetaTag.test.js +25 -0
  50. package/dist/clientSideScripts/customCss.interfaces.d.ts +8 -0
  51. package/dist/clientSideScripts/customCss.interfaces.d.ts.map +1 -0
  52. package/dist/clientSideScripts/customCss.interfaces.js +1 -0
  53. package/dist/clientSideScripts/drawTabbableOnCanvas.d.ts +8 -0
  54. package/dist/clientSideScripts/drawTabbableOnCanvas.d.ts.map +1 -0
  55. package/dist/clientSideScripts/drawTabbableOnCanvas.interfaces.d.ts +4 -0
  56. package/dist/clientSideScripts/drawTabbableOnCanvas.interfaces.d.ts.map +1 -0
  57. package/dist/clientSideScripts/drawTabbableOnCanvas.interfaces.js +1 -0
  58. package/dist/clientSideScripts/drawTabbableOnCanvas.js +275 -0
  59. package/dist/clientSideScripts/drawTabbableOnCanvas.test.d.ts +2 -0
  60. package/dist/clientSideScripts/drawTabbableOnCanvas.test.d.ts.map +1 -0
  61. package/dist/clientSideScripts/drawTabbableOnCanvas.test.js +251 -0
  62. package/dist/clientSideScripts/elementPosition.interfaces.d.ts +3 -0
  63. package/dist/clientSideScripts/elementPosition.interfaces.d.ts.map +1 -0
  64. package/dist/clientSideScripts/elementPosition.interfaces.js +1 -0
  65. package/dist/clientSideScripts/getBoundingClientRect.d.ts +6 -0
  66. package/dist/clientSideScripts/getBoundingClientRect.d.ts.map +1 -0
  67. package/dist/clientSideScripts/getBoundingClientRect.js +12 -0
  68. package/dist/clientSideScripts/getBoundingClientRect.test.d.ts +2 -0
  69. package/dist/clientSideScripts/getBoundingClientRect.test.d.ts.map +1 -0
  70. package/dist/clientSideScripts/getBoundingClientRect.test.js +28 -0
  71. package/dist/clientSideScripts/getDocumentScrollHeight.d.ts +5 -0
  72. package/dist/clientSideScripts/getDocumentScrollHeight.d.ts.map +1 -0
  73. package/dist/clientSideScripts/getDocumentScrollHeight.js +48 -0
  74. package/dist/clientSideScripts/getDocumentScrollHeight.test.d.ts +2 -0
  75. package/dist/clientSideScripts/getDocumentScrollHeight.test.d.ts.map +1 -0
  76. package/dist/clientSideScripts/getDocumentScrollHeight.test.js +30 -0
  77. package/dist/clientSideScripts/getElementPositionTopDom.d.ts +6 -0
  78. package/dist/clientSideScripts/getElementPositionTopDom.d.ts.map +1 -0
  79. package/dist/clientSideScripts/getElementPositionTopDom.js +11 -0
  80. package/dist/clientSideScripts/getElementPositionTopDom.test.d.ts +2 -0
  81. package/dist/clientSideScripts/getElementPositionTopDom.test.d.ts.map +1 -0
  82. package/dist/clientSideScripts/getElementPositionTopDom.test.js +11 -0
  83. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.d.ts +14 -0
  84. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.d.ts.map +1 -0
  85. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.js +19 -0
  86. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.test.d.ts +2 -0
  87. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.test.d.ts.map +1 -0
  88. package/dist/clientSideScripts/getElementPositionTopScreenNativeMobile.test.js +52 -0
  89. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.d.ts +6 -0
  90. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.d.ts.map +1 -0
  91. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.js +17 -0
  92. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.test.d.ts +2 -0
  93. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.test.d.ts.map +1 -0
  94. package/dist/clientSideScripts/getMobileWebviewClickAndDimensions.test.js +47 -0
  95. package/dist/clientSideScripts/getScreenDimensions.d.ts +6 -0
  96. package/dist/clientSideScripts/getScreenDimensions.d.ts.map +1 -0
  97. package/dist/clientSideScripts/getScreenDimensions.js +104 -0
  98. package/dist/clientSideScripts/getScreenDimensions.test.d.ts +2 -0
  99. package/dist/clientSideScripts/getScreenDimensions.test.d.ts.map +1 -0
  100. package/dist/clientSideScripts/getScreenDimensions.test.js +161 -0
  101. package/dist/clientSideScripts/hideRemoveElements.d.ts +8 -0
  102. package/dist/clientSideScripts/hideRemoveElements.d.ts.map +1 -0
  103. package/dist/clientSideScripts/hideRemoveElements.js +60 -0
  104. package/dist/clientSideScripts/hideRemoveElements.test.d.ts +2 -0
  105. package/dist/clientSideScripts/hideRemoveElements.test.d.ts.map +1 -0
  106. package/dist/clientSideScripts/hideRemoveElements.test.js +199 -0
  107. package/dist/clientSideScripts/hideScrollbars.d.ts +9 -0
  108. package/dist/clientSideScripts/hideScrollbars.d.ts.map +1 -0
  109. package/dist/clientSideScripts/hideScrollbars.js +15 -0
  110. package/dist/clientSideScripts/hideScrollbars.test.d.ts +2 -0
  111. package/dist/clientSideScripts/hideScrollbars.test.d.ts.map +1 -0
  112. package/dist/clientSideScripts/hideScrollbars.test.js +12 -0
  113. package/dist/clientSideScripts/injectWebviewOverlay.d.ts +5 -0
  114. package/dist/clientSideScripts/injectWebviewOverlay.d.ts.map +1 -0
  115. package/dist/clientSideScripts/injectWebviewOverlay.js +35 -0
  116. package/dist/clientSideScripts/injectWebviewOverlay.test.d.ts +2 -0
  117. package/dist/clientSideScripts/injectWebviewOverlay.test.d.ts.map +1 -0
  118. package/dist/clientSideScripts/injectWebviewOverlay.test.js +74 -0
  119. package/dist/clientSideScripts/removeElementFromDom.d.ts +5 -0
  120. package/dist/clientSideScripts/removeElementFromDom.d.ts.map +1 -0
  121. package/dist/clientSideScripts/removeElementFromDom.js +9 -0
  122. package/dist/clientSideScripts/removeElementFromDom.test.d.ts +2 -0
  123. package/dist/clientSideScripts/removeElementFromDom.test.d.ts.map +1 -0
  124. package/dist/clientSideScripts/removeElementFromDom.test.js +43 -0
  125. package/dist/clientSideScripts/screenDimensions.interfaces.d.ts +96 -0
  126. package/dist/clientSideScripts/screenDimensions.interfaces.d.ts.map +1 -0
  127. package/dist/clientSideScripts/screenDimensions.interfaces.js +1 -0
  128. package/dist/clientSideScripts/scrollElementIntoView.d.ts +5 -0
  129. package/dist/clientSideScripts/scrollElementIntoView.d.ts.map +1 -0
  130. package/dist/clientSideScripts/scrollElementIntoView.js +31 -0
  131. package/dist/clientSideScripts/scrollElementIntoView.test.d.ts +2 -0
  132. package/dist/clientSideScripts/scrollElementIntoView.test.d.ts.map +1 -0
  133. package/dist/clientSideScripts/scrollElementIntoView.test.js +79 -0
  134. package/dist/clientSideScripts/scrollToPosition.d.ts +5 -0
  135. package/dist/clientSideScripts/scrollToPosition.d.ts.map +1 -0
  136. package/dist/clientSideScripts/scrollToPosition.js +25 -0
  137. package/dist/clientSideScripts/scrollToPosition.test.d.ts +2 -0
  138. package/dist/clientSideScripts/scrollToPosition.test.d.ts.map +1 -0
  139. package/dist/clientSideScripts/scrollToPosition.test.js +72 -0
  140. package/dist/clientSideScripts/setCustomCss.d.ts +6 -0
  141. package/dist/clientSideScripts/setCustomCss.d.ts.map +1 -0
  142. package/dist/clientSideScripts/setCustomCss.js +36 -0
  143. package/dist/clientSideScripts/setCustomCss.test.d.ts +2 -0
  144. package/dist/clientSideScripts/setCustomCss.test.d.ts.map +1 -0
  145. package/dist/clientSideScripts/setCustomCss.test.js +68 -0
  146. package/dist/clientSideScripts/statusAddressToolBarOffsets.interfaces.d.ts +11 -0
  147. package/dist/clientSideScripts/statusAddressToolBarOffsets.interfaces.d.ts.map +1 -0
  148. package/dist/clientSideScripts/statusAddressToolBarOffsets.interfaces.js +1 -0
  149. package/dist/clientSideScripts/toggleTextTransparency.d.ts +5 -0
  150. package/dist/clientSideScripts/toggleTextTransparency.d.ts.map +1 -0
  151. package/dist/clientSideScripts/toggleTextTransparency.js +16 -0
  152. package/dist/clientSideScripts/toggleTextTransparency.test.d.ts +2 -0
  153. package/dist/clientSideScripts/toggleTextTransparency.test.d.ts.map +1 -0
  154. package/dist/clientSideScripts/toggleTextTransparency.test.js +35 -0
  155. package/dist/clientSideScripts/waitForFonts.d.ts +8 -0
  156. package/dist/clientSideScripts/waitForFonts.d.ts.map +1 -0
  157. package/dist/clientSideScripts/waitForFonts.js +20 -0
  158. package/dist/clientSideScripts/waitForFonts.test.d.ts +2 -0
  159. package/dist/clientSideScripts/waitForFonts.test.d.ts.map +1 -0
  160. package/dist/clientSideScripts/waitForFonts.test.js +37 -0
  161. package/dist/commands/check.interfaces.d.ts +35 -0
  162. package/dist/commands/check.interfaces.d.ts.map +1 -0
  163. package/dist/commands/check.interfaces.js +1 -0
  164. package/dist/commands/checkAppElement.d.ts +7 -0
  165. package/dist/commands/checkAppElement.d.ts.map +1 -0
  166. package/dist/commands/checkAppElement.js +44 -0
  167. package/dist/commands/checkAppElement.test.d.ts +2 -0
  168. package/dist/commands/checkAppElement.test.d.ts.map +1 -0
  169. package/dist/commands/checkAppElement.test.js +241 -0
  170. package/dist/commands/checkAppScreen.d.ts +7 -0
  171. package/dist/commands/checkAppScreen.d.ts.map +1 -0
  172. package/dist/commands/checkAppScreen.js +73 -0
  173. package/dist/commands/checkAppScreen.test.d.ts +2 -0
  174. package/dist/commands/checkAppScreen.test.d.ts.map +1 -0
  175. package/dist/commands/checkAppScreen.test.js +295 -0
  176. package/dist/commands/checkElement.d.ts +7 -0
  177. package/dist/commands/checkElement.d.ts.map +1 -0
  178. package/dist/commands/checkElement.js +10 -0
  179. package/dist/commands/checkElement.test.d.ts +2 -0
  180. package/dist/commands/checkElement.test.d.ts.map +1 -0
  181. package/dist/commands/checkElement.test.js +66 -0
  182. package/dist/commands/checkFullPageScreen.d.ts +7 -0
  183. package/dist/commands/checkFullPageScreen.d.ts.map +1 -0
  184. package/dist/commands/checkFullPageScreen.js +56 -0
  185. package/dist/commands/checkFullPageScreen.test.d.ts +2 -0
  186. package/dist/commands/checkFullPageScreen.test.d.ts.map +1 -0
  187. package/dist/commands/checkFullPageScreen.test.js +259 -0
  188. package/dist/commands/checkScreen.d.ts +7 -0
  189. package/dist/commands/checkScreen.d.ts.map +1 -0
  190. package/dist/commands/checkScreen.js +10 -0
  191. package/dist/commands/checkScreen.test.d.ts +2 -0
  192. package/dist/commands/checkScreen.test.d.ts.map +1 -0
  193. package/dist/commands/checkScreen.test.js +62 -0
  194. package/dist/commands/checkTabbablePage.d.ts +7 -0
  195. package/dist/commands/checkTabbablePage.d.ts.map +1 -0
  196. package/dist/commands/checkTabbablePage.js +28 -0
  197. package/dist/commands/checkTabbablePage.test.d.ts +2 -0
  198. package/dist/commands/checkTabbablePage.test.d.ts.map +1 -0
  199. package/dist/commands/checkTabbablePage.test.js +200 -0
  200. package/dist/commands/checkWebElement.d.ts +7 -0
  201. package/dist/commands/checkWebElement.d.ts.map +1 -0
  202. package/dist/commands/checkWebElement.js +52 -0
  203. package/dist/commands/checkWebElement.test.d.ts +2 -0
  204. package/dist/commands/checkWebElement.test.d.ts.map +1 -0
  205. package/dist/commands/checkWebElement.test.js +278 -0
  206. package/dist/commands/checkWebScreen.d.ts +7 -0
  207. package/dist/commands/checkWebScreen.d.ts.map +1 -0
  208. package/dist/commands/checkWebScreen.js +50 -0
  209. package/dist/commands/checkWebScreen.test.d.ts +2 -0
  210. package/dist/commands/checkWebScreen.test.d.ts.map +1 -0
  211. package/dist/commands/checkWebScreen.test.js +227 -0
  212. package/dist/commands/element.interfaces.d.ts +27 -0
  213. package/dist/commands/element.interfaces.d.ts.map +1 -0
  214. package/dist/commands/element.interfaces.js +1 -0
  215. package/dist/commands/fullPage.interfaces.d.ts +38 -0
  216. package/dist/commands/fullPage.interfaces.d.ts.map +1 -0
  217. package/dist/commands/fullPage.interfaces.js +1 -0
  218. package/dist/commands/save.interfaces.d.ts +27 -0
  219. package/dist/commands/save.interfaces.d.ts.map +1 -0
  220. package/dist/commands/save.interfaces.js +1 -0
  221. package/dist/commands/saveAppElement.d.ts +7 -0
  222. package/dist/commands/saveAppElement.d.ts.map +1 -0
  223. package/dist/commands/saveAppElement.js +30 -0
  224. package/dist/commands/saveAppElement.test.d.ts +2 -0
  225. package/dist/commands/saveAppElement.test.d.ts.map +1 -0
  226. package/dist/commands/saveAppElement.test.js +199 -0
  227. package/dist/commands/saveAppScreen.d.ts +7 -0
  228. package/dist/commands/saveAppScreen.d.ts.map +1 -0
  229. package/dist/commands/saveAppScreen.js +43 -0
  230. package/dist/commands/saveAppScreen.test.d.ts +2 -0
  231. package/dist/commands/saveAppScreen.test.d.ts.map +1 -0
  232. package/dist/commands/saveAppScreen.test.js +221 -0
  233. package/dist/commands/saveElement.d.ts +7 -0
  234. package/dist/commands/saveElement.d.ts.map +1 -0
  235. package/dist/commands/saveElement.js +10 -0
  236. package/dist/commands/saveElement.test.d.ts +2 -0
  237. package/dist/commands/saveElement.test.d.ts.map +1 -0
  238. package/dist/commands/saveElement.test.js +62 -0
  239. package/dist/commands/saveFullPageScreen.d.ts +7 -0
  240. package/dist/commands/saveFullPageScreen.d.ts.map +1 -0
  241. package/dist/commands/saveFullPageScreen.js +60 -0
  242. package/dist/commands/saveFullPageScreen.test.d.ts +2 -0
  243. package/dist/commands/saveFullPageScreen.test.d.ts.map +1 -0
  244. package/dist/commands/saveFullPageScreen.test.js +293 -0
  245. package/dist/commands/saveScreen.d.ts +7 -0
  246. package/dist/commands/saveScreen.d.ts.map +1 -0
  247. package/dist/commands/saveScreen.js +10 -0
  248. package/dist/commands/saveScreen.test.d.ts +2 -0
  249. package/dist/commands/saveScreen.test.d.ts.map +1 -0
  250. package/dist/commands/saveScreen.test.js +47 -0
  251. package/dist/commands/saveTabbablePage.d.ts +7 -0
  252. package/dist/commands/saveTabbablePage.d.ts.map +1 -0
  253. package/dist/commands/saveTabbablePage.js +20 -0
  254. package/dist/commands/saveTabbablePage.test.d.ts +2 -0
  255. package/dist/commands/saveTabbablePage.test.d.ts.map +1 -0
  256. package/dist/commands/saveTabbablePage.test.js +74 -0
  257. package/dist/commands/saveWebElement.d.ts +7 -0
  258. package/dist/commands/saveWebElement.d.ts.map +1 -0
  259. package/dist/commands/saveWebElement.js +53 -0
  260. package/dist/commands/saveWebElement.test.d.ts +2 -0
  261. package/dist/commands/saveWebElement.test.d.ts.map +1 -0
  262. package/dist/commands/saveWebElement.test.js +253 -0
  263. package/dist/commands/saveWebScreen.d.ts +7 -0
  264. package/dist/commands/saveWebScreen.d.ts.map +1 -0
  265. package/dist/commands/saveWebScreen.js +48 -0
  266. package/dist/commands/saveWebScreen.test.d.ts +2 -0
  267. package/dist/commands/saveWebScreen.test.d.ts.map +1 -0
  268. package/dist/commands/saveWebScreen.test.js +222 -0
  269. package/dist/commands/screen.interfaces.d.ts +16 -0
  270. package/dist/commands/screen.interfaces.d.ts.map +1 -0
  271. package/dist/commands/screen.interfaces.js +1 -0
  272. package/dist/commands/tabbable.interfaces.d.ts +29 -0
  273. package/dist/commands/tabbable.interfaces.d.ts.map +1 -0
  274. package/dist/commands/tabbable.interfaces.js +1 -0
  275. package/dist/helpers/afterScreenshot.d.ts +7 -0
  276. package/dist/helpers/afterScreenshot.d.ts.map +1 -0
  277. package/dist/helpers/afterScreenshot.interfaces.d.ts +46 -0
  278. package/dist/helpers/afterScreenshot.interfaces.d.ts.map +1 -0
  279. package/dist/helpers/afterScreenshot.interfaces.js +1 -0
  280. package/dist/helpers/afterScreenshot.js +55 -0
  281. package/dist/helpers/afterScreenshot.test.d.ts +2 -0
  282. package/dist/helpers/afterScreenshot.test.d.ts.map +1 -0
  283. package/dist/helpers/afterScreenshot.test.js +241 -0
  284. package/dist/helpers/beforeScreenshot.d.ts +6 -0
  285. package/dist/helpers/beforeScreenshot.d.ts.map +1 -0
  286. package/dist/helpers/beforeScreenshot.interfaces.d.ts +15 -0
  287. package/dist/helpers/beforeScreenshot.interfaces.d.ts.map +1 -0
  288. package/dist/helpers/beforeScreenshot.interfaces.js +1 -0
  289. package/dist/helpers/beforeScreenshot.js +79 -0
  290. package/dist/helpers/beforeScreenshot.test.d.ts +2 -0
  291. package/dist/helpers/beforeScreenshot.test.d.ts.map +1 -0
  292. package/dist/helpers/beforeScreenshot.test.js +261 -0
  293. package/dist/helpers/compare.interfaces.d.ts +16 -0
  294. package/dist/helpers/compare.interfaces.d.ts.map +1 -0
  295. package/dist/helpers/compare.interfaces.js +1 -0
  296. package/dist/helpers/constants.d.ts +108 -0
  297. package/dist/helpers/constants.d.ts.map +1 -0
  298. package/dist/helpers/constants.interfaces.d.ts +30 -0
  299. package/dist/helpers/constants.interfaces.d.ts.map +1 -0
  300. package/dist/helpers/constants.interfaces.js +11 -0
  301. package/dist/helpers/constants.js +436 -0
  302. package/dist/helpers/options.d.ts +64 -0
  303. package/dist/helpers/options.d.ts.map +1 -0
  304. package/dist/helpers/options.interfaces.d.ts +363 -0
  305. package/dist/helpers/options.interfaces.d.ts.map +1 -0
  306. package/dist/helpers/options.interfaces.js +1 -0
  307. package/dist/helpers/options.js +184 -0
  308. package/dist/helpers/options.test.d.ts +2 -0
  309. package/dist/helpers/options.test.d.ts.map +1 -0
  310. package/dist/helpers/options.test.js +428 -0
  311. package/dist/helpers/utils.d.ts +134 -0
  312. package/dist/helpers/utils.d.ts.map +1 -0
  313. package/dist/helpers/utils.interfaces.d.ts +254 -0
  314. package/dist/helpers/utils.interfaces.d.ts.map +1 -0
  315. package/dist/helpers/utils.interfaces.js +1 -0
  316. package/dist/helpers/utils.js +566 -0
  317. package/dist/helpers/utils.test.d.ts +2 -0
  318. package/dist/helpers/utils.test.d.ts.map +1 -0
  319. package/dist/helpers/utils.test.js +900 -0
  320. package/dist/index.d.ts +26 -0
  321. package/dist/index.d.ts.map +1 -0
  322. package/dist/index.js +18 -0
  323. package/dist/methods/compareReport.interfaces.d.ts +109 -0
  324. package/dist/methods/compareReport.interfaces.d.ts.map +1 -0
  325. package/dist/methods/compareReport.interfaces.js +1 -0
  326. package/dist/methods/createCompareReport.d.ts +7 -0
  327. package/dist/methods/createCompareReport.d.ts.map +1 -0
  328. package/dist/methods/createCompareReport.js +61 -0
  329. package/dist/methods/createCompareReport.test.d.ts +2 -0
  330. package/dist/methods/createCompareReport.test.d.ts.map +1 -0
  331. package/dist/methods/createCompareReport.test.js +236 -0
  332. package/dist/methods/elementPosition.d.ts +18 -0
  333. package/dist/methods/elementPosition.d.ts.map +1 -0
  334. package/dist/methods/elementPosition.interfaces.d.ts +14 -0
  335. package/dist/methods/elementPosition.interfaces.d.ts.map +1 -0
  336. package/dist/methods/elementPosition.interfaces.js +1 -0
  337. package/dist/methods/elementPosition.js +34 -0
  338. package/dist/methods/images.d.ts +69 -0
  339. package/dist/methods/images.d.ts.map +1 -0
  340. package/dist/methods/images.executeImageCompare.test.d.ts +2 -0
  341. package/dist/methods/images.executeImageCompare.test.d.ts.map +1 -0
  342. package/dist/methods/images.executeImageCompare.test.js +770 -0
  343. package/dist/methods/images.interfaces.d.ts +214 -0
  344. package/dist/methods/images.interfaces.d.ts.map +1 -0
  345. package/dist/methods/images.interfaces.js +1 -0
  346. package/dist/methods/images.js +428 -0
  347. package/dist/methods/images.test.d.ts +2 -0
  348. package/dist/methods/images.test.d.ts.map +1 -0
  349. package/dist/methods/images.test.js +1465 -0
  350. package/dist/methods/instanceData.d.ts +6 -0
  351. package/dist/methods/instanceData.d.ts.map +1 -0
  352. package/dist/methods/instanceData.interfaces.d.ts +57 -0
  353. package/dist/methods/instanceData.interfaces.d.ts.map +1 -0
  354. package/dist/methods/instanceData.interfaces.js +1 -0
  355. package/dist/methods/instanceData.js +42 -0
  356. package/dist/methods/instanceData.test.d.ts +2 -0
  357. package/dist/methods/instanceData.test.d.ts.map +1 -0
  358. package/dist/methods/instanceData.test.js +224 -0
  359. package/dist/methods/processDiffPixels.d.ts +59 -0
  360. package/dist/methods/processDiffPixels.d.ts.map +1 -0
  361. package/dist/methods/processDiffPixels.js +242 -0
  362. package/dist/methods/processDiffPixels.test.d.ts +2 -0
  363. package/dist/methods/processDiffPixels.test.d.ts.map +1 -0
  364. package/dist/methods/processDiffPixels.test.js +122 -0
  365. package/dist/methods/rectangles.d.ts +51 -0
  366. package/dist/methods/rectangles.d.ts.map +1 -0
  367. package/dist/methods/rectangles.interfaces.d.ts +146 -0
  368. package/dist/methods/rectangles.interfaces.d.ts.map +1 -0
  369. package/dist/methods/rectangles.interfaces.js +1 -0
  370. package/dist/methods/rectangles.js +266 -0
  371. package/dist/methods/rectangles.test.d.ts +2 -0
  372. package/dist/methods/rectangles.test.d.ts.map +1 -0
  373. package/dist/methods/rectangles.test.js +853 -0
  374. package/dist/methods/screenshots.d.ts +37 -0
  375. package/dist/methods/screenshots.d.ts.map +1 -0
  376. package/dist/methods/screenshots.interfaces.d.ts +203 -0
  377. package/dist/methods/screenshots.interfaces.d.ts.map +1 -0
  378. package/dist/methods/screenshots.interfaces.js +1 -0
  379. package/dist/methods/screenshots.js +394 -0
  380. package/dist/methods/screenshots.test.d.ts +2 -0
  381. package/dist/methods/screenshots.test.d.ts.map +1 -0
  382. package/dist/methods/screenshots.test.js +656 -0
  383. package/dist/methods/takeElementScreenshots.d.ts +3 -0
  384. package/dist/methods/takeElementScreenshots.d.ts.map +1 -0
  385. package/dist/methods/takeElementScreenshots.js +104 -0
  386. package/dist/methods/takeElementScreenshots.test.d.ts +2 -0
  387. package/dist/methods/takeElementScreenshots.test.d.ts.map +1 -0
  388. package/dist/methods/takeElementScreenshots.test.js +314 -0
  389. package/dist/methods/takeFullPageScreenshots.d.ts +3 -0
  390. package/dist/methods/takeFullPageScreenshots.d.ts.map +1 -0
  391. package/dist/methods/takeFullPageScreenshots.js +56 -0
  392. package/dist/methods/takeFullPageScreenshots.test.d.ts +2 -0
  393. package/dist/methods/takeFullPageScreenshots.test.d.ts.map +1 -0
  394. package/dist/methods/takeFullPageScreenshots.test.js +72 -0
  395. package/dist/methods/takeWebScreenshots.d.ts +3 -0
  396. package/dist/methods/takeWebScreenshots.d.ts.map +1 -0
  397. package/dist/methods/takeWebScreenshots.js +41 -0
  398. package/dist/methods/takeWebScreenshots.test.d.ts +2 -0
  399. package/dist/methods/takeWebScreenshots.test.d.ts.map +1 -0
  400. package/dist/methods/takeWebScreenshots.test.js +149 -0
  401. package/dist/mocks/image.d.ts +4 -0
  402. package/dist/mocks/image.d.ts.map +1 -0
  403. package/dist/mocks/image.js +3 -0
  404. package/dist/mocks/mocks.d.ts +745 -0
  405. package/dist/mocks/mocks.d.ts.map +1 -0
  406. package/dist/mocks/mocks.js +392 -0
  407. package/dist/resemble/compare.interfaces.d.ts +136 -0
  408. package/dist/resemble/compare.interfaces.d.ts.map +1 -0
  409. package/dist/resemble/compare.interfaces.js +1 -0
  410. package/dist/resemble/compareImages.d.ts +3 -0
  411. package/dist/resemble/compareImages.d.ts.map +1 -0
  412. package/dist/resemble/compareImages.js +21 -0
  413. package/dist/resemble/resemble.jimp.cjs +981 -0
  414. package/dist/resemble/resemble.jimp.d.cts +46 -0
  415. package/dist/resemble/resemble.jimp.d.cts.map +1 -0
  416. package/package.json +47 -0
@@ -0,0 +1,221 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
+ import saveAppScreen from './saveAppScreen.js';
3
+ import { buildAfterScreenshotOptions } from '../helpers/options.js';
4
+ import { BASE_CHECK_OPTIONS, createMethodOptions, createTestOptions } from '../mocks/mocks.js';
5
+ import { DEVICE_RECTANGLES } from '../helpers/constants.js';
6
+ vi.mock('../methods/screenshots.js', () => ({
7
+ takeBase64Screenshot: vi.fn().mockResolvedValue('base64-screenshot-data')
8
+ }));
9
+ vi.mock('../methods/images.js', () => ({
10
+ makeCroppedBase64Image: vi.fn().mockResolvedValue('cropped-base64-screenshot-data')
11
+ }));
12
+ vi.mock('../helpers/afterScreenshot.js', () => ({
13
+ default: vi.fn().mockResolvedValue({
14
+ devicePixelRatio: 2,
15
+ fileName: 'test-screen.png'
16
+ })
17
+ }));
18
+ vi.mock('../helpers/options.js', () => ({
19
+ buildAfterScreenshotOptions: vi.fn().mockReturnValue({
20
+ actualFolder: '/test/actual',
21
+ base64Image: 'base64-screenshot-data',
22
+ filePath: {
23
+ browserName: 'test-browser',
24
+ deviceName: 'test-device',
25
+ isMobile: true,
26
+ savePerInstance: false,
27
+ },
28
+ fileName: {
29
+ browserName: 'test-browser',
30
+ browserVersion: '17.0',
31
+ deviceName: 'test-device',
32
+ devicePixelRatio: 2,
33
+ formatImageName: '{tag}-{logName}-{width}x{height}-dpr-{dpr}',
34
+ isMobile: true,
35
+ isTestInBrowser: false,
36
+ logName: 'test-log',
37
+ name: 'test-device',
38
+ outerHeight: NaN,
39
+ outerWidth: NaN,
40
+ platformName: 'iOS',
41
+ platformVersion: '17.0',
42
+ screenHeight: 812,
43
+ screenWidth: 375,
44
+ tag: 'test-screen',
45
+ },
46
+ isNativeContext: true,
47
+ isLandscape: false,
48
+ platformName: 'iOS',
49
+ })
50
+ }));
51
+ describe('saveAppScreen', () => {
52
+ let takeBase64ScreenshotSpy;
53
+ let makeCroppedBase64ImageSpy;
54
+ let afterScreenshotSpy;
55
+ let buildAfterScreenshotOptionsSpy;
56
+ const baseOptions = {
57
+ browserInstance: { isAndroid: false, isMobile: false },
58
+ folders: BASE_CHECK_OPTIONS.folders,
59
+ instanceData: {
60
+ ...BASE_CHECK_OPTIONS.instanceData,
61
+ devicePixelRatio: 2,
62
+ deviceRectangles: {
63
+ ...DEVICE_RECTANGLES,
64
+ screenSize: {
65
+ width: 375,
66
+ height: 812
67
+ }
68
+ }
69
+ },
70
+ isNativeContext: true,
71
+ saveScreenOptions: {
72
+ wic: BASE_CHECK_OPTIONS.wic,
73
+ method: createMethodOptions({
74
+ disableBlinkingCursor: false,
75
+ disableCSSAnimation: false,
76
+ enableLayoutTesting: false,
77
+ enableLegacyScreenshotMethod: false,
78
+ hideScrollBars: true,
79
+ hideElements: [],
80
+ removeElements: [],
81
+ waitForFontsLoaded: true,
82
+ })
83
+ },
84
+ tag: 'test-screen'
85
+ };
86
+ beforeEach(async () => {
87
+ const { takeBase64Screenshot } = await import('../methods/screenshots.js');
88
+ const { makeCroppedBase64Image } = await import('../methods/images.js');
89
+ const afterScreenshot = (await import('../helpers/afterScreenshot.js')).default;
90
+ takeBase64ScreenshotSpy = vi.mocked(takeBase64Screenshot);
91
+ makeCroppedBase64ImageSpy = vi.mocked(makeCroppedBase64Image);
92
+ afterScreenshotSpy = vi.mocked(afterScreenshot);
93
+ buildAfterScreenshotOptionsSpy = vi.mocked(buildAfterScreenshotOptions);
94
+ });
95
+ afterEach(() => {
96
+ vi.clearAllMocks();
97
+ });
98
+ it('should execute saveAppScreen with basic options', async () => {
99
+ const result = await saveAppScreen(baseOptions);
100
+ expect(result).toMatchSnapshot();
101
+ expect(takeBase64ScreenshotSpy.mock.calls[0]).toMatchSnapshot();
102
+ expect(buildAfterScreenshotOptionsSpy.mock.calls[0][0]).toMatchSnapshot();
103
+ expect(afterScreenshotSpy.mock.calls[0]).toMatchSnapshot();
104
+ expect(makeCroppedBase64ImageSpy).not.toHaveBeenCalled();
105
+ });
106
+ it('should handle iOS device with bezel corners', async () => {
107
+ const options = createTestOptions(baseOptions, {
108
+ browserInstance: { isAndroid: false, isMobile: true },
109
+ instanceData: {
110
+ ...BASE_CHECK_OPTIONS.instanceData,
111
+ deviceName: 'iPhone 12',
112
+ isAndroid: false,
113
+ isIOS: true,
114
+ isMobile: true,
115
+ platformName: 'iOS',
116
+ platformVersion: '14.0',
117
+ deviceRectangles: {
118
+ ...DEVICE_RECTANGLES,
119
+ screenSize: {
120
+ width: 390,
121
+ height: 844
122
+ }
123
+ }
124
+ },
125
+ saveScreenOptions: {
126
+ wic: {
127
+ ...BASE_CHECK_OPTIONS.wic,
128
+ addIOSBezelCorners: true
129
+ },
130
+ method: createMethodOptions()
131
+ }
132
+ });
133
+ await saveAppScreen(options);
134
+ expect(takeBase64ScreenshotSpy.mock.calls[0]).toMatchSnapshot();
135
+ expect(buildAfterScreenshotOptionsSpy.mock.calls[0][0]).toMatchSnapshot();
136
+ expect(makeCroppedBase64ImageSpy.mock.calls[0]).toMatchSnapshot();
137
+ expect(afterScreenshotSpy.mock.calls[0]).toMatchSnapshot();
138
+ });
139
+ it('should handle Android device correctly', async () => {
140
+ const options = createTestOptions(baseOptions, {
141
+ browserInstance: { isAndroid: true, isMobile: true },
142
+ instanceData: {
143
+ ...BASE_CHECK_OPTIONS.instanceData,
144
+ deviceName: 'Pixel 4',
145
+ isAndroid: true,
146
+ isIOS: false,
147
+ isMobile: true,
148
+ platformName: 'Android',
149
+ platformVersion: '11.0',
150
+ deviceRectangles: {
151
+ ...DEVICE_RECTANGLES,
152
+ screenSize: {
153
+ width: 412,
154
+ height: 915
155
+ }
156
+ }
157
+ }
158
+ });
159
+ await saveAppScreen(options);
160
+ expect(takeBase64ScreenshotSpy.mock.calls[0]).toMatchSnapshot();
161
+ expect(buildAfterScreenshotOptionsSpy.mock.calls[0][0]).toMatchSnapshot();
162
+ expect(makeCroppedBase64ImageSpy).not.toHaveBeenCalled();
163
+ expect(afterScreenshotSpy.mock.calls[0]).toMatchSnapshot();
164
+ });
165
+ it('should handle non-native context correctly', async () => {
166
+ const options = createTestOptions(baseOptions, {
167
+ isNativeContext: false
168
+ });
169
+ await saveAppScreen(options);
170
+ expect(takeBase64ScreenshotSpy.mock.calls[0]).toMatchSnapshot();
171
+ expect(buildAfterScreenshotOptionsSpy.mock.calls[0][0]).toMatchSnapshot();
172
+ expect(makeCroppedBase64ImageSpy).not.toHaveBeenCalled();
173
+ expect(afterScreenshotSpy.mock.calls[0]).toMatchSnapshot();
174
+ });
175
+ it('should handle custom image naming', async () => {
176
+ const options = createTestOptions(baseOptions, {
177
+ saveScreenOptions: {
178
+ wic: {
179
+ ...BASE_CHECK_OPTIONS.wic,
180
+ formatImageName: '{tag}-{browserName}-{deviceName}'
181
+ },
182
+ method: createMethodOptions()
183
+ }
184
+ });
185
+ await saveAppScreen(options);
186
+ expect(buildAfterScreenshotOptionsSpy.mock.calls[0][0]).toMatchSnapshot();
187
+ expect(afterScreenshotSpy.mock.calls[0]).toMatchSnapshot();
188
+ });
189
+ it('should handle save per instance', async () => {
190
+ const options = createTestOptions(baseOptions, {
191
+ saveScreenOptions: {
192
+ wic: {
193
+ ...BASE_CHECK_OPTIONS.wic,
194
+ savePerInstance: true
195
+ },
196
+ method: createMethodOptions()
197
+ }
198
+ });
199
+ await saveAppScreen(options);
200
+ expect(buildAfterScreenshotOptionsSpy.mock.calls[0][0]).toMatchSnapshot();
201
+ expect(afterScreenshotSpy.mock.calls[0]).toMatchSnapshot();
202
+ });
203
+ it('should handle custom screen sizes', async () => {
204
+ const options = createTestOptions(baseOptions, {
205
+ instanceData: {
206
+ ...BASE_CHECK_OPTIONS.instanceData,
207
+ deviceRectangles: {
208
+ ...DEVICE_RECTANGLES,
209
+ screenSize: {
210
+ width: 1920,
211
+ height: 1080
212
+ }
213
+ }
214
+ }
215
+ });
216
+ await saveAppScreen(options);
217
+ expect(takeBase64ScreenshotSpy.mock.calls[0][0]).toMatchSnapshot();
218
+ expect(buildAfterScreenshotOptionsSpy.mock.calls[0][0]).toMatchSnapshot();
219
+ expect(afterScreenshotSpy.mock.calls[0]).toMatchSnapshot();
220
+ });
221
+ });
@@ -0,0 +1,7 @@
1
+ import type { ScreenshotOutput } from '../helpers/afterScreenshot.interfaces.js';
2
+ import type { InternalSaveElementMethodOptions } from './save.interfaces.js';
3
+ /**
4
+ * Saves an image of an element
5
+ */
6
+ export default function saveElement({ browserInstance, element, folders, instanceData, isNativeContext, saveElementOptions, tag, }: InternalSaveElementMethodOptions): Promise<ScreenshotOutput>;
7
+ //# sourceMappingURL=saveElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveElement.d.ts","sourceRoot":"","sources":["../../src/commands/saveElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAChF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAA;AAI5E;;GAEG;AACH,wBAA8B,WAAW,CACrC,EACI,eAAe,EACf,OAAO,EACP,OAAO,EACP,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,GAAG,GACN,EAAE,gCAAgC,GACpC,OAAO,CAAC,gBAAgB,CAAC,CAI3B"}
@@ -0,0 +1,10 @@
1
+ import saveAppElement from './saveAppElement.js';
2
+ import saveWebElement from './saveWebElement.js';
3
+ /**
4
+ * Saves an image of an element
5
+ */
6
+ export default async function saveElement({ browserInstance, element, folders, instanceData, isNativeContext, saveElementOptions, tag, }) {
7
+ return isNativeContext
8
+ ? saveAppElement({ browserInstance, element, folders, instanceData, saveElementOptions, isNativeContext, tag })
9
+ : saveWebElement({ browserInstance, element, folders, instanceData, saveElementOptions, tag });
10
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=saveElement.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveElement.test.d.ts","sourceRoot":"","sources":["../../src/commands/saveElement.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,62 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
+ import saveElement from './saveElement.js';
3
+ import { BASE_CHECK_OPTIONS, createMethodOptions } from '../mocks/mocks.js';
4
+ vi.mock('./saveAppElement.js', () => ({
5
+ default: vi.fn().mockResolvedValue({
6
+ devicePixelRatio: 2,
7
+ fileName: 'test-app-element.png'
8
+ })
9
+ }));
10
+ vi.mock('./saveWebElement.js', () => ({
11
+ default: vi.fn().mockResolvedValue({
12
+ devicePixelRatio: 2,
13
+ fileName: 'test-web-element.png'
14
+ })
15
+ }));
16
+ describe('saveElement', () => {
17
+ let saveAppElementSpy;
18
+ let saveWebElementSpy;
19
+ const baseOptions = {
20
+ browserInstance: { isAndroid: false, isMobile: false },
21
+ element: {
22
+ elementId: 'test-element',
23
+ selector: '#test-element',
24
+ isDisplayed: vi.fn().mockResolvedValue(true),
25
+ getSize: vi.fn().mockResolvedValue({ width: 100, height: 100 }),
26
+ getLocation: vi.fn().mockResolvedValue({ x: 0, y: 0 })
27
+ },
28
+ folders: BASE_CHECK_OPTIONS.folders,
29
+ instanceData: BASE_CHECK_OPTIONS.instanceData,
30
+ isNativeContext: true,
31
+ saveElementOptions: {
32
+ wic: BASE_CHECK_OPTIONS.wic,
33
+ method: createMethodOptions()
34
+ },
35
+ tag: 'test-element'
36
+ };
37
+ beforeEach(async () => {
38
+ const saveAppElement = (await import('./saveAppElement.js')).default;
39
+ const saveWebElement = (await import('./saveWebElement.js')).default;
40
+ saveAppElementSpy = vi.mocked(saveAppElement);
41
+ saveWebElementSpy = vi.mocked(saveWebElement);
42
+ });
43
+ afterEach(() => {
44
+ vi.clearAllMocks();
45
+ });
46
+ it('should execute saveAppElement when isNativeContext is true', async () => {
47
+ const result = await saveElement(baseOptions);
48
+ expect(result).toMatchSnapshot();
49
+ expect(saveAppElementSpy.mock.calls[0]).toMatchSnapshot();
50
+ expect(saveWebElementSpy).not.toHaveBeenCalled();
51
+ });
52
+ it('should execute saveWebElement when isNativeContext is false', async () => {
53
+ const options = {
54
+ ...baseOptions,
55
+ isNativeContext: false
56
+ };
57
+ const result = await saveElement(options);
58
+ expect(result).toMatchSnapshot();
59
+ expect(saveWebElementSpy.mock.calls[0]).toMatchSnapshot();
60
+ expect(saveAppElementSpy).not.toHaveBeenCalled();
61
+ });
62
+ });
@@ -0,0 +1,7 @@
1
+ import type { ScreenshotOutput } from '../helpers/afterScreenshot.interfaces.js';
2
+ import type { InternalSaveFullPageMethodOptions } from './save.interfaces.js';
3
+ /**
4
+ * Saves an image of the full page
5
+ */
6
+ export default function saveFullPageScreen({ browserInstance, instanceData, folders, tag, saveFullPageOptions, isNativeContext, }: InternalSaveFullPageMethodOptions): Promise<ScreenshotOutput>;
7
+ //# sourceMappingURL=saveFullPageScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveFullPageScreen.d.ts","sourceRoot":"","sources":["../../src/commands/saveFullPageScreen.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAGhF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAA;AAI7E;;GAEG;AACH,wBAA8B,kBAAkB,CAC5C,EACI,eAAe,EACf,YAAY,EACZ,OAAO,EACP,GAAG,EACH,mBAAmB,EACnB,eAAe,GAClB,EAAE,iCAAiC,GACrC,OAAO,CAAC,gBAAgB,CAAC,CAuE3B"}
@@ -0,0 +1,60 @@
1
+ import beforeScreenshot from '../helpers/beforeScreenshot.js';
2
+ import afterScreenshot from '../helpers/afterScreenshot.js';
3
+ import { takeFullPageScreenshots } from '../methods/takeFullPageScreenshots.js';
4
+ import { makeFullPageBase64Image } from '../methods/images.js';
5
+ import { getMethodOrWicOption, canUseBidiScreenshot } from '../helpers/utils.js';
6
+ import { createBeforeScreenshotOptions, buildAfterScreenshotOptions } from '../helpers/options.js';
7
+ /**
8
+ * Saves an image of the full page
9
+ */
10
+ export default async function saveFullPageScreen({ browserInstance, instanceData, folders, tag, saveFullPageOptions, isNativeContext, }) {
11
+ // 1. Check if the method is supported in native context
12
+ if (isNativeContext) {
13
+ throw new Error('The method saveFullPageScreen is not supported in native context for native mobile apps!');
14
+ }
15
+ // 2. Set some variables
16
+ const { formatImageName, savePerInstance } = saveFullPageOptions.wic;
17
+ const enableLegacyScreenshotMethod = getMethodOrWicOption(saveFullPageOptions.method, saveFullPageOptions.wic, 'enableLegacyScreenshotMethod');
18
+ const fullPageScrollTimeout = getMethodOrWicOption(saveFullPageOptions.method, saveFullPageOptions.wic, 'fullPageScrollTimeout');
19
+ const hideAfterFirstScroll = saveFullPageOptions.method.hideAfterFirstScroll || [];
20
+ const userBasedFullPageScreenshot = getMethodOrWicOption(saveFullPageOptions.method, saveFullPageOptions.wic, 'userBasedFullPageScreenshot');
21
+ // 3. Prepare the screenshot
22
+ const beforeOptions = createBeforeScreenshotOptions(instanceData, saveFullPageOptions.method, saveFullPageOptions.wic);
23
+ const enrichedInstanceData = await beforeScreenshot(browserInstance, beforeOptions, true);
24
+ const { dimensions: { window: { devicePixelRatio, innerHeight, isEmulated: _isEmulated, isLandscape, screenHeight, screenWidth, }, }, isAndroid, isAndroidChromeDriverScreenshot, isAndroidNativeWebScreenshot, isIOS, } = enrichedInstanceData;
25
+ // 4. Take the screenshot
26
+ const fullPageScreenshotOptions = {
27
+ addressBarShadowPadding: beforeOptions.addressBarShadowPadding,
28
+ devicePixelRatio: devicePixelRatio || NaN,
29
+ deviceRectangles: instanceData.deviceRectangles,
30
+ fullPageScrollTimeout,
31
+ hideAfterFirstScroll,
32
+ innerHeight: innerHeight || NaN,
33
+ isAndroid,
34
+ isAndroidChromeDriverScreenshot,
35
+ isAndroidNativeWebScreenshot,
36
+ isIOS,
37
+ isLandscape,
38
+ screenHeight: screenHeight || NaN,
39
+ screenWidth: screenWidth || NaN,
40
+ toolBarShadowPadding: beforeOptions.toolBarShadowPadding,
41
+ };
42
+ const shouldUseBidi = canUseBidiScreenshot(browserInstance) && (!userBasedFullPageScreenshot || !enableLegacyScreenshotMethod);
43
+ const screenshotsData = await takeFullPageScreenshots(browserInstance, fullPageScreenshotOptions, shouldUseBidi);
44
+ // 5. Get the final image - either direct BiDi or stitched from multiple screenshots
45
+ const fullPageBase64Image = (screenshotsData.fullPageHeight === -1 && screenshotsData.fullPageWidth === -1)
46
+ ? screenshotsData.data[0].screenshot // BiDi screenshot - use directly
47
+ : await makeFullPageBase64Image(screenshotsData, { devicePixelRatio: devicePixelRatio || NaN, isLandscape });
48
+ // 6. Return the data
49
+ const afterOptions = buildAfterScreenshotOptions({
50
+ base64Image: fullPageBase64Image,
51
+ folders,
52
+ tag,
53
+ isNativeContext: false,
54
+ instanceData,
55
+ enrichedInstanceData,
56
+ beforeOptions,
57
+ wicOptions: { formatImageName, savePerInstance }
58
+ });
59
+ return afterScreenshot(browserInstance, afterOptions);
60
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=saveFullPageScreen.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveFullPageScreen.test.d.ts","sourceRoot":"","sources":["../../src/commands/saveFullPageScreen.test.ts"],"names":[],"mappings":""}