@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,428 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { defaultOptions, methodCompareOptions, screenMethodCompareOptions, createBeforeScreenshotOptions, buildAfterScreenshotOptions } from './options.js';
3
+ describe('options', () => {
4
+ describe('defaultOptions', () => {
5
+ it('should return the default options when no options are provided', () => {
6
+ expect(defaultOptions({})).toMatchSnapshot();
7
+ });
8
+ it('should return the provided options when options are provided', () => {
9
+ const options = {
10
+ addressBarShadowPadding: 1,
11
+ autoSaveBaseline: true,
12
+ formatImageName: '{foo}-{bar}',
13
+ savePerInstance: true,
14
+ toolBarShadowPadding: 1,
15
+ disableBlinkingCursor: true,
16
+ disableCSSAnimation: true,
17
+ fullPageScrollTimeout: 12345,
18
+ hideScrollBars: true,
19
+ blockOutSideBar: true,
20
+ blockOutStatusBar: true,
21
+ blockOutToolBar: true,
22
+ createJsonReportFiles: true,
23
+ diffPixelBoundingBoxProximity: 123,
24
+ ignoreAlpha: true,
25
+ ignoreAntialiasing: true,
26
+ ignoreColors: true,
27
+ ignoreLess: true,
28
+ ignoreNothing: true,
29
+ rawMisMatchPercentage: true,
30
+ returnAllCompareData: true,
31
+ saveAboveTolerance: 12,
32
+ scaleImagesToSameSize: true,
33
+ tabbableOptions: {
34
+ circle: {
35
+ backgroundColor: 'backgroundColor',
36
+ borderColor: 'borderColor',
37
+ borderWidth: 123,
38
+ fontColor: 'fontColor',
39
+ fontFamily: 'fontFamily',
40
+ fontSize: 321,
41
+ size: 567,
42
+ showNumber: false,
43
+ },
44
+ line: {
45
+ color: 'color',
46
+ width: 987,
47
+ },
48
+ },
49
+ };
50
+ expect(defaultOptions(options)).toMatchSnapshot();
51
+ });
52
+ });
53
+ describe('methodCompareOptions', () => {
54
+ it('should not return the method options when no options are provided', () => {
55
+ expect(methodCompareOptions({})).toMatchSnapshot();
56
+ });
57
+ it('should return the provided options when options are provided', () => {
58
+ const options = {
59
+ blockOut: [{ height: 1, width: 2, x: 3, y: 4 }],
60
+ ignoreAlpha: true,
61
+ ignoreAntialiasing: true,
62
+ ignoreColors: true,
63
+ ignoreLess: true,
64
+ ignoreNothing: true,
65
+ rawMisMatchPercentage: true,
66
+ returnAllCompareData: true,
67
+ saveAboveTolerance: 12,
68
+ scaleImagesToSameSize: true,
69
+ };
70
+ expect(methodCompareOptions(options)).toMatchSnapshot();
71
+ });
72
+ });
73
+ describe('screenMethodCompareOptions', () => {
74
+ it('should not return the screen method options when no options are provided', () => {
75
+ expect(screenMethodCompareOptions({})).toMatchSnapshot();
76
+ });
77
+ it('should return the provided options when options are provided', () => {
78
+ const options = {
79
+ blockOutSideBar: false,
80
+ blockOutStatusBar: false,
81
+ blockOutToolBar: false,
82
+ blockOut: [{ height: 1, width: 2, x: 3, y: 4 }],
83
+ ignoreAlpha: true,
84
+ ignoreAntialiasing: true,
85
+ ignoreColors: true,
86
+ ignoreLess: true,
87
+ ignoreNothing: true,
88
+ rawMisMatchPercentage: true,
89
+ returnAllCompareData: true,
90
+ saveAboveTolerance: 12,
91
+ scaleImagesToSameSize: true,
92
+ };
93
+ expect(screenMethodCompareOptions(options)).toMatchSnapshot();
94
+ });
95
+ });
96
+ describe('createBeforeScreenshotOptions', () => {
97
+ const mockElement = { tagName: 'DIV' };
98
+ const baseWicOptions = {
99
+ addressBarShadowPadding: 10,
100
+ toolBarShadowPadding: 20,
101
+ };
102
+ it('should create options with defaults when minimal options are provided', () => {
103
+ const result = createBeforeScreenshotOptions('testInstance', {}, baseWicOptions);
104
+ expect(result).toEqual({
105
+ instanceData: 'testInstance',
106
+ addressBarShadowPadding: 10,
107
+ toolBarShadowPadding: 20,
108
+ disableBlinkingCursor: false,
109
+ disableCSSAnimation: false,
110
+ enableLayoutTesting: false,
111
+ hideElements: [],
112
+ noScrollBars: false,
113
+ removeElements: [],
114
+ waitForFontsLoaded: false,
115
+ });
116
+ });
117
+ it('should prioritize methodOptions over wicOptions for overlapping properties', () => {
118
+ const methodOptions = {
119
+ disableBlinkingCursor: true,
120
+ disableCSSAnimation: true,
121
+ hideScrollBars: true,
122
+ };
123
+ const wicOptions = {
124
+ ...baseWicOptions,
125
+ disableBlinkingCursor: false,
126
+ disableCSSAnimation: false,
127
+ hideScrollBars: false,
128
+ };
129
+ const result = createBeforeScreenshotOptions('testInstance', methodOptions, wicOptions);
130
+ expect(result.disableBlinkingCursor).toBe(true);
131
+ expect(result.disableCSSAnimation).toBe(true);
132
+ expect(result.noScrollBars).toBe(true);
133
+ });
134
+ it('should use wicOptions when methodOptions are undefined', () => {
135
+ const wicOptions = {
136
+ ...baseWicOptions,
137
+ disableBlinkingCursor: true,
138
+ enableLayoutTesting: true,
139
+ waitForFontsLoaded: true,
140
+ };
141
+ const result = createBeforeScreenshotOptions('testInstance', {}, wicOptions);
142
+ expect(result.disableBlinkingCursor).toBe(true);
143
+ expect(result.enableLayoutTesting).toBe(true);
144
+ expect(result.waitForFontsLoaded).toBe(true);
145
+ });
146
+ it('should handle element arrays from methodOptions', () => {
147
+ const hideElements = [mockElement];
148
+ const removeElements = [mockElement, mockElement];
149
+ const methodOptions = {
150
+ hideElements,
151
+ removeElements,
152
+ };
153
+ const result = createBeforeScreenshotOptions('testInstance', methodOptions, baseWicOptions);
154
+ expect(result.hideElements).toBe(hideElements);
155
+ expect(result.removeElements).toBe(removeElements);
156
+ });
157
+ it('should handle all boolean options set to true in methodOptions', () => {
158
+ const methodOptions = {
159
+ disableBlinkingCursor: true,
160
+ disableCSSAnimation: true,
161
+ enableLayoutTesting: true,
162
+ hideScrollBars: true,
163
+ waitForFontsLoaded: true,
164
+ };
165
+ const result = createBeforeScreenshotOptions('testInstance', methodOptions, baseWicOptions);
166
+ expect(result.disableBlinkingCursor).toBe(true);
167
+ expect(result.disableCSSAnimation).toBe(true);
168
+ expect(result.enableLayoutTesting).toBe(true);
169
+ expect(result.noScrollBars).toBe(true);
170
+ expect(result.waitForFontsLoaded).toBe(true);
171
+ });
172
+ it('should preserve instanceData exactly as passed', () => {
173
+ const complexInstanceData = { browser: 'chrome', version: '120', viewport: { width: 1920, height: 1080 } };
174
+ const result = createBeforeScreenshotOptions(complexInstanceData, {}, baseWicOptions);
175
+ expect(result.instanceData).toBe(complexInstanceData);
176
+ });
177
+ });
178
+ describe('buildAfterScreenshotOptions', () => {
179
+ const mockInstanceData = {
180
+ appName: 'testApp',
181
+ browserName: 'chrome',
182
+ browserVersion: '120.0.0',
183
+ deviceName: 'desktop',
184
+ devicePixelRatio: 2,
185
+ deviceRectangles: {
186
+ bottomBar: { height: 0, width: 0, x: 0, y: 0 },
187
+ homeBar: { height: 0, width: 0, x: 0, y: 0 },
188
+ leftSidePadding: { height: 0, width: 0, x: 0, y: 0 },
189
+ rightSidePadding: { height: 0, width: 0, x: 0, y: 0 },
190
+ screenSize: { height: 1080, width: 1920 },
191
+ statusBar: { height: 0, width: 0, x: 0, y: 0 },
192
+ statusBarAndAddressBar: { height: 0, width: 0, x: 0, y: 0 },
193
+ viewport: { height: 900, width: 1200, x: 0, y: 0 }
194
+ },
195
+ initialDevicePixelRatio: 2,
196
+ isAndroid: false,
197
+ isIOS: false,
198
+ isMobile: false,
199
+ logName: 'chrome',
200
+ name: 'chrome',
201
+ nativeWebScreenshot: false,
202
+ platformName: 'desktop',
203
+ platformVersion: '120.0.0'
204
+ };
205
+ const mockEnrichedInstanceData = {
206
+ ...mockInstanceData,
207
+ dimensions: {
208
+ body: {
209
+ scrollHeight: 1000,
210
+ offsetHeight: 1000
211
+ },
212
+ html: {
213
+ clientWidth: 1200,
214
+ scrollWidth: 1200,
215
+ clientHeight: 900,
216
+ scrollHeight: 1000,
217
+ offsetHeight: 1000
218
+ },
219
+ window: {
220
+ devicePixelRatio: 3,
221
+ innerHeight: 800,
222
+ innerWidth: 1100,
223
+ isEmulated: false,
224
+ isLandscape: true,
225
+ outerHeight: 1000,
226
+ outerWidth: 1200,
227
+ screenHeight: 1440,
228
+ screenWidth: 2560,
229
+ }
230
+ },
231
+ isAndroidChromeDriverScreenshot: false,
232
+ isAndroidNativeWebScreenshot: false,
233
+ isTestInBrowser: true,
234
+ isTestInMobileBrowser: false,
235
+ addressBarShadowPadding: 10,
236
+ toolBarShadowPadding: 20
237
+ };
238
+ const baseInput = {
239
+ base64Image: 'test-screenshot-data',
240
+ folders: { actualFolder: '/test/actual' },
241
+ tag: 'test-element',
242
+ isNativeContext: false,
243
+ instanceData: mockInstanceData,
244
+ wicOptions: {
245
+ formatImageName: '{tag}-{browserName}-{width}x{height}',
246
+ savePerInstance: false
247
+ }
248
+ };
249
+ it('should build options for native commands (no enriched data)', () => {
250
+ const input = {
251
+ ...baseInput,
252
+ isNativeContext: true
253
+ };
254
+ const result = buildAfterScreenshotOptions(input);
255
+ expect(result).toMatchSnapshot();
256
+ expect(result.isNativeContext).toBe(true);
257
+ expect(result.isLandscape).toBe(false);
258
+ expect(result.disableBlinkingCursor).toBeUndefined();
259
+ expect(result.hideElements).toBeUndefined();
260
+ });
261
+ it('should build options for web commands with enriched data', () => {
262
+ const beforeOptions = {
263
+ instanceData: mockInstanceData,
264
+ addressBarShadowPadding: 10,
265
+ toolBarShadowPadding: 20,
266
+ disableBlinkingCursor: true,
267
+ disableCSSAnimation: false,
268
+ enableLayoutTesting: true,
269
+ hideElements: [],
270
+ noScrollBars: true,
271
+ removeElements: [],
272
+ waitForFontsLoaded: false
273
+ };
274
+ const input = {
275
+ ...baseInput,
276
+ enrichedInstanceData: mockEnrichedInstanceData,
277
+ beforeOptions
278
+ };
279
+ const result = buildAfterScreenshotOptions(input);
280
+ expect(result).toMatchSnapshot();
281
+ expect(result.isNativeContext).toBe(false);
282
+ expect(result.isLandscape).toBe(true);
283
+ expect(result.disableBlinkingCursor).toBe(true);
284
+ expect(result.disableCSSAnimation).toBe(false);
285
+ expect(result.enableLayoutTesting).toBe(true);
286
+ expect(result.hideScrollBars).toBe(true);
287
+ expect(result.hideElements).toEqual([]);
288
+ expect(result.removeElements).toEqual([]);
289
+ });
290
+ it('should prioritize enriched data over instance data', () => {
291
+ const input = {
292
+ ...baseInput,
293
+ enrichedInstanceData: mockEnrichedInstanceData
294
+ };
295
+ const result = buildAfterScreenshotOptions(input);
296
+ expect(result.fileName.devicePixelRatio).toBe(3);
297
+ expect(result.fileName.outerHeight).toBe(1000);
298
+ expect(result.fileName.screenHeight).toBe(1440);
299
+ expect(result.isLandscape).toBe(true);
300
+ });
301
+ it('should handle NaN values correctly', () => {
302
+ const enrichedWithNaN = {
303
+ ...mockEnrichedInstanceData,
304
+ dimensions: {
305
+ ...mockEnrichedInstanceData.dimensions,
306
+ window: {
307
+ ...mockEnrichedInstanceData.dimensions.window,
308
+ devicePixelRatio: undefined,
309
+ outerHeight: undefined,
310
+ outerWidth: undefined,
311
+ screenHeight: undefined,
312
+ screenWidth: undefined,
313
+ }
314
+ }
315
+ };
316
+ const input = {
317
+ ...baseInput,
318
+ enrichedInstanceData: enrichedWithNaN
319
+ };
320
+ const result = buildAfterScreenshotOptions(input);
321
+ expect(result.fileName.devicePixelRatio).toBe(2);
322
+ expect(result.fileName.outerHeight).toBeNaN();
323
+ expect(result.fileName.outerWidth).toBeNaN();
324
+ expect(result.fileName.screenHeight).toBe(1080);
325
+ expect(result.fileName.screenWidth).toBe(1920);
326
+ });
327
+ it('should handle missing enriched data gracefully', () => {
328
+ const input = {
329
+ ...baseInput,
330
+ enrichedInstanceData: undefined
331
+ };
332
+ const result = buildAfterScreenshotOptions(input);
333
+ expect(result.fileName.devicePixelRatio).toBe(2);
334
+ expect(result.fileName.screenHeight).toBe(1080);
335
+ expect(result.fileName.screenWidth).toBe(1920);
336
+ expect(result.fileName.logName).toBe('chrome');
337
+ expect(result.fileName.name).toBe('chrome');
338
+ expect(result.isLandscape).toBe(false);
339
+ });
340
+ it('should handle element arrays from beforeOptions', () => {
341
+ const mockElement = { tagName: 'DIV' };
342
+ const beforeOptions = {
343
+ instanceData: mockInstanceData,
344
+ addressBarShadowPadding: 10,
345
+ toolBarShadowPadding: 20,
346
+ disableBlinkingCursor: false,
347
+ disableCSSAnimation: false,
348
+ enableLayoutTesting: false,
349
+ hideElements: [mockElement],
350
+ noScrollBars: false,
351
+ removeElements: [mockElement, mockElement],
352
+ waitForFontsLoaded: false
353
+ };
354
+ const input = {
355
+ ...baseInput,
356
+ beforeOptions
357
+ };
358
+ const result = buildAfterScreenshotOptions(input);
359
+ expect(result.hideElements).toEqual([mockElement]);
360
+ expect(result.removeElements).toEqual([mockElement, mockElement]);
361
+ });
362
+ it('should build correct filePath structure', () => {
363
+ const input = {
364
+ ...baseInput,
365
+ wicOptions: {
366
+ formatImageName: '{tag}-{logName}',
367
+ savePerInstance: true
368
+ }
369
+ };
370
+ const result = buildAfterScreenshotOptions(input);
371
+ expect(result.filePath).toEqual({
372
+ browserName: 'chrome',
373
+ deviceName: 'desktop',
374
+ isMobile: false,
375
+ savePerInstance: true
376
+ });
377
+ });
378
+ it('should build correct fileName structure with all properties', () => {
379
+ const input = {
380
+ ...baseInput,
381
+ enrichedInstanceData: mockEnrichedInstanceData
382
+ };
383
+ const result = buildAfterScreenshotOptions(input);
384
+ expect(result.fileName).toEqual({
385
+ browserName: 'chrome',
386
+ browserVersion: '120.0.0',
387
+ deviceName: 'desktop',
388
+ devicePixelRatio: 3,
389
+ formatImageName: '{tag}-{browserName}-{width}x{height}',
390
+ isMobile: false,
391
+ isTestInBrowser: true,
392
+ logName: 'chrome',
393
+ name: 'chrome',
394
+ outerHeight: 1000,
395
+ outerWidth: 1200,
396
+ platformName: 'desktop',
397
+ platformVersion: '120.0.0',
398
+ screenHeight: 1440,
399
+ screenWidth: 2560,
400
+ tag: 'test-element'
401
+ });
402
+ });
403
+ it('should handle mobile device correctly', () => {
404
+ const mobileInstanceData = {
405
+ ...mockInstanceData,
406
+ isMobile: true,
407
+ deviceName: 'iPhone',
408
+ platformName: 'iOS'
409
+ };
410
+ const mobileEnrichedData = {
411
+ ...mockEnrichedInstanceData,
412
+ isMobile: true,
413
+ deviceName: 'iPhone',
414
+ platformName: 'iOS'
415
+ };
416
+ const input = {
417
+ ...baseInput,
418
+ instanceData: mobileInstanceData,
419
+ enrichedInstanceData: mobileEnrichedData
420
+ };
421
+ const result = buildAfterScreenshotOptions(input);
422
+ expect(result.filePath.isMobile).toBe(true);
423
+ expect(result.fileName.isMobile).toBe(true);
424
+ expect(result.fileName.deviceName).toBe('iPhone');
425
+ expect(result.platformName).toBe('iOS');
426
+ });
427
+ });
428
+ });
@@ -0,0 +1,134 @@
1
+ import type { BaseExecuteCompareOptions, BuildBaseExecuteCompareOptionsOptions, BuildFolderOptionsOptions, CommonCheckVariables, ComparisonFilePaths, ExecuteNativeClickOptions, ExtractCommonCheckVariablesOptions, FolderOptions, FormatFileNameOptions, GetAddressBarShadowPaddingOptions, GetAndCreatePathOptions, GetIosBezelImageNames, GetMobileScreenSizeOptions, GetMobileViewPortPositionOptions, GetToolBarShadowPaddingOptions, LoadBase64HtmlOptions, PrepareComparisonFilePathsOptions, ScreenshotSize } from './utils.interfaces.js';
2
+ import type { ClassOptions, CompareOptions } from './options.interfaces.js';
3
+ import type { DeviceRectangles } from '../methods/rectangles.interfaces.js';
4
+ import type { BaseDimensions } from '../base.interfaces.js';
5
+ /**
6
+ * Get and create a folder
7
+ */
8
+ export declare function getAndCreatePath(folder: string, options: GetAndCreatePathOptions): string;
9
+ /**
10
+ * Format the filename
11
+ */
12
+ export declare function formatFileName(options: FormatFileNameOptions): string;
13
+ /**
14
+ * Checks if the test is executed in a browser
15
+ * checking for app is not sufficient because different vendors have different
16
+ * custom names and or solutions for the app
17
+ */
18
+ export declare function checkTestInBrowser(browserName: string): boolean;
19
+ /**
20
+ * Checks if the test is executed in a browser on a mobile phone
21
+ */
22
+ export declare function checkTestInMobileBrowser(isMobile: boolean, browserName: string): boolean;
23
+ /**
24
+ * Checks if this is a native webscreenshot on android
25
+ */
26
+ export declare function checkAndroidNativeWebScreenshot(isAndroid: boolean, nativeWebscreenshot: boolean): boolean;
27
+ /**
28
+ * Checks if this is an Android chromedriver screenshot
29
+ */
30
+ export declare function checkAndroidChromeDriverScreenshot(isAndroid: boolean, nativeWebScreenshot: boolean): boolean;
31
+ /**
32
+ * Get the address bar shadow padding. This is only needed for Android native webscreenshot and iOS
33
+ */
34
+ export declare function getAddressBarShadowPadding(options: GetAddressBarShadowPaddingOptions): number;
35
+ /**
36
+ * Get the tool bar shadow padding. Add some extra padding for iOS when we have a home bar
37
+ */
38
+ export declare function getToolBarShadowPadding(options: GetToolBarShadowPaddingOptions): number;
39
+ /**
40
+ * Calculate the data based on the device pixel ratio
41
+ */
42
+ export declare function calculateDprData<T>(data: T, devicePixelRatio: number): T;
43
+ /**
44
+ * Wait for an amount of milliseconds
45
+ */
46
+ export declare function waitFor(milliseconds: number): Promise<void>;
47
+ /**
48
+ * Get the size of a screenshot in pixels without the device pixel ratio
49
+ */
50
+ export declare function getBase64ScreenshotSize(screenshot: string, devicePixelRation?: number): ScreenshotSize;
51
+ /**
52
+ * Get the device pixel ratio
53
+ */
54
+ export declare function getDevicePixelRatio(screenshot: string, deviceScreenSize: BaseDimensions): number;
55
+ /**
56
+ * Get the iOS bezel image names
57
+ */
58
+ export declare function getIosBezelImageNames(normalizedDeviceName: string): GetIosBezelImageNames;
59
+ /**
60
+ * Validate that the item is an object
61
+ */
62
+ export declare function isObject(item: unknown): item is object | Function;
63
+ /**
64
+ * Validate if it's storybook
65
+ */
66
+ export declare function isStorybook(): boolean;
67
+ /**
68
+ * Check if we want to update baseline images
69
+ */
70
+ export declare function updateVisualBaseline(): boolean;
71
+ /**
72
+ * Log the deprecated root compareOptions (at `ClassOptions` level)
73
+ * and returns non-undefined ones to be added back to the config
74
+ */
75
+ export declare function logAllDeprecatedCompareOptions(options: ClassOptions): Partial<CompareOptions>;
76
+ /**
77
+ * Get the mobile screen size, this is different for native and webview
78
+ */
79
+ export declare function getMobileScreenSize({ browserInstance, isIOS, isNativeContext, }: GetMobileScreenSizeOptions): Promise<BaseDimensions>;
80
+ /**
81
+ * Load a base64 HTML page in the browser
82
+ */
83
+ export declare function loadBase64Html({ browserInstance, isIOS }: LoadBase64HtmlOptions): Promise<void>;
84
+ /**
85
+ * Execute a native click
86
+ */
87
+ export declare function executeNativeClick({ browserInstance, isIOS, x, y }: ExecuteNativeClickOptions): Promise<void>;
88
+ /**
89
+ * Get the mobile viewport position, we determine this by:
90
+ * 1. Loading a base64 HTML page
91
+ * 2. Injecting an overlay on top of the webview with an event listener that stores the click position in the webview
92
+ * 3. Clicking on the overlay in the center of the screen with a native click
93
+ * 4. Getting the data from the overlay and removing it
94
+ * 5. Calculating the position of the viewport based on the click position of the native click vs the overlay
95
+ * 6. Returning the calculated values
96
+ */
97
+ export declare function getMobileViewPortPosition({ browserInstance, initialDeviceRectangles, isAndroid, isIOS, isNativeContext, nativeWebScreenshot, screenHeight, screenWidth, }: GetMobileViewPortPositionOptions): Promise<DeviceRectangles>;
98
+ /**
99
+ * Get the value of a method or the default value
100
+ */
101
+ export declare function getMethodOrWicOption<T, K extends keyof T>(method: Partial<T> | undefined, wic: T, key: K): T[K];
102
+ /**
103
+ * Determine if the Bidi screenshot can be used
104
+ */
105
+ export declare function canUseBidiScreenshot(browserInstance: WebdriverIO.Browser): boolean;
106
+ /**
107
+ * Helper function to safely check boolean properties with proper defaults
108
+ */
109
+ export declare function getBooleanOption(options: ClassOptions, key: keyof ClassOptions, defaultValue: boolean): boolean;
110
+ /**
111
+ * Helper function to create conditional property objects for cleaner spread operations
112
+ */
113
+ export declare function createConditionalProperty<T>(condition: boolean, key: string, value: T): Record<string, T> | {};
114
+ /**
115
+ * Check if resizeDimensions has any non-zero values (indicating it's been changed from default)
116
+ */
117
+ export declare function hasResizeDimensions(resizeDimensions: any): boolean;
118
+ /**
119
+ * Extracts common variables used across all check methods to reduce duplication
120
+ */
121
+ export declare function extractCommonCheckVariables(options: ExtractCommonCheckVariablesOptions): CommonCheckVariables;
122
+ /**
123
+ * Builds folder options object used across all check methods to reduce duplication
124
+ */
125
+ export declare function buildFolderOptions(options: BuildFolderOptionsOptions): FolderOptions;
126
+ /**
127
+ * Builds base execute compare options object used across all check methods to reduce duplication
128
+ */
129
+ export declare function buildBaseExecuteCompareOptions(options: BuildBaseExecuteCompareOptionsOptions): BaseExecuteCompareOptions;
130
+ /**
131
+ * Prepare all file paths needed for image comparison
132
+ */
133
+ export declare function prepareComparisonFilePaths(options: PrepareComparisonFilePathsOptions): ComparisonFilePaths;
134
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}