ff-automationv2 2.2.28 → 2.2.30

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 (559) hide show
  1. package/dist/ai/llmcalls/llmAction.d.ts +9 -4
  2. package/dist/ai/llmcalls/llmAction.js +214 -42
  3. package/dist/ai/llmcalls/parseLlmOputput.js +21 -9
  4. package/dist/ai/llmprompts/promptRegistry.js +15 -0
  5. package/dist/ai/llmprompts/systemPrompts/actionExtractorPrompt.js +48 -11
  6. package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPrompt.js +7 -6
  7. package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPromptMob.js +14 -13
  8. package/dist/ai/llmprompts/systemPrompts/errorDescriptionPrompt.js +6 -4
  9. package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtactors.js +125 -67
  10. package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtractor_Mob.js +65 -28
  11. package/dist/ai/llmprompts/systemPrompts/getActionExtractorPrompt.js +18 -16
  12. package/dist/ai/llmprompts/systemPrompts/getActionExtractorPromptMob.js +13 -13
  13. package/dist/ai/llmprompts/systemPrompts/mobileKeywordExtractor.js +26 -15
  14. package/dist/ai/llmprompts/systemPrompts/otpExtractorPrompt.d.ts +1 -0
  15. package/dist/ai/llmprompts/systemPrompts/otpExtractorPrompt.js +22 -0
  16. package/dist/ai/llmprompts/systemPrompts/userStoryToListPrompt.js +1 -1
  17. package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPrompt.js +23 -19
  18. package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPromptMob.js +9 -9
  19. package/dist/ai/llmprompts/systemPrompts/visionPrompt.js +18 -8
  20. package/dist/ai/llmprompts/systemPrompts/visionPromptMobile.js +4 -0
  21. package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPrompt.js +10 -9
  22. package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPromptMob.js +8 -7
  23. package/dist/ai/llmprompts/userPrompts/userPrompt.js +8 -8
  24. package/dist/automation/actions/executor.d.ts +42 -34
  25. package/dist/automation/actions/executor.js +300 -166
  26. package/dist/automation/actions/interaction/alert/clickCancelOnAlertPopup.js +4 -4
  27. package/dist/automation/actions/interaction/alert/clickOkOnAlertPopup.js +4 -4
  28. package/dist/automation/actions/interaction/alert/enterDataToAlert.js +4 -3
  29. package/dist/automation/actions/interaction/alert/getTextPresentOnAlertPopup.js +4 -4
  30. package/dist/automation/actions/interaction/alert/verifyAlertPopUpMessageContainsString.js +4 -3
  31. package/dist/automation/actions/interaction/alert/verifyAlertPopupIsDisplayed.js +10 -4
  32. package/dist/automation/actions/interaction/alert/verifyTextPresentOnAlertPopup.js +4 -3
  33. package/dist/automation/actions/interaction/alert/waitTillAlertIsPresent.js +5 -5
  34. package/dist/automation/actions/interaction/clear/clear.js +33 -26
  35. package/dist/automation/actions/interaction/clear/clearAndEnter.js +33 -26
  36. package/dist/automation/actions/interaction/click/MOB_DoubleTapAtSpecifiedLocation.js +5 -6
  37. package/dist/automation/actions/interaction/click/click.js +65 -26
  38. package/dist/automation/actions/interaction/click/clickNtimes.js +29 -24
  39. package/dist/automation/actions/interaction/click/clickUsingJs.js +12 -12
  40. package/dist/automation/actions/interaction/click/doubleClick.js +32 -25
  41. package/dist/automation/actions/interaction/click/rightClick.js +18 -13
  42. package/dist/automation/actions/interaction/click/tapOnSpecifiedLocation.js +7 -5
  43. package/dist/automation/actions/interaction/click/waitAndClick.js +29 -27
  44. package/dist/automation/actions/interaction/dragAndDrop/dragAndDrop.js +2 -2
  45. package/dist/automation/actions/interaction/elementLessAction/MobCheckIfAppIsClosed.js +14 -9
  46. package/dist/automation/actions/interaction/elementLessAction/MobRunAppInBackgroundInterface.js +9 -9
  47. package/dist/automation/actions/interaction/elementlessActions/activateAppUsingAppPackage.d.ts +0 -3
  48. package/dist/automation/actions/interaction/elementlessActions/activateAppUsingAppPackage.js +8 -9
  49. package/dist/automation/actions/interaction/elementlessActions/getOtp.d.ts +2 -0
  50. package/dist/automation/actions/interaction/elementlessActions/getOtp.js +101 -0
  51. package/dist/automation/actions/interaction/elementlessActions/installAPK.js +74 -33
  52. package/dist/automation/actions/interaction/elementlessActions/isAppInstalled.js +10 -8
  53. package/dist/automation/actions/interaction/elementlessActions/openAppWithApkFilePath.js +87 -68
  54. package/dist/automation/actions/interaction/elementlessActions/openMobileApplication.js +8 -6
  55. package/dist/automation/actions/interaction/elementlessActions/receiveMessageOnEmulator.js +4 -3
  56. package/dist/automation/actions/interaction/elementlessActions/terminateAppUsingAppPackage.js +8 -6
  57. package/dist/automation/actions/interaction/elementlessActions/uninstallAPK.js +76 -32
  58. package/dist/automation/actions/interaction/enterActions/EnterInputIntoElementFromClipBoardInterface_mob.js +17 -13
  59. package/dist/automation/actions/interaction/enterActions/enterInput.js +55 -30
  60. package/dist/automation/actions/interaction/enterActions/enterInputAndPress.js +32 -24
  61. package/dist/automation/actions/interaction/enterActions/enterUrl.js +22 -17
  62. package/dist/automation/actions/interaction/enterActions/enterusingJs.js +19 -13
  63. package/dist/automation/actions/interaction/enterActions/waitAndEnter.js +33 -26
  64. package/dist/automation/actions/interaction/find/MOB_FindElement.js +37 -21
  65. package/dist/automation/actions/interaction/find/findElements.js +49 -32
  66. package/dist/automation/actions/interaction/get/MOB_GetADBLogsForGivenAppPackage.js +5 -6
  67. package/dist/automation/actions/interaction/get/MOB_GetAllContexts.js +4 -6
  68. package/dist/automation/actions/interaction/get/MOB_GetAllWindowHandles.js +8 -9
  69. package/dist/automation/actions/interaction/get/MOB_GetAltitude.js +20 -10
  70. package/dist/automation/actions/interaction/get/MOB_GetBatteryPercentage.js +7 -9
  71. package/dist/automation/actions/interaction/get/MOB_GetBatteryStatus.js +4 -6
  72. package/dist/automation/actions/interaction/get/MOB_GetClipBoardText.js +4 -6
  73. package/dist/automation/actions/interaction/get/MOB_GetCurrentActivity.js +4 -6
  74. package/dist/automation/actions/interaction/get/MOB_GetCurrentAppPackage.js +4 -6
  75. package/dist/automation/actions/interaction/get/MOB_GetCurrentContext.js +4 -6
  76. package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceDate.js +4 -6
  77. package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSettings.js +4 -6
  78. package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceStatus.js +4 -6
  79. package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSystemBars.js +5 -6
  80. package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceTime.js +4 -6
  81. package/dist/automation/actions/interaction/get/MOB_GetCurrentOrientation.js +4 -6
  82. package/dist/automation/actions/interaction/get/MOB_GetCurrentSessionId.js +4 -6
  83. package/dist/automation/actions/interaction/get/MOB_GetDeviceLocation.js +20 -9
  84. package/dist/automation/actions/interaction/get/MOB_GetDeviceName.js +7 -8
  85. package/dist/automation/actions/interaction/get/MOB_GetDeviceOsVersion.js +4 -6
  86. package/dist/automation/actions/interaction/get/MOB_GetDeviceUdid.js +7 -8
  87. package/dist/automation/actions/interaction/get/MOB_GetHeightOfElement.js +12 -11
  88. package/dist/automation/actions/interaction/get/MOB_GetHeightOfScreen.js +4 -6
  89. package/dist/automation/actions/interaction/get/MOB_GetHourFromCurrentDeviceTime.js +4 -6
  90. package/dist/automation/actions/interaction/get/MOB_GetLatitude.js +20 -12
  91. package/dist/automation/actions/interaction/get/MOB_GetLongitude.js +20 -12
  92. package/dist/automation/actions/interaction/get/MOB_GetMinuteFromCurrentDeviceTime.js +4 -6
  93. package/dist/automation/actions/interaction/get/MOB_GetSecondFromCurrentDeviceTime.js +4 -6
  94. package/dist/automation/actions/interaction/get/MOB_GetSizeOfScreen.js +4 -6
  95. package/dist/automation/actions/interaction/get/MOB_GetSupportedPerformanceDataTypes.js +4 -6
  96. package/dist/automation/actions/interaction/get/MOB_GetTextFromElementAndSetToClipBoard.js +11 -8
  97. package/dist/automation/actions/interaction/get/MOB_GetWidthOfElement.js +12 -11
  98. package/dist/automation/actions/interaction/get/MOB_GetWidthOfScreen.js +4 -6
  99. package/dist/automation/actions/interaction/get/browserWindowGetPosition.js +4 -4
  100. package/dist/automation/actions/interaction/get/getAllBrokenImages.js +4 -4
  101. package/dist/automation/actions/interaction/get/getAllBrokenLinkCount.js +4 -4
  102. package/dist/automation/actions/interaction/get/getAllBrokenLinks.js +5 -5
  103. package/dist/automation/actions/interaction/get/getAllConsoleErrors.js +4 -4
  104. package/dist/automation/actions/interaction/get/getAllConsoleInformation.js +5 -5
  105. package/dist/automation/actions/interaction/get/getAllConsoleLogs.js +5 -5
  106. package/dist/automation/actions/interaction/get/getAllConsoleWarnings.js +5 -5
  107. package/dist/automation/actions/interaction/get/getAllCookieNames.js +5 -5
  108. package/dist/automation/actions/interaction/get/getAllCookieValues.js +5 -5
  109. package/dist/automation/actions/interaction/get/getAllSelectedOptions.js +12 -12
  110. package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsText.js +12 -12
  111. package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsTextInSortedOrder.js +12 -12
  112. package/dist/automation/actions/interaction/get/getAllTheSelectedOptionsFromListBoxAsText.js +12 -12
  113. package/dist/automation/actions/interaction/get/getAllWindowHandles.js +5 -5
  114. package/dist/automation/actions/interaction/get/getAttribute.js +27 -25
  115. package/dist/automation/actions/interaction/get/getAudioCurrentPlaybackRate.js +12 -12
  116. package/dist/automation/actions/interaction/get/getAudioCurrentSeekTime.js +12 -12
  117. package/dist/automation/actions/interaction/get/getAudioCurrentVolume.js +12 -12
  118. package/dist/automation/actions/interaction/get/getAudioDecodedByte.js +12 -12
  119. package/dist/automation/actions/interaction/get/getAudioDefaultPlaybackRate.js +12 -12
  120. package/dist/automation/actions/interaction/get/getAudioMediaLength.js +12 -12
  121. package/dist/automation/actions/interaction/get/getAudioMediaSource.js +12 -12
  122. package/dist/automation/actions/interaction/get/getBestPracticesScore.js +4 -3
  123. package/dist/automation/actions/interaction/get/getBrowserCount.js +4 -4
  124. package/dist/automation/actions/interaction/get/getBrowserVersion.js +4 -4
  125. package/dist/automation/actions/interaction/get/getCapabilityNames.js +4 -4
  126. package/dist/automation/actions/interaction/get/getClipBoardText.js +4 -4
  127. package/dist/automation/actions/interaction/get/getCollectiveApiResponseTime.js +5 -4
  128. package/dist/automation/actions/interaction/get/getCollectiveApiStatusCode.js +5 -4
  129. package/dist/automation/actions/interaction/get/getCssValue.js +12 -12
  130. package/dist/automation/actions/interaction/get/getCurrentDayOfTheWeek.js +4 -4
  131. package/dist/automation/actions/interaction/get/getCurrentSecondsFromCurrentSystemTime.js +5 -5
  132. package/dist/automation/actions/interaction/get/getCurrentSystemDate.js +4 -4
  133. package/dist/automation/actions/interaction/get/getCurrentSystemDay.js +5 -5
  134. package/dist/automation/actions/interaction/get/getCurrentSystemMonth.js +5 -5
  135. package/dist/automation/actions/interaction/get/getCurrentSystemTime.js +5 -5
  136. package/dist/automation/actions/interaction/get/getCurrentSystemYear.js +5 -5
  137. package/dist/automation/actions/interaction/get/getCurrentWindowHandle.js +9 -10
  138. package/dist/automation/actions/interaction/get/getDataFromApiRequestHeaderForJsonPath.js +5 -4
  139. package/dist/automation/actions/interaction/get/getDataFromApiResponseForJsonPath.js +5 -4
  140. package/dist/automation/actions/interaction/get/getDateWithGivenFormat.js +5 -4
  141. package/dist/automation/actions/interaction/get/getDriverInstance.js +12 -11
  142. package/dist/automation/actions/interaction/get/getFirstContentfulPaint.js +5 -5
  143. package/dist/automation/actions/interaction/get/getFirstSelectedOption.js +12 -12
  144. package/dist/automation/actions/interaction/get/getFullPaintTime.js +5 -5
  145. package/dist/automation/actions/interaction/get/getHTMLCodeOfPage.js +4 -4
  146. package/dist/automation/actions/interaction/get/getHeightOfBrowserWindow.js +4 -4
  147. package/dist/automation/actions/interaction/get/getHeightOfWebElement.js +12 -12
  148. package/dist/automation/actions/interaction/get/getHourFromCurrentSystemTime.js +4 -4
  149. package/dist/automation/actions/interaction/get/getImplicitTimeOut.js +11 -10
  150. package/dist/automation/actions/interaction/get/getLargestContentfulPaint.js +4 -4
  151. package/dist/automation/actions/interaction/get/getListBoxSize.js +12 -12
  152. package/dist/automation/actions/interaction/get/getListOfElementsFromLocatorTypeLocatorValue.js +90 -44
  153. package/dist/automation/actions/interaction/get/getLocation.js +32 -31
  154. package/dist/automation/actions/interaction/get/getMinuteFromCurrentSystemTime.js +4 -4
  155. package/dist/automation/actions/interaction/get/getNetworkRouteTime.js +4 -4
  156. package/dist/automation/actions/interaction/get/getNumberOfBrokenImages.js +4 -4
  157. package/dist/automation/actions/interaction/get/getNumberOfLinksPresentInCurrentPage.js +4 -4
  158. package/dist/automation/actions/interaction/get/getNumberOfWorkingLinksFromCurrentPage.js +4 -4
  159. package/dist/automation/actions/interaction/get/getOptions.js +12 -12
  160. package/dist/automation/actions/interaction/get/getPageTitle.js +5 -5
  161. package/dist/automation/actions/interaction/get/getPerformanceMetrics.js +5 -5
  162. package/dist/automation/actions/interaction/get/getPwaScore.js +5 -4
  163. package/dist/automation/actions/interaction/get/getRect.js +26 -23
  164. package/dist/automation/actions/interaction/get/getScreenshot.js +12 -18
  165. package/dist/automation/actions/interaction/get/getScreenshotAs.js +27 -32
  166. package/dist/automation/actions/interaction/get/getSeoScore.js +5 -4
  167. package/dist/automation/actions/interaction/get/getSingleApiRequestPayload.js +7 -6
  168. package/dist/automation/actions/interaction/get/getSingleApiResponse.js +12 -14
  169. package/dist/automation/actions/interaction/get/getSingleApiResponseTime.js +13 -13
  170. package/dist/automation/actions/interaction/get/getSingleApiStatusCode.d.ts +1 -1
  171. package/dist/automation/actions/interaction/get/getSingleApiStatusCode.js +21 -17
  172. package/dist/automation/actions/interaction/get/getSize.js +26 -24
  173. package/dist/automation/actions/interaction/get/getSizeOfBrowserWindow.js +5 -5
  174. package/dist/automation/actions/interaction/get/getStringDataFromLocalFile.js +11 -13
  175. package/dist/automation/actions/interaction/get/getSystemProperty.js +7 -33
  176. package/dist/automation/actions/interaction/get/getTagName.js +26 -24
  177. package/dist/automation/actions/interaction/get/getText.js +28 -25
  178. package/dist/automation/actions/interaction/get/getTheFirstSelectedOptionFromListBoxAsText.js +12 -12
  179. package/dist/automation/actions/interaction/get/getTotalNumberOfCookies.js +5 -5
  180. package/dist/automation/actions/interaction/get/getTunnelIdentifier.js +5 -4
  181. package/dist/automation/actions/interaction/get/getURLPresentInAddressBar.js +5 -5
  182. package/dist/automation/actions/interaction/get/getUserHomeDirectory.js +5 -5
  183. package/dist/automation/actions/interaction/get/getValueByCookieName.js +7 -11
  184. package/dist/automation/actions/interaction/get/getValueFromLocalStorage.js +7 -10
  185. package/dist/automation/actions/interaction/get/getValueOfSystemVariable.js +8 -6
  186. package/dist/automation/actions/interaction/get/getVideoCurrentPlaybackRate.js +12 -12
  187. package/dist/automation/actions/interaction/get/getVideoCurrentSeekTime.js +12 -12
  188. package/dist/automation/actions/interaction/get/getVideoCurrentVolume.js +12 -12
  189. package/dist/automation/actions/interaction/get/getVideoDecodedByte.js +12 -12
  190. package/dist/automation/actions/interaction/get/getVideoDefaultPlaybackRate.js +12 -12
  191. package/dist/automation/actions/interaction/get/getVideoMediaLength.js +12 -12
  192. package/dist/automation/actions/interaction/get/getVideoMediaSource.js +12 -12
  193. package/dist/automation/actions/interaction/get/getWidthOfBrowser.js +5 -5
  194. package/dist/automation/actions/interaction/get/getWidthOfWebElement.js +12 -12
  195. package/dist/automation/actions/interaction/get/getWorkingLinksFromCurrentPage.js +5 -5
  196. package/dist/automation/actions/interaction/get/getWrappedElement.js +12 -12
  197. package/dist/automation/actions/interaction/get/getWrappedOptionFromListBoxAsText.js +14 -14
  198. package/dist/automation/actions/interaction/get/getXLocationOfBrowserWindow.js +5 -4
  199. package/dist/automation/actions/interaction/get/getXLocationOfWebElement.js +26 -24
  200. package/dist/automation/actions/interaction/get/getYLocationOfBrowserWindow.js +5 -5
  201. package/dist/automation/actions/interaction/get/getYLocationOfWebElement.js +26 -24
  202. package/dist/automation/actions/interaction/iframe/switchToDefaultContent.js +5 -5
  203. package/dist/automation/actions/interaction/inputlessActions/AirplaneModeSwitchOff.js +5 -5
  204. package/dist/automation/actions/interaction/inputlessActions/AirplaneModeSwitchOn.js +5 -5
  205. package/dist/automation/actions/interaction/inputlessActions/Break.js +5 -5
  206. package/dist/automation/actions/interaction/inputlessActions/Continue.js +5 -5
  207. package/dist/automation/actions/interaction/inputlessActions/GpsSwitchOff.js +5 -5
  208. package/dist/automation/actions/interaction/inputlessActions/GpsSwitchOn.js +5 -5
  209. package/dist/automation/actions/interaction/inputlessActions/HideKeyboard.js +13 -7
  210. package/dist/automation/actions/interaction/inputlessActions/LockDevice.js +5 -5
  211. package/dist/automation/actions/interaction/inputlessActions/OpenChromeBrowser.js +18 -6
  212. package/dist/automation/actions/interaction/inputlessActions/OpenNotification.js +5 -5
  213. package/dist/automation/actions/interaction/inputlessActions/ResetApp.js +14 -7
  214. package/dist/automation/actions/interaction/inputlessActions/RestartCurrentDevice.js +5 -5
  215. package/dist/automation/actions/interaction/inputlessActions/SetDeviceOrientationAsLandscape.js +5 -5
  216. package/dist/automation/actions/interaction/inputlessActions/SetDeviceOrientationAsPortrait.js +5 -5
  217. package/dist/automation/actions/interaction/inputlessActions/SetEmulatorPowerStateOff.js +5 -5
  218. package/dist/automation/actions/interaction/inputlessActions/SetEmulatorPowerStateOn.js +5 -5
  219. package/dist/automation/actions/interaction/inputlessActions/WifiSwitchOff.js +5 -5
  220. package/dist/automation/actions/interaction/inputlessActions/WifiSwitchOn.js +5 -5
  221. package/dist/automation/actions/interaction/maximize/maximize.js +5 -5
  222. package/dist/automation/actions/interaction/maximize/minimize.js +5 -5
  223. package/dist/automation/actions/interaction/mouse/mouseClickOnCurrentCursorNTImes.d.ts +2 -0
  224. package/dist/automation/actions/interaction/mouse/mouseClickOnCurrentCursorNTImes.js +31 -0
  225. package/dist/automation/actions/interaction/mouse/mouseClickOnCurrentCursorPoint.d.ts +2 -0
  226. package/dist/automation/actions/interaction/mouse/mouseClickOnCurrentCursorPoint.js +27 -0
  227. package/dist/automation/actions/interaction/mouse/mouseDoubleClickAtCursorPoint.d.ts +2 -0
  228. package/dist/automation/actions/interaction/mouse/mouseDoubleClickAtCursorPoint.js +31 -0
  229. package/dist/automation/actions/interaction/mouse/mouseHover.d.ts +2 -0
  230. package/dist/automation/actions/interaction/mouse/mouseHover.js +36 -0
  231. package/dist/automation/actions/interaction/mouse/mouseReleaseLeftMouseButton.d.ts +2 -0
  232. package/dist/automation/actions/interaction/mouse/mouseReleaseLeftMouseButton.js +42 -0
  233. package/dist/automation/actions/interaction/mouse/pressAndHold.d.ts +2 -0
  234. package/dist/automation/actions/interaction/mouse/pressAndHold.js +47 -0
  235. package/dist/automation/actions/interaction/navigation/goBack.js +5 -5
  236. package/dist/automation/actions/interaction/navigation/navigate.js +5 -4
  237. package/dist/automation/actions/interaction/navigation/refresh.js +5 -5
  238. package/dist/automation/actions/interaction/pinch/PinchInByPercentMob.js +12 -13
  239. package/dist/automation/actions/interaction/pinch/PinchOutByPercentMob.js +12 -11
  240. package/dist/automation/actions/interaction/press/longPress.js +15 -11
  241. package/dist/automation/actions/interaction/press/mobPressBackKey.js +4 -6
  242. package/dist/automation/actions/interaction/press/mobPressBackSpaceKey.js +12 -8
  243. package/dist/automation/actions/interaction/press/mobPressSpaceKey.js +12 -8
  244. package/dist/automation/actions/interaction/press/pressAnyKey.js +25 -16
  245. package/dist/automation/actions/interaction/press/pressAnyKeyNTimes.js +23 -14
  246. package/dist/automation/actions/interaction/press/pressEnterKey.js +21 -14
  247. package/dist/automation/actions/interaction/press/pressHomeKey.js +16 -9
  248. package/dist/automation/actions/interaction/scroll/scrollHorizontallyTillElementIsVisible.js +20 -15
  249. package/dist/automation/actions/interaction/scroll/scrollPageToSpecificLocation.js +8 -7
  250. package/dist/automation/actions/interaction/scroll/scrollToElement.js +18 -13
  251. package/dist/automation/actions/interaction/scroll/scrollVerticallyTillElementIsVisible.js +20 -15
  252. package/dist/automation/actions/interaction/set/MOB_SetContext.js +5 -6
  253. package/dist/automation/actions/interaction/set/MOB_SetEmulatorPowerPercentage.js +5 -6
  254. package/dist/automation/actions/interaction/set/setClipBoardText.js +13 -13
  255. package/dist/automation/actions/interaction/shadowDom/shadowDomClick.js +5 -4
  256. package/dist/automation/actions/interaction/shadowDom/shadowDomEnter.js +5 -4
  257. package/dist/automation/actions/interaction/shadowDom/shadowDomGetText.js +6 -5
  258. package/dist/automation/actions/interaction/shadowDom/shadowDomUpload.js +13 -9
  259. package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyPartialText.js +6 -5
  260. package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyText.js +6 -5
  261. package/dist/automation/actions/interaction/swipe/swipeDirectionNTimes.js +12 -10
  262. package/dist/automation/actions/interaction/swipe/swipeDownToElement.js +13 -10
  263. package/dist/automation/actions/interaction/swipe/swipeIos.d.ts +2 -0
  264. package/dist/automation/actions/interaction/swipe/swipeIos.js +52 -0
  265. package/dist/automation/actions/interaction/swipe/swipeLeftToElement.js +16 -11
  266. package/dist/automation/actions/interaction/swipe/swipeRightToElement.js +15 -10
  267. package/dist/automation/actions/interaction/swipe/swipeUpToElement.js +12 -10
  268. package/dist/automation/actions/interaction/swipe/swipeUpToElementForMWeb.js +16 -13
  269. package/dist/automation/actions/interaction/swipe/swipeUsingReferenceElement.js +19 -16
  270. package/dist/automation/actions/interaction/switch/switchToNewTabBasedOnTitle.js +7 -6
  271. package/dist/automation/actions/interaction/switch/switchToNewWindowBasedOnTitle.js +6 -5
  272. package/dist/automation/actions/interaction/switch/switchToParentWindow.js +6 -6
  273. package/dist/automation/actions/interaction/switch/switchToTabBasedOnUrl.js +6 -5
  274. package/dist/automation/actions/interaction/switch/switchToWindowBasedOnURL.js +5 -4
  275. package/dist/automation/actions/interaction/switch/switchToWindowIfTitleContainsString.js +7 -6
  276. package/dist/automation/actions/interaction/switch/switchToWindowIfUrlContainsString.js +6 -5
  277. package/dist/automation/actions/interaction/upload/uploadfile.js +21 -18
  278. package/dist/automation/actions/interaction/verify/MOB_VerifyBatteryLevel.js +8 -8
  279. package/dist/automation/actions/interaction/verify/MOB_VerifyIfAirplaneModeOff.js +7 -7
  280. package/dist/automation/actions/interaction/verify/MOB_VerifyIfAirplaneModeOn.js +7 -7
  281. package/dist/automation/actions/interaction/verify/MOB_VerifyIfAppIsClosed.js +19 -10
  282. package/dist/automation/actions/interaction/verify/MOB_VerifyIfDeviceIsLocked.js +7 -6
  283. package/dist/automation/actions/interaction/verify/MOB_VerifyIfDeviceIsUnlocked.js +7 -7
  284. package/dist/automation/actions/interaction/verify/MOB_VerifyIfGpsOff.js +12 -8
  285. package/dist/automation/actions/interaction/verify/MOB_VerifyIfGpsOn.js +12 -8
  286. package/dist/automation/actions/interaction/verify/MOB_VerifyIfKeyboardIsHidden.js +7 -7
  287. package/dist/automation/actions/interaction/verify/MOB_VerifyIfKeyboardIsShown.js +8 -7
  288. package/dist/automation/actions/interaction/verify/MOB_VerifyIfWifiOff.js +8 -7
  289. package/dist/automation/actions/interaction/verify/MOB_VerifyIfWifiOn.js +8 -7
  290. package/dist/automation/actions/interaction/verify/VerifyAccessibilityScore.js +8 -7
  291. package/dist/automation/actions/interaction/verify/VerifyAllBrokenImages.js +6 -6
  292. package/dist/automation/actions/interaction/verify/VerifyAllBrowserWindowsClosed.js +12 -10
  293. package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreDeSelected.js +19 -19
  294. package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreSelected.js +12 -12
  295. package/dist/automation/actions/interaction/verify/VerifyAttributeValue.js +35 -53
  296. package/dist/automation/actions/interaction/verify/VerifyBestPracticesScore.js +6 -5
  297. package/dist/automation/actions/interaction/verify/VerifyBrowserHtmlCodeContainsString.js +6 -5
  298. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowHeight.js +7 -6
  299. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleContainsString.js +7 -6
  300. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleIsString.js +7 -6
  301. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlContainsExpectedUrl.js +6 -5
  302. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlIsString.js +5 -4
  303. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowWidth.js +6 -5
  304. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowXLocation.js +6 -5
  305. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowYLocation.js +7 -6
  306. package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsNotSelected.js +12 -12
  307. package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsSelected.js +12 -12
  308. package/dist/automation/actions/interaction/verify/VerifyCssAttributeValue.js +20 -14
  309. package/dist/automation/actions/interaction/verify/VerifyElementIsClickable.js +28 -25
  310. package/dist/automation/actions/interaction/verify/VerifyElementIsDisabled.js +29 -27
  311. package/dist/automation/actions/interaction/verify/VerifyElementIsDisplayed.js +26 -24
  312. package/dist/automation/actions/interaction/verify/VerifyElementIsEnabled.js +26 -24
  313. package/dist/automation/actions/interaction/verify/VerifyElementIsEnabledInSpecifiedTime.d.ts +2 -0
  314. package/dist/automation/actions/interaction/verify/VerifyElementIsEnabledInSpecifiedTime.js +84 -0
  315. package/dist/automation/actions/interaction/verify/VerifyElementIsNotDisplayed.js +51 -28
  316. package/dist/automation/actions/interaction/verify/VerifyElementIsSelected.js +39 -27
  317. package/dist/automation/actions/interaction/verify/VerifyElementIsSelectedInSpecifiedTime.d.ts +2 -0
  318. package/dist/automation/actions/interaction/verify/VerifyElementIsSelectedInSpecifiedTime.js +83 -0
  319. package/dist/automation/actions/interaction/verify/VerifyElementNotContainsText.js +23 -23
  320. package/dist/automation/actions/interaction/verify/VerifyHeightOfWebElement.js +23 -23
  321. package/dist/automation/actions/interaction/verify/VerifyHexCodeForGivenXYCoordinates.js +44 -14
  322. package/dist/automation/actions/interaction/verify/VerifyIfAllCookiesAreDeleted.js +4 -4
  323. package/dist/automation/actions/interaction/verify/VerifyIfAudioEnded.js +12 -12
  324. package/dist/automation/actions/interaction/verify/VerifyIfAudioIsMuted.js +12 -12
  325. package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPaused.js +12 -12
  326. package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPlaying.js +12 -12
  327. package/dist/automation/actions/interaction/verify/VerifyIfBrowserWindowIsClosed.js +8 -9
  328. package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsAdded.js +6 -5
  329. package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsDeleted.js +5 -4
  330. package/dist/automation/actions/interaction/verify/VerifyIfCookieObjectIsPresent.js +5 -5
  331. package/dist/automation/actions/interaction/verify/VerifyIfGivenOptionIsDuplicate.js +14 -14
  332. package/dist/automation/actions/interaction/verify/VerifyIfImageIsBroken.js +6 -5
  333. package/dist/automation/actions/interaction/verify/VerifyIfLinkIsBroken.js +6 -5
  334. package/dist/automation/actions/interaction/verify/VerifyIfLinkIsWorking.js +6 -5
  335. package/dist/automation/actions/interaction/verify/VerifyIfLinksAreBroken.js +5 -4
  336. package/dist/automation/actions/interaction/verify/VerifyIfLinksAreWorking.js +5 -4
  337. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsDeselectedInElement.js +13 -13
  338. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsSelectedInListBox.js +13 -13
  339. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithTextIsDeselected.js +12 -12
  340. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsDeselected.js +12 -12
  341. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsSelected.js +12 -12
  342. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithVisibleTextIsSelected.js +12 -12
  343. package/dist/automation/actions/interaction/verify/VerifyIfSpecifiedOptionIsSelected.js +12 -12
  344. package/dist/automation/actions/interaction/verify/VerifyIfStatusCodeOfALinkIsStatusCode.js +7 -6
  345. package/dist/automation/actions/interaction/verify/VerifyIfStatusCodesOfLinks.js +30 -22
  346. package/dist/automation/actions/interaction/verify/VerifyIfVideoEnded.js +12 -12
  347. package/dist/automation/actions/interaction/verify/VerifyIfVideoIsMuted.js +12 -12
  348. package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPaused.js +12 -12
  349. package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPlaying.js +12 -12
  350. package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInMute.js +12 -12
  351. package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInUnmute.js +12 -12
  352. package/dist/automation/actions/interaction/verify/VerifyIfXAndYCoordinateOfElement.js +25 -23
  353. package/dist/automation/actions/interaction/verify/VerifyLinkNavigatesToTitle.js +7 -6
  354. package/dist/automation/actions/interaction/verify/VerifyListBoxOptionsAreSorted.js +12 -12
  355. package/dist/automation/actions/interaction/verify/VerifyNavigateURL.js +42 -14
  356. package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByTagName.js +7 -5
  357. package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByXpath.js +13 -7
  358. package/dist/automation/actions/interaction/verify/VerifyPartialAttributeValue.js +33 -42
  359. package/dist/automation/actions/interaction/verify/VerifyPartialTitleOfCurrentPage.js +7 -6
  360. package/dist/automation/actions/interaction/verify/VerifyPerformanceScore.js +7 -6
  361. package/dist/automation/actions/interaction/verify/VerifyPwaScore.js +6 -5
  362. package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsNotSelected.js +12 -12
  363. package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsSelected.js +12 -12
  364. package/dist/automation/actions/interaction/verify/VerifySeoScore.js +6 -5
  365. package/dist/automation/actions/interaction/verify/VerifyTagName.js +12 -12
  366. package/dist/automation/actions/interaction/verify/VerifyThatSpecifiedOptionIsNotSelected.js +20 -31
  367. package/dist/automation/actions/interaction/verify/VerifyTitleInAllPage.js +8 -7
  368. package/dist/automation/actions/interaction/verify/VerifyTitleOfCurrentPage.js +6 -5
  369. package/dist/automation/actions/interaction/verify/VerifyValueOfElementContainsString.js +12 -12
  370. package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsCleared.js +12 -12
  371. package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsString.js +12 -12
  372. package/dist/automation/actions/interaction/verify/VerifyWidthOfElement.js +23 -23
  373. package/dist/automation/actions/interaction/verify/VerifyXLocationOfElement.js +23 -23
  374. package/dist/automation/actions/interaction/verify/VerifyYLocationOfElement.js +26 -23
  375. package/dist/automation/actions/interaction/verify/checkIfElementIsDisplayed.js +26 -22
  376. package/dist/automation/actions/interaction/verify/verifyElementIsDisplayedWithinSpecifiedTime.d.ts +2 -0
  377. package/dist/automation/actions/interaction/verify/verifyElementIsDisplayedWithinSpecifiedTime.js +85 -0
  378. package/dist/automation/actions/interaction/verify/verifypartialtext.js +28 -25
  379. package/dist/automation/actions/interaction/verify/verifytext.js +30 -30
  380. package/dist/automation/actions/interaction/wait/MOB_WaitTillAllElementsAreInvisible.ts.js +5 -6
  381. package/dist/automation/actions/interaction/wait/MOB_WaitTillAttributeOfElementContainsString.js +17 -14
  382. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsEnabled.js +12 -11
  383. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsInvisible.js +14 -12
  384. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsSelected.js +12 -11
  385. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsVisible.js +15 -13
  386. package/dist/automation/actions/interaction/wait/MOB_WaitTillStalenessOfElement.js +12 -11
  387. package/dist/automation/actions/interaction/wait/wait.js +5 -4
  388. package/dist/automation/actions/interaction/wait/waitTillAttributeOfElementIsString.js +26 -24
  389. package/dist/automation/actions/interaction/wait/waitTillElementContainsText.js +26 -24
  390. package/dist/automation/actions/interaction/wait/waitTillElementHasText.js +26 -24
  391. package/dist/automation/actions/interaction/wait/waitTillElementIsClickable.js +28 -25
  392. package/dist/automation/actions/interaction/wait/waitTillPresenceOfAllElements.js +32 -22
  393. package/dist/automation/actions/interaction/wait/waitTillPresenceOfElement.js +26 -24
  394. package/dist/automation/actions/interface/FireFlinkResponseSchema.d.ts +160 -0
  395. package/dist/automation/actions/interface/FireFlinkResponseSchema.js +225 -0
  396. package/dist/automation/actions/interface/alertActionInterface.d.ts +1 -0
  397. package/dist/automation/actions/interface/findActionInterface.d.ts +3 -0
  398. package/dist/automation/actions/interface/getActionInterface.d.ts +76 -66
  399. package/dist/automation/actions/interface/getOtpInterface.d.ts +15 -0
  400. package/dist/automation/actions/interface/getOtpInterface.js +2 -0
  401. package/dist/automation/actions/interface/interactionActionInterface.d.ts +5 -0
  402. package/dist/automation/actions/interface/mouseActionsinterface.d.ts +51 -0
  403. package/dist/automation/actions/interface/mouseActionsinterface.js +2 -0
  404. package/dist/automation/actions/interface/pinchActionInterface.d.ts +7 -0
  405. package/dist/automation/actions/interface/pressActionInterface.d.ts +4 -0
  406. package/dist/automation/actions/interface/swipeActionInterface.d.ts +25 -10
  407. package/dist/automation/actions/interface/verifyActionInterface.d.ts +36 -0
  408. package/dist/automation/actions/interface/waitActionInterface.d.ts +19 -0
  409. package/dist/automation/browserSession/initiateBrowserSession.d.ts +1 -1
  410. package/dist/automation/browserSession/initiateBrowserSession.js +15 -7
  411. package/dist/automation/cloudSession/initiateCloudSession.js +3 -1
  412. package/dist/automation/driverState.d.ts +2 -0
  413. package/dist/automation/driverState.js +4 -0
  414. package/dist/automation/mobileSession/initiateMobileSession.d.ts +28 -5
  415. package/dist/automation/mobileSession/initiateMobileSession.js +100 -23
  416. package/dist/core/constants/allAction.js +6 -1
  417. package/dist/core/constants/supportedActions.d.ts +1 -0
  418. package/dist/core/constants/supportedActions.js +19 -8
  419. package/dist/core/interfaces/actionInterface.d.ts +38 -33
  420. package/dist/core/interfaces/browserConfigurationInterface.d.ts +0 -4
  421. package/dist/core/interfaces/browserConfigurationInterface.js +0 -1
  422. package/dist/core/interfaces/executionDetails.d.ts +6 -3
  423. package/dist/core/interfaces/fireflinkScriptPayloadInterface.d.ts +26 -17
  424. package/dist/core/interfaces/llmConfigurationInterface.d.ts +3 -2
  425. package/dist/core/interfaces/llmResponseInterface.d.ts +11 -10
  426. package/dist/core/interfaces/promptInterface.d.ts +1 -0
  427. package/dist/core/interfaces/scriptGenrationDataInterface.d.ts +14 -0
  428. package/dist/core/interfaces/simplifyAndFlattenInterface.d.ts +5 -0
  429. package/dist/core/main/SessionManager.d.ts +9 -0
  430. package/dist/core/main/SessionManager.js +23 -0
  431. package/dist/core/main/actionHandlerFactory.js +353 -86
  432. package/dist/core/main/executionContext.d.ts +8 -2
  433. package/dist/core/main/executionContext.js +94 -4
  434. package/dist/core/main/runAutomationScript.d.ts +2 -0
  435. package/dist/core/main/runAutomationScript.js +1003 -276
  436. package/dist/core/main/stepProcessor.d.ts +2 -1
  437. package/dist/core/main/stepProcessor.js +8 -3
  438. package/dist/core/types/browserType.d.ts +3 -3
  439. package/dist/core/types/browserType.js +2 -2
  440. package/dist/core/types/messageType.d.ts +13 -0
  441. package/dist/core/types/messageType.js +15 -0
  442. package/dist/core/types/promptType.d.ts +2 -1
  443. package/dist/core/types/promptType.js +1 -0
  444. package/dist/core/types/scriptTypesType.d.ts +1 -1
  445. package/dist/core/types/visionllmInputType.d.ts +4 -5
  446. package/dist/domAnalysis/getRelaventElements.d.ts +5 -1
  447. package/dist/domAnalysis/getRelaventElements.js +14 -5
  448. package/dist/domAnalysis/relativeElementsFromDom.d.ts +2 -1
  449. package/dist/domAnalysis/relativeElementsFromDom.js +66 -1
  450. package/dist/domAnalysis/searchBest.d.ts +5 -1
  451. package/dist/domAnalysis/searchBest.js +160 -58
  452. package/dist/domAnalysis/simplifyAndFlatten.d.ts +3 -2
  453. package/dist/domAnalysis/simplifyAndFlatten.js +114 -19
  454. package/dist/fireflinkData/fireflinkLocators/getListOfLocators.d.ts +3 -0
  455. package/dist/fireflinkData/fireflinkLocators/getListOfLocators.js +26 -12
  456. package/dist/fireflinkData/fireflinkLocators/{elementsFromHTML.d.ts → parser/getElementsFromHTML.d.ts} +5 -11
  457. package/dist/fireflinkData/fireflinkLocators/parser/getElementsFromHTML.js +573 -0
  458. package/dist/fireflinkData/fireflinkLocators/types/locator.d.ts +27 -0
  459. package/dist/fireflinkData/fireflinkLocators/types/locator.js +2 -0
  460. package/dist/fireflinkData/fireflinkLocators/utils/androidSelector.d.ts +2 -0
  461. package/dist/fireflinkData/fireflinkLocators/utils/androidSelector.js +57 -0
  462. package/dist/fireflinkData/fireflinkLocators/utils/cssSelector.d.ts +19 -0
  463. package/dist/fireflinkData/fireflinkLocators/utils/cssSelector.js +189 -0
  464. package/dist/fireflinkData/fireflinkLocators/utils/iosSelector.d.ts +2 -0
  465. package/dist/fireflinkData/fireflinkLocators/utils/iosSelector.js +183 -0
  466. package/dist/fireflinkData/fireflinkLocators/utils/referenceXpath.d.ts +35 -0
  467. package/dist/fireflinkData/fireflinkLocators/utils/referenceXpath.js +513 -0
  468. package/dist/fireflinkData/fireflinkLocators/utils/xpath.d.ts +29 -0
  469. package/dist/fireflinkData/fireflinkLocators/utils/xpath.js +710 -0
  470. package/dist/fireflinkData/fireflinkLocators/utils/xpathHelpers.d.ts +135 -0
  471. package/dist/fireflinkData/fireflinkLocators/utils/xpathHelpers.js +1628 -0
  472. package/dist/fireflinkData/fireflinkScript/appendScriptData.d.ts +2 -0
  473. package/dist/fireflinkData/fireflinkScript/appendScriptData.js +48 -0
  474. package/dist/fireflinkData/fireflinkScript/scriptGenrationData.d.ts +2 -2
  475. package/dist/fireflinkData/fireflinkScript/scriptGenrationData.js +18 -24
  476. package/dist/imageAnalysisMobile/annotatedScreenshotMobile.d.ts +4 -0
  477. package/dist/imageAnalysisMobile/annotatedScreenshotMobile.js +115 -7
  478. package/dist/imageAnalysisWeb/annotateScreenshot.js +4 -4
  479. package/dist/imageAnalysisWeb/generateAnnotatedScreenshots.d.ts +4 -1
  480. package/dist/imageAnalysisWeb/generateAnnotatedScreenshots.js +15 -17
  481. package/dist/llmConfig/llmConfiguration.d.ts +4 -3
  482. package/dist/llmConfig/llmConfiguration.js +48 -18
  483. package/dist/service/api/fireflinkApi.service.d.ts +1 -1
  484. package/dist/service/api/fireflinkApi.service.js +1 -2
  485. package/dist/service/fireflink.service.d.ts +3 -3
  486. package/dist/service/fireflink.service.js +24 -22
  487. package/dist/service/kafka/fireflinkKafka.service.d.ts +1 -2
  488. package/dist/service/kafka/fireflinkKafka.service.js +6 -4
  489. package/dist/tests/poc.d.ts +0 -1
  490. package/dist/tests/poc.js +211 -226
  491. package/dist/tests/test.d.ts +1 -0
  492. package/dist/tests/test.js +26 -0
  493. package/dist/tests/test12.d.ts +0 -1
  494. package/dist/tests/test12.js +65 -467
  495. package/dist/tests/testkaf.d.ts +0 -1
  496. package/dist/tests/testkaf.js +51 -55
  497. package/dist/tests/testss.d.ts +1 -0
  498. package/dist/tests/testss.js +23 -0
  499. package/dist/utils/DomExtraction/jsForAttributeInjection.d.ts +2 -0
  500. package/dist/utils/DomExtraction/jsForAttributeInjection.js +220 -8
  501. package/dist/utils/InstancesDetails/getInstancesInfo.d.ts +26 -1
  502. package/dist/utils/InstancesDetails/getInstancesInfo.js +11 -5
  503. package/dist/utils/browserCap/capability.d.ts +14 -10
  504. package/dist/utils/browserCap/capability.js +97 -16
  505. package/dist/utils/frameWorkDetector/frameWorkDetector.d.ts +6 -0
  506. package/dist/utils/frameWorkDetector/frameWorkDetector.js +43 -0
  507. package/dist/utils/frameWorkDetector/frameWorkDetectorInterface.d.ts +10 -0
  508. package/dist/utils/frameWorkDetector/frameWorkDetectorInterface.js +2 -0
  509. package/dist/utils/helpers/domSanitizer.d.ts +1 -0
  510. package/dist/utils/helpers/domSanitizer.js +9 -0
  511. package/dist/utils/helpers/enterActionHelper.d.ts +1 -0
  512. package/dist/utils/helpers/enterActionHelper.js +25 -5
  513. package/dist/utils/helpers/platformContext.d.ts +3 -0
  514. package/dist/utils/helpers/platformContext.js +11 -0
  515. package/dist/utils/helpers/platformSyntax.d.ts +1 -0
  516. package/dist/utils/helpers/platformSyntax.js +17 -0
  517. package/dist/utils/helpers/sameActionsHelper.js +7 -2
  518. package/dist/utils/helpers/xpathcreation.d.ts +5 -1
  519. package/dist/utils/helpers/xpathcreation.js +44 -5
  520. package/dist/utils/iframesExtraction/findElementUsingFF.js +12 -9
  521. package/dist/utils/iframesExtraction/iframeInterface.d.ts +4 -0
  522. package/dist/utils/javascript/jsFindElement.d.ts +1 -1
  523. package/dist/utils/javascript/jsFindElement.js +2 -2
  524. package/dist/utils/javascript/jsForShadowRoot.d.ts +1 -1
  525. package/dist/utils/javascript/jsForShadowRoot.js +4 -0
  526. package/dist/utils/javascript/jsForVision.d.ts +2 -2
  527. package/dist/utils/javascript/jsForVision.js +17 -5
  528. package/dist/utils/logger/logData.d.ts +1 -0
  529. package/dist/utils/logger/logData.js +19 -0
  530. package/dist/utils/newTab/newTabTracker.js +18 -6
  531. package/dist/utils/sslConfig/apiCallPatch.d.ts +1 -0
  532. package/dist/utils/sslConfig/apiCallPatch.js +33 -0
  533. package/dist/utils/sslConfig/getSecureAgent.d.ts +2 -0
  534. package/dist/utils/sslConfig/getSecureAgent.js +30 -0
  535. package/dist/utils/swipe/domSearchHelper.d.ts +1 -1
  536. package/dist/utils/swipe/domSearchHelper.js +43 -42
  537. package/dist/utils/swipe/swipeMovement.js +28 -19
  538. package/dist/utils/workers/LocatorWorkerInterface.d.ts +22 -0
  539. package/dist/utils/workers/LocatorWorkerInterface.js +2 -0
  540. package/dist/utils/workers/LocatorWorkerPool.d.ts +13 -0
  541. package/dist/utils/workers/LocatorWorkerPool.js +89 -0
  542. package/dist/utils/workers/locatorWorker.d.ts +1 -0
  543. package/dist/utils/workers/locatorWorker.js +44 -0
  544. package/package.json +23 -6
  545. package/dist/automation/actions/interaction/get/getAudioDimension.d.ts +0 -2
  546. package/dist/automation/actions/interaction/get/getAudioDimension.js +0 -34
  547. package/dist/automation/actions/interaction/get/getAudioHeight.d.ts +0 -2
  548. package/dist/automation/actions/interaction/get/getAudioHeight.js +0 -30
  549. package/dist/automation/actions/interaction/get/getAudioWidth.d.ts +0 -2
  550. package/dist/automation/actions/interaction/get/getAudioWidth.js +0 -30
  551. package/dist/automation/actions/interaction/get/getVideoDimension.d.ts +0 -2
  552. package/dist/automation/actions/interaction/get/getVideoDimension.js +0 -31
  553. package/dist/automation/actions/interaction/get/getVideoHeight.d.ts +0 -2
  554. package/dist/automation/actions/interaction/get/getVideoHeight.js +0 -28
  555. package/dist/automation/actions/interaction/get/getVideoWidth.d.ts +0 -2
  556. package/dist/automation/actions/interaction/get/getVideoWidth.js +0 -28
  557. package/dist/fireflinkData/fireflinkLocators/elementsFromHTML.js +0 -514
  558. package/dist/fireflinkData/fireflinkLocators/typeList.d.ts +0 -1
  559. package/dist/fireflinkData/fireflinkLocators/typeList.js +0 -33
@@ -6,43 +6,44 @@ async function combinedActionExtractorPromptMob({ extractedDomJson, priorAndNext
6
6
  "MOB_IsAppInstalled","MOB_SetEmulatorPowerPercentage","MOB_ReceiveMessageOnEmulator","MOB_UninstallAPK",
7
7
  "MOB_InstallAPK","MOB_SetClipBoardText","MOB_PressAnyKeyNTimes",
8
8
  "MOB_SetContext","MOB_TerminateAppUsingAppPackage","MOB_OpenAppWithApkFilePath","MOB_ActivateAppUsingAppPackage",
9
- "MOB_ExecuteJavaScript","MOB_LongPress","MOB_Clear","MOB_EnterInputIntoElementFromClipBoard",
10
- "MOB_FindElement","FindElements","MOB_OpenNotification","MOB_PressEnterKey","MOB_ResetApp","MOB_HideKeyboard",
9
+ "MOB_ExecuteJavaScript","MOB_LongPress","MOB_EnterInputIntoElementFromClipBoard",
10
+ "MOB_OpenNotification","MOB_PressEnterKey","MOB_ResetApp","MOB_HideKeyboard",
11
11
  "MOB_SetEmulatorPowerStateOff","MOB_OpenChromeBrowser","MOB_SetDeviceOrientationAsPortrait","MOB_SetDeviceOrientationAsLandscape",
12
12
  "MOB_SetEmulatorPowerStateOn","MOB_AirplaneModeSwitchOn","MOB_LockDevice","MOB_WifiSwitchOff",
13
13
  "Continue","MOB_GpsSwitchOn","MOB_GpsSwitchOff","MOB_RestartCurrentDevice","MOB_AirplaneModeSwitchOff","Break","MOB_WifiSwitchOn",
14
- "MOB_PinchInByPercent","MOB_PinchOutByPercent","MOB_Click",
14
+ "MOB_PinchInByPercent","MOB_PinchOutByPercent","MOB_Click","MOB_FindElement","MOB_FindElements",
15
15
  "MOB_CreateCapabilitiesInstance","MOB_PressAnyKey","MOB_PressBackSpaceKey","MOB_PressSpaceKey","MOB_RunAppInBackground",
16
16
  "MOB_SetAppiumDriverSettings","MOB_SetDriverInstance","MOB_SetImplicitTimeOut",
17
17
  "MOB_TakeScreenShotAndCompareWithImage","MOB_TakeScreenshotAndCompareSectionWithImage","MOB_TakeScreenshotAndCompareWithImageIgnoringSpecifiedSection"`;
18
18
  const elementType = ["link", "textfield", "icon", "button", "radiobutton", "checkbox", "tab", "action overflow button", "hamburger menu", "toggle button", "steppers", "sliders"];
19
19
  const prompt = `
20
20
  You are an intelligent assistant that extracts structured UI action data.
21
- Given the step, the simplified DOM: ${extractedDomJson}, and the list of NLP names: ${nlpList}.
21
+ Given the step, the simplified DOM: ${extractedDomJson}, and the nlpList: ${nlpList}.
22
22
 
23
- Select the perfect matching NLP name from the list that best fits the step's intent.
23
+ **Select the perfect matching NLP name from the nlpList that best fits and matches the user given step.**
24
24
  if step has only word continue or break then return nlpName as continue or break only if they dont have any action in step.
25
25
 
26
26
  Return **only valid JSON** in the following format:
27
27
  {
28
- "attribute_value": "Fire-Flink-x",
28
+ "attributeValue": "Fire-Flink-x",
29
29
  "nlpName": "x",
30
- "input_text":"x",
30
+ "inputText":"x",
31
31
  "keyword": "x",
32
32
  "elementType": "x",
33
- "keycode": "x"
33
+ "keyCode": "x"
34
34
  }
35
35
  Rules:
36
36
  - nlpName must be exactly one from the provided list.
37
37
  - Use context from the steps : ${priorAndNextSteps}, keyword and json to search for FF-inspecter.
38
38
  - **Find the FF-inspecter attribute value of the element in the Simplified JSON whose text or attributes best match the step.**
39
- - If step has mutipul inputs add all in input_text and all matched attribute_value also.
40
- - Extract input_text from the step, if you can't find any input text in the step, return keyword as input_text.input can be number, app package, apk file path.dont include extra words.
39
+ - If step has mutipul inputs add all in inputText and all matched attributeValue also.
40
+ - **Extract inputText from the step, if you can't find any input text in the ste,input can be number or app package or bundle id or apk file path and if anything mentioned in string consider it as input text.dont include extra words.**
41
41
  - Extract keyword from the step, if the step contains any keyword.
42
42
  - Extract keycode of keys if the step contains any key name like ENTER,SPACE,BACKSPACE etc and give keycode of the given key.
43
- - Use the closest semantic match for the step; return attribute_value as Fire-Flink-0, only if nothing is found.
44
- - Based on step give most relevant type of element. use this list to choose element_type: ${elementType} and Never change syntax of element_type, follow the syntax of element_type in list.if element_type is not there in list return 'link'.
45
- - If the steps is to find elements then provide nlpName as findElements and if the step is to find element then provide nlpName as MOB_FindElement.
43
+ - Use the closest semantic match for the step; return attributeValue as Fire-Flink-0, only if nothing is found.
44
+ - Based on step give most relevant type of element. use this list to choose elementType: ${elementType} and Never change syntax of element_type, follow the syntax of element_type in list.if element_type is not there in list return 'link'.
45
+ - If the steps is to find elements then provide nlpName as MOB_FindElements and if the step is to find element then provide nlpName as MOB_FindElement.
46
+ - Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
46
47
  - Respond with valid json only.
47
48
  `;
48
49
  return prompt;
@@ -9,6 +9,8 @@ SYSTEM CONTEXT:
9
9
  - The underlying automation framework must NEVER be mentioned.
10
10
  - The tone must be professional, clear, and user-friendly.
11
11
  - Do NOT expose internal technical details.
12
+ - IF error message contains a custom error message, error and errorDescription should be based on that custom error message.
13
+ - If error is based on llm response error or llm related error than error and errorDescription should be based on that context.
12
14
 
13
15
  ERROR NORMALIZATION:
14
16
  - Convert the failure into the closest equivalent Selenium-style exception class name.
@@ -30,7 +32,7 @@ STRICT OUTPUT RULES:
30
32
  Return a JSON object with EXACTLY these keys:
31
33
 
32
34
  1. "error":
33
- - A concise, single-line, selenium exception name or appium exception name (error).__name__ (e.g., "InvalidSessionIdException", "NoSuchElementException", "WebDriverException","ElementNotInteractableException" etc) expamle: if error is element not found, return "NoSuchElementException"
35
+ - A concise, single-line, selenium exception name or appium exception name (error).__name__ (e.g., "InvalidSessionIdException", "NoSuchElementException", "WebDriverException","ElementNotInteractableException" etc) expamle: if error is element not found, return "NoSuchElementException" and for device not found or error relatd to appium server connection or related to app package or incorrect adb path return "WebDriverException".
34
36
  - Must contain ONLY a single Selenium-style exception class name.
35
37
  - Do NOT include additional words.
36
38
 
@@ -40,9 +42,9 @@ Return a JSON object with EXACTLY these keys:
40
42
  - Avoid words like "system", "framework", or "process".
41
43
  - Describe the issue as a general situation, not from a system perspective.
42
44
  - Provide realistic possible causes based on the exception type.
43
- - Keep it concise and non-repetitive.
44
-
45
- Required JSON format:
45
+ - Keep it concise and non-repetitive. and should be exactly 40 words no more or no less.
46
+ - Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
47
+ Required JSON format:
46
48
 
47
49
  {
48
50
  "error": "",
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ffInspectorNumExtractor = ffInspectorNumExtractor;
4
4
  async function ffInspectorNumExtractor({ stepAction, extractedDomJson, priorAndNextSteps, isAlert = false, isDrag = false, }) {
5
5
  const switchActions = ["SwitchToNewTabBasedOnTitle", "SwitchToNewTabBasedOnUrl", "SwitchToNewWindowBasedOnTitle", "SwitchToNewWindowBasedOnURL", "SwitchToParentWindow", "SwitchToWindowIfTitleContainsString", "SwitchToNewWindowIfUrlContainsString"];
6
+ const mouseAction = ["MouseClickOnCurrentCursorPoint", "MouseDoubleClickAtCursorPoint", "ReleaseLeftMouseButton", "PressAndHoldLeftMouseButton", "MouseHover", "MouseClickOnCurrentCursorPointNTimes"];
6
7
  const clickActions = ["Click", "DoubleClick", "RightClick", "WaitAndClick", "ClickNTimes", "ClickUsingJS"];
7
8
  const alertActions = [
8
9
  "ClickOkOnAlertPopup",
@@ -14,7 +15,7 @@ async function ffInspectorNumExtractor({ stepAction, extractedDomJson, priorAndN
14
15
  "WaitTillAlertIsPresent",
15
16
  "VerifyTextPresentOnAlertPopup"
16
17
  ];
17
- const scrollActions = ["ScrollToElement", "ScrollVerticallyTillElementIsVisible", "ScrollHorizontallyTillElementIsVisible"];
18
+ const scrollActions = ["ScrollToElement", "ScrollVerticallyTillElementIsVisible", "ScrollHorizontallyTillElementIsVisible", "ScrollPageToSpecificLocation"];
18
19
  const elementType = ['link', 'textfield', 'icon', 'button', 'radioButton', 'text', 'textarea', 'image', 'dropdown', 'checkbox', 'tab', 'action overflow button', 'hamburger icon', 'toggle button', 'suggestion', 'time picker', 'date picker', 'toaster message', 'card', 'tooltip', 'option', 'calender', 'sliders', 'visual testing'];
19
20
  const enterActions = ["SendKeys", "ClearThenEnterInput", "WaitAndSendKeys", "EnterInputUsingJS", "EnterDataAndPressKey"];
20
21
  let prompt;
@@ -24,16 +25,18 @@ async function ffInspectorNumExtractor({ stepAction, extractedDomJson, priorAndN
24
25
  You are given a manual test step that requires interaction with a browser alert popup.
25
26
  Based on the step, return the required alert element with input in the following JSON format only:
26
27
  Rules:
27
- - if the alert requires entering text inpt alert or for verification if we need compare text than extract that text and give as input_text.
28
- - If no input is needed, set "input_text" to "None".
29
- - if step is about verify text present than map to VerifyTextPresentOnAlertPopup.and if step is about verify text contains than map to VerifyAlertPopUpMessageContainsString.
28
+ - if the alert requires entering text inpt alert or for verification if we need compare text then extract that text and give as inputText.
29
+ - if step about VerifyAlertPopupIsDisplayed and if step consists of time in step then extract time and give as inputText ex : "Verify Alert popup is displayed within 5 sec" -> inputText: "5" no need to extract any element just return the inputText.
30
+ - If no input is needed, set "inputText" to "None".
31
+ - if step is about verify text present then map to VerifyTextPresentOnAlertPopup.and if step is about verify text contains than map to VerifyAlertPopUpMessageContainsString.
30
32
  - Do not add explanations, comments, or extra text.
31
33
  - send one action from this list only ${alertActions} witch is related to step.
34
+ - Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
32
35
  - Output must be valid JSON.
33
36
  Respond only with JSON using this format:
34
37
  {
35
- "action": x,
36
- "input_text": "text to enter" | "None"
38
+ "action": ${alertActions.join("|")},
39
+ "inputText": "text to enter" | "time" | "None"
37
40
  }
38
41
 
39
42
  `;
@@ -56,10 +59,10 @@ Rules:
56
59
  - If not found, return Fire-Flink-0 for both.
57
60
  - Extract element names from step if possible.
58
61
  - Respond with JSON only.
59
- - The element type should be from this list ${elementType}, check for both drag and drop element type.
62
+ - The element type should be from this list ${elementType.join("|")}, check for both drag and drop element type.
60
63
  Simplified JSON:
61
64
  ${extractedDomJson}
62
-
65
+ - Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
63
66
  Respond only with JSON using this format:
64
67
  {
65
68
  "drag": "Fire-Flink-x",
@@ -81,27 +84,28 @@ You are an intelligent assistant that extracts structured UI action data.
81
84
 
82
85
  Rules:
83
86
  - Step: for the given step
84
- - Use context from test steps: ${JSON.stringify(priorAndNextSteps)}
85
- - Use simplified JSON to find best FF-inspect match.
86
- - Choose closest semantic + DOM-distance match.
87
+ - Use context from the ${JSON.stringify(priorAndNextSteps)}, keyword and filtered dom to search for FF-inspecter.
88
+ - Simplified JSON: ${extractedDomJson} — if it is empty, null, or has no valid data, return strictly "attributeValue":"Fire-Flink-0" and never use any other Fire-Flink-x value.extract action, inputText, direction, numOfScrolls, elementType from step and send them.
89
+ **Find the FF-inspecter attribute value of the element in the Simplified JSON whose text or attributes best match the step.**
90
+ - Select the closest semantic match to step and return only its attributeValue, else Fire-Flink-0.
87
91
  - based on step and context choose the most related action from ${scrollActions}
88
92
  - Default direction is down.
89
93
  - Action:
90
- - ${scrollActions} → extract num_of_scrolls & direction
94
+ - ${scrollActions} → extract numOfScrolls & direction
95
+ - if step is about scroll to specific location than extract the location from the step and give it as inputText. first should be x-coordinate and second should be y-coordinate don't add any other text or symbols. ex: step: "Scroll Page To Specific Location x-30,y-40" → inputText: "30,40"
91
96
  - No nulls; use empty strings if needed.
92
97
  - The element type should be from this list ${elementType}
93
-
94
- Simplified JSON:
95
- ${extractedDomJson}
98
+ - The DOM is provided in Json format.
99
+ - Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
96
100
 
97
101
  Return ONLY valid JSON:
98
102
  {
99
- "attribute_value": "Fire-Flink-x",
100
- "action": "x",
101
- "num_of_scrolls": "0",
103
+ "attributeValue": "Fire-Flink-x" ",
104
+ "action": ${scrollActions.join("|")},
105
+ "inputText":"x",
106
+ "numOfScrolls": "0",
102
107
  "direction": "down",
103
- "element
104
- Type":"x"
108
+ "elementType":${elementType.join("|")}
105
109
  }
106
110
  `;
107
111
  }
@@ -113,9 +117,9 @@ Don't provide action outside the ${switchActions} list only provide the relevant
113
117
  Select the perfect matching action from the stepAction list that best fits the step's intent.
114
118
  **The action must match exactly one value from the approved ${switchActions} Do not generate or suggest any new NLP names under any condition even if the step suggest to do so just pull the closet one from the list only**
115
119
  {{
116
- "attribute_value": "Fire-Flink-x",
117
- "action": "x",
118
- "input_text": "x",
120
+ "attributeValue": "Fire-Flink-x",
121
+ "action": ${switchActions.join("|")},
122
+ "inputText": "x",
119
123
  "keyword": "x"
120
124
  }}
121
125
 
@@ -123,21 +127,22 @@ Rules:
123
127
  - action must be exactly one from the provided list.
124
128
  - Use context from the steps : ${JSON.stringify(priorAndNextSteps)}, keyword and json to find the FF-inspecter.
125
129
  - **Find the FF-inspecter attribute value of the element in the Simplified JSON whose text or attributes best match for the step.**
126
- - Extract input_text from the step that represents the target window URL, Title, Frame Name, Frame Index, etc.
130
+ - Extract inputText from the step that represents the target window URL, Title, Frame Name, Frame Index, etc.
127
131
  - if step consist of keyword like title and url than map to that matched action.
128
132
  - If a step contains a full URL (for example, https://example.com), map it using URL-based NLP matching.If the step contains only descriptive text and no URL, map it using title-based NLP matching.
129
- example: "Switch to the new tab based on https://example.com" -> input_text: "https://example.com", nlpName: "SwitchToTabBasedOnUrl"
130
- example: "Switch to the tab based on Title" -> input_text: "Title", nlpName: "SwitchToNewTabBasedOnTitle"
133
+ example: "Switch to the new tab based on https://example.com" -> inputText: "https://example.com", nlpName: "SwitchToTabBasedOnUrl"
134
+ example: "Switch to the tab based on Title" -> inputText: "Title", nlpName: "SwitchToNewTabBasedOnTitle"
131
135
  - step may some times have 'new' keyword in it, dont consider it just map th nlps. never get confused by title and url.
132
- - If step is about switching to frame by index, input_text should be the index number.
133
- - If step is about switching to frame by name, input_text should be the frame name.
134
- - If step is about switching to window by URL or Title, input_text should be the url or title string.
136
+ - If step is about switching to frame by index, inputText should be the index number.
137
+ - If step is about switching to frame by name, inputText should be the frame name.
138
+ - If step is about switching to window by URL or Title, inputText should be the url or title string.
135
139
  - If no explicit input is found, attempt to infer it or leave empty if the NLP implies a specific action without input (e.g. SwitchToParentWindow).
140
+ - Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
136
141
  - **Respond with valid JSON only. don't return any other text or don't return response in list format**
137
142
  `;
138
143
  }
139
144
  // ---------------- DEFAULT (CLICK / cleartext etc.) ----------------
140
- else if (stepAction === "click" || stepAction === "cleartext") {
145
+ else if (stepAction === "mouseAction") {
141
146
  prompt = `
142
147
 
143
148
  -You are an intelligent assistant that extracts structured UI action data.
@@ -147,17 +152,58 @@ Rules:
147
152
 
148
153
  Return **only valid JSON** in the following format:
149
154
  {
150
- "attribute_value": "Fire-Flink-x",
151
- "action": "x",
152
- "input_text": "x",
153
- "elementType": "x"
155
+ "attributeValue": "Fire-Flink-x",
156
+ "action": ${mouseAction.join("|")},
157
+ "inputText": "x",
158
+ "elementType": ${elementType.join("|")}
154
159
  }
155
160
 
156
161
  Rules:
157
162
  You are an AI assistant. For the step, extract the element keyword from the step (the field name like 'Leaving from', 'Going To').
158
163
  - Use context from the ${JSON.stringify(priorAndNextSteps)}, keyword and filtered dom to search for FF-inspecter.
159
- - Simplified JSON: ${extractedDomJson} — if it is empty, null, or has no valid data, return strictly "attribute_value":"Fire-Flink-0" and never use any other Fire-Flink-x value.
164
+ - Simplified JSON: ${extractedDomJson} — if it is empty, null, or has no valid data, return strictly "attributeValue":"Fire-Flink-0" and never use any other Fire-Flink-x value.extract action, inputText, keyword, elementType from step and send them.
165
+ - Select the closest semantic match to step and return only its attributeValue, else Fire-Flink-0
160
166
  - **Find the FF-inspecter attribute value of the element in the Simplified JSON whose text or attributes best match the atep.**
167
+ - If multiple matches exist, use the reference element and choose the closest match by ff-inspect distance.
168
+
169
+ **important example: step: "mouce click on login below user login"
170
+ simplified json:
171
+ login - ff-inspect-300
172
+ user login - ff-inspect-790
173
+ login - ff-inspect-803
174
+ then should return login - ff-inspect-803 witch is near to user reference element user login - ff-inspect-790**
175
+ - Do not return elements far away from the reference.
176
+ - These are actions: ${mouseAction}. action should be exactly one from the provided list.
177
+ - Select the closest semantic match to step and return only its attributeValue, else Fire-Flink-0.
178
+ - example: step: "mouse click on login below user login" -> should return the attributeValue of the login element.
179
+ - for mouse click on current cursor point n times in that case provide input text as number of clicks only.
180
+ - Based on step give most relevant type of element. use this list to choose elementType: ${elementType.join("|")} and Never change syntax of elementType, follow the syntax of elementType in list.if elementType is not there in list return 'link'.
181
+ - Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
182
+ - Respond with valid JSON only.Don
183
+ `;
184
+ }
185
+ else if (stepAction === "click" || stepAction === "cleartext") {
186
+ prompt = `
187
+
188
+ -You are an intelligent assistant that extracts structured UI action data.
189
+ -Given a structured UI JSON representation with uniquely identified elements (ff-inspect values like Fire-Flink-0, Fire-Flink-1, Fire-Flink-2, Fire-Flink-3... in DOM order),
190
+ -locate the most appropriate element for an automation step by performing keyword-based matching using exact, partial, and fuzzy strategies, and
191
+ return the identifier of the best match.
192
+
193
+ Return **only valid JSON** in the following format:
194
+ {
195
+ "attributeValue": "Fire-Flink-x",
196
+ "action": ${clickActions.join("|")},
197
+ "inputText": "x",
198
+ "elementType": ${elementType.join("|")}
199
+ }
200
+
201
+ Rules:
202
+ You are an AI assistant. For the step, extract the element keyword from the step (the field name like 'Leaving from', 'Going To').
203
+ - Use context from the ${JSON.stringify(priorAndNextSteps)}, keyword and filtered dom to search for FF-inspecter.
204
+ - **Simplified JSON: ${extractedDomJson} — if it is empty, null, or has no valid data, return strictly "attributeValue":"Fire-Flink-0" and never use any other Fire-Flink-x value.extract action, inputText, elementType from step and send them.**
205
+ - Select the closest semantic match to step and return only its attributeValue, else Fire-Flink-0
206
+ - **Find the FF-inspecter attribute value of the element in the Simplified JSON whose text or attributes best match the step.**
161
207
  - If multiple matches exist, use the reference element and choose the closest match by ff-inspect distance.
162
208
  **important example: step: "click on login below user login"
163
209
  simplified json:
@@ -166,16 +212,20 @@ You are an AI assistant. For the step, extract the element keyword from the step
166
212
  login - ff-inspect-803
167
213
  then should return login - ff-inspect-803 witch is near to user reference element user login - ff-inspect-790**
168
214
  - Do not return elements far away from the reference.
169
- - These are actions: ${clickActions}.
170
- - For wait and click step check in the step the time of wait in seconds will be mentioned take provide it has the input_text in the output and action as waitandclick as mention in the clickactionlist similarly for the click n times n will the input_text in the output and action as clickntimes as mention in the clickactionlist.
215
+ - These are actions: ${clickActions}. action should be exactly one from the provided list.
216
+ - For wait and click step check in the step the time of wait in seconds will be mentioned take provide it has the inputText in the output and action as waitandclick as mention in the clickactionlist similarly for the click n times n will the inputText in the output and action as clickntimes as mention in the clickactionlist.
171
217
  - If it is like wait and click in the step then send the wait time as the value as provided in the step and then for click n times provide the n as the value in the output.
172
- - Select the closest semantic match to step and return only its attribute_value, else Fire-Flink-0.
173
- - For WaitAndClick take action as WaitAndClick and input_text as the wait time as provided in the step.
174
- - For ClickNTimes take action as ClickNTimes and input_text as the n as provided in the step.
175
- - For ClickUsingJS take action as ClickUsingJS and input_text as the empty string and select this click action only if the step is about clicking an element using javascript.
218
+ - Select the closest semantic match to step and return only its attributeValue, else Fire-Flink-0.
219
+ - If a step involves a select action, you MUST first check for a matching option tag (exact or fuzzy) and return its attributeValue; ONLY if no option exists, return the related select element. example: step: "select state India" -> should return the attributeValue of the option tag with text 'India'.
220
+ - If a matching option is found, returning the select element is strictly invalid unless the step explicitly says to click the select dropdown itself.
221
+ - For WaitAndClick take action as WaitAndClick and inputText as the wait time as provided in the step.
222
+ - For ClickNTimes take action as ClickNTimes and inputText as the n as provided in the step.
223
+ - For ClickUsingJS take action as ClickUsingJS and inputText as the empty string and select this click action only if the step is about clicking an element using javascript.
176
224
  - Action: ${clickActions} for clicking or selecting,'Clear' for clearing text based on the step.
177
- - For Click action, if only step involving 'clicking on icon' then try to return related svg tags attribute_value, if they are available in simplified json.
178
- - Based on step give most relevant type of element. use this list to choose element_type: ${elementType} and Never change syntax of element_type, follow the syntax of element_type in list.if element_type is not there in list return 'link'.
225
+ - For Click action, if only step involving 'clicking on icon' then try to return related svg tags attributeValue, if they are available in simplified json.
226
+ - Based on step give most relevant type of element. use this list to choose elementType: ${elementType.join("|")} and Never change syntax of elementType, follow the syntax of elementType in list.if elementType is not there in list return 'link'.
227
+ - Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
228
+ - **Respond with valid JSON only. don't return any other text or don't return response in list format**
179
229
 
180
230
  `;
181
231
  }
@@ -190,44 +240,52 @@ return the identifier of the best match.
190
240
 
191
241
  Return **only valid JSON** in the following format:
192
242
  {
193
- "attribute_value": "Fire-Flink-x",
194
- "action": "x",
195
- "input_text": "x",
196
- "elementType": "x"
243
+ "attributeValue": "Fire-Flink-x",
244
+ "action": ${enterActions.join("|")},
245
+ "inputText": "x",
246
+ "elementType": ${elementType.join("|")}
197
247
  }
198
248
 
199
249
  Rules:
200
250
  You are an AI assistant. For the step, extract the element keyword from the step (the field name like 'Leaving from', 'Going To').
201
251
  - Use context from the ${JSON.stringify(priorAndNextSteps)}, keyword and filtered dom to search for FF-inspecter.
202
- - Simplified JSON: ${extractedDomJson} — if it is empty, null, or has no valid data, return strictly "attribute_value":"Fire-Flink-0" and never use any other Fire-Flink-x value.
203
- - Select the closest semantic match to step and return only its attribute_value, else Fire-Flink-0.
252
+ - **Simplified JSON: ${extractedDomJson} — if it is empty, null, or has no valid data, return strictly "attributeValue":"Fire-Flink-0" and never use any other Fire-Flink-x value.extract action, inputText, elementType from step and send them.**
253
+ - If no input tag is present in the simplified JSON, select the element most relevant to the step (regardless of tag type), i will use that to enter the data.
254
+ - Select the closest semantic match to step and return only its attributeValue, else Fire-Flink-0.
204
255
  - **Find the FF-inspecter attribute value of the element in the Simplified JSON whose text or attributes best match the atep.**
205
- - If multiple matches exist, use the reference element and choose the closest match by ff-inspect distance.
206
- important example: step: "click on login below user login"
207
- simplified json:
208
- login - ff-inspect-300
209
- user login - ff-inspect-790
210
- login - ff-inspect-803
211
- then should return login - ff-inspect-803 witch is near to user reference element user login - ff-inspect-790
256
+ - If multiple matches exist, identify the reference element from the step and select the matching element with the smallest ff-inspect distance relative to that reference (i.e., the closest in position).
257
+ Example:
258
+ Step: "Enter input in Username below Confirm", "harry"
259
+ Simplified JSON:
260
+ Username - ff-inspect-300
261
+ Confirm - ff-inspect-790
262
+ Username - ff-inspect-811
263
+ Reference element: Confirm - ff-inspect-790
264
+ Closest match: Username - ff-inspect-811 (nearest to 790)
265
+ Final selection: Username - ff-inspect-811
212
266
  - Respect direction (up/down), default is down.
213
267
  - Do not return elements far away from the reference.
214
- - Select the closest semantic match to step and return only its attribute_value
215
- - Action:SendKeys for entering text, EnterDataAndPressKey for entering data and pressing the key, clearThenEnterInput for clear and Entering Input, 'upload' for uploading file.
268
+ - Select the closest semantic match to step and return only its attributeValue
269
+ - **Never directly select a input tag if should be realted to step; if u can't find input tag related to step then prefer the closest label/span/div/b/i/tr/td etc, it can be any tag related to the step. i will use that to enter the data.**
270
+ - Action:SendKeys for entering text, EnterDataAndPressKey for entering data and pressing the key, 'upload' for uploading file.
271
+ - Use ClearThenEnterInput only when the step explicitly involves clearing existing text before entering new input.
216
272
  - Action:EnterDataAndPressKey if step is about entering data and pressing a key, then select this action.
217
273
  - Action:EnterInputUsingJS if step is about entering input using js,WaitAndSendKeys for waiting for some time and then entring.
218
- - If action is waitAndSendkeys then in the input_text provide output with the input and then the wait time in seconds as "input_text = " input, waittime" input is input for that step and waittime is time in seconds mentioned in steps only for wiat and enter step and also the attribute_value should be the attribute_value of the element in the simplified json.
219
- - For click action, if only step involving 'clicking on icon' then try to return related svg tags attribute_value, if they are available in simplified json.
274
+ - Action:WaitAndSendKeys for waiting for some time and then entring input.if wait is present in step.
275
+ - If action is waitAndSendkeys then in the inputText provide output with the input and then the wait time in seconds as "inputText = " input, waittime" input is input for that step and waittime is time in seconds mentioned in steps only for wiat and enter step and also the attributeValue should be the attributeValue of the element in the simplified json.
276
+ - For click action, if only step involving 'clicking on icon' then try to return related svg tags attributeValue, if they are available in simplified json.
220
277
  - For Action ${enterActions} extract input text from step.
221
278
  - **For ${enterActions} actions, never directly select a input tag if should be realted to step; if u can't find input tag related to step then prefer the closest label/span/div/b/i etc, it can be any tag related to the step.**
222
- - **For ${enterActions} step if you can't find perfect matching element return attribute_value as Fire-Flink-0 for the step. it should be exact match for the step.**
223
- - For ${enterActions} step, If the step implies autogenerated data or random data(email, phone, credentials, identifiers, etc.), generate a valid dummy input_text suitable for the field.
279
+ - **For ${enterActions} step if you can't find perfect matching element return attributeValue as Fire-Flink-0 for the step. it should be exact match for the step.**
280
+ - For ${enterActions} step, If the step implies autogenerated data or random data(email, phone, credentials, identifiers, etc.), generate a valid dummy inputText suitable for the field.
224
281
  example: step: "Enter sss.@gmail.com in email field" and step :
225
- you should check only for email in Simplified JSON and input_text should be "sss.@gmail.com" dont add any extra text.
282
+ you should check only for email in Simplified JSON and inputText should be "sss.@gmail.com" dont add any extra text.
226
283
  - For Action "upload" extract file path from step. and add extra //// for path.like "C:////Users/////User/////Downloads/////fireflinkElementIndexExtactors.ts"
227
- - For Action "EnterDataAndPressKey" extract input text from step. and also extract the key to be pressed from the step. and return the key to be pressed as the input_text in the form of input_text, key_to_be_pressed.ex(input_text = "input","key_to_be_pressed" )
228
- - if u cant find any input_text or any other dont give null just return them "" empty.
229
- - Based on step give most relevant type of element. use this list to choose element_type: ${elementType} and Never change syntax of element_type, follow the syntax of element_type in list.if element_type is not there in list return 'link'.
230
-
284
+ - For Action "EnterDataAndPressKey" extract input text from step. and also extract the key to be pressed from the step. and return the key to be pressed as the inputText in the form of inputText, key_to_be_pressed.ex(inputText = "input","key_to_be_pressed" )
285
+ - if u cant find any inputText or any other dont give null just return them "" empty.
286
+ - Based on step give most relevant type of element. use this list to choose element_type: ${elementType.join("|")} and Never change syntax of element_type, follow the syntax of element_type in list.if element_type is not there in list return 'link'.
287
+ - Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
288
+ - **Respond with valid JSON only. don't return any other text or don't return response in list format**
231
289
 
232
290
  `;
233
291
  }
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ffInspectorNumExtractorMob = ffInspectorNumExtractorMob;
4
4
  async function ffInspectorNumExtractorMob({ stepAction, extractedDomJson, priorAndNextSteps, }) {
5
- const SwipeActions = ["MOB_SwipeToElement", "MOB_SwipeUpToElement", "MOB_SwipeDownToElement", "MOB_SwipeLeftToElement", "MOB_SwipeRightToElement", "MOB_SwipeNTimes", "MOB_Builtin_Swipe", "MOB_SwipeDirectionNTimes", "MOB_SwipeToElementForMWeb", "MOB_SwipeUsingReferenceElement"];
5
+ const SwipeActions = ["MOB_SwipeToElement", "MOB_SwipeUpToElement", "MOB_SwipeDownToElement", "MOB_SwipeLeftToElement", "MOB_SwipeRightToElement", "MOB_SwipeNTimes", "MOB_Builtin_Swipe", "MOB_SwipeDirectionNTimes", "MOB_SwipeToElementForMWeb", "MOB_SwipeUsingReferenceElement", "SwipeUp", "SwipeDown", "SwipeLeft", "SwipeRight", "Swipe"];
6
6
  const Actions = ["MOB_Tap", "MOB_TapNTimes", "MOB_DoubleTap", "MOB_DoubleTapAtSpecifiedLocation", "MOB_TapOnSpecifiedLocation",
7
- "MOB_Enter", "MOB_EnterDataAndPressKey", "MOB_EnterInputIntoElementFromClipBoard", "MOB_EnterUrl", "MOB_ClearThenEnterInput",
7
+ "MOB_Enter", "MOB_EnterDataAndPressKey", "MOB_EnterInputIntoElementFromClipBoard", "MOB_EnterUrl", "MOB_Clear", "MOB_ClearThenEnterInput",
8
8
  "MOB_LongPress", "MOB_PressEnterKey", "MOB_PressSpaceKey", "MOB_PressBackSpaceKey", "MOB_PressAnyKey", "MOB_PressAnyKeyNTimes", "MOB_EnterDataAndPressKey", "MOB_PressHomeKey", "MOB_PressBackKey"];
9
9
  const elementType = ["link", "textfield", "icon", "button", "radiobutton", "checkbox", "tab", "action overflow button", "hamburger menu", "toggle button", "steppers", "sliders"];
10
+ const OtpAction = ["getOtp"];
10
11
  let prompt = "";
11
12
  if (stepAction === "tap" || stepAction === "enter") {
12
13
  prompt = `
@@ -14,8 +15,8 @@ You are an intelligent assistant that extracts structured UI action data.\n
14
15
  Return **only valid JSON** in the following format:\n
15
16
  **Dont give any extra explanation or text**
16
17
  {
17
- "attribute_value": "Fire-Flink-x",
18
- "input_text": "x",
18
+ "attributeValue": "Fire-Flink-x",
19
+ "inputText": "x",
19
20
  "keyword": "x",
20
21
  "elementType": "x",
21
22
  "nlpName": "x"
@@ -25,30 +26,61 @@ Rules:\n
25
26
  You are an AI assistant. For the step, extract the element keyword from the step (the field name like 'Leaving from', 'Going To').
26
27
  - Use context from all steps: ${JSON.stringify(priorAndNextSteps)}, keyword and filtered dom to search for FF-inspecter.
27
28
  **nlpName: MOB_PressBackKey or MOB_PressHomeKey for mobile navigation respective buttons like back and home**
28
- - **If step is tap on element of referenece element,if multiple elements are there ,choose element which is related to reference element.The element can be reference element's before or after sibling nodes in filtered dom json.**
29
+ - **For step if you can't find perfect matching element or no attribute in filtered dom JSON is related to step return attributeValue as Fire-Flink-0.**
29
30
  - If step is enter input into element try to find ff inspector attribute value of element not input text.
30
- - **For step if you can't find perfect matching element or no attribute in filtered dom JSON is related to step return attribute_value as Fire-Flink-0.**
31
31
  - Don't think if type of element is found it is exact element, check with keyword and step.If it is not matched return Fire-Flink-0.
32
+ - If step is tap on element of referenece element,if multiple elements are there ,choose element which is related to reference element.The element can be reference element's before or after sibling nodes in filtered dom json,if siblings also same return element which ff-inspect value is close to reference element.
32
33
  **important example: step: "click on login below user login"
33
- simplified json: login - ff-inspect-300
34
- user login - ff-inspect-790
35
- login - ff-inspect-803
36
- then should return login - ff-inspect-803 witch is near to user reference element user login - ff-inspect-790**
37
- - **Find the FF-inspecter attribute value of the element in the filtered dom JSON whose text or content-desc or other attributes best or perfect match for the step.**
34
+ simplified json: login - ff-inspect-320
35
+ user login - ff-inspect-330
36
+ login - ff-inspect-350
37
+ then should return login - ff-inspect-320 witch is near to user reference element user login - ff-inspect-330**
38
+ - **Find the FF-inspecter attribute value of the element in the filtered dom JSON whose text or content-desc or name or label or other attributes best or perfect match for the step.**
38
39
  - nlpName: Extract nlpName from the list of nlps: ${Actions} based on the step.If step is enter url, nlpName should be MOB_EnterUrl.
39
- - For taping action dont take attribute_value of the node contining edittext in class, resource-id.
40
- - For some steps you can see two inputs but you need to uderstand step and send the requred input_text.
40
+ - For taping action dont take attributeValue of the node contining edittext in class, resource-id.
41
+ - For some steps you can see two inputs but you need to uderstand step and send the requred inputText.
41
42
  ex:Double tap on the 30,50
42
43
  here here input:30,50
43
- - and for this MOB_TapNTimes nlps send number of times to tap as input_text.
44
- - If step is press any key and if the step contains any key name like ENTER,SPACE,BACKSPACE etc and give keyname of the given key as input_text if they mention key and how many times to press key 'keyname,number of times' or enter input and press key keep it as 'input,keyname'.
45
- - nlpName: wait for wait action, and in input_text give time to wait. like sleep for 30 seconds, here nlpName is wait and input_text is 30.
44
+ - and for this MOB_TapNTimes nlps send number of times to tap as inputText.
45
+ - If step is press any key and if the step contains any key name like ENTER,SPACE,BACKSPACE etc and give keyname of the given key as inputText if they mention key and how many times to press key 'keyname,number of times' or if step is enter input and press key keep it as 'input,keyname'.
46
+ - nlpName: wait for wait action, and in inputText give time to wait. like sleep for 30 seconds, here nlpName is wait and inputText is 30.
46
47
  - Extract input text from step for all actions,if input is not there give empty string "".
47
48
  - Based on step give most relevant type of element. use this list to choose elementType: ${elementType} and Never change syntax of elementType, follow the syntax of elementType in list.if elementType is not there in list return 'link'.
48
49
  - Respond with valid JSON only.
49
50
 
50
51
  filtered dom JSON: ${extractedDomJson}
51
52
  `;
53
+ }
54
+ else if (stepAction === "getOtp") {
55
+ prompt = `
56
+ You are an intelligent assistant that extracts structured mobile getOTP action data.
57
+ Given the step: ${JSON.stringify(priorAndNextSteps)},and the list of NLP names: ${OtpAction}.
58
+
59
+ Select the perfect matching NLP name from the list that best fits the step's intent.
60
+
61
+ Return **only valid JSON** in the following format:
62
+ {{
63
+ "nlpName": "x",
64
+ "inputText": "x",
65
+ "timeFrom": "x",
66
+ "waitTime": "x",
67
+ "activity": "x"
68
+ }}
69
+
70
+ Rules:
71
+ - nlpName must be exactly one from the provided list.
72
+ - If the steps are provided with the message header and the messaging app provide the message header in the inputText and messaging app in the bundleID in the activity field.
73
+ - If the step does not provides the messaging app don't provide example provide "activity":"" empty.
74
+ - If the step does not provides the time range don't provide example provide "timeFrom":"" and "waitTime":"" empty.
75
+
76
+ - **Extraction**:
77
+ - inputText: The header of the message mentioned in the step.
78
+ - activity: The messaging app from which the OTP is to be extracted.
79
+ - timeFrom: The time range for which the OTP is to be extracted just give number like "60" for 60 seconds like that don't add any extra words with that.
80
+ - waitTime: The time to wait for the OTP to be extracted just give number like "60" for 60 seconds like that don't add any extra words with that.
81
+ - Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
82
+
83
+ - response:valid json only.`;
52
84
  }
53
85
  else if (stepAction === "swipe" || stepAction === "scroll") {
54
86
  prompt = `
@@ -59,34 +91,39 @@ Select the perfect matching NLP name from the list that best fits the step's int
59
91
 
60
92
  Return **only valid JSON** in the following format:
61
93
  {{
62
- "attribute_value": "Fire-Flink-x",
94
+ "attributeValue": "Fire-Flink-x",
63
95
  "nlpName": "x",
64
- "input_text": "x",
96
+ "inputText": "x",
65
97
  "keyword": "x",
66
98
  "type": "x",
67
- "num_of_scrolls": "x",
99
+ "numOfScrolls": "x",
68
100
  "direction": "x"
69
101
  }}
70
102
 
71
103
  Rules:
72
104
  - nlpName must be exactly one from the provided list.
105
+ - If the step is provided with the coordinates like (x1,y1,x2,y2) and direction is not mentioned but coordinates are there means then map to swipe of direction is given then it must match to swipe up, swipe down,swipe left, swipe right don't go with the MOB_ one's
106
+ - **If the step is saying 'swipe up, down, left, right' with the coordinates specified in the step, then give coordintates in inputText like (x1,y1,x2,y2) and map to nlp's like swipe up, swipe down,swipe left, swipe right if direction is not mentioned but coordinates are there means then map to swipe.**
73
107
  - Use cont2ext from the steps : ${JSON.stringify(priorAndNextSteps)}, keyword and json to search for FF-inspecter.
74
- - If direction is not specified, then match to "MOB_SwipeToElement".
108
+ - If direction is not specified and also coordinates are not specified, then match to "MOB_SwipeToElement".
75
109
  - If direction is Not specified and element is not specified, then match to "MOB_SwipeNTimes".
76
- - If direction is specified and element is not specified, then match to "MOB_SwipeDirectionNTimes".
77
- - If step has a reference element, then match to "MOB_SwipeUsingReferenceElement". and give input_text: "reference element -> <next element>"
110
+ - If direction is specified and direction word is there and no of times is given, then match to "MOB_SwipeDirectionNTimes" ex: swipe up direction 2 times.
111
+ - If step has a reference element, then match to "MOB_SwipeUsingReferenceElement". and give inputText: "reference element -> <next element>"
78
112
  example: swipe up to "Contact Us" using "Settings" as reference.
79
- input_text: "Settings -> Contact Us"
113
+ inputText: "Settings -> Contact Us"
80
114
  - If the step is saying 'up to' or 'till' element, then return the number of scrolls as 0. and also don't take 'up' as direction in this case, give direction as "none" ".
115
+ - **If the step is saying 'swipe up, down, left, right' with the coordinates specified in the step, then give coordintates in inputText like (x1,y1,x2,y2) and map to nlp's like swipe up, swipe down,swipe left, swipe right if direction is not mentioned but coordinates are there means then map to swipe.**
116
+
81
117
  - **Extraction**:
82
- - input_text: The target element in the step.e.g., "swipe to submit text",then input text must be "submit",Dont include its type in input_text like text,button,icon etc...Leave empty if just swiping N times.**
118
+ - inputText: The target element in the step.e.g., "swipe to submit text",then input text must be "submit",Dont include its type in inputText like text,button,icon etc...Leave empty if just swiping N times, if coordinates are specified then give coordinates in inputText like (x1,y1,x2,y2) where x1,y1 is starting coordinate and x2,y2 is ending coordinate.**
83
119
  - keyword: Crucial keyword from step (e.g., "Settings").
84
- - num_of_scrolls: Extract count if specified (e.g., "scroll 3 times"). Default to 0 if not specified but action implies generic scroll.
120
+ - nomOfScrolls: Extract count if specified (e.g., "scroll 3 times"). Default to 0 if not specified but action implies generic scroll.
85
121
  - direction: "up", "down", "left", "right". Infer from step (e.g., "Scroll down" -> "down"). If direction is not specified, default direction to "none".
86
- - attribute_value: If an element is visible and matches the target, provide its FF-inspecter. Otherwise "Fire-Flink-2".
87
- - type: Based on step give most relevant type of element. use this list to choose element_type: ${elementType} and Never change syntax of element_type, follow the syntax of element_type in list.if element_type is not there in list return 'link'.
122
+ - attributeValue: If an element is visible and matches the target, provide its FF-inspecter. Otherwise "Fire-Flink-2".
123
+ - type: Based on step give most relevant type of element. use this list to choose elementType: ${elementType} and Never change syntax of elementType, follow the syntax of elementType in list.if elementType is not there in list return 'link'.
124
+ - Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
88
125
 
89
- - Respond with valid JSON only.`;
126
+ - response:valid json only.`;
90
127
  }
91
128
  return prompt;
92
129
  }