ff-automationv2 2.2.31 → 2.2.32-beta.1
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/llmprompts/llmPromptTypes/systemPromptTypes.d.ts +3 -0
- package/dist/ai/llmprompts/promptRegistry.js +10 -2
- package/dist/ai/llmprompts/systemPrompts/actionExtractorPrompt.js +83 -27
- package/dist/ai/llmprompts/systemPrompts/fileVerifyActionExtractorPrompt.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/fileVerifyActionExtractorPrompt.js +45 -0
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtactors.js +35 -0
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtractor_Mob.js +5 -2
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPrompt.js +4 -2
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPromptMob.js +3 -1
- package/dist/ai/llmprompts/systemPrompts/inputContextPrompt.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/inputContextPrompt.js +54 -0
- package/dist/ai/llmprompts/systemPrompts/mobileKeywordExtractor.js +53 -8
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPrompt.js +5 -4
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPromptMob.js +1 -1
- package/dist/ai/llmprompts/userPrompts/userPrompt.js +2 -0
- package/dist/automation/actions/executor.d.ts +14 -6
- package/dist/automation/actions/executor.js +970 -251
- package/dist/automation/actions/interaction/alert/enterDataToAlert.js +3 -1
- package/dist/automation/actions/interaction/alert/getTextPresentOnAlertPopup.js +4 -0
- package/dist/automation/actions/interaction/alert/verifyAlertPopUpMessageContainsString.js +1 -1
- package/dist/automation/actions/interaction/alert/verifyAlertPopupIsDisplayed.js +1 -1
- package/dist/automation/actions/interaction/alert/verifyTextPresentOnAlertPopup.js +1 -1
- package/dist/automation/actions/interaction/clear/clearAndEnter.js +6 -3
- package/dist/automation/actions/interaction/elementlessActions/getOtp.js +25 -24
- package/dist/automation/actions/interaction/enterActions/EnterInputIntoElementFromClipBoardInterface_mob.js +3 -1
- package/dist/automation/actions/interaction/enterActions/enterInput.js +5 -2
- package/dist/automation/actions/interaction/enterActions/enterInputAndPress.js +5 -2
- package/dist/automation/actions/interaction/enterActions/enterUrl.js +5 -2
- package/dist/automation/actions/interaction/enterActions/enterusingJs.js +3 -1
- package/dist/automation/actions/interaction/enterActions/waitAndEnter.js +5 -2
- package/dist/automation/actions/interaction/files/VerifyPDF.d.ts +2 -0
- package/dist/automation/actions/interaction/files/VerifyPDF.js +122 -0
- package/dist/automation/actions/interaction/get/MOB_GetADBLogsForGivenAppPackage.js +4 -1
- package/dist/automation/actions/interaction/get/MOB_GetAllContexts.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetAllWindowHandles.d.ts +1 -1
- package/dist/automation/actions/interaction/get/MOB_GetAllWindowHandles.js +10 -6
- package/dist/automation/actions/interaction/get/MOB_GetAltitude.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetBatteryPercentage.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetBatteryStatus.d.ts +1 -1
- package/dist/automation/actions/interaction/get/MOB_GetBatteryStatus.js +7 -3
- package/dist/automation/actions/interaction/get/MOB_GetClipBoardText.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentActivity.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentAppPackage.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentContext.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceDate.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSettings.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceStatus.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSystemBars.js +5 -2
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentOrientation.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentSessionId.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceLocation.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceName.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceOsVersion.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceUdid.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetHeightOfElement.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetHeightOfScreen.js +4 -0
- package/dist/automation/actions/interaction/get/MOB_GetHourFromCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetLatitude.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetLongitude.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetMinuteFromCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetSecondFromCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetSizeOfScreen.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetSupportedPerformanceDataTypes.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetTextFromElementAndSetToClipBoard.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetWidthOfElement.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetWidthOfScreen.js +5 -1
- package/dist/automation/actions/interaction/get/browserWindowGetPosition.js +5 -0
- package/dist/automation/actions/interaction/get/getAllBrokenImages.js +9 -0
- package/dist/automation/actions/interaction/get/getAllBrokenLinkCount.js +9 -0
- package/dist/automation/actions/interaction/get/getAllBrokenLinks.js +10 -1
- package/dist/automation/actions/interaction/get/getAllConsoleErrors.js +11 -0
- package/dist/automation/actions/interaction/get/getAllConsoleInformation.js +12 -1
- package/dist/automation/actions/interaction/get/getAllConsoleLogs.js +11 -1
- package/dist/automation/actions/interaction/get/getAllConsoleWarnings.js +12 -1
- package/dist/automation/actions/interaction/get/getAllCookieNames.js +6 -1
- package/dist/automation/actions/interaction/get/getAllCookieValues.js +6 -1
- package/dist/automation/actions/interaction/get/getAllSelectedOptions.js +8 -1
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsText.js +4 -1
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsTextInSortedOrder.js +4 -1
- package/dist/automation/actions/interaction/get/getAllTheSelectedOptionsFromListBoxAsText.js +4 -1
- package/dist/automation/actions/interaction/get/getAllWindowHandles.js +5 -1
- package/dist/automation/actions/interaction/get/getAttribute.js +19 -14
- package/dist/automation/actions/interaction/get/getAudioCurrentPlaybackRate.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioCurrentSeekTime.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioCurrentVolume.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioDecodedByte.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioDefaultPlaybackRate.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioMediaLength.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioMediaSource.js +4 -1
- package/dist/automation/actions/interaction/get/getBestPracticesScore.js +11 -3
- package/dist/automation/actions/interaction/get/getBrowserCount.js +5 -0
- package/dist/automation/actions/interaction/get/getBrowserVersion.js +5 -0
- package/dist/automation/actions/interaction/get/getCapabilityNames.js +5 -0
- package/dist/automation/actions/interaction/get/getClipBoardText.js +13 -0
- package/dist/automation/actions/interaction/get/getCollectiveApiResponseTime.js +4 -1
- package/dist/automation/actions/interaction/get/getCollectiveApiStatusCode.js +4 -1
- package/dist/automation/actions/interaction/get/getCssValue.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentDayOfTheWeek.js +4 -0
- package/dist/automation/actions/interaction/get/getCurrentSecondsFromCurrentSystemTime.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemDate.js +4 -0
- package/dist/automation/actions/interaction/get/getCurrentSystemDay.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemMonth.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemTime.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemYear.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentWindowHandle.js +13 -26
- 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 +13 -16
- package/dist/automation/actions/interaction/get/getDriverInstance.js +13 -28
- package/dist/automation/actions/interaction/get/getFirstContentfulPaint.js +8 -1
- package/dist/automation/actions/interaction/get/getFirstSelectedOption.js +5 -1
- package/dist/automation/actions/interaction/get/getFullPaintTime.js +8 -1
- package/dist/automation/actions/interaction/get/getHTMLCodeOfPage.js +4 -0
- package/dist/automation/actions/interaction/get/getHeightOfBrowserWindow.js +5 -0
- package/dist/automation/actions/interaction/get/getHeightOfWebElement.js +4 -1
- package/dist/automation/actions/interaction/get/getHourFromCurrentSystemTime.js +4 -0
- package/dist/automation/actions/interaction/get/getImplicitTimeOut.js +15 -28
- package/dist/automation/actions/interaction/get/getLargestContentfulPaint.js +7 -0
- package/dist/automation/actions/interaction/get/getListBoxSize.d.ts +1 -1
- package/dist/automation/actions/interaction/get/getListBoxSize.js +4 -2
- package/dist/automation/actions/interaction/get/getListOfElementsFromLocatorTypeLocatorValue.js +7 -2
- package/dist/automation/actions/interaction/get/getLocation.js +14 -8
- package/dist/automation/actions/interaction/get/getMinuteFromCurrentSystemTime.js +4 -0
- package/dist/automation/actions/interaction/get/getNetworkRouteTime.js +7 -0
- package/dist/automation/actions/interaction/get/getNumberOfBrokenImages.js +7 -0
- package/dist/automation/actions/interaction/get/getNumberOfLinksPresentInCurrentPage.js +5 -0
- package/dist/automation/actions/interaction/get/getNumberOfWorkingLinksFromCurrentPage.js +9 -0
- package/dist/automation/actions/interaction/get/getOptions.js +4 -1
- package/dist/automation/actions/interaction/get/getPageTitle.js +5 -1
- package/dist/automation/actions/interaction/get/getPerformanceMetrics.js +12 -1
- package/dist/automation/actions/interaction/get/getPwaScore.js +11 -3
- package/dist/automation/actions/interaction/get/getRect.js +9 -2
- package/dist/automation/actions/interaction/get/getScreenshot.js +13 -28
- package/dist/automation/actions/interaction/get/getScreenshotAs.js +14 -44
- package/dist/automation/actions/interaction/get/getSeoScore.js +15 -3
- package/dist/automation/actions/interaction/get/getSingleApiRequestPayload.js +5 -3
- package/dist/automation/actions/interaction/get/getSingleApiResponse.js +9 -8
- package/dist/automation/actions/interaction/get/getSingleApiResponseTime.js +9 -9
- package/dist/automation/actions/interaction/get/getSingleApiStatusCode.d.ts +1 -1
- package/dist/automation/actions/interaction/get/getSingleApiStatusCode.js +10 -17
- package/dist/automation/actions/interaction/get/getSize.js +7 -2
- package/dist/automation/actions/interaction/get/getSizeOfBrowserWindow.js +5 -4
- package/dist/automation/actions/interaction/get/getStringDataFromLocalFile.js +10 -7
- package/dist/automation/actions/interaction/get/getSystemProperty.js +6 -4
- package/dist/automation/actions/interaction/get/getTagName.js +9 -2
- package/dist/automation/actions/interaction/get/getText.js +7 -2
- package/dist/automation/actions/interaction/get/getTheFirstSelectedOptionFromListBoxAsText.js +5 -1
- package/dist/automation/actions/interaction/get/getTotalNumberOfCookies.js +6 -1
- package/dist/automation/actions/interaction/get/getTunnelIdentifier.js +5 -8
- package/dist/automation/actions/interaction/get/getURLPresentInAddressBar.js +5 -1
- package/dist/automation/actions/interaction/get/getUserHomeDirectory.js +9 -1
- package/dist/automation/actions/interaction/get/getValueByCookieName.js +7 -4
- package/dist/automation/actions/interaction/get/getValueFromLocalStorage.js +6 -4
- package/dist/automation/actions/interaction/get/getValueOfSystemVariable.js +6 -4
- package/dist/automation/actions/interaction/get/getVideoCurrentPlaybackRate.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoCurrentSeekTime.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoCurrentVolume.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoDecodedByte.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoDefaultPlaybackRate.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoMediaLength.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoMediaSource.js +5 -1
- package/dist/automation/actions/interaction/get/getWidthOfBrowser.js +6 -1
- package/dist/automation/actions/interaction/get/getWidthOfWebElement.js +4 -1
- package/dist/automation/actions/interaction/get/getWorkingLinksFromCurrentPage.js +10 -1
- package/dist/automation/actions/interaction/get/getWrappedElement.js +5 -1
- package/dist/automation/actions/interaction/get/getWrappedOptionFromListBoxAsText.d.ts +1 -1
- package/dist/automation/actions/interaction/get/getWrappedOptionFromListBoxAsText.js +4 -2
- package/dist/automation/actions/interaction/get/getXLocationOfBrowserWindow.js +4 -3
- package/dist/automation/actions/interaction/get/getXLocationOfWebElement.js +7 -2
- package/dist/automation/actions/interaction/get/getYLocationOfBrowserWindow.js +6 -1
- package/dist/automation/actions/interaction/get/getYLocationOfWebElement.js +7 -2
- package/dist/automation/actions/interaction/shadowDom/shadowDomEnter.js +2 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomGetText.js +5 -2
- package/dist/automation/actions/interaction/verify/MOB_VerifyBatteryLevel.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyAttributeValue.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyBrowserHtmlCodeContainsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowHeight.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleContainsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleIsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlContainsExpectedUrl.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlIsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowWidth.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowXLocation.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowYLocation.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyCssAttributeValue.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyElementNotContainsText.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyHeightOfWebElement.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyHexCodeForGivenXYCoordinates.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfAllCookiesAreDeleted.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsAdded.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsDeleted.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfCookieObjectIsPresent.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfGivenOptionIsDuplicate.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfImageIsBroken.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsBroken.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsWorking.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreBroken.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreWorking.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithTextIsDeselected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsDeselected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsSelected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithVisibleTextIsSelected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfSpecifiedOptionIsSelected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyNavigateURL.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyPartialAttributeValue.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyPartialTitleOfCurrentPage.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyTagName.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyThatSpecifiedOptionIsNotSelected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyTitleInAllPage.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyTitleOfCurrentPage.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementContainsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyWidthOfElement.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyXLocationOfElement.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyYLocationOfElement.js +2 -2
- package/dist/automation/actions/interaction/verify/checkIfElementIsDisplayed.js +2 -2
- package/dist/automation/actions/interaction/verify/verifypartialtext.js +2 -2
- package/dist/automation/actions/interaction/verify/verifytext.js +2 -2
- package/dist/automation/actions/interface/FireFlinkResponseSchema.d.ts +39 -1
- package/dist/automation/actions/interface/FireFlinkResponseSchema.js +37 -3
- package/dist/automation/actions/interface/alertActionInterface.d.ts +11 -0
- package/dist/automation/actions/interface/clearActionInterface.d.ts +4 -0
- package/dist/automation/actions/interface/getActionInterface.d.ts +150 -141
- package/dist/automation/actions/interface/getOtpInterface.d.ts +5 -0
- package/dist/automation/actions/interface/interactionActionInterface.d.ts +14 -7
- package/dist/automation/actions/interface/shadowDomInterface.d.ts +10 -0
- package/dist/automation/actions/interface/verifyActionInterface.d.ts +102 -0
- package/dist/core/Errors/InvalidFileTypeError.d.ts +5 -0
- package/dist/core/Errors/InvalidFileTypeError.js +14 -0
- package/dist/core/constants/supportedActions.js +5 -0
- package/dist/core/helpers/elementSelectorResolver.d.ts +11 -0
- package/dist/core/helpers/elementSelectorResolver.js +102 -0
- package/dist/core/helpers/runnerDomPipeline.d.ts +9 -0
- package/dist/core/helpers/runnerDomPipeline.js +97 -0
- package/dist/core/helpers/runnerKafkaReporter.d.ts +17 -0
- package/dist/core/helpers/runnerKafkaReporter.js +71 -0
- package/dist/core/helpers/runnerPostActionHelper.d.ts +2 -0
- package/dist/core/helpers/runnerPostActionHelper.js +30 -0
- package/dist/core/helpers/stepActionInspector.d.ts +5 -0
- package/dist/core/helpers/stepActionInspector.js +113 -0
- package/dist/core/helpers/visionFallbackHandler.d.ts +3 -0
- package/dist/core/helpers/visionFallbackHandler.js +138 -0
- package/dist/core/interfaces/actionInterface.d.ts +7 -5
- package/dist/core/interfaces/automationRunnerInterface.d.ts +56 -1
- package/dist/core/interfaces/fireflinkScriptPayloadInterface.d.ts +2 -0
- package/dist/core/interfaces/llmResponseInterface.d.ts +5 -0
- package/dist/core/interfaces/promptInterface.d.ts +9 -2
- package/dist/core/interfaces/scriptGenrationDataInterface.d.ts +4 -0
- package/dist/core/main/actionHandlerFactory.js +48 -7
- package/dist/core/main/executionContext.d.ts +2 -1
- package/dist/core/main/executionContext.js +3 -2
- package/dist/core/main/runAutomationScript.d.ts +1 -0
- package/dist/core/main/runAutomationScript.js +392 -1008
- package/dist/core/types/llmResponseType.d.ts +2 -2
- package/dist/core/types/promptType.d.ts +3 -1
- package/dist/core/types/promptType.js +2 -0
- package/dist/fireflinkData/fireflinkScript/appendScriptData.js +3 -0
- package/dist/utils/browserCap/capability.js +11 -0
- package/dist/utils/browserCap/systemCapabilities.d.ts +6 -0
- package/dist/utils/browserCap/systemCapabilities.js +25 -0
- package/dist/utils/downloadWatcher/pdfDownloadWatcher.d.ts +8 -0
- package/dist/utils/downloadWatcher/pdfDownloadWatcher.js +61 -0
- package/dist/utils/helpers/getHelper.d.ts +8 -0
- package/dist/utils/helpers/getHelper.js +115 -0
- package/dist/utils/helpers/platformSyntax.d.ts +1 -1
- package/dist/utils/logger/logData.d.ts +2 -0
- package/dist/utils/logger/logData.js +4 -1
- package/dist/utils/textExtractor/pdfTextExtractor.d.ts +2 -0
- package/dist/utils/textExtractor/pdfTextExtractor.js +35 -0
- package/package.json +2 -1
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPrompt.d.ts +0 -2
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPrompt.js +0 -36
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.enterDataToAlert = enterDataToAlert;
|
|
4
4
|
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
5
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
5
6
|
async function enterDataToAlert(args) {
|
|
6
7
|
try {
|
|
7
8
|
await args.driver.sendAlertText(args.value);
|
|
8
9
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
9
10
|
scriptDataAppender: args.scriptDataAppender,
|
|
10
11
|
nlpName: "EnterDataToAlert",
|
|
11
|
-
stepInputs: [args.value],
|
|
12
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : args.value],
|
|
12
13
|
});
|
|
14
|
+
(0, getHelper_js_1.saveStepInputData)(args, args.value);
|
|
13
15
|
}
|
|
14
16
|
catch (error) {
|
|
15
17
|
args.scriptDataAppender.setErrorNLP("EnterDataToAlert");
|
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getTextPresentOnAlertPopup = getTextPresentOnAlertPopup;
|
|
4
4
|
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
5
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
5
6
|
async function getTextPresentOnAlertPopup(args) {
|
|
6
7
|
try {
|
|
8
|
+
const text = await args.driver.getAlertText();
|
|
7
9
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
8
10
|
scriptDataAppender: args.scriptDataAppender,
|
|
9
11
|
nlpName: "GetTextPresentOnAlertPopup",
|
|
12
|
+
returnTypeVariableName: args.returnTypeVariableName
|
|
10
13
|
});
|
|
14
|
+
(0, getHelper_js_1.saveStepInputData)(args, text);
|
|
11
15
|
}
|
|
12
16
|
catch (error) {
|
|
13
17
|
args.scriptDataAppender.setErrorNLP("GetTextPresentOnAlertPopup");
|
|
@@ -9,7 +9,7 @@ async function verifyAlertPopUpMessageContainsString(args) {
|
|
|
9
9
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
10
10
|
scriptDataAppender: args.scriptDataAppender,
|
|
11
11
|
nlpName: "VerifyAlertPopUpMessageContainsString",
|
|
12
|
-
stepInputs: [args.value]
|
|
12
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : args.value]
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
@@ -12,7 +12,7 @@ async function verifyAlertPopupIsDisplayed(args) {
|
|
|
12
12
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
13
13
|
scriptDataAppender: args.scriptDataAppender,
|
|
14
14
|
nlpName: "VerifyAlertPopupIsDisplayed",
|
|
15
|
-
stepInputs: [value]
|
|
15
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : value]
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
catch (error) {
|
|
@@ -9,7 +9,7 @@ async function verifyTextPresentOnAlertPopup(args) {
|
|
|
9
9
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
10
10
|
scriptDataAppender: args.scriptDataAppender,
|
|
11
11
|
nlpName: "VerifyTextPresentOnAlertPopup",
|
|
12
|
-
stepInputs: [args.value]
|
|
12
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : args.value]
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.clearAndEnter = clearAndEnter;
|
|
4
4
|
const enterActionHelper_js_1 = require("../../../../utils/helpers/enterActionHelper.js");
|
|
5
5
|
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
6
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
6
7
|
async function clearAndEnter(args) {
|
|
7
8
|
const nlpName = args.platform === "ios" ? "IOS_ClearThenEnterInput" : "MOB_ClearThenEnterInput";
|
|
8
9
|
switch (args.platform) {
|
|
@@ -17,7 +18,7 @@ async function clearAndEnter(args) {
|
|
|
17
18
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
18
19
|
scriptDataAppender: args.scriptDataAppender,
|
|
19
20
|
nlpName: nlpName,
|
|
20
|
-
stepInputs: [],
|
|
21
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : args.value],
|
|
21
22
|
pageDOM: args.pageDOM,
|
|
22
23
|
elementGetter: args.elementGetter,
|
|
23
24
|
ffNumber: ffElementNumber,
|
|
@@ -26,6 +27,7 @@ async function clearAndEnter(args) {
|
|
|
26
27
|
selector: args.selector,
|
|
27
28
|
platform: args.platform
|
|
28
29
|
});
|
|
30
|
+
(0, getHelper_js_1.saveStepInputData)(args, args.value);
|
|
29
31
|
}
|
|
30
32
|
catch (error) {
|
|
31
33
|
args.scriptDataAppender.setErrorNLP(nlpName);
|
|
@@ -42,8 +44,8 @@ async function clearAndEnter(args) {
|
|
|
42
44
|
const ffElementNumber = `Fire-Flink-${ffNumber}`;
|
|
43
45
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
44
46
|
scriptDataAppender: args.scriptDataAppender,
|
|
45
|
-
nlpName:
|
|
46
|
-
stepInputs: [],
|
|
47
|
+
nlpName: "ClearThenEnterInput",
|
|
48
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : args.value],
|
|
47
49
|
pageDOM: args.pageDOM,
|
|
48
50
|
elementGetter: args.elementGetter,
|
|
49
51
|
ffNumber: ffElementNumber,
|
|
@@ -52,6 +54,7 @@ async function clearAndEnter(args) {
|
|
|
52
54
|
selector: xpathPath,
|
|
53
55
|
platform: args.platform
|
|
54
56
|
});
|
|
57
|
+
(0, getHelper_js_1.saveStepInputData)(args, args.value);
|
|
55
58
|
}
|
|
56
59
|
catch (error) {
|
|
57
60
|
args.scriptDataAppender.setErrorNLP("ClearThenEnterInput");
|
|
@@ -4,17 +4,18 @@ exports.GetOtpAction = GetOtpAction;
|
|
|
4
4
|
const logData_js_1 = require("../../../../utils/logger/logData.js");
|
|
5
5
|
const child_process_1 = require("child_process");
|
|
6
6
|
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
7
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
7
8
|
async function GetOtpAction(args) {
|
|
8
9
|
try {
|
|
9
|
-
const udid = args.driver.capabilities["appium:udid"] || args.driver.capabilities.udid;
|
|
10
|
-
const cmdPrefix =
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
// const udid = (args.driver.capabilities as any)["appium:udid"] || (args.driver.capabilities as any).udid;
|
|
11
|
+
const cmdPrefix = `${args.adbPath} shell`;
|
|
12
|
+
const timeFrom = Number(args.timeFrom) || 60;
|
|
13
|
+
const waitTime = Number(args.waitTime) || 60;
|
|
13
14
|
const packageName = (0, child_process_1.execSync)(`${cmdPrefix} cmd role get-role-holders android.app.role.SMS`.trim(), { encoding: "utf8" });
|
|
14
15
|
logData_js_1.logger.info("the default app is ", packageName);
|
|
15
16
|
const expectedHeader = args.selector.trim().toLowerCase();
|
|
16
17
|
const getLatestMatchingSms = () => {
|
|
17
|
-
const inboxSms = (0, child_process_1.execSync)(`${cmdPrefix} "content query --uri content://sms/inbox --projection _id:date:address:body --sort 'date DESC'"`, { encoding: "utf8" }).trim();
|
|
18
|
+
const inboxSms = (0, child_process_1.execSync)(`${cmdPrefix} "content query --uri content://sms/inbox --projection _id:date:address:body --sort 'date DESC' | head -n 100"`, { encoding: "utf8" }).trim();
|
|
18
19
|
const messages = [...inboxSms.matchAll(/(?:^|\r?\n)Row:\s*\d+\s+_id=(\d+),\s*date=(\d+),\s*address=(.*?),\s*body=(.*?)(?=\r?\nRow:|$)/gs)]
|
|
19
20
|
.map((match) => ({
|
|
20
21
|
id: match[1],
|
|
@@ -26,14 +27,16 @@ async function GetOtpAction(args) {
|
|
|
26
27
|
};
|
|
27
28
|
const existingSms = getLatestMatchingSms();
|
|
28
29
|
const now = Date.now();
|
|
29
|
-
if (existingSms && now - existingSms.date <= (
|
|
30
|
+
if (existingSms && now - existingSms.date <= (timeFrom * 1000)) {
|
|
30
31
|
const smsBody = existingSms.body;
|
|
31
32
|
logData_js_1.logger.info("SMS body:", smsBody);
|
|
32
33
|
let regex;
|
|
34
|
+
let otpValue;
|
|
33
35
|
if (args.otpExtractor) {
|
|
34
36
|
const otpResult = await args.otpExtractor(smsBody);
|
|
35
37
|
if (otpResult?.otp && otpResult.regex) {
|
|
36
38
|
regex = otpResult.regex;
|
|
39
|
+
otpValue = otpResult.otp;
|
|
37
40
|
logData_js_1.logger.info("Extracted OTP:", otpResult.otp, "Generated Regex:", otpResult.regex);
|
|
38
41
|
}
|
|
39
42
|
else {
|
|
@@ -43,21 +46,21 @@ async function GetOtpAction(args) {
|
|
|
43
46
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
44
47
|
scriptDataAppender: args.scriptDataAppender,
|
|
45
48
|
nlpName: "MOB_FetchOtpFromMessages",
|
|
46
|
-
stepInputs: [existingSms.address,
|
|
47
|
-
platform:
|
|
48
|
-
|
|
49
|
-
(0, appendScriptData_js_1.appendScriptData)({
|
|
50
|
-
scriptDataAppender: args.scriptDataAppender,
|
|
51
|
-
nlpName: "StringSubStringUsingRegex",
|
|
52
|
-
stepInputs: [smsBody, regex],
|
|
53
|
-
platform: args.platform
|
|
49
|
+
stepInputs: [existingSms.address, timeFrom + "s", waitTime],
|
|
50
|
+
platform: "android",
|
|
51
|
+
returnTypeVariableName: args.returnTypeVariableName
|
|
54
52
|
});
|
|
53
|
+
(0, getHelper_js_1.saveStepInputData)(args, otpValue || smsBody);
|
|
55
54
|
return;
|
|
56
55
|
}
|
|
57
56
|
const baselineId = existingSms?.id;
|
|
58
57
|
const pollingStartedAt = now;
|
|
59
|
-
const pollingDeadline = pollingStartedAt + (
|
|
58
|
+
const pollingDeadline = pollingStartedAt + (waitTime * 1000);
|
|
60
59
|
while (Date.now() < pollingDeadline) {
|
|
60
|
+
if (args.isTerminated?.()) {
|
|
61
|
+
logData_js_1.logger.info("OTP polling aborted because session was terminated.");
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
61
64
|
const latestSms = getLatestMatchingSms();
|
|
62
65
|
if (latestSms &&
|
|
63
66
|
latestSms.id !== baselineId &&
|
|
@@ -65,11 +68,13 @@ async function GetOtpAction(args) {
|
|
|
65
68
|
const smsBody = latestSms.body;
|
|
66
69
|
logData_js_1.logger.info("SMS body:", smsBody);
|
|
67
70
|
let regex;
|
|
71
|
+
let otpValue;
|
|
68
72
|
if (args.otpExtractor) {
|
|
69
73
|
const otpResult = await args.otpExtractor(smsBody);
|
|
70
74
|
if (otpResult?.otp && otpResult.regex) {
|
|
71
75
|
regex = otpResult.regex;
|
|
72
76
|
regex = regex.replace(/\\+/g, "\\");
|
|
77
|
+
otpValue = otpResult.otp;
|
|
73
78
|
logData_js_1.logger.info("Extracted OTP:", otpResult.otp, "Generated Regex:", otpResult.regex);
|
|
74
79
|
}
|
|
75
80
|
else {
|
|
@@ -79,20 +84,16 @@ async function GetOtpAction(args) {
|
|
|
79
84
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
80
85
|
scriptDataAppender: args.scriptDataAppender,
|
|
81
86
|
nlpName: "MOB_FetchOtpFromMessages",
|
|
82
|
-
stepInputs: [latestSms.address,
|
|
83
|
-
platform:
|
|
84
|
-
|
|
85
|
-
(0, appendScriptData_js_1.appendScriptData)({
|
|
86
|
-
scriptDataAppender: args.scriptDataAppender,
|
|
87
|
-
nlpName: "StringSubStringUsingRegex",
|
|
88
|
-
stepInputs: [smsBody, regex],
|
|
89
|
-
platform: args.platform
|
|
87
|
+
stepInputs: [latestSms.address, timeFrom + "s", waitTime],
|
|
88
|
+
platform: "android",
|
|
89
|
+
returnTypeVariableName: args.returnTypeVariableName
|
|
90
90
|
});
|
|
91
|
+
(0, getHelper_js_1.saveStepInputData)(args, otpValue || smsBody);
|
|
91
92
|
return;
|
|
92
93
|
}
|
|
93
94
|
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
94
95
|
}
|
|
95
|
-
throw new Error(`Timed out waiting up to
|
|
96
|
+
throw new Error(`Timed out waiting up to ${waitTime} seconds for an SMS with header: ${args.selector}`);
|
|
96
97
|
}
|
|
97
98
|
catch (error) {
|
|
98
99
|
args.scriptDataAppender.setErrorNLP("getOtp");
|
|
@@ -4,6 +4,7 @@ exports.MOB_EnterInputIntoElementFromClipBoard = MOB_EnterInputIntoElementFromCl
|
|
|
4
4
|
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
5
5
|
const enterActionHelper_js_1 = require("../../../../utils/helpers/enterActionHelper.js");
|
|
6
6
|
const logData_js_1 = require("../../../../utils/logger/logData.js");
|
|
7
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
7
8
|
async function MOB_EnterInputIntoElementFromClipBoard(args) {
|
|
8
9
|
try {
|
|
9
10
|
const { ffNumber, xpathPath } = (0, enterActionHelper_js_1.enterActionHelperMob)(args.pageDOM, args.fireflinkIndex);
|
|
@@ -16,7 +17,7 @@ async function MOB_EnterInputIntoElementFromClipBoard(args) {
|
|
|
16
17
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
17
18
|
scriptDataAppender: args.scriptDataAppender,
|
|
18
19
|
nlpName: "MOB_EnterInputIntoElementFromClipBoard",
|
|
19
|
-
stepInputs: [],
|
|
20
|
+
stepInputs: [value],
|
|
20
21
|
pageDOM: args.pageDOM,
|
|
21
22
|
elementGetter: args.elementGetter,
|
|
22
23
|
ffNumber: ffElementNumber,
|
|
@@ -25,6 +26,7 @@ async function MOB_EnterInputIntoElementFromClipBoard(args) {
|
|
|
25
26
|
selector: args.selector,
|
|
26
27
|
platform: args.platform
|
|
27
28
|
});
|
|
29
|
+
(0, getHelper_js_1.saveStepInputData)(args, value);
|
|
28
30
|
}
|
|
29
31
|
catch (error) {
|
|
30
32
|
args.scriptDataAppender.setErrorNLP("MOB_EnterInputIntoElementFromClipBoard");
|
|
@@ -37,6 +37,7 @@ exports.enterInput = enterInput;
|
|
|
37
37
|
const enterActionHelper_js_1 = require("../../../../utils/helpers/enterActionHelper.js");
|
|
38
38
|
const logData_js_1 = require("../../../../utils/logger/logData.js");
|
|
39
39
|
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
40
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
40
41
|
async function enterInput(args) {
|
|
41
42
|
const nlpName = args.platform === "ios" ? "IOS_SendKeys" : "MOB_SendKeys";
|
|
42
43
|
switch (args.platform) {
|
|
@@ -69,7 +70,7 @@ async function enterInput(args) {
|
|
|
69
70
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
70
71
|
scriptDataAppender: args.scriptDataAppender,
|
|
71
72
|
nlpName: nlpName,
|
|
72
|
-
stepInputs: [args.value],
|
|
73
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : args.value],
|
|
73
74
|
pageDOM: args.pageDOM,
|
|
74
75
|
elementGetter: args.elementGetter,
|
|
75
76
|
ffNumber: ffElementNumber,
|
|
@@ -78,6 +79,7 @@ async function enterInput(args) {
|
|
|
78
79
|
selector: args.selector,
|
|
79
80
|
platform: args.platform
|
|
80
81
|
});
|
|
82
|
+
(0, getHelper_js_1.saveStepInputData)(args, args.value);
|
|
81
83
|
}
|
|
82
84
|
catch (error) {
|
|
83
85
|
args.scriptDataAppender.setErrorNLP(nlpName);
|
|
@@ -100,7 +102,7 @@ async function enterInput(args) {
|
|
|
100
102
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
101
103
|
scriptDataAppender: args.scriptDataAppender,
|
|
102
104
|
nlpName: 'SendKeys',
|
|
103
|
-
stepInputs: [args.value],
|
|
105
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : args.value],
|
|
104
106
|
pageDOM: args.pageDOM,
|
|
105
107
|
elementGetter: args.elementGetter,
|
|
106
108
|
ffNumber: ffElementNumber,
|
|
@@ -109,6 +111,7 @@ async function enterInput(args) {
|
|
|
109
111
|
selector: xpathPath,
|
|
110
112
|
platform: args.platform
|
|
111
113
|
});
|
|
114
|
+
(0, getHelper_js_1.saveStepInputData)(args, args.value);
|
|
112
115
|
}
|
|
113
116
|
catch (error) {
|
|
114
117
|
args.scriptDataAppender.setErrorNLP("SendKeys");
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.enterInputAndPress = enterInputAndPress;
|
|
4
4
|
const enterActionHelper_js_1 = require("../../../../utils/helpers/enterActionHelper.js");
|
|
5
5
|
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
6
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
6
7
|
async function enterInputAndPress(args) {
|
|
7
8
|
switch (args.platform) {
|
|
8
9
|
case "android":
|
|
@@ -44,7 +45,7 @@ async function enterInputAndPress(args) {
|
|
|
44
45
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
45
46
|
scriptDataAppender: args.scriptDataAppender,
|
|
46
47
|
nlpName: "MOB_EnterDataAndPressKey",
|
|
47
|
-
stepInputs: [inputValue, keyValue],
|
|
48
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : inputValue, keyValue],
|
|
48
49
|
pageDOM: args.pageDOM,
|
|
49
50
|
elementGetter: args.elementGetter,
|
|
50
51
|
ffNumber: ffElementNumber,
|
|
@@ -53,6 +54,7 @@ async function enterInputAndPress(args) {
|
|
|
53
54
|
selector: args.selector,
|
|
54
55
|
platform: args.platform
|
|
55
56
|
});
|
|
57
|
+
(0, getHelper_js_1.saveStepInputData)(args, inputValue || args.value);
|
|
56
58
|
}
|
|
57
59
|
catch (error) {
|
|
58
60
|
args.scriptDataAppender.setErrorNLP("MOB_EnterDataAndPressKey");
|
|
@@ -98,7 +100,7 @@ async function enterInputAndPress(args) {
|
|
|
98
100
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
99
101
|
scriptDataAppender: args.scriptDataAppender,
|
|
100
102
|
nlpName: "EnterDataAndPressKey",
|
|
101
|
-
stepInputs: [inputValue, keyValue],
|
|
103
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : inputValue, keyValue],
|
|
102
104
|
pageDOM: args.pageDOM,
|
|
103
105
|
elementGetter: args.elementGetter,
|
|
104
106
|
ffNumber: ffElementNumber,
|
|
@@ -107,6 +109,7 @@ async function enterInputAndPress(args) {
|
|
|
107
109
|
selector: xpathPath,
|
|
108
110
|
platform: args.platform
|
|
109
111
|
});
|
|
112
|
+
(0, getHelper_js_1.saveStepInputData)(args, inputValue || args.value);
|
|
110
113
|
}
|
|
111
114
|
catch (error) {
|
|
112
115
|
args.scriptDataAppender.setErrorNLP("EnterDataAndPressKey");
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.enterUrl = enterUrl;
|
|
4
4
|
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
5
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
5
6
|
async function enterUrl(args) {
|
|
6
7
|
const nlpName = args.platform === "ios" ? "IOS_EnterUrl" : "MOB_EnterUrl";
|
|
7
8
|
switch (args.platform) {
|
|
@@ -21,8 +22,9 @@ async function enterUrl(args) {
|
|
|
21
22
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
22
23
|
scriptDataAppender: args.scriptDataAppender,
|
|
23
24
|
nlpName: nlpName,
|
|
24
|
-
stepInputs: [args.value],
|
|
25
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : args.value],
|
|
25
26
|
});
|
|
27
|
+
(0, getHelper_js_1.saveStepInputData)(args, args.value);
|
|
26
28
|
}
|
|
27
29
|
catch (error) {
|
|
28
30
|
args.scriptDataAppender.setErrorNLP(nlpName);
|
|
@@ -36,8 +38,9 @@ async function enterUrl(args) {
|
|
|
36
38
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
37
39
|
scriptDataAppender: args.scriptDataAppender,
|
|
38
40
|
nlpName: 'EnterURL',
|
|
39
|
-
stepInputs: [args.value],
|
|
41
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : args.value],
|
|
40
42
|
});
|
|
43
|
+
(0, getHelper_js_1.saveStepInputData)(args, args.value);
|
|
41
44
|
}
|
|
42
45
|
catch (error) {
|
|
43
46
|
args.scriptDataAppender.setErrorNLP("EnterURL");
|
|
@@ -4,6 +4,7 @@ exports.enterInputUsingJs = enterInputUsingJs;
|
|
|
4
4
|
const enterActionHelper_js_1 = require("../../../../utils/helpers/enterActionHelper.js");
|
|
5
5
|
const logData_js_1 = require("../../../../utils/logger/logData.js");
|
|
6
6
|
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
7
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
7
8
|
async function enterInputUsingJs(args) {
|
|
8
9
|
try {
|
|
9
10
|
const { ffNumber, xpathPath } = (0, enterActionHelper_js_1.enterActionHelper)(args.pageDOM, args.fireflinkIndex);
|
|
@@ -20,7 +21,7 @@ async function enterInputUsingJs(args) {
|
|
|
20
21
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
21
22
|
scriptDataAppender: args.scriptDataAppender,
|
|
22
23
|
nlpName: "EnterDataAndPressKey",
|
|
23
|
-
stepInputs: [args.value],
|
|
24
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : args.value],
|
|
24
25
|
pageDOM: args.pageDOM,
|
|
25
26
|
elementGetter: args.elementGetter,
|
|
26
27
|
ffNumber: ffElementNumber,
|
|
@@ -29,6 +30,7 @@ async function enterInputUsingJs(args) {
|
|
|
29
30
|
selector: xpathPath,
|
|
30
31
|
platform: args.platform
|
|
31
32
|
});
|
|
33
|
+
(0, getHelper_js_1.saveStepInputData)(args, args.value);
|
|
32
34
|
}
|
|
33
35
|
catch (error) {
|
|
34
36
|
args.scriptDataAppender.setErrorNLP("EnterInputUsingJS");
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.waitAndEnter = waitAndEnter;
|
|
4
4
|
const enterActionHelper_js_1 = require("../../../../utils/helpers/enterActionHelper.js");
|
|
5
5
|
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
6
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
6
7
|
async function waitAndEnter(args) {
|
|
7
8
|
const DEFAULT_WAIT = 5;
|
|
8
9
|
const parseValue = (value) => {
|
|
@@ -28,7 +29,7 @@ async function waitAndEnter(args) {
|
|
|
28
29
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
29
30
|
scriptDataAppender: args.scriptDataAppender,
|
|
30
31
|
nlpName: "MOB_WaitAndSendKeys",
|
|
31
|
-
stepInputs: [inputValue, waitTimeSeconds.toString()],
|
|
32
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : inputValue, waitTimeSeconds.toString()],
|
|
32
33
|
pageDOM: args.pageDOM,
|
|
33
34
|
elementGetter: args.elementGetter,
|
|
34
35
|
ffNumber: ffElementNumber,
|
|
@@ -37,6 +38,7 @@ async function waitAndEnter(args) {
|
|
|
37
38
|
selector: args.selector,
|
|
38
39
|
platform: args.platform
|
|
39
40
|
});
|
|
41
|
+
(0, getHelper_js_1.saveStepInputData)(args, inputValue || args.value);
|
|
40
42
|
}
|
|
41
43
|
catch (error) {
|
|
42
44
|
args.scriptDataAppender.setErrorNLP("MOB_WaitAndSendKeys");
|
|
@@ -63,7 +65,7 @@ async function waitAndEnter(args) {
|
|
|
63
65
|
(0, appendScriptData_js_1.appendScriptData)({
|
|
64
66
|
scriptDataAppender: args.scriptDataAppender,
|
|
65
67
|
nlpName: "WaitAndSendKeys",
|
|
66
|
-
stepInputs: [inputValue, waitTimeSeconds.toString()],
|
|
68
|
+
stepInputs: [args.variableName ? `variable:${args.variableName}` : inputValue, waitTimeSeconds.toString()],
|
|
67
69
|
pageDOM: args.pageDOM,
|
|
68
70
|
elementGetter: args.elementGetter,
|
|
69
71
|
ffNumber: ffElementNumber,
|
|
@@ -72,6 +74,7 @@ async function waitAndEnter(args) {
|
|
|
72
74
|
selector: args.selector,
|
|
73
75
|
platform: args.platform
|
|
74
76
|
});
|
|
77
|
+
(0, getHelper_js_1.saveStepInputData)(args, inputValue || args.value);
|
|
75
78
|
}
|
|
76
79
|
catch (error) {
|
|
77
80
|
args.scriptDataAppender.setErrorNLP("WaitAndSendKeys");
|
|
@@ -0,0 +1,122 @@
|
|
|
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.verifyPDF = verifyPDF;
|
|
7
|
+
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
8
|
+
const logData_js_1 = require("../../../../utils/logger/logData.js");
|
|
9
|
+
const pdfDownloadWatcher_js_1 = require("../../../../utils/downloadWatcher/pdfDownloadWatcher.js");
|
|
10
|
+
const pdfTextExtractor_js_1 = require("../../../../utils/textExtractor/pdfTextExtractor.js");
|
|
11
|
+
const fs_1 = __importDefault(require("fs"));
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
async function verifyPDF(args) {
|
|
14
|
+
let calculatedDuration = 2;
|
|
15
|
+
let fileName;
|
|
16
|
+
try {
|
|
17
|
+
let buffer;
|
|
18
|
+
if (args.isDownload) {
|
|
19
|
+
// isDownload = true → poll downloadDir until a PDF lands
|
|
20
|
+
const fileInfo = await (0, pdfDownloadWatcher_js_1.waitForDownloadComplete)(logData_js_1.downloadDir);
|
|
21
|
+
calculatedDuration = fileInfo.durationSeconds;
|
|
22
|
+
fileName = fileInfo.file.name;
|
|
23
|
+
buffer = fs_1.default.readFileSync(fileInfo.file.fullPath);
|
|
24
|
+
await logData_js_1.logger.info("VerifyPDF: found latest file", { file: fileName, dir: logData_js_1.downloadDir, durationSeconds: fileInfo.durationSeconds });
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// isDownload = false → use the explicit path directly
|
|
28
|
+
if (!args.filePath) {
|
|
29
|
+
throw new Error("VerifyPDF: isDownload is false but no filePath was provided.");
|
|
30
|
+
}
|
|
31
|
+
const normalizedPath = path_1.default.normalize(args.filePath);
|
|
32
|
+
if (!fs_1.default.existsSync(normalizedPath)) {
|
|
33
|
+
throw new Error(`VerifyPDF: file not found at path: ${normalizedPath}`);
|
|
34
|
+
}
|
|
35
|
+
buffer = fs_1.default.readFileSync(normalizedPath);
|
|
36
|
+
fileName = normalizedPath;
|
|
37
|
+
}
|
|
38
|
+
// Validate PDF header
|
|
39
|
+
const header = buffer.subarray(0, 5).toString("ascii");
|
|
40
|
+
if (!header.startsWith("%PDF")) {
|
|
41
|
+
throw new Error(`File does not have a valid PDF header (%PDF): ${fileName}`);
|
|
42
|
+
}
|
|
43
|
+
// Optional text content verification
|
|
44
|
+
const expectedText = args.value?.trim();
|
|
45
|
+
if (expectedText) {
|
|
46
|
+
const extractedText = await (0, pdfTextExtractor_js_1.extractTextFromPdf)(buffer);
|
|
47
|
+
const normalizedExtracted = (0, pdfTextExtractor_js_1.normalizeText)(extractedText).toLowerCase();
|
|
48
|
+
const normalizedExpected = (0, pdfTextExtractor_js_1.normalizeText)(expectedText).toLowerCase();
|
|
49
|
+
if (!normalizedExtracted.includes(normalizedExpected)) {
|
|
50
|
+
// Secondary check directly on raw buffer bytes
|
|
51
|
+
const rawContent = buffer.toString("latin1").toLowerCase();
|
|
52
|
+
if (!rawContent.includes(normalizedExpected)) {
|
|
53
|
+
throw new Error(`PDF "${fileName}" does not contain expected text: "${expectedText}"`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
await logData_js_1.logger.info("VerifyPDF passed", {
|
|
58
|
+
file: fileName,
|
|
59
|
+
expectedText: expectedText || "(none — structural check only)",
|
|
60
|
+
sizeBytes: buffer.length,
|
|
61
|
+
});
|
|
62
|
+
if (args.isDownload) {
|
|
63
|
+
// Download flow: emit full chain so the generated script can replay the wait
|
|
64
|
+
const downloadsFolder = process.platform === "win32" ? "\\Downloads" : "/Downloads";
|
|
65
|
+
(0, appendScriptData_js_1.appendScriptData)({
|
|
66
|
+
scriptDataAppender: args.scriptDataAppender,
|
|
67
|
+
nlpName: "Sleep",
|
|
68
|
+
stepInputs: [calculatedDuration],
|
|
69
|
+
});
|
|
70
|
+
(0, appendScriptData_js_1.appendScriptData)({
|
|
71
|
+
scriptDataAppender: args.scriptDataAppender,
|
|
72
|
+
nlpName: "GetUserHomeDirectory",
|
|
73
|
+
stepInputs: [],
|
|
74
|
+
returnTypeVariableName: "userHomeDirectory",
|
|
75
|
+
});
|
|
76
|
+
(0, appendScriptData_js_1.appendScriptData)({
|
|
77
|
+
scriptDataAppender: args.scriptDataAppender,
|
|
78
|
+
nlpName: "ConcatString",
|
|
79
|
+
stepInputs: ["variable:userHomeDirectory", downloadsFolder],
|
|
80
|
+
returnTypeVariableName: "finalpath",
|
|
81
|
+
});
|
|
82
|
+
(0, appendScriptData_js_1.appendScriptData)({
|
|
83
|
+
scriptDataAppender: args.scriptDataAppender,
|
|
84
|
+
nlpName: "GetLastModifiedFile",
|
|
85
|
+
stepInputs: ["variable:finalpath"],
|
|
86
|
+
returnTypeVariableName: "lastModifiedFilePath",
|
|
87
|
+
});
|
|
88
|
+
(0, appendScriptData_js_1.appendScriptData)({
|
|
89
|
+
scriptDataAppender: args.scriptDataAppender,
|
|
90
|
+
nlpName: "VerifyPDF",
|
|
91
|
+
stepInputs: ["variable:lastModifiedFilePath", args.value ?? ""],
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
// Explicit path flow: emit VerifyPDF with the literal path the user provided
|
|
96
|
+
(0, appendScriptData_js_1.appendScriptData)({
|
|
97
|
+
scriptDataAppender: args.scriptDataAppender,
|
|
98
|
+
nlpName: "VerifyPDF",
|
|
99
|
+
stepInputs: [args.filePath ?? "", args.value ?? ""],
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
args.scriptDataAppender.setErrorNLP("VerifyPDF");
|
|
105
|
+
await logData_js_1.logger.error("VerifyPDF action failed:", error);
|
|
106
|
+
throw new Error("VerifyPDF action failed", { cause: error });
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
// Clean up temp download directory if download flow was used
|
|
110
|
+
if (args.isDownload) {
|
|
111
|
+
try {
|
|
112
|
+
if (fs_1.default.existsSync(logData_js_1.downloadDir)) {
|
|
113
|
+
fs_1.default.rmSync(logData_js_1.downloadDir, { recursive: true, force: true });
|
|
114
|
+
await logData_js_1.logger.info(`Cleaned up temp download directory: ${logData_js_1.downloadDir}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (cleanupErr) {
|
|
118
|
+
await logData_js_1.logger.error("Error cleaning up temp download directory after VerifyPDF:", cleanupErr);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MOB_GetADBLogsForGivenAppPackage = void 0;
|
|
4
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
4
5
|
const appendScriptData_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData");
|
|
5
6
|
const MOB_GetADBLogsForGivenAppPackage = async (args) => {
|
|
6
7
|
try {
|
|
7
8
|
const packageName = args.value;
|
|
8
9
|
const logs = await args.driver.getLogs("logcat");
|
|
9
10
|
const _filteredLogs = logs.filter((log) => log.message && log.message.includes(packageName));
|
|
11
|
+
(0, getHelper_js_1.saveStepInputData)(args, logs);
|
|
10
12
|
(0, appendScriptData_1.appendScriptData)({
|
|
11
13
|
scriptDataAppender: args.scriptDataAppender,
|
|
12
14
|
nlpName: "MOB_GetADBLogsForGivenAppPackage",
|
|
13
|
-
stepInputs: [packageName]
|
|
15
|
+
stepInputs: [packageName],
|
|
16
|
+
returnTypeVariableName: args.returnTypeVariableName
|
|
14
17
|
});
|
|
15
18
|
}
|
|
16
19
|
catch (error) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MOB_GetAllContexts = void 0;
|
|
4
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
4
5
|
const appendScriptData_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData");
|
|
5
6
|
const MOB_GetAllContexts = async (args) => {
|
|
6
7
|
try {
|
|
@@ -8,8 +9,11 @@ const MOB_GetAllContexts = async (args) => {
|
|
|
8
9
|
const _contexts = await args.driver.getContexts();
|
|
9
10
|
(0, appendScriptData_1.appendScriptData)({
|
|
10
11
|
scriptDataAppender: args.scriptDataAppender,
|
|
11
|
-
nlpName: "MOB_GetAllContexts"
|
|
12
|
+
nlpName: "MOB_GetAllContexts",
|
|
13
|
+
returnTypeVariableName: args.returnTypeVariableName
|
|
12
14
|
});
|
|
15
|
+
const __result = _contexts;
|
|
16
|
+
(0, getHelper_js_1.saveStepInputData)(args, __result);
|
|
13
17
|
}
|
|
14
18
|
catch (error) {
|
|
15
19
|
args.scriptDataAppender.setErrorNLP("MOB_GetAllContexts");
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { MOB_GetAllWindowHandlesInterface } from "../../interface/getActionInterface";
|
|
1
|
+
import { MOB_GetAllWindowHandlesInterface } from "../../interface/getActionInterface.js";
|
|
2
2
|
export declare const MOB_GetAllWindowHandles: (args: MOB_GetAllWindowHandlesInterface) => Promise<void>;
|
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MOB_GetAllWindowHandles = void 0;
|
|
4
|
-
const
|
|
4
|
+
const getHelper_js_1 = require("../../../../utils/helpers/getHelper.js");
|
|
5
|
+
const appendScriptData_js_1 = require("../../../../fireflinkData/fireflinkScript/appendScriptData.js");
|
|
5
6
|
const MOB_GetAllWindowHandles = async (args) => {
|
|
6
7
|
try {
|
|
7
8
|
const context = await args.driver.getContext();
|
|
8
9
|
// Not supported in native
|
|
9
10
|
if (context === "NATIVE_APP") {
|
|
10
|
-
|
|
11
|
-
(0, appendScriptData_1.appendScriptData)({
|
|
11
|
+
(0, appendScriptData_js_1.appendScriptData)({
|
|
12
12
|
scriptDataAppender: args.scriptDataAppender,
|
|
13
13
|
nlpName: "MOB_GetAllWindowHandles",
|
|
14
|
+
returnTypeVariableName: args.returnTypeVariableName
|
|
14
15
|
});
|
|
15
|
-
|
|
16
|
+
const emptyHandles = [];
|
|
17
|
+
(0, getHelper_js_1.saveStepInputData)(args, emptyHandles);
|
|
16
18
|
}
|
|
17
19
|
// Only for WEBVIEW / WEB
|
|
18
20
|
const _handles = await args.driver.getWindowHandles();
|
|
19
|
-
(0,
|
|
21
|
+
(0, appendScriptData_js_1.appendScriptData)({
|
|
20
22
|
scriptDataAppender: args.scriptDataAppender,
|
|
21
|
-
nlpName: "MOB_GetAllWindowHandles"
|
|
23
|
+
nlpName: "MOB_GetAllWindowHandles",
|
|
24
|
+
returnTypeVariableName: args.returnTypeVariableName
|
|
22
25
|
});
|
|
26
|
+
(0, getHelper_js_1.saveStepInputData)(args, _handles);
|
|
23
27
|
}
|
|
24
28
|
catch (error) {
|
|
25
29
|
args.scriptDataAppender.setErrorNLP("MOB_GetAllWindowHandles");
|