@applitools/core 1.3.8 → 1.4.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.
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeAbort = void 0;
4
+ const driver_1 = require("@applitools/driver");
5
+ function makeAbort({ eyes, target, spec, logger: defaultLogger, }) {
6
+ return async function ({ settings, logger = defaultLogger, } = {}) {
7
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
8
+ const testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
9
+ const [baseEyes] = await eyes.getBaseEyes();
10
+ return await baseEyes.abort({ settings: { ...settings, testMetadata }, logger });
11
+ };
12
+ }
13
+ exports.makeAbort = makeAbort;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeClose = void 0;
4
+ const driver_1 = require("@applitools/driver");
5
+ function makeClose({ eyes, target, spec, logger: defaultLogger, }) {
6
+ return async function ({ settings, logger = defaultLogger, } = {}) {
7
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
8
+ const testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
9
+ const baseEyes = await eyes.getBaseEyes();
10
+ return (await Promise.all(baseEyes.map(baseEyes => baseEyes.close({ settings: { ...settings, testMetadata }, logger })))).flat();
11
+ };
12
+ }
13
+ exports.makeClose = makeClose;
@@ -30,6 +30,8 @@ const check_1 = require("./check");
30
30
  const check_and_close_1 = require("./check-and-close");
31
31
  const locate_text_1 = require("./locate-text");
32
32
  const extract_text_1 = require("./extract-text");
33
+ const close_1 = require("./close");
34
+ const abort_1 = require("./abort");
33
35
  const utils = __importStar(require("@applitools/utils"));
34
36
  function makeOpenEyes({ core, spec, logger: defaultLogger, }) {
35
37
  return async function openEyes({ target, settings, eyes, logger = defaultLogger, }) {
@@ -40,6 +42,7 @@ function makeOpenEyes({ core, spec, logger: defaultLogger, }) {
40
42
  if (driver && !eyes) {
41
43
  const currentContext = driver.currentContext;
42
44
  (_a = settings.environment) !== null && _a !== void 0 ? _a : (settings.environment = {});
45
+ settings.environment.egSessionId = (driver === null || driver === void 0 ? void 0 : driver.isExecutionGrid) ? driver.sessionId : null;
43
46
  if (!settings.environment.viewportSize || driver.isMobile) {
44
47
  const size = await driver.getViewportSize();
45
48
  settings.environment.viewportSize = utils.geometry.scale(size, driver.viewportScale);
@@ -83,6 +86,8 @@ function makeOpenEyes({ core, spec, logger: defaultLogger, }) {
83
86
  checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, target: driver, spec, logger }),
84
87
  locateText: (0, locate_text_1.makeLocateText)({ eyes, target: driver, spec, logger }),
85
88
  extractText: (0, extract_text_1.makeExtractText)({ eyes, target: driver, spec, logger }),
89
+ close: (0, close_1.makeClose)({ eyes, target: driver, spec, logger }),
90
+ abort: (0, abort_1.makeAbort)({ eyes, target: driver, spec, logger }),
86
91
  }));
87
92
  };
88
93
  }
package/dist/core.js CHANGED
@@ -33,6 +33,7 @@ const open_eyes_1 = require("./open-eyes");
33
33
  const make_manager_1 = require("./make-manager");
34
34
  const close_batch_1 = require("./close-batch");
35
35
  const delete_test_1 = require("./delete-test");
36
+ const make_eg_client_1 = require("./make-eg-client");
36
37
  const utils = __importStar(require("@applitools/utils"));
37
38
  function makeCore({ spec, concurrency, core, agentId = 'core', cwd = process.cwd(), logger, } = {}) {
38
39
  var _a;
@@ -50,6 +51,7 @@ function makeCore({ spec, concurrency, core, agentId = 'core', cwd = process.cwd
50
51
  makeManager: (0, make_manager_1.makeMakeManager)({ spec, concurrency, agentId, logger }),
51
52
  closeBatch: (0, close_batch_1.makeCloseBatch)({ core, logger }),
52
53
  deleteTest: (0, delete_test_1.makeDeleteTest)({ core, logger }),
54
+ makeEGClient: (0, make_eg_client_1.makeMakeEGClient)({ core, logger }),
53
55
  });
54
56
  }
55
57
  exports.makeCore = makeCore;
@@ -0,0 +1,43 @@
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.makeMakeEGClient = void 0;
27
+ const execution_grid_client_1 = require("@applitools/execution-grid-client");
28
+ const utils = __importStar(require("@applitools/utils"));
29
+ function makeMakeEGClient({ core, logger: defaultLogger }) {
30
+ return async function _makeEGClient({ settings, logger = defaultLogger, } = {}) {
31
+ var _a, _b, _c, _d, _e, _f, _g, _h;
32
+ var _j, _k;
33
+ const serverUrl = (_c = (_b = (_a = settings.capabilities.eyesServerUrl) !== null && _a !== void 0 ? _a : utils.general.getEnvValue('EYES_SERVER_URL')) !== null && _b !== void 0 ? _b : utils.general.getEnvValue('SERVER_URL')) !== null && _c !== void 0 ? _c : 'https://eyesapi.applitools.com';
34
+ const apiKey = ((_d = (_j = settings.capabilities).apiKey) !== null && _d !== void 0 ? _d : (_j.apiKey = utils.general.getEnvValue('API_KEY')));
35
+ const proxy = (_e = settings.proxy) !== null && _e !== void 0 ? _e : (utils.general.getEnvValue('PROXY_URL') && { url: utils.general.getEnvValue('PROXY_URL') });
36
+ const _account = await core.getAccountInfo({ settings: { serverUrl, apiKey, proxy }, logger });
37
+ (_f = settings.capabilities) !== null && _f !== void 0 ? _f : (settings.capabilities = {});
38
+ (_g = (_k = settings.capabilities).useSelfHealing) !== null && _g !== void 0 ? _g : (_k.useSelfHealing = (_h = utils.general.getEnvValue('USE_SELF_HEALING', 'boolean')) !== null && _h !== void 0 ? _h : false); // TODO replace with account.selfHealingEnabled
39
+ const client = await (0, execution_grid_client_1.makeEGClient)({ settings, logger });
40
+ return client;
41
+ };
42
+ }
43
+ exports.makeMakeEGClient = makeMakeEGClient;
package/dist/ufg/abort.js CHANGED
@@ -2,8 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeAbort = void 0;
4
4
  const abort_error_1 = require("../errors/abort-error");
5
- function makeAbort({ storage, controller, logger: defaultLogger }) {
6
- return async function ({ logger = defaultLogger, } = {}) {
5
+ const driver_1 = require("@applitools/driver");
6
+ function makeAbort({ storage, target, spec, controller, logger: defaultLogger, }) {
7
+ return async function ({ settings, logger = defaultLogger, } = {}) {
7
8
  controller.abort();
8
9
  const tests = storage.reduce((tests, { renderer, promise }) => {
9
10
  const key = JSON.stringify(renderer);
@@ -26,7 +27,9 @@ function makeAbort({ storage, controller, logger: defaultLogger }) {
26
27
  throw error;
27
28
  }
28
29
  }
29
- const [result] = await eyes.abort({ logger });
30
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
31
+ const testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
32
+ const [result] = await eyes.abort({ settings: { ...settings, testMetadata }, logger });
30
33
  return { ...result, renderer };
31
34
  }));
32
35
  };
package/dist/ufg/check.js CHANGED
@@ -195,7 +195,9 @@ function makeCheck({ eyes, client, target: defaultTarget, spec, signal, logger:
195
195
  return { ...result, eyes: baseEyes, renderer };
196
196
  }
197
197
  catch (error) {
198
- await baseEyes.abort();
198
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
199
+ const testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
200
+ await baseEyes.abort({ settings: { testMetadata } });
199
201
  error.info = { eyes: baseEyes };
200
202
  throw error;
201
203
  }
package/dist/ufg/close.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeClose = void 0;
4
- function makeClose({ storage, logger: defaultLogger }) {
4
+ const driver_1 = require("@applitools/driver");
5
+ function makeClose({ storage, target, spec, logger: defaultLogger, }) {
5
6
  return async function ({ settings, logger = defaultLogger, } = {}) {
6
7
  const tests = storage.reduce((tests, { renderer, promise }) => {
7
8
  var _a;
@@ -14,7 +15,9 @@ function makeClose({ storage, logger: defaultLogger }) {
14
15
  var _a, _b;
15
16
  try {
16
17
  const [{ eyes, renderer }] = await Promise.all(promises);
17
- const [result] = await eyes.close({ settings, logger });
18
+ const driver = (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
19
+ const testMetadata = await (driver === null || driver === void 0 ? void 0 : driver.getSessionMetadata());
20
+ const [result] = await eyes.close({ settings: { ...settings, testMetadata }, logger });
18
21
  return { ...result, renderer };
19
22
  }
20
23
  catch (error) {
@@ -35,12 +35,14 @@ const abort_controller_1 = require("abort-controller");
35
35
  const utils = __importStar(require("@applitools/utils"));
36
36
  function makeOpenEyes({ core, client, spec, logger: defaultLogger, }) {
37
37
  return async function openEyes({ target, settings, eyes, logger = defaultLogger, }) {
38
- var _a, _b;
38
+ var _a, _b, _c;
39
39
  logger.log(`Command "openEyes" is called with ${target ? 'default driver and' : ''}`, ...(settings ? ['settings', settings] : []), eyes ? 'predefined eyes' : '');
40
40
  const driver = target && (await (0, driver_1.makeDriver)({ spec, driver: target, logger, customConfig: { disableHelper: true } }));
41
+ (_a = settings.environment) !== null && _a !== void 0 ? _a : (settings.environment = {});
42
+ settings.environment.egSessionId = (driver === null || driver === void 0 ? void 0 : driver.isExecutionGrid) ? driver.sessionId : null;
41
43
  if (driver && !eyes) {
42
44
  const currentContext = driver.currentContext;
43
- if ((_a = settings.environment) === null || _a === void 0 ? void 0 : _a.viewportSize) {
45
+ if ((_b = settings.environment) === null || _b === void 0 ? void 0 : _b.viewportSize) {
44
46
  await driver.setViewportSize(settings.environment.viewportSize);
45
47
  }
46
48
  await currentContext.focus();
@@ -49,7 +51,7 @@ function makeOpenEyes({ core, client, spec, logger: defaultLogger, }) {
49
51
  const account = await core.getAccountInfo({ settings, logger });
50
52
  client !== null && client !== void 0 ? client : (client = (0, ufg_client_1.makeUFGClient)({
51
53
  config: { ...account.ufg, ...account, proxy: settings.proxy },
52
- concurrency: (_b = settings.renderConcurrency) !== null && _b !== void 0 ? _b : 5,
54
+ concurrency: (_c = settings.renderConcurrency) !== null && _c !== void 0 ? _c : 5,
53
55
  logger,
54
56
  }));
55
57
  const getBaseEyes = (0, get_base_eyes_1.makeGetBaseEyes)({ settings, eyes, core, client, logger });
@@ -88,14 +90,14 @@ function makeOpenEyes({ core, client, spec, logger: defaultLogger, }) {
88
90
  }),
89
91
  checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, client, target: driver, spec, signal: controller.signal, logger }),
90
92
  // close only once
91
- close: utils.general.wrap((0, close_1.makeClose)({ storage, logger }), async (close, options) => {
93
+ close: utils.general.wrap((0, close_1.makeClose)({ storage, target: driver, logger }), async (close, options) => {
92
94
  if (closed || aborted)
93
95
  return [];
94
96
  closed = true;
95
97
  return close(options);
96
98
  }),
97
99
  // abort only once
98
- abort: utils.general.wrap((0, abort_1.makeAbort)({ storage, controller, logger }), async (abort, options) => {
100
+ abort: utils.general.wrap((0, abort_1.makeAbort)({ storage, target: driver, spec, controller, logger }), async (abort, options) => {
99
101
  if (aborted || closed)
100
102
  return [];
101
103
  aborted = true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "1.3.8",
3
+ "version": "1.4.0",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -61,30 +61,32 @@
61
61
  }
62
62
  },
63
63
  "dependencies": {
64
- "@applitools/core-base": "1.1.25",
64
+ "@applitools/core-base": "1.1.29",
65
65
  "@applitools/dom-capture": "11.2.0",
66
66
  "@applitools/dom-snapshot": "4.7.3",
67
- "@applitools/driver": "1.11.21",
68
- "@applitools/logger": "1.1.36",
69
- "@applitools/nml-client": "1.3.22",
70
- "@applitools/req": "1.1.23",
71
- "@applitools/screenshoter": "3.7.20",
72
- "@applitools/snippets": "2.4.12",
73
- "@applitools/ufg-client": "1.1.14",
74
- "@applitools/utils": "1.3.22",
67
+ "@applitools/driver": "1.11.25",
68
+ "@applitools/execution-grid-client": "1.2.2",
69
+ "@applitools/logger": "1.1.40",
70
+ "@applitools/nml-client": "1.3.26",
71
+ "@applitools/req": "1.1.27",
72
+ "@applitools/screenshoter": "3.7.22",
73
+ "@applitools/snippets": "2.4.13",
74
+ "@applitools/ufg-client": "1.1.18",
75
+ "@applitools/utils": "1.3.26",
75
76
  "abort-controller": "3.0.0",
76
77
  "chalk": "4.1.2",
77
78
  "node-fetch": "2.6.7",
78
79
  "throat": "6.0.1"
79
80
  },
80
81
  "devDependencies": {
81
- "@applitools/bongo": "^2.2.0",
82
+ "@applitools/bongo": "^2.2.2",
83
+ "@applitools/execution-grid-client": "^1.1.39",
82
84
  "@applitools/sdk-fake-eyes-server": "^2.1.3",
83
- "@applitools/spec-driver-puppeteer": "^1.1.32",
84
- "@applitools/spec-driver-selenium": "^1.5.19",
85
- "@applitools/spec-driver-webdriverio": "^1.4.18",
86
- "@applitools/test-server": "^1.1.16",
87
- "@applitools/test-utils": "^1.5.6",
85
+ "@applitools/spec-driver-puppeteer": "^1.1.36",
86
+ "@applitools/spec-driver-selenium": "^1.5.23",
87
+ "@applitools/spec-driver-webdriverio": "^1.4.20",
88
+ "@applitools/test-server": "^1.1.20",
89
+ "@applitools/test-utils": "^1.5.8",
88
90
  "@types/mocha": "^9.1.1",
89
91
  "@types/node": "12",
90
92
  "@types/selenium-webdriver": "^4.1.2",
@@ -0,0 +1,16 @@
1
+ import type { AbortSettings, TestResult } from './types';
2
+ import type { Eyes } from './types';
3
+ import { type Logger } from '@applitools/logger';
4
+ import type { DriverTarget } from './types';
5
+ import { type SpecDriver } from '@applitools/driver';
6
+ type Options<TDriver, TContext, TElement, TSelector> = {
7
+ eyes: Eyes<TDriver, TContext, TElement, TSelector>;
8
+ target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
9
+ spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
10
+ logger: Logger;
11
+ };
12
+ export declare function makeAbort<TDriver, TContext, TElement, TSelector>({ eyes, target, spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): ({ settings, logger, }?: {
13
+ settings?: AbortSettings;
14
+ logger?: Logger;
15
+ }) => Promise<TestResult[]>;
16
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { CloseSettings, TestResult } from './types';
2
+ import type { Eyes } from './types';
3
+ import { type Logger } from '@applitools/logger';
4
+ import type { DriverTarget } from './types';
5
+ import { type SpecDriver } from '@applitools/driver';
6
+ type Options<TDriver, TContext, TElement, TSelector> = {
7
+ eyes: Eyes<TDriver, TContext, TElement, TSelector>;
8
+ target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
9
+ spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
10
+ logger: Logger;
11
+ };
12
+ export declare function makeClose<TDriver, TContext, TElement, TSelector>({ eyes, target, spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): ({ settings, logger, }?: {
13
+ settings?: CloseSettings;
14
+ logger?: Logger;
15
+ }) => Promise<TestResult[]>;
16
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { Core as BaseCore } from '@applitools/core-base';
2
+ import { type Logger } from '@applitools/logger';
3
+ import { type EGClient, type EGClientSettings } from '@applitools/execution-grid-client';
4
+ type Options = {
5
+ core: BaseCore;
6
+ logger: Logger;
7
+ };
8
+ export declare function makeMakeEGClient({ core, logger: defaultLogger }: Options): ({ settings, logger, }?: {
9
+ settings?: EGClientSettings;
10
+ logger?: Logger;
11
+ }) => Promise<EGClient>;
12
+ export {};
package/types/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { MaybeArray } from '@applitools/utils';
2
+ import type { EGClient } from '@applitools/execution-grid-client';
2
3
  import type * as AutomationCore from './automation/types';
3
4
  import type * as ClassicCore from './classic/types';
4
5
  import type * as UFGCore from './ufg/types';
@@ -10,6 +11,10 @@ export type TypedCore<TDriver, TContext, TElement, TSelector, TType extends 'cla
10
11
  export type TypedEyes<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg', TTarget = Target<TDriver, TContext, TElement, TSelector, TType>> = TType extends 'ufg' ? UFGCore.Eyes<TDriver, TContext, TElement, TSelector, TTarget> : ClassicCore.Eyes<TDriver, TContext, TElement, TSelector, TTarget>;
11
12
  export type Target<TDriver, TContext, TElement, TSelector, TType extends 'classic' | 'ufg'> = TType extends 'ufg' ? UFGCore.UFGTarget<TDriver, TContext, TElement, TSelector> : ClassicCore.ClassicTarget<TDriver, TContext, TElement, TSelector>;
12
13
  export interface Core<TDriver, TContext, TElement, TSelector> extends AutomationCore.Core<TDriver, TContext, TElement, TSelector> {
14
+ makeEGClient(options?: {
15
+ settings?: any;
16
+ logger?: Logger;
17
+ }): Promise<EGClient>;
13
18
  makeManager<TType extends 'classic' | 'ufg' = 'classic'>(options?: {
14
19
  type: TType;
15
20
  concurrency?: TType extends 'ufg' ? number : never;
@@ -1,9 +1,11 @@
1
- import type { TestResult } from './types';
1
+ import type { AbortSettings, TestResult } from './types';
2
2
  import type { Eyes as BaseEyes } from '@applitools/core-base';
3
3
  import { type Logger } from '@applitools/logger';
4
4
  import { type Renderer } from '@applitools/ufg-client';
5
5
  import { type AbortController } from 'abort-controller';
6
- type Options = {
6
+ import type { DriverTarget } from './types';
7
+ import { type SpecDriver } from '@applitools/driver';
8
+ type Options<TDriver, TContext, TElement, TSelector> = {
7
9
  storage: {
8
10
  renderer: Renderer;
9
11
  promise: Promise<{
@@ -12,9 +14,12 @@ type Options = {
12
14
  }>;
13
15
  }[];
14
16
  controller: AbortController;
17
+ target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
18
+ spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
15
19
  logger: Logger;
16
20
  };
17
- export declare function makeAbort({ storage, controller, logger: defaultLogger }: Options): ({ logger, }?: {
21
+ export declare function makeAbort<TDriver, TContext, TElement, TSelector>({ storage, target, spec, controller, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): ({ settings, logger, }?: {
22
+ settings?: AbortSettings;
18
23
  logger?: Logger;
19
24
  }) => Promise<TestResult[]>;
20
25
  export {};
@@ -2,7 +2,9 @@ import type { CloseSettings, TestResult } from './types';
2
2
  import type { Eyes as BaseEyes } from '@applitools/core-base';
3
3
  import { type Logger } from '@applitools/logger';
4
4
  import { type Renderer } from '@applitools/ufg-client';
5
- type Options = {
5
+ import type { DriverTarget } from './types';
6
+ import { type SpecDriver } from '@applitools/driver';
7
+ type Options<TDriver, TContext, TElement, TSelector> = {
6
8
  storage: {
7
9
  renderer: Renderer;
8
10
  promise: Promise<{
@@ -10,9 +12,11 @@ type Options = {
10
12
  renderer: Renderer;
11
13
  }>;
12
14
  }[];
15
+ target?: DriverTarget<TDriver, TContext, TElement, TSelector>;
16
+ spec?: SpecDriver<TDriver, TContext, TElement, TSelector>;
13
17
  logger: Logger;
14
18
  };
15
- export declare function makeClose({ storage, logger: defaultLogger }: Options): ({ settings, logger, }?: {
19
+ export declare function makeClose<TDriver, TContext, TElement, TSelector>({ storage, target, spec, logger: defaultLogger, }: Options<TDriver, TContext, TElement, TSelector>): ({ settings, logger, }?: {
16
20
  settings?: CloseSettings;
17
21
  logger?: Logger;
18
22
  }) => Promise<TestResult[]>;