@adobe/helix-rum-enhancer 2.24.0 → 2.26.0-beta.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/.releaserc.cjs +1 -1
- package/CHANGELOG.md +14 -0
- package/modules/dom.js +9 -2
- package/modules/index.js +14 -2
- package/package.json +8 -8
- package/src/index.js +20 -3
- package/src/index.md5 +1 -1
package/.releaserc.cjs
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [2.26.0-beta.1](https://github.com/adobe/helix-rum-enhancer/compare/v2.25.0...v2.26.0-beta.1) (2024-10-09)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* handle pre-rendering ([bb11187](https://github.com/adobe/helix-rum-enhancer/commit/bb11187058b8cb521a270c316323b66414a8d817))
|
|
7
|
+
|
|
8
|
+
# [2.25.0](https://github.com/adobe/helix-rum-enhancer/compare/v2.24.0...v2.25.0) (2024-10-03)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* capturing id of form and button type inside a form ([#293](https://github.com/adobe/helix-rum-enhancer/issues/293)) ([530572f](https://github.com/adobe/helix-rum-enhancer/commit/530572f7c441c72f8d5f7683bef7490d37186a9f))
|
|
14
|
+
|
|
1
15
|
# [2.24.0](https://github.com/adobe/helix-rum-enhancer/compare/v2.23.0...v2.24.0) (2024-09-20)
|
|
2
16
|
|
|
3
17
|
|
package/modules/dom.js
CHANGED
|
@@ -61,7 +61,9 @@ function isButton(element) {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
function getSourceContext(element) {
|
|
64
|
-
if (element.closest('form'))
|
|
64
|
+
if (element.closest('form')) {
|
|
65
|
+
return `form${element.id ? `#${element.id}` : ''}`;
|
|
66
|
+
}
|
|
65
67
|
const block = element.closest('.block[data-block-name]');
|
|
66
68
|
if (block) return `.${block.getAttribute('data-block-name')}`;
|
|
67
69
|
if (walk(element, isDialog)) return 'dialog';
|
|
@@ -73,7 +75,12 @@ function getSourceContext(element) {
|
|
|
73
75
|
}
|
|
74
76
|
|
|
75
77
|
function getSourceElement(element) {
|
|
76
|
-
if (element.closest('form') && Array.from(element.closest('form').elements).includes(element))
|
|
78
|
+
if (element.closest('form') && Array.from(element.closest('form').elements).includes(element)) {
|
|
79
|
+
return (element.tagName.toLowerCase()
|
|
80
|
+
+ (['INPUT', 'BUTTON'].includes(element.tagName)
|
|
81
|
+
? `[type='${element.getAttribute('type') || ''}']`
|
|
82
|
+
: ''));
|
|
83
|
+
}
|
|
77
84
|
if (walk(element, isButton)) return 'button';
|
|
78
85
|
return element.tagName.toLowerCase().match(/^(a|img|video)$/) && element.tagName.toLowerCase();
|
|
79
86
|
}
|
package/modules/index.js
CHANGED
|
@@ -112,9 +112,21 @@ function addCWVTracking() {
|
|
|
112
112
|
function addNavigationTracking() {
|
|
113
113
|
// enter checkpoint when referrer is not the current page url
|
|
114
114
|
const navigate = (source, type, redirectCount) => {
|
|
115
|
+
// target can be 'visible', 'hidden' (background tab) or 'prerendered' (speculation rules)
|
|
115
116
|
const payload = { source, target: document.visibilityState };
|
|
116
|
-
|
|
117
|
-
|
|
117
|
+
if (document.prerendering) {
|
|
118
|
+
// listen for "activation" of the current pre-rendered page
|
|
119
|
+
document.addEventListener('prerenderingchange', () => {
|
|
120
|
+
// pre-rendered page is now "activated"
|
|
121
|
+
payload.target = 'prerendered';
|
|
122
|
+
sampleRUM('navigate', payload); // prerendered navigation
|
|
123
|
+
}, {
|
|
124
|
+
once: true,
|
|
125
|
+
});
|
|
126
|
+
if (type === 'navigate') {
|
|
127
|
+
sampleRUM('prerender', payload); // prerendering page
|
|
128
|
+
}
|
|
129
|
+
} else if (type === 'reload' || source === window.location.href) {
|
|
118
130
|
sampleRUM('reload', payload);
|
|
119
131
|
} else if (type && type !== 'navigate') {
|
|
120
132
|
sampleRUM(type, payload); // back, forward, prerender, etc.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/helix-rum-enhancer",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.26.0-beta.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 1.x main beta",
|
|
18
18
|
"prepare": "husky"
|
|
19
19
|
},
|
|
20
20
|
"repository": {
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"reporter-options": "configFile=.mocha-multi.json"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@adobe/eslint-config-helix": "2.0.
|
|
36
|
+
"@adobe/eslint-config-helix": "2.0.8",
|
|
37
37
|
"@adobe/helix-rum-js": "2.6.0",
|
|
38
38
|
"@esm-bundle/chai": "4.3.4-fix.0",
|
|
39
39
|
"@semantic-release/changelog": "6.0.3",
|
|
@@ -47,18 +47,18 @@
|
|
|
47
47
|
"codecov": "3.8.3",
|
|
48
48
|
"eslint": "8.57.1",
|
|
49
49
|
"eslint-plugin-header": "3.1.1",
|
|
50
|
-
"eslint-plugin-import": "2.
|
|
50
|
+
"eslint-plugin-import": "2.31.0",
|
|
51
51
|
"husky": "9.1.6",
|
|
52
|
-
"jsdoc-to-markdown": "9.0.
|
|
53
|
-
"junit-report-builder": "5.
|
|
52
|
+
"jsdoc-to-markdown": "9.0.2",
|
|
53
|
+
"junit-report-builder": "5.1.1",
|
|
54
54
|
"lint-staged": "15.2.10",
|
|
55
55
|
"mocha": "10.7.3",
|
|
56
56
|
"mocha-multi-reporters": "1.5.1",
|
|
57
|
-
"rollup": "4.
|
|
57
|
+
"rollup": "4.24.0",
|
|
58
58
|
"rollup-plugin-checksum": "1.0.1",
|
|
59
59
|
"rollup-plugin-cleanup": "3.2.1",
|
|
60
60
|
"rollup-plugin-eslint-bundle": "9.0.0",
|
|
61
|
-
"semantic-release": "24.1.
|
|
61
|
+
"semantic-release": "24.1.2",
|
|
62
62
|
"semantic-release-slack-bot": "^4.0.2",
|
|
63
63
|
"web-vitals": "4.2.3"
|
|
64
64
|
},
|
package/src/index.js
CHANGED
|
@@ -80,7 +80,9 @@
|
|
|
80
80
|
return element.getAttribute('role') === 'button';
|
|
81
81
|
}
|
|
82
82
|
function getSourceContext(element) {
|
|
83
|
-
if (element.closest('form'))
|
|
83
|
+
if (element.closest('form')) {
|
|
84
|
+
return `form${element.id ? `#${element.id}` : ''}`;
|
|
85
|
+
}
|
|
84
86
|
const block = element.closest('.block[data-block-name]');
|
|
85
87
|
if (block) return `.${block.getAttribute('data-block-name')}`;
|
|
86
88
|
if (walk(element, isDialog)) return 'dialog';
|
|
@@ -91,7 +93,12 @@
|
|
|
91
93
|
return (walk(element, (e) => e.id && `#${e.id}`));
|
|
92
94
|
}
|
|
93
95
|
function getSourceElement(element) {
|
|
94
|
-
if (element.closest('form') && Array.from(element.closest('form').elements).includes(element))
|
|
96
|
+
if (element.closest('form') && Array.from(element.closest('form').elements).includes(element)) {
|
|
97
|
+
return (element.tagName.toLowerCase()
|
|
98
|
+
+ (['INPUT', 'BUTTON'].includes(element.tagName)
|
|
99
|
+
? `[type='${element.getAttribute('type') || ''}']`
|
|
100
|
+
: ''));
|
|
101
|
+
}
|
|
95
102
|
if (walk(element, isButton)) return 'button';
|
|
96
103
|
return element.tagName.toLowerCase().match(/^(a|img|video)$/) && element.tagName.toLowerCase();
|
|
97
104
|
}
|
|
@@ -259,7 +266,17 @@
|
|
|
259
266
|
function addNavigationTracking() {
|
|
260
267
|
const navigate = (source, type, redirectCount) => {
|
|
261
268
|
const payload = { source, target: document.visibilityState };
|
|
262
|
-
if (
|
|
269
|
+
if (document.prerendering) {
|
|
270
|
+
document.addEventListener('prerenderingchange', () => {
|
|
271
|
+
payload.target = 'prerendered';
|
|
272
|
+
sampleRUM('navigate', payload);
|
|
273
|
+
}, {
|
|
274
|
+
once: true,
|
|
275
|
+
});
|
|
276
|
+
if (type === 'navigate') {
|
|
277
|
+
sampleRUM('prerender', payload);
|
|
278
|
+
}
|
|
279
|
+
} else if (type === 'reload' || source === window.location.href) {
|
|
263
280
|
sampleRUM('reload', payload);
|
|
264
281
|
} else if (type && type !== 'navigate') {
|
|
265
282
|
sampleRUM(type, payload);
|
package/src/index.md5
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
81557c0399da9e24aeac8f384303248a
|