@applitools/core 3.6.2 → 3.6.4

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.
@@ -36,8 +36,8 @@ const uniquify_renderers_1 = require("./utils/uniquify-renderers");
36
36
  const abort_error_1 = require("../errors/abort-error");
37
37
  const utils = __importStar(require("@applitools/utils"));
38
38
  const chalk_1 = __importDefault(require("chalk"));
39
- function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger: mainLogger, }) {
40
- return async function checkAndClose({ target = defaultTarget, settings = {}, logger = mainLogger, }) {
39
+ function makeCheckAndClose({ eyes, storage, target: defaultTarget, spec, signal, logger: mainLogger, }) {
40
+ return async function checkAndClose({ target = defaultTarget, settings = {}, logger = mainLogger, } = {}) {
41
41
  var _a, _b, _c, _d, _e, _f, _g, _h;
42
42
  logger = logger.extend(mainLogger);
43
43
  logger.log('Command "checkAndClose" is called with settings', settings);
@@ -50,8 +50,11 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
50
50
  });
51
51
  const uniqueRenderers = (0, uniquify_renderers_1.uniquifyRenderers)((_a = settings.renderers) !== null && _a !== void 0 ? _a : []);
52
52
  const ufgClient = await eyes.core.getUFGClient({
53
- config: { ...eyes.test.ufgServer, eyesServerUrl: eyes.test.server.serverUrl, eyesApiKey: eyes.test.server.apiKey },
54
- concurrency: uniqueRenderers.length || 5,
53
+ settings: {
54
+ ...eyes.test.ufgServer,
55
+ eyesServerUrl: eyes.test.eyesServer.eyesServerUrl,
56
+ apiKey: eyes.test.eyesServer.apiKey,
57
+ },
55
58
  logger,
56
59
  });
57
60
  let snapshots;
@@ -61,7 +64,9 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
61
64
  let regionToTarget;
62
65
  let scrollRootSelector;
63
66
  let selectorsToCalculate;
64
- const driver = spec && (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
67
+ const driver = spec && (0, driver_1.isDriver)(target, spec)
68
+ ? await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger })
69
+ : null;
65
70
  if (driver) {
66
71
  const environment = await driver.getEnvironment();
67
72
  if (uniqueRenderers.length === 0) {
@@ -108,7 +113,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
108
113
  const currentContext = driver.currentContext;
109
114
  const snapshotOptions = {
110
115
  settings: {
111
- ...eyes.test.server,
116
+ ...eyes.test.eyesServer,
112
117
  waitBeforeCapture: settings.waitBeforeCapture,
113
118
  disableBrowserFetching: settings.disableBrowserFetching,
114
119
  layoutBreakpoints: settings.layoutBreakpoints,
@@ -135,7 +140,7 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
135
140
  snapshots = await (0, take_dom_snapshots_1.takeDomSnapshots)({ driver, ...snapshotOptions, logger });
136
141
  }
137
142
  else {
138
- const nmlClient = await eyes.core.getNMLClient({ config: eyes.test.server, driver, logger });
143
+ const nmlClient = await eyes.core.getNMLClient({ config: eyes.test.eyesServer, driver, logger });
139
144
  snapshots = (await nmlClient.takeSnapshots({ ...snapshotOptions, logger }));
140
145
  }
141
146
  await currentContext.focus();
@@ -164,31 +169,30 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
164
169
  throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
165
170
  }
166
171
  const { cookies, ...snapshot } = snapshots[index];
167
- const snapshotType = utils.types.has(snapshot, 'cdt') ? 'web' : 'native';
172
+ if (utils.types.has(renderer, 'iosDeviceInfo') || utils.types.has(renderer, 'androidDeviceInfo')) {
173
+ renderer.type = utils.types.has(snapshot, 'cdt') ? 'web' : 'native';
174
+ }
168
175
  const renderTargetPromise = ufgClient.createRenderTarget({
169
176
  snapshot,
170
177
  settings: {
171
178
  renderer,
172
179
  referer: snapshotUrl,
173
180
  cookies,
174
- proxy: eyes.test.server.proxy,
181
+ proxy: eyes.test.eyesServer.proxy,
175
182
  autProxy: settings.autProxy,
176
183
  userAgent,
177
184
  },
178
185
  logger: rendererLogger,
179
186
  });
180
- const [baseEyes] = await eyes.getBaseEyes({
181
- settings: { renderer, type: snapshotType, properties },
182
- logger,
183
- });
187
+ const [baseEyes] = await eyes.getBaseEyes({ settings: { renderer, properties }, logger });
184
188
  try {
185
189
  if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
186
190
  rendererLogger.warn('Command "check" was aborted before rendering');
187
191
  throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
188
192
  }
189
193
  else if (!baseEyes.running) {
190
- rendererLogger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
191
- throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
194
+ rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
195
+ throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
192
196
  }
193
197
  const renderTarget = await renderTargetPromise;
194
198
  if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
@@ -196,8 +200,8 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
196
200
  throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
197
201
  }
198
202
  else if (!baseEyes.running) {
199
- rendererLogger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
200
- throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
203
+ rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
204
+ throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
201
205
  }
202
206
  const { renderId, selectorRegions, ...baseTarget } = await ufgClient.render({
203
207
  target: renderTarget,
@@ -206,11 +210,11 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
206
210
  region: regionToTarget,
207
211
  scrollRootElement: scrollRootSelector,
208
212
  selectorsToCalculate: selectorsToCalculate.flatMap(({ safeSelector }) => safeSelector !== null && safeSelector !== void 0 ? safeSelector : []),
209
- includeFullPageSize: Boolean(settings.pageId),
210
- type: snapshotType,
213
+ includeFullPageSize: !!settings.pageId,
211
214
  renderer,
212
- rendererUniqueId: baseEyes.test.rendererUniqueId,
213
- rendererId: baseEyes.test.rendererId,
215
+ renderEnvironmentId: baseEyes.test.renderEnvironmentId,
216
+ uploadUrl: baseEyes.test.uploadUrl,
217
+ stitchingServiceUrl: baseEyes.test.stitchingServiceUrl,
214
218
  },
215
219
  signal,
216
220
  logger: rendererLogger,
@@ -230,18 +234,18 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
230
234
  throw new abort_error_1.AbortError('Command "check" was aborted after rendering');
231
235
  }
232
236
  else if (!baseEyes.running) {
233
- rendererLogger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
234
- throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
237
+ rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
238
+ throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
235
239
  }
236
- const [result] = await baseEyes.checkAndClose({
240
+ await baseEyes.checkAndClose({
237
241
  target: { ...baseTarget, isTransformed: true },
238
242
  settings: baseSettings,
239
243
  logger: rendererLogger,
240
244
  });
241
- return { ...result, userTestId: eyes.test.userTestId, eyes: baseEyes, renderer };
245
+ return { eyes: baseEyes, renderer };
242
246
  }
243
247
  catch (error) {
244
- rendererLogger.error(`Renderer with id ${baseEyes.test.rendererId} failed due to an error`, error);
248
+ rendererLogger.error(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" failed due to an error`, error);
245
249
  await baseEyes.abort({ logger: rendererLogger });
246
250
  error.info = { eyes: baseEyes };
247
251
  throw error;
@@ -253,7 +257,11 @@ function makeCheckAndClose({ eyes, target: defaultTarget, spec, signal, logger:
253
257
  throw error;
254
258
  }
255
259
  });
256
- return Promise.all(promises);
260
+ uniqueRenderers.forEach((renderer, index) => {
261
+ var _a;
262
+ const key = JSON.stringify(renderer);
263
+ storage.set(key, [...((_a = storage.get(key)) !== null && _a !== void 0 ? _a : []), promises[index]]);
264
+ });
257
265
  };
258
266
  }
259
267
  exports.makeCheckAndClose = makeCheckAndClose;
package/dist/ufg/check.js CHANGED
@@ -36,8 +36,8 @@ const uniquify_renderers_1 = require("./utils/uniquify-renderers");
36
36
  const abort_error_1 = require("../errors/abort-error");
37
37
  const utils = __importStar(require("@applitools/utils"));
38
38
  const chalk_1 = __importDefault(require("chalk"));
39
- function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogger, }) {
40
- return async function check({ target = defaultTarget, settings = {}, logger = mainLogger, }) {
39
+ function makeCheck({ eyes, storage, target: defaultTarget, spec, signal, logger: mainLogger, }) {
40
+ return async function check({ target = defaultTarget, settings = {}, logger = mainLogger, } = {}) {
41
41
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
42
42
  logger = logger.extend(mainLogger);
43
43
  logger.log('Command "check" is called with settings', settings);
@@ -50,8 +50,11 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
50
50
  });
51
51
  const uniqueRenderers = (0, uniquify_renderers_1.uniquifyRenderers)((_a = settings.renderers) !== null && _a !== void 0 ? _a : []);
52
52
  const ufgClient = await eyes.core.getUFGClient({
53
- config: { ...eyes.test.ufgServer, eyesServerUrl: eyes.test.server.serverUrl, eyesApiKey: eyes.test.server.apiKey },
54
- concurrency: uniqueRenderers.length || 5,
53
+ settings: {
54
+ ...eyes.test.ufgServer,
55
+ eyesServerUrl: eyes.test.eyesServer.eyesServerUrl,
56
+ apiKey: eyes.test.eyesServer.apiKey,
57
+ },
55
58
  logger,
56
59
  });
57
60
  let snapshots;
@@ -61,7 +64,9 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
61
64
  let regionToTarget;
62
65
  let scrollRootSelector;
63
66
  let selectorsToCalculate;
64
- const driver = spec && (0, driver_1.isDriver)(target, spec) ? await (0, driver_1.makeDriver)({ spec, driver: target, logger }) : null;
67
+ const driver = spec && (0, driver_1.isDriver)(target, spec)
68
+ ? await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger })
69
+ : null;
65
70
  if (driver) {
66
71
  const environment = await driver.getEnvironment();
67
72
  await driver.currentContext.setScrollingElement((_b = settings.scrollRootElement) !== null && _b !== void 0 ? _b : null);
@@ -109,7 +114,7 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
109
114
  const currentContext = driver.currentContext;
110
115
  const snapshotOptions = {
111
116
  settings: {
112
- ...eyes.test.server,
117
+ ...eyes.test.eyesServer,
113
118
  waitBeforeCapture: settings.waitBeforeCapture,
114
119
  disableBrowserFetching: settings.disableBrowserFetching,
115
120
  layoutBreakpoints: settings.layoutBreakpoints,
@@ -136,7 +141,7 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
136
141
  snapshots = await (0, take_dom_snapshots_1.takeDomSnapshots)({ driver, ...snapshotOptions, logger });
137
142
  }
138
143
  else {
139
- const nmlClient = await eyes.core.getNMLClient({ config: eyes.test.server, driver, logger });
144
+ const nmlClient = await eyes.core.getNMLClient({ config: eyes.test.eyesServer, driver, logger });
140
145
  snapshots = (await nmlClient.takeSnapshots({ ...snapshotOptions, logger }));
141
146
  }
142
147
  await currentContext.focus();
@@ -165,31 +170,30 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
165
170
  throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
166
171
  }
167
172
  const { cookies, ...snapshot } = snapshots[index];
168
- const snapshotType = utils.types.has(snapshot, 'cdt') ? 'web' : 'native';
173
+ if (utils.types.has(renderer, 'iosDeviceInfo') || utils.types.has(renderer, 'androidDeviceInfo')) {
174
+ renderer.type = utils.types.has(snapshot, 'cdt') ? 'web' : 'native';
175
+ }
169
176
  const renderTargetPromise = ufgClient.createRenderTarget({
170
177
  snapshot,
171
178
  settings: {
172
179
  renderer,
173
180
  referer: snapshotUrl,
174
181
  cookies,
175
- proxy: eyes.test.server.proxy,
182
+ proxy: eyes.test.eyesServer.proxy,
176
183
  autProxy: settings.autProxy,
177
184
  userAgent,
178
185
  },
179
186
  logger: rendererLogger,
180
187
  });
181
- const [baseEyes] = await eyes.getBaseEyes({
182
- settings: { renderer, type: snapshotType, properties },
183
- logger: rendererLogger,
184
- });
188
+ const [baseEyes] = await eyes.getBaseEyes({ settings: { renderer, properties }, logger: rendererLogger });
185
189
  try {
186
190
  if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
187
191
  rendererLogger.warn('Command "check" was aborted before rendering');
188
192
  throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
189
193
  }
190
194
  else if (!baseEyes.running) {
191
- rendererLogger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
192
- throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
195
+ rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
196
+ throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
193
197
  }
194
198
  const renderTarget = await renderTargetPromise;
195
199
  if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
@@ -197,8 +201,8 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
197
201
  throw new abort_error_1.AbortError('Command "check" was aborted before rendering');
198
202
  }
199
203
  else if (!baseEyes.running) {
200
- rendererLogger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
201
- throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
204
+ rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
205
+ throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
202
206
  }
203
207
  const { renderId, selectorRegions, ...baseTarget } = await ufgClient.render({
204
208
  target: renderTarget,
@@ -208,10 +212,10 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
208
212
  scrollRootElement: scrollRootSelector,
209
213
  selectorsToCalculate: selectorsToCalculate.flatMap(({ safeSelector }) => safeSelector !== null && safeSelector !== void 0 ? safeSelector : []),
210
214
  includeFullPageSize: Boolean(settings.pageId),
211
- type: snapshotType,
212
215
  renderer,
213
- rendererUniqueId: baseEyes.test.rendererUniqueId,
214
- rendererId: baseEyes.test.rendererId,
216
+ renderEnvironmentId: baseEyes.test.renderEnvironmentId,
217
+ uploadUrl: baseEyes.test.uploadUrl,
218
+ stitchingServiceUrl: baseEyes.test.stitchingServiceUrl,
215
219
  },
216
220
  signal,
217
221
  logger: rendererLogger,
@@ -231,22 +235,22 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
231
235
  throw new abort_error_1.AbortError('Command "check" was aborted after rendering');
232
236
  }
233
237
  else if (!baseEyes.running) {
234
- rendererLogger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
235
- throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
238
+ rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
239
+ throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
236
240
  }
237
- const [result] = await baseEyes.check({
241
+ await baseEyes.check({
238
242
  target: { ...baseTarget, isTransformed: true },
239
243
  settings: baseSettings,
240
244
  logger: rendererLogger,
241
245
  });
242
246
  if (!baseEyes.running) {
243
- rendererLogger.warn(`Renderer with id ${baseEyes.test.rendererId} was aborted during one of the previous steps`);
244
- throw new abort_error_1.AbortError(`Renderer with id "${baseEyes.test.rendererId}" was aborted during one of the previous steps`);
247
+ rendererLogger.warn(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
248
+ throw new abort_error_1.AbortError(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" was aborted during one of the previous steps`);
245
249
  }
246
- return { ...result, eyes: baseEyes, renderer };
250
+ return { eyes: baseEyes, renderer };
247
251
  }
248
252
  catch (error) {
249
- rendererLogger.error(`Renderer with id ${baseEyes.test.rendererId} failed due to an error`, error);
253
+ rendererLogger.error(`Render on environment with id "${baseEyes.test.renderEnvironmentId}" failed due to an error`, error);
250
254
  if (baseEyes.running && !(signal === null || signal === void 0 ? void 0 : signal.aborted))
251
255
  await baseEyes.abort({ logger: rendererLogger });
252
256
  error.info = { eyes: baseEyes };
@@ -259,12 +263,12 @@ function makeCheck({ eyes, target: defaultTarget, spec, signal, logger: mainLogg
259
263
  throw error;
260
264
  }
261
265
  });
262
- return uniqueRenderers.map((renderer, index) => ({
263
- asExpected: true,
264
- userTestId: eyes.test.userTestId,
265
- renderer,
266
- promise: promises[index],
267
- }));
266
+ return uniqueRenderers.map((renderer, index) => {
267
+ var _a;
268
+ const key = JSON.stringify(renderer);
269
+ storage.set(key, [...((_a = storage.get(key)) !== null && _a !== void 0 ? _a : []), promises[index]]);
270
+ return { asExpected: true, userTestId: eyes.test.userTestId, renderer };
271
+ });
268
272
  };
269
273
  }
270
274
  exports.makeCheck = makeCheck;
@@ -26,28 +26,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.makeGetBaseEyes = void 0;
27
27
  const utils = __importStar(require("@applitools/utils"));
28
28
  function makeGetBaseEyes({ settings: defaultSettings, eyes, base, logger: mainLogger, }) {
29
- const getBaseEyesWithCache = utils.general.cachify(getBaseEyes, ([options]) => options === null || options === void 0 ? void 0 : options.settings);
29
+ const getBaseEyesWithCache = utils.general.cachify(getBaseEyes, ([options]) => { var _a; return (_a = options === null || options === void 0 ? void 0 : options.settings) === null || _a === void 0 ? void 0 : _a.renderer; });
30
30
  if (base) {
31
- base.forEach(baseEyes => getBaseEyesWithCache.setCachedValue(baseEyes.test.rendererInfo, Promise.resolve([baseEyes])));
31
+ base.forEach(baseEyes => getBaseEyesWithCache.setCachedValue(baseEyes.test.renderer, Promise.resolve([baseEyes])));
32
32
  }
33
33
  return getBaseEyesWithCache;
34
34
  async function getBaseEyes({ settings, logger = mainLogger, } = {}) {
35
- var _a, _b;
36
35
  logger = logger.extend(mainLogger);
37
36
  logger.log(`Command "getBaseEyes" is called with settings`, settings);
38
37
  if (!settings)
39
38
  throw new Error('');
40
39
  const ufgClient = await eyes.core.getUFGClient({
41
- config: { ...eyes.test.ufgServer },
40
+ settings: {
41
+ ...eyes.test.ufgServer,
42
+ eyesServerUrl: eyes.test.eyesServer.eyesServerUrl,
43
+ apiKey: eyes.test.eyesServer.apiKey,
44
+ },
42
45
  logger,
43
46
  });
44
- const environment = await ufgClient.bookRenderer({ settings, logger });
45
- let properties;
46
- if (defaultSettings.properties || settings.properties) {
47
- properties = ((_a = defaultSettings.properties) !== null && _a !== void 0 ? _a : []).concat((_b = settings.properties) !== null && _b !== void 0 ? _b : []);
48
- }
47
+ const environment = await ufgClient.getRenderEnvironment({ settings, logger });
48
+ environment.properties = settings.properties;
49
49
  const baseEyes = await eyes.core.base.openEyes({
50
- settings: { ...defaultSettings, environment: { ...defaultSettings.environment, ...environment }, properties },
50
+ settings: { ...defaultSettings, environment: { ...defaultSettings.environment, ...environment } },
51
51
  logger,
52
52
  });
53
53
  return [baseEyes];
@@ -29,13 +29,19 @@ const utils = __importStar(require("@applitools/utils"));
29
29
  function makeGetUFGClient({ client, fetchConcurrency, logger: mainLogger }) {
30
30
  // we are caching by the server config, therefor if the user creates another Runner / manager with the same server config but different
31
31
  // fetchConcurrency, it will not take any affect.
32
- const getUFGClientWithCache = utils.general.cachify(getUFGClient, ([options]) => client ? 'default' : [{ ...options.config, fetchConcurrency: undefined }]);
32
+ const getUFGClientWithCache = utils.general.cachify(getUFGClient, ([options]) => client ? 'default' : [{ ...options.settings, fetchConcurrency: undefined }]);
33
33
  if (client)
34
34
  getUFGClientWithCache.setCachedValue('default', Promise.resolve(client));
35
35
  return getUFGClientWithCache;
36
- async function getUFGClient({ config, logger = mainLogger }) {
36
+ async function getUFGClient({ settings, logger = mainLogger }) {
37
37
  logger = logger.extend(mainLogger);
38
- return (0, ufg_client_1.makeUFGClient)({ config: { ...config, fetchConcurrency }, logger });
38
+ const tunnelIds = utils.general.getEnvValue('FETCH_RESOURCE_FROM_TUNNEL', 'boolean')
39
+ ? utils.general.getEnvValue('TUNNEL_IDS')
40
+ : undefined;
41
+ return (0, ufg_client_1.makeUFGClient)({
42
+ settings: { ...settings, fetchConcurrency, tunnelIds },
43
+ logger,
44
+ });
39
45
  }
40
46
  }
41
47
  exports.makeGetUFGClient = makeGetUFGClient;
@@ -64,8 +64,10 @@ function makeOpenEyes({ core, spec, logger: mainLogger }) {
64
64
  userTestId: settings.userTestId,
65
65
  batchId: (_a = settings.batch) === null || _a === void 0 ? void 0 : _a.id,
66
66
  keepBatchOpen: settings.keepBatchOpen,
67
- server: account.server,
67
+ eyesServer: account.eyesServer,
68
68
  ufgServer: account.ufgServer,
69
+ uploadUrl: account.uploadUrl,
70
+ stitchingServiceUrl: account.stitchingServiceUrl,
69
71
  account,
70
72
  },
71
73
  get running() {
@@ -73,24 +75,8 @@ function makeOpenEyes({ core, spec, logger: mainLogger }) {
73
75
  },
74
76
  getBaseEyes: (0, get_base_eyes_1.makeGetBaseEyes)({ settings, eyes, base, logger }),
75
77
  // check with indexing and storage
76
- check: utils.general.wrap((0, check_1.makeCheck)({ eyes, target: driver, spec, signal: controller.signal, logger }), async (check, options = {}) => {
77
- const results = await check(options);
78
- results.forEach(result => {
79
- var _a;
80
- const key = JSON.stringify(result.renderer);
81
- storage.set(key, [...((_a = storage.get(key)) !== null && _a !== void 0 ? _a : []), result.promise]);
82
- });
83
- return results;
84
- }),
85
- checkAndClose: utils.general.wrap((0, check_and_close_1.makeCheckAndClose)({ eyes, target: driver, spec, signal: controller.signal, logger }), async (checkAndClose, options = {}) => {
86
- const results = await checkAndClose(options);
87
- results.forEach(result => {
88
- var _a;
89
- const key = JSON.stringify(result.renderer);
90
- storage.set(key, [...((_a = storage.get(key)) !== null && _a !== void 0 ? _a : []), { eyes: result.eyes, renderer: result.renderer }]);
91
- });
92
- return results;
93
- }),
78
+ check: (0, check_1.makeCheck)({ eyes, storage, target: driver, spec, signal: controller.signal, logger }),
79
+ checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ eyes, storage, target: driver, spec, signal: controller.signal, logger }),
94
80
  close: utils.general.wrap((0, close_1.makeClose)({ storage, target: driver, logger }), async (close, options) => {
95
81
  if (!running)
96
82
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "3.6.2",
3
+ "version": "3.6.4",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -68,42 +68,42 @@
68
68
  ]
69
69
  },
70
70
  "dependencies": {
71
- "@applitools/core-base": "1.4.1",
71
+ "@applitools/core-base": "1.4.3",
72
72
  "@applitools/dom-capture": "11.2.2",
73
73
  "@applitools/dom-snapshot": "4.7.9",
74
- "@applitools/driver": "1.13.1",
75
- "@applitools/ec-client": "1.7.1",
76
- "@applitools/logger": "2.0.5",
77
- "@applitools/nml-client": "1.5.3",
78
- "@applitools/req": "1.5.0",
79
- "@applitools/screenshoter": "3.8.4",
74
+ "@applitools/driver": "1.13.3",
75
+ "@applitools/ec-client": "1.7.3",
76
+ "@applitools/logger": "2.0.7",
77
+ "@applitools/nml-client": "1.5.5",
78
+ "@applitools/req": "1.5.2",
79
+ "@applitools/screenshoter": "3.8.6",
80
80
  "@applitools/snippets": "2.4.21",
81
- "@applitools/socket": "1.1.5",
82
- "@applitools/spec-driver-webdriver": "1.0.38",
83
- "@applitools/ufg-client": "1.5.0",
81
+ "@applitools/socket": "1.1.7",
82
+ "@applitools/spec-driver-webdriver": "1.0.40",
83
+ "@applitools/ufg-client": "1.5.2",
84
84
  "@applitools/utils": "1.5.0",
85
85
  "@types/ws": "8.5.5",
86
86
  "abort-controller": "3.0.0",
87
87
  "chalk": "4.1.2",
88
88
  "node-fetch": "2.6.7",
89
89
  "webdriver": "7.30.0",
90
- "ws": "8.12.0",
91
- "yargs": "^17.7.2"
90
+ "ws": "8.13.0",
91
+ "yargs": "17.7.2"
92
92
  },
93
93
  "devDependencies": {
94
- "@applitools/bongo": "^5.0.4",
94
+ "@applitools/bongo": "^5.1.5",
95
95
  "@applitools/sdk-coverage-tests": "^3.1.0",
96
- "@applitools/spec-driver-puppeteer": "^1.1.69",
97
- "@applitools/spec-driver-selenium": "^1.5.52",
98
- "@applitools/spec-driver-webdriverio": "^1.5.7",
96
+ "@applitools/spec-driver-puppeteer": "^1.1.71",
97
+ "@applitools/spec-driver-selenium": "^1.5.54",
98
+ "@applitools/spec-driver-webdriverio": "^1.5.9",
99
99
  "@applitools/test-server": "^1.2.2",
100
100
  "@applitools/test-utils": "^1.5.17",
101
- "@applitools/tunnel-client": "^1.1.1",
101
+ "@applitools/tunnel-client": "^1.1.3",
102
102
  "@types/node": "^12.20.55",
103
103
  "@types/selenium-webdriver": "^4.1.2",
104
104
  "@types/yargs": "^17.0.22",
105
- "chromedriver": "^114.0.1",
106
- "nock": "^13.2.8",
105
+ "chromedriver": "^114.0.3",
106
+ "nock": "^13.3.2",
107
107
  "pkg": "^5.8.0",
108
108
  "png-async": "^0.9.4",
109
109
  "puppeteer": "^19.11.1",
@@ -58,7 +58,7 @@ export interface Eyes<TSpec extends SpecType> extends BaseCore.Eyes {
58
58
  target?: Target<TSpec>;
59
59
  settings?: CheckSettings<TSpec> & BaseCore.CloseSettings;
60
60
  logger?: Logger;
61
- }): Promise<BaseCore.TestResult[]>;
61
+ }): Promise<void>;
62
62
  }
63
63
  export interface ScreenshotSettings<TSpec extends SpecType> extends BaseCore.ImageSettings<Region | ElementReference<TSpec>> {
64
64
  webview?: boolean | string;
@@ -1,4 +1,4 @@
1
- import type { Target, DriverTarget, Eyes, Config, CheckSettings, CloseSettings, TestResult } from './types';
1
+ import type { Target, DriverTarget, Eyes, Config, CheckSettings, CloseSettings } from './types';
2
2
  import { type Logger } from '@applitools/logger';
3
3
  import { type SpecType, type SpecDriver } from '@applitools/driver';
4
4
  type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
@@ -14,5 +14,5 @@ export declare function makeCheckAndClose<TSpec extends SpecType, TDefaultType e
14
14
  settings?: (CheckSettings<TSpec, TDefaultType> & CloseSettings<TDefaultType> & CheckSettings<TSpec, TType> & CloseSettings<TType>) | undefined;
15
15
  config?: (Config<TSpec, TDefaultType> & Config<TSpec, TType>) | undefined;
16
16
  logger?: Logger | undefined;
17
- }) => Promise<TestResult<TType>[]>;
17
+ }) => Promise<void>;
18
18
  export {};
@@ -1,4 +1,4 @@
1
- import type { Target, DriverTarget, Eyes, CheckSettings, CloseSettings, TestResult } from './types';
1
+ import type { Target, DriverTarget, Eyes, CheckSettings, CloseSettings } from './types';
2
2
  import type { CheckSettings as BaseCheckSettings } from '@applitools/core-base';
3
3
  import { type Logger } from '@applitools/logger';
4
4
  import { type SpecType, type SpecDriver } from '@applitools/driver';
@@ -15,5 +15,5 @@ export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target
15
15
  retryTimeout?: number | undefined;
16
16
  } & CloseSettings) | undefined;
17
17
  logger?: Logger | undefined;
18
- }) => Promise<TestResult[]>;
18
+ }) => Promise<void>;
19
19
  export {};
@@ -24,7 +24,7 @@ export interface Eyes<TSpec extends SpecType> extends AutomationCore.Eyes<TSpec>
24
24
  target?: AutomationCore.Target<TSpec>;
25
25
  settings?: CheckSettings<TSpec> & AutomationCore.CloseSettings;
26
26
  logger?: Logger;
27
- }): Promise<AutomationCore.TestResult[]>;
27
+ }): Promise<void>;
28
28
  }
29
29
  export type OpenSettings = AutomationCore.OpenSettings & {
30
30
  keepPlatformNameAsIs?: boolean;
@@ -0,0 +1,11 @@
1
+ import type { Core, Account, EyesServerSettings } from './types';
2
+ import { type Logger } from '@applitools/logger';
3
+ type Options = {
4
+ core: Core<any>;
5
+ logger: Logger;
6
+ };
7
+ export declare function makeGetAccountInfo({ core, logger: mainLogger }: Options): ({ settings, logger, }: {
8
+ settings: EyesServerSettings;
9
+ logger?: Logger | undefined;
10
+ }) => Promise<Account>;
11
+ export {};
@@ -1,6 +1,6 @@
1
1
  import type { DriverTarget, TypedCore, TypedEyes, OpenSettings } from './types';
2
2
  import { type SpecType } from '@applitools/driver';
3
- import { type RendererSettings } from '@applitools/ufg-client';
3
+ import { type RenderEnvironmentSettings } from '@applitools/ufg-client';
4
4
  import { type Logger } from '@applitools/logger';
5
5
  type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
6
6
  type: TType;
@@ -13,7 +13,7 @@ type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
13
13
  };
14
14
  export declare function makeGetTypedEyes<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, settings: defaultSettings, target, cores, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, settings, logger, }?: {
15
15
  type?: TType | undefined;
16
- settings?: RendererSettings[] | undefined;
16
+ settings?: RenderEnvironmentSettings[] | undefined;
17
17
  logger?: Logger | undefined;
18
18
  }) => Promise<TypedEyes<TSpec, TType>>;
19
19
  export {};
package/types/types.d.ts CHANGED
@@ -80,7 +80,7 @@ export interface Eyes<TSpec extends SpecType, TDefaultType extends 'classic' | '
80
80
  settings?: Partial<CheckSettings<TSpec, TDefaultType> & CloseSettings<TDefaultType> & CheckSettings<TSpec, TType> & CloseSettings<TType>>;
81
81
  config?: Config<TSpec, TDefaultType> & Config<TSpec, TType>;
82
82
  logger?: Logger;
83
- }): Promise<TestResult<TType>[]>;
83
+ }): Promise<void>;
84
84
  close(options?: {
85
85
  settings?: Partial<CloseSettings<TDefaultType>>;
86
86
  config?: Config<TSpec, TDefaultType>;
@@ -1,20 +1,26 @@
1
1
  import type { Region } from '@applitools/utils';
2
- import type { DriverTarget, Target, Eyes, CheckSettings, TestResult, CloseSettings } from './types';
2
+ import type { DriverTarget, Target, Eyes, CheckSettings, CloseSettings } from './types';
3
+ import type { Eyes as BaseEyes } from '@applitools/core-base';
4
+ import { type Renderer } from '@applitools/ufg-client';
3
5
  import { type AbortSignal } from 'abort-controller';
4
6
  import { type Logger } from '@applitools/logger';
5
7
  import { type SpecType, type SpecDriver } from '@applitools/driver';
6
8
  type Options<TSpec extends SpecType> = {
7
9
  eyes: Eyes<TSpec>;
10
+ storage: Map<string, Promise<{
11
+ renderer: Renderer;
12
+ eyes: BaseEyes;
13
+ }>[]>;
8
14
  target?: DriverTarget<TSpec>;
9
15
  spec?: SpecDriver<TSpec>;
10
16
  signal?: AbortSignal;
11
17
  logger: Logger;
12
18
  };
13
- export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target: defaultTarget, spec, signal, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }: {
19
+ export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, storage, target: defaultTarget, spec, signal, logger: mainLogger, }: Options<TSpec>): ({ target, settings, logger, }?: {
14
20
  target?: Target<TSpec> | undefined;
15
21
  settings?: (import("@applitools/core-base").CheckSettings<Region | import("@applitools/driver").ElementReference<TSpec>> & import("./types").ScreenshotSettings<TSpec> & {
16
- renderers?: (import("@applitools/ufg-client").Renderer & {
17
- properties?: import("@applitools/core-base/types").CustomProperty[] | undefined;
22
+ renderers?: (Renderer & {
23
+ properties?: import("@applitools/core-base").CustomProperty[] | undefined;
18
24
  })[] | undefined;
19
25
  hooks?: {
20
26
  beforeCaptureScreenshot: string;
@@ -31,5 +37,5 @@ export declare function makeCheckAndClose<TSpec extends SpecType>({ eyes, target
31
37
  }) | undefined;
32
38
  } & CloseSettings) | undefined;
33
39
  logger?: Logger | undefined;
34
- }) => Promise<TestResult[]>;
40
+ }) => Promise<void>;
35
41
  export {};