ff-automationv2 2.2.23 → 2.2.25

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 (492) hide show
  1. package/dist/ai/llmcalls/decodeApiKey.js +4 -1
  2. package/dist/ai/llmcalls/llmAction.js +27 -20
  3. package/dist/ai/llmcalls/parseLlmOputput.js +5 -1
  4. package/dist/ai/llmprompts/llmPromptTypes/systemPromptTypes.js +2 -1
  5. package/dist/ai/llmprompts/promptRegistry.js +38 -35
  6. package/dist/ai/llmprompts/systemPrompts/actionExtractorPrompt.js +6 -3
  7. package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPrompt.js +4 -1
  8. package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPromptMob.js +4 -1
  9. package/dist/ai/llmprompts/systemPrompts/errorDescriptionPrompt.js +5 -2
  10. package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtactors.js +5 -2
  11. package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtractor_Mob.js +5 -2
  12. package/dist/ai/llmprompts/systemPrompts/getActionExtractorPrompt.js +7 -4
  13. package/dist/ai/llmprompts/systemPrompts/getActionExtractorPromptMob.js +4 -1
  14. package/dist/ai/llmprompts/systemPrompts/mobileKeywordExtractor.js +4 -1
  15. package/dist/ai/llmprompts/systemPrompts/userStoryToListPrompt.js +6 -2
  16. package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPrompt.js +8 -3
  17. package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPromptMob.js +4 -1
  18. package/dist/ai/llmprompts/systemPrompts/visionPrompt.js +5 -1
  19. package/dist/ai/llmprompts/systemPrompts/visionPromptMobile.js +4 -1
  20. package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPrompt.js +4 -1
  21. package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPromptMob.js +4 -1
  22. package/dist/ai/llmprompts/userPrompts/userPrompt.js +16 -13
  23. package/dist/automation/actions/executor.d.ts +1 -1
  24. package/dist/automation/actions/executor.js +1066 -1061
  25. package/dist/automation/actions/interaction/alert/clickCancelOnAlertPopup.js +4 -1
  26. package/dist/automation/actions/interaction/alert/clickOkOnAlertPopup.js +4 -1
  27. package/dist/automation/actions/interaction/alert/enterDataToAlert.js +4 -1
  28. package/dist/automation/actions/interaction/alert/getTextPresentOnAlertPopup.js +4 -1
  29. package/dist/automation/actions/interaction/alert/verifyAlertPopUpMessageContainsString.js +4 -1
  30. package/dist/automation/actions/interaction/alert/verifyAlertPopupIsDisplayed.js +4 -1
  31. package/dist/automation/actions/interaction/alert/verifyTextPresentOnAlertPopup.js +4 -1
  32. package/dist/automation/actions/interaction/alert/waitTillAlertIsPresent.js +4 -1
  33. package/dist/automation/actions/interaction/clear/clear.js +5 -2
  34. package/dist/automation/actions/interaction/clear/clearAndEnter.js +5 -2
  35. package/dist/automation/actions/interaction/click/MOB_DoubleTapAtSpecifiedLocation.js +4 -1
  36. package/dist/automation/actions/interaction/click/click.js +5 -2
  37. package/dist/automation/actions/interaction/click/clickNtimes.js +5 -2
  38. package/dist/automation/actions/interaction/click/clickUsingJs.js +4 -1
  39. package/dist/automation/actions/interaction/click/doubleClick.js +5 -2
  40. package/dist/automation/actions/interaction/click/rightClick.js +4 -1
  41. package/dist/automation/actions/interaction/click/tapOnSpecifiedLocation.js +5 -1
  42. package/dist/automation/actions/interaction/click/waitAndClick.js +8 -5
  43. package/dist/automation/actions/interaction/dragAndDrop/dragAndDrop.js +5 -2
  44. package/dist/automation/actions/interaction/elementLessAction/MobCheckIfAppIsClosed.js +4 -1
  45. package/dist/automation/actions/interaction/elementLessAction/MobRunAppInBackgroundInterface.js +4 -1
  46. package/dist/automation/actions/interaction/elementlessActions/activateAppUsingAppPackage.js +4 -1
  47. package/dist/automation/actions/interaction/elementlessActions/installAPK.js +14 -8
  48. package/dist/automation/actions/interaction/elementlessActions/isAppInstalled.js +8 -5
  49. package/dist/automation/actions/interaction/elementlessActions/openAppWithApkFilePath.js +18 -12
  50. package/dist/automation/actions/interaction/elementlessActions/openMobileApplication.js +4 -1
  51. package/dist/automation/actions/interaction/elementlessActions/receiveMessageOnEmulator.js +6 -3
  52. package/dist/automation/actions/interaction/elementlessActions/terminateAppUsingAppPackage.js +6 -3
  53. package/dist/automation/actions/interaction/elementlessActions/uninstallAPK.js +9 -6
  54. package/dist/automation/actions/interaction/enterActions/EnterInputIntoElementFromClipBoardInterface_mob.js +7 -4
  55. package/dist/automation/actions/interaction/enterActions/enterInput.js +42 -6
  56. package/dist/automation/actions/interaction/enterActions/enterInputAndPress.js +8 -5
  57. package/dist/automation/actions/interaction/enterActions/enterUrl.js +4 -1
  58. package/dist/automation/actions/interaction/enterActions/enterusingJs.js +8 -5
  59. package/dist/automation/actions/interaction/enterActions/waitAndEnter.js +7 -4
  60. package/dist/automation/actions/interaction/find/MOB_FindElement.js +6 -3
  61. package/dist/automation/actions/interaction/find/findElements.js +7 -5
  62. package/dist/automation/actions/interaction/get/MOB_GetADBLogsForGivenAppPackage.js +5 -1
  63. package/dist/automation/actions/interaction/get/MOB_GetAllContexts.js +5 -1
  64. package/dist/automation/actions/interaction/get/MOB_GetAllWindowHandles.js +5 -1
  65. package/dist/automation/actions/interaction/get/MOB_GetAltitude.js +5 -1
  66. package/dist/automation/actions/interaction/get/MOB_GetBatteryPercentage.js +5 -1
  67. package/dist/automation/actions/interaction/get/MOB_GetBatteryStatus.js +5 -1
  68. package/dist/automation/actions/interaction/get/MOB_GetClipBoardText.js +5 -1
  69. package/dist/automation/actions/interaction/get/MOB_GetCurrentActivity.js +5 -1
  70. package/dist/automation/actions/interaction/get/MOB_GetCurrentAppPackage.js +5 -1
  71. package/dist/automation/actions/interaction/get/MOB_GetCurrentContext.js +5 -1
  72. package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceDate.js +5 -1
  73. package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSettings.js +5 -1
  74. package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceStatus.js +5 -1
  75. package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSystemBars.js +5 -1
  76. package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceTime.js +5 -1
  77. package/dist/automation/actions/interaction/get/MOB_GetCurrentOrientation.js +5 -1
  78. package/dist/automation/actions/interaction/get/MOB_GetCurrentSessionId.js +5 -1
  79. package/dist/automation/actions/interaction/get/MOB_GetDeviceLocation.js +5 -1
  80. package/dist/automation/actions/interaction/get/MOB_GetDeviceName.js +5 -1
  81. package/dist/automation/actions/interaction/get/MOB_GetDeviceOsVersion.js +5 -1
  82. package/dist/automation/actions/interaction/get/MOB_GetDeviceUdid.js +5 -1
  83. package/dist/automation/actions/interaction/get/MOB_GetHeightOfElement.js +6 -2
  84. package/dist/automation/actions/interaction/get/MOB_GetHeightOfScreen.js +5 -1
  85. package/dist/automation/actions/interaction/get/MOB_GetHourFromCurrentDeviceTime.js +5 -1
  86. package/dist/automation/actions/interaction/get/MOB_GetLatitude.js +5 -1
  87. package/dist/automation/actions/interaction/get/MOB_GetLongitude.js +5 -1
  88. package/dist/automation/actions/interaction/get/MOB_GetMinuteFromCurrentDeviceTime.js +5 -1
  89. package/dist/automation/actions/interaction/get/MOB_GetSecondFromCurrentDeviceTime.js +5 -1
  90. package/dist/automation/actions/interaction/get/MOB_GetSizeOfScreen.js +5 -1
  91. package/dist/automation/actions/interaction/get/MOB_GetSupportedPerformanceDataTypes.js +5 -1
  92. package/dist/automation/actions/interaction/get/MOB_GetTextFromElementAndSetToClipBoard.js +6 -2
  93. package/dist/automation/actions/interaction/get/MOB_GetWidthOfElement.js +6 -2
  94. package/dist/automation/actions/interaction/get/MOB_GetWidthOfScreen.js +5 -1
  95. package/dist/automation/actions/interaction/get/browserWindowGetPosition.js +5 -1
  96. package/dist/automation/actions/interaction/get/getAllBrokenImages.js +5 -1
  97. package/dist/automation/actions/interaction/get/getAllBrokenLinkCount.js +5 -1
  98. package/dist/automation/actions/interaction/get/getAllBrokenLinks.js +5 -1
  99. package/dist/automation/actions/interaction/get/getAllConsoleErrors.js +5 -1
  100. package/dist/automation/actions/interaction/get/getAllConsoleInformation.js +5 -1
  101. package/dist/automation/actions/interaction/get/getAllConsoleLogs.js +5 -1
  102. package/dist/automation/actions/interaction/get/getAllConsoleWarnings.js +5 -1
  103. package/dist/automation/actions/interaction/get/getAllCookieNames.js +5 -1
  104. package/dist/automation/actions/interaction/get/getAllCookieValues.js +5 -1
  105. package/dist/automation/actions/interaction/get/getAllSelectedOptions.js +5 -1
  106. package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsText.js +5 -1
  107. package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsTextInSortedOrder.js +5 -1
  108. package/dist/automation/actions/interaction/get/getAllTheSelectedOptionsFromListBoxAsText.js +5 -1
  109. package/dist/automation/actions/interaction/get/getAllWindowHandles.js +5 -1
  110. package/dist/automation/actions/interaction/get/getAttribute.js +8 -5
  111. package/dist/automation/actions/interaction/get/getAudioCurrentPlaybackRate.js +5 -1
  112. package/dist/automation/actions/interaction/get/getAudioCurrentSeekTime.js +5 -1
  113. package/dist/automation/actions/interaction/get/getAudioCurrentVolume.js +5 -1
  114. package/dist/automation/actions/interaction/get/getAudioDecodedByte.js +5 -1
  115. package/dist/automation/actions/interaction/get/getAudioDefaultPlaybackRate.js +5 -1
  116. package/dist/automation/actions/interaction/get/getAudioDimension.js +5 -1
  117. package/dist/automation/actions/interaction/get/getAudioHeight.js +5 -1
  118. package/dist/automation/actions/interaction/get/getAudioMediaLength.js +5 -1
  119. package/dist/automation/actions/interaction/get/getAudioMediaSource.js +5 -1
  120. package/dist/automation/actions/interaction/get/getAudioWidth.js +5 -1
  121. package/dist/automation/actions/interaction/get/getBestPracticesScore.js +5 -1
  122. package/dist/automation/actions/interaction/get/getBrowserCount.js +5 -1
  123. package/dist/automation/actions/interaction/get/getBrowserVersion.js +5 -1
  124. package/dist/automation/actions/interaction/get/getCapabilityNames.js +5 -1
  125. package/dist/automation/actions/interaction/get/getClipBoardText.js +5 -1
  126. package/dist/automation/actions/interaction/get/getCollectiveApiResponseTime.js +5 -1
  127. package/dist/automation/actions/interaction/get/getCollectiveApiStatusCode.js +5 -1
  128. package/dist/automation/actions/interaction/get/getCssValue.js +5 -1
  129. package/dist/automation/actions/interaction/get/getCurrentDayOfTheWeek.js +5 -1
  130. package/dist/automation/actions/interaction/get/getCurrentSecondsFromCurrentSystemTime.js +5 -1
  131. package/dist/automation/actions/interaction/get/getCurrentSystemDate.js +5 -1
  132. package/dist/automation/actions/interaction/get/getCurrentSystemDay.js +5 -1
  133. package/dist/automation/actions/interaction/get/getCurrentSystemMonth.js +5 -1
  134. package/dist/automation/actions/interaction/get/getCurrentSystemTime.js +5 -1
  135. package/dist/automation/actions/interaction/get/getCurrentSystemYear.js +5 -1
  136. package/dist/automation/actions/interaction/get/getCurrentWindowHandle.js +5 -1
  137. package/dist/automation/actions/interaction/get/getDataFromApiRequestHeaderForJsonPath.js +5 -1
  138. package/dist/automation/actions/interaction/get/getDataFromApiResponseForJsonPath.js +5 -1
  139. package/dist/automation/actions/interaction/get/getDateWithGivenFormat.js +5 -1
  140. package/dist/automation/actions/interaction/get/getDriverInstance.js +5 -1
  141. package/dist/automation/actions/interaction/get/getFirstContentfulPaint.js +5 -1
  142. package/dist/automation/actions/interaction/get/getFirstSelectedOption.js +5 -1
  143. package/dist/automation/actions/interaction/get/getFullPaintTime.js +5 -1
  144. package/dist/automation/actions/interaction/get/getHTMLCodeOfPage.js +5 -1
  145. package/dist/automation/actions/interaction/get/getHeightOfBrowserWindow.js +5 -1
  146. package/dist/automation/actions/interaction/get/getHeightOfWebElement.js +5 -1
  147. package/dist/automation/actions/interaction/get/getHourFromCurrentSystemTime.js +5 -1
  148. package/dist/automation/actions/interaction/get/getImplicitTimeOut.js +5 -1
  149. package/dist/automation/actions/interaction/get/getLargestContentfulPaint.js +5 -1
  150. package/dist/automation/actions/interaction/get/getListBoxSize.js +6 -3
  151. package/dist/automation/actions/interaction/get/getListOfElementsFromLocatorTypeLocatorValue.js +8 -4
  152. package/dist/automation/actions/interaction/get/getLocation.js +9 -5
  153. package/dist/automation/actions/interaction/get/getMinuteFromCurrentSystemTime.js +5 -1
  154. package/dist/automation/actions/interaction/get/getNetworkRouteTime.js +5 -1
  155. package/dist/automation/actions/interaction/get/getNumberOfBrokenImages.js +5 -1
  156. package/dist/automation/actions/interaction/get/getNumberOfLinksPresentInCurrentPage.js +5 -1
  157. package/dist/automation/actions/interaction/get/getNumberOfWorkingLinksFromCurrentPage.js +5 -1
  158. package/dist/automation/actions/interaction/get/getOptions.js +5 -1
  159. package/dist/automation/actions/interaction/get/getPageTitle.js +5 -1
  160. package/dist/automation/actions/interaction/get/getPerformanceMetrics.js +5 -1
  161. package/dist/automation/actions/interaction/get/getPwaScore.js +5 -1
  162. package/dist/automation/actions/interaction/get/getRect.js +10 -6
  163. package/dist/automation/actions/interaction/get/getScreenshot.js +5 -1
  164. package/dist/automation/actions/interaction/get/getScreenshotAs.js +5 -1
  165. package/dist/automation/actions/interaction/get/getSeoScore.js +5 -1
  166. package/dist/automation/actions/interaction/get/getSingleApiRequestPayload.js +5 -1
  167. package/dist/automation/actions/interaction/get/getSingleApiResponse.js +5 -1
  168. package/dist/automation/actions/interaction/get/getSingleApiResponseTime.js +5 -1
  169. package/dist/automation/actions/interaction/get/getSingleApiStatusCode.js +5 -1
  170. package/dist/automation/actions/interaction/get/getSize.js +8 -4
  171. package/dist/automation/actions/interaction/get/getSizeOfBrowserWindow.js +8 -1
  172. package/dist/automation/actions/interaction/get/getStringDataFromLocalFile.js +11 -4
  173. package/dist/automation/actions/interaction/get/getSystemProperty.js +14 -7
  174. package/dist/automation/actions/interaction/get/getTagName.js +5 -2
  175. package/dist/automation/actions/interaction/get/getText.js +9 -5
  176. package/dist/automation/actions/interaction/get/getTheFirstSelectedOptionFromListBoxAsText.js +5 -1
  177. package/dist/automation/actions/interaction/get/getTotalNumberOfCookies.js +5 -1
  178. package/dist/automation/actions/interaction/get/getTunnelIdentifier.js +5 -1
  179. package/dist/automation/actions/interaction/get/getURLPresentInAddressBar.js +5 -1
  180. package/dist/automation/actions/interaction/get/getUserHomeDirectory.js +5 -1
  181. package/dist/automation/actions/interaction/get/getValueByCookieName.js +5 -1
  182. package/dist/automation/actions/interaction/get/getValueFromLocalStorage.js +5 -1
  183. package/dist/automation/actions/interaction/get/getValueOfSystemVariable.js +5 -1
  184. package/dist/automation/actions/interaction/get/getVideoCurrentPlaybackRate.js +5 -1
  185. package/dist/automation/actions/interaction/get/getVideoCurrentSeekTime.js +5 -1
  186. package/dist/automation/actions/interaction/get/getVideoCurrentVolume.js +5 -1
  187. package/dist/automation/actions/interaction/get/getVideoDecodedByte.js +5 -1
  188. package/dist/automation/actions/interaction/get/getVideoDefaultPlaybackRate.js +5 -1
  189. package/dist/automation/actions/interaction/get/getVideoDimension.js +5 -1
  190. package/dist/automation/actions/interaction/get/getVideoHeight.js +5 -1
  191. package/dist/automation/actions/interaction/get/getVideoMediaLength.js +5 -1
  192. package/dist/automation/actions/interaction/get/getVideoMediaSource.js +5 -1
  193. package/dist/automation/actions/interaction/get/getVideoWidth.js +5 -1
  194. package/dist/automation/actions/interaction/get/getWidthOfBrowser.js +5 -1
  195. package/dist/automation/actions/interaction/get/getWidthOfWebElement.js +7 -1
  196. package/dist/automation/actions/interaction/get/getWorkingLinksFromCurrentPage.js +5 -1
  197. package/dist/automation/actions/interaction/get/getWrappedElement.js +5 -1
  198. package/dist/automation/actions/interaction/get/getWrappedOptionFromListBoxAsText.js +6 -3
  199. package/dist/automation/actions/interaction/get/getXLocationOfBrowserWindow.js +7 -1
  200. package/dist/automation/actions/interaction/get/getXLocationOfWebElement.js +9 -5
  201. package/dist/automation/actions/interaction/get/getYLocationOfBrowserWindow.js +5 -1
  202. package/dist/automation/actions/interaction/get/getYLocationOfWebElement.js +8 -4
  203. package/dist/automation/actions/interaction/iframe/switchToDefaultContent.js +4 -1
  204. package/dist/automation/actions/interaction/inputlessActions/AirplaneModeSwitchOff.js +9 -6
  205. package/dist/automation/actions/interaction/inputlessActions/AirplaneModeSwitchOn.js +9 -6
  206. package/dist/automation/actions/interaction/inputlessActions/Break.js +4 -1
  207. package/dist/automation/actions/interaction/inputlessActions/Continue.js +4 -1
  208. package/dist/automation/actions/interaction/inputlessActions/GpsSwitchOff.js +4 -1
  209. package/dist/automation/actions/interaction/inputlessActions/GpsSwitchOn.js +4 -1
  210. package/dist/automation/actions/interaction/inputlessActions/HideKeyboard.js +4 -1
  211. package/dist/automation/actions/interaction/inputlessActions/LockDevice.js +4 -1
  212. package/dist/automation/actions/interaction/inputlessActions/OpenChromeBrowser.js +4 -1
  213. package/dist/automation/actions/interaction/inputlessActions/OpenNotification.js +4 -1
  214. package/dist/automation/actions/interaction/inputlessActions/ResetApp.js +4 -1
  215. package/dist/automation/actions/interaction/inputlessActions/RestartCurrentDevice.js +9 -6
  216. package/dist/automation/actions/interaction/inputlessActions/SetDeviceOrientationAsLandscape.js +4 -1
  217. package/dist/automation/actions/interaction/inputlessActions/SetDeviceOrientationAsPortrait.js +4 -1
  218. package/dist/automation/actions/interaction/inputlessActions/SetEmulatorPowerStateOff.js +8 -5
  219. package/dist/automation/actions/interaction/inputlessActions/SetEmulatorPowerStateOn.js +8 -5
  220. package/dist/automation/actions/interaction/inputlessActions/WifiSwitchOff.js +4 -1
  221. package/dist/automation/actions/interaction/inputlessActions/WifiSwitchOn.js +4 -1
  222. package/dist/automation/actions/interaction/maximize/maximize.js +6 -3
  223. package/dist/automation/actions/interaction/maximize/minimize.js +4 -1
  224. package/dist/automation/actions/interaction/navigation/goBack.js +4 -1
  225. package/dist/automation/actions/interaction/navigation/navigate.js +4 -1
  226. package/dist/automation/actions/interaction/navigation/refresh.js +4 -1
  227. package/dist/automation/actions/interaction/pinch/PinchInByPercentMob.js +7 -4
  228. package/dist/automation/actions/interaction/pinch/PinchOutByPercentMob.js +5 -4
  229. package/dist/automation/actions/interaction/press/longPress.js +6 -2
  230. package/dist/automation/actions/interaction/press/mobPressBackKey.js +4 -1
  231. package/dist/automation/actions/interaction/press/mobPressBackSpaceKey.js +4 -1
  232. package/dist/automation/actions/interaction/press/mobPressSpaceKey.js +4 -1
  233. package/dist/automation/actions/interaction/press/pressAnyKey.js +4 -1
  234. package/dist/automation/actions/interaction/press/pressAnyKeyNTimes.js +4 -1
  235. package/dist/automation/actions/interaction/press/pressEnterKey.js +4 -1
  236. package/dist/automation/actions/interaction/press/pressHomeKey.js +8 -5
  237. package/dist/automation/actions/interaction/scroll/scrollHorizontallyTillElementIsVisible.js +4 -1
  238. package/dist/automation/actions/interaction/scroll/scrollPageToSpecificLocation.js +5 -1
  239. package/dist/automation/actions/interaction/scroll/scrollToElement.js +4 -1
  240. package/dist/automation/actions/interaction/scroll/scrollVerticallyTillElementIsVisible.js +4 -1
  241. package/dist/automation/actions/interaction/set/MOB_SetContext.js +5 -1
  242. package/dist/automation/actions/interaction/set/MOB_SetEmulatorPowerPercentage.js +5 -1
  243. package/dist/automation/actions/interaction/set/setClipBoardText.js +4 -1
  244. package/dist/automation/actions/interaction/shadowDom/shadowDomClick.js +7 -4
  245. package/dist/automation/actions/interaction/shadowDom/shadowDomEnter.js +7 -4
  246. package/dist/automation/actions/interaction/shadowDom/shadowDomGetText.js +7 -4
  247. package/dist/automation/actions/interaction/shadowDom/shadowDomUpload.js +7 -4
  248. package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyPartialText.js +7 -4
  249. package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyText.js +7 -4
  250. package/dist/automation/actions/interaction/swipe/swipeDirectionNTimes.js +6 -3
  251. package/dist/automation/actions/interaction/swipe/swipeDownToElement.js +13 -13
  252. package/dist/automation/actions/interaction/swipe/swipeLeftToElement.js +13 -13
  253. package/dist/automation/actions/interaction/swipe/swipeRightToElement.js +13 -13
  254. package/dist/automation/actions/interaction/swipe/swipeUpToElement.js +16 -16
  255. package/dist/automation/actions/interaction/swipe/swipeUpToElementForMWeb.js +12 -9
  256. package/dist/automation/actions/interaction/swipe/swipeUsingReferenceElement.js +79 -81
  257. package/dist/automation/actions/interaction/switch/switchToNewTabBasedOnTitle.js +4 -1
  258. package/dist/automation/actions/interaction/switch/switchToNewWindowBasedOnTitle.js +4 -1
  259. package/dist/automation/actions/interaction/switch/switchToParentWindow.js +4 -1
  260. package/dist/automation/actions/interaction/switch/switchToTabBasedOnUrl.js +4 -1
  261. package/dist/automation/actions/interaction/switch/switchToWindowBasedOnURL.js +4 -1
  262. package/dist/automation/actions/interaction/switch/switchToWindowIfTitleContainsString.js +4 -1
  263. package/dist/automation/actions/interaction/switch/switchToWindowIfUrlContainsString.js +4 -1
  264. package/dist/automation/actions/interaction/upload/uploadfile.js +6 -3
  265. package/dist/automation/actions/interaction/verify/MOB_VerifyBatteryLevel.js +5 -1
  266. package/dist/automation/actions/interaction/verify/MOB_VerifyIfAirplaneModeOff.js +5 -1
  267. package/dist/automation/actions/interaction/verify/MOB_VerifyIfAirplaneModeOn.js +5 -1
  268. package/dist/automation/actions/interaction/verify/MOB_VerifyIfAppIsClosed.js +5 -1
  269. package/dist/automation/actions/interaction/verify/MOB_VerifyIfDeviceIsLocked.js +5 -1
  270. package/dist/automation/actions/interaction/verify/MOB_VerifyIfDeviceIsUnlocked.js +5 -1
  271. package/dist/automation/actions/interaction/verify/MOB_VerifyIfGpsOff.js +5 -1
  272. package/dist/automation/actions/interaction/verify/MOB_VerifyIfGpsOn.js +5 -1
  273. package/dist/automation/actions/interaction/verify/MOB_VerifyIfKeyboardIsHidden.js +5 -1
  274. package/dist/automation/actions/interaction/verify/MOB_VerifyIfKeyboardIsShown.js +5 -1
  275. package/dist/automation/actions/interaction/verify/MOB_VerifyIfWifiOff.js +5 -1
  276. package/dist/automation/actions/interaction/verify/MOB_VerifyIfWifiOn.js +5 -1
  277. package/dist/automation/actions/interaction/verify/VerifyAccessibilityScore.js +4 -1
  278. package/dist/automation/actions/interaction/verify/VerifyAllBrokenImages.js +7 -4
  279. package/dist/automation/actions/interaction/verify/VerifyAllBrowserWindowsClosed.js +7 -4
  280. package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreDeSelected.js +9 -6
  281. package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreSelected.js +8 -5
  282. package/dist/automation/actions/interaction/verify/VerifyAttributeValue.js +7 -4
  283. package/dist/automation/actions/interaction/verify/VerifyBestPracticesScore.js +4 -1
  284. package/dist/automation/actions/interaction/verify/VerifyBrowserHtmlCodeContainsString.js +6 -3
  285. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowHeight.js +6 -3
  286. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleContainsString.js +9 -6
  287. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleIsString.js +8 -5
  288. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlContainsExpectedUrl.js +8 -5
  289. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlIsString.js +8 -5
  290. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowWidth.js +6 -3
  291. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowXLocation.js +6 -3
  292. package/dist/automation/actions/interaction/verify/VerifyBrowserWindowYLocation.js +6 -3
  293. package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsNotSelected.js +8 -4
  294. package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsSelected.js +6 -3
  295. package/dist/automation/actions/interaction/verify/VerifyCssAttributeValue.js +6 -3
  296. package/dist/automation/actions/interaction/verify/VerifyElementIsClickable.js +7 -4
  297. package/dist/automation/actions/interaction/verify/VerifyElementIsDisabled.js +10 -7
  298. package/dist/automation/actions/interaction/verify/VerifyElementIsDisplayed.js +9 -6
  299. package/dist/automation/actions/interaction/verify/VerifyElementIsEnabled.js +10 -7
  300. package/dist/automation/actions/interaction/verify/VerifyElementIsNotDisplayed.js +7 -4
  301. package/dist/automation/actions/interaction/verify/VerifyElementIsSelected.js +10 -7
  302. package/dist/automation/actions/interaction/verify/VerifyElementNotContainsText.js +5 -2
  303. package/dist/automation/actions/interaction/verify/VerifyHeightOfWebElement.js +10 -7
  304. package/dist/automation/actions/interaction/verify/VerifyHexCodeForGivenXYCoordinates.js +4 -1
  305. package/dist/automation/actions/interaction/verify/VerifyIfAllCookiesAreDeleted.js +7 -4
  306. package/dist/automation/actions/interaction/verify/VerifyIfAudioEnded.js +6 -3
  307. package/dist/automation/actions/interaction/verify/VerifyIfAudioIsMuted.js +6 -3
  308. package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPaused.js +6 -3
  309. package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPlaying.js +7 -4
  310. package/dist/automation/actions/interaction/verify/VerifyIfBrowserWindowIsClosed.js +7 -4
  311. package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsAdded.js +7 -4
  312. package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsDeleted.js +6 -3
  313. package/dist/automation/actions/interaction/verify/VerifyIfCookieObjectIsPresent.js +7 -4
  314. package/dist/automation/actions/interaction/verify/VerifyIfGivenOptionIsDuplicate.js +6 -3
  315. package/dist/automation/actions/interaction/verify/VerifyIfImageIsBroken.js +7 -4
  316. package/dist/automation/actions/interaction/verify/VerifyIfLinkIsBroken.js +7 -4
  317. package/dist/automation/actions/interaction/verify/VerifyIfLinkIsWorking.js +6 -3
  318. package/dist/automation/actions/interaction/verify/VerifyIfLinksAreBroken.js +7 -4
  319. package/dist/automation/actions/interaction/verify/VerifyIfLinksAreWorking.js +6 -3
  320. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsDeselectedInElement.js +8 -5
  321. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsSelectedInListBox.js +10 -7
  322. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithTextIsDeselected.js +4 -1
  323. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsDeselected.js +6 -3
  324. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsSelected.js +6 -3
  325. package/dist/automation/actions/interaction/verify/VerifyIfOptionWithVisibleTextIsSelected.js +4 -1
  326. package/dist/automation/actions/interaction/verify/VerifyIfSpecifiedOptionIsSelected.js +6 -3
  327. package/dist/automation/actions/interaction/verify/VerifyIfStatusCodeOfALinkIsStatusCode.js +4 -1
  328. package/dist/automation/actions/interaction/verify/VerifyIfStatusCodesOfLinks.js +4 -1
  329. package/dist/automation/actions/interaction/verify/VerifyIfVideoEnded.js +6 -3
  330. package/dist/automation/actions/interaction/verify/VerifyIfVideoIsMuted.js +6 -3
  331. package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPaused.js +6 -3
  332. package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPlaying.js +6 -3
  333. package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInMute.js +6 -3
  334. package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInUnmute.js +6 -3
  335. package/dist/automation/actions/interaction/verify/VerifyIfXAndYCoordinateOfElement.js +9 -6
  336. package/dist/automation/actions/interaction/verify/VerifyLinkNavigatesToTitle.js +4 -1
  337. package/dist/automation/actions/interaction/verify/VerifyListBoxOptionsAreSorted.js +8 -5
  338. package/dist/automation/actions/interaction/verify/VerifyNavigateURL.js +6 -3
  339. package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByTagName.js +7 -4
  340. package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByXpath.js +7 -4
  341. package/dist/automation/actions/interaction/verify/VerifyPartialAttributeValue.js +7 -4
  342. package/dist/automation/actions/interaction/verify/VerifyPartialTitleOfCurrentPage.js +6 -3
  343. package/dist/automation/actions/interaction/verify/VerifyPerformanceScore.js +4 -1
  344. package/dist/automation/actions/interaction/verify/VerifyPwaScore.js +4 -1
  345. package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsNotSelected.js +6 -3
  346. package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsSelected.js +6 -3
  347. package/dist/automation/actions/interaction/verify/VerifySeoScore.js +4 -1
  348. package/dist/automation/actions/interaction/verify/VerifyTagName.js +6 -3
  349. package/dist/automation/actions/interaction/verify/VerifyThatSpecifiedOptionIsNotSelected.js +6 -3
  350. package/dist/automation/actions/interaction/verify/VerifyTitleInAllPage.js +6 -3
  351. package/dist/automation/actions/interaction/verify/VerifyTitleOfCurrentPage.js +6 -3
  352. package/dist/automation/actions/interaction/verify/VerifyValueOfElementContainsString.js +6 -3
  353. package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsCleared.js +6 -3
  354. package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsString.js +6 -3
  355. package/dist/automation/actions/interaction/verify/VerifyWidthOfElement.js +10 -7
  356. package/dist/automation/actions/interaction/verify/VerifyXLocationOfElement.js +10 -7
  357. package/dist/automation/actions/interaction/verify/VerifyYLocationOfElement.js +10 -7
  358. package/dist/automation/actions/interaction/verify/checkIfElementIsDisplayed.js +7 -4
  359. package/dist/automation/actions/interaction/verify/verifypartialtext.js +9 -6
  360. package/dist/automation/actions/interaction/verify/verifytext.js +14 -11
  361. package/dist/automation/actions/interaction/wait/MOB_WaitTillAllElementsAreInvisible.ts.js +5 -1
  362. package/dist/automation/actions/interaction/wait/MOB_WaitTillAttributeOfElementContainsString.js +6 -2
  363. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsEnabled.js +6 -2
  364. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsInvisible.js +6 -2
  365. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsSelected.js +6 -2
  366. package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsVisible.js +6 -2
  367. package/dist/automation/actions/interaction/wait/MOB_WaitTillStalenessOfElement.js +6 -2
  368. package/dist/automation/actions/interaction/wait/wait.js +4 -1
  369. package/dist/automation/actions/interaction/wait/waitTillAttributeOfElementIsString.js +4 -1
  370. package/dist/automation/actions/interaction/wait/waitTillElementContainsText.js +4 -1
  371. package/dist/automation/actions/interaction/wait/waitTillElementHasText.js +4 -1
  372. package/dist/automation/actions/interaction/wait/waitTillElementIsClickable.js +4 -1
  373. package/dist/automation/actions/interaction/wait/waitTillPresenceOfAllElements.js +6 -3
  374. package/dist/automation/actions/interaction/wait/waitTillPresenceOfElement.js +4 -1
  375. package/dist/automation/actions/interface/IframeInterface.js +2 -1
  376. package/dist/automation/actions/interface/InputlessActionnterface.js +2 -1
  377. package/dist/automation/actions/interface/alertActionInterface.js +2 -1
  378. package/dist/automation/actions/interface/clearActionInterface.js +2 -1
  379. package/dist/automation/actions/interface/clickActionInterface.js +2 -1
  380. package/dist/automation/actions/interface/dragAndDropToElementInterface.js +2 -1
  381. package/dist/automation/actions/interface/elelementLessActionInterface.js +2 -1
  382. package/dist/automation/actions/interface/elementlessInterface.js +2 -1
  383. package/dist/automation/actions/interface/findActionInterface.js +2 -1
  384. package/dist/automation/actions/interface/getActionInterface.js +2 -1
  385. package/dist/automation/actions/interface/interactionActionInterface.js +2 -1
  386. package/dist/automation/actions/interface/maximizeAndMinimizeInterface.js +2 -1
  387. package/dist/automation/actions/interface/navigationActionInterface.js +2 -1
  388. package/dist/automation/actions/interface/pinchActionInterface.js +2 -1
  389. package/dist/automation/actions/interface/pressActionInterface.js +2 -1
  390. package/dist/automation/actions/interface/scrollActionInterface.js +2 -1
  391. package/dist/automation/actions/interface/setActionInterface.js +2 -1
  392. package/dist/automation/actions/interface/shadowDomInterface.js +2 -1
  393. package/dist/automation/actions/interface/swipeActionInterface.js +2 -1
  394. package/dist/automation/actions/interface/switchingActionInterface.js +2 -1
  395. package/dist/automation/actions/interface/uploadFile.js +2 -1
  396. package/dist/automation/actions/interface/verifyActionInterface.d.ts +1 -0
  397. package/dist/automation/actions/interface/verifyActionInterface.js +2 -1
  398. package/dist/automation/actions/interface/waitActionInterface.js +2 -1
  399. package/dist/automation/browserSession/initiateBrowserSession.js +11 -7
  400. package/dist/automation/cloudSession/initiateCloudSession.js +11 -7
  401. package/dist/automation/mobileSession/initiateMobileSession.d.ts +2 -1
  402. package/dist/automation/mobileSession/initiateMobileSession.js +16 -11
  403. package/dist/core/constants/allAction.js +5 -1
  404. package/dist/core/constants/defaultValues.js +4 -1
  405. package/dist/core/constants/supportedActions.js +34 -4
  406. package/dist/core/interfaces/StableDomInterface.js +2 -1
  407. package/dist/core/interfaces/actionInterface.d.ts +1 -1
  408. package/dist/core/interfaces/actionInterface.js +2 -1
  409. package/dist/core/interfaces/automationRunnerInterface.js +2 -1
  410. package/dist/core/interfaces/browserCapabilitiesInterface.js +4 -1
  411. package/dist/core/interfaces/browserConfigurationInterface.js +2 -1
  412. package/dist/core/interfaces/cloudConfigInterface.js +2 -1
  413. package/dist/core/interfaces/domAnalysisInterface.js +2 -1
  414. package/dist/core/interfaces/errorInfoInterface.js +2 -1
  415. package/dist/core/interfaces/executionDetails.d.ts +1 -0
  416. package/dist/core/interfaces/executionDetails.js +2 -1
  417. package/dist/core/interfaces/fireflinkScriptPayloadInterface.js +2 -1
  418. package/dist/core/interfaces/llmConfigurationInterface.d.ts +1 -1
  419. package/dist/core/interfaces/llmConfigurationInterface.js +2 -1
  420. package/dist/core/interfaces/llmResponseInterface.js +2 -1
  421. package/dist/core/interfaces/promptInterface.js +3 -1
  422. package/dist/core/interfaces/scriptGenrationDataInterface.js +2 -1
  423. package/dist/core/interfaces/simplifyAndFlattenInterface.js +2 -1
  424. package/dist/core/interfaces/toolsInterface.js +2 -1
  425. package/dist/core/main/actionHandlerFactory.js +19 -13
  426. package/dist/core/main/executionContext.js +15 -11
  427. package/dist/core/main/runAutomationScript.js +130 -126
  428. package/dist/core/main/stepProcessor.js +7 -3
  429. package/dist/core/types/browserType.js +4 -1
  430. package/dist/core/types/cloudServerPortType.js +4 -1
  431. package/dist/core/types/cloudprotocolType.js +2 -1
  432. package/dist/core/types/llmResponseType.js +2 -1
  433. package/dist/core/types/promptMap.js +2 -1
  434. package/dist/core/types/promptType.js +5 -2
  435. package/dist/core/types/scriptTypesType.js +2 -1
  436. package/dist/core/types/visionllmInputType.js +2 -1
  437. package/dist/domAnalysis/getRelaventElements.js +14 -10
  438. package/dist/domAnalysis/relativeElementsFromDom.js +5 -1
  439. package/dist/domAnalysis/searchBest.js +8 -4
  440. package/dist/domAnalysis/simplifyAndFlatten.js +41 -4
  441. package/dist/fireflinkData/fireflinkLocators/elementsFromHTML.js +13 -10
  442. package/dist/fireflinkData/fireflinkLocators/getListOfLocators.js +9 -5
  443. package/dist/fireflinkData/fireflinkLocators/typeList.js +4 -1
  444. package/dist/fireflinkData/fireflinkScript/scriptGenrationData.js +5 -1
  445. package/dist/imageAnalysisMobile/annotatedScreenshotMobile.js +11 -8
  446. package/dist/imageAnalysisMobile/annotatedScreenshotMobileInterface.js +2 -1
  447. package/dist/imageAnalysisWeb/annotateScreenshot.js +7 -4
  448. package/dist/imageAnalysisWeb/generateAnnotatedScreenshots.js +8 -5
  449. package/dist/imageAnalysisWeb/screenshotInterface.js +2 -1
  450. package/dist/index.js +5 -2
  451. package/dist/llmConfig/llmConfiguration.d.ts +1 -2
  452. package/dist/llmConfig/llmConfiguration.js +20 -14
  453. package/dist/service/api/fireflinkApi.service.js +10 -3
  454. package/dist/service/fireflink.service.js +10 -6
  455. package/dist/service/kafka/fireflinkKafka.service.js +12 -8
  456. package/dist/tests/multiBrowser.d.ts +1 -0
  457. package/dist/tests/multiBrowser.js +34 -0
  458. package/dist/tests/poc.js +21 -16
  459. package/dist/tests/test1.d.ts +1 -7
  460. package/dist/tests/test1.js +29 -11
  461. package/dist/tests/test12.d.ts +0 -1
  462. package/dist/tests/test12.js +74 -68
  463. package/dist/tests/test3.js +4 -2
  464. package/dist/tests/testkaf.d.ts +1 -0
  465. package/dist/tests/testkaf.js +56 -0
  466. package/dist/tests/tests.data.js +4 -1
  467. package/dist/tests/testwe.d.ts +1 -0
  468. package/dist/tests/testwe.js +24 -0
  469. package/dist/utils/DomExtraction/jsForAttributeInjection.d.ts +1 -1
  470. package/dist/utils/DomExtraction/jsForAttributeInjection.js +21 -13
  471. package/dist/utils/InstancesDetails/getInstancesInfo.js +6 -2
  472. package/dist/utils/alertPopup/isAlertPresent.js +5 -1
  473. package/dist/utils/alertPopup/isAlertPresentInterface.js +2 -1
  474. package/dist/utils/browserCap/capability.js +4 -1
  475. package/dist/utils/cloudConfig/cloudPath.js +4 -1
  476. package/dist/utils/helpers/enterActionHelper.js +23 -15
  477. package/dist/utils/helpers/imageUtils.js +4 -1
  478. package/dist/utils/helpers/sameActionsHelper.js +4 -1
  479. package/dist/utils/helpers/xpathcreation.js +11 -5
  480. package/dist/utils/iframesExtraction/findElementUsingFF.js +7 -3
  481. package/dist/utils/iframesExtraction/iframeInterface.js +2 -1
  482. package/dist/utils/iframesExtraction/switchToIframeByMeta.js +4 -1
  483. package/dist/utils/javascript/jsFindElement.js +4 -1
  484. package/dist/utils/javascript/jsForShadowRoot.js +9 -6
  485. package/dist/utils/javascript/jsForToaster.js +4 -1
  486. package/dist/utils/javascript/jsForVision.js +5 -2
  487. package/dist/utils/logger/logData.js +28 -21
  488. package/dist/utils/newTab/newTabTracker.js +4 -1
  489. package/dist/utils/swipe/domSearchHelper.d.ts +1 -1
  490. package/dist/utils/swipe/domSearchHelper.js +51 -24
  491. package/dist/utils/swipe/swipeMovement.js +4 -1
  492. package/package.json +10 -8
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,25 +1,29 @@
1
- import { DomSimplifier } from "./simplifyAndFlatten.js";
2
- import { DomSearcher } from "./searchBest.js";
3
- import { DomRelationshipBuilder } from "./relativeElementsFromDom.js";
4
- import { logger } from "../utils/logger/logData.js";
5
- export class DomProcessingEngine {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DomProcessingEngine = void 0;
4
+ const simplifyAndFlatten_js_1 = require("./simplifyAndFlatten.js");
5
+ const searchBest_js_1 = require("./searchBest.js");
6
+ const relativeElementsFromDom_js_1 = require("./relativeElementsFromDom.js");
7
+ const logData_js_1 = require("../utils/logger/logData.js");
8
+ class DomProcessingEngine {
6
9
  constructor() {
7
- this.simplifier = new DomSimplifier();
8
- this.searcher = new DomSearcher();
9
- this.relationshipBuilder = new DomRelationshipBuilder();
10
+ this.simplifier = new simplifyAndFlatten_js_1.DomSimplifier();
11
+ this.searcher = new searchBest_js_1.DomSearcher();
12
+ this.relationshipBuilder = new relativeElementsFromDom_js_1.DomRelationshipBuilder();
10
13
  }
11
14
  webProcess(request) {
12
15
  const flat = this.simplifier.simplify(request.rawDom);
13
- logger.saveJSON(flat, `flat-dom-${request.stepCount}`);
16
+ logData_js_1.logger.saveJSON(flat, `flat-dom-${request.stepCount}`);
14
17
  const searched = this.searcher.search(flat, request.keywords);
15
18
  const structured = this.relationshipBuilder.build(searched);
16
19
  return structured;
17
20
  }
18
21
  mobileProcess(request) {
19
22
  const { flatNodes, parentMap } = this.simplifier.simplifyMobile(request.rawDom);
20
- logger.saveJSON(flatNodes, `flat-dom-Mob-${request.stepCount}`);
23
+ logData_js_1.logger.saveJSON(flatNodes, `flat-dom-Mob-${request.stepCount}`);
21
24
  const { results, indexMap } = this.searcher.searchBestMobile(flatNodes, request.keywords);
22
25
  const grouped = this.relationshipBuilder.buildGroupedResultsMobile(results, flatNodes, indexMap, parentMap);
23
26
  return grouped;
24
27
  }
25
28
  }
29
+ exports.DomProcessingEngine = DomProcessingEngine;
@@ -1,4 +1,7 @@
1
- export class DomRelationshipBuilder {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DomRelationshipBuilder = void 0;
4
+ class DomRelationshipBuilder {
2
5
  build(nodes) {
3
6
  const ffToXPath = new Map();
4
7
  nodes.forEach(n => {
@@ -191,3 +194,4 @@ export class DomRelationshipBuilder {
191
194
  return finalResults;
192
195
  }
193
196
  }
197
+ exports.DomRelationshipBuilder = DomRelationshipBuilder;
@@ -1,5 +1,8 @@
1
- import { fuzzy } from "fast-fuzzy";
2
- export class DomSearcher {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DomSearcher = void 0;
4
+ const fast_fuzzy_1 = require("fast-fuzzy");
5
+ class DomSearcher {
3
6
  search(nodes, keywords, topN = 20, threshold = 40) {
4
7
  if (typeof keywords === "string") {
5
8
  keywords = keywords.replace(/[\[\]]/g, "");
@@ -67,7 +70,7 @@ export class DomSearcher {
67
70
  matched = true;
68
71
  }
69
72
  if (!matched) {
70
- const score = fuzzy(kw, searchText);
73
+ const score = (0, fast_fuzzy_1.fuzzy)(kw, searchText);
71
74
  if (score >= threshold / 100) {
72
75
  fuzzyList.push([score * 100, i]);
73
76
  }
@@ -184,7 +187,7 @@ export class DomSearcher {
184
187
  continue;
185
188
  }
186
189
  // FUZZY MATCH
187
- const score = fuzzy(kw, text) * 100;
190
+ const score = (0, fast_fuzzy_1.fuzzy)(kw, text) * 100;
188
191
  if (score >= threshold) {
189
192
  fuzzyMatches.push([score, node]);
190
193
  }
@@ -208,3 +211,4 @@ export class DomSearcher {
208
211
  };
209
212
  }
210
213
  }
214
+ exports.DomSearcher = DomSearcher;
@@ -1,6 +1,42 @@
1
- import * as cheerio from "cheerio";
2
- import { DOMParser } from "@xmldom/xmldom";
3
- export class DomSimplifier {
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.DomSimplifier = void 0;
37
+ const cheerio = __importStar(require("cheerio"));
38
+ const xmldom_1 = require("@xmldom/xmldom");
39
+ class DomSimplifier {
4
40
  simplify(rawDom) {
5
41
  const $ = cheerio.load(rawDom, { xml: true });
6
42
  const flatNodes = [];
@@ -88,7 +124,7 @@ export class DomSimplifier {
88
124
  return flatNodes;
89
125
  }
90
126
  simplifyMobile(rawDom) {
91
- const parser = new DOMParser();
127
+ const parser = new xmldom_1.DOMParser();
92
128
  const xmlDoc = parser.parseFromString(rawDom, "text/xml");
93
129
  const root = xmlDoc.documentElement;
94
130
  const flatNodes = [];
@@ -184,3 +220,4 @@ export class DomSimplifier {
184
220
  };
185
221
  }
186
222
  }
223
+ exports.DomSimplifier = DomSimplifier;
@@ -1,5 +1,8 @@
1
- import { JSDOM, VirtualConsole } from "jsdom";
2
- import { logger } from "../../utils/logger/logData.js";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getElementsFromHTML = void 0;
4
+ const jsdom_1 = require("jsdom");
5
+ const logData_js_1 = require("../../utils/logger/logData.js");
3
6
  const isUnique = (xpathResult) => {
4
7
  return xpathResult && xpathResult.snapshotLength === 1;
5
8
  };
@@ -165,21 +168,21 @@ function checkReferenceElementIsValid(locator, relation, tempDiv) {
165
168
  return relativeXpath;
166
169
  }
167
170
  else {
168
- logger.error("Complete Locator is Invalid:", locator);
171
+ logData_js_1.logger.error("Complete Locator is Invalid:", locator);
169
172
  relativeXpath = locator;
170
173
  return relativeXpath;
171
174
  }
172
175
  }
173
176
  else {
174
- logger.error("Source Locator Not Found:", sourceLoc);
177
+ logData_js_1.logger.error("Source Locator Not Found:", sourceLoc);
175
178
  }
176
179
  }
177
180
  }
178
181
  return null;
179
182
  }
180
183
  const getElementsFromHTML = (locators, htmlString) => {
181
- const virtualConsole = new VirtualConsole();
182
- const dom = new JSDOM(htmlString, {
184
+ const virtualConsole = new jsdom_1.VirtualConsole();
185
+ const dom = new jsdom_1.JSDOM(htmlString, {
183
186
  resources: "usable",
184
187
  runScripts: "outside-only", // Prevents inline script execution in JSDOM
185
188
  pretendToBeVisual: true,
@@ -476,7 +479,7 @@ const getElementsFromHTML = (locators, htmlString) => {
476
479
  }
477
480
  }
478
481
  catch (error) {
479
- logger.error(`[${Object.getPrototypeOf(this).constructor.name}] : Error processing locator:`, locator, error.message);
482
+ logData_js_1.logger.error(`[${Object.getPrototypeOf(this).constructor.name}] : Error processing locator:`, locator, error.message);
480
483
  }
481
484
  }
482
485
  const uniqueLocators = new Map();
@@ -497,15 +500,15 @@ const getElementsFromHTML = (locators, htmlString) => {
497
500
  }
498
501
  }
499
502
  catch (error) {
500
- logger.error(`[${Object.getPrototypeOf(this).constructor.name}] : Error processing locator:`, locator, error.message);
503
+ logData_js_1.logger.error(`[${Object.getPrototypeOf(this).constructor.name}] : Error processing locator:`, locator, error.message);
501
504
  continue;
502
505
  }
503
506
  }
504
507
  catch (error) {
505
- logger.error(`[${Object.getPrototypeOf(this).constructor.name}] : Error processing locator:`, locator, error.message);
508
+ logData_js_1.logger.error(`[${Object.getPrototypeOf(this).constructor.name}] : Error processing locator:`, locator, error.message);
506
509
  continue;
507
510
  }
508
511
  }
509
512
  return null;
510
513
  };
511
- export { getElementsFromHTML };
514
+ exports.getElementsFromHTML = getElementsFromHTML;
@@ -1,10 +1,13 @@
1
- import { logger } from "../../utils/logger/logData.js";
2
- import { getElementsFromHTML } from "./elementsFromHTML.js";
3
- export class ElementGetter {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ElementGetter = void 0;
4
+ const logData_js_1 = require("../../utils/logger/logData.js");
5
+ const elementsFromHTML_js_1 = require("./elementsFromHTML.js");
6
+ class ElementGetter {
4
7
  async getFireFlinkElement(html, attribute) {
5
8
  const formattedAttribute = attribute.replace('[', '//*[@');
6
9
  try {
7
- const result = getElementsFromHTML([
10
+ const result = (0, elementsFromHTML_js_1.getElementsFromHTML)([
8
11
  {
9
12
  name: "xpath",
10
13
  type: "Static",
@@ -17,8 +20,9 @@ export class ElementGetter {
17
20
  return Array.isArray(result) && result.length > 0 ? JSON.parse(JSON.stringify(result[0], null, 4)) : null;
18
21
  }
19
22
  catch (error) {
20
- logger.error(`[${Object.getPrototypeOf(this).constructor.name}] : `, "Unable to find the element", error);
23
+ logData_js_1.logger.error(`[${Object.getPrototypeOf(this).constructor.name}] : `, "Unable to find the element", error);
21
24
  return "";
22
25
  }
23
26
  }
24
27
  }
28
+ exports.ElementGetter = ElementGetter;
@@ -1,3 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizedElementType = void 0;
1
4
  const elementType = {
2
5
  'Link': 'link',
3
6
  'Text Field': 'textfield',
@@ -24,7 +27,7 @@ const elementType = {
24
27
  'Sliders': 'sliders',
25
28
  'Visual Testing': 'visual testing'
26
29
  };
27
- export const normalizedElementType = Object.fromEntries(Object.entries(elementType).map(([key, value]) => [
30
+ exports.normalizedElementType = Object.fromEntries(Object.entries(elementType).map(([key, value]) => [
28
31
  key.toLowerCase().replace(/\s+/g, ""),
29
32
  value,
30
33
  ]));
@@ -1,4 +1,7 @@
1
- export class ScriptDataAppender {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScriptDataAppender = void 0;
4
+ class ScriptDataAppender {
2
5
  constructor() {
3
6
  this.data = [];
4
7
  this.queue = [];
@@ -60,3 +63,4 @@ export class ScriptDataAppender {
60
63
  return this.errorNLP;
61
64
  }
62
65
  }
66
+ exports.ScriptDataAppender = ScriptDataAppender;
@@ -1,6 +1,9 @@
1
- import { createCanvas, loadImage } from "canvas";
2
- import { XMLParser } from "fast-xml-parser";
3
- import { logger } from "../utils/logger/logData.js";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.annotateScreenshot = annotateScreenshot;
4
+ const canvas_1 = require("@napi-rs/canvas");
5
+ const fast_xml_parser_1 = require("fast-xml-parser");
6
+ const logData_js_1 = require("../utils/logger/logData.js");
4
7
  function parseBounds(bounds) {
5
8
  const nums = bounds.match(/\d+/g);
6
9
  if (!nums || nums.length !== 4)
@@ -13,7 +16,7 @@ function parseBounds(bounds) {
13
16
  };
14
17
  }
15
18
  function extractBoxes(xmlSource) {
16
- const parser = new XMLParser({
19
+ const parser = new fast_xml_parser_1.XMLParser({
17
20
  ignoreAttributes: false,
18
21
  attributeNamePrefix: ""
19
22
  });
@@ -52,8 +55,8 @@ const COLORS = [
52
55
  [255, 105, 180],
53
56
  ];
54
57
  async function drawBoxes(screenshotBuffer, boxes) {
55
- const img = await loadImage(screenshotBuffer);
56
- const canvas = createCanvas(img.width, img.height);
58
+ const img = await (0, canvas_1.loadImage)(screenshotBuffer);
59
+ const canvas = (0, canvas_1.createCanvas)(img.width, img.height);
57
60
  const ctx = canvas.getContext("2d");
58
61
  ctx.drawImage(img, 0, 0);
59
62
  const scale = img.width / 1080;
@@ -71,13 +74,13 @@ async function drawBoxes(screenshotBuffer, boxes) {
71
74
  });
72
75
  return canvas.toBuffer("image/png");
73
76
  }
74
- export async function annotateScreenshot(driver, xmlSource) {
77
+ async function annotateScreenshot(driver, xmlSource) {
75
78
  const screenshotBase64 = await driver.takeScreenshot();
76
79
  const screenshotBuffer = Buffer.from(screenshotBase64, "base64");
77
80
  const boxes = extractBoxes(xmlSource);
78
81
  const boxedImageBuffer = await drawBoxes(screenshotBuffer, boxes);
79
82
  // Uncomment only when debugging
80
- await logger.saveImage(boxedImageBuffer, "boxed.png");
83
+ await logData_js_1.logger.saveImage(boxedImageBuffer, "boxed.png");
81
84
  return {
82
85
  boxedImageBuffer: boxedImageBuffer,
83
86
  boxes: boxes
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,7 @@
1
- import { createCanvas, loadImage } from "canvas";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.annotateScreenshot = annotateScreenshot;
4
+ const canvas_1 = require("@napi-rs/canvas");
2
5
  const COLORS = [
3
6
  [255, 0, 0],
4
7
  [0, 128, 255],
@@ -56,12 +59,12 @@ function findFreeTagPosition(box, tagW, tagH, elementBoxes, usedTagRects, imgWid
56
59
  usedTagRects.push([fallbackX, fallbackY, fallbackX + tagW, fallbackY + tagH]);
57
60
  return { x: fallbackX, y: fallbackY };
58
61
  }
59
- export async function annotateScreenshot(screenshotBase64, nodes) {
62
+ async function annotateScreenshot(screenshotBase64, nodes) {
60
63
  const buffer = Buffer.from(screenshotBase64, "base64");
61
- const image = await loadImage(buffer);
64
+ const image = await (0, canvas_1.loadImage)(buffer);
62
65
  const scale = image.width / 1920;
63
66
  const fontSize = Math.max(10, Math.floor(14 * scale));
64
- const canvas = createCanvas(image.width, image.height);
67
+ const canvas = (0, canvas_1.createCanvas)(image.width, image.height);
65
68
  const ctx = canvas.getContext("2d");
66
69
  ctx.drawImage(image, 0, 0);
67
70
  ctx.font = `${fontSize}px Tahoma`;
@@ -1,14 +1,17 @@
1
- import { annotateScreenshot } from "./annotateScreenshot.js";
2
- import { JS_PRIMARY } from "../utils/javascript/jsForVision.js";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateAnnotatedScreenshots = generateAnnotatedScreenshots;
4
+ const annotateScreenshot_js_1 = require("./annotateScreenshot.js");
5
+ const jsForVision_js_1 = require("../utils/javascript/jsForVision.js");
3
6
  // import { logger } from "../utils/logger/logData.js";
4
- export async function generateAnnotatedScreenshots(driver) {
7
+ async function generateAnnotatedScreenshots(driver) {
5
8
  const screenshot = await driver.takeScreenshot();
6
9
  // const [primaryRaw, secondaryRaw] = await Promise.all([
7
10
  // driver.execute(JS_PRIMARY),
8
11
  // driver.execute(JS_SECONDARY),
9
12
  // ]);
10
13
  const [primaryRaw] = await Promise.all([
11
- driver.execute(JS_PRIMARY),
14
+ driver.execute(jsForVision_js_1.JS_PRIMARY),
12
15
  // driver.execute(JS_SECONDARY),
13
16
  ]);
14
17
  const primary = primaryRaw ?? [];
@@ -16,7 +19,7 @@ export async function generateAnnotatedScreenshots(driver) {
16
19
  // const primaryIds = new Set(primary.map((item) => item.ff));
17
20
  // secondary = secondary.filter((item) => !primaryIds.has(item.ff));
18
21
  const [primaryAnnotated] = await Promise.all([
19
- annotateScreenshot(screenshot, primary),
22
+ (0, annotateScreenshot_js_1.annotateScreenshot)(screenshot, primary),
20
23
  // annotateScreenshot(
21
24
  // screenshot,
22
25
  // secondary,
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/index.js CHANGED
@@ -1,2 +1,5 @@
1
- import { AutomationRunner } from "./core/main/runAutomationScript.js";
2
- export { AutomationRunner };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutomationRunner = void 0;
4
+ const runAutomationScript_js_1 = require("./core/main/runAutomationScript.js");
5
+ Object.defineProperty(exports, "AutomationRunner", { enumerable: true, get: function () { return runAutomationScript_js_1.AutomationRunner; } });
@@ -1,5 +1,4 @@
1
1
  import { IServiceProviderBaseUrlConfiguration } from "../core/interfaces/llmConfigurationInterface.js";
2
2
  export declare class ServiceProviderBaseUrlProvider implements IServiceProviderBaseUrlConfiguration {
3
- private readonly baseUrls;
4
- getBaseUrl(provider: string): string;
3
+ getBaseUrl(aiInfo: Record<string, string>): string;
5
4
  }
@@ -1,18 +1,24 @@
1
- export class ServiceProviderBaseUrlProvider {
2
- constructor() {
3
- this.baseUrls = {
4
- Groq: "https://api.groq.com/openai/v1",
5
- DefaultFireFlink: "https://api.groq.com/openai/v1",
6
- OpenAi: "https://api.openai.com/v1",
7
- Anthropic: "https://api.anthropic.com/v1/",
8
- Gemini: "https://generativelanguage.googleapis.com/v1beta/openai/"
9
- };
10
- }
11
- getBaseUrl(provider) {
12
- const url = this.baseUrls[provider];
13
- if (!url) {
14
- throw new Error(`Unsupported service provider: ${provider}`);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServiceProviderBaseUrlProvider = void 0;
4
+ const BASE_URLS = {
5
+ Groq: "https://api.groq.com/openai/v1",
6
+ DefaultFireFlink: "https://api.groq.com/openai/v1",
7
+ OpenAi: "https://api.openai.com/v1",
8
+ Anthropic: "https://api.anthropic.com/v1/",
9
+ Gemini: "https://generativelanguage.googleapis.com/v1beta/openai/",
10
+ };
11
+ class ServiceProviderBaseUrlProvider {
12
+ getBaseUrl(aiInfo) {
13
+ if (aiInfo.serviceProvider === "Azure") {
14
+ if (!aiInfo.resource)
15
+ throw new Error("Resource not found");
16
+ return `https://${aiInfo.resource}.openai.azure.com/openai/v1/`;
15
17
  }
18
+ const url = BASE_URLS[aiInfo.serviceProvider];
19
+ if (!url)
20
+ throw new Error(`Unsupported service provider: ${aiInfo.serviceProvider}`);
16
21
  return url;
17
22
  }
18
23
  }
24
+ exports.ServiceProviderBaseUrlProvider = ServiceProviderBaseUrlProvider;
@@ -1,8 +1,14 @@
1
- import axios from "axios";
2
- export class FireFlinkApiService {
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FireFlinkApiService = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ class FireFlinkApiService {
3
9
  async getInstancesDetailsApi(headers, url) {
4
10
  try {
5
- const response = await axios.get(url, {
11
+ const response = await axios_1.default.get(url, {
6
12
  headers,
7
13
  timeout: 30000,
8
14
  });
@@ -20,3 +26,4 @@ export class FireFlinkApiService {
20
26
  }
21
27
  }
22
28
  }
29
+ exports.FireFlinkApiService = FireFlinkApiService;
@@ -1,9 +1,12 @@
1
- import { KafkaProducerService } from "./kafka/fireflinkKafka.service.js";
2
- import { logger } from "../utils/logger/logData.js";
3
- export class fireflinkService {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fireflinkService = void 0;
4
+ const fireflinkKafka_service_js_1 = require("./kafka/fireflinkKafka.service.js");
5
+ const logData_js_1 = require("../utils/logger/logData.js");
6
+ class fireflinkService {
4
7
  constructor(apiService, broker, sslConfig) {
5
8
  this.apiService = apiService;
6
- this.kafkaProducer = new KafkaProducerService(broker, sslConfig);
9
+ this.kafkaProducer = new fireflinkKafka_service_js_1.KafkaProducerService(broker, sslConfig);
7
10
  }
8
11
  async runGetInstancesDetails(projectId, token, serverHost) {
9
12
  const headers = {
@@ -17,7 +20,7 @@ export class fireflinkService {
17
20
  try {
18
21
  const finalResult = await this.apiService.getInstancesDetailsApi(headers, url);
19
22
  if (finalResult) {
20
- logger.error("Successfully submitted automation script to FireFlink API.");
23
+ logData_js_1.logger.error("Successfully submitted automation script to FireFlink API.");
21
24
  }
22
25
  else {
23
26
  throw new Error("FireFlink API responded with an error: " + JSON.stringify(finalResult));
@@ -25,7 +28,7 @@ export class fireflinkService {
25
28
  return finalResult;
26
29
  }
27
30
  catch (error) {
28
- logger.error(`Failed to submit automation script, ${error}`);
31
+ logData_js_1.logger.error(`Failed to submit automation script, ${error}`);
29
32
  throw new Error("Failed to submit automation script", { cause: error });
30
33
  }
31
34
  }
@@ -33,3 +36,4 @@ export class fireflinkService {
33
36
  await this.kafkaProducer.produceMessage(kafkaArgs);
34
37
  }
35
38
  }
39
+ exports.fireflinkService = fireflinkService;
@@ -1,12 +1,15 @@
1
- import { Kafka, logLevel } from "kafkajs";
2
- import { logger } from "../../utils/logger/logData.js";
3
- export class KafkaProducerService {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KafkaProducerService = void 0;
4
+ const kafkajs_1 = require("kafkajs");
5
+ const logData_js_1 = require("../../utils/logger/logData.js");
6
+ class KafkaProducerService {
4
7
  constructor(brokers, sslConfig) {
5
- this.kafka = new Kafka({
8
+ this.kafka = new kafkajs_1.Kafka({
6
9
  clientId: "FireFlinK-AI-Automation",
7
10
  brokers: brokers,
8
11
  ssl: sslConfig,
9
- logLevel: logLevel.ERROR,
12
+ logLevel: kafkajs_1.logLevel.ERROR,
10
13
  connectionTimeout: 10000,
11
14
  requestTimeout: 60000,
12
15
  retry: {
@@ -19,17 +22,18 @@ export class KafkaProducerService {
19
22
  async produceMessage(kafkaArgs) {
20
23
  try {
21
24
  await this.kafkaProducer.connect();
22
- logger.info("Kafka connected successfully");
25
+ logData_js_1.logger.info("Kafka connected successfully");
23
26
  await this.kafkaProducer.send({
24
27
  topic: kafkaArgs.topic,
25
28
  messages: [{ value: JSON.stringify(kafkaArgs.message) }],
26
29
  });
27
30
  await this.kafkaProducer.disconnect();
28
- logger.info("Kafka produced message successfully and Kafka producer disconnected successfully");
31
+ logData_js_1.logger.info("Kafka produced message successfully and Kafka producer disconnected successfully");
29
32
  }
30
33
  catch (error) {
31
34
  await this.kafkaProducer.disconnect();
32
- logger.error("An error occurred and the Kafka producer disconnected without sending the message", error);
35
+ logData_js_1.logger.error("An error occurred and the Kafka producer disconnected without sending the message", error);
33
36
  }
34
37
  }
35
38
  }
39
+ exports.KafkaProducerService = KafkaProducerService;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const webdriverio_1 = require("webdriverio");
4
+ async function main() {
5
+ let browser;
6
+ try {
7
+ browser = await (0, webdriverio_1.remote)({
8
+ capabilities: {
9
+ browserName: 'chrome',
10
+ },
11
+ });
12
+ await runScript(browser);
13
+ }
14
+ catch (err) {
15
+ console.error('Error:', err);
16
+ }
17
+ finally {
18
+ if (browser) {
19
+ await browser.deleteSession();
20
+ console.log('Session closed');
21
+ }
22
+ }
23
+ }
24
+ async function runScript(browser) {
25
+ console.log('Starting script...');
26
+ await browser.url('https://example.com');
27
+ const title = await browser.getTitle();
28
+ console.log('Title:', title);
29
+ await browser.url('https://google.com');
30
+ const title2 = await browser.getTitle();
31
+ console.log('Title:', title2);
32
+ console.log('Done!');
33
+ }
34
+ main();