@perforce-perfecto/scriptless-helpers 1.46.3 → 1.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/package.json +3 -2
  2. package/src/index.d.ts +25 -0
  3. package/src/index.js +25 -0
  4. package/src/index.js.map +1 -1
  5. package/src/lib/action-arguments-helper.d.ts +36 -0
  6. package/src/lib/action-arguments-helper.js +60 -0
  7. package/src/lib/action-arguments-helper.js.map +1 -0
  8. package/src/lib/action-result-helper.d.ts +8 -0
  9. package/src/lib/action-result-helper.js +28 -0
  10. package/src/lib/action-result-helper.js.map +1 -0
  11. package/src/lib/constants-helper.d.ts +10 -0
  12. package/src/lib/constants-helper.js +43 -0
  13. package/src/lib/constants-helper.js.map +1 -0
  14. package/src/lib/custom-error.d.ts +5 -0
  15. package/src/lib/custom-error.js +14 -0
  16. package/src/lib/custom-error.js.map +1 -0
  17. package/src/lib/data-table-helper.d.ts +17 -0
  18. package/src/lib/data-table-helper.js +88 -0
  19. package/src/lib/data-table-helper.js.map +1 -0
  20. package/src/lib/element-helper.d.ts +16 -0
  21. package/src/lib/element-helper.js +191 -0
  22. package/src/lib/element-helper.js.map +1 -0
  23. package/src/lib/exit-execution-helper.d.ts +13 -0
  24. package/src/lib/exit-execution-helper.js +50 -0
  25. package/src/lib/exit-execution-helper.js.map +1 -0
  26. package/src/lib/file-transfer-helper.d.ts +12 -0
  27. package/src/lib/file-transfer-helper.js +132 -0
  28. package/src/lib/file-transfer-helper.js.map +1 -0
  29. package/src/lib/handset-open-helper.d.ts +26 -0
  30. package/src/lib/handset-open-helper.js +53 -0
  31. package/src/lib/handset-open-helper.js.map +1 -0
  32. package/src/lib/handset-select-helper.d.ts +40 -0
  33. package/src/lib/handset-select-helper.js +126 -0
  34. package/src/lib/handset-select-helper.js.map +1 -0
  35. package/src/lib/handset-variable-helper.d.ts +9 -0
  36. package/src/lib/handset-variable-helper.js +38 -0
  37. package/src/lib/handset-variable-helper.js.map +1 -0
  38. package/src/lib/parameter-helper.d.ts +6 -0
  39. package/src/lib/parameter-helper.js +25 -0
  40. package/src/lib/parameter-helper.js.map +1 -0
  41. package/src/lib/perfecto-execute-script-helper.d.ts +5 -0
  42. package/src/lib/perfecto-execute-script-helper.js +27 -0
  43. package/src/lib/perfecto-execute-script-helper.js.map +1 -0
  44. package/src/lib/script-info-helper.d.ts +4 -0
  45. package/src/lib/script-info-helper.js +28 -0
  46. package/src/lib/script-info-helper.js.map +1 -0
  47. package/src/lib/secured-variable-helper.d.ts +6 -0
  48. package/src/lib/secured-variable-helper.js +17 -0
  49. package/src/lib/secured-variable-helper.js.map +1 -0
  50. package/src/lib/test-end-status-helper.d.ts +4 -0
  51. package/src/lib/test-end-status-helper.js +19 -0
  52. package/src/lib/test-end-status-helper.js.map +1 -0
  53. package/src/lib/touch-drag-helper.d.ts +17 -0
  54. package/src/lib/touch-drag-helper.js +96 -0
  55. package/src/lib/touch-drag-helper.js.map +1 -0
  56. package/src/lib/variable-attribute-checkpoint-helper.d.ts +4 -0
  57. package/src/lib/variable-attribute-checkpoint-helper.js +20 -0
  58. package/src/lib/variable-attribute-checkpoint-helper.js.map +1 -0
  59. package/src/types/active-script-function-data.d.ts +12 -0
  60. package/src/types/active-script-function-data.js +3 -0
  61. package/src/types/active-script-function-data.js.map +1 -0
  62. package/src/types/data-table.d.ts +30 -0
  63. package/src/types/data-table.js +3 -0
  64. package/src/types/data-table.js.map +1 -0
  65. package/src/types/desired-device-capabilities.d.ts +25 -0
  66. package/src/types/desired-device-capabilities.js +3 -0
  67. package/src/types/desired-device-capabilities.js.map +1 -0
  68. package/src/types/perfecto-device-capabilities.d.ts +128 -0
  69. package/src/types/perfecto-device-capabilities.js +3 -0
  70. package/src/types/perfecto-device-capabilities.js.map +1 -0
  71. package/src/types/type-utils.d.ts +3 -0
  72. package/src/types/type-utils.js +3 -0
  73. package/src/types/type-utils.js.map +1 -0
  74. package/src/types/user-defined-variables.d.ts +11 -0
  75. package/src/types/user-defined-variables.js +3 -0
  76. package/src/types/user-defined-variables.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-helper.js","sourceRoot":"","sources":["../../../../../libs/execution-helpers-public/src/lib/element-helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Browser } from 'webdriverio';
2
+ import { Logger } from '../types/logger';
3
+ import { ScriptlessHelper } from '../types/scriptless-helper';
4
+ import { WebdriverSessionHelper } from './webdriver-session-helper';
5
+ import { UserDefinedVariables } from '../types/user-defined-variables';
6
+ export declare class ExitExecutionHelper extends ScriptlessHelper {
7
+ protected webdriverSessionHelper: WebdriverSessionHelper;
8
+ constructor(logger?: Logger);
9
+ gracefullyBlockExecution(parentExecutionId: string, executionMode: string, getOpenWebdriverSessions: () => Browser[], reportName: string, runningScriptStaticInfo: unknown, userDefinedVariables: UserDefinedVariables, scriptError: string): Promise<void>;
10
+ gracefullyExitExecution(_parentExecutionId: string, _executionMode: string, getOpenWebdriverSessions: () => Browser[], _reportName: string, _runningScriptStaticInfo: unknown, _userDefinedVariables: UserDefinedVariables, _activeScriptFunctionData: {
11
+ actionError?: unknown;
12
+ }): Promise<void>;
13
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExitExecutionHelper = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const scriptless_helper_1 = require("../types/scriptless-helper");
6
+ const webdriver_session_helper_1 = require("./webdriver-session-helper");
7
+ class ExitExecutionHelper extends scriptless_helper_1.ScriptlessHelper {
8
+ constructor(logger) {
9
+ super(logger);
10
+ this.webdriverSessionHelper = new webdriver_session_helper_1.WebdriverSessionHelper(logger);
11
+ }
12
+ gracefullyBlockExecution(parentExecutionId, executionMode, getOpenWebdriverSessions, reportName, runningScriptStaticInfo, userDefinedVariables, scriptError) {
13
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
+ yield this.gracefullyExitExecution(parentExecutionId, executionMode, getOpenWebdriverSessions, reportName, runningScriptStaticInfo, userDefinedVariables, {
15
+ actionError: scriptError
16
+ });
17
+ });
18
+ }
19
+ gracefullyExitExecution(
20
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
21
+ _parentExecutionId,
22
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
23
+ _executionMode, getOpenWebdriverSessions,
24
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
+ _reportName,
26
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
27
+ _runningScriptStaticInfo,
28
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
29
+ _userDefinedVariables,
30
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
+ _activeScriptFunctionData) {
32
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
33
+ const openedDriverSessions = getOpenWebdriverSessions
34
+ ? getOpenWebdriverSessions()
35
+ : [];
36
+ this.logger.log(`Gracefully exiting execution...`);
37
+ if (openedDriverSessions.length > 0) {
38
+ try {
39
+ yield this.webdriverSessionHelper.closeWebdriverSessionsInParallel(openedDriverSessions);
40
+ }
41
+ catch (error) {
42
+ this.logger.error(`Error occurred while closing WebDriver sessions`, error);
43
+ }
44
+ }
45
+ this.logger.log(`Gracefully exiting execution...`);
46
+ });
47
+ }
48
+ }
49
+ exports.ExitExecutionHelper = ExitExecutionHelper;
50
+ //# sourceMappingURL=exit-execution-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-execution-helper.js","sourceRoot":"","sources":["../../../../../libs/execution-helpers-public/src/lib/exit-execution-helper.ts"],"names":[],"mappings":";;;;AAEA,kEAA8D;AAC9D,yEAAoE;AAGpE,MAAa,mBAAoB,SAAQ,oCAAgB;IAEvD,YAAY,MAAe;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,sBAAsB,GAAG,IAAI,iDAAsB,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC;IAEK,wBAAwB,CAC5B,iBAAyB,EACzB,aAAqB,EACrB,wBAAyC,EACzC,UAAkB,EAClB,uBAAgC,EAChC,oBAA0C,EAC1C,WAAmB;;YAEnB,MAAM,IAAI,CAAC,uBAAuB,CAChC,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACxB,UAAU,EACV,uBAAuB,EACvB,oBAAoB,EACpB;gBACE,WAAW,EAAE,WAAW;aACzB,CACF,CAAC;QACJ,CAAC;KAAA;IAEK,uBAAuB;IAC3B,6DAA6D;IAC7D,kBAA0B;IAC1B,6DAA6D;IAC7D,cAAsB,EACtB,wBAAyC;IACzC,6DAA6D;IAC7D,WAAmB;IACnB,6DAA6D;IAC7D,wBAAiC;IACjC,6DAA6D;IAC7D,qBAA2C;IAC3C,6DAA6D;IAC7D,yBAAoD;;YAEpD,MAAM,oBAAoB,GAAG,wBAAwB;gBACnD,CAAC,CAAC,wBAAwB,EAAE;gBAC5B,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAEnD,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,gCAAgC,CAChE,oBAAoB,CACrB,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,iDAAiD,EACjD,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;KAAA;CACF;AAhED,kDAgEC"}
@@ -0,0 +1,12 @@
1
+ import { ScriptlessHelper } from '../types/scriptless-helper';
2
+ export declare class FileTransferHelper extends ScriptlessHelper {
3
+ uploadArtifactToRepository(repositoryFile: string, base64Data: string): Promise<void>;
4
+ downloadArtifactFromRepository(repositoryFile: string): Promise<string>;
5
+ getDeviceFilepath(devicePlatform: string, handsetFile: string): string;
6
+ private getStorageFilepathDetails;
7
+ private getRepositoryManagementServiceBaseUrl;
8
+ private getRepositoryManagementArtifactUrl;
9
+ private getRepositoryManagementArtifactMultipleUrl;
10
+ private getRepositoryManagementArtifactUploadUrl;
11
+ private getRepositoryManagementArtifactDownloadUrl;
12
+ }
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileTransferHelper = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const axios_1 = tslib_1.__importDefault(require("axios"));
6
+ const path_1 = require("path");
7
+ const constants_helper_1 = require("./constants-helper");
8
+ const file_type_1 = require("file-type");
9
+ const scriptless_helper_1 = require("../types/scriptless-helper");
10
+ class FileTransferHelper extends scriptless_helper_1.ScriptlessHelper {
11
+ uploadArtifactToRepository(repositoryFile, base64Data) {
12
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
+ var _a, _b, _c;
14
+ const { fileAccessibility, fileName: repositoryFilePath } = this.getStorageFilepathDetails(repositoryFile);
15
+ const bufferedFile = Buffer.from(base64Data, 'base64');
16
+ const fileTypeResult = yield (0, file_type_1.fileTypeFromBuffer)(new Uint8Array(bufferedFile));
17
+ const artifactType = (_a = fileTypeResult === null || fileTypeResult === void 0 ? void 0 : fileTypeResult.mime) !== null && _a !== void 0 ? _a : '';
18
+ const contentType = (_c = (_b = fileTypeResult === null || fileTypeResult === void 0 ? void 0 : fileTypeResult.mime) === null || _b === void 0 ? void 0 : _b.split('/')[0]) !== null && _c !== void 0 ? _c : '';
19
+ const payload = {
20
+ contentType,
21
+ artifactType,
22
+ folderType: fileAccessibility,
23
+ keyDetails: {
24
+ version: 'v0',
25
+ artifactId: repositoryFilePath
26
+ },
27
+ override: true,
28
+ userMetadata: { tags: [] },
29
+ hidden: false,
30
+ temporary: false,
31
+ fileName: repositoryFilePath
32
+ };
33
+ try {
34
+ const { uploadUrl } = yield this.getRepositoryManagementArtifactUploadUrl(payload, constants_helper_1.ConstantsHelper.getShortTenantId(), constants_helper_1.ConstantsHelper.getPerfectoAuthHeaders());
35
+ yield axios_1.default.put(uploadUrl, bufferedFile);
36
+ this.logger.info(`File ${repositoryFilePath} saved successfully in repository.`);
37
+ }
38
+ catch (error) {
39
+ this.logger.error(`Failed to save file ${repositoryFilePath} in repository.`, error);
40
+ throw error;
41
+ }
42
+ });
43
+ }
44
+ downloadArtifactFromRepository(repositoryFile) {
45
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
46
+ const { fileAccessibility, fileName: repositoryFilePath } = this.getStorageFilepathDetails(repositoryFile);
47
+ const repositoryFileVersionPath = `${fileAccessibility}/${repositoryFilePath}/v0`;
48
+ const payload = {
49
+ artifactsDetails: [repositoryFileVersionPath]
50
+ };
51
+ try {
52
+ const { downloadUrl } = yield this.getRepositoryManagementArtifactDownloadUrl(payload, constants_helper_1.ConstantsHelper.getShortTenantId(), constants_helper_1.ConstantsHelper.getPerfectoAuthHeaders());
53
+ const downloadedAsset = yield axios_1.default.get(downloadUrl, {
54
+ headers: constants_helper_1.ConstantsHelper.getPerfectoAuthHeaders()
55
+ });
56
+ const base64Data = downloadedAsset.data;
57
+ this.logger.info(`File ${repositoryFile} was successfully downloaded.`);
58
+ return base64Data;
59
+ }
60
+ catch (error) {
61
+ this.logger.error(`Failed to download file ${repositoryFileVersionPath} from repository.`, error);
62
+ throw error;
63
+ }
64
+ });
65
+ }
66
+ getDeviceFilepath(devicePlatform, handsetFile) {
67
+ const { fileAccessibility: deviceSegmentRaw, filePath: handsetPath, ext: handsetFileExt } = this.getStorageFilepathDetails(handsetFile);
68
+ let storageFilePath = handsetPath;
69
+ if (!handsetFileExt ||
70
+ (devicePlatform === 'ANDROID' &&
71
+ !['phone', 'card'].includes(deviceSegmentRaw.toLowerCase())) ||
72
+ (devicePlatform === 'IOS' && deviceSegmentRaw.toLowerCase() !== 'phone')) {
73
+ throw new Error(`Invalid handset file path for ${devicePlatform}: ${handsetFile}.`);
74
+ }
75
+ switch (devicePlatform) {
76
+ case 'ANDROID':
77
+ if (deviceSegmentRaw.toLowerCase() === 'card') {
78
+ if (!handsetPath.includes('/sdcard')) {
79
+ storageFilePath = `/sdcard${handsetPath}`;
80
+ }
81
+ }
82
+ break;
83
+ case 'IOS':
84
+ storageFilePath = handsetPath.replace('/Media', '');
85
+ break;
86
+ default:
87
+ throw new Error(`Invalid handset file path for ${devicePlatform}: ${handsetFile}.`);
88
+ }
89
+ return storageFilePath;
90
+ }
91
+ getStorageFilepathDetails(storageFilePath) {
92
+ if (typeof storageFilePath !== 'string' || !storageFilePath.includes(':')) {
93
+ throw new Error(`Invalid storage file path: ${storageFilePath}`);
94
+ }
95
+ const [fileAccessibility, ...rest] = storageFilePath.split(':');
96
+ const filePath = rest.join(':');
97
+ const parsed = (0, path_1.parse)(filePath);
98
+ return {
99
+ fileAccessibility,
100
+ filePath,
101
+ fileName: parsed.base,
102
+ ext: parsed.ext
103
+ };
104
+ }
105
+ getRepositoryManagementServiceBaseUrl(tenantName) {
106
+ return `https://${tenantName}.app.perfectomobile.com/repository-management-webapp/rest/v1/repository-management`;
107
+ }
108
+ getRepositoryManagementArtifactUrl(tenantName) {
109
+ return `${this.getRepositoryManagementServiceBaseUrl(tenantName)}/artifacts`;
110
+ }
111
+ getRepositoryManagementArtifactMultipleUrl(tenantName) {
112
+ return `${this.getRepositoryManagementServiceBaseUrl(tenantName)}/artifacts/multiple`;
113
+ }
114
+ getRepositoryManagementArtifactUploadUrl(payload, tenantName, authHeaders) {
115
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
116
+ const response = yield axios_1.default.post(this.getRepositoryManagementArtifactUrl(tenantName), payload, {
117
+ headers: authHeaders
118
+ });
119
+ return response.data;
120
+ });
121
+ }
122
+ getRepositoryManagementArtifactDownloadUrl(payload, tenantName, authHeaders) {
123
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
124
+ const response = yield axios_1.default.post(this.getRepositoryManagementArtifactMultipleUrl(tenantName), payload, {
125
+ headers: authHeaders
126
+ });
127
+ return response.data;
128
+ });
129
+ }
130
+ }
131
+ exports.FileTransferHelper = FileTransferHelper;
132
+ //# sourceMappingURL=file-transfer-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-transfer-helper.js","sourceRoot":"","sources":["../../../../../libs/execution-helpers-public/src/lib/file-transfer-helper.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,+BAA6B;AAC7B,yDAAqD;AACrD,yCAA+C;AAC/C,kEAA8D;AAqB9D,MAAa,kBAAmB,SAAQ,oCAAgB;IAChD,0BAA0B,CAC9B,cAAsB,EACtB,UAAkB;;;YAElB,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GACvD,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACvD,MAAM,cAAc,GAAG,MAAM,IAAA,8BAAkB,EAC7C,IAAI,UAAU,CAAC,YAAY,CAAC,CAC7B,CAAC;YACF,MAAM,YAAY,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,mCAAI,EAAE,CAAC;YAChD,MAAM,WAAW,GAAG,MAAA,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mCAAI,EAAE,CAAC;YAC9D,MAAM,OAAO,GAAG;gBACd,WAAW;gBACX,YAAY;gBACZ,UAAU,EAAE,iBAAiB;gBAC7B,UAAU,EAAE;oBACV,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,kBAAkB;iBAC/B;gBACD,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;gBAC1B,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,kBAAkB;aAC7B,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,wCAAwC,CACvE,OAAO,EACP,kCAAe,CAAC,gBAAgB,EAAE,EAClC,kCAAe,CAAC,sBAAsB,EAAE,CACzC,CAAC;gBACF,MAAM,eAAK,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,QAAQ,kBAAkB,oCAAoC,CAC/D,CAAC;YACJ,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,uBAAuB,kBAAkB,iBAAiB,EAC1D,KAAK,CACN,CAAC;gBACF,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAEK,8BAA8B,CAClC,cAAsB;;YAEtB,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GACvD,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;YAEjD,MAAM,yBAAyB,GAAG,GAAG,iBAAiB,IAAI,kBAAkB,KAAK,CAAC;YAClF,MAAM,OAAO,GAAG;gBACd,gBAAgB,EAAE,CAAC,yBAAyB,CAAC;aAC9C,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,EAAE,WAAW,EAAE,GACnB,MAAM,IAAI,CAAC,0CAA0C,CACnD,OAAO,EACP,kCAAe,CAAC,gBAAgB,EAAE,EAClC,kCAAe,CAAC,sBAAsB,EAAE,CACzC,CAAC;gBACJ,MAAM,eAAe,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,WAAW,EAAE;oBACnD,OAAO,EAAE,kCAAe,CAAC,sBAAsB,EAAE;iBAClD,CAAC,CAAC;gBACH,MAAM,UAAU,GAAW,eAAe,CAAC,IAAI,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,cAAc,+BAA+B,CAAC,CAAC;gBACxE,OAAO,UAAU,CAAC;YACpB,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,2BAA2B,yBAAyB,mBAAmB,EACvE,KAAK,CACN,CAAC;gBACF,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAED,iBAAiB,CAAC,cAAsB,EAAE,WAAmB;QAC3D,MAAM,EACJ,iBAAiB,EAAE,gBAAgB,EACnC,QAAQ,EAAE,WAAW,EACrB,GAAG,EAAE,cAAc,EACpB,GAAG,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,eAAe,GAAG,WAAW,CAAC;QAElC,IACE,CAAC,cAAc;YACf,CAAC,cAAc,KAAK,SAAS;gBAC3B,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9D,CAAC,cAAc,KAAK,KAAK,IAAI,gBAAgB,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,EACxE,CAAC;YACD,MAAM,IAAI,KAAK,CACb,iCAAiC,cAAc,KAAK,WAAW,GAAG,CACnE,CAAC;QACJ,CAAC;QAED,QAAQ,cAAc,EAAE,CAAC;YACvB,KAAK,SAAS;gBACZ,IAAI,gBAAgB,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;oBAC9C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBACrC,eAAe,GAAG,UAAU,WAAW,EAAE,CAAC;oBAC5C,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,KAAK,KAAK;gBACR,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACpD,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CACb,iCAAiC,cAAc,KAAK,WAAW,GAAG,CACnE,CAAC;QACN,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,yBAAyB,CAAC,eAAuB;QAMvD,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,8BAA8B,eAAe,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAA,YAAK,EAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO;YACL,iBAAiB;YACjB,QAAQ;YACR,QAAQ,EAAE,MAAM,CAAC,IAAI;YACrB,GAAG,EAAE,MAAM,CAAC,GAAG;SAChB,CAAC;IACJ,CAAC;IAEO,qCAAqC,CAAC,UAAkB;QAC9D,OAAO,WAAW,UAAU,oFAAoF,CAAC;IACnH,CAAC;IAEO,kCAAkC,CAAC,UAAkB;QAC3D,OAAO,GAAG,IAAI,CAAC,qCAAqC,CAClD,UAAU,CACX,YAAY,CAAC;IAChB,CAAC;IAEO,0CAA0C,CAChD,UAAkB;QAElB,OAAO,GAAG,IAAI,CAAC,qCAAqC,CAClD,UAAU,CACX,qBAAqB,CAAC;IACzB,CAAC;IAEa,wCAAwC,CACpD,OAAuC,EACvC,UAAkB,EAClB,WAAmC;;YAEnC,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,IAAI,CAAC,kCAAkC,CAAC,UAAU,CAAC,EACnD,OAAO,EACP;gBACE,OAAO,EAAE,WAAW;aACrB,CACF,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;KAAA;IAEa,0CAA0C,CACtD,OAAyC,EACzC,UAAkB,EAClB,WAAmC;;YAEnC,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,IAAI,CAAC,0CAA0C,CAAC,UAAU,CAAC,EAC3D,OAAO,EACP;gBACE,OAAO,EAAE,WAAW;aACrB,CACF,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;KAAA;CACF;AAzLD,gDAyLC"}
@@ -0,0 +1,26 @@
1
+ import { Browser } from 'webdriverio';
2
+ import { ScriptlessHelper } from '../types/scriptless-helper';
3
+ type OpenHandsetParams = {
4
+ script: 'script' | 'noscript';
5
+ allocation: 'wait' | 'nowait';
6
+ video: 'record' | 'norecord';
7
+ audio: 'hasaudio' | 'noaudio';
8
+ mode: 'add' | 'replace';
9
+ timeout?: number;
10
+ accessibilitySession?: boolean;
11
+ };
12
+ type OpenHandsetPerfectoCapabilities = {
13
+ runDeviceResetScript: boolean;
14
+ openDeviceTimeout?: number;
15
+ outputVideo: boolean;
16
+ audioPlayback: boolean;
17
+ accessibilitySession?: boolean;
18
+ };
19
+ export declare class HandsetOpenHelper extends ScriptlessHelper {
20
+ private webdriverSessionHelper;
21
+ constructor(logger?: Console);
22
+ createOpenHandsetPerfectoCapabilities(openHandsetParams: OpenHandsetParams): OpenHandsetPerfectoCapabilities;
23
+ closeAllOpenedHandsets(getOpenWebdriverSessions: () => Browser[]): Promise<void>;
24
+ private waitForHandsetsToClose;
25
+ }
26
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HandsetOpenHelper = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const scriptless_helper_1 = require("../types/scriptless-helper");
6
+ const webdriver_session_helper_1 = require("./webdriver-session-helper");
7
+ class HandsetOpenHelper extends scriptless_helper_1.ScriptlessHelper {
8
+ constructor(logger) {
9
+ super(logger);
10
+ this.webdriverSessionHelper = new webdriver_session_helper_1.WebdriverSessionHelper(this.logger);
11
+ }
12
+ createOpenHandsetPerfectoCapabilities(openHandsetParams) {
13
+ const openHandsetPerfectoCapabilities = {
14
+ runDeviceResetScript: openHandsetParams.script === 'script' ? true : false,
15
+ outputVideo: openHandsetParams.video === 'record' ? true : false,
16
+ audioPlayback: openHandsetParams.audio === 'hasaudio' ? true : false
17
+ };
18
+ if (openHandsetParams.allocation === 'wait') {
19
+ openHandsetPerfectoCapabilities.openDeviceTimeout =
20
+ openHandsetParams.timeout ? openHandsetParams.timeout : 9;
21
+ }
22
+ if (Object.prototype.hasOwnProperty.call(openHandsetParams, 'accessibilitySession')) {
23
+ openHandsetPerfectoCapabilities.accessibilitySession =
24
+ openHandsetParams.accessibilitySession;
25
+ }
26
+ return openHandsetPerfectoCapabilities;
27
+ }
28
+ closeAllOpenedHandsets(getOpenWebdriverSessions) {
29
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
30
+ const openedDriverSessions = getOpenWebdriverSessions
31
+ ? getOpenWebdriverSessions()
32
+ : [];
33
+ if (openedDriverSessions.length > 0) {
34
+ try {
35
+ yield this.webdriverSessionHelper.closeWebdriverSessionsInParallel(openedDriverSessions);
36
+ yield this.waitForHandsetsToClose(20000);
37
+ }
38
+ catch (error) {
39
+ this.logger.error(`Error occurred while closing WebDriver sessions`, error);
40
+ }
41
+ }
42
+ });
43
+ }
44
+ waitForHandsetsToClose(waitTime) {
45
+ return new Promise((resolve) => {
46
+ setTimeout(() => {
47
+ resolve(true);
48
+ }, waitTime);
49
+ });
50
+ }
51
+ }
52
+ exports.HandsetOpenHelper = HandsetOpenHelper;
53
+ //# sourceMappingURL=handset-open-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handset-open-helper.js","sourceRoot":"","sources":["../../../../../libs/execution-helpers-public/src/lib/handset-open-helper.ts"],"names":[],"mappings":";;;;AACA,kEAA8D;AAC9D,yEAAoE;AAoBpE,MAAa,iBAAkB,SAAQ,oCAAgB;IAGrD,YAAY,MAAgB;QAC1B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,sBAAsB,GAAG,IAAI,iDAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,qCAAqC,CACnC,iBAAoC;QAEpC,MAAM,+BAA+B,GAAoC;YACvE,oBAAoB,EAClB,iBAAiB,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YACtD,WAAW,EAAE,iBAAiB,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YAChE,aAAa,EAAE,iBAAiB,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;SACrE,CAAC;QAEF,IAAI,iBAAiB,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YAC5C,+BAA+B,CAAC,iBAAiB;gBAC/C,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAClC,iBAAiB,EACjB,sBAAsB,CACvB,EACD,CAAC;YACD,+BAA+B,CAAC,oBAAoB;gBAClD,iBAAiB,CAAC,oBAAoB,CAAC;QAC3C,CAAC;QACD,OAAO,+BAA+B,CAAC;IACzC,CAAC;IAEK,sBAAsB,CAC1B,wBAAyC;;YAEzC,MAAM,oBAAoB,GAAG,wBAAwB;gBACnD,CAAC,CAAC,wBAAwB,EAAE;gBAC5B,CAAC,CAAC,EAAE,CAAC;YAEP,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,gCAAgC,CAChE,oBAAoB,CACrB,CAAC;oBACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;gBAC3C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,iDAAiD,EACjD,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEO,sBAAsB,CAAC,QAAgB;QAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,UAAU,CAAC,GAAG,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAhED,8CAgEC"}
@@ -0,0 +1,40 @@
1
+ import { type ProcessedDataTable } from '../types/data-table';
2
+ import { HandsetVariableHelper } from './handset-variable-helper';
3
+ import { ScriptlessHelper } from '../types/scriptless-helper';
4
+ export type SelectHandsetParameters = {
5
+ os?: 'Android' | 'iOS';
6
+ osVersion?: string;
7
+ osBuild?: string;
8
+ cpuArch?: string;
9
+ manufacturer?: string;
10
+ model?: string;
11
+ resolution?: string;
12
+ operator?: string;
13
+ location?: string;
14
+ description?: string;
15
+ allocation: 'wait' | 'nowait';
16
+ timeout?: number;
17
+ };
18
+ export type DeviceQuery = {
19
+ os?: 'Android' | 'iOS';
20
+ osVersion?: string;
21
+ osBuild?: string;
22
+ cpuArch?: string;
23
+ manufacturer?: string;
24
+ model?: string;
25
+ resolution?: string;
26
+ operator?: {
27
+ name: string;
28
+ };
29
+ location?: string;
30
+ description?: string;
31
+ };
32
+ export declare class HandsetSelectHelper extends ScriptlessHelper {
33
+ handsetVariableHelper: HandsetVariableHelper;
34
+ constructor(logger?: Console);
35
+ selectHandset(selectHandsetParameters: SelectHandsetParameters): Promise<string[]>;
36
+ saveSelectHandsetResultIntoDataTable(deviceIds: Array<string>, dataTable: ProcessedDataTable): ProcessedDataTable;
37
+ private createDeviceQuery;
38
+ private getHandsets;
39
+ private waitForAvailableHandsets;
40
+ }
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HandsetSelectHelper = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const axios_1 = tslib_1.__importDefault(require("axios"));
6
+ const constants_helper_1 = require("./constants-helper");
7
+ const handset_variable_helper_1 = require("./handset-variable-helper");
8
+ const scriptless_helper_1 = require("../types/scriptless-helper");
9
+ class HandsetSelectHelper extends scriptless_helper_1.ScriptlessHelper {
10
+ constructor(logger) {
11
+ super(logger);
12
+ this.handsetVariableHelper = new handset_variable_helper_1.HandsetVariableHelper(logger);
13
+ }
14
+ selectHandset(selectHandsetParameters) {
15
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
16
+ try {
17
+ const deviceQuery = this.createDeviceQuery(selectHandsetParameters);
18
+ if (selectHandsetParameters.allocation === 'wait' &&
19
+ selectHandsetParameters.timeout) {
20
+ const deviceIds = yield this.waitForAvailableHandsets(deviceQuery, selectHandsetParameters.timeout);
21
+ if (deviceIds.length === 0) {
22
+ throw new Error('No device was found');
23
+ }
24
+ return deviceIds;
25
+ }
26
+ else {
27
+ const deviceIds = yield this.getHandsets(deviceQuery);
28
+ if (deviceIds.length === 0) {
29
+ throw new Error('No device was found');
30
+ }
31
+ return deviceIds;
32
+ }
33
+ }
34
+ catch (error) {
35
+ throw new Error('No device was found');
36
+ }
37
+ });
38
+ }
39
+ saveSelectHandsetResultIntoDataTable(deviceIds, dataTable) {
40
+ deviceIds.forEach((deviceId, index) => {
41
+ if (index < dataTable.length) {
42
+ const columnName = Object.keys(dataTable[index])[0];
43
+ dataTable[index][columnName].key =
44
+ this.handsetVariableHelper.handsetKeyToDeviceCapability(deviceId);
45
+ }
46
+ });
47
+ return dataTable;
48
+ }
49
+ createDeviceQuery(selectHandsetParameters) {
50
+ const deviceQuery = {};
51
+ if (selectHandsetParameters.os) {
52
+ deviceQuery.os = selectHandsetParameters.os;
53
+ }
54
+ if (selectHandsetParameters.osVersion) {
55
+ deviceQuery.osVersion = selectHandsetParameters.osVersion;
56
+ }
57
+ if (selectHandsetParameters.osBuild) {
58
+ deviceQuery.osBuild = selectHandsetParameters.osBuild;
59
+ }
60
+ if (selectHandsetParameters.cpuArch) {
61
+ deviceQuery.cpuArch = selectHandsetParameters.cpuArch;
62
+ }
63
+ if (selectHandsetParameters.manufacturer) {
64
+ deviceQuery.manufacturer = selectHandsetParameters.manufacturer;
65
+ }
66
+ if (selectHandsetParameters.model) {
67
+ deviceQuery.model = selectHandsetParameters.model;
68
+ }
69
+ if (selectHandsetParameters.resolution) {
70
+ deviceQuery.resolution = selectHandsetParameters.resolution;
71
+ }
72
+ if (selectHandsetParameters.location) {
73
+ deviceQuery.location = selectHandsetParameters.location;
74
+ }
75
+ if (selectHandsetParameters.description) {
76
+ deviceQuery.description = selectHandsetParameters.description;
77
+ }
78
+ if (selectHandsetParameters.operator) {
79
+ deviceQuery.operator = {
80
+ name: selectHandsetParameters.operator
81
+ };
82
+ }
83
+ return deviceQuery;
84
+ }
85
+ getHandsets(deviceQuery) {
86
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
87
+ var _a, _b;
88
+ const response = yield axios_1.default.post(`https://${constants_helper_1.ConstantsHelper.getShortTenantId()}.app.perfectomobile.com/api/v1/device-management/devices`, {
89
+ device: deviceQuery
90
+ }, {
91
+ headers: constants_helper_1.ConstantsHelper.getPerfectoAuthHeaders()
92
+ });
93
+ const handsets = ((_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.handsets) === null || _b === void 0 ? void 0 : _b.handset) || [];
94
+ const deviceIds = handsets
95
+ .filter((handset) => handset.available === 'true' &&
96
+ (!handset.inUse || handset.inUse === 'false'))
97
+ .map((handset) => handset.deviceId);
98
+ return deviceIds;
99
+ });
100
+ }
101
+ waitForAvailableHandsets(deviceQuery, timeout) {
102
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
103
+ const maxRetryTime = timeout * 60 * 1000;
104
+ const startTime = Date.now();
105
+ return new Promise((resolve, reject) => {
106
+ const checkHandsets = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
107
+ const elapsedTime = Date.now() - startTime;
108
+ if (elapsedTime >= maxRetryTime) {
109
+ reject(new Error('No device was found'));
110
+ return;
111
+ }
112
+ const deviceIds = yield this.getHandsets(deviceQuery);
113
+ if (deviceIds.length > 0) {
114
+ resolve(deviceIds);
115
+ }
116
+ else {
117
+ setTimeout(checkHandsets, 10000); // Retry after 10 seconds
118
+ }
119
+ });
120
+ checkHandsets();
121
+ });
122
+ });
123
+ }
124
+ }
125
+ exports.HandsetSelectHelper = HandsetSelectHelper;
126
+ //# sourceMappingURL=handset-select-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handset-select-helper.js","sourceRoot":"","sources":["../../../../../libs/execution-helpers-public/src/lib/handset-select-helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Browser } from 'webdriverio';
2
+ import { ScriptlessHelper } from '../types/scriptless-helper';
3
+ import type { ProcessedDataTableCell } from '../types/data-table';
4
+ import type { DesiredDeviceCapability } from '../types/desired-device-capabilities';
5
+ import type { UserDefinedVariable } from '../types/user-defined-variables';
6
+ export declare class HandsetVariableHelper extends ScriptlessHelper {
7
+ handsetKeyToDeviceCapability(input: string | DesiredDeviceCapability | null): DesiredDeviceCapability | null;
8
+ addDeviceSessionIdAndDeviceIdToHandsetKey(userDefinedVariableOrDataTableCell: UserDefinedVariable | ProcessedDataTableCell, webdriverSession: Browser): void;
9
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HandsetVariableHelper = void 0;
4
+ const scriptless_helper_1 = require("../types/scriptless-helper");
5
+ class HandsetVariableHelper extends scriptless_helper_1.ScriptlessHelper {
6
+ // We are expecting input of following types here
7
+ // 'device-id' in case of real-device (closed)
8
+ // '{deviceName: 'device-id', deviceSessionId: 'session-id'}' in case of real-device (open)
9
+ // '{...capability}' in case of web/virtual device
10
+ // {...capability} in case of web/virutal device
11
+ handsetKeyToDeviceCapability(input) {
12
+ if (!input) {
13
+ return null;
14
+ }
15
+ if (typeof input === 'string') {
16
+ try {
17
+ const parsed = JSON.parse(input);
18
+ if (typeof parsed === 'object') {
19
+ return parsed;
20
+ }
21
+ return { deviceName: input };
22
+ }
23
+ catch (error) {
24
+ return { deviceName: input };
25
+ }
26
+ }
27
+ return input;
28
+ }
29
+ addDeviceSessionIdAndDeviceIdToHandsetKey(userDefinedVariableOrDataTableCell, webdriverSession) {
30
+ if (typeof userDefinedVariableOrDataTableCell.key === 'object' &&
31
+ ['HandsetData', 'HANDSET'].includes(userDefinedVariableOrDataTableCell['@type'])) {
32
+ userDefinedVariableOrDataTableCell.key['deviceSessionId'] = webdriverSession.capabilities.deviceSessionId;
33
+ userDefinedVariableOrDataTableCell.key['deviceId'] = JSON.parse(webdriverSession.capabilities.platform).deviceId;
34
+ }
35
+ }
36
+ }
37
+ exports.HandsetVariableHelper = HandsetVariableHelper;
38
+ //# sourceMappingURL=handset-variable-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handset-variable-helper.js","sourceRoot":"","sources":["../../../../../libs/execution-helpers-public/src/lib/handset-variable-helper.ts"],"names":[],"mappings":";;;AACA,kEAA8D;AAS9D,MAAa,qBAAsB,SAAQ,oCAAgB;IACzD,iDAAiD;IACjD,8CAA8C;IAC9C,2FAA2F;IAC3F,kDAAkD;IAClD,gDAAgD;IAChD,4BAA4B,CAC1B,KAA8C;QAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC/B,OAAO,MAAiC,CAAC;gBAC3C,CAAC;gBACD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAiC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,UAAU,EAAE,KAAK,EAAiC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,OAAO,KAAgC,CAAC;IAC1C,CAAC;IAED,yCAAyC,CACvC,kCAE0B,EAC1B,gBAAyB;QAEzB,IACE,OAAO,kCAAkC,CAAC,GAAG,KAAK,QAAQ;YAC1D,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,QAAQ,CACjC,kCAAkC,CAAC,OAAO,CAAC,CAC5C,EACD,CAAC;YACA,kCAAkC,CAAC,GAA+B,CACjE,iBAAiB,CAClB,GACC,gBAAgB,CAAC,YAClB,CAAC,eAAe,CAAC;YAEjB,kCAAkC,CAAC,GAA+B,CACjE,UAAU,CACX,GAAG,IAAI,CAAC,KAAK,CACX,gBAAgB,CAAC,YAAyC,CAAC,QAAQ,CACrE,CAAC,QAAQ,CAAC;QACb,CAAC;IACH,CAAC;CACF;AAnDD,sDAmDC"}
@@ -0,0 +1,6 @@
1
+ import { ScriptlessHelper } from '../types/scriptless-helper';
2
+ import { Logger } from '../types/logger';
3
+ export declare class ParameterHelper extends ScriptlessHelper {
4
+ constructor(logger?: Logger);
5
+ getStatusError(actionReportMessage: string, status: string): Error | undefined;
6
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParameterHelper = void 0;
4
+ const message_helper_1 = require("./message-helper");
5
+ const scriptless_helper_1 = require("../types/scriptless-helper");
6
+ class ParameterHelper extends scriptless_helper_1.ScriptlessHelper {
7
+ constructor(logger) {
8
+ super(logger);
9
+ }
10
+ getStatusError(actionReportMessage, status) {
11
+ let actionError = undefined;
12
+ const statusParameterValue = status.toUpperCase();
13
+ if (statusParameterValue &&
14
+ statusParameterValue !== 'ERROR' &&
15
+ statusParameterValue !== 'OK') {
16
+ actionError = new Error(message_helper_1.errorDisplayMessage.parameter.statusUnknownValue.replace('[statusParameterValue]', status));
17
+ }
18
+ else if (statusParameterValue === 'ERROR') {
19
+ actionError = new Error(actionReportMessage);
20
+ }
21
+ return actionError;
22
+ }
23
+ }
24
+ exports.ParameterHelper = ParameterHelper;
25
+ //# sourceMappingURL=parameter-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameter-helper.js","sourceRoot":"","sources":["../../../../../libs/execution-helpers-public/src/lib/parameter-helper.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AACvD,kEAA8D;AAG9D,MAAa,eAAgB,SAAQ,oCAAgB;IACnD,YAAY,MAAe;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,cAAc,CACZ,mBAA2B,EAC3B,MAAc;QAEd,IAAI,WAAW,GAAG,SAAS,CAAC;QAC5B,MAAM,oBAAoB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAClD,IACE,oBAAoB;YACpB,oBAAoB,KAAK,OAAO;YAChC,oBAAoB,KAAK,IAAI,EAC7B,CAAC;YACD,WAAW,GAAG,IAAI,KAAK,CACrB,oCAAmB,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CACtD,wBAAwB,EACxB,MAAM,CACP,CACF,CAAC;QACJ,CAAC;aAAM,IAAI,oBAAoB,KAAK,OAAO,EAAE,CAAC;YAC5C,WAAW,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA3BD,0CA2BC"}
@@ -0,0 +1,5 @@
1
+ import { ScriptlessHelper } from '../types/scriptless-helper';
2
+ export declare class PerfectoExecuteScriptHelper extends ScriptlessHelper {
3
+ removeIrrelevantPartsFromErrorMessage(error: Error): Error;
4
+ isExecuteScriptResultFailed(result: string | boolean | undefined): result is false | 'false';
5
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PerfectoExecuteScriptHelper = void 0;
4
+ const scriptless_helper_1 = require("../types/scriptless-helper");
5
+ class PerfectoExecuteScriptHelper extends scriptless_helper_1.ScriptlessHelper {
6
+ removeIrrelevantPartsFromErrorMessage(error) {
7
+ if (error === null || error === void 0 ? void 0 : error.message) {
8
+ const patterns = [
9
+ /^WebDriverError: Failed to execute command .+: /,
10
+ /^WebDriverError: Failed to execute command handset open:/,
11
+ / when running "execute\/sync" with method ".*" and args ".*"$/,
12
+ /\[<isolated-vm>:[0-9]+:[0-9]+\]\n?/g,
13
+ /^WebDriverError: An unknown server-side error occurred while processing the command\./,
14
+ /Original error: ?/,
15
+ /\n/g
16
+ ];
17
+ const errorMessage = patterns.reduce((msg, pattern) => msg.replace(pattern, ''), error.message);
18
+ error.message = errorMessage;
19
+ }
20
+ return error;
21
+ }
22
+ isExecuteScriptResultFailed(result) {
23
+ return result === 'false' || result === false;
24
+ }
25
+ }
26
+ exports.PerfectoExecuteScriptHelper = PerfectoExecuteScriptHelper;
27
+ //# sourceMappingURL=perfecto-execute-script-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perfecto-execute-script-helper.js","sourceRoot":"","sources":["../../../../../libs/execution-helpers-public/src/lib/perfecto-execute-script-helper.ts"],"names":[],"mappings":";;;AAAA,kEAA8D;AAE9D,MAAa,2BAA4B,SAAQ,oCAAgB;IAC/D,qCAAqC,CAAC,KAAY;QAChD,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG;gBACf,iDAAiD;gBACjD,0DAA0D;gBAC1D,+DAA+D;gBAC/D,qCAAqC;gBACrC,uFAAuF;gBACvF,mBAAmB;gBACnB,KAAK;aACN,CAAC;YACF,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAClC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAC1C,KAAK,CAAC,OAAO,CACd,CAAC;YACF,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2BAA2B,CACzB,MAAoC;QAEpC,OAAO,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,KAAK,CAAC;IAChD,CAAC;CACF;AA1BD,kEA0BC"}
@@ -0,0 +1,4 @@
1
+ import { ScriptlessHelper } from '../types/scriptless-helper';
2
+ export declare class ScriptInfoHelper extends ScriptlessHelper {
3
+ getScriptInfo(parentExecutionId: string, property: string, reportName: string, testKey: string): string;
4
+ }