@applitools/core 1.4.6 → 2.0.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 (111) hide show
  1. package/dist/{classic → automation}/extract-text.js +14 -11
  2. package/dist/automation/get-viewport-size.js +2 -2
  3. package/dist/{classic → automation}/locate-text.js +5 -6
  4. package/dist/automation/locate.js +2 -2
  5. package/dist/automation/set-viewport-size.js +2 -2
  6. package/dist/automation/utils/take-screenshot.js +2 -2
  7. package/dist/{utils → automation/utils}/to-base-check-settings.js +3 -2
  8. package/dist/{utils → automation/utils}/wait-for-lazy-load.js +2 -2
  9. package/dist/check-and-close.js +7 -5
  10. package/dist/check.js +4 -5
  11. package/dist/classic/abort.js +4 -4
  12. package/dist/classic/check-and-close.js +9 -5
  13. package/dist/classic/check.js +12 -8
  14. package/dist/classic/close.js +3 -3
  15. package/dist/classic/core.js +9 -5
  16. package/dist/classic/open-eyes.js +17 -19
  17. package/dist/classic/utils/take-dom-capture.js +35 -54
  18. package/dist/close.js +1 -25
  19. package/dist/core.js +9 -5
  20. package/dist/errors/abort-error.js +5 -1
  21. package/dist/extract-text.js +13 -17
  22. package/dist/get-eyes-results.js +18 -0
  23. package/dist/{close-manager.js → get-manager-results.js} +11 -12
  24. package/dist/get-typed-eyes.js +5 -6
  25. package/dist/index.js +3 -3
  26. package/dist/locate-text.js +33 -7
  27. package/dist/locate.js +1 -1
  28. package/dist/make-ec-client.js +1 -9
  29. package/dist/make-manager.js +8 -33
  30. package/dist/open-eyes.js +3 -5
  31. package/dist/troubleshoot/check-network.js +41 -34
  32. package/dist/troubleshoot/eyes.js +2 -2
  33. package/dist/troubleshoot/ufg.js +3 -2
  34. package/dist/troubleshoot/utils.js +1 -25
  35. package/dist/types.js +0 -1
  36. package/dist/ufg/abort.js +11 -24
  37. package/dist/ufg/check-and-close.js +54 -50
  38. package/dist/ufg/check.js +33 -24
  39. package/dist/ufg/close.js +17 -18
  40. package/dist/ufg/core.js +9 -5
  41. package/dist/ufg/get-base-eyes.js +2 -0
  42. package/dist/ufg/get-results.js +27 -0
  43. package/dist/ufg/open-eyes.js +22 -25
  44. package/dist/ufg/utils/extract-broker-url.js +52 -0
  45. package/dist/ufg/utils/generate-safe-selectors.js +10 -5
  46. package/dist/ufg/utils/take-dom-snapshot.js +37 -36
  47. package/dist/ufg/utils/take-dom-snapshots.js +13 -17
  48. package/dist/ufg/utils/take-snapshots.js +3 -3
  49. package/dist/ufg/utils/take-vhses.js +60 -166
  50. package/dist/utils/format-results.js +37 -37
  51. package/package.json +19 -36
  52. package/types/automation/extract-text.d.ts +16 -0
  53. package/types/automation/get-viewport-size.d.ts +7 -7
  54. package/types/automation/locate-text.d.ts +15 -0
  55. package/types/automation/locate.d.ts +8 -8
  56. package/types/automation/set-viewport-size.d.ts +7 -7
  57. package/types/automation/types.d.ts +38 -42
  58. package/types/automation/utils/take-screenshot.d.ts +9 -9
  59. package/types/automation/utils/to-base-check-settings.d.ts +17 -0
  60. package/types/{utils → automation/utils}/wait-for-lazy-load.d.ts +3 -3
  61. package/types/check-and-close.d.ts +11 -13
  62. package/types/check.d.ts +12 -12
  63. package/types/classic/abort.d.ts +10 -10
  64. package/types/classic/check-and-close.d.ts +15 -11
  65. package/types/classic/check.d.ts +11 -11
  66. package/types/classic/close.d.ts +10 -10
  67. package/types/classic/core.d.ts +4 -4
  68. package/types/classic/get-base-eyes.d.ts +4 -4
  69. package/types/classic/open-eyes.d.ts +9 -9
  70. package/types/classic/types.d.ts +7 -7
  71. package/types/classic/utils/take-dom-capture.d.ts +4 -4
  72. package/types/close-batch.d.ts +1 -1
  73. package/types/close.d.ts +9 -8
  74. package/types/core.d.ts +4 -4
  75. package/types/delete-test.d.ts +1 -1
  76. package/types/errors/abort-error.d.ts +3 -2
  77. package/types/extract-text.d.ts +11 -9
  78. package/types/get-eyes-results.d.ts +12 -0
  79. package/types/get-manager-results.d.ts +14 -0
  80. package/types/get-typed-eyes.d.ts +9 -8
  81. package/types/index.d.ts +3 -3
  82. package/types/locate-text.d.ts +11 -9
  83. package/types/locate.d.ts +9 -9
  84. package/types/make-ec-client.d.ts +3 -3
  85. package/types/make-manager.d.ts +12 -12
  86. package/types/open-eyes.d.ts +13 -13
  87. package/types/troubleshoot/check-network.d.ts +3 -3
  88. package/types/troubleshoot/utils.d.ts +0 -2
  89. package/types/types.d.ts +65 -85
  90. package/types/ufg/abort.d.ts +10 -19
  91. package/types/ufg/check-and-close.d.ts +25 -13
  92. package/types/ufg/check.d.ts +11 -11
  93. package/types/ufg/close.d.ts +10 -19
  94. package/types/ufg/core.d.ts +4 -4
  95. package/types/ufg/get-base-eyes.d.ts +6 -6
  96. package/types/ufg/get-results.d.ts +11 -0
  97. package/types/ufg/open-eyes.d.ts +9 -9
  98. package/types/ufg/types.d.ts +13 -17
  99. package/types/ufg/utils/extract-broker-url.d.ts +6 -0
  100. package/types/ufg/utils/generate-safe-selectors.d.ts +14 -10
  101. package/types/ufg/utils/take-dom-snapshot.d.ts +34 -9
  102. package/types/ufg/utils/take-dom-snapshots.d.ts +3 -3
  103. package/types/ufg/utils/take-snapshots.d.ts +4 -4
  104. package/types/ufg/utils/take-vhses.d.ts +4 -4
  105. package/types/utils/format-results.d.ts +1 -1
  106. package/dist/utils/extract-broker-url.js +0 -24
  107. package/types/classic/extract-text.d.ts +0 -16
  108. package/types/classic/locate-text.d.ts +0 -15
  109. package/types/close-manager.d.ts +0 -18
  110. package/types/utils/extract-broker-url.d.ts +0 -2
  111. package/types/utils/to-base-check-settings.d.ts +0 -18
@@ -4,13 +4,13 @@ exports.toJsonOutput = exports.toXmlOutput = exports.toFlattenedTAPString = expo
4
4
  const OK = 'ok';
5
5
  const NOT_OK = 'not ok';
6
6
  function toFormatterString(results, { includeSubTests = true, markNewAsPassed = false } = {}) {
7
- if (results.length === 0) {
7
+ var _a;
8
+ if (results.length === 0)
8
9
  return 'No results found.';
9
- }
10
10
  let formattedString = '[EYES: TEST RESULTS]:\n';
11
- for (let i = 0; i < results.length; i += 1) {
12
- /** @type {TestResults} */ const currentResult = results[i];
13
- const testTitle = `${currentResult.name} [${currentResult.hostDisplaySize.width}x${currentResult.hostDisplaySize.height}]`;
11
+ results.forEach(currentResult => {
12
+ var _a, _b, _c, _d;
13
+ const testTitle = `${currentResult.name} [${(_a = currentResult.hostDisplaySize) === null || _a === void 0 ? void 0 : _a.width}x${(_b = currentResult.hostDisplaySize) === null || _b === void 0 ? void 0 : _b.height}]`;
14
14
  let testResult = '';
15
15
  if (currentResult.isNew) {
16
16
  testResult = markNewAsPassed ? 'Passed' : 'New';
@@ -19,39 +19,35 @@ function toFormatterString(results, { includeSubTests = true, markNewAsPassed =
19
19
  testResult = 'Passed';
20
20
  }
21
21
  else {
22
- const stepsFailed = currentResult.mismatches + currentResult.missing;
22
+ const stepsFailed = ((_c = currentResult.mismatches) !== null && _c !== void 0 ? _c : 0) + ((_d = currentResult.missing) !== null && _d !== void 0 ? _d : 0);
23
23
  testResult = `Failed ${stepsFailed} of ${currentResult.steps}`;
24
24
  }
25
25
  formattedString += `${testTitle} - ${testResult}\n`;
26
26
  if (includeSubTests) {
27
- if (currentResult.stepsInfo.length > 0) {
28
- for (let j = 0; j < currentResult.stepsInfo.length; j += 1) {
29
- const currentStep = currentResult.stepsInfo[j];
27
+ if (currentResult.stepsInfo && currentResult.stepsInfo.length > 0) {
28
+ currentResult.stepsInfo.forEach(currentStep => {
30
29
  const subTestTitle = currentStep.name;
31
30
  const subTestResult = currentStep.isDifferent ? 'Passed' : 'Failed';
32
31
  formattedString += `\t> ${subTestTitle} - ${subTestResult}\n`;
33
- }
32
+ });
34
33
  }
35
34
  else {
36
35
  formattedString += '\tNo steps exist for this test.\n';
37
36
  }
38
37
  }
39
- }
40
- formattedString += `See details at ${results[0].appUrls.batch}`;
38
+ });
39
+ formattedString += `See details at ${(_a = results[0].appUrls) === null || _a === void 0 ? void 0 : _a.batch}`;
41
40
  return formattedString;
42
41
  }
43
42
  exports.toFormatterString = toFormatterString;
44
43
  function toHierarchicTAPString(results, { includeSubTests = true, markNewAsPassed = false } = {}) {
45
- if (results.length === 0) {
44
+ if (results.length === 0)
46
45
  return '';
47
- }
48
46
  let tapString = `1..${results.length}\n`;
49
- for (let i = 0; i < results.length; i += 1) {
50
- /** @type {TestResults} */ const currentResult = results[i];
51
- const tapIndex = i + 1;
52
- if (i > 0) {
47
+ results.forEach((currentResult, index) => {
48
+ if (index > 0)
53
49
  tapString += '#\n';
54
- }
50
+ const tapIndex = index + 1;
55
51
  const name = `Test: '${currentResult.name}', Application: '${currentResult.appName}'`;
56
52
  if (!currentResult.isDifferent) {
57
53
  tapString += `${OK} ${tapIndex} - [PASSED TEST] ${name}\n`;
@@ -73,24 +69,26 @@ function toHierarchicTAPString(results, { includeSubTests = true, markNewAsPasse
73
69
  }
74
70
  tapString += `#\tMismatches: ${currentResult.mismatches}\n`;
75
71
  }
76
- const url = currentResult.appUrls && currentResult.appUrls.session ? currentResult.appUrls.session : "No URL (session didn't start).";
72
+ const url = currentResult.appUrls && currentResult.appUrls.session
73
+ ? currentResult.appUrls.session
74
+ : "No URL (session didn't start).";
77
75
  tapString += `#\tTest url: ${url}\n`;
78
76
  tapString += `#\tBrowser: ${currentResult.hostApp}, Viewport: ${currentResult.hostDisplaySize}\n`;
79
77
  if (includeSubTests) {
80
- if (currentResult.stepsInfo.length > 0) {
78
+ if (currentResult.stepsInfo && currentResult.stepsInfo.length > 0) {
81
79
  tapString += `\t1..${currentResult.stepsInfo.length}\n`;
82
- for (let j = 0; j < currentResult.stepsInfo.length; j += 1) {
83
- const currentStep = currentResult.stepsInfo[j];
80
+ currentResult.stepsInfo.forEach(currentStep => {
81
+ var _a;
84
82
  tapString += '\t';
85
83
  tapString += currentStep.isDifferent ? NOT_OK : OK;
86
- tapString += ` '${currentStep.name}', URL: ${currentStep.appUrls.step}\n`;
87
- }
84
+ tapString += ` '${currentStep.name}', URL: ${(_a = currentStep.appUrls) === null || _a === void 0 ? void 0 : _a.step}\n`;
85
+ });
88
86
  }
89
87
  else {
90
88
  tapString += '\tNo steps exist for this test.\n';
91
89
  }
92
90
  }
93
- }
91
+ });
94
92
  return tapString;
95
93
  }
96
94
  exports.toHierarchicTAPString = toHierarchicTAPString;
@@ -98,10 +96,9 @@ function toFlattenedTAPString(results, { markNewAsPassed = false } = {}) {
98
96
  let tapString = '';
99
97
  let stepsCounter = 0;
100
98
  // We'll add the TAP plan at the beginning, after we calculate the total number of steps.
101
- for (let i = 0; i < results.length; i += 1) {
99
+ results.forEach((currentResult, index) => {
102
100
  tapString += '#\n';
103
- /** @type {TestResults} */ const currentResult = results[i];
104
- const tapIndex = i + 1;
101
+ const tapIndex = index + 1;
105
102
  const name = `Test: '${currentResult.name}', Application: '${currentResult.appName}'`;
106
103
  if (!currentResult.isDifferent) {
107
104
  tapString += `# ${OK} ${tapIndex} - [PASSED TEST] ${name}\n`;
@@ -123,20 +120,22 @@ function toFlattenedTAPString(results, { markNewAsPassed = false } = {}) {
123
120
  }
124
121
  tapString += `#\tMismatches: ${currentResult.mismatches}\n`;
125
122
  }
126
- const url = currentResult.appUrls && currentResult.appUrls.session ? currentResult.appUrls.session : "No URL (session didn't start).";
123
+ const url = currentResult.appUrls && currentResult.appUrls.session
124
+ ? currentResult.appUrls.session
125
+ : "No URL (session didn't start).";
127
126
  tapString += `#\tTest url: ${url}\n`;
128
- if (currentResult.stepsInfo.length > 0) {
129
- for (let j = 0; j < currentResult.stepsInfo.length; j += 1) {
127
+ if (currentResult.stepsInfo && currentResult.stepsInfo.length > 0) {
128
+ currentResult.stepsInfo.forEach(currentStep => {
129
+ var _a;
130
130
  stepsCounter += 1;
131
- const currentStep = currentResult.stepsInfo[j];
132
131
  tapString += currentStep.isDifferent ? NOT_OK : OK;
133
- tapString += ` ${stepsCounter} '${currentStep.name}', URL: ${currentStep.appUrls.step}\n`;
134
- }
132
+ tapString += ` ${stepsCounter} '${currentStep.name}', URL: ${(_a = currentStep.appUrls) === null || _a === void 0 ? void 0 : _a.step}\n`;
133
+ });
135
134
  }
136
135
  else {
137
136
  tapString += '#\tNo steps exist for this test.\n';
138
137
  }
139
- }
138
+ });
140
139
  if (stepsCounter > 0) {
141
140
  tapString = `1..${stepsCounter}\n${tapString}`;
142
141
  }
@@ -148,6 +147,7 @@ function toXmlOutput(results, { totalTime } = {}) {
148
147
  let output = `<?xml version="1.0" encoding="UTF-8" ?>`;
149
148
  output += `\n<testsuite name="${suiteName}" tests="${results.length}" time="${totalTime}">`;
150
149
  results.forEach(result => {
150
+ var _a;
151
151
  output += `\n<testcase name="${result.name}"${result.duration ? ` time="${result.duration}"` : ''}>`;
152
152
  const properties = {};
153
153
  if (result.hostOS)
@@ -165,7 +165,7 @@ function toXmlOutput(results, { totalTime } = {}) {
165
165
  }
166
166
  if (result.isDifferent) {
167
167
  output += `\n<failure>`;
168
- output += `\nDifference found. See ${result.appUrls.batch} for details.`;
168
+ output += `\nDifference found. See ${(_a = result.appUrls) === null || _a === void 0 ? void 0 : _a.batch} for details.`;
169
169
  output += `\n</failure>`;
170
170
  }
171
171
  else if (result.isAborted) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "1.4.6",
3
+ "version": "2.0.0",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -40,74 +40,57 @@
40
40
  "types"
41
41
  ],
42
42
  "scripts": {
43
- "lint": "eslint '**/*.ts'",
44
- "build": "tsc --project ./tsconfig.build.json",
43
+ "lint": "node ../../node_modules/.bin/eslint '**/*.ts'",
44
+ "build": "node ../../node_modules/.bin/tsc --project ./tsconfig.build.json",
45
45
  "test": "mocha --no-timeouts -r ts-node/register --parallel --jobs 15 './test/**/*.spec.ts'",
46
46
  "test:sanity": "yarn test:unit",
47
47
  "test:e2e": "mocha --no-timeouts -r ts-node/register --parallel --jobs 15 './test/e2e/**/*.spec.ts'",
48
48
  "test:it": "mocha --no-timeouts -r ts-node/register './test/it/**/*.spec.ts'",
49
49
  "test:unit": "mocha --no-timeouts -r ts-node/register './test/unit/**/*.spec.ts'",
50
50
  "setup": "yarn docker:setup",
51
- "docker:setup": "node ../scripts/scripts/generate-docker-compose-config.js && docker-compose up -d",
51
+ "docker:setup": "node ../../scripts/generate-docker-compose-config.js && docker-compose up -d",
52
52
  "docker:teardown": "docker-compose down",
53
53
  "deps": "bongo deps",
54
54
  "preversion": "bongo preversion",
55
55
  "version": "bongo version",
56
56
  "postversion": "bongo postversion --skip-release-notification"
57
57
  },
58
- "husky": {
59
- "hooks": {
60
- "pre-push": "yarn bongo lint"
61
- }
62
- },
63
58
  "dependencies": {
64
- "@applitools/core-base": "1.1.32",
59
+ "@applitools/core-base": "1.1.34",
65
60
  "@applitools/dom-capture": "11.2.1",
66
61
  "@applitools/dom-snapshot": "4.7.3",
67
- "@applitools/driver": "1.11.26",
68
- "@applitools/logger": "1.1.42",
69
- "@applitools/nml-client": "1.3.29",
70
- "@applitools/req": "1.1.28",
71
- "@applitools/screenshoter": "3.7.23",
72
- "@applitools/snippets": "2.4.14",
73
- "@applitools/ufg-client": "1.1.22",
74
- "@applitools/utils": "1.3.28",
62
+ "@applitools/driver": "1.11.29",
63
+ "@applitools/logger": "1.1.45",
64
+ "@applitools/nml-client": "1.3.32",
65
+ "@applitools/req": "1.1.30",
66
+ "@applitools/screenshoter": "3.7.25",
67
+ "@applitools/snippets": "2.4.15",
68
+ "@applitools/ufg-client": "1.1.24",
69
+ "@applitools/utils": "1.3.30",
75
70
  "abort-controller": "3.0.0",
76
71
  "chalk": "4.1.2",
77
72
  "node-fetch": "2.6.7",
78
73
  "throat": "6.0.1"
79
74
  },
80
75
  "optionalDependencies": {
81
- "@applitools/ec-client": "^1.2.5"
76
+ "@applitools/ec-client": "1.2.6"
82
77
  },
83
78
  "devDependencies": {
84
79
  "@applitools/bongo": "^2.2.2",
85
- "@applitools/sdk-fake-eyes-server": "^2.1.3",
86
- "@applitools/spec-driver-puppeteer": "^1.1.38",
87
- "@applitools/spec-driver-selenium": "^1.5.25",
88
- "@applitools/spec-driver-webdriverio": "^1.4.22",
89
- "@applitools/test-server": "^1.1.22",
90
- "@applitools/test-utils": "^1.5.10",
80
+ "@applitools/spec-driver-puppeteer": "^1.1.40",
81
+ "@applitools/spec-driver-selenium": "^1.5.27",
82
+ "@applitools/spec-driver-webdriverio": "^1.4.24",
83
+ "@applitools/test-server": "^1.1.24",
84
+ "@applitools/test-utils": "^1.5.12",
91
85
  "@types/mocha": "^9.1.1",
92
86
  "@types/node": "12",
93
87
  "@types/selenium-webdriver": "^4.1.2",
94
- "@typescript-eslint/eslint-plugin": "^5.38.0",
95
- "@typescript-eslint/parser": "^5.38.0",
96
88
  "chromedriver": "^106.0.0",
97
- "eslint": "^8.23.1",
98
- "eslint-config-prettier": "^8.5.0",
99
- "eslint-plugin-no-only-tests": "^3.0.0",
100
- "eslint-plugin-node": "^11.1.0",
101
- "eslint-plugin-prettier": "^4.0.0",
102
- "husky": "^4.3.7",
103
89
  "mocha": "^10.0.0",
104
90
  "nock": "^13.2.8",
105
91
  "png-async": "^0.9.4",
106
- "prettier": "^2.6.2",
107
92
  "puppeteer": "^16.2.0",
108
93
  "selenium-webdriver": "4.4",
109
- "ts-node": "^10.7.0",
110
- "typescript": "^4.9.4",
111
94
  "webdriverio": "^7.25.0"
112
95
  },
113
96
  "engines": {
@@ -0,0 +1,16 @@
1
+ import type { MaybeArray } from '@applitools/utils';
2
+ import type { DriverTarget, ImageTarget, ExtractTextSettings } from '../classic/types';
3
+ import type { Core as BaseCore } from '@applitools/core-base';
4
+ import { type Logger } from '@applitools/logger';
5
+ import { type SpecType, type SpecDriver } from '@applitools/driver';
6
+ type Options<TSpec extends SpecType> = {
7
+ core: BaseCore;
8
+ spec?: SpecDriver<TSpec>;
9
+ logger: Logger;
10
+ };
11
+ export declare function makeExtractText<TSpec extends SpecType>({ core, spec, logger: defaultLogger }: Options<TSpec>): ({ target, settings, logger, }: {
12
+ target: DriverTarget<TSpec> | ImageTarget;
13
+ settings: MaybeArray<ExtractTextSettings<TSpec>>;
14
+ logger?: Logger | undefined;
15
+ }) => Promise<string[]>;
16
+ export {};
@@ -1,12 +1,12 @@
1
1
  import type { DriverTarget } from './types';
2
2
  import { type Logger } from '@applitools/logger';
3
- import { type SpecDriver } from '@applitools/driver';
4
- type Options<TDriver, TContext, TElement, TSelector> = {
5
- spec: SpecDriver<TDriver, TContext, TElement, TSelector>;
6
- logger?: Logger;
3
+ import { type SpecType, type SpecDriver } from '@applitools/driver';
4
+ type Options<TSpec extends SpecType> = {
5
+ spec: SpecDriver<TSpec>;
6
+ logger: Logger;
7
7
  };
8
- export declare function makeGetViewportSize<TDriver, TContext, TElement, TSelector>({ spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): ({ target, logger, }: {
9
- target: DriverTarget<TDriver, TContext, TElement, TSelector>;
10
- logger?: Logger;
8
+ export declare function makeGetViewportSize<TSpec extends SpecType>({ spec, logger: defaultLogger }: Options<TSpec>): ({ target, logger, }: {
9
+ target: DriverTarget<TSpec>;
10
+ logger?: Logger | undefined;
11
11
  }) => Promise<import("@applitools/utils").Size>;
12
12
  export {};
@@ -0,0 +1,15 @@
1
+ import type { DriverTarget, ImageTarget, LocateTextSettings, LocateTextResult } from './types';
2
+ import type { Core as BaseCore } from '@applitools/core-base';
3
+ import { type Logger } from '@applitools/logger';
4
+ import { type SpecType, type SpecDriver } from '@applitools/driver';
5
+ type Options<TSpec extends SpecType> = {
6
+ core: BaseCore;
7
+ spec?: SpecDriver<TSpec>;
8
+ logger: Logger;
9
+ };
10
+ export declare function makeLocateText<TSpec extends SpecType>({ core, spec, logger: defaultLogger }: Options<TSpec>): <TPattern extends string>({ target, settings, logger, }: {
11
+ target: DriverTarget<TSpec> | ImageTarget;
12
+ settings: LocateTextSettings<TPattern, TSpec>;
13
+ logger?: Logger | undefined;
14
+ }) => Promise<LocateTextResult<TPattern>>;
15
+ export {};
@@ -1,15 +1,15 @@
1
1
  import type { DriverTarget, ImageTarget, LocateSettings, LocateResult } from './types';
2
2
  import type { Core as BaseCore } from '@applitools/core-base';
3
3
  import { type Logger } from '@applitools/logger';
4
- import { type SpecDriver } from '@applitools/driver';
5
- type Options<TDriver, TContext, TElement, TSelector> = {
4
+ import { type SpecType, type SpecDriver } from '@applitools/driver';
5
+ type Options<TSpec extends SpecType> = {
6
6
  core: BaseCore;
7
- spec: SpecDriver<TDriver, TContext, TElement, TSelector>;
8
- logger?: Logger;
7
+ spec?: SpecDriver<TSpec>;
8
+ logger: Logger;
9
9
  };
10
- export declare function makeLocate<TDriver, TContext, TElement, TSelector>({ spec, core, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): <TLocator extends string>({ settings, target, logger, }: {
11
- target: DriverTarget<TDriver, TContext, TElement, TSelector> | ImageTarget;
12
- settings: LocateSettings<TLocator, TElement, TSelector>;
13
- logger?: Logger;
10
+ export declare function makeLocate<TSpec extends SpecType>({ spec, core, logger: defaultLogger }: Options<TSpec>): <TLocator extends string>({ settings, target, logger, }: {
11
+ target: DriverTarget<TSpec> | ImageTarget;
12
+ settings: LocateSettings<TLocator, TSpec>;
13
+ logger?: Logger | undefined;
14
14
  }) => Promise<LocateResult<TLocator>>;
15
15
  export {};
@@ -1,14 +1,14 @@
1
1
  import type { Size } from '@applitools/utils';
2
2
  import type { DriverTarget } from './types';
3
3
  import { type Logger } from '@applitools/logger';
4
- import { type SpecDriver } from '@applitools/driver';
5
- type Options<TDriver, TContext, TElement, TSelector> = {
6
- spec: SpecDriver<TDriver, TContext, TElement, TSelector>;
7
- logger?: Logger;
4
+ import { type SpecType, type SpecDriver } from '@applitools/driver';
5
+ type Options<TSpec extends SpecType> = {
6
+ spec: SpecDriver<TSpec>;
7
+ logger: Logger;
8
8
  };
9
- export declare function makeSetViewportSize<TDriver, TContext, TElement, TSelector>({ spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): ({ target, size, logger, }: {
10
- target: DriverTarget<TDriver, TContext, TElement, TSelector>;
9
+ export declare function makeSetViewportSize<TSpec extends SpecType>({ spec, logger: defaultLogger }: Options<TSpec>): ({ target, size, logger, }: {
10
+ target: DriverTarget<TSpec>;
11
11
  size: Size;
12
- logger?: Logger;
12
+ logger?: Logger | undefined;
13
13
  }) => Promise<void>;
14
14
  export {};
@@ -1,72 +1,68 @@
1
1
  import type { MaybeArray, Size, Region } from '@applitools/utils';
2
2
  import type * as BaseCore from '@applitools/core-base/types';
3
- import { type Driver, type Selector } from '@applitools/driver';
3
+ import { type SpecType, type Driver, type ElementReference, type ContextReference } from '@applitools/driver';
4
4
  import { type Logger } from '@applitools/logger';
5
5
  export * from '@applitools/core-base/types';
6
- export type DriverTarget<TDriver, TContext, TElement, TSelector> = TDriver | Driver<TDriver, TContext, TElement, TSelector>;
7
- export interface Core<TDriver, TContext, TElement, TSelector, TEyes = Eyes<TDriver, TContext, TElement, TSelector>> extends BaseCore.Core<TEyes> {
8
- isDriver(driver: any): driver is TDriver;
9
- isElement(element: any): element is TElement;
10
- isSelector(selector: any): selector is TSelector;
11
- getViewportSize(options: {
12
- target: DriverTarget<TDriver, TContext, TElement, TSelector>;
6
+ export type DriverTarget<TSpec extends SpecType> = TSpec['driver'] | Driver<TSpec>;
7
+ export type Target<TSpec extends SpecType> = DriverTarget<TSpec> | BaseCore.Target;
8
+ export interface Core<TSpec extends SpecType, TTarget = Target<TSpec>, TEyes extends Eyes<TSpec, TTarget> = Eyes<TSpec, TTarget>> extends BaseCore.Core<TTarget, TEyes> {
9
+ isDriver?(driver: any): driver is TSpec['driver'];
10
+ isElement?(element: any): element is TSpec['element'];
11
+ isSelector?(selector: any): selector is TSpec['selector'];
12
+ getViewportSize?(options: {
13
+ target: DriverTarget<TSpec>;
13
14
  logger?: Logger;
14
15
  }): Promise<Size>;
15
- setViewportSize(options: {
16
- target: DriverTarget<TDriver, TContext, TElement, TSelector>;
16
+ setViewportSize?(options: {
17
+ target: DriverTarget<TSpec>;
17
18
  size: Size;
18
19
  logger?: Logger;
19
20
  }): Promise<void>;
20
21
  openEyes(options: {
21
- target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
22
+ target?: DriverTarget<TSpec>;
22
23
  settings: BaseCore.OpenSettings;
23
24
  eyes?: BaseCore.Eyes[];
24
25
  logger?: Logger;
25
26
  }): Promise<TEyes>;
26
27
  locate<TLocator extends string>(options: {
27
- target: DriverTarget<TDriver, TContext, TElement, TSelector> | BaseCore.ImageTarget;
28
- settings: LocateSettings<TLocator, TElement, TSelector>;
28
+ target: TTarget;
29
+ settings: LocateSettings<TLocator, TSpec>;
29
30
  logger?: Logger;
30
31
  }): Promise<BaseCore.LocateResult<TLocator>>;
32
+ locateText<TPattern extends string>(options: {
33
+ target: TTarget;
34
+ settings: LocateTextSettings<TPattern, TSpec>;
35
+ logger?: Logger;
36
+ }): Promise<BaseCore.LocateTextResult<TPattern>>;
37
+ extractText(options: {
38
+ target: TTarget;
39
+ settings: MaybeArray<ExtractTextSettings<TSpec>>;
40
+ logger?: Logger;
41
+ }): Promise<string[]>;
31
42
  }
32
- export interface Eyes<TDriver, TContext, TElement, TSelector, TTarget = DriverTarget<TDriver, TContext, TElement, TSelector>> extends BaseCore.Eyes<TTarget> {
43
+ export interface Eyes<TSpec extends SpecType, TTarget = Target<TSpec>> extends BaseCore.Eyes<TTarget> {
33
44
  getBaseEyes(options?: {
34
45
  logger?: Logger;
35
46
  }): Promise<BaseCore.Eyes[]>;
36
47
  check(options?: {
37
48
  target?: TTarget;
38
- settings?: CheckSettings<TElement, TSelector>;
49
+ settings?: CheckSettings<TSpec>;
39
50
  logger?: Logger;
40
51
  }): Promise<BaseCore.CheckResult[]>;
41
52
  checkAndClose(options?: {
42
53
  target?: TTarget;
43
- settings?: CheckSettings<TElement, TSelector> & BaseCore.CloseSettings;
54
+ settings?: CheckSettings<TSpec> & BaseCore.CloseSettings;
44
55
  logger?: Logger;
45
56
  }): Promise<BaseCore.TestResult[]>;
46
- locateText?<TPattern extends string>(options: {
47
- target?: TTarget;
48
- settings: LocateTextSettings<TPattern, TElement, TSelector>;
49
- logger?: Logger;
50
- }): Promise<BaseCore.LocateTextResult<TPattern>>;
51
- extractText?(options: {
52
- target?: TTarget;
53
- settings: MaybeArray<ExtractTextSettings<TElement, TSelector>>;
54
- logger?: Logger;
55
- }): Promise<string[]>;
56
57
  }
57
- type RegionReference<TElement, TSelector> = Region | ElementReference<TElement, TSelector>;
58
- type ElementReference<TElement, TSelector> = TElement | Selector<TSelector>;
59
- type FrameReference<TElement, TSelector> = ElementReference<TElement, TSelector> | string | number;
60
- type ContextReference<TElement, TSelector> = {
61
- frame: FrameReference<TElement, TSelector>;
62
- scrollRootElement?: ElementReference<TElement, TSelector>;
63
- };
64
- type StitchMode = 'Scroll' | 'CSS';
65
- export interface ScreenshotSettings<TElement, TSelector> extends BaseCore.ImageSettings<RegionReference<TElement, TSelector>> {
66
- frames?: (ContextReference<TElement, TSelector> | FrameReference<TElement, TSelector>)[];
58
+ export interface ScreenshotSettings<TSpec extends SpecType> extends BaseCore.ImageSettings<Region | ElementReference<TSpec>> {
59
+ frames?: (ContextReference<TSpec> | {
60
+ frame: ContextReference<TSpec>;
61
+ scrollRootElement?: ElementReference<TSpec>;
62
+ })[];
67
63
  fully?: boolean;
68
- scrollRootElement?: ElementReference<TElement, TSelector>;
69
- stitchMode?: StitchMode;
64
+ scrollRootElement?: ElementReference<TSpec>;
65
+ stitchMode?: 'Scroll' | 'CSS';
70
66
  hideScrollbars?: boolean;
71
67
  hideCaret?: boolean;
72
68
  overlap?: {
@@ -82,7 +78,7 @@ export interface ScreenshotSettings<TElement, TSelector> extends BaseCore.ImageS
82
78
  };
83
79
  webview?: boolean | string;
84
80
  }
85
- export type LocateSettings<TLocator extends string, TElement, TSelector> = BaseCore.LocateSettings<TLocator, RegionReference<TElement, TSelector>> & ScreenshotSettings<TElement, TSelector>;
86
- export type CheckSettings<TElement, TSelector> = BaseCore.CheckSettings<RegionReference<TElement, TSelector>> & ScreenshotSettings<TElement, TSelector>;
87
- export type LocateTextSettings<TPattern extends string, TElement, TSelector> = BaseCore.LocateTextSettings<TPattern, RegionReference<TElement, TSelector>> & ScreenshotSettings<TElement, TSelector>;
88
- export type ExtractTextSettings<TElement, TSelector> = BaseCore.ExtractTextSettings<RegionReference<TElement, TSelector>> & ScreenshotSettings<TElement, TSelector>;
81
+ export type LocateSettings<TLocator extends string, TSpec extends SpecType> = BaseCore.LocateSettings<TLocator, Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
82
+ export type LocateTextSettings<TPattern extends string, TSpec extends SpecType> = BaseCore.LocateTextSettings<TPattern, Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
83
+ export type ExtractTextSettings<TSpec extends SpecType> = BaseCore.ExtractTextSettings<Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
84
+ export type CheckSettings<TSpec extends SpecType> = BaseCore.CheckSettings<Region | ElementReference<TSpec>> & ScreenshotSettings<TSpec>;
@@ -1,19 +1,19 @@
1
1
  import type { Region } from '@applitools/utils';
2
2
  import type { ScreenshotSettings } from '../../classic/types';
3
3
  import { type Logger } from '@applitools/logger';
4
- import { type Driver, type Element } from '@applitools/driver';
5
- export type Screenshot = {
4
+ import { type Driver, type Element, type ElementReference, type SpecType } from '@applitools/driver';
5
+ export type Screenshot<TSpec extends SpecType> = {
6
6
  image: any;
7
7
  region: Region;
8
- element: Element<unknown, unknown, unknown, unknown>;
9
- scrollingElement: Element<unknown, unknown, unknown, unknown>;
8
+ element: Element<TSpec>;
9
+ scrollingElement: Element<TSpec>;
10
10
  restoreState(): Promise<void>;
11
11
  calculatedRegions: [];
12
12
  };
13
- export declare function takeScreenshot<TDriver, TContext, TElement, TSelector>({ driver, settings, logger, }: {
14
- driver: Driver<TDriver, TContext, TElement, TSelector>;
15
- settings: ScreenshotSettings<TElement, TSelector> & {
16
- regionsToCalculate?: any[];
13
+ export declare function takeScreenshot<TSpec extends SpecType>({ driver, settings, logger, }: {
14
+ driver: Driver<TSpec>;
15
+ settings: ScreenshotSettings<TSpec> & {
16
+ regionsToCalculate?: ElementReference<TSpec>[];
17
17
  };
18
18
  logger: Logger;
19
- }): Promise<Screenshot>;
19
+ }): Promise<Screenshot<TSpec>>;
@@ -0,0 +1,17 @@
1
+ import type { Region } from '@applitools/utils';
2
+ import type { CheckSettings } from '../types';
3
+ import type { CheckSettings as BaseCheckSettings } from '@applitools/core-base';
4
+ import { type SpecType, type ElementReference, type Selector } from '@applitools/driver';
5
+ export declare function toBaseCheckSettings<TSpec extends SpecType>({ settings }: {
6
+ settings: CheckSettings<TSpec>;
7
+ }): {
8
+ elementReferencesToCalculate: ElementReference<TSpec>[];
9
+ elementReferenceToTarget: ElementReference<TSpec> | undefined;
10
+ getBaseCheckSettings: ({ calculatedRegions, preserveTransformation, }: {
11
+ calculatedRegions: {
12
+ selector?: Selector;
13
+ regions: Region[];
14
+ }[];
15
+ preserveTransformation?: boolean | undefined;
16
+ }) => BaseCheckSettings;
17
+ };
@@ -1,5 +1,5 @@
1
1
  import { type Logger } from '@applitools/logger';
2
- import { type Context } from '@applitools/driver';
2
+ import { type SpecType, type Context } from '@applitools/driver';
3
3
  export type LazyLoadSettings = {
4
4
  scrollLength?: number;
5
5
  waitingTime?: number;
@@ -7,8 +7,8 @@ export type LazyLoadSettings = {
7
7
  executionTimeout?: number;
8
8
  pollTimeout?: number;
9
9
  };
10
- export declare function waitForLazyLoad<TContext extends Context<unknown, unknown, unknown, unknown>>({ context, settings, logger, }: {
11
- context: TContext;
10
+ export declare function waitForLazyLoad<TSpec extends SpecType>({ context, settings, logger, }: {
11
+ context: Context<TSpec>;
12
12
  settings: LazyLoadSettings;
13
13
  logger: Logger;
14
14
  }): Promise<void>;
@@ -1,20 +1,18 @@
1
1
  import type { Target, DriverTarget, Eyes, Config, CheckSettings, CloseSettings, TestResult } from './types';
2
2
  import { type Logger } from '@applitools/logger';
3
- import { type SpecDriver } from '@applitools/driver';
4
- type Options<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg'> = {
3
+ import { type SpecType, type SpecDriver } from '@applitools/driver';
4
+ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
5
5
  type?: TType;
6
- eyes: Eyes<TDriver, TContext, TElement, TSelector, TType>;
7
- target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
8
- spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
6
+ eyes: Eyes<TSpec, TType>;
7
+ target?: DriverTarget<TSpec>;
8
+ spec?: SpecDriver<TSpec>;
9
9
  logger: Logger;
10
10
  };
11
- export declare function makeCheckAndClose<TDriver, TContext, TElement, TSelector, TDefaultType extends 'classic' | 'ufg' = 'classic'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
- type?: TType;
13
- target?: Target<TDriver, TContext, TElement, TSelector, TType>;
14
- settings?: CheckSettings<TElement, TSelector, TDefaultType> & (TDefaultType extends "ufg" ? import("@applitools/core-base").CloseSettings : import("@applitools/core-base").CloseSettings) & {
15
- throwErr?: boolean;
16
- } & CheckSettings<TElement, TSelector, TType> & (TType extends "ufg" ? import("@applitools/core-base").CloseSettings : import("@applitools/core-base").CloseSettings);
17
- config?: Config<TElement, TSelector, TDefaultType> & Config<TElement, TSelector, TType>;
18
- logger?: Logger;
11
+ export declare function makeCheckAndClose<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
+ type?: TType | undefined;
13
+ target?: Target<TSpec, TType> | undefined;
14
+ settings?: (CheckSettings<TSpec, TDefaultType> & CloseSettings<TDefaultType> & CheckSettings<TSpec, TType> & CloseSettings<TType>) | undefined;
15
+ config?: (Config<TSpec, TDefaultType> & Config<TSpec, TType>) | undefined;
16
+ logger?: Logger | undefined;
19
17
  }) => Promise<TestResult<TType>[]>;
20
18
  export {};
package/types/check.d.ts CHANGED
@@ -1,18 +1,18 @@
1
1
  import type { Target, DriverTarget, Eyes, Config, CheckSettings, CheckResult } from './types';
2
2
  import { type Logger } from '@applitools/logger';
3
- import { type SpecDriver } from '@applitools/driver';
4
- type Options<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg'> = {
3
+ import { type SpecType, type SpecDriver } from '@applitools/driver';
4
+ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
5
5
  type?: TType;
6
- eyes: Eyes<TDriver, TContext, TElement, TSelector, TType>;
7
- target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
8
- spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
9
- logger?: Logger;
6
+ eyes: Eyes<TSpec, TType>;
7
+ target?: DriverTarget<TSpec>;
8
+ spec?: SpecDriver<TSpec>;
9
+ logger: Logger;
10
10
  };
11
- export declare function makeCheck<TDriver, TContext, TElement, TSelector, TDefaultType extends 'classic' | 'ufg' = 'classic'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
- type?: TType;
13
- target?: Target<TDriver, TContext, TElement, TSelector, TType>;
14
- settings?: CheckSettings<TElement, TSelector, TType>;
15
- config?: Config<TElement, TSelector, TType>;
16
- logger?: Logger;
11
+ export declare function makeCheck<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: defaultLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
+ type?: TType | undefined;
13
+ target?: Target<TSpec, TType> | undefined;
14
+ settings?: CheckSettings<TSpec, TType> | undefined;
15
+ config?: Config<TSpec, TType> | undefined;
16
+ logger?: Logger | undefined;
17
17
  }) => Promise<CheckResult<TType>[]>;
18
18
  export {};