@adobe/helix-rum-enhancer 1.1.4 → 1.3.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.
- package/CHANGELOG.md +14 -0
- package/README.md +1 -0
- package/package.json +8 -8
- package/src/index.js +26 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [1.3.0](https://github.com/adobe/helix-rum-enhancer/compare/v1.2.0...v1.3.0) (2023-08-24)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **forms:** improve form instrumentation ([86ecbf5](https://github.com/adobe/helix-rum-enhancer/commit/86ecbf564fe6c04e1d566ac4eeb446d3e6670171))
|
|
7
|
+
|
|
8
|
+
# [1.2.0](https://github.com/adobe/helix-rum-enhancer/compare/v1.1.4...v1.2.0) (2023-08-18)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **checkpoints:** introduce new checkpoint `enter` that gets triggered when a page is first loaded (not refreshed) ([16c3381](https://github.com/adobe/helix-rum-enhancer/commit/16c3381ee564de17fbd6ab8d14a717f9773ca5f6)), closes [#62](https://github.com/adobe/helix-rum-enhancer/issues/62)
|
|
14
|
+
|
|
1
15
|
## [1.1.4](https://github.com/adobe/helix-rum-enhancer/compare/v1.1.3...v1.1.4) (2023-05-16)
|
|
2
16
|
|
|
3
17
|
|
package/README.md
CHANGED
|
@@ -20,6 +20,7 @@ It will add following new checkpoints:
|
|
|
20
20
|
- `click`: A click anywhere in the document
|
|
21
21
|
- `viewblock`: A Helix block has been scrolled into the viewport
|
|
22
22
|
- `viewmedia`: An image or viedo hosted by Helix Media Bus has been scrolled into the viewport
|
|
23
|
+
- `enter`: when page loads and the referrer is different than the current page.
|
|
23
24
|
|
|
24
25
|
## Development
|
|
25
26
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/helix-rum-enhancer",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Helix RUM Enhancer",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -28,22 +28,22 @@
|
|
|
28
28
|
"reporter-options": "configFile=.mocha-multi.json"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@adobe/eslint-config-helix": "2.0.
|
|
31
|
+
"@adobe/eslint-config-helix": "2.0.3",
|
|
32
32
|
"@semantic-release/changelog": "6.0.3",
|
|
33
33
|
"@semantic-release/git": "10.0.1",
|
|
34
|
-
"@semantic-release/npm": "10.0.
|
|
35
|
-
"c8": "
|
|
34
|
+
"@semantic-release/npm": "10.0.5",
|
|
35
|
+
"c8": "8.0.1",
|
|
36
36
|
"codecov": "3.8.3",
|
|
37
|
-
"eslint": "8.
|
|
37
|
+
"eslint": "8.47.0",
|
|
38
38
|
"eslint-plugin-header": "3.1.1",
|
|
39
|
-
"eslint-plugin-import": "2.
|
|
39
|
+
"eslint-plugin-import": "2.28.1",
|
|
40
40
|
"husky": "8.0.3",
|
|
41
41
|
"jsdoc-to-markdown": "8.0.0",
|
|
42
42
|
"junit-report-builder": "3.0.1",
|
|
43
|
-
"lint-staged": "
|
|
43
|
+
"lint-staged": "14.0.0",
|
|
44
44
|
"mocha": "10.2.0",
|
|
45
45
|
"mocha-multi-reporters": "1.5.1",
|
|
46
|
-
"semantic-release": "21.0.
|
|
46
|
+
"semantic-release": "21.0.7"
|
|
47
47
|
},
|
|
48
48
|
"lint-staged": {
|
|
49
49
|
"*.js": "eslint",
|
package/src/index.js
CHANGED
|
@@ -46,8 +46,14 @@ sampleRUM.drain('observe', ((elements) => {
|
|
|
46
46
|
});
|
|
47
47
|
}));
|
|
48
48
|
|
|
49
|
+
// enter checkpoint when referrer is not the current page url
|
|
50
|
+
if (!!document.referrer && (document.referrer !== window.location.href)) {
|
|
51
|
+
sampleRUM('enter', { target: undefined, source: document.referrer });
|
|
52
|
+
}
|
|
53
|
+
|
|
49
54
|
sampleRUM.targetselector = (element) => {
|
|
50
|
-
let value = element.getAttribute('href') || element.currentSrc || element.getAttribute('src')
|
|
55
|
+
let value = element.getAttribute('href') || element.currentSrc || element.getAttribute('src')
|
|
56
|
+
|| element.dataset.action || element.action;
|
|
51
57
|
if (value && value.startsWith('https://')) {
|
|
52
58
|
// resolve relative links
|
|
53
59
|
value = new URL(value, window.location).href;
|
|
@@ -85,9 +91,19 @@ sampleRUM.sourceselector = (element) => {
|
|
|
85
91
|
if (element === document.body || element === document.documentElement || !element) {
|
|
86
92
|
return undefined;
|
|
87
93
|
}
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
|
|
95
|
+
const form = element.closest('form');
|
|
96
|
+
let formElementSelector = '';
|
|
97
|
+
if (form && Array.from(form.elements).includes(element)) {
|
|
98
|
+
formElementSelector = element.tagName === 'INPUT' ? `form input[type='${element.getAttribute('type')}']` : `form ${element.tagName.toLowerCase()}`;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (element.id || formElementSelector) {
|
|
102
|
+
const blockName = element.closest('.block') ? element.closest('.block').getAttribute('data-block-name') : '';
|
|
103
|
+
const id = element.id ? `#${element.id}` : '';
|
|
104
|
+
return blockName ? `.${blockName} ${formElementSelector}${id}` : `${formElementSelector}${id}`;
|
|
90
105
|
}
|
|
106
|
+
|
|
91
107
|
if (element.getAttribute('data-block-name')) {
|
|
92
108
|
return `.${element.getAttribute('data-block-name')}`;
|
|
93
109
|
}
|
|
@@ -97,3 +113,10 @@ sampleRUM.sourceselector = (element) => {
|
|
|
97
113
|
document.addEventListener('click', (event) => {
|
|
98
114
|
sampleRUM('click', { target: sampleRUM.targetselector(event.target), source: sampleRUM.sourceselector(event.target) });
|
|
99
115
|
});
|
|
116
|
+
|
|
117
|
+
// Track form submissions
|
|
118
|
+
document.querySelectorAll('form').forEach((form) => {
|
|
119
|
+
form.addEventListener('submit', (event) => {
|
|
120
|
+
sampleRUM('formsubmit', { target: sampleRUM.targetselector(event.target), source: sampleRUM.sourceselector(event.target) });
|
|
121
|
+
});
|
|
122
|
+
});
|