@coralogix/browser 3.19.1 → 3.20.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 +24 -0
- package/index.esm2.js +26 -21
- package/package.json +1 -1
- package/src/constants.d.ts +1 -0
- package/src/instrumentations/user-interaction/user-interaction.utils.d.ts +1 -2
- package/src/types.d.ts +1 -0
- package/src/utils/all.d.ts +1 -0
- package/src/version.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
## 3.20.0 (2026-07-21)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- Add Proofpoint env
|
|
6
|
+
|
|
7
|
+
## 3.19.4 (2026-07-20)
|
|
8
|
+
|
|
9
|
+
### 🩹 Fixes
|
|
10
|
+
|
|
11
|
+
- Improve dead-click handling and referrer path resolution
|
|
12
|
+
|
|
13
|
+
## 3.19.3 (2026-07-14)
|
|
14
|
+
|
|
15
|
+
### 🩹 Fixes
|
|
16
|
+
|
|
17
|
+
- Improve action-name attribute detection in nested elements
|
|
18
|
+
|
|
19
|
+
## 3.19.2 (2026-07-13)
|
|
20
|
+
|
|
21
|
+
### 🩹 Fixes
|
|
22
|
+
|
|
23
|
+
- fingerprint the clickable ancestor, not the raw click target
|
|
24
|
+
|
|
1
25
|
## 3.19.1 (2026-07-12)
|
|
2
26
|
|
|
3
27
|
### 🩹 Fixes
|
package/index.esm2.js
CHANGED
|
@@ -2198,6 +2198,7 @@ function handleMutations(mutations) {
|
|
|
2198
2198
|
}
|
|
2199
2199
|
|
|
2200
2200
|
var PARENT_SEARCH_DEPTH = 5;
|
|
2201
|
+
var ACTION_NAME_SEARCH_DEPTH = 10;
|
|
2201
2202
|
var POINTER_CURSOR = 'pointer';
|
|
2202
2203
|
var CLICKABLE_SELECTOR = 'a, button, input, select, textarea, label, summary, option, li, ' +
|
|
2203
2204
|
'[role="button"], [role="link"], [role="tab"], ' +
|
|
@@ -2214,7 +2215,7 @@ function getAttributeFromAncestors(element, attr, depth) {
|
|
|
2214
2215
|
return getAttributeFromAncestors(element.parentElement, attr, depth - 1);
|
|
2215
2216
|
}
|
|
2216
2217
|
function extractActionName(el) {
|
|
2217
|
-
return getAttributeFromAncestors(el, CX_ACTION_NAME_ATTRIBUTE);
|
|
2218
|
+
return getAttributeFromAncestors(el, CX_ACTION_NAME_ATTRIBUTE, ACTION_NAME_SEARCH_DEPTH);
|
|
2218
2219
|
}
|
|
2219
2220
|
function extractAriaLabel(el) {
|
|
2220
2221
|
return getAttributeFromAncestors(el, ARIA_LABEL_ATTRIBUTE);
|
|
@@ -2223,14 +2224,14 @@ function extractTestId(el) {
|
|
|
2223
2224
|
return (el === null || el === void 0 ? void 0 : el.getAttribute(DATA_TEST_ATTRIBUTE)) || '';
|
|
2224
2225
|
}
|
|
2225
2226
|
function extractResolvedName(_a) {
|
|
2226
|
-
var element = _a.element,
|
|
2227
|
+
var element = _a.element, config = _a.config, actionName = _a.actionName, ariaLabel = _a.ariaLabel;
|
|
2227
2228
|
if (!element)
|
|
2228
2229
|
return '';
|
|
2229
2230
|
if (actionName)
|
|
2230
2231
|
return actionName;
|
|
2231
2232
|
if (isElementMasked(element, config))
|
|
2232
2233
|
return MASKED_TEXT;
|
|
2233
|
-
return (ariaLabel || getPlaceholder(element) || getInnerText(
|
|
2234
|
+
return (ariaLabel || getPlaceholder(element) || getInnerText(element) || '');
|
|
2234
2235
|
}
|
|
2235
2236
|
function getPlaceholder(element) {
|
|
2236
2237
|
if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {
|
|
@@ -2588,13 +2589,12 @@ var CoralogixUserInteractionInstrumentation = (function (_super) {
|
|
|
2588
2589
|
}
|
|
2589
2590
|
if (eventTarget instanceof Element) {
|
|
2590
2591
|
var clickableElement = findClickableElement(eventTarget);
|
|
2591
|
-
var elementText = extractMaskedOrTextContent(
|
|
2592
|
+
var elementText = extractMaskedOrTextContent(eventTarget, config);
|
|
2592
2593
|
var cxActionName = extractActionName(eventTarget);
|
|
2593
2594
|
var ariaLabel = extractAriaLabel(eventTarget);
|
|
2594
2595
|
var testId = extractTestId(eventTarget);
|
|
2595
2596
|
var resolvedName = extractResolvedName({
|
|
2596
|
-
element: eventTarget,
|
|
2597
|
-
clickableElement: clickableElement,
|
|
2597
|
+
element: clickableElement !== null && clickableElement !== void 0 ? clickableElement : eventTarget,
|
|
2598
2598
|
config: config,
|
|
2599
2599
|
actionName: cxActionName,
|
|
2600
2600
|
ariaLabel: ariaLabel,
|
|
@@ -2603,7 +2603,7 @@ var CoralogixUserInteractionInstrumentation = (function (_super) {
|
|
|
2603
2603
|
var _b = eventTarget.getBoundingClientRect(), width = _b.width, height = _b.height;
|
|
2604
2604
|
span.setAttribute(CoralogixAttributes.ELEMENT_WIDTH, width);
|
|
2605
2605
|
span.setAttribute(CoralogixAttributes.ELEMENT_HEIGHT, height);
|
|
2606
|
-
var fingerprint = getElementFingerprint(eventTarget);
|
|
2606
|
+
var fingerprint = getElementFingerprint(clickableElement !== null && clickableElement !== void 0 ? clickableElement : eventTarget);
|
|
2607
2607
|
if (fingerprint) {
|
|
2608
2608
|
span.setAttribute(CoralogixAttributes.ELEMENT_FINGERPRINT, fingerprint);
|
|
2609
2609
|
var isRageClick = clickableElement
|
|
@@ -3073,7 +3073,9 @@ var idPatterns = [
|
|
|
3073
3073
|
var PATH_ID_PLACEHOLDER = '/{id}';
|
|
3074
3074
|
var NUMERIC_PATH_SEGMENT_REGEX = /\/(?![vV]\d{1,2}\/)([^/\d?]*\d+[^/?]*)/g;
|
|
3075
3075
|
function replaceNumericPathSegments(url) {
|
|
3076
|
-
var replacePath = function (s) {
|
|
3076
|
+
var replacePath = function (s) {
|
|
3077
|
+
return s.replace(NUMERIC_PATH_SEGMENT_REGEX, PATH_ID_PLACEHOLDER);
|
|
3078
|
+
};
|
|
3077
3079
|
try {
|
|
3078
3080
|
var origin_1 = new URL(url).origin;
|
|
3079
3081
|
if (origin_1 === 'null' || !url.startsWith(origin_1))
|
|
@@ -3224,6 +3226,7 @@ var CoralogixDomainsApiUrlMap = {
|
|
|
3224
3226
|
AP1: 'https://ingress.ap1.rum-ingress-coralogix.com',
|
|
3225
3227
|
AP2: 'https://ingress.ap2.rum-ingress-coralogix.com',
|
|
3226
3228
|
AP3: 'https://ingress.ap3.rum-ingress-coralogix.com',
|
|
3229
|
+
PROOFPOINT: 'https://ingress.proofpoint.rum-ingress-coralogix.com',
|
|
3227
3230
|
STAGING: 'https://ingress.staging.rum-ingress-coralogix.com',
|
|
3228
3231
|
};
|
|
3229
3232
|
var PROXY_CX_FORWARD_PARAMETER = 'cxforward';
|
|
@@ -3338,7 +3341,8 @@ var getCachedUrlParts = function (cacheKey, url) {
|
|
|
3338
3341
|
}
|
|
3339
3342
|
catch (_c) {
|
|
3340
3343
|
}
|
|
3341
|
-
var
|
|
3344
|
+
var baseParts = getUrlParts(url);
|
|
3345
|
+
var parts = baseParts && __assign(__assign({}, baseParts), { path: getUrlFragments(url) });
|
|
3342
3346
|
try {
|
|
3343
3347
|
(_b = CxGlobal.sessionStorage) === null || _b === void 0 ? void 0 : _b.setItem(cacheKey, JSON.stringify({ url: url, parts: parts }));
|
|
3344
3348
|
}
|
|
@@ -3505,6 +3509,7 @@ function resolvePageContext(url) {
|
|
|
3505
3509
|
domain: urlParts === null || urlParts === void 0 ? void 0 : urlParts.domain,
|
|
3506
3510
|
host: urlParts === null || urlParts === void 0 ? void 0 : urlParts.host,
|
|
3507
3511
|
referrer: document.referrer,
|
|
3512
|
+
referrer_path: referrerParts === null || referrerParts === void 0 ? void 0 : referrerParts.path,
|
|
3508
3513
|
referrer_schema: referrerParts === null || referrerParts === void 0 ? void 0 : referrerParts.schema,
|
|
3509
3514
|
referrer_subdomain: referrerParts === null || referrerParts === void 0 ? void 0 : referrerParts.subdomain,
|
|
3510
3515
|
referrer_domain: referrerParts === null || referrerParts === void 0 ? void 0 : referrerParts.domain,
|
|
@@ -5039,7 +5044,7 @@ function resolveUrlBlueprinters(urlBlueprinters) {
|
|
|
5039
5044
|
return resolvedUrlBlueprinters;
|
|
5040
5045
|
}
|
|
5041
5046
|
|
|
5042
|
-
var SDK_VERSION = '3.
|
|
5047
|
+
var SDK_VERSION = '3.20.0';
|
|
5043
5048
|
|
|
5044
5049
|
function shouldDropEvent(cxRumEvent, options) {
|
|
5045
5050
|
if (isDocumentErrorWithoutMessage(cxRumEvent)) {
|
|
@@ -5199,9 +5204,9 @@ var CoralogixSpanMapProcessor = (function () {
|
|
|
5199
5204
|
return Promise.resolve(undefined);
|
|
5200
5205
|
};
|
|
5201
5206
|
CoralogixSpanMapProcessor.prototype._mapToCxSpan = function (span, session, prevSession, sessionHasRecording, sessionHasScreenshot, onlySessionWithErrorMode) {
|
|
5202
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
5203
|
-
var
|
|
5204
|
-
var
|
|
5207
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
5208
|
+
var _m = session || {}, sessionId = _m.sessionId, sessionCreationDate = _m.sessionCreationDate;
|
|
5209
|
+
var _o = prevSession || {}, prevSessionId = _o.sessionId, prevSessionCreationDate = _o.sessionCreationDate, prevSessionHasRecording = _o.hasRecording, prevSessionHasScreenshot = _o.hasScreenshot;
|
|
5205
5210
|
var attributes = span.attributes;
|
|
5206
5211
|
var user_context = JSON.parse(attributes[CoralogixAttributes.USER_CONTEXT]);
|
|
5207
5212
|
var application_context = JSON.parse(attributes[CoralogixAttributes.APPLICATION_CONTEXT]);
|
|
@@ -5232,7 +5237,7 @@ var CoralogixSpanMapProcessor = (function () {
|
|
|
5232
5237
|
text: {
|
|
5233
5238
|
cx_rum: __assign(__assign({ fingerPrint: fingerPrint, platform: 'browser', timestamp: timestamp }, eventTypeContext), { browser_sdk: {
|
|
5234
5239
|
version: SDK_VERSION,
|
|
5235
|
-
}, version_metadata: version_metadata, session_context: __assign(__assign(__assign(__assign({}, user_context), { session_id: sessionId, session_creation_date: sessionCreationDate, prev_session: prevSessionId
|
|
5240
|
+
}, version_metadata: version_metadata, session_context: __assign(__assign(__assign(__assign({}, user_context), { user_id: String((_b = user_context === null || user_context === void 0 ? void 0 : user_context.user_id) !== null && _b !== void 0 ? _b : ''), session_id: sessionId, session_creation_date: sessionCreationDate, prev_session: prevSessionId
|
|
5236
5241
|
? {
|
|
5237
5242
|
session_id: prevSessionId,
|
|
5238
5243
|
session_creation_date: prevSessionCreationDate,
|
|
@@ -5244,13 +5249,13 @@ var CoralogixSpanMapProcessor = (function () {
|
|
|
5244
5249
|
source: attributes[CoralogixAttributes.SOURCE],
|
|
5245
5250
|
severity: severity,
|
|
5246
5251
|
}, labels: labels, environment: attributes[CoralogixAttributes.ENVIRONMENT] || '', view_number: getSessionManager().viewNumber, layout_context: {
|
|
5247
|
-
viewport_width: (
|
|
5248
|
-
viewport_height: (
|
|
5249
|
-
view_width: (
|
|
5250
|
-
view_height: (
|
|
5251
|
-
device_pixel_ratio: (
|
|
5252
|
-
scroll_x: (
|
|
5253
|
-
scroll_y: (
|
|
5252
|
+
viewport_width: (_c = window === null || window === void 0 ? void 0 : window.innerWidth) !== null && _c !== void 0 ? _c : 0,
|
|
5253
|
+
viewport_height: (_d = window === null || window === void 0 ? void 0 : window.innerHeight) !== null && _d !== void 0 ? _d : 0,
|
|
5254
|
+
view_width: (_f = (_e = document === null || document === void 0 ? void 0 : document.documentElement) === null || _e === void 0 ? void 0 : _e.scrollWidth) !== null && _f !== void 0 ? _f : 0,
|
|
5255
|
+
view_height: (_h = (_g = document === null || document === void 0 ? void 0 : document.documentElement) === null || _g === void 0 ? void 0 : _g.scrollHeight) !== null && _h !== void 0 ? _h : 0,
|
|
5256
|
+
device_pixel_ratio: (_j = window === null || window === void 0 ? void 0 : window.devicePixelRatio) !== null && _j !== void 0 ? _j : 1,
|
|
5257
|
+
scroll_x: (_k = window === null || window === void 0 ? void 0 : window.scrollX) !== null && _k !== void 0 ? _k : 0,
|
|
5258
|
+
scroll_y: (_l = window === null || window === void 0 ? void 0 : window.scrollY) !== null && _l !== void 0 ? _l : 0,
|
|
5254
5259
|
} }),
|
|
5255
5260
|
},
|
|
5256
5261
|
};
|
package/package.json
CHANGED
package/src/constants.d.ts
CHANGED
|
@@ -2,9 +2,8 @@ import { CoralogixBrowserSdkConfig } from '../../types';
|
|
|
2
2
|
export declare function extractActionName(el: Element | HTMLElement | null): string;
|
|
3
3
|
export declare function extractAriaLabel(el: Element | HTMLElement | null): string;
|
|
4
4
|
export declare function extractTestId(el: Element | HTMLElement | null): string;
|
|
5
|
-
export declare function extractResolvedName({ element,
|
|
5
|
+
export declare function extractResolvedName({ element, config, actionName, ariaLabel, }: {
|
|
6
6
|
element: Element | HTMLElement | null;
|
|
7
|
-
clickableElement: Element | HTMLElement | null;
|
|
8
7
|
config: CoralogixBrowserSdkConfig;
|
|
9
8
|
actionName: string;
|
|
10
9
|
ariaLabel: string;
|
package/src/types.d.ts
CHANGED
package/src/utils/all.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ type UrlParts = {
|
|
|
11
11
|
subdomain: string;
|
|
12
12
|
domain: string;
|
|
13
13
|
host: string;
|
|
14
|
+
path?: string;
|
|
14
15
|
};
|
|
15
16
|
export declare const getUrlParts: (url: string) => UrlParts | undefined;
|
|
16
17
|
export declare const getCachedUrlParts: (cacheKey: string, url: string) => UrlParts | undefined;
|
package/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "3.
|
|
1
|
+
export declare const SDK_VERSION = "3.20.0";
|