@applitools/eyes-browser 1.6.13 → 1.6.14

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 (3) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/index.js +116 -15
  3. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.6.14](https://github.com/Applitools-Dev/sdk/compare/js/eyes-browser@1.6.13...js/eyes-browser@1.6.14) (2026-04-29)
4
+
5
+
6
+ ### Dependencies
7
+
8
+ * @applitools/ufg-client bumped to 1.22.0
9
+ #### Features
10
+
11
+ * new render target entities | AD 13251 ([#3775](https://github.com/Applitools-Dev/sdk/issues/3775)) ([18b6107](https://github.com/Applitools-Dev/sdk/commit/18b6107937ff0f18ba0a256fec1adc6d423f03dc))
12
+ * @applitools/core bumped to 4.61.0
13
+ #### Features
14
+
15
+ * new render target entities | AD 13251 ([#3775](https://github.com/Applitools-Dev/sdk/issues/3775)) ([18b6107](https://github.com/Applitools-Dev/sdk/commit/18b6107937ff0f18ba0a256fec1adc6d423f03dc))
16
+
17
+
18
+
19
+ * @applitools/eyes bumped to 1.40.0
20
+ #### Features
21
+
22
+ * new render target entities | AD 13251 ([#3775](https://github.com/Applitools-Dev/sdk/issues/3775)) ([18b6107](https://github.com/Applitools-Dev/sdk/commit/18b6107937ff0f18ba0a256fec1adc6d423f03dc))
23
+
24
+
25
+
26
+
3
27
  ## [1.6.13](https://github.com/Applitools-Dev/sdk/compare/js/eyes-browser@1.6.12...js/eyes-browser@1.6.13) (2026-04-23)
4
28
 
5
29
 
package/dist/index.js CHANGED
@@ -103992,8 +103992,6 @@ var require_requests3 = __commonJS({
103992
103992
  ...toServerEnvironment(settings2.environment)
103993
103993
  };
103994
103994
  if (utils2.types.has(settings2.environment, "type") && settings2.environment.type === "native") {
103995
- renderOptions.renderInfo.vhsType = target.vhsType;
103996
- renderOptions.renderInfo.vhsCompatibilityParams = target.vhsCompatibilityParams;
103997
103995
  renderOptions.renderInfo.stitchMode = settings2.stitchMode;
103998
103996
  }
103999
103997
  if (settings2.region) {
@@ -104301,7 +104299,7 @@ var require_resource = __commonJS({
104301
104299
  return result;
104302
104300
  };
104303
104301
  Object.defineProperty(exports, "__esModule", { value: true });
104304
- exports.makeHashedResource = exports.makeResource = void 0;
104302
+ exports.makeHashedEntry = exports.makeHashedResource = exports.makeResource = void 0;
104305
104303
  var buffer_1 = require_buffer();
104306
104304
  var crypto_1 = require_crypto_browserify();
104307
104305
  var utils2 = __importStar(require_browser3());
@@ -104349,6 +104347,19 @@ var require_resource = __commonJS({
104349
104347
  };
104350
104348
  }
104351
104349
  exports.makeHashedResource = makeHashedResource;
104350
+ function makeHashedEntry({ url, hash, rootDomSnapshot }, resourceDependencies = []) {
104351
+ if ("errorStatusCode" in hash) {
104352
+ return { url, errorStatusCode: hash.errorStatusCode };
104353
+ }
104354
+ return {
104355
+ url,
104356
+ hash: hash.hash,
104357
+ contentType: hash.contentType,
104358
+ ...rootDomSnapshot && { rootDomSnapshot },
104359
+ resourceDependencies
104360
+ };
104361
+ }
104362
+ exports.makeHashedEntry = makeHashedEntry;
104352
104363
  function isDomOrVHS(resource) {
104353
104364
  return [
104354
104365
  "x-applitools-html/cdt",
@@ -104386,10 +104397,11 @@ var require_resource_dom = __commonJS({
104386
104397
  exports.makeResourceDom = void 0;
104387
104398
  var resource_1 = require_resource();
104388
104399
  function makeResourceDom({ cdt, resources }) {
104389
- const value = new TextEncoder().encode(JSON.stringify({
104400
+ const payload = {
104390
104401
  resources: Object.fromEntries(Object.entries(resources).sort(([url1], [url2]) => url1 > url2 ? 1 : -1)),
104391
104402
  domNodes: cdt
104392
- }));
104403
+ };
104404
+ const value = new TextEncoder().encode(JSON.stringify(payload));
104393
104405
  const resource = (0, resource_1.makeResource)({ value, contentType: "x-applitools-html/cdt" });
104394
104406
  resource.id = `dom/${resource.hash.hash}`;
104395
104407
  return resource;
@@ -104495,22 +104507,97 @@ var require_create_render_target = __commonJS({
104495
104507
  return buffer_1.Buffer.from(resourceData, "utf-8");
104496
104508
  };
104497
104509
  }
104510
+ function computeReplaceUrlSettings(snapshot, replaceResourceUrl) {
104511
+ if (!replaceResourceUrl || !utils2.types.has(snapshot, "url"))
104512
+ return void 0;
104513
+ return { from: getSnapshotOrigin(snapshot.url), to: replaceResourceUrl };
104514
+ }
104515
+ function collectDirectUrls(snapshot, replaceResourceUrlsSettings) {
104516
+ var _a, _b, _c;
104517
+ return [
104518
+ ...((_a = snapshot.resourceUrls) !== null && _a !== void 0 ? _a : []).map((url) => replaceResourceUrlIfNeeded(url, replaceResourceUrlsSettings)),
104519
+ ...Object.keys((_b = snapshot.resourceContents) !== null && _b !== void 0 ? _b : {}).map((url) => replaceResourceUrlIfNeeded(url, replaceResourceUrlsSettings)),
104520
+ ...((_c = snapshot.frames) !== null && _c !== void 0 ? _c : []).map((f) => replaceResourceUrlIfNeeded(f.url, replaceResourceUrlsSettings))
104521
+ ];
104522
+ }
104523
+ function buildUrlList(snapshotUrl, finalResources, originalSnapshotResource) {
104524
+ const urls = [snapshotUrl, ...Object.keys(finalResources).filter((url) => url !== snapshotUrl)];
104525
+ if (originalSnapshotResource)
104526
+ urls.push(snapshotUrl);
104527
+ return urls;
104528
+ }
104529
+ function buildHashedEntries({ urls, urlToIndex, directUrls, dependencyMap, finalResources, originalSnapshotResource }) {
104530
+ return urls.map((url, i) => {
104531
+ var _a;
104532
+ let deps;
104533
+ if (i === 0) {
104534
+ deps = directUrls.map((u) => urlToIndex.get(u)).filter((i2) => i2 !== void 0);
104535
+ } else if ((_a = dependencyMap[url]) === null || _a === void 0 ? void 0 : _a.length) {
104536
+ deps = dependencyMap[url].map((u) => urlToIndex.get(u)).filter((i2) => i2 !== void 0);
104537
+ } else {
104538
+ deps = [];
104539
+ }
104540
+ const hash = originalSnapshotResource && i === urls.length - 1 && url === urls[0] ? originalSnapshotResource : finalResources[url];
104541
+ return (0, resource_1.makeHashedEntry)({ url, hash, rootDomSnapshot: i === 0 ? true : void 0 }, deps);
104542
+ });
104543
+ }
104544
+ function buildDomRenderTarget({ snapshot, finalResources, dependencyMap, originalSnapshotResource, replaceResourceUrlsSettings }) {
104545
+ const snapshotUrl = snapshot.url;
104546
+ const directUrls = collectDirectUrls(snapshot, replaceResourceUrlsSettings);
104547
+ const urls = buildUrlList(snapshotUrl, finalResources, originalSnapshotResource);
104548
+ const urlToIndex = new Map(urls.map((url, i) => [url, i]));
104549
+ const entries = buildHashedEntries({
104550
+ urls,
104551
+ urlToIndex,
104552
+ directUrls,
104553
+ dependencyMap,
104554
+ finalResources,
104555
+ originalSnapshotResource
104556
+ });
104557
+ const snapshotResource = finalResources[snapshotUrl];
104558
+ delete finalResources[snapshotUrl];
104559
+ return { snapshot: snapshotResource, resources: { entries }, source: snapshotUrl };
104560
+ }
104561
+ function buildDependencyMap({ snapshot, snapshotResources, processedDomResource, frameResources, replaceResourceUrlsSettings }) {
104562
+ const frameDependencyMapping = frameResources.reduce((deps, resources, index) => {
104563
+ Object.assign(deps, resources.dependencyMap);
104564
+ const frameSnapshot = snapshot.frames[index];
104565
+ if (utils2.types.has(frameSnapshot, "cdt")) {
104566
+ const frameUrl = replaceResourceUrlIfNeeded(frameSnapshot.url, replaceResourceUrlsSettings);
104567
+ const frameDeps = Object.keys(resources.mapping).filter((url) => url !== frameUrl);
104568
+ if (frameDeps.length)
104569
+ deps[frameUrl] = frameDeps;
104570
+ }
104571
+ return deps;
104572
+ }, {});
104573
+ return {
104574
+ ...frameDependencyMapping,
104575
+ ...snapshotResources.dependencyMap,
104576
+ ...processedDomResource.dependencyMap
104577
+ };
104578
+ }
104498
104579
  function makeCreateRenderTarget({ processResources, logger: mainLogger, replaceResourceUrl }) {
104499
104580
  return async function createRenderTarget({ snapshot, settings, logger = mainLogger }) {
104500
104581
  logger = logger.extend(mainLogger, { tags: [`render-target-${utils2.general.shortid()}`] });
104582
+ const replaceResourceUrlsSettings = computeReplaceUrlSettings(snapshot, replaceResourceUrl);
104501
104583
  const processedSnapshotResources = await processSnapshotResources({ snapshot, settings, logger });
104502
104584
  const resources = await processedSnapshotResources.promise;
104503
- const sortedResources = replaceResourceUrl ? Object.entries(resources).sort(([url1], [url2]) => url1.localeCompare(url2)).reduce((mapping, [url, resource]) => {
104585
+ const { dependencyMap, originalSnapshotResource } = processedSnapshotResources;
104586
+ const finalResources = replaceResourceUrl ? Object.entries(resources).sort(([url1], [url2]) => url1.localeCompare(url2)).reduce((mapping, [url, resource]) => {
104504
104587
  mapping[url] = resource;
104505
104588
  return mapping;
104506
104589
  }, {}) : resources;
104507
104590
  if (utils2.types.has(snapshot, "cdt")) {
104508
- const snapshotResource = sortedResources[snapshot.url];
104509
- delete sortedResources[snapshot.url];
104510
- return { snapshot: snapshotResource, resources: sortedResources, source: snapshot.url };
104591
+ return buildDomRenderTarget({
104592
+ snapshot,
104593
+ finalResources,
104594
+ dependencyMap,
104595
+ originalSnapshotResource,
104596
+ replaceResourceUrlsSettings
104597
+ });
104511
104598
  } else {
104512
104599
  const snapshotResource = resources.vhs;
104513
- return utils2.types.has(snapshot, "vhsType") ? { snapshot: snapshotResource, resources, vhsType: snapshot.vhsType } : { snapshot: snapshotResource, resources, vhsCompatibilityParams: snapshot.vhsCompatibilityParams };
104600
+ return { snapshot: snapshotResource, resources: { entries: [] } };
104514
104601
  }
104515
104602
  };
104516
104603
  async function processSnapshotResources({ snapshot, settings, logger }) {
@@ -104563,7 +104650,7 @@ var require_create_render_target = __commonJS({
104563
104650
  const domResource = utils2.types.has(snapshot, "cdt") ? {
104564
104651
  [snapshot.url]: (0, resource_dom_1.makeResourceDom)({
104565
104652
  cdt: replaceUrlInContentIfNeeded(snapshot.cdt, replaceResourceUrlsSettings),
104566
- resources: resourceMappingWithoutDom
104653
+ resources: Object.fromEntries(Object.entries(resourceMappingWithoutDom).filter(([url]) => url !== snapshot.url))
104567
104654
  })
104568
104655
  } : {
104569
104656
  vhs: (0, resource_vhs_1.makeResourceVhs)({
@@ -104578,13 +104665,23 @@ var require_create_render_target = __commonJS({
104578
104665
  const frameResourceMapping = frameResources.reduce((mapping, resources) => {
104579
104666
  return Object.assign(mapping, resources.mapping);
104580
104667
  }, {});
104668
+ const originalSnapshotResource = utils2.types.has(snapshot, "url") ? snapshotResourcesMapping[snapshot.url] : void 0;
104581
104669
  const resourceMapping = {
104582
104670
  ...frameResourceMapping,
104583
104671
  ...snapshotResources.mapping,
104584
104672
  ...processedDomResource.mapping
104585
104673
  };
104674
+ const dependencyMap = buildDependencyMap({
104675
+ snapshot,
104676
+ snapshotResources,
104677
+ processedDomResource,
104678
+ frameResources,
104679
+ replaceResourceUrlsSettings
104680
+ });
104586
104681
  return {
104587
104682
  mapping: resourceMapping,
104683
+ dependencyMap,
104684
+ originalSnapshotResource,
104588
104685
  promise: Promise.all([
104589
104686
  snapshotResources.promise,
104590
104687
  processedDomResource.promise,
@@ -122038,6 +122135,7 @@ var require_process_resources = __commonJS({
122038
122135
  var utils2 = __importStar(require_browser3());
122039
122136
  function makeProcessResources({ fetchResource, uploadResource, cache = /* @__PURE__ */ new Map(), asyncCache, logger: mainLogger }) {
122040
122137
  return async function processResources({ resources, settings, logger = mainLogger }) {
122138
+ var _a;
122041
122139
  logger = logger.extend(mainLogger, { tags: [`process-resources-${utils2.general.shortid()}`] });
122042
122140
  const processedResources = await Object.entries(resources).reduce(async (processedResourcesPromise, [url, resource]) => {
122043
122141
  if (utils2.types.has(resource, "value") || utils2.types.has(resource, "errorStatusCode")) {
@@ -122053,12 +122151,15 @@ var require_process_resources = __commonJS({
122053
122151
  }
122054
122152
  }, Promise.resolve({}));
122055
122153
  const mapping = {};
122154
+ const dependencyMap = {};
122056
122155
  const ready = [];
122057
122156
  for (const [url, processedResource] of Object.entries(processedResources)) {
122058
122157
  mapping[url] = processedResource.hash;
122158
+ if ((_a = processedResource.dependencies) === null || _a === void 0 ? void 0 : _a.length)
122159
+ dependencyMap[url] = processedResource.dependencies;
122059
122160
  ready.push(processedResource.ready);
122060
122161
  }
122061
- return { mapping, promise: Promise.all(ready).then(() => mapping) };
122162
+ return { mapping, dependencyMap, promise: Promise.all(ready).then(() => mapping) };
122062
122163
  };
122063
122164
  async function processContentfulResource({ resource, logger = mainLogger }) {
122064
122165
  var _a;
@@ -128310,7 +128411,7 @@ var require_package3 = __commonJS({
128310
128411
  "../core/package.json"(exports, module) {
128311
128412
  module.exports = {
128312
128413
  name: "@applitools/core",
128313
- version: "4.60.0",
128414
+ version: "4.61.0",
128314
128415
  homepage: "https://applitools.com",
128315
128416
  bugs: {
128316
128417
  url: "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -129852,7 +129953,7 @@ var require_package4 = __commonJS({
129852
129953
  "../eyes/package.json"(exports, module) {
129853
129954
  module.exports = {
129854
129955
  name: "@applitools/eyes",
129855
- version: "1.39.0",
129956
+ version: "1.40.0",
129856
129957
  keywords: [
129857
129958
  "applitools",
129858
129959
  "eyes",
@@ -131467,7 +131568,7 @@ var require_package5 = __commonJS({
131467
131568
  "package.json"(exports, module) {
131468
131569
  module.exports = {
131469
131570
  name: "@applitools/eyes-browser",
131470
- version: "1.6.13",
131571
+ version: "1.6.14",
131471
131572
  type: "module",
131472
131573
  keywords: [
131473
131574
  "applitools",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-browser",
3
- "version": "1.6.13",
3
+ "version": "1.6.14",
4
4
  "type": "module",
5
5
  "keywords": [
6
6
  "applitools",
@@ -51,7 +51,7 @@
51
51
  "test": "run playwright test"
52
52
  },
53
53
  "dependencies": {
54
- "@applitools/eyes": "1.39.0"
54
+ "@applitools/eyes": "1.40.0"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@applitools/test-server": "1.4.3",