@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,363 @@
1
+ import type { TabbableOptions } from '../commands/tabbable.interfaces.js';
2
+ export interface ClassOptions {
3
+ /**
4
+ * The padding added to the address bar on iOS and Android
5
+ * to properly cut out the viewport.
6
+ */
7
+ addressBarShadowPadding?: number;
8
+ /**
9
+ * Automatically scroll to an element before taking a screenshot.
10
+ */
11
+ autoElementScroll?: boolean;
12
+ /**
13
+ * Add iOS bezel corners and notch/dynamic island to the screenshot.
14
+ */
15
+ addIOSBezelCorners?: boolean;
16
+ /**
17
+ * Delete runtime folder (actual & diff) on initialization.
18
+ */
19
+ clearRuntimeFolder?: boolean;
20
+ /**
21
+ * Use user based fullpage screenshots, by default the desktop screenshots are taken with the BiDi protocol.
22
+ */
23
+ userBasedFullPageScreenshot?: boolean;
24
+ /**
25
+ * By default the screenshots are taken with the BiDi protocol if Bidi is available.
26
+ * If you want to use the legacy method, set this to true.
27
+ */
28
+ enableLegacyScreenshotMethod?: boolean;
29
+ /**
30
+ * Customize the naming of saved images using a format string.
31
+ */
32
+ formatImageName?: string;
33
+ /**
34
+ * Indicates if this is a hybrid app.
35
+ */
36
+ isHybridApp?: boolean;
37
+ /**
38
+ * Save the images per instance in a separate folder.
39
+ */
40
+ savePerInstance?: boolean;
41
+ /**
42
+ * The padding added to the toolbar on iOS and Android
43
+ * to properly cut out the viewport.
44
+ */
45
+ toolBarShadowPadding?: number;
46
+ /**
47
+ * Wait for fonts to be fully loaded before taking a screenshot.
48
+ */
49
+ waitForFontsLoaded?: boolean;
50
+ /**
51
+ * If no baseline image is found during comparison, automatically save the image to the baseline folder.
52
+ */
53
+ autoSaveBaseline?: boolean;
54
+ /**
55
+ * Directory where all actual and diff screenshots will be stored.
56
+ */
57
+ screenshotPath?: string | ((options: ClassOptions) => string);
58
+ /**
59
+ * Directory for storing baseline images used during comparison.
60
+ */
61
+ baselineFolder?: string | ((options: ClassOptions) => string);
62
+ /**
63
+ * Disable the blinking cursor in screenshots.
64
+ */
65
+ disableBlinkingCursor?: boolean;
66
+ /**
67
+ * Enable or disable all CSS animations and input carets.
68
+ */
69
+ disableCSSAnimation?: boolean;
70
+ /**
71
+ * Make all text transparent to focus only on layout.
72
+ */
73
+ enableLayoutTesting?: boolean;
74
+ /**
75
+ * Time (ms) to wait after a scroll; useful for lazy loading content.
76
+ */
77
+ fullPageScrollTimeout?: number;
78
+ /**
79
+ * Hide scrollbars in the screenshots.
80
+ */
81
+ hideScrollBars?: boolean;
82
+ /**
83
+ * @deprecated Use `compareOptions` instead.
84
+ * Automatically block out the side bar for iPads in landscape mode during comparisons.
85
+ * Prevents failures on the tab/private/bookmark native component.
86
+ */
87
+ blockOutSideBar?: boolean;
88
+ /**
89
+ * Automatically block out the status and address bar during comparisons (mobile only).
90
+ * Prevents failures due to dynamic UI elements like time, Wi-Fi, battery, etc.
91
+ */
92
+ blockOutStatusBar?: boolean;
93
+ /**
94
+ * Automatically block out the tool bar during comparisons (mobile only).
95
+ */
96
+ blockOutToolBar?: boolean;
97
+ /**
98
+ * Generate JSON report files with comparison data (useful for custom HTML reports).
99
+ */
100
+ createJsonReportFiles?: boolean;
101
+ /**
102
+ * Pixel proximity used to group diff pixels in JSON reports.
103
+ *
104
+ * @default 5
105
+ */
106
+ diffPixelBoundingBoxProximity?: number;
107
+ /**
108
+ * Ignore alpha channel when comparing images.
109
+ */
110
+ ignoreAlpha?: boolean;
111
+ /**
112
+ * Ignore anti-aliasing when comparing images.
113
+ */
114
+ ignoreAntialiasing?: boolean;
115
+ /**
116
+ * Compare two images in black and white only.
117
+ */
118
+ ignoreColors?: boolean;
119
+ /**
120
+ * Compare images with reduced sensitivity.
121
+ * red = 16, green = 16, blue = 16, alpha = 16, minBrightness = 16, maxBrightness = 240
122
+ */
123
+ ignoreLess?: boolean;
124
+ /**
125
+ * Compare images with full sensitivity.
126
+ * red = 0, green = 0, blue = 0, alpha = 0, minBrightness = 0, maxBrightness = 255
127
+ */
128
+ ignoreNothing?: boolean;
129
+ /**
130
+ * Return raw mismatch percentage (e.g., `0.12345678`) instead of rounded (e.g., `0.12`).
131
+ */
132
+ rawMisMatchPercentage?: boolean;
133
+ /**
134
+ * Return all compare data, not just mismatch percentage.
135
+ */
136
+ returnAllCompareData?: boolean;
137
+ /**
138
+ * Threshold mismatch percentage above which diff image will be saved.
139
+ */
140
+ saveAboveTolerance?: number;
141
+ /**
142
+ * Scale images to same dimensions before comparison.
143
+ */
144
+ scaleImagesToSameSize?: boolean;
145
+ /**
146
+ * Options object passed to the underlying image comparison engine.
147
+ */
148
+ compareOptions?: Partial<CompareOptions>;
149
+ /**
150
+ * Configuration for tabbable elements highlighting.
151
+ */
152
+ tabbableOptions?: TabbableOptions;
153
+ /**
154
+ * Storybook-specific visual testing options.
155
+ */
156
+ storybook?: {
157
+ /**
158
+ * If true, clips the story component to remove extra whitespace.
159
+ *
160
+ * @default true
161
+ */
162
+ clip?: boolean;
163
+ /**
164
+ * Selector to use when `clip = true`. Defaults to Storybook's root element.
165
+ */
166
+ clipSelector?: string;
167
+ /**
168
+ * Number of shards to divide tests across.
169
+ *
170
+ * @default 1
171
+ */
172
+ numShards?: number;
173
+ /**
174
+ * Stories to skip, by string or RegExp.
175
+ */
176
+ skipStories?: string | string[];
177
+ /**
178
+ * Storybook server URL.
179
+ *
180
+ * @default 'http://127.0.0.1:6006'
181
+ */
182
+ url?: string;
183
+ /**
184
+ * Version of Storybook in use.
185
+ *
186
+ * @default 7
187
+ */
188
+ version?: number;
189
+ /**
190
+ * Additional search parameters for the Storybook URL.
191
+ *
192
+ * @example new URLSearchParams({ 'foo': 'bar' })
193
+ * Results in URL like: `http://storybook.url/iframe.html?id=story-id&foo=bar`
194
+ */
195
+ additionalSearchParams?: URLSearchParams;
196
+ /**
197
+ * Path builder for saving story baselines.
198
+ *
199
+ * @param category The component category (e.g. "forms").
200
+ * @param component The component name (e.g. "input").
201
+ * @returns Path to store baselines under the `baselineFolder`.
202
+ *
203
+ * @example
204
+ * ```ts
205
+ * (category, component) => `${category}__${component}`
206
+ * ```
207
+ *
208
+ * @default
209
+ * ```ts
210
+ * (category, component) => `./${category}/${component}/`
211
+ * ```
212
+ */
213
+ getStoriesBaselinePath?: (category: string, component: string) => string;
214
+ };
215
+ }
216
+ export interface DefaultOptions {
217
+ /**
218
+ * Padding added to the address bar (iOS/Android) to properly cut out the viewport.
219
+ */
220
+ addressBarShadowPadding: number;
221
+ /**
222
+ * Automatically scroll to an element before capturing a screenshot.
223
+ */
224
+ autoElementScroll: boolean;
225
+ /**
226
+ * Adds iOS bezel corners and notch/dynamic island to the screenshot.
227
+ */
228
+ addIOSBezelCorners: boolean;
229
+ /**
230
+ * Automatically saves the image as a baseline if none is found during comparison.
231
+ */
232
+ autoSaveBaseline: boolean;
233
+ /**
234
+ * Delete the runtime folder (`actual` and `diff`) on initialization.
235
+ */
236
+ clearFolder: boolean;
237
+ /**
238
+ * Options used for image comparison.
239
+ */
240
+ compareOptions: CompareOptions;
241
+ /**
242
+ * Use user based fullpage screenshots, by default the desktop screenshots are taken with the BiDi protocol.
243
+ */
244
+ userBasedFullPageScreenshot: boolean;
245
+ /**
246
+ * By default the screenshots are taken with the BiDi protocol if Bidi is available.
247
+ * If you want to use the legacy method, set this to true.
248
+ */
249
+ enableLegacyScreenshotMethod: boolean;
250
+ /**
251
+ * Disable the blinking cursor in the screenshot.
252
+ */
253
+ disableBlinkingCursor: boolean;
254
+ /**
255
+ * Disable all CSS animations and input caret.
256
+ */
257
+ disableCSSAnimation: boolean;
258
+ /**
259
+ * Make all text transparent to focus only on layout during comparison.
260
+ */
261
+ enableLayoutTesting: boolean;
262
+ /**
263
+ * A format string for customizing image file names.
264
+ */
265
+ formatImageName: string;
266
+ /**
267
+ * Timeout in milliseconds to wait after scrolling, useful for lazy-loaded pages.
268
+ */
269
+ fullPageScrollTimeout: number;
270
+ /**
271
+ * Hide scrollbars in the screenshot.
272
+ */
273
+ hideScrollBars: boolean;
274
+ /**
275
+ * Indicates whether the app is a hybrid (native + webview).
276
+ */
277
+ isHybridApp: boolean;
278
+ /**
279
+ * Save screenshots per instance in separate folders.
280
+ */
281
+ savePerInstance: boolean;
282
+ /**
283
+ * Options for visualizing tabbable elements.
284
+ */
285
+ tabbableOptions: TabbableOptions;
286
+ /**
287
+ * Padding added to the toolbar (iOS/Android) to properly cut out the viewport.
288
+ */
289
+ toolBarShadowPadding: number;
290
+ /**
291
+ * Wait for fonts to be fully loaded before taking a screenshot.
292
+ */
293
+ waitForFontsLoaded: boolean;
294
+ }
295
+ export interface CompareOptions {
296
+ /**
297
+ * Automatically block out the side bar for iPads in landscape mode during comparisons.
298
+ * Prevents failures caused by the tab/private/bookmark native component.
299
+ */
300
+ blockOutSideBar: boolean;
301
+ /**
302
+ * Automatically block out the status and address bar during comparisons.
303
+ * This is mobile only and helps avoid failures caused by dynamic content like time, Wi-Fi, or battery status.
304
+ */
305
+ blockOutStatusBar: boolean;
306
+ /**
307
+ * Automatically block out the tool bar during comparisons.
308
+ * This is mobile only.
309
+ */
310
+ blockOutToolBar: boolean;
311
+ /**
312
+ * Create JSON report files with all comparison data.
313
+ * This can be used to generate custom (HTML) reports.
314
+ */
315
+ createJsonReportFiles: boolean;
316
+ /**
317
+ * Proximity of diff pixels used to group them in the JSON report.
318
+ *
319
+ * The higher the value, the more pixels will be grouped together. Lower values improve accuracy.
320
+ *
321
+ * @default 5
322
+ */
323
+ diffPixelBoundingBoxProximity: number;
324
+ /**
325
+ * Compare images and discard the alpha channel.
326
+ */
327
+ ignoreAlpha: boolean;
328
+ /**
329
+ * Compare images and ignore anti-aliasing effects.
330
+ */
331
+ ignoreAntialiasing: boolean;
332
+ /**
333
+ * Compare two black-and-white versions of the images, ignoring colors.
334
+ */
335
+ ignoreColors: boolean;
336
+ /**
337
+ * Use a less sensitive comparison setting:
338
+ * red = 16, green = 16, blue = 16, alpha = 16, minBrightness = 16, maxBrightness = 240
339
+ */
340
+ ignoreLess: boolean;
341
+ /**
342
+ * Use the most sensitive comparison setting:
343
+ * red = 0, green = 0, blue = 0, alpha = 0, minBrightness = 0, maxBrightness = 255
344
+ */
345
+ ignoreNothing: boolean;
346
+ /**
347
+ * Return the raw mismatch percentage as a decimal (e.g., `0.12345678`), instead of a rounded value (e.g., `0.12`).
348
+ */
349
+ rawMisMatchPercentage: boolean;
350
+ /**
351
+ * Return all comparison data, not just the mismatch percentage.
352
+ */
353
+ returnAllCompareData: boolean;
354
+ /**
355
+ * Mismatch percentage threshold above which the image with differences will be saved.
356
+ */
357
+ saveAboveTolerance: number;
358
+ /**
359
+ * Scale images to the same size before comparing them.
360
+ */
361
+ scaleImagesToSameSize: boolean;
362
+ }
363
+ //# sourceMappingURL=options.interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.interfaces.d.ts","sourceRoot":"","sources":["../../src/helpers/options.interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,184 @@
1
+ import { DEFAULT_COMPARE_OPTIONS, DEFAULT_FORMAT_STRING, DEFAULT_SHADOW, DEFAULT_TABBABLE_OPTIONS, FULL_PAGE_SCROLL_TIMEOUT, STORYBOOK_FORMAT_STRING, } from './constants.js';
2
+ import { logAllDeprecatedCompareOptions, isStorybook, getBooleanOption, createConditionalProperty, getMethodOrWicOption, } from './utils.js';
3
+ /**
4
+ * Determine the default options by merging user options with sensible defaults
5
+ */
6
+ export function defaultOptions(options) {
7
+ const isStorybookMode = isStorybook();
8
+ return {
9
+ /**
10
+ * Module-specific options
11
+ */
12
+ addressBarShadowPadding: options.addressBarShadowPadding ?? DEFAULT_SHADOW.ADDRESS_BAR,
13
+ autoElementScroll: getBooleanOption(options, 'autoElementScroll', true),
14
+ addIOSBezelCorners: options.addIOSBezelCorners ?? false,
15
+ autoSaveBaseline: options.autoSaveBaseline ?? true,
16
+ clearFolder: options.clearRuntimeFolder ?? false,
17
+ userBasedFullPageScreenshot: options.userBasedFullPageScreenshot ?? false,
18
+ enableLegacyScreenshotMethod: options.enableLegacyScreenshotMethod ?? false,
19
+ formatImageName: options.formatImageName ?? (isStorybookMode ? STORYBOOK_FORMAT_STRING : DEFAULT_FORMAT_STRING),
20
+ isHybridApp: options.isHybridApp ?? false,
21
+ // Running in storybook mode with multiple browsers can generate many images
22
+ // Defaulting this to true provides better overview for users
23
+ savePerInstance: options.savePerInstance ?? isStorybookMode,
24
+ toolBarShadowPadding: options.toolBarShadowPadding ?? DEFAULT_SHADOW.TOOL_BAR,
25
+ /**
26
+ * Module and method options
27
+ */
28
+ disableBlinkingCursor: options.disableBlinkingCursor ?? false,
29
+ disableCSSAnimation: options.disableCSSAnimation ?? false,
30
+ enableLayoutTesting: options.enableLayoutTesting ?? false,
31
+ fullPageScrollTimeout: options.fullPageScrollTimeout ?? FULL_PAGE_SCROLL_TIMEOUT,
32
+ // Default to false for storybook mode as element screenshots use W3C protocol without scrollbars
33
+ // This also saves an extra webdriver call
34
+ hideScrollBars: getBooleanOption(options, 'hideScrollBars', !isStorybookMode),
35
+ waitForFontsLoaded: options.waitForFontsLoaded ?? true,
36
+ /**
37
+ * Compare options (merged sequentially):
38
+ * 1. Default options (fallback)
39
+ * 2. Root compareOptions (deprecated but supported)
40
+ * 3. User-provided compareOptions
41
+ */
42
+ compareOptions: {
43
+ ...DEFAULT_COMPARE_OPTIONS,
44
+ ...logAllDeprecatedCompareOptions(options),
45
+ ...options.compareOptions,
46
+ },
47
+ /**
48
+ * Tabbable options with deep merging
49
+ */
50
+ tabbableOptions: {
51
+ circle: {
52
+ ...DEFAULT_TABBABLE_OPTIONS.circle,
53
+ ...options.tabbableOptions?.circle,
54
+ },
55
+ line: {
56
+ ...DEFAULT_TABBABLE_OPTIONS.line,
57
+ ...options.tabbableOptions?.line,
58
+ },
59
+ },
60
+ };
61
+ }
62
+ /**
63
+ * Determine the screen method compare options with proper type safety
64
+ */
65
+ export function screenMethodCompareOptions(options) {
66
+ return {
67
+ ...createConditionalProperty('blockOutSideBar' in options, 'blockOutSideBar', options.blockOutSideBar),
68
+ ...createConditionalProperty('blockOutStatusBar' in options, 'blockOutStatusBar', options.blockOutStatusBar),
69
+ ...createConditionalProperty('blockOutToolBar' in options, 'blockOutToolBar', options.blockOutToolBar),
70
+ ...methodCompareOptions(options),
71
+ };
72
+ }
73
+ /**
74
+ * Determine the method compare options with improved type safety
75
+ */
76
+ export function methodCompareOptions(options) {
77
+ const compareOptionKeys = [
78
+ 'blockOut',
79
+ 'ignoreAlpha',
80
+ 'ignoreAntialiasing',
81
+ 'ignoreColors',
82
+ 'ignoreLess',
83
+ 'ignoreNothing',
84
+ 'rawMisMatchPercentage',
85
+ 'returnAllCompareData',
86
+ 'saveAboveTolerance',
87
+ 'scaleImagesToSameSize',
88
+ ];
89
+ return compareOptionKeys.reduce((result, key) => {
90
+ if (key in options && options[key] !== undefined) {
91
+ result[key] = options[key]; // Type assertion needed due to union types
92
+ }
93
+ return result;
94
+ }, {});
95
+ }
96
+ /**
97
+ * Creates BeforeScreenshotOptions by extracting common options from method and wic configurations
98
+ */
99
+ export function createBeforeScreenshotOptions(instanceData, methodOptions, wicOptions) {
100
+ return {
101
+ instanceData,
102
+ addressBarShadowPadding: wicOptions.addressBarShadowPadding,
103
+ disableBlinkingCursor: getMethodOrWicOption(methodOptions, wicOptions, 'disableBlinkingCursor') || false,
104
+ disableCSSAnimation: getMethodOrWicOption(methodOptions, wicOptions, 'disableCSSAnimation') || false,
105
+ enableLayoutTesting: getMethodOrWicOption(methodOptions, wicOptions, 'enableLayoutTesting') || false,
106
+ hideElements: methodOptions.hideElements || [],
107
+ noScrollBars: getMethodOrWicOption(methodOptions, wicOptions, 'hideScrollBars') || false,
108
+ removeElements: methodOptions.removeElements || [],
109
+ toolBarShadowPadding: wicOptions.toolBarShadowPadding,
110
+ waitForFontsLoaded: getMethodOrWicOption(methodOptions, wicOptions, 'waitForFontsLoaded') || false,
111
+ };
112
+ }
113
+ /**
114
+ * Builds AfterScreenshotOptions consistently across all commands
115
+ * Handles differences between native and web commands automatically
116
+ */
117
+ export function buildAfterScreenshotOptions({ base64Image, folders, tag, isNativeContext, instanceData, enrichedInstanceData, beforeOptions, wicOptions }) {
118
+ // Use enriched data when available (web commands), fallback to instance data (native commands)
119
+ const dataSource = enrichedInstanceData || instanceData;
120
+ // Extract common properties with smart fallbacks
121
+ const { browserName, browserVersion, deviceName, platformName, platformVersion, } = dataSource;
122
+ // Handle dimension data - enriched data has nested structure, instance data is flat
123
+ const dimensions = enrichedInstanceData?.dimensions?.window;
124
+ const devicePixelRatio = dimensions?.devicePixelRatio ?? instanceData.devicePixelRatio;
125
+ const isLandscape = dimensions?.isLandscape ?? false;
126
+ const outerHeight = dimensions?.outerHeight;
127
+ const outerWidth = dimensions?.outerWidth;
128
+ const screenHeight = dimensions?.screenHeight ?? instanceData.deviceRectangles?.screenSize?.height;
129
+ const screenWidth = dimensions?.screenWidth ?? instanceData.deviceRectangles?.screenSize?.width;
130
+ // Handle metadata with smart defaults
131
+ const isMobile = enrichedInstanceData?.isMobile ?? instanceData.isMobile;
132
+ const isTestInBrowser = enrichedInstanceData?.isTestInBrowser ?? !isNativeContext;
133
+ const logName = enrichedInstanceData?.logName ?? instanceData.logName;
134
+ const name = enrichedInstanceData?.name ?? instanceData.name;
135
+ const { formatImageName, savePerInstance } = wicOptions;
136
+ const afterOptions = {
137
+ actualFolder: folders.actualFolder,
138
+ base64Image,
139
+ filePath: {
140
+ browserName,
141
+ deviceName,
142
+ isMobile,
143
+ savePerInstance,
144
+ },
145
+ fileName: {
146
+ browserName,
147
+ browserVersion,
148
+ deviceName,
149
+ devicePixelRatio: devicePixelRatio || NaN,
150
+ formatImageName,
151
+ isMobile,
152
+ isTestInBrowser,
153
+ logName,
154
+ name,
155
+ outerHeight: outerHeight || NaN,
156
+ outerWidth: outerWidth || NaN,
157
+ platformName,
158
+ platformVersion,
159
+ screenHeight: screenHeight || NaN,
160
+ screenWidth: screenWidth || NaN,
161
+ tag,
162
+ },
163
+ isLandscape,
164
+ isNativeContext,
165
+ platformName: instanceData.platformName,
166
+ };
167
+ // Add browser state options only for web commands (when beforeOptions is provided)
168
+ if (beforeOptions) {
169
+ afterOptions.disableBlinkingCursor = beforeOptions.disableBlinkingCursor;
170
+ afterOptions.disableCSSAnimation = beforeOptions.disableCSSAnimation;
171
+ afterOptions.enableLayoutTesting = beforeOptions.enableLayoutTesting;
172
+ afterOptions.hideElements = beforeOptions.hideElements;
173
+ afterOptions.hideScrollBars = beforeOptions.noScrollBars;
174
+ afterOptions.removeElements = beforeOptions.removeElements;
175
+ }
176
+ return afterOptions;
177
+ }
178
+ /**
179
+ * Prepare ignore options for resemble.js comparison
180
+ */
181
+ export function prepareIgnoreOptions(imageCompareOptions) {
182
+ const resembleIgnoreDefaults = ['alpha', 'antialiasing', 'colors', 'less', 'nothing'];
183
+ return resembleIgnoreDefaults.filter((option) => Object.keys(imageCompareOptions).find((key) => key.toLowerCase().includes(option) && imageCompareOptions[key]));
184
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=options.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.test.d.ts","sourceRoot":"","sources":["../../src/helpers/options.test.ts"],"names":[],"mappings":""}