@applitools/core 1.0.9 → 1.1.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.
@@ -51,6 +51,7 @@ async function takeScreenshot({ driver, settings, logger, }) {
51
51
  },
52
52
  debug: settings.debugImages,
53
53
  logger,
54
+ webview: settings.webview,
54
55
  });
55
56
  }
56
57
  exports.takeScreenshot = takeScreenshot;
package/dist/check.js CHANGED
@@ -22,9 +22,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  exports.makeCheck = void 0;
27
30
  const utils = __importStar(require("@applitools/utils"));
31
+ const chalk_1 = __importDefault(require("chalk"));
28
32
  function makeCheck({ eyes, logger: defaultLogger, }) {
29
33
  return async function check({ target, settings = {}, config, logger = defaultLogger, } = {}) {
30
34
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
@@ -48,6 +52,9 @@ function makeCheck({ eyes, logger: defaultLogger, }) {
48
52
  (_p = (_u = settings.lazyLoad).maxAmountToScroll) !== null && _p !== void 0 ? _p : (_u.maxAmountToScroll = 15000);
49
53
  }
50
54
  (_q = settings.waitBetweenStitches) !== null && _q !== void 0 ? _q : (settings.waitBetweenStitches = utils.types.isObject(settings.lazyLoad) ? settings.lazyLoad.waitingTime : 100);
55
+ if (settings.matchLevel === 'Content') {
56
+ logger.console.log(chalk_1.default.yellow(`The "Content" match level value has been deprecated, use "IgnoreColors" instead.`));
57
+ }
51
58
  const results = await eyes.check({ target: target, settings, logger });
52
59
  return results;
53
60
  };
@@ -47,6 +47,7 @@ function makeCheckAndClose({ spec, eyes, target: defaultTarget, logger: defaultL
47
47
  image: await screenshot.image.toPng(),
48
48
  locationInViewport: utils.geometry.location(screenshot.region),
49
49
  };
50
+ const baseSettings = await (0, transform_check_settings_1.transformCheckSettings)({ context: driver.currentContext, screenshot, settings, logger });
50
51
  if (driver.isWeb && settings.sendDom) {
51
52
  if (settings.fully)
52
53
  await screenshot.scrollingElement.setAttribute('data-applitools-scroll', 'true');
@@ -58,7 +59,6 @@ function makeCheckAndClose({ spec, eyes, target: defaultTarget, logger: defaultL
58
59
  baseTarget.locationInView = utils.geometry.offset(scrollingOffset, screenshot.region);
59
60
  baseTarget.fullViewSize = scrollingElement ? await scrollingElement.getContentSize() : await driver.getViewportSize();
60
61
  }
61
- const baseSettings = await (0, transform_check_settings_1.transformCheckSettings)({ driver, screenshot, settings, logger });
62
62
  await screenshot.restoreState();
63
63
  const results = await eyes.checkAndClose({ target: baseTarget, settings: baseSettings, logger });
64
64
  return results;
@@ -55,6 +55,7 @@ function makeCheck({ spec, eyes, target: defaultTarget, logger: defaultLogger, }
55
55
  image: await screenshot.image.toPng(),
56
56
  locationInViewport: utils.geometry.location(screenshot.region),
57
57
  };
58
+ baseSettings = await (0, transform_check_settings_1.transformCheckSettings)({ context: driver.currentContext, screenshot, settings, logger });
58
59
  if (driver.isWeb && settings.sendDom) {
59
60
  if (settings.fully)
60
61
  await screenshot.scrollingElement.setAttribute('data-applitools-scroll', 'true');
@@ -66,7 +67,6 @@ function makeCheck({ spec, eyes, target: defaultTarget, logger: defaultLogger, }
66
67
  baseTarget.locationInView = utils.geometry.offset(scrollingOffset, screenshot.region);
67
68
  baseTarget.fullViewSize = scrollingElement ? await scrollingElement.getContentSize() : await driver.getViewportSize();
68
69
  }
69
- baseSettings = await (0, transform_check_settings_1.transformCheckSettings)({ driver, screenshot, settings, logger });
70
70
  await screenshot.restoreState();
71
71
  results = await eyes.check({ target: baseTarget, settings: { ...baseSettings, ignoreMismatch: !shouldRunOnce }, logger });
72
72
  } while (!shouldRunOnce && !results.some(result => result.asExpected) && Date.now() < finishAt);
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeLocate = void 0;
4
+ const driver_1 = require("@applitools/driver");
5
+ const take_screenshot_1 = require("./utils/take-screenshot");
6
+ function makeLocate({ spec, eyes, target: defaultTarget, logger: defaultLogger, }) {
7
+ return async function locate({ target = defaultTarget, settings, logger = defaultLogger, } = {}) {
8
+ logger.log('Command "check" is called with settings', settings);
9
+ if (!spec.isDriver(target)) {
10
+ return eyes.locate({ target, settings: settings, logger });
11
+ }
12
+ // TODO driver custom config
13
+ const driver = await (0, driver_1.makeDriver)({ spec, driver: target, logger });
14
+ const screenshot = await (0, take_screenshot_1.takeScreenshot)({ driver, settings, logger });
15
+ const baseTarget = {
16
+ image: await screenshot.image.toPng(),
17
+ };
18
+ const results = await eyes.locate({ target: baseTarget, settings: settings, logger });
19
+ return results;
20
+ };
21
+ }
22
+ exports.makeLocate = makeLocate;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.takeScreenshot = void 0;
27
+ const screenshoter_1 = require("@applitools/screenshoter");
28
+ const utils = __importStar(require("@applitools/utils"));
29
+ async function takeScreenshot({ driver, settings, logger, }) {
30
+ return (0, screenshoter_1.takeScreenshot)({
31
+ driver,
32
+ frames: settings.frames?.map(frame => {
33
+ return utils.types.has(frame, 'frame')
34
+ ? { reference: frame.frame, scrollingElement: frame.scrollRootElement }
35
+ : { reference: frame };
36
+ }),
37
+ region: settings.region,
38
+ fully: settings.fully,
39
+ hideScrollbars: settings.hideScrollbars,
40
+ hideCaret: settings.hideCaret,
41
+ scrollingMode: settings.stitchMode?.toLowerCase(),
42
+ overlap: settings.overlap,
43
+ wait: settings.waitBeforeCapture,
44
+ framed: driver.isNative,
45
+ stabilization: settings.normalization && {
46
+ crop: settings.normalization.cut,
47
+ scale: settings.normalization.scaleRatio,
48
+ rotation: settings.normalization.rotation,
49
+ },
50
+ debug: settings.debugImages,
51
+ logger,
52
+ });
53
+ }
54
+ exports.takeScreenshot = takeScreenshot;
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.transformCheckSettings = void 0;
27
27
  const utils = __importStar(require("@applitools/utils"));
28
- async function transformCheckSettings({ driver, settings, screenshot, logger: _logger, }) {
28
+ async function transformCheckSettings({ context, settings, screenshot, logger: _logger, }) {
29
29
  return {
30
30
  ...settings,
31
31
  region: undefined,
@@ -46,14 +46,14 @@ async function transformCheckSettings({ driver, settings, screenshot, logger: _l
46
46
  transformedRegions.push(region);
47
47
  }
48
48
  else {
49
- const elements = await driver.currentContext.elements(reference);
49
+ const elements = await context.elements(reference);
50
50
  if (elements.length === 0)
51
51
  continue;
52
52
  const contextLocationInViewport = await elements[0].context.getLocationInViewport();
53
53
  for (const element of elements) {
54
54
  const elementRegionInViewport = utils.geometry.offset(await element.getRegion(), contextLocationInViewport);
55
55
  const elementRegionInTarget = utils.geometry.offsetNegative(elementRegionInViewport, utils.geometry.location(screenshot.region));
56
- const elementRegionIScaled = utils.geometry.scale(elementRegionInTarget, driver.viewportScale);
56
+ const elementRegionIScaled = utils.geometry.scale(elementRegionInTarget, context.driver.viewportScale);
57
57
  transformedRegions.push({
58
58
  region: elementRegionIScaled,
59
59
  regionId: utils.types.isString(element.commonSelector) ? element.commonSelector : (_a = element.commonSelector) === null || _a === void 0 ? void 0 : _a.selector,
package/dist/ufg/abort.js CHANGED
@@ -5,7 +5,11 @@ const abort_error_1 = require("../errors/abort-error");
5
5
  function makeAbort({ storage, controller, logger: defaultLogger }) {
6
6
  return async function ({ logger = defaultLogger, } = {}) {
7
7
  controller.abort();
8
- return Promise.all(storage.map(async (promise) => {
8
+ const tests = storage.reduce((tests, { renderer, promise }) => {
9
+ const key = JSON.stringify(renderer);
10
+ return tests.set(key, promise);
11
+ }, new Map());
12
+ return Promise.all(Array.from(tests.values(), async (promise) => {
9
13
  let eyes, renderer;
10
14
  try {
11
15
  const value = await promise;
package/dist/ufg/close.js CHANGED
@@ -3,29 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeClose = void 0;
4
4
  function makeClose({ storage, logger: defaultLogger }) {
5
5
  return async function ({ settings, logger = defaultLogger, } = {}) {
6
- const results = await Promise.allSettled(storage);
7
- let error;
8
- const eyes = results.reduce((eyes, result) => {
9
- let value;
10
- if (result.status === 'fulfilled') {
11
- value = result.value;
12
- }
13
- else {
14
- value = result.reason.info;
15
- error !== null && error !== void 0 ? error : (error = result.reason);
16
- }
17
- return eyes.set(value.eyes, value.renderer);
6
+ const tests = storage.reduce((tests, { renderer, promise }) => {
7
+ var _a;
8
+ const key = JSON.stringify(renderer);
9
+ const promises = (_a = tests.get(key)) !== null && _a !== void 0 ? _a : [];
10
+ promises.push(promise);
11
+ return tests.set(key, promises);
18
12
  }, new Map());
19
- if (error) {
20
- await Promise.all(Array.from(eyes.entries(), async ([eyes]) => eyes === null || eyes === void 0 ? void 0 : eyes.abort({ logger })));
21
- throw error;
22
- }
23
- else {
24
- return Promise.all(Array.from(eyes.entries(), async ([eyes, renderer]) => {
13
+ return Promise.all(Array.from(tests.values(), async (promises) => {
14
+ var _a;
15
+ try {
16
+ const [{ eyes, renderer }] = await Promise.all(promises);
25
17
  const [result] = await eyes.close({ settings, logger });
26
18
  return { ...result, renderer };
27
- }));
28
- }
19
+ }
20
+ catch (error) {
21
+ await ((_a = error.info) === null || _a === void 0 ? void 0 : _a.eyes.abort({ logger }));
22
+ throw error;
23
+ }
24
+ }));
29
25
  };
30
26
  }
31
27
  exports.makeClose = makeClose;
@@ -62,7 +62,7 @@ function makeOpenEyes({ spec, core, client, logger: defaultLogger, }) {
62
62
  const index = options.settings.index;
63
63
  (_a = queue[index]) !== null && _a !== void 0 ? _a : (queue[index] = makeHolderPromise());
64
64
  if (index > 0)
65
- await Promise.race([((_b = queue[_c = index - 1]) !== null && _b !== void 0 ? _b : (queue[_c] = makeHolderPromise())).promise, aborted.promise]);
65
+ await Promise.race([((_b = queue[_c = index - 1]) !== null && _b !== void 0 ? _b : (queue[_c] = makeHolderPromise())), aborted]);
66
66
  return check(options).finally(queue[index].resolve);
67
67
  });
68
68
  eyes.abort = utils.general.wrap(eyes.abort, async (abort, options) => {
@@ -78,7 +78,7 @@ function makeOpenEyes({ spec, core, client, logger: defaultLogger, }) {
78
78
  ;
79
79
  options.settings.index = index++;
80
80
  const results = await check(options);
81
- storage.push(...results.map(result => result.promise));
81
+ storage.push(...results.map(result => ({ promise: result.promise, renderer: result.renderer })));
82
82
  return results;
83
83
  });
84
84
  let closed = false;
@@ -117,7 +117,32 @@ function makeOpenEyes({ spec, core, client, logger: defaultLogger, }) {
117
117
  }
118
118
  exports.makeOpenEyes = makeOpenEyes;
119
119
  function makeHolderPromise() {
120
- let resolve, reject;
121
- const promise = new Promise((...args) => ([resolve, reject] = args));
122
- return { promise, resolve, reject };
120
+ let promise;
121
+ let resolve;
122
+ let reject;
123
+ let result;
124
+ return {
125
+ then(onFulfilled, onRejected) {
126
+ if (!promise) {
127
+ promise = new Promise((...args) => ([resolve, reject] = args));
128
+ if ((result === null || result === void 0 ? void 0 : result.status) === 'fulfilled')
129
+ resolve();
130
+ else if ((result === null || result === void 0 ? void 0 : result.status) === 'rejected')
131
+ reject(result.reason);
132
+ }
133
+ return promise.then(onFulfilled, onRejected);
134
+ },
135
+ resolve() {
136
+ if (resolve)
137
+ resolve();
138
+ else
139
+ result !== null && result !== void 0 ? result : (result = { status: 'fulfilled' });
140
+ },
141
+ reject(reason) {
142
+ if (reject)
143
+ reject(reason);
144
+ else
145
+ result !== null && result !== void 0 ? result : (result = { status: 'rejected', reason });
146
+ },
147
+ };
123
148
  }
@@ -31,8 +31,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
32
  exports.takeDomSnapshots = void 0;
33
33
  const take_dom_snapshot_1 = require("./take-dom-snapshot");
34
- const chalk_1 = __importDefault(require("chalk"));
35
34
  const utils = __importStar(require("@applitools/utils"));
35
+ const chalk_1 = __importDefault(require("chalk"));
36
36
  __exportStar(require("./take-dom-snapshot"), exports);
37
37
  async function takeDomSnapshots({ driver, settings, hooks, provides, logger, }) {
38
38
  var _a, _b, _c, _d;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.takeNativeAppSnapshot = exports.getBrokerURL = void 0;
4
+ const nml_client_1 = require("@applitools/nml-client");
5
+ async function getBrokerURL(driver) {
6
+ if (!driver.isIOS)
7
+ return false;
8
+ try {
9
+ const element = await driver.element({
10
+ type: 'xpath',
11
+ selector: '//XCUIElementTypeOther[@name="Applitools_View"]',
12
+ });
13
+ const result = JSON.parse(await element.getText());
14
+ return result.nextPath;
15
+ }
16
+ catch (error) {
17
+ return false;
18
+ }
19
+ }
20
+ exports.getBrokerURL = getBrokerURL;
21
+ async function takeNativeAppSnapshot(options) {
22
+ const nmlSnapshot = await (0, nml_client_1.takeSnapshot)(options.driver);
23
+ const snapshot = {
24
+ platformName: nmlSnapshot.resourceMap.metadata.platformName,
25
+ vhsHash: nmlSnapshot.resourceMap.vhs,
26
+ vhsCompatibilityParams: undefined,
27
+ };
28
+ if (options.driver.isIOS) {
29
+ snapshot.vhsCompatibilityParams = {
30
+ UIKitLinkTimeVersionNumber: nmlSnapshot.metadata.UIKitLinkTimeVersionNumber,
31
+ UIKitRunTimeVersionNumber: nmlSnapshot.metadata.UIKitRunTimeVersionNumber,
32
+ };
33
+ }
34
+ return { snapshots: snapshot };
35
+ }
36
+ exports.takeNativeAppSnapshot = takeNativeAppSnapshot;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "1.0.9",
3
+ "version": "1.1.0",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -57,17 +57,17 @@
57
57
  }
58
58
  },
59
59
  "dependencies": {
60
- "@applitools/core-base": "1.0.5",
60
+ "@applitools/core-base": "1.0.6",
61
61
  "@applitools/dom-capture": "11.1.2",
62
62
  "@applitools/dom-snapshot": "4.6.2",
63
- "@applitools/driver": "1.9.34",
64
- "@applitools/logger": "1.1.23",
65
- "@applitools/nml-client": "1.2.4",
66
- "@applitools/req": "1.1.7",
67
- "@applitools/screenshoter": "3.5.5",
63
+ "@applitools/driver": "1.10.3",
64
+ "@applitools/logger": "1.1.24",
65
+ "@applitools/nml-client": "1.3.0",
66
+ "@applitools/req": "1.1.8",
67
+ "@applitools/screenshoter": "3.6.0",
68
68
  "@applitools/snippets": "2.4.5",
69
- "@applitools/types": "1.5.16",
70
- "@applitools/ufg-client": "1.0.5",
69
+ "@applitools/types": "1.5.17",
70
+ "@applitools/ufg-client": "1.0.6",
71
71
  "@applitools/utils": "1.3.12",
72
72
  "abort-controller": "3.0.0",
73
73
  "throat": "6.0.1"
@@ -75,8 +75,9 @@
75
75
  "devDependencies": {
76
76
  "@applitools/bongo": "^2.2.0",
77
77
  "@applitools/sdk-fake-eyes-server": "^2.1.3",
78
- "@applitools/spec-driver-puppeteer": "^1.1.12",
79
- "@applitools/spec-driver-selenium": "^1.3.24",
78
+ "@applitools/spec-driver-puppeteer": "^1.1.13",
79
+ "@applitools/spec-driver-selenium": "^1.4.0",
80
+ "@applitools/spec-driver-webdriverio": "^1.3.0",
80
81
  "@applitools/test-server": "^1.1.5",
81
82
  "@applitools/test-utils": "^1.5.1",
82
83
  "@types/mocha": "^9.1.1",
@@ -84,6 +85,7 @@
84
85
  "@types/selenium-webdriver": "^4.1.2",
85
86
  "@typescript-eslint/eslint-plugin": "^5.38.0",
86
87
  "@typescript-eslint/parser": "^5.38.0",
88
+ "chromedriver": "^106.0.0",
87
89
  "eslint": "^8.23.1",
88
90
  "eslint-config-prettier": "^8.5.0",
89
91
  "eslint-plugin-no-only-tests": "^3.0.0",
@@ -97,7 +99,8 @@
97
99
  "puppeteer": "^16.2.0",
98
100
  "selenium-webdriver": "^4.4.0",
99
101
  "ts-node": "^10.7.0",
100
- "typescript": "^4.8.3"
102
+ "typescript": "^4.8.3",
103
+ "webdriverio": "^7.25.0"
101
104
  },
102
105
  "engines": {
103
106
  "node": ">=12.13.0"
@@ -0,0 +1,16 @@
1
+ import type { SpecDriver, Region } from '@applitools/types';
2
+ import type { Eyes as BaseEyes } from '@applitools/types/base';
3
+ import type { Target, LocateSettings } from '@applitools/types/classic';
4
+ import { type Logger } from '@applitools/logger';
5
+ declare type Options<TDriver, TContext, TElement, TSelector> = {
6
+ spec: SpecDriver<TDriver, TContext, TElement, TSelector>;
7
+ eyes: BaseEyes;
8
+ target: Target<TDriver>;
9
+ logger: Logger;
10
+ };
11
+ export declare function makeLocate<TDriver, TContext, TElement, TSelector>({ spec, eyes, target: defaultTarget, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): <TLocator extends string>({ target, settings, logger, }?: {
12
+ target?: Target<TDriver>;
13
+ settings?: LocateSettings<TLocator, TElement, TSelector>;
14
+ logger?: Logger;
15
+ }) => Promise<Record<TLocator, Region[]>>;
16
+ export {};
@@ -0,0 +1,15 @@
1
+ import type { Region } from '@applitools/types';
2
+ import { ScreenshotSettings } from '@applitools/types/classic';
3
+ import { type Logger } from '@applitools/logger';
4
+ import { type Driver, type Element } from '@applitools/driver';
5
+ export declare type Screenshot = {
6
+ image: any;
7
+ region: Region;
8
+ scrollingElement: Element<unknown, unknown, unknown, unknown>;
9
+ restoreState(): Promise<void>;
10
+ };
11
+ export declare function takeScreenshot<TDriver, TContext, TElement, TSelector>({ driver, settings, logger, }: {
12
+ driver: Driver<TDriver, TContext, TElement, TSelector>;
13
+ settings: ScreenshotSettings<TElement, TSelector>;
14
+ logger: Logger;
15
+ }): Promise<Screenshot>;
@@ -1,10 +1,10 @@
1
1
  import type { CheckSettings as BaseCheckSettings } from '@applitools/types/base';
2
2
  import type { CheckSettings } from '@applitools/types/classic';
3
3
  import { type Logger } from '@applitools/logger';
4
- import { type Driver } from '@applitools/driver';
4
+ import { type Context } from '@applitools/driver';
5
5
  import { type Screenshot } from '../../automation/utils/take-screenshot';
6
- export declare function transformCheckSettings<TDriver, TContext, TElement, TSelector>({ driver, settings, screenshot, logger, }: {
7
- driver: Driver<TDriver, TContext, TElement, TSelector>;
6
+ export declare function transformCheckSettings<TDriver, TContext, TElement, TSelector>({ context, settings, screenshot, logger, }: {
7
+ context: Context<TDriver, TContext, TElement, TSelector>;
8
8
  settings: CheckSettings<TElement, TSelector>;
9
9
  screenshot: Screenshot;
10
10
  logger: Logger;
@@ -4,10 +4,13 @@ import type { TestResult } from '@applitools/types/ufg';
4
4
  import { type Logger } from '@applitools/logger';
5
5
  import { type AbortController } from 'abort-controller';
6
6
  declare type Options = {
7
- storage: Promise<{
8
- eyes: BaseEyes;
7
+ storage: {
9
8
  renderer: Renderer;
10
- }>[];
9
+ promise: Promise<{
10
+ eyes: BaseEyes;
11
+ renderer: Renderer;
12
+ }>;
13
+ }[];
11
14
  controller: AbortController;
12
15
  logger: Logger;
13
16
  };
@@ -3,10 +3,13 @@ import type { Eyes as BaseEyes } from '@applitools/types/base';
3
3
  import type { CloseSettings, TestResult } from '@applitools/types/ufg';
4
4
  import { type Logger } from '@applitools/logger';
5
5
  declare type Options = {
6
- storage: Promise<{
7
- eyes: BaseEyes;
6
+ storage: {
8
7
  renderer: Renderer;
9
- }>[];
8
+ promise: Promise<{
9
+ eyes: BaseEyes;
10
+ renderer: Renderer;
11
+ }>;
12
+ }[];
10
13
  logger: Logger;
11
14
  };
12
15
  export declare function makeClose({ storage, logger: defaultLogger }: Options): ({ settings, logger, }?: {
@@ -0,0 +1,5 @@
1
+ export declare function getBrokerURL(driver: any): Promise<any>;
2
+ export declare function takeNativeAppSnapshot(options: {
3
+ driver: any;
4
+ logger: any;
5
+ }): Promise<any>;