@coralogix/browser 3.23.5 → 3.24.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 +39 -0
- package/README.md +32 -1
- package/index.esm.js +1 -1
- package/index.esm2.js +815 -151
- package/package.json +1 -1
- package/sessionRecorder.esm.js +9 -78
- package/src/constants.d.ts +4 -1
- package/src/helpers.d.ts +2 -0
- package/src/instrumentations/screenshot/dom-change-screenshot-trigger.d.ts +28 -0
- package/src/instrumentations/screenshot/dom-change-screenshot.consts.d.ts +23 -0
- package/src/instrumentations/screenshot/screenshot-gate.d.ts +1 -0
- package/src/instrumentations/screenshot/screenshot.utils.d.ts +2 -0
- package/src/instrumentations/user-interaction/user-interaction.utils.d.ts +2 -2
- package/src/session/session.model.d.ts +1 -0
- package/src/session/sessionRecorder.d.ts +1 -0
- package/src/tools/sdk-store.d.ts +6 -0
- package/src/types.d.ts +1 -0
- package/src/version.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,42 @@
|
|
|
1
|
+
## 3.24.0 (2026-09-23)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- Take an extra screenshot for Coralogix Product Analytics when a user action leads to a meaningful application state — a dialog, drawer or menu opening, a view being replaced — on top of the screenshots already taken on the first click and one random later click of each view. On by default whenever session recording is running; set `sessionRecordingConfig.captureScreenshotOnDomChange: false` to turn it off. Expect a small rise in upload volume: one to four extra screenshots per page view, measured on real applications
|
|
6
|
+
- List the actions available on the captured view in each Product Analytics screenshot event (`screenshot_context.actions`, up to 100 names): the page's `data-cx-action-name` values first, then the same names a click on the page's controls would report as `resolved_name`
|
|
7
|
+
|
|
8
|
+
### 🩹 Fixes
|
|
9
|
+
|
|
10
|
+
- In `onlyWithErrorConfig` mode, hold automatic Product Analytics screenshots until the session has an error. Previously the screenshot payload was uploaded straight away while the event describing it was withheld, so sessions that never errored paid for screenshots that could not be queried
|
|
11
|
+
|
|
12
|
+
## 3.23.8 (2026-09-17)
|
|
13
|
+
|
|
14
|
+
### 🩹 Fixes
|
|
15
|
+
|
|
16
|
+
- Report a clicked button's own text as its interaction name (`resolved_name`) when the button sits inside a container that has an `aria-label`, such as a `role="dialog"` panel. The container's label was reported instead
|
|
17
|
+
- Name a click on an SVG chart shape by the shape's own `<text>` label instead of by the text of the whole page section around the chart
|
|
18
|
+
- Stop naming an icon-only control after the labels of the other buttons in its toolbar; such controls now take their `title` or `alt` attribute, and report no name when they have neither
|
|
19
|
+
- Name a `<select>` by its first option instead of by all its options joined together, and name `<input type="submit">`, `"button"` and `"reset"` by their `value`
|
|
20
|
+
- Exclude text under a masked element (`maskClass`) from `resolved_name` instead of leaking it when the clicked control contains masked content
|
|
21
|
+
- Cap `resolved_name` and `element_inner_text` at 100 characters, ending with ` [...]` when cut, so a container's content can no longer produce a very long interaction name
|
|
22
|
+
- Run only the first SDK copy loaded on a page: a second copy (another bundle importing the SDK, or a CDN script next to an npm install) no longer replaces `window.CoralogixRum`, and its `init` is ignored with a debug message
|
|
23
|
+
|
|
24
|
+
## 3.23.7 (2026-09-14)
|
|
25
|
+
|
|
26
|
+
### 🩹 Fixes
|
|
27
|
+
|
|
28
|
+
- Mask a page URL segment as `{id}` only when the whole segment is digits, so route names such as `/apm-v2` and `/oauth2` keep their real value
|
|
29
|
+
- Run your own `pageUrlBlueprinters` after the built-in ID masking, so the SDK defaults no longer overwrite them
|
|
30
|
+
- Keep the fragment when masking a numeric segment: `/user/123#details` now reports as `/user/{id}#details`
|
|
31
|
+
|
|
32
|
+
## 3.23.6 (2026-09-09)
|
|
33
|
+
|
|
34
|
+
### 🩹 Fixes
|
|
35
|
+
|
|
36
|
+
- Prevent the browser tab from freezing on Safari and on every browser on iOS/iPadOS when an error is reported while the page is navigating away — a redirect on first visit, a link, or a form submit. The tab could hang at 100% CPU and grow in memory until the browser killed it, and the page being navigated to never loaded. Applications that load zone.js, such as Angular, were affected
|
|
37
|
+
- Prevent a `pageUrlBlueprinters` callback that throws from freezing the tab in any browser. Such a callback is now contained and reported once instead of looping; it still surfaces to your own error handling as before
|
|
38
|
+
- Stop the SDK's own error reporting from surfacing in your application as unhandled promise rejections
|
|
39
|
+
|
|
1
40
|
## 3.23.5 (2026-09-02)
|
|
2
41
|
|
|
3
42
|
### 🩹 Fixes
|
package/README.md
CHANGED
|
@@ -352,6 +352,18 @@ CoralogixRum.init({
|
|
|
352
352
|
recordConsoleEvents: true, // Will record all console events from dev tools. Levels: log, debug, warn, error, info, table etc..
|
|
353
353
|
sessionRecordingSampleRate: 100, // Percentage of overall sessions recording being tracked, defaults to 100% and applied after the overall sessionSampleRate.
|
|
354
354
|
immediateFlush: false, // Flush recording events immediately on start to capture short-duration sessions (<10s). Defaults to false.
|
|
355
|
+
/**
|
|
356
|
+
* Take an extra screenshot when the page changes in a way that looks like a meaningful
|
|
357
|
+
* application state, such as a dialog opening or a view being replaced. These are in addition
|
|
358
|
+
* to the screenshots taken on the first click and one random later click of each view.
|
|
359
|
+
*
|
|
360
|
+
* On by default whenever session recording is running. Detection reads the session recorder's
|
|
361
|
+
* event stream, so with autoStartSessionRecording: false it stays dormant until you call
|
|
362
|
+
* CoralogixRum.startSessionRecording(). Set it to false to turn it off.
|
|
363
|
+
*
|
|
364
|
+
* Available from version 3.24.0.
|
|
365
|
+
**/
|
|
366
|
+
captureScreenshotOnDomChange: true, // Defaults to true.
|
|
355
367
|
},
|
|
356
368
|
});
|
|
357
369
|
```
|
|
@@ -702,6 +714,13 @@ CoralogixRum.init({
|
|
|
702
714
|
});
|
|
703
715
|
```
|
|
704
716
|
|
|
717
|
+
The SDK applies its own built-in blueprinting first, then your functions, in the order you list
|
|
718
|
+
them, so your blueprinter has the final word on the URL it returns.
|
|
719
|
+
|
|
720
|
+
The built-in page blueprinting replaces UUIDs and all-digit path segments with `{id}`, so
|
|
721
|
+
`/orders/1234` becomes `/orders/{id}`. A segment that only happens to contain a digit keeps its
|
|
722
|
+
real value, which leaves route names such as `/apm-v2`, `/oauth2` and `/v1` untouched.
|
|
723
|
+
|
|
705
724
|
### Traces
|
|
706
725
|
|
|
707
726
|
Add trace context propagation in headers across service boundaries
|
|
@@ -960,7 +979,7 @@ CoralogixRum.init({
|
|
|
960
979
|
> The `priority` hint only works in Chromium browsers (Chrome/Edge 101+) and is a no-op elsewhere. We type this option with our own `SdkFetchPriority` alias instead of the DOM `RequestPriority` type, so it still compiles on older TypeScript versions (the SDK supports `>= 4.4.2`).
|
|
961
980
|
|
|
962
981
|
<!-- /split -->
|
|
963
|
-
<!-- split title="
|
|
982
|
+
<!-- split title="Timing and measurements" path="features/timing-and-measurements.md" -->
|
|
964
983
|
### Custom Measurement
|
|
965
984
|
|
|
966
985
|
Custom measurement allows you to send numeric data to Coralogix for precise monitoring and analysis.
|
|
@@ -1017,6 +1036,8 @@ A few behaviours worth knowing:
|
|
|
1017
1036
|
- Ending a measurement releases its key, so the same key can be measured again afterwards.
|
|
1018
1037
|
- Open measurements are dropped the next time you start or end one while the session is idle. The check runs on those calls rather than on a timer, and activity clears the idle flag, so a measurement spanning a short idle gap may still report.
|
|
1019
1038
|
|
|
1039
|
+
<!-- /split -->
|
|
1040
|
+
<!-- split title="Microfrontend support" path="configuration/microfrontend.md" -->
|
|
1020
1041
|
### Microfrontend support
|
|
1021
1042
|
|
|
1022
1043
|
This feature allows you to track multiple applications on the same page.<br>
|
|
@@ -1035,6 +1056,8 @@ CoralogixRum.init({
|
|
|
1035
1056
|
});
|
|
1036
1057
|
```
|
|
1037
1058
|
|
|
1059
|
+
<!-- /split -->
|
|
1060
|
+
<!-- split title="Custom spans" path="features/custom-spans.md" -->
|
|
1038
1061
|
### Custom Spans
|
|
1039
1062
|
|
|
1040
1063
|
Create your own custom spans to track specific operations in your application.<br>
|
|
@@ -1095,6 +1118,8 @@ A few more things worth knowing:
|
|
|
1095
1118
|
- Open global spans are ended for you when the session resets, which happens after an
|
|
1096
1119
|
hour of session time or 15 minutes of inactivity.
|
|
1097
1120
|
|
|
1121
|
+
<!-- /split -->
|
|
1122
|
+
<!-- split title="Traces exporter" path="configuration/traces-exporter.md" -->
|
|
1098
1123
|
### Traces Exporter
|
|
1099
1124
|
|
|
1100
1125
|
The `tracesExporter` callback gives you full control over how collected trace events are handled.
|
|
@@ -1135,6 +1160,8 @@ CoralogixRum.init({
|
|
|
1135
1160
|
});
|
|
1136
1161
|
```
|
|
1137
1162
|
|
|
1163
|
+
<!-- /split -->
|
|
1164
|
+
<!-- split title="OpenTelemetry batching" path="configuration/opentelemetry-batching.md" -->
|
|
1138
1165
|
### OpenTelemetry Batch Configuration
|
|
1139
1166
|
|
|
1140
1167
|
The SDK batches logs and traces through an OpenTelemetry `BatchSpanProcessor` before sending them to Coralogix. Use `otelConfig` to tune that batching — for example, to flush less frequently and reduce the number of network requests your app makes.
|
|
@@ -1152,6 +1179,8 @@ CoralogixRum.init({
|
|
|
1152
1179
|
});
|
|
1153
1180
|
```
|
|
1154
1181
|
|
|
1182
|
+
<!-- /split -->
|
|
1183
|
+
<!-- split title="Soft navigations" path="configuration/soft-navigations.md" -->
|
|
1155
1184
|
### Soft Navigations — Experimental
|
|
1156
1185
|
|
|
1157
1186
|
Soft navigations are navigations that do not trigger a full page reload, such as SPA navigations. Defaults to false.
|
|
@@ -1169,6 +1198,8 @@ CoralogixRum.init({
|
|
|
1169
1198
|
});
|
|
1170
1199
|
```
|
|
1171
1200
|
|
|
1201
|
+
<!-- /split -->
|
|
1202
|
+
<!-- split title="Memory usage" path="features/memory-usage.md" -->
|
|
1172
1203
|
### Memory Usage - Experimental
|
|
1173
1204
|
|
|
1174
1205
|
Memory usage is a feature that allows you to track the memory usage of your application. It uses the [measureUserAgentSpecificMemory](https://developer.mozilla.org/en-US/docs/Web/API/Performance/measureUserAgentSpecificMemory) API.<br>
|
package/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { x as CoralogixEventType, v as CoralogixLogSeverity, u as CoralogixRum, O as OtelNetworkAttrs, y as PerformanceTypes, w as SessionRecordingEventType, U as UrlBasedLabelProvider, z as UrlType } from './index.esm2.js';
|
|
2
2
|
import 'tslib';
|
|
3
3
|
import '@opentelemetry/sdk-trace-base';
|
|
4
4
|
import '@opentelemetry/sdk-trace-web';
|