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.
- package/dist/ai/llmcalls/llmAction.d.ts +9 -4
- package/dist/ai/llmcalls/llmAction.js +214 -42
- package/dist/ai/llmcalls/parseLlmOputput.js +21 -9
- package/dist/ai/llmprompts/promptRegistry.js +15 -0
- package/dist/ai/llmprompts/systemPrompts/actionExtractorPrompt.js +48 -11
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPrompt.js +7 -6
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPromptMob.js +14 -13
- package/dist/ai/llmprompts/systemPrompts/errorDescriptionPrompt.js +6 -4
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtactors.js +125 -67
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtractor_Mob.js +65 -28
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPrompt.js +18 -16
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPromptMob.js +13 -13
- package/dist/ai/llmprompts/systemPrompts/mobileKeywordExtractor.js +26 -15
- package/dist/ai/llmprompts/systemPrompts/otpExtractorPrompt.d.ts +1 -0
- package/dist/ai/llmprompts/systemPrompts/otpExtractorPrompt.js +22 -0
- package/dist/ai/llmprompts/systemPrompts/userStoryToListPrompt.js +1 -1
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPrompt.js +23 -19
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPromptMob.js +9 -9
- package/dist/ai/llmprompts/systemPrompts/visionPrompt.js +18 -8
- package/dist/ai/llmprompts/systemPrompts/visionPromptMobile.js +4 -0
- package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPrompt.js +10 -9
- package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPromptMob.js +8 -7
- package/dist/ai/llmprompts/userPrompts/userPrompt.js +8 -8
- package/dist/automation/actions/executor.d.ts +42 -34
- package/dist/automation/actions/executor.js +300 -166
- package/dist/automation/actions/interaction/alert/clickCancelOnAlertPopup.js +4 -4
- package/dist/automation/actions/interaction/alert/clickOkOnAlertPopup.js +4 -4
- package/dist/automation/actions/interaction/alert/enterDataToAlert.js +4 -3
- package/dist/automation/actions/interaction/alert/getTextPresentOnAlertPopup.js +4 -4
- package/dist/automation/actions/interaction/alert/verifyAlertPopUpMessageContainsString.js +4 -3
- package/dist/automation/actions/interaction/alert/verifyAlertPopupIsDisplayed.js +10 -4
- package/dist/automation/actions/interaction/alert/verifyTextPresentOnAlertPopup.js +4 -3
- package/dist/automation/actions/interaction/alert/waitTillAlertIsPresent.js +5 -5
- package/dist/automation/actions/interaction/clear/clear.js +33 -26
- package/dist/automation/actions/interaction/clear/clearAndEnter.js +33 -26
- package/dist/automation/actions/interaction/click/MOB_DoubleTapAtSpecifiedLocation.js +5 -6
- package/dist/automation/actions/interaction/click/click.js +65 -26
- package/dist/automation/actions/interaction/click/clickNtimes.js +29 -24
- package/dist/automation/actions/interaction/click/clickUsingJs.js +12 -12
- package/dist/automation/actions/interaction/click/doubleClick.js +32 -25
- package/dist/automation/actions/interaction/click/rightClick.js +18 -13
- package/dist/automation/actions/interaction/click/tapOnSpecifiedLocation.js +7 -5
- package/dist/automation/actions/interaction/click/waitAndClick.js +29 -27
- package/dist/automation/actions/interaction/dragAndDrop/dragAndDrop.js +2 -2
- package/dist/automation/actions/interaction/elementLessAction/MobCheckIfAppIsClosed.js +14 -9
- package/dist/automation/actions/interaction/elementLessAction/MobRunAppInBackgroundInterface.js +9 -9
- package/dist/automation/actions/interaction/elementlessActions/activateAppUsingAppPackage.d.ts +0 -3
- package/dist/automation/actions/interaction/elementlessActions/activateAppUsingAppPackage.js +8 -9
- package/dist/automation/actions/interaction/elementlessActions/getOtp.d.ts +2 -0
- package/dist/automation/actions/interaction/elementlessActions/getOtp.js +101 -0
- package/dist/automation/actions/interaction/elementlessActions/installAPK.js +74 -33
- package/dist/automation/actions/interaction/elementlessActions/isAppInstalled.js +10 -8
- package/dist/automation/actions/interaction/elementlessActions/openAppWithApkFilePath.js +87 -68
- package/dist/automation/actions/interaction/elementlessActions/openMobileApplication.js +8 -6
- package/dist/automation/actions/interaction/elementlessActions/receiveMessageOnEmulator.js +4 -3
- package/dist/automation/actions/interaction/elementlessActions/terminateAppUsingAppPackage.js +8 -6
- package/dist/automation/actions/interaction/elementlessActions/uninstallAPK.js +76 -32
- package/dist/automation/actions/interaction/enterActions/EnterInputIntoElementFromClipBoardInterface_mob.js +17 -13
- package/dist/automation/actions/interaction/enterActions/enterInput.js +55 -30
- package/dist/automation/actions/interaction/enterActions/enterInputAndPress.js +32 -24
- package/dist/automation/actions/interaction/enterActions/enterUrl.js +22 -17
- package/dist/automation/actions/interaction/enterActions/enterusingJs.js +19 -13
- package/dist/automation/actions/interaction/enterActions/waitAndEnter.js +33 -26
- package/dist/automation/actions/interaction/find/MOB_FindElement.js +37 -21
- package/dist/automation/actions/interaction/find/findElements.js +49 -32
- package/dist/automation/actions/interaction/get/MOB_GetADBLogsForGivenAppPackage.js +5 -6
- package/dist/automation/actions/interaction/get/MOB_GetAllContexts.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetAllWindowHandles.js +8 -9
- package/dist/automation/actions/interaction/get/MOB_GetAltitude.js +20 -10
- package/dist/automation/actions/interaction/get/MOB_GetBatteryPercentage.js +7 -9
- package/dist/automation/actions/interaction/get/MOB_GetBatteryStatus.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetClipBoardText.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetCurrentActivity.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetCurrentAppPackage.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetCurrentContext.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceDate.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSettings.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceStatus.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSystemBars.js +5 -6
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceTime.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetCurrentOrientation.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetCurrentSessionId.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetDeviceLocation.js +20 -9
- package/dist/automation/actions/interaction/get/MOB_GetDeviceName.js +7 -8
- package/dist/automation/actions/interaction/get/MOB_GetDeviceOsVersion.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetDeviceUdid.js +7 -8
- package/dist/automation/actions/interaction/get/MOB_GetHeightOfElement.js +12 -11
- package/dist/automation/actions/interaction/get/MOB_GetHeightOfScreen.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetHourFromCurrentDeviceTime.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetLatitude.js +20 -12
- package/dist/automation/actions/interaction/get/MOB_GetLongitude.js +20 -12
- package/dist/automation/actions/interaction/get/MOB_GetMinuteFromCurrentDeviceTime.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetSecondFromCurrentDeviceTime.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetSizeOfScreen.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetSupportedPerformanceDataTypes.js +4 -6
- package/dist/automation/actions/interaction/get/MOB_GetTextFromElementAndSetToClipBoard.js +11 -8
- package/dist/automation/actions/interaction/get/MOB_GetWidthOfElement.js +12 -11
- package/dist/automation/actions/interaction/get/MOB_GetWidthOfScreen.js +4 -6
- package/dist/automation/actions/interaction/get/browserWindowGetPosition.js +4 -4
- package/dist/automation/actions/interaction/get/getAllBrokenImages.js +4 -4
- package/dist/automation/actions/interaction/get/getAllBrokenLinkCount.js +4 -4
- package/dist/automation/actions/interaction/get/getAllBrokenLinks.js +5 -5
- package/dist/automation/actions/interaction/get/getAllConsoleErrors.js +4 -4
- package/dist/automation/actions/interaction/get/getAllConsoleInformation.js +5 -5
- package/dist/automation/actions/interaction/get/getAllConsoleLogs.js +5 -5
- package/dist/automation/actions/interaction/get/getAllConsoleWarnings.js +5 -5
- package/dist/automation/actions/interaction/get/getAllCookieNames.js +5 -5
- package/dist/automation/actions/interaction/get/getAllCookieValues.js +5 -5
- package/dist/automation/actions/interaction/get/getAllSelectedOptions.js +12 -12
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsText.js +12 -12
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsTextInSortedOrder.js +12 -12
- package/dist/automation/actions/interaction/get/getAllTheSelectedOptionsFromListBoxAsText.js +12 -12
- package/dist/automation/actions/interaction/get/getAllWindowHandles.js +5 -5
- package/dist/automation/actions/interaction/get/getAttribute.js +27 -25
- package/dist/automation/actions/interaction/get/getAudioCurrentPlaybackRate.js +12 -12
- package/dist/automation/actions/interaction/get/getAudioCurrentSeekTime.js +12 -12
- package/dist/automation/actions/interaction/get/getAudioCurrentVolume.js +12 -12
- package/dist/automation/actions/interaction/get/getAudioDecodedByte.js +12 -12
- package/dist/automation/actions/interaction/get/getAudioDefaultPlaybackRate.js +12 -12
- package/dist/automation/actions/interaction/get/getAudioMediaLength.js +12 -12
- package/dist/automation/actions/interaction/get/getAudioMediaSource.js +12 -12
- package/dist/automation/actions/interaction/get/getBestPracticesScore.js +4 -3
- package/dist/automation/actions/interaction/get/getBrowserCount.js +4 -4
- package/dist/automation/actions/interaction/get/getBrowserVersion.js +4 -4
- package/dist/automation/actions/interaction/get/getCapabilityNames.js +4 -4
- package/dist/automation/actions/interaction/get/getClipBoardText.js +4 -4
- package/dist/automation/actions/interaction/get/getCollectiveApiResponseTime.js +5 -4
- package/dist/automation/actions/interaction/get/getCollectiveApiStatusCode.js +5 -4
- package/dist/automation/actions/interaction/get/getCssValue.js +12 -12
- package/dist/automation/actions/interaction/get/getCurrentDayOfTheWeek.js +4 -4
- package/dist/automation/actions/interaction/get/getCurrentSecondsFromCurrentSystemTime.js +5 -5
- package/dist/automation/actions/interaction/get/getCurrentSystemDate.js +4 -4
- package/dist/automation/actions/interaction/get/getCurrentSystemDay.js +5 -5
- package/dist/automation/actions/interaction/get/getCurrentSystemMonth.js +5 -5
- package/dist/automation/actions/interaction/get/getCurrentSystemTime.js +5 -5
- package/dist/automation/actions/interaction/get/getCurrentSystemYear.js +5 -5
- package/dist/automation/actions/interaction/get/getCurrentWindowHandle.js +9 -10
- package/dist/automation/actions/interaction/get/getDataFromApiRequestHeaderForJsonPath.js +5 -4
- package/dist/automation/actions/interaction/get/getDataFromApiResponseForJsonPath.js +5 -4
- package/dist/automation/actions/interaction/get/getDateWithGivenFormat.js +5 -4
- package/dist/automation/actions/interaction/get/getDriverInstance.js +12 -11
- package/dist/automation/actions/interaction/get/getFirstContentfulPaint.js +5 -5
- package/dist/automation/actions/interaction/get/getFirstSelectedOption.js +12 -12
- package/dist/automation/actions/interaction/get/getFullPaintTime.js +5 -5
- package/dist/automation/actions/interaction/get/getHTMLCodeOfPage.js +4 -4
- package/dist/automation/actions/interaction/get/getHeightOfBrowserWindow.js +4 -4
- package/dist/automation/actions/interaction/get/getHeightOfWebElement.js +12 -12
- package/dist/automation/actions/interaction/get/getHourFromCurrentSystemTime.js +4 -4
- package/dist/automation/actions/interaction/get/getImplicitTimeOut.js +11 -10
- package/dist/automation/actions/interaction/get/getLargestContentfulPaint.js +4 -4
- package/dist/automation/actions/interaction/get/getListBoxSize.js +12 -12
- package/dist/automation/actions/interaction/get/getListOfElementsFromLocatorTypeLocatorValue.js +90 -44
- package/dist/automation/actions/interaction/get/getLocation.js +32 -31
- package/dist/automation/actions/interaction/get/getMinuteFromCurrentSystemTime.js +4 -4
- package/dist/automation/actions/interaction/get/getNetworkRouteTime.js +4 -4
- package/dist/automation/actions/interaction/get/getNumberOfBrokenImages.js +4 -4
- package/dist/automation/actions/interaction/get/getNumberOfLinksPresentInCurrentPage.js +4 -4
- package/dist/automation/actions/interaction/get/getNumberOfWorkingLinksFromCurrentPage.js +4 -4
- package/dist/automation/actions/interaction/get/getOptions.js +12 -12
- package/dist/automation/actions/interaction/get/getPageTitle.js +5 -5
- package/dist/automation/actions/interaction/get/getPerformanceMetrics.js +5 -5
- package/dist/automation/actions/interaction/get/getPwaScore.js +5 -4
- package/dist/automation/actions/interaction/get/getRect.js +26 -23
- package/dist/automation/actions/interaction/get/getScreenshot.js +12 -18
- package/dist/automation/actions/interaction/get/getScreenshotAs.js +27 -32
- package/dist/automation/actions/interaction/get/getSeoScore.js +5 -4
- package/dist/automation/actions/interaction/get/getSingleApiRequestPayload.js +7 -6
- package/dist/automation/actions/interaction/get/getSingleApiResponse.js +12 -14
- package/dist/automation/actions/interaction/get/getSingleApiResponseTime.js +13 -13
- package/dist/automation/actions/interaction/get/getSingleApiStatusCode.d.ts +1 -1
- package/dist/automation/actions/interaction/get/getSingleApiStatusCode.js +21 -17
- package/dist/automation/actions/interaction/get/getSize.js +26 -24
- package/dist/automation/actions/interaction/get/getSizeOfBrowserWindow.js +5 -5
- package/dist/automation/actions/interaction/get/getStringDataFromLocalFile.js +11 -13
- package/dist/automation/actions/interaction/get/getSystemProperty.js +7 -33
- package/dist/automation/actions/interaction/get/getTagName.js +26 -24
- package/dist/automation/actions/interaction/get/getText.js +28 -25
- package/dist/automation/actions/interaction/get/getTheFirstSelectedOptionFromListBoxAsText.js +12 -12
- package/dist/automation/actions/interaction/get/getTotalNumberOfCookies.js +5 -5
- package/dist/automation/actions/interaction/get/getTunnelIdentifier.js +5 -4
- package/dist/automation/actions/interaction/get/getURLPresentInAddressBar.js +5 -5
- package/dist/automation/actions/interaction/get/getUserHomeDirectory.js +5 -5
- package/dist/automation/actions/interaction/get/getValueByCookieName.js +7 -11
- package/dist/automation/actions/interaction/get/getValueFromLocalStorage.js +7 -10
- package/dist/automation/actions/interaction/get/getValueOfSystemVariable.js +8 -6
- package/dist/automation/actions/interaction/get/getVideoCurrentPlaybackRate.js +12 -12
- package/dist/automation/actions/interaction/get/getVideoCurrentSeekTime.js +12 -12
- package/dist/automation/actions/interaction/get/getVideoCurrentVolume.js +12 -12
- package/dist/automation/actions/interaction/get/getVideoDecodedByte.js +12 -12
- package/dist/automation/actions/interaction/get/getVideoDefaultPlaybackRate.js +12 -12
- package/dist/automation/actions/interaction/get/getVideoMediaLength.js +12 -12
- package/dist/automation/actions/interaction/get/getVideoMediaSource.js +12 -12
- package/dist/automation/actions/interaction/get/getWidthOfBrowser.js +5 -5
- package/dist/automation/actions/interaction/get/getWidthOfWebElement.js +12 -12
- package/dist/automation/actions/interaction/get/getWorkingLinksFromCurrentPage.js +5 -5
- package/dist/automation/actions/interaction/get/getWrappedElement.js +12 -12
- package/dist/automation/actions/interaction/get/getWrappedOptionFromListBoxAsText.js +14 -14
- package/dist/automation/actions/interaction/get/getXLocationOfBrowserWindow.js +5 -4
- package/dist/automation/actions/interaction/get/getXLocationOfWebElement.js +26 -24
- package/dist/automation/actions/interaction/get/getYLocationOfBrowserWindow.js +5 -5
- package/dist/automation/actions/interaction/get/getYLocationOfWebElement.js +26 -24
- package/dist/automation/actions/interaction/iframe/switchToDefaultContent.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/AirplaneModeSwitchOff.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/AirplaneModeSwitchOn.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/Break.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/Continue.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/GpsSwitchOff.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/GpsSwitchOn.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/HideKeyboard.js +13 -7
- package/dist/automation/actions/interaction/inputlessActions/LockDevice.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/OpenChromeBrowser.js +18 -6
- package/dist/automation/actions/interaction/inputlessActions/OpenNotification.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/ResetApp.js +14 -7
- package/dist/automation/actions/interaction/inputlessActions/RestartCurrentDevice.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/SetDeviceOrientationAsLandscape.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/SetDeviceOrientationAsPortrait.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/SetEmulatorPowerStateOff.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/SetEmulatorPowerStateOn.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/WifiSwitchOff.js +5 -5
- package/dist/automation/actions/interaction/inputlessActions/WifiSwitchOn.js +5 -5
- package/dist/automation/actions/interaction/maximize/maximize.js +5 -5
- package/dist/automation/actions/interaction/maximize/minimize.js +5 -5
- package/dist/automation/actions/interaction/mouse/mouseClickOnCurrentCursorNTImes.d.ts +2 -0
- package/dist/automation/actions/interaction/mouse/mouseClickOnCurrentCursorNTImes.js +31 -0
- package/dist/automation/actions/interaction/mouse/mouseClickOnCurrentCursorPoint.d.ts +2 -0
- package/dist/automation/actions/interaction/mouse/mouseClickOnCurrentCursorPoint.js +27 -0
- package/dist/automation/actions/interaction/mouse/mouseDoubleClickAtCursorPoint.d.ts +2 -0
- package/dist/automation/actions/interaction/mouse/mouseDoubleClickAtCursorPoint.js +31 -0
- package/dist/automation/actions/interaction/mouse/mouseHover.d.ts +2 -0
- package/dist/automation/actions/interaction/mouse/mouseHover.js +36 -0
- package/dist/automation/actions/interaction/mouse/mouseReleaseLeftMouseButton.d.ts +2 -0
- package/dist/automation/actions/interaction/mouse/mouseReleaseLeftMouseButton.js +42 -0
- package/dist/automation/actions/interaction/mouse/pressAndHold.d.ts +2 -0
- package/dist/automation/actions/interaction/mouse/pressAndHold.js +47 -0
- package/dist/automation/actions/interaction/navigation/goBack.js +5 -5
- package/dist/automation/actions/interaction/navigation/navigate.js +5 -4
- package/dist/automation/actions/interaction/navigation/refresh.js +5 -5
- package/dist/automation/actions/interaction/pinch/PinchInByPercentMob.js +12 -13
- package/dist/automation/actions/interaction/pinch/PinchOutByPercentMob.js +12 -11
- package/dist/automation/actions/interaction/press/longPress.js +15 -11
- package/dist/automation/actions/interaction/press/mobPressBackKey.js +4 -6
- package/dist/automation/actions/interaction/press/mobPressBackSpaceKey.js +12 -8
- package/dist/automation/actions/interaction/press/mobPressSpaceKey.js +12 -8
- package/dist/automation/actions/interaction/press/pressAnyKey.js +25 -16
- package/dist/automation/actions/interaction/press/pressAnyKeyNTimes.js +23 -14
- package/dist/automation/actions/interaction/press/pressEnterKey.js +21 -14
- package/dist/automation/actions/interaction/press/pressHomeKey.js +16 -9
- package/dist/automation/actions/interaction/scroll/scrollHorizontallyTillElementIsVisible.js +20 -15
- package/dist/automation/actions/interaction/scroll/scrollPageToSpecificLocation.js +8 -7
- package/dist/automation/actions/interaction/scroll/scrollToElement.js +18 -13
- package/dist/automation/actions/interaction/scroll/scrollVerticallyTillElementIsVisible.js +20 -15
- package/dist/automation/actions/interaction/set/MOB_SetContext.js +5 -6
- package/dist/automation/actions/interaction/set/MOB_SetEmulatorPowerPercentage.js +5 -6
- package/dist/automation/actions/interaction/set/setClipBoardText.js +13 -13
- package/dist/automation/actions/interaction/shadowDom/shadowDomClick.js +5 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomEnter.js +5 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomGetText.js +6 -5
- package/dist/automation/actions/interaction/shadowDom/shadowDomUpload.js +13 -9
- package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyPartialText.js +6 -5
- package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyText.js +6 -5
- package/dist/automation/actions/interaction/swipe/swipeDirectionNTimes.js +12 -10
- package/dist/automation/actions/interaction/swipe/swipeDownToElement.js +13 -10
- package/dist/automation/actions/interaction/swipe/swipeIos.d.ts +2 -0
- package/dist/automation/actions/interaction/swipe/swipeIos.js +52 -0
- package/dist/automation/actions/interaction/swipe/swipeLeftToElement.js +16 -11
- package/dist/automation/actions/interaction/swipe/swipeRightToElement.js +15 -10
- package/dist/automation/actions/interaction/swipe/swipeUpToElement.js +12 -10
- package/dist/automation/actions/interaction/swipe/swipeUpToElementForMWeb.js +16 -13
- package/dist/automation/actions/interaction/swipe/swipeUsingReferenceElement.js +19 -16
- package/dist/automation/actions/interaction/switch/switchToNewTabBasedOnTitle.js +7 -6
- package/dist/automation/actions/interaction/switch/switchToNewWindowBasedOnTitle.js +6 -5
- package/dist/automation/actions/interaction/switch/switchToParentWindow.js +6 -6
- package/dist/automation/actions/interaction/switch/switchToTabBasedOnUrl.js +6 -5
- package/dist/automation/actions/interaction/switch/switchToWindowBasedOnURL.js +5 -4
- package/dist/automation/actions/interaction/switch/switchToWindowIfTitleContainsString.js +7 -6
- package/dist/automation/actions/interaction/switch/switchToWindowIfUrlContainsString.js +6 -5
- package/dist/automation/actions/interaction/upload/uploadfile.js +21 -18
- package/dist/automation/actions/interaction/verify/MOB_VerifyBatteryLevel.js +8 -8
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfAirplaneModeOff.js +7 -7
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfAirplaneModeOn.js +7 -7
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfAppIsClosed.js +19 -10
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfDeviceIsLocked.js +7 -6
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfDeviceIsUnlocked.js +7 -7
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfGpsOff.js +12 -8
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfGpsOn.js +12 -8
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfKeyboardIsHidden.js +7 -7
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfKeyboardIsShown.js +8 -7
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfWifiOff.js +8 -7
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfWifiOn.js +8 -7
- package/dist/automation/actions/interaction/verify/VerifyAccessibilityScore.js +8 -7
- package/dist/automation/actions/interaction/verify/VerifyAllBrokenImages.js +6 -6
- package/dist/automation/actions/interaction/verify/VerifyAllBrowserWindowsClosed.js +12 -10
- package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreDeSelected.js +19 -19
- package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreSelected.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyAttributeValue.js +35 -53
- package/dist/automation/actions/interaction/verify/VerifyBestPracticesScore.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyBrowserHtmlCodeContainsString.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowHeight.js +7 -6
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleContainsString.js +7 -6
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleIsString.js +7 -6
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlContainsExpectedUrl.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlIsString.js +5 -4
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowWidth.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowXLocation.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowYLocation.js +7 -6
- package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsNotSelected.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsSelected.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyCssAttributeValue.js +20 -14
- package/dist/automation/actions/interaction/verify/VerifyElementIsClickable.js +28 -25
- package/dist/automation/actions/interaction/verify/VerifyElementIsDisabled.js +29 -27
- package/dist/automation/actions/interaction/verify/VerifyElementIsDisplayed.js +26 -24
- package/dist/automation/actions/interaction/verify/VerifyElementIsEnabled.js +26 -24
- package/dist/automation/actions/interaction/verify/VerifyElementIsEnabledInSpecifiedTime.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsEnabledInSpecifiedTime.js +84 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsNotDisplayed.js +51 -28
- package/dist/automation/actions/interaction/verify/VerifyElementIsSelected.js +39 -27
- package/dist/automation/actions/interaction/verify/VerifyElementIsSelectedInSpecifiedTime.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/VerifyElementIsSelectedInSpecifiedTime.js +83 -0
- package/dist/automation/actions/interaction/verify/VerifyElementNotContainsText.js +23 -23
- package/dist/automation/actions/interaction/verify/VerifyHeightOfWebElement.js +23 -23
- package/dist/automation/actions/interaction/verify/VerifyHexCodeForGivenXYCoordinates.js +44 -14
- package/dist/automation/actions/interaction/verify/VerifyIfAllCookiesAreDeleted.js +4 -4
- package/dist/automation/actions/interaction/verify/VerifyIfAudioEnded.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsMuted.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPaused.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPlaying.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfBrowserWindowIsClosed.js +8 -9
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsAdded.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsDeleted.js +5 -4
- package/dist/automation/actions/interaction/verify/VerifyIfCookieObjectIsPresent.js +5 -5
- package/dist/automation/actions/interaction/verify/VerifyIfGivenOptionIsDuplicate.js +14 -14
- package/dist/automation/actions/interaction/verify/VerifyIfImageIsBroken.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsBroken.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsWorking.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreBroken.js +5 -4
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreWorking.js +5 -4
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsDeselectedInElement.js +13 -13
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsSelectedInListBox.js +13 -13
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithTextIsDeselected.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsDeselected.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsSelected.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithVisibleTextIsSelected.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfSpecifiedOptionIsSelected.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfStatusCodeOfALinkIsStatusCode.js +7 -6
- package/dist/automation/actions/interaction/verify/VerifyIfStatusCodesOfLinks.js +30 -22
- package/dist/automation/actions/interaction/verify/VerifyIfVideoEnded.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsMuted.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPaused.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPlaying.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInMute.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInUnmute.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyIfXAndYCoordinateOfElement.js +25 -23
- package/dist/automation/actions/interaction/verify/VerifyLinkNavigatesToTitle.js +7 -6
- package/dist/automation/actions/interaction/verify/VerifyListBoxOptionsAreSorted.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyNavigateURL.js +42 -14
- package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByTagName.js +7 -5
- package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByXpath.js +13 -7
- package/dist/automation/actions/interaction/verify/VerifyPartialAttributeValue.js +33 -42
- package/dist/automation/actions/interaction/verify/VerifyPartialTitleOfCurrentPage.js +7 -6
- package/dist/automation/actions/interaction/verify/VerifyPerformanceScore.js +7 -6
- package/dist/automation/actions/interaction/verify/VerifyPwaScore.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsNotSelected.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsSelected.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifySeoScore.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyTagName.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyThatSpecifiedOptionIsNotSelected.js +20 -31
- package/dist/automation/actions/interaction/verify/VerifyTitleInAllPage.js +8 -7
- package/dist/automation/actions/interaction/verify/VerifyTitleOfCurrentPage.js +6 -5
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementContainsString.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsCleared.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsString.js +12 -12
- package/dist/automation/actions/interaction/verify/VerifyWidthOfElement.js +23 -23
- package/dist/automation/actions/interaction/verify/VerifyXLocationOfElement.js +23 -23
- package/dist/automation/actions/interaction/verify/VerifyYLocationOfElement.js +26 -23
- package/dist/automation/actions/interaction/verify/checkIfElementIsDisplayed.js +26 -22
- package/dist/automation/actions/interaction/verify/verifyElementIsDisplayedWithinSpecifiedTime.d.ts +2 -0
- package/dist/automation/actions/interaction/verify/verifyElementIsDisplayedWithinSpecifiedTime.js +85 -0
- package/dist/automation/actions/interaction/verify/verifypartialtext.js +28 -25
- package/dist/automation/actions/interaction/verify/verifytext.js +30 -30
- package/dist/automation/actions/interaction/wait/MOB_WaitTillAllElementsAreInvisible.ts.js +5 -6
- package/dist/automation/actions/interaction/wait/MOB_WaitTillAttributeOfElementContainsString.js +17 -14
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsEnabled.js +12 -11
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsInvisible.js +14 -12
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsSelected.js +12 -11
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsVisible.js +15 -13
- package/dist/automation/actions/interaction/wait/MOB_WaitTillStalenessOfElement.js +12 -11
- package/dist/automation/actions/interaction/wait/wait.js +5 -4
- package/dist/automation/actions/interaction/wait/waitTillAttributeOfElementIsString.js +26 -24
- package/dist/automation/actions/interaction/wait/waitTillElementContainsText.js +26 -24
- package/dist/automation/actions/interaction/wait/waitTillElementHasText.js +26 -24
- package/dist/automation/actions/interaction/wait/waitTillElementIsClickable.js +28 -25
- package/dist/automation/actions/interaction/wait/waitTillPresenceOfAllElements.js +32 -22
- package/dist/automation/actions/interaction/wait/waitTillPresenceOfElement.js +26 -24
- package/dist/automation/actions/interface/FireFlinkResponseSchema.d.ts +160 -0
- package/dist/automation/actions/interface/FireFlinkResponseSchema.js +225 -0
- package/dist/automation/actions/interface/alertActionInterface.d.ts +1 -0
- package/dist/automation/actions/interface/findActionInterface.d.ts +3 -0
- package/dist/automation/actions/interface/getActionInterface.d.ts +76 -66
- package/dist/automation/actions/interface/getOtpInterface.d.ts +15 -0
- package/dist/automation/actions/interface/getOtpInterface.js +2 -0
- package/dist/automation/actions/interface/interactionActionInterface.d.ts +5 -0
- package/dist/automation/actions/interface/mouseActionsinterface.d.ts +51 -0
- package/dist/automation/actions/interface/mouseActionsinterface.js +2 -0
- package/dist/automation/actions/interface/pinchActionInterface.d.ts +7 -0
- package/dist/automation/actions/interface/pressActionInterface.d.ts +4 -0
- package/dist/automation/actions/interface/swipeActionInterface.d.ts +25 -10
- package/dist/automation/actions/interface/verifyActionInterface.d.ts +36 -0
- package/dist/automation/actions/interface/waitActionInterface.d.ts +19 -0
- package/dist/automation/browserSession/initiateBrowserSession.d.ts +1 -1
- package/dist/automation/browserSession/initiateBrowserSession.js +15 -7
- package/dist/automation/cloudSession/initiateCloudSession.js +3 -1
- package/dist/automation/driverState.d.ts +2 -0
- package/dist/automation/driverState.js +4 -0
- package/dist/automation/mobileSession/initiateMobileSession.d.ts +28 -5
- package/dist/automation/mobileSession/initiateMobileSession.js +100 -23
- package/dist/core/constants/allAction.js +6 -1
- package/dist/core/constants/supportedActions.d.ts +1 -0
- package/dist/core/constants/supportedActions.js +19 -8
- package/dist/core/interfaces/actionInterface.d.ts +38 -33
- package/dist/core/interfaces/browserConfigurationInterface.d.ts +0 -4
- package/dist/core/interfaces/browserConfigurationInterface.js +0 -1
- package/dist/core/interfaces/executionDetails.d.ts +6 -3
- package/dist/core/interfaces/fireflinkScriptPayloadInterface.d.ts +26 -17
- package/dist/core/interfaces/llmConfigurationInterface.d.ts +3 -2
- package/dist/core/interfaces/llmResponseInterface.d.ts +11 -10
- package/dist/core/interfaces/promptInterface.d.ts +1 -0
- package/dist/core/interfaces/scriptGenrationDataInterface.d.ts +14 -0
- package/dist/core/interfaces/simplifyAndFlattenInterface.d.ts +5 -0
- package/dist/core/main/SessionManager.d.ts +9 -0
- package/dist/core/main/SessionManager.js +23 -0
- package/dist/core/main/actionHandlerFactory.js +353 -86
- package/dist/core/main/executionContext.d.ts +8 -2
- package/dist/core/main/executionContext.js +94 -4
- package/dist/core/main/runAutomationScript.d.ts +2 -0
- package/dist/core/main/runAutomationScript.js +1003 -276
- package/dist/core/main/stepProcessor.d.ts +2 -1
- package/dist/core/main/stepProcessor.js +8 -3
- package/dist/core/types/browserType.d.ts +3 -3
- package/dist/core/types/browserType.js +2 -2
- package/dist/core/types/messageType.d.ts +13 -0
- package/dist/core/types/messageType.js +15 -0
- package/dist/core/types/promptType.d.ts +2 -1
- package/dist/core/types/promptType.js +1 -0
- package/dist/core/types/scriptTypesType.d.ts +1 -1
- package/dist/core/types/visionllmInputType.d.ts +4 -5
- package/dist/domAnalysis/getRelaventElements.d.ts +5 -1
- package/dist/domAnalysis/getRelaventElements.js +14 -5
- package/dist/domAnalysis/relativeElementsFromDom.d.ts +2 -1
- package/dist/domAnalysis/relativeElementsFromDom.js +66 -1
- package/dist/domAnalysis/searchBest.d.ts +5 -1
- package/dist/domAnalysis/searchBest.js +160 -58
- package/dist/domAnalysis/simplifyAndFlatten.d.ts +3 -2
- package/dist/domAnalysis/simplifyAndFlatten.js +114 -19
- package/dist/fireflinkData/fireflinkLocators/getListOfLocators.d.ts +3 -0
- package/dist/fireflinkData/fireflinkLocators/getListOfLocators.js +26 -12
- package/dist/fireflinkData/fireflinkLocators/{elementsFromHTML.d.ts → parser/getElementsFromHTML.d.ts} +5 -11
- package/dist/fireflinkData/fireflinkLocators/parser/getElementsFromHTML.js +573 -0
- package/dist/fireflinkData/fireflinkLocators/types/locator.d.ts +27 -0
- package/dist/fireflinkData/fireflinkLocators/types/locator.js +2 -0
- package/dist/fireflinkData/fireflinkLocators/utils/androidSelector.d.ts +2 -0
- package/dist/fireflinkData/fireflinkLocators/utils/androidSelector.js +57 -0
- package/dist/fireflinkData/fireflinkLocators/utils/cssSelector.d.ts +19 -0
- package/dist/fireflinkData/fireflinkLocators/utils/cssSelector.js +189 -0
- package/dist/fireflinkData/fireflinkLocators/utils/iosSelector.d.ts +2 -0
- package/dist/fireflinkData/fireflinkLocators/utils/iosSelector.js +183 -0
- package/dist/fireflinkData/fireflinkLocators/utils/referenceXpath.d.ts +35 -0
- package/dist/fireflinkData/fireflinkLocators/utils/referenceXpath.js +513 -0
- package/dist/fireflinkData/fireflinkLocators/utils/xpath.d.ts +29 -0
- package/dist/fireflinkData/fireflinkLocators/utils/xpath.js +710 -0
- package/dist/fireflinkData/fireflinkLocators/utils/xpathHelpers.d.ts +135 -0
- package/dist/fireflinkData/fireflinkLocators/utils/xpathHelpers.js +1628 -0
- package/dist/fireflinkData/fireflinkScript/appendScriptData.d.ts +2 -0
- package/dist/fireflinkData/fireflinkScript/appendScriptData.js +48 -0
- package/dist/fireflinkData/fireflinkScript/scriptGenrationData.d.ts +2 -2
- package/dist/fireflinkData/fireflinkScript/scriptGenrationData.js +18 -24
- package/dist/imageAnalysisMobile/annotatedScreenshotMobile.d.ts +4 -0
- package/dist/imageAnalysisMobile/annotatedScreenshotMobile.js +115 -7
- package/dist/imageAnalysisWeb/annotateScreenshot.js +4 -4
- package/dist/imageAnalysisWeb/generateAnnotatedScreenshots.d.ts +4 -1
- package/dist/imageAnalysisWeb/generateAnnotatedScreenshots.js +15 -17
- package/dist/llmConfig/llmConfiguration.d.ts +4 -3
- package/dist/llmConfig/llmConfiguration.js +48 -18
- package/dist/service/api/fireflinkApi.service.d.ts +1 -1
- package/dist/service/api/fireflinkApi.service.js +1 -2
- package/dist/service/fireflink.service.d.ts +3 -3
- package/dist/service/fireflink.service.js +24 -22
- package/dist/service/kafka/fireflinkKafka.service.d.ts +1 -2
- package/dist/service/kafka/fireflinkKafka.service.js +6 -4
- package/dist/tests/poc.d.ts +0 -1
- package/dist/tests/poc.js +211 -226
- package/dist/tests/test.d.ts +1 -0
- package/dist/tests/test.js +26 -0
- package/dist/tests/test12.d.ts +0 -1
- package/dist/tests/test12.js +65 -467
- package/dist/tests/testkaf.d.ts +0 -1
- package/dist/tests/testkaf.js +51 -55
- package/dist/tests/testss.d.ts +1 -0
- package/dist/tests/testss.js +23 -0
- package/dist/utils/DomExtraction/jsForAttributeInjection.d.ts +2 -0
- package/dist/utils/DomExtraction/jsForAttributeInjection.js +220 -8
- package/dist/utils/InstancesDetails/getInstancesInfo.d.ts +26 -1
- package/dist/utils/InstancesDetails/getInstancesInfo.js +11 -5
- package/dist/utils/browserCap/capability.d.ts +14 -10
- package/dist/utils/browserCap/capability.js +97 -16
- package/dist/utils/frameWorkDetector/frameWorkDetector.d.ts +6 -0
- package/dist/utils/frameWorkDetector/frameWorkDetector.js +43 -0
- package/dist/utils/frameWorkDetector/frameWorkDetectorInterface.d.ts +10 -0
- package/dist/utils/frameWorkDetector/frameWorkDetectorInterface.js +2 -0
- package/dist/utils/helpers/domSanitizer.d.ts +1 -0
- package/dist/utils/helpers/domSanitizer.js +9 -0
- package/dist/utils/helpers/enterActionHelper.d.ts +1 -0
- package/dist/utils/helpers/enterActionHelper.js +25 -5
- package/dist/utils/helpers/platformContext.d.ts +3 -0
- package/dist/utils/helpers/platformContext.js +11 -0
- package/dist/utils/helpers/platformSyntax.d.ts +1 -0
- package/dist/utils/helpers/platformSyntax.js +17 -0
- package/dist/utils/helpers/sameActionsHelper.js +7 -2
- package/dist/utils/helpers/xpathcreation.d.ts +5 -1
- package/dist/utils/helpers/xpathcreation.js +44 -5
- package/dist/utils/iframesExtraction/findElementUsingFF.js +12 -9
- package/dist/utils/iframesExtraction/iframeInterface.d.ts +4 -0
- package/dist/utils/javascript/jsFindElement.d.ts +1 -1
- package/dist/utils/javascript/jsFindElement.js +2 -2
- package/dist/utils/javascript/jsForShadowRoot.d.ts +1 -1
- package/dist/utils/javascript/jsForShadowRoot.js +4 -0
- package/dist/utils/javascript/jsForVision.d.ts +2 -2
- package/dist/utils/javascript/jsForVision.js +17 -5
- package/dist/utils/logger/logData.d.ts +1 -0
- package/dist/utils/logger/logData.js +19 -0
- package/dist/utils/newTab/newTabTracker.js +18 -6
- package/dist/utils/sslConfig/apiCallPatch.d.ts +1 -0
- package/dist/utils/sslConfig/apiCallPatch.js +33 -0
- package/dist/utils/sslConfig/getSecureAgent.d.ts +2 -0
- package/dist/utils/sslConfig/getSecureAgent.js +30 -0
- package/dist/utils/swipe/domSearchHelper.d.ts +1 -1
- package/dist/utils/swipe/domSearchHelper.js +43 -42
- package/dist/utils/swipe/swipeMovement.js +28 -19
- package/dist/utils/workers/LocatorWorkerInterface.d.ts +22 -0
- package/dist/utils/workers/LocatorWorkerInterface.js +2 -0
- package/dist/utils/workers/LocatorWorkerPool.d.ts +13 -0
- package/dist/utils/workers/LocatorWorkerPool.js +89 -0
- package/dist/utils/workers/locatorWorker.d.ts +1 -0
- package/dist/utils/workers/locatorWorker.js +44 -0
- package/package.json +23 -6
- package/dist/automation/actions/interaction/get/getAudioDimension.d.ts +0 -2
- package/dist/automation/actions/interaction/get/getAudioDimension.js +0 -34
- package/dist/automation/actions/interaction/get/getAudioHeight.d.ts +0 -2
- package/dist/automation/actions/interaction/get/getAudioHeight.js +0 -30
- package/dist/automation/actions/interaction/get/getAudioWidth.d.ts +0 -2
- package/dist/automation/actions/interaction/get/getAudioWidth.js +0 -30
- package/dist/automation/actions/interaction/get/getVideoDimension.d.ts +0 -2
- package/dist/automation/actions/interaction/get/getVideoDimension.js +0 -31
- package/dist/automation/actions/interaction/get/getVideoHeight.d.ts +0 -2
- package/dist/automation/actions/interaction/get/getVideoHeight.js +0 -28
- package/dist/automation/actions/interaction/get/getVideoWidth.d.ts +0 -2
- package/dist/automation/actions/interaction/get/getVideoWidth.js +0 -28
- package/dist/fireflinkData/fireflinkLocators/elementsFromHTML.js +0 -514
- package/dist/fireflinkData/fireflinkLocators/typeList.d.ts +0 -1
- package/dist/fireflinkData/fireflinkLocators/typeList.js +0 -33
|
@@ -7,6 +7,7 @@ export interface LLMRequest {
|
|
|
7
7
|
type: PromptType;
|
|
8
8
|
args: Record<string, any>;
|
|
9
9
|
input: Record<string, any>;
|
|
10
|
+
isVision?: boolean;
|
|
10
11
|
}
|
|
11
12
|
export declare class StepProcessor {
|
|
12
13
|
private llm;
|
|
@@ -17,7 +18,7 @@ export declare class StepProcessor {
|
|
|
17
18
|
outputTokens: number;
|
|
18
19
|
totalTokens: number;
|
|
19
20
|
}>;
|
|
20
|
-
getLLMResponse({ platform, type, args, input }: LLMRequest): Promise<{
|
|
21
|
+
getLLMResponse({ platform, type, args, input, isVision }: LLMRequest): Promise<{
|
|
21
22
|
response: FireFlinkLLMResponse;
|
|
22
23
|
}>;
|
|
23
24
|
}
|
|
@@ -10,9 +10,14 @@ class StepProcessor {
|
|
|
10
10
|
async getResultTokenUsage() {
|
|
11
11
|
return this.resultParser.getTokenUsage();
|
|
12
12
|
}
|
|
13
|
-
async getLLMResponse({ platform, type, args, input }) {
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
async getLLMResponse({ platform, type, args, input, isVision = false }) {
|
|
14
|
+
try {
|
|
15
|
+
const response = await this.llm.getLLMResponse(platform, type, args, input, isVision);
|
|
16
|
+
return this.resultParser.fetchResult(response);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
throw new Error("failed to get response from llm", { cause: error });
|
|
20
|
+
}
|
|
16
21
|
}
|
|
17
22
|
}
|
|
18
23
|
exports.StepProcessor = StepProcessor;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const browserName: {
|
|
2
2
|
readonly "Microsoft Edge": "edge";
|
|
3
3
|
readonly "Google Chrome": "chrome";
|
|
4
4
|
readonly "Mozilla Firefox": "firefox";
|
|
5
5
|
readonly Safari: "safari";
|
|
6
6
|
};
|
|
7
|
-
export type BrowserName = keyof typeof
|
|
8
|
-
export type BrowserId = typeof
|
|
7
|
+
export type BrowserName = keyof typeof browserName;
|
|
8
|
+
export type BrowserId = typeof browserName[BrowserName];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
3
|
+
exports.browserName = void 0;
|
|
4
|
+
exports.browserName = {
|
|
5
5
|
"Microsoft Edge": "edge",
|
|
6
6
|
"Google Chrome": "chrome",
|
|
7
7
|
"Mozilla Firefox": "firefox",
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const MessageType: {
|
|
2
|
+
readonly LiveLog: {
|
|
3
|
+
readonly Ongoing: "liveLogOngoing";
|
|
4
|
+
readonly Completed: "liveLogCompleted";
|
|
5
|
+
readonly Error: "liveLogError";
|
|
6
|
+
readonly Termination: "termination";
|
|
7
|
+
readonly ExecutionStopped: "executionStopped";
|
|
8
|
+
readonly retry: "retry";
|
|
9
|
+
};
|
|
10
|
+
readonly nextBatch: "nextBatch";
|
|
11
|
+
readonly AutomationScriptMetaData: "AutomationScriptMetaData";
|
|
12
|
+
};
|
|
13
|
+
export type MessageType = typeof MessageType[keyof typeof MessageType] | typeof MessageType.LiveLog[keyof typeof MessageType.LiveLog];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MessageType = void 0;
|
|
4
|
+
exports.MessageType = {
|
|
5
|
+
LiveLog: {
|
|
6
|
+
Ongoing: "liveLogOngoing",
|
|
7
|
+
Completed: "liveLogCompleted",
|
|
8
|
+
Error: "liveLogError",
|
|
9
|
+
Termination: "termination",
|
|
10
|
+
ExecutionStopped: "executionStopped",
|
|
11
|
+
retry: "retry",
|
|
12
|
+
},
|
|
13
|
+
nextBatch: "nextBatch",
|
|
14
|
+
AutomationScriptMetaData: "AutomationScriptMetaData",
|
|
15
|
+
};
|
|
@@ -7,5 +7,6 @@ export declare enum PromptType {
|
|
|
7
7
|
VERIFY_PROMPT = "verifyActionExtractorPrompt",
|
|
8
8
|
GET_PROMPT = "getActionExtractorPrompt",
|
|
9
9
|
WAIT_ACTION_EXTRACTOR_PROMPT = "waitActionExtractorPrompt",
|
|
10
|
-
COMBINED_ACTION_EXTRACTOR_PROMPT = "combinedActionExtractorPrompt"
|
|
10
|
+
COMBINED_ACTION_EXTRACTOR_PROMPT = "combinedActionExtractorPrompt",
|
|
11
|
+
OTP_EXTRACTOR = "otpExtractorPrompt"
|
|
11
12
|
}
|
|
@@ -12,4 +12,5 @@ var PromptType;
|
|
|
12
12
|
PromptType["GET_PROMPT"] = "getActionExtractorPrompt";
|
|
13
13
|
PromptType["WAIT_ACTION_EXTRACTOR_PROMPT"] = "waitActionExtractorPrompt";
|
|
14
14
|
PromptType["COMBINED_ACTION_EXTRACTOR_PROMPT"] = "combinedActionExtractorPrompt";
|
|
15
|
+
PromptType["OTP_EXTRACTOR"] = "otpExtractorPrompt";
|
|
15
16
|
})(PromptType || (exports.PromptType = PromptType = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type platform = "web" | "android";
|
|
1
|
+
export type platform = "web" | "android" | "ios";
|
|
@@ -2,11 +2,15 @@ export interface DomProcessingRequest {
|
|
|
2
2
|
keywords: string[] | string;
|
|
3
3
|
rawDom: string;
|
|
4
4
|
stepCount: number;
|
|
5
|
+
stepAction: string;
|
|
6
|
+
step: string;
|
|
7
|
+
platform: string;
|
|
8
|
+
driver: any;
|
|
5
9
|
}
|
|
6
10
|
export declare class DomProcessingEngine {
|
|
7
11
|
private simplifier;
|
|
8
12
|
private searcher;
|
|
9
13
|
private relationshipBuilder;
|
|
10
14
|
webProcess(request: DomProcessingRequest): any[];
|
|
11
|
-
mobileProcess(request: DomProcessingRequest): any[]
|
|
15
|
+
mobileProcess(request: DomProcessingRequest): Promise<any[]>;
|
|
12
16
|
}
|
|
@@ -18,11 +18,20 @@ class DomProcessingEngine {
|
|
|
18
18
|
const structured = this.relationshipBuilder.build(searched);
|
|
19
19
|
return structured;
|
|
20
20
|
}
|
|
21
|
-
mobileProcess(request) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
async mobileProcess(request) {
|
|
22
|
+
let grouped;
|
|
23
|
+
if (request.platform.toLowerCase() === "ios") {
|
|
24
|
+
const { flatNodes, parentMap, runtimeElements } = await this.simplifier.simplifyIosDom(request.rawDom, request.driver);
|
|
25
|
+
logData_js_1.logger.saveJSON(flatNodes, `flat-dom-ios-${request.stepCount}`);
|
|
26
|
+
const { results, indexMap } = await this.searcher.searchBestIos(flatNodes, request.keywords);
|
|
27
|
+
grouped = await this.relationshipBuilder.buildGroupedResultsIos(results, flatNodes, indexMap, parentMap, runtimeElements);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
const { flatNodes, parentMap } = await this.simplifier.simplifyAndroidDom(request.rawDom, request.stepAction, request.step);
|
|
31
|
+
logData_js_1.logger.saveJSON(flatNodes, `flat-dom-android-${request.stepCount}`);
|
|
32
|
+
const { results, indexMap } = await this.searcher.searchBestAndroid(flatNodes, request.keywords);
|
|
33
|
+
grouped = await this.relationshipBuilder.buildGroupedResultsAndroid(results, flatNodes, indexMap, parentMap);
|
|
34
|
+
}
|
|
26
35
|
return grouped;
|
|
27
36
|
}
|
|
28
37
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare class DomRelationshipBuilder {
|
|
2
2
|
build(nodes: any[]): any[];
|
|
3
|
-
|
|
3
|
+
buildGroupedResultsAndroid(results: Record<string, any[]>, nodes: any[], indexMap: Record<string, number>, parentMap: Map<Element, Element | null>): any[][];
|
|
4
|
+
buildGroupedResultsIos(results: Record<string, any[]>, nodes: any[], indexMap: Record<string, number>, parentMap: Map<any, any>, runtimeElements: Record<number, any>): any[][];
|
|
4
5
|
}
|
|
@@ -61,7 +61,7 @@ class DomRelationshipBuilder {
|
|
|
61
61
|
}
|
|
62
62
|
return structured;
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
buildGroupedResultsAndroid(results, nodes, indexMap, parentMap) {
|
|
65
65
|
const groupedResults = [];
|
|
66
66
|
const usedNodes = new Set();
|
|
67
67
|
const slim = (n) => {
|
|
@@ -193,5 +193,70 @@ class DomRelationshipBuilder {
|
|
|
193
193
|
});
|
|
194
194
|
return finalResults;
|
|
195
195
|
}
|
|
196
|
+
buildGroupedResultsIos(results, nodes, indexMap, parentMap, runtimeElements) {
|
|
197
|
+
const grouped = new Map();
|
|
198
|
+
const slimIOS = (n) => {
|
|
199
|
+
const keys = [
|
|
200
|
+
"tag",
|
|
201
|
+
"FF-inspecter",
|
|
202
|
+
"value",
|
|
203
|
+
"name",
|
|
204
|
+
"label",
|
|
205
|
+
"class",
|
|
206
|
+
"pane-title",
|
|
207
|
+
"accessible",
|
|
208
|
+
"editable",
|
|
209
|
+
"enabled",
|
|
210
|
+
"traits"
|
|
211
|
+
];
|
|
212
|
+
const out = {};
|
|
213
|
+
for (const k of keys) {
|
|
214
|
+
if (k in n)
|
|
215
|
+
out[k] = n[k];
|
|
216
|
+
}
|
|
217
|
+
return out;
|
|
218
|
+
};
|
|
219
|
+
for (const matchedNodes of Object.values(results)) {
|
|
220
|
+
for (const node of matchedNodes) {
|
|
221
|
+
const ff = node["FF-inspecter"];
|
|
222
|
+
if (!ff || !(ff in indexMap))
|
|
223
|
+
continue;
|
|
224
|
+
const item = nodes[indexMap[ff]];
|
|
225
|
+
const element = runtimeElements[item.id];
|
|
226
|
+
const parent = parentMap.get(element);
|
|
227
|
+
const parentKey = parent ? parent : ff;
|
|
228
|
+
if (!grouped.has(parentKey)) {
|
|
229
|
+
grouped.set(parentKey, []);
|
|
230
|
+
}
|
|
231
|
+
grouped.get(parentKey).push(slimIOS(node));
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
const groupedResults = [];
|
|
235
|
+
for (const group of grouped.values()) {
|
|
236
|
+
const seenFF = new Set();
|
|
237
|
+
const uniqueGroup = [];
|
|
238
|
+
for (const node of group) {
|
|
239
|
+
const ff = node["FF-inspecter"];
|
|
240
|
+
if (!ff || seenFF.has(ff))
|
|
241
|
+
continue;
|
|
242
|
+
seenFF.add(ff);
|
|
243
|
+
uniqueGroup.push(node);
|
|
244
|
+
}
|
|
245
|
+
if (uniqueGroup.length) {
|
|
246
|
+
groupedResults.push(uniqueGroup);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
const ffNumber = (node) => {
|
|
250
|
+
const ff = node["FF-inspecter"] || "";
|
|
251
|
+
const parts = ff.split("-");
|
|
252
|
+
return parseInt(parts[parts.length - 1]) || 0;
|
|
253
|
+
};
|
|
254
|
+
groupedResults.sort((a, b) => {
|
|
255
|
+
const minA = Math.min(...a.map(ffNumber));
|
|
256
|
+
const minB = Math.min(...b.map(ffNumber));
|
|
257
|
+
return minA - minB;
|
|
258
|
+
});
|
|
259
|
+
return groupedResults;
|
|
260
|
+
}
|
|
196
261
|
}
|
|
197
262
|
exports.DomRelationshipBuilder = DomRelationshipBuilder;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { FlatNode } from "../core/interfaces/simplifyAndFlattenInterface";
|
|
2
2
|
export declare class DomSearcher {
|
|
3
3
|
search(nodes: FlatNode[], keywords: string[] | string, topN?: number, threshold?: number): any[];
|
|
4
|
-
|
|
4
|
+
searchBestAndroid(nodes: FlatNode[], keywords: string[] | string, topN?: number, threshold?: number): {
|
|
5
|
+
results: Record<string, any[]>;
|
|
6
|
+
indexMap: Record<string, number>;
|
|
7
|
+
};
|
|
8
|
+
searchBestIos(nodes: any[], keywords: string[] | string, topN?: number, threshold?: number): {
|
|
5
9
|
results: Record<string, any[]>;
|
|
6
10
|
indexMap: Record<string, number>;
|
|
7
11
|
};
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DomSearcher = void 0;
|
|
4
|
+
const fastest_levenshtein_1 = require("fastest-levenshtein");
|
|
4
5
|
const fast_fuzzy_1 = require("fast-fuzzy");
|
|
6
|
+
// import { logger } from "../utils/logger/logData";
|
|
5
7
|
class DomSearcher {
|
|
6
8
|
search(nodes, keywords, topN = 20, threshold = 40) {
|
|
7
9
|
if (typeof keywords === "string") {
|
|
8
10
|
keywords = keywords.replace(/[\[\]]/g, "");
|
|
9
11
|
keywords = keywords.split(",").map(k => k.trim());
|
|
10
12
|
}
|
|
11
|
-
keywords = keywords.map(k =>
|
|
13
|
+
keywords = keywords.map(k => (typeof k === "string" ? k : String(k))
|
|
14
|
+
.replace(/[^a-zA-Z0-9\s]/g, " ")
|
|
15
|
+
.trim()
|
|
16
|
+
.toLowerCase()
|
|
17
|
+
.replace(/\s+/g, ""));
|
|
12
18
|
const ffNumber = (val) => {
|
|
13
19
|
if (!val)
|
|
14
20
|
return 0;
|
|
@@ -23,7 +29,7 @@ class DomSearcher {
|
|
|
23
29
|
for (const i of [idx - 1, idx, idx + 1]) {
|
|
24
30
|
if (i >= 0 && i < total) {
|
|
25
31
|
if (nodes[i].node["FF-inspecter"]) {
|
|
26
|
-
collected.
|
|
32
|
+
collected.add(i);
|
|
27
33
|
}
|
|
28
34
|
}
|
|
29
35
|
}
|
|
@@ -35,7 +41,7 @@ class DomSearcher {
|
|
|
35
41
|
const nx = nodes[j].node["ff-xpath"];
|
|
36
42
|
if (nx && isChild(cx, nx)) {
|
|
37
43
|
if (nodes[j].node["FF-inspecter"]) {
|
|
38
|
-
collected.
|
|
44
|
+
collected.add(j);
|
|
39
45
|
}
|
|
40
46
|
break;
|
|
41
47
|
}
|
|
@@ -44,70 +50,100 @@ class DomSearcher {
|
|
|
44
50
|
const nx = nodes[j].node["ff-xpath"];
|
|
45
51
|
if (nx && isSibling(cx, nx) && j !== idx) {
|
|
46
52
|
if (nodes[j].node["FF-inspecter"]) {
|
|
47
|
-
collected.
|
|
53
|
+
collected.add(j);
|
|
48
54
|
}
|
|
49
55
|
break;
|
|
50
56
|
}
|
|
51
57
|
}
|
|
52
58
|
};
|
|
53
59
|
const results = {};
|
|
60
|
+
const tempResults = {};
|
|
61
|
+
let hasAnyMatch = false;
|
|
54
62
|
for (const kw of keywords) {
|
|
55
63
|
const exact = [];
|
|
56
64
|
const strong = [];
|
|
57
|
-
const fuzzyList = [];
|
|
58
65
|
const tagMatches = [];
|
|
59
66
|
for (let i = 0; i < nodes.length; i++) {
|
|
60
67
|
const node = nodes[i].node;
|
|
61
68
|
const searchText = (node.search || "").toLowerCase();
|
|
62
69
|
const tagName = (node.tag || "").toLowerCase();
|
|
63
|
-
|
|
64
|
-
if (searchText == kw) {
|
|
70
|
+
if (searchText === kw) {
|
|
65
71
|
exact.push(i);
|
|
66
|
-
matched = true;
|
|
67
72
|
}
|
|
68
|
-
if (searchText.includes(kw)) {
|
|
73
|
+
else if (searchText.includes(kw)) {
|
|
69
74
|
strong.push(i);
|
|
70
|
-
matched = true;
|
|
71
75
|
}
|
|
72
|
-
if (
|
|
73
|
-
const score = (0, fast_fuzzy_1.fuzzy)(kw, searchText);
|
|
74
|
-
if (score >= threshold / 100) {
|
|
75
|
-
fuzzyList.push([score * 100, i]);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (kw == tagName || tagName.includes(kw)) {
|
|
76
|
+
else if (kw === tagName || tagName.includes(kw)) {
|
|
79
77
|
tagMatches.push(i);
|
|
80
78
|
}
|
|
81
79
|
}
|
|
82
|
-
const collected =
|
|
80
|
+
const collected = new Set();
|
|
83
81
|
for (const idx of exact) {
|
|
84
82
|
addWithContext(idx, collected);
|
|
85
|
-
if (collected.
|
|
83
|
+
if (collected.size >= topN * 4)
|
|
86
84
|
break;
|
|
87
85
|
}
|
|
88
86
|
for (const idx of strong) {
|
|
89
87
|
addWithContext(idx, collected);
|
|
90
|
-
if (collected.
|
|
88
|
+
if (collected.size >= topN * 4)
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
for (const idx of tagMatches) {
|
|
92
|
+
addWithContext(idx, collected);
|
|
93
|
+
if (collected.size >= topN * 4)
|
|
91
94
|
break;
|
|
92
95
|
}
|
|
93
|
-
if (collected.
|
|
96
|
+
if (collected.size > 0) {
|
|
97
|
+
hasAnyMatch = true;
|
|
98
|
+
}
|
|
99
|
+
tempResults[kw] = Array.from(collected);
|
|
100
|
+
}
|
|
101
|
+
if (!hasAnyMatch) {
|
|
102
|
+
for (const kw of keywords) {
|
|
103
|
+
const fuzzyList = [];
|
|
104
|
+
const tokens1 = Array.from(new Set(kw.toLowerCase().split(/\s+/)));
|
|
105
|
+
for (let i = 0; i < nodes.length; i++) {
|
|
106
|
+
const node = nodes[i].node;
|
|
107
|
+
const searchText = (node.search || "").toLowerCase();
|
|
108
|
+
const tokens2 = searchText.split(/\s+/);
|
|
109
|
+
// For each kw token, find best matching token in searchText
|
|
110
|
+
const tokenScores = tokens1.map(t1 => {
|
|
111
|
+
let best = 0;
|
|
112
|
+
for (const t2 of tokens2) {
|
|
113
|
+
if (t1 === t2) {
|
|
114
|
+
best = 100;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
const sim = (1 - (0, fastest_levenshtein_1.distance)(t1, t2) / Math.max(t1.length, t2.length))
|
|
118
|
+
* 100;
|
|
119
|
+
if (sim > best)
|
|
120
|
+
best = sim;
|
|
121
|
+
}
|
|
122
|
+
return best;
|
|
123
|
+
});
|
|
124
|
+
const allMatched = tokenScores.every(s => s >= 50);
|
|
125
|
+
if (!allMatched)
|
|
126
|
+
continue;
|
|
127
|
+
const score = tokenScores.reduce((a, b) => a + b, 0) / tokenScores.length;
|
|
128
|
+
if (score >= threshold) {
|
|
129
|
+
fuzzyList.push([score, i]);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const collected = new Set();
|
|
94
133
|
fuzzyList
|
|
95
134
|
.sort((a, b) => b[0] - a[0])
|
|
96
135
|
.forEach(([_, idx]) => {
|
|
97
|
-
if (collected.
|
|
136
|
+
if (collected.size < topN * 4) {
|
|
98
137
|
addWithContext(idx, collected);
|
|
99
138
|
}
|
|
100
139
|
});
|
|
140
|
+
results[kw] = Array.from(collected).map(i => nodes[i].node);
|
|
101
141
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
for (const kw of keywords) {
|
|
145
|
+
results[kw] = tempResults[kw].map(i => nodes[i].node);
|
|
108
146
|
}
|
|
109
|
-
const uniqueIdx = Array.from(new Set(collected));
|
|
110
|
-
results[kw] = uniqueIdx.map(i => nodes[i].node);
|
|
111
147
|
}
|
|
112
148
|
const seen = new Set();
|
|
113
149
|
const unique = Object.values(results)
|
|
@@ -122,13 +158,13 @@ class DomSearcher {
|
|
|
122
158
|
unique.sort((a, b) => ffNumber(a["FF-inspecter"]) - ffNumber(b["FF-inspecter"]));
|
|
123
159
|
return unique;
|
|
124
160
|
}
|
|
125
|
-
|
|
161
|
+
searchBestAndroid(nodes, keywords, topN = 5, threshold = 40) {
|
|
126
162
|
if (typeof keywords === "string") {
|
|
127
163
|
keywords = keywords.replace(/[\[\]]/g, "")
|
|
128
164
|
.split(",")
|
|
129
165
|
.map(k => k.trim());
|
|
130
166
|
}
|
|
131
|
-
keywords = keywords.map(k => String(k).toLowerCase());
|
|
167
|
+
keywords = keywords.map(k => String(k).toLowerCase().replace(/\s+/g, ""));
|
|
132
168
|
const slim = (n) => {
|
|
133
169
|
const allowed = [
|
|
134
170
|
"tag",
|
|
@@ -157,58 +193,124 @@ class DomSearcher {
|
|
|
157
193
|
indexMap[ff] = i;
|
|
158
194
|
});
|
|
159
195
|
const results = {};
|
|
196
|
+
const tempResults = {};
|
|
197
|
+
let hasAnyMatch = false;
|
|
160
198
|
for (const kw of keywords) {
|
|
161
199
|
const exact = [];
|
|
162
200
|
const strong = [];
|
|
163
|
-
const fuzzyMatches = [];
|
|
164
201
|
for (const item of nodes) {
|
|
165
202
|
const node = item.node;
|
|
166
203
|
const text = (item.search || "").toLowerCase();
|
|
167
|
-
const t = (node["text"] || "").toLowerCase();
|
|
168
|
-
const cd = (node["content-desc"] || "").toLowerCase();
|
|
169
|
-
const rid = (node["resource-id"] || "").toLowerCase();
|
|
170
204
|
const hint = (node["hint"] || "").toLowerCase();
|
|
171
205
|
// EXACT MATCH
|
|
172
|
-
if (text === kw ||
|
|
173
|
-
t === kw ||
|
|
174
|
-
cd === kw ||
|
|
175
|
-
rid === kw ||
|
|
176
|
-
hint === kw) {
|
|
206
|
+
if (text === kw || hint === kw) {
|
|
177
207
|
exact.push(node);
|
|
178
|
-
continue;
|
|
179
208
|
}
|
|
180
|
-
// STRONG
|
|
181
|
-
if (text.includes(kw) ||
|
|
182
|
-
t.includes(kw) ||
|
|
183
|
-
cd.includes(kw) ||
|
|
184
|
-
rid.includes(kw) ||
|
|
185
|
-
hint.includes(kw)) {
|
|
209
|
+
// STRONG MATCH
|
|
210
|
+
else if (text.includes(kw) || hint.includes(kw)) {
|
|
186
211
|
strong.push(node);
|
|
187
|
-
continue;
|
|
188
|
-
}
|
|
189
|
-
// FUZZY MATCH
|
|
190
|
-
const score = (0, fast_fuzzy_1.fuzzy)(kw, text) * 100;
|
|
191
|
-
if (score >= threshold) {
|
|
192
|
-
fuzzyMatches.push([score, node]);
|
|
193
212
|
}
|
|
194
213
|
}
|
|
195
|
-
let selected;
|
|
214
|
+
let selected = [];
|
|
196
215
|
if (exact.length) {
|
|
197
216
|
selected = exact.slice(0, topN);
|
|
198
217
|
}
|
|
199
218
|
else if (strong.length) {
|
|
200
219
|
selected = strong.slice(0, topN);
|
|
201
220
|
}
|
|
202
|
-
|
|
221
|
+
if (selected.length > 0) {
|
|
222
|
+
hasAnyMatch = true;
|
|
223
|
+
}
|
|
224
|
+
tempResults[kw] = selected;
|
|
225
|
+
}
|
|
226
|
+
if (!hasAnyMatch) {
|
|
227
|
+
for (const kw of keywords) {
|
|
228
|
+
const fuzzyMatches = [];
|
|
229
|
+
for (const item of nodes) {
|
|
230
|
+
const node = item.node;
|
|
231
|
+
const text = (item.search || "").toLowerCase();
|
|
232
|
+
const score = (0, fast_fuzzy_1.fuzzy)(kw, text) * 100;
|
|
233
|
+
if (score >= threshold) {
|
|
234
|
+
fuzzyMatches.push([score, node]);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
203
237
|
fuzzyMatches.sort((a, b) => b[0] - a[0]);
|
|
204
|
-
selected = fuzzyMatches
|
|
238
|
+
const selected = fuzzyMatches
|
|
239
|
+
.slice(0, topN)
|
|
240
|
+
.map(f => f[1]);
|
|
241
|
+
results[kw] = selected.map(slim);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
for (const kw of keywords) {
|
|
246
|
+
results[kw] = tempResults[kw].map(slim);
|
|
205
247
|
}
|
|
206
|
-
results[kw] = selected.map(slim);
|
|
207
248
|
}
|
|
208
249
|
return {
|
|
209
250
|
results,
|
|
210
251
|
indexMap
|
|
211
252
|
};
|
|
212
253
|
}
|
|
254
|
+
searchBestIos(nodes, keywords, topN = 5, threshold = 40) {
|
|
255
|
+
if (typeof keywords === "string") {
|
|
256
|
+
keywords = keywords.replace(/[\[\]]/g, "")
|
|
257
|
+
.split(",")
|
|
258
|
+
.map(k => k.trim());
|
|
259
|
+
}
|
|
260
|
+
keywords = keywords.map(k => k.toLowerCase().replace(/\s+/g, ""));
|
|
261
|
+
const slim = (n) => {
|
|
262
|
+
const allowed = [
|
|
263
|
+
"tag", "FF-inspecter", "value", "name",
|
|
264
|
+
"label", "class", "pane-title",
|
|
265
|
+
"accessible", "editable", "enabled", "traits"
|
|
266
|
+
];
|
|
267
|
+
const res = {};
|
|
268
|
+
for (const k of allowed)
|
|
269
|
+
if (k in n)
|
|
270
|
+
res[k] = n[k];
|
|
271
|
+
return res;
|
|
272
|
+
};
|
|
273
|
+
const indexMap = {};
|
|
274
|
+
nodes.forEach((item, i) => {
|
|
275
|
+
const ff = item.node?.["FF-inspecter"];
|
|
276
|
+
if (ff)
|
|
277
|
+
indexMap[ff] = i;
|
|
278
|
+
});
|
|
279
|
+
const results = {};
|
|
280
|
+
for (const kw of keywords) {
|
|
281
|
+
const exact = [];
|
|
282
|
+
const strong = [];
|
|
283
|
+
const fuzzyMatches = [];
|
|
284
|
+
for (const item of nodes) {
|
|
285
|
+
const node = item.node || {};
|
|
286
|
+
const text = (item.search || "").toLowerCase();
|
|
287
|
+
const value = (node["value"] || "").toLowerCase();
|
|
288
|
+
const name = (node["name"] || "").toLowerCase();
|
|
289
|
+
const label = (node["label"] || "").toLowerCase();
|
|
290
|
+
if (text === kw || value === kw || name === kw || label === kw) {
|
|
291
|
+
exact.push(node);
|
|
292
|
+
continue;
|
|
293
|
+
}
|
|
294
|
+
if (text.includes(kw) || value.includes(kw) || name.includes(kw) || label.includes(kw)) {
|
|
295
|
+
strong.push(node);
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
const score = (0, fast_fuzzy_1.fuzzy)(kw, text) * 100;
|
|
299
|
+
if (score >= threshold)
|
|
300
|
+
fuzzyMatches.push([score, node]);
|
|
301
|
+
}
|
|
302
|
+
let selected;
|
|
303
|
+
if (exact.length)
|
|
304
|
+
selected = exact.slice(0, topN);
|
|
305
|
+
else if (strong.length)
|
|
306
|
+
selected = strong.slice(0, topN);
|
|
307
|
+
else {
|
|
308
|
+
fuzzyMatches.sort((a, b) => b[0] - a[0]);
|
|
309
|
+
selected = fuzzyMatches.slice(0, topN).map(f => f[1]);
|
|
310
|
+
}
|
|
311
|
+
results[kw] = selected.map(slim);
|
|
312
|
+
}
|
|
313
|
+
return { results, indexMap };
|
|
314
|
+
}
|
|
213
315
|
}
|
|
214
316
|
exports.DomSearcher = DomSearcher;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { FlatNode, SimplifiedDomResult } from "../core/interfaces/simplifyAndFlattenInterface.js";
|
|
1
|
+
import { FlatNode, SimplifiedDomResult, SimplifiedDomResultIos } from "../core/interfaces/simplifyAndFlattenInterface.js";
|
|
2
2
|
export declare class DomSimplifier {
|
|
3
3
|
simplify(rawDom: string): FlatNode[];
|
|
4
|
-
|
|
4
|
+
simplifyAndroidDom(rawDom: string, stepAction: string, step: string): SimplifiedDomResult;
|
|
5
|
+
simplifyIosDom(rawDom: string, driver: WebdriverIO.Browser): Promise<SimplifiedDomResultIos>;
|
|
5
6
|
}
|