@adobe/helix-rum-enhancer 2.46.2 → 2.47.1

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ## [2.47.1](https://github.com/adobe/helix-rum-enhancer/compare/v2.47.0...v2.47.1) (2026-04-14)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **test:** resolve race condition in fromredirect integration test ([37c7f59](https://github.com/adobe/helix-rum-enhancer/commit/37c7f5951e16d597c5b45356299092ef48478f84))
7
+ * **test:** use deterministic await instead of fixed timeout ([aa1c0c9](https://github.com/adobe/helix-rum-enhancer/commit/aa1c0c9eb00415df8afa0c918dc7102e614bb5a0))
8
+
9
+ # [2.47.0](https://github.com/adobe/helix-rum-enhancer/compare/v2.46.2...v2.47.0) (2026-04-14)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **ci:** guard dry-run against tag pushes ([c9d8a92](https://github.com/adobe/helix-rum-enhancer/commit/c9d8a92ffe5cce0b7f02169576bee819ec4c87ca))
15
+ * **ci:** restore semantic-release dry-run on all branches ([2b276f9](https://github.com/adobe/helix-rum-enhancer/commit/2b276f93e94a5f8466f0e01215b596537b84f1cb))
16
+
17
+
18
+ ### Features
19
+
20
+ * **viewmedia:** dedupe checkpoints by source+target pair ([e02ac91](https://github.com/adobe/helix-rum-enhancer/commit/e02ac910c7143487ca867bb952d7db88d6ffae1a))
21
+
1
22
  ## [2.46.2](https://github.com/adobe/helix-rum-enhancer/compare/v2.46.1...v2.46.2) (2026-04-13)
2
23
 
3
24
 
package/modules/index.js CHANGED
@@ -85,6 +85,10 @@ const PLUGINS = {
85
85
  // test: broken-plugin
86
86
  };
87
87
 
88
+ const MAX_EV = 1023;
89
+
90
+ const vmDedupe = new Set();
91
+
88
92
  function getIntersectionObserver(checkpoint) {
89
93
  /* c8 ignore next 3 */
90
94
  if (!window.IntersectionObserver) {
@@ -98,6 +102,13 @@ function getIntersectionObserver(checkpoint) {
98
102
  observer.unobserve(e.target); // observe only once
99
103
  const target = targetSelector(e.target);
100
104
  const source = sourceSelector(e.target);
105
+ if (checkpoint === 'viewmedia') {
106
+ const key = `${source}\0${target}`;
107
+ if (vmDedupe.has(key)) {
108
+ return;
109
+ }
110
+ if (vmDedupe.size < MAX_EV) vmDedupe.add(key);
111
+ }
101
112
  sampleRUM(checkpoint, { target, source });
102
113
  });
103
114
  /* c8 ignore next 3 */
@@ -170,9 +181,9 @@ function createPluginMO(key, params, usp) {
170
181
 
171
182
  /**
172
183
  * Maximum number of events. The first call will be made by rum-js,
173
- * leaving 1023 events for the enhancer to track
184
+ * leaving MAX_EV for the enhancer to track
174
185
  */
175
- let maxEvents = 1023;
186
+ let maxEvents = MAX_EV;
176
187
 
177
188
  function trackCheckpoint(checkpoint, data, t) {
178
189
  const { weight, id } = window.hlx.rum;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/helix-rum-enhancer",
3
- "version": "2.46.2",
3
+ "version": "2.47.1",
4
4
  "description": "Helix RUM Enhancer",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -14,7 +14,7 @@
14
14
  "build-bundle": "rollup --config",
15
15
  "prepack": "npm run build-bundle",
16
16
  "semantic-release": "semantic-release",
17
- "semantic-release-dry": "semantic-release --dry-run --branches $CI_BRANCH 1.x main",
17
+ "semantic-release-dry": "semantic-release --dry-run --branches $CI_BRANCH",
18
18
  "prepare": "husky"
19
19
  },
20
20
  "repository": {
@@ -38,7 +38,7 @@
38
38
  "@adobe/rollup-plugin-checksum": "1.2.0",
39
39
  "@eslint/config-helpers": "0.5.3",
40
40
  "@esm-bundle/chai": "4.3.4-fix.0",
41
- "@rollup/plugin-babel": "6.1.0",
41
+ "@rollup/plugin-babel": "7.0.0",
42
42
  "@semantic-release/changelog": "6.0.3",
43
43
  "@semantic-release/exec": "7.1.0",
44
44
  "@semantic-release/git": "10.0.1",
@@ -48,12 +48,12 @@
48
48
  "@web/test-runner-junit-reporter": "0.8.0",
49
49
  "@web/test-runner-mocha": "0.9.0",
50
50
  "@web/test-runner-playwright": "0.11.1",
51
- "c8": "10.1.3",
51
+ "c8": "11.0.0",
52
52
  "codecov": "3.8.3",
53
53
  "eslint": "9.30.1",
54
54
  "eslint-plugin-header": "3.1.1",
55
55
  "eslint-plugin-import": "2.32.0",
56
- "globals": "16.5.0",
56
+ "globals": "17.4.0",
57
57
  "husky": "9.1.7",
58
58
  "jsdoc-to-markdown": "9.1.3",
59
59
  "junit-report-builder": "5.1.1",
package/src/index.js CHANGED
@@ -185,6 +185,8 @@
185
185
  mutationObserverParams: bodyChildMO
186
186
  }
187
187
  };
188
+ const MAX_EV = 1023;
189
+ const vmDedupe = new Set();
188
190
  function getIntersectionObserver(checkpoint) {
189
191
  if (!window.IntersectionObserver) {
190
192
  return null;
@@ -195,6 +197,13 @@
195
197
  observer.unobserve(e.target);
196
198
  const target = targetSelector(e.target);
197
199
  const source = sourceSelector(e.target);
200
+ if (checkpoint === 'viewmedia') {
201
+ const key = `${source}\0${target}`;
202
+ if (vmDedupe.has(key)) {
203
+ return;
204
+ }
205
+ if (vmDedupe.size < MAX_EV) vmDedupe.add(key);
206
+ }
198
207
  sampleRUM(checkpoint, {
199
208
  target,
200
209
  source
@@ -253,7 +262,7 @@
253
262
  observer.observe(plugin.mutationObserverParams.target, plugin.mutationObserverParams.options);
254
263
  }
255
264
  }
256
- let maxEvents = 1023;
265
+ let maxEvents = MAX_EV;
257
266
  function trackCheckpoint(checkpoint, data, t) {
258
267
  const {
259
268
  weight,
package/src/index.md5 CHANGED
@@ -1 +1 @@
1
- b9c650a69e3248bc8666c1268570f5a9
1
+ fa98376e172bd50a2d07091d05e50acd
package/src/index.sri CHANGED
@@ -1 +1 @@
1
- sha384-8K8JzOS/Wn/gjv5NjyMAnGcI97s6ynBGgps6vWt7B01KqJyQko6jK0q9KW1fe5Yk
1
+ sha384-JXOUwSPNDq4X6Qdu8iG5xceLUolYUKzfZ45yEBNJ6tK1AKEAhwI43rDYmMAVo3sa
@@ -1 +1 @@
1
- 4d477d96ade6db3644031c8335095934
1
+ 83098edb2dc04573f9aac3987a7f1bae
@@ -1 +1 @@
1
- 53d5a37b9dae3321e18f25551f062fa5
1
+ 414efdfffd1816c02fe10764f1ae7a53
@@ -1 +1 @@
1
- 3b10d31bb1dbd2e5281b8de4c9478454
1
+ 3ef39d6c29619ddd5c5aaa77d2ce54d7
@@ -1 +1 @@
1
- c00518b019647f564ce00dce9d07c74b
1
+ 4b5cf6c41be188be11c519f419592e7e
@@ -1 +1 @@
1
- f7be09c5b13268f51780ee91d44006bd
1
+ ffe06266f271e876a25169b3b9aeb664
@@ -1 +1 @@
1
- 907a29e9b683d52ab45c0fc02038916e
1
+ b4b27fd1bc3bb7a309c377448c22529c
@@ -1 +1 @@
1
- 3476ee246a6b4c1599651d8a7580e2c7
1
+ 69d98a5cc1e1f11f6bedc2dbe91d8f8f