@kubesense/kubesense-browser-rum-core 1.3.0 → 1.5.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.
Files changed (47) hide show
  1. package/README.md +8 -1
  2. package/cjs/boot/preStartRum.js +18 -0
  3. package/cjs/boot/preStartRum.js.map +1 -1
  4. package/cjs/domain/configuration/configuration.d.ts +31 -0
  5. package/cjs/domain/configuration/configuration.js +2 -0
  6. package/cjs/domain/configuration/configuration.js.map +1 -1
  7. package/cjs/domain/configuration/index.d.ts +2 -0
  8. package/cjs/domain/configuration/index.js +2 -0
  9. package/cjs/domain/configuration/index.js.map +1 -1
  10. package/cjs/domain/configuration/remoteSdkConfiguration.d.ts +18 -0
  11. package/cjs/domain/configuration/remoteSdkConfiguration.js +142 -0
  12. package/cjs/domain/configuration/remoteSdkConfiguration.js.map +1 -0
  13. package/cjs/domain/configuration/sessionReplayRoutes.d.ts +35 -0
  14. package/cjs/domain/configuration/sessionReplayRoutes.js +70 -0
  15. package/cjs/domain/configuration/sessionReplayRoutes.js.map +1 -0
  16. package/cjs/domain/contexts/defaultContext.js +1 -1
  17. package/cjs/index.d.ts +2 -1
  18. package/cjs/index.js +4 -1
  19. package/cjs/index.js.map +1 -1
  20. package/cjs/rumEvent.types.d.ts +4 -0
  21. package/esm/boot/preStartRum.js +19 -1
  22. package/esm/boot/preStartRum.js.map +1 -1
  23. package/esm/domain/configuration/configuration.d.ts +31 -0
  24. package/esm/domain/configuration/configuration.js +2 -0
  25. package/esm/domain/configuration/configuration.js.map +1 -1
  26. package/esm/domain/configuration/index.d.ts +2 -0
  27. package/esm/domain/configuration/index.js +2 -0
  28. package/esm/domain/configuration/index.js.map +1 -1
  29. package/esm/domain/configuration/remoteSdkConfiguration.d.ts +18 -0
  30. package/esm/domain/configuration/remoteSdkConfiguration.js +137 -0
  31. package/esm/domain/configuration/remoteSdkConfiguration.js.map +1 -0
  32. package/esm/domain/configuration/sessionReplayRoutes.d.ts +35 -0
  33. package/esm/domain/configuration/sessionReplayRoutes.js +65 -0
  34. package/esm/domain/configuration/sessionReplayRoutes.js.map +1 -0
  35. package/esm/domain/contexts/defaultContext.js +1 -1
  36. package/esm/index.d.ts +2 -1
  37. package/esm/index.js +1 -0
  38. package/esm/index.js.map +1 -1
  39. package/esm/rumEvent.types.d.ts +4 -0
  40. package/package.json +13 -3
  41. package/src/boot/preStartRum.ts +23 -0
  42. package/src/domain/configuration/configuration.ts +35 -0
  43. package/src/domain/configuration/index.ts +2 -0
  44. package/src/domain/configuration/remoteSdkConfiguration.ts +190 -0
  45. package/src/domain/configuration/sessionReplayRoutes.ts +96 -0
  46. package/src/index.ts +2 -0
  47. package/src/rumEvent.types.ts +4 -0
package/README.md CHANGED
@@ -2,16 +2,23 @@
2
2
 
3
3
  Shared RUM event-collection logic: the LifeCycle event bus, the assembly
4
4
  pipeline, hooks, and the view / action / resource / error / long-task / vital
5
- collectors.
5
+ collectors. It also owns the RUM half of configuration handling — validation of
6
+ init options, the mapping of a dashboard-managed configuration document onto them
7
+ (`enableRemoteSdkConfiguration`), and the route rules that scope Session Replay
8
+ (`sessionReplayRoutes`).
6
9
 
7
10
  > **Internal package.** `rum-core` has no bundled entry point of its own — it is
8
11
  > consumed by [`@kubesense/kubesense-browser-rum`][rum] and
9
12
  > [`@kubesense/kubesense-browser-rum-slim`][rum-slim]. You normally do **not**
10
13
  > install it directly; install one of those product SDKs instead.
11
14
 
15
+ Everything exposed through those SDKs is documented in the
16
+ [Browser RUM Integration Guide][guide].
17
+
12
18
  ## License
13
19
 
14
20
  [Apache-2.0](https://github.com/kubesense-ai/kubesense-browser-sdk/blob/main/LICENSE)
15
21
 
16
22
  [rum]: https://www.npmjs.com/package/@kubesense/kubesense-browser-rum
17
23
  [rum-slim]: https://www.npmjs.com/package/@kubesense/kubesense-browser-rum-slim
24
+ [guide]: https://github.com/kubesense-ai/kubesense-browser-sdk/blob/main/docs/browser-rum-integration.md
@@ -47,6 +47,20 @@ function createPreStartStrategy({ ignoreInitIfSyntheticsWillInjectRum = true, st
47
47
  if (eventBridgeAvailable) {
48
48
  initConfiguration = overrideInitConfigurationForBridge(initConfiguration);
49
49
  }
50
+ const remoteSdkConfigurationEnabled = !!initConfiguration.enableRemoteSdkConfiguration;
51
+ if (remoteSdkConfigurationEnabled) {
52
+ // Reading the cached document is synchronous and network-free, so it does not delay
53
+ // initialization. The document fetched below only applies from the next page load.
54
+ const cachedSdkConfiguration = (0, configuration_1.applyCachedSdkConfiguration)(initConfiguration);
55
+ initConfiguration = cachedSdkConfiguration.initConfiguration;
56
+ if (!cachedSdkConfiguration.rumEnabled) {
57
+ // RUM is switched off from the dashboard. Still refresh the document, otherwise the
58
+ // switch would be one-way: the SDK could never learn that it has been turned back on.
59
+ cachedInitConfiguration = initConfiguration;
60
+ (0, configuration_1.scheduleSdkConfigurationRefresh)(initConfiguration).catch(kubesense_browser_core_1.monitorError);
61
+ return;
62
+ }
63
+ }
50
64
  // Update the exposed initConfiguration to reflect the bridge and remote configuration overrides
51
65
  cachedInitConfiguration = initConfiguration;
52
66
  (0, kubesense_browser_core_1.addTelemetryConfiguration)((0, configuration_1.serializeRumConfiguration)(initConfiguration));
@@ -81,6 +95,10 @@ function createPreStartStrategy({ ignoreInitIfSyntheticsWillInjectRum = true, st
81
95
  (0, kubesense_browser_core_1.initFetchObservable)().subscribe(kubesense_browser_core_1.noop);
82
96
  trackingConsentState.tryToInit(configuration.trackingConsent);
83
97
  tryStartRum();
98
+ if (remoteSdkConfigurationEnabled) {
99
+ // Fire-and-forget, after the SDK is running: refreshes the cache for the next page load.
100
+ (0, configuration_1.scheduleSdkConfigurationRefresh)(initConfiguration).catch(kubesense_browser_core_1.monitorError);
101
+ }
84
102
  }
85
103
  const addDurationVital = (vital) => {
86
104
  bufferApiCalls.add((startRumResult) => startRumResult.addDurationVital(vital));
@@ -1 +1 @@
1
- {"version":3,"file":"preStartRum.js","sourceRoot":"","sources":["../../src/boot/preStartRum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preStartRum.js","sourceRoot":"","sources":["../../src/boot/preStartRum.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { RumEventDomainContext } from '../../domainContext.types';
4
4
  import type { RumEvent } from '../../rumEvent.types';
5
5
  import type { RumPlugin } from '../plugins';
6
6
  import type { PropagatorType, TracingOption } from '../tracing/tracer.types';
7
+ import type { SessionReplayRoutes } from './sessionReplayRoutes';
7
8
  export declare const DEFAULT_PROPAGATOR_TYPES: PropagatorType[];
8
9
  /**
9
10
  * Init Configuration for the RUM browser SDK.
@@ -88,6 +89,17 @@ export interface RumInitConfiguration extends InitConfiguration {
88
89
  * @internal
89
90
  */
90
91
  remoteConfigurationProxy?: string | undefined;
92
+ /**
93
+ * Enable dashboard-managed SDK settings served by the Kubesense collector.
94
+ *
95
+ * The configuration document is fetched asynchronously after the SDK starts and cached in
96
+ * local storage, so it never delays initialization. Cached settings are applied on the next
97
+ * page load. Local `init()` values are used until a document has been fetched, and any
98
+ * setting absent from the document keeps its local value.
99
+ *
100
+ * @defaultValue false
101
+ */
102
+ enableRemoteSdkConfiguration?: boolean | undefined;
91
103
  /**
92
104
  * A list of request URLs used to inject tracing headers.
93
105
  * See [Connect RUM and Traces](https://docs.kubesense.ai/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.
@@ -143,6 +155,24 @@ export interface RumInitConfiguration extends InitConfiguration {
143
155
  * @category Session Replay
144
156
  */
145
157
  startSessionReplayRecordingManually?: boolean | undefined;
158
+ /**
159
+ * Restrict Session Replay recording to specific routes.
160
+ *
161
+ * Recording starts and stops as the user navigates: it runs only while the current route
162
+ * matches `include` (when provided) and does not match `exclude`. Rules are matched against
163
+ * the path (`pathname` + `search` + `hash`), and string entries match by prefix, so
164
+ * `/checkout` also covers `/checkout/payment`.
165
+ *
166
+ * These rules only narrow recording — a session that was not sampled in by
167
+ * `sessionReplaySampleRate` is never recorded, whatever the routes say.
168
+ *
169
+ * @category Session Replay
170
+ * @example
171
+ * ```ts
172
+ * sessionReplayRoutes: { include: ['/checkout', '/signup'], exclude: ['/checkout/card'] }
173
+ * ```
174
+ */
175
+ sessionReplayRoutes?: SessionReplayRoutes | undefined;
146
176
  /**
147
177
  * Enables privacy control for action names.
148
178
  *
@@ -255,6 +285,7 @@ export interface RumConfiguration extends Configuration {
255
285
  enablePrivacyForActionName: boolean;
256
286
  sessionReplaySampleRate: number;
257
287
  startSessionReplayRecordingManually: boolean;
288
+ sessionReplayRoutes: SessionReplayRoutes | undefined;
258
289
  trackUserInteractions: boolean;
259
290
  trackViewsManually: boolean;
260
291
  trackResources: boolean;
@@ -5,6 +5,7 @@ exports.validateAndBuildRumConfiguration = validateAndBuildRumConfiguration;
5
5
  exports.serializeRumConfiguration = serializeRumConfiguration;
6
6
  const kubesense_browser_core_1 = require("@kubesense/kubesense-browser-core");
7
7
  const tracer_1 = require("../tracing/tracer");
8
+ const sessionReplayRoutes_1 = require("./sessionReplayRoutes");
8
9
  exports.DEFAULT_PROPAGATOR_TYPES = ['tracecontext', 'kubesense'];
9
10
  function validateAndBuildRumConfiguration(initConfiguration, errorStack) {
10
11
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -41,6 +42,7 @@ function validateAndBuildRumConfiguration(initConfiguration, errorStack) {
41
42
  startSessionReplayRecordingManually: initConfiguration.startSessionReplayRecordingManually !== undefined
42
43
  ? !!initConfiguration.startSessionReplayRecordingManually
43
44
  : sessionReplaySampleRate === 0,
45
+ sessionReplayRoutes: (0, sessionReplayRoutes_1.validateSessionReplayRoutes)(initConfiguration.sessionReplayRoutes),
44
46
  traceSampleRate: (_b = initConfiguration.traceSampleRate) !== null && _b !== void 0 ? _b : 100,
45
47
  rulePsr: (0, kubesense_browser_core_1.isNumber)(initConfiguration.traceSampleRate) ? initConfiguration.traceSampleRate / 100 : undefined,
46
48
  allowedTracingUrls,
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/domain/configuration/configuration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/domain/configuration/configuration.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
1
  export * from './configuration';
2
2
  export * from './remoteConfiguration';
3
+ export * from './remoteSdkConfiguration';
4
+ export * from './sessionReplayRoutes';
@@ -16,4 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./configuration"), exports);
18
18
  __exportStar(require("./remoteConfiguration"), exports);
19
+ __exportStar(require("./remoteSdkConfiguration"), exports);
20
+ __exportStar(require("./sessionReplayRoutes"), exports);
19
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/configuration/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,wDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/configuration/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,wDAAqC;AACrC,2DAAwC;AACxC,wDAAqC"}
@@ -0,0 +1,18 @@
1
+ import type { RemoteSdkConfig } from '@kubesense/kubesense-browser-core';
2
+ import type { RumInitConfiguration } from './configuration';
3
+ export interface RemoteSdkConfigurationResult {
4
+ initConfiguration: RumInitConfiguration;
5
+ /** `false` when the dashboard has switched RUM off entirely. */
6
+ rumEnabled: boolean;
7
+ }
8
+ /**
9
+ * Read the cached document and merge it into the init configuration. Synchronous and
10
+ * network-free: this runs on the initialization path.
11
+ */
12
+ export declare function applyCachedSdkConfiguration(initConfiguration: RumInitConfiguration): RemoteSdkConfigurationResult;
13
+ export declare function applySdkConfiguration(initConfiguration: RumInitConfiguration, remoteConfig: RemoteSdkConfig): RemoteSdkConfigurationResult;
14
+ /**
15
+ * Refresh the cache for the next page load. Must be called *after* the SDK has started so it
16
+ * never delays initialization.
17
+ */
18
+ export declare function scheduleSdkConfigurationRefresh(initConfiguration: RumInitConfiguration): Promise<void>;
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyCachedSdkConfiguration = applyCachedSdkConfiguration;
4
+ exports.applySdkConfiguration = applySdkConfiguration;
5
+ exports.scheduleSdkConfigurationRefresh = scheduleSdkConfigurationRefresh;
6
+ const kubesense_browser_core_1 = require("@kubesense/kubesense-browser-core");
7
+ /**
8
+ * Applies the dashboard-managed configuration document to the user's init configuration.
9
+ *
10
+ * Only scalar settings travel: anything that is a function or a matcher (`beforeSend`,
11
+ * `allowedTracingUrls`, `excludedActivityUrls`, plugins) stays in application code. Identity and
12
+ * endpoint settings (`clientToken`, `applicationId`, `kubesenseRumEndpoint`, `proxy`) are also
13
+ * excluded — they determine where the configuration request itself goes, and letting them be
14
+ * remotely rewritten would be a redirection risk.
15
+ *
16
+ * Every field is applied only when present and valid, so the user's own init configuration —
17
+ * and failing that, the SDK default — always wins over a missing or malformed remote value.
18
+ */
19
+ const PRIVACY_LEVELS = [
20
+ kubesense_browser_core_1.DefaultPrivacyLevel.ALLOW,
21
+ kubesense_browser_core_1.DefaultPrivacyLevel.MASK,
22
+ kubesense_browser_core_1.DefaultPrivacyLevel.MASK_USER_INPUT,
23
+ ];
24
+ const TRACE_CONTEXT_INJECTIONS = [kubesense_browser_core_1.TraceContextInjection.ALL, kubesense_browser_core_1.TraceContextInjection.SAMPLED];
25
+ /**
26
+ * Read the cached document and merge it into the init configuration. Synchronous and
27
+ * network-free: this runs on the initialization path.
28
+ */
29
+ function applyCachedSdkConfiguration(initConfiguration) {
30
+ const remoteConfig = (0, kubesense_browser_core_1.getCachedSdkConfig)();
31
+ if (!remoteConfig) {
32
+ return { initConfiguration, rumEnabled: true };
33
+ }
34
+ return applySdkConfiguration(initConfiguration, remoteConfig);
35
+ }
36
+ function applySdkConfiguration(initConfiguration, remoteConfig) {
37
+ const features = remoteConfig.features;
38
+ if ((0, kubesense_browser_core_1.readBoolean)(features, 'rum') === false) {
39
+ return { initConfiguration, rumEnabled: false };
40
+ }
41
+ const applied = { ...initConfiguration };
42
+ applyRumSection(applied, remoteConfig.rum);
43
+ applySessionReplaySection(applied, remoteConfig.sessionReplay);
44
+ applyProfilingSection(applied, remoteConfig.profiling);
45
+ applyFeatureSwitches(applied, features);
46
+ return { initConfiguration: applied, rumEnabled: true };
47
+ }
48
+ function applyRumSection(applied, rum) {
49
+ if (!rum) {
50
+ return;
51
+ }
52
+ assign(applied, 'sessionSampleRate', (0, kubesense_browser_core_1.readSampleRate)(rum, 'sessionSampleRate'));
53
+ assign(applied, 'telemetrySampleRate', (0, kubesense_browser_core_1.readSampleRate)(rum, 'telemetrySampleRate'));
54
+ assign(applied, 'traceSampleRate', (0, kubesense_browser_core_1.readSampleRate)(rum, 'traceSampleRate'));
55
+ assign(applied, 'trackUserInteractions', (0, kubesense_browser_core_1.readBoolean)(rum, 'trackUserInteractions'));
56
+ assign(applied, 'trackResources', (0, kubesense_browser_core_1.readBoolean)(rum, 'trackResources'));
57
+ assign(applied, 'trackLongTasks', (0, kubesense_browser_core_1.readBoolean)(rum, 'trackLongTasks'));
58
+ assign(applied, 'trackViewsManually', (0, kubesense_browser_core_1.readBoolean)(rum, 'trackViewsManually'));
59
+ assign(applied, 'trackBfcacheViews', (0, kubesense_browser_core_1.readBoolean)(rum, 'trackBfcacheViews'));
60
+ assign(applied, 'trackAnonymousUser', (0, kubesense_browser_core_1.readBoolean)(rum, 'trackAnonymousUser'));
61
+ assign(applied, 'trackSessionAcrossSubdomains', (0, kubesense_browser_core_1.readBoolean)(rum, 'trackSessionAcrossSubdomains'));
62
+ assign(applied, 'enablePrivacyForActionName', (0, kubesense_browser_core_1.readBoolean)(rum, 'enablePrivacyForActionName'));
63
+ assign(applied, 'propagateTraceBaggage', (0, kubesense_browser_core_1.readBoolean)(rum, 'propagateTraceBaggage'));
64
+ assign(applied, 'defaultPrivacyLevel', (0, kubesense_browser_core_1.readEnum)(rum, 'defaultPrivacyLevel', PRIVACY_LEVELS));
65
+ assign(applied, 'traceContextInjection', (0, kubesense_browser_core_1.readEnum)(rum, 'traceContextInjection', TRACE_CONTEXT_INJECTIONS));
66
+ assign(applied, 'actionNameAttribute', (0, kubesense_browser_core_1.readString)(rum, 'actionNameAttribute'));
67
+ assign(applied, 'service', (0, kubesense_browser_core_1.readString)(rum, 'service'));
68
+ assign(applied, 'env', (0, kubesense_browser_core_1.readString)(rum, 'env'));
69
+ assign(applied, 'version', (0, kubesense_browser_core_1.readString)(rum, 'version'));
70
+ }
71
+ function applySessionReplaySection(applied, sessionReplay) {
72
+ if (!sessionReplay) {
73
+ return;
74
+ }
75
+ assign(applied, 'sessionReplaySampleRate', (0, kubesense_browser_core_1.readSampleRate)(sessionReplay, 'sampleRate'));
76
+ assign(applied, 'startSessionReplayRecordingManually', (0, kubesense_browser_core_1.readBoolean)(sessionReplay, 'startRecordingManually'));
77
+ assign(applied, 'defaultPrivacyLevel', (0, kubesense_browser_core_1.readEnum)(sessionReplay, 'defaultPrivacyLevel', PRIVACY_LEVELS));
78
+ assign(applied, 'sessionReplayRoutes', readRoutes(sessionReplay.routes));
79
+ }
80
+ /**
81
+ * Route rules arriving as JSON can only be plain strings (prefix matches). Regexes and functions
82
+ * are deliberately not accepted from the dashboard: they cannot be expressed safely in JSON and a
83
+ * pathological pattern would run on every view change.
84
+ */
85
+ function readRoutes(routes) {
86
+ if (!routes || typeof routes !== 'object' || Array.isArray(routes)) {
87
+ return undefined;
88
+ }
89
+ const include = readStringList(routes.include);
90
+ const exclude = readStringList(routes.exclude);
91
+ if (!include && !exclude) {
92
+ return undefined;
93
+ }
94
+ return { include, exclude };
95
+ }
96
+ function readStringList(value) {
97
+ if (!Array.isArray(value)) {
98
+ return undefined;
99
+ }
100
+ const strings = value.filter((item) => typeof item === 'string' && item.length > 0);
101
+ return strings.length > 0 ? strings : undefined;
102
+ }
103
+ function applyProfilingSection(applied, profiling) {
104
+ if (!profiling) {
105
+ return;
106
+ }
107
+ assign(applied, 'profilingSampleRate', (0, kubesense_browser_core_1.readSampleRate)(profiling, 'sampleRate'));
108
+ }
109
+ /**
110
+ * Feature switches are applied last so they always win over the per-section sample rates above.
111
+ * Turning a feature off is expressed through the setting that stops all of its collection.
112
+ */
113
+ function applyFeatureSwitches(applied, features) {
114
+ const source = features;
115
+ if ((0, kubesense_browser_core_1.readBoolean)(source, 'sessionReplay') === false) {
116
+ applied.sessionReplaySampleRate = 0;
117
+ applied.startSessionReplayRecordingManually = true;
118
+ // Drop any route rules too: with replay off they are dead weight, and leaving them behind
119
+ // would suggest recording still happens somewhere.
120
+ applied.sessionReplayRoutes = undefined;
121
+ }
122
+ if ((0, kubesense_browser_core_1.readBoolean)(source, 'profiling') === false) {
123
+ applied.profilingSampleRate = 0;
124
+ }
125
+ }
126
+ /**
127
+ * Assigning only defined values keeps the "absent means keep the local value" guarantee in one
128
+ * place instead of at every call site.
129
+ */
130
+ function assign(target, key, value) {
131
+ if (value !== undefined) {
132
+ target[key] = value;
133
+ }
134
+ }
135
+ /**
136
+ * Refresh the cache for the next page load. Must be called *after* the SDK has started so it
137
+ * never delays initialization.
138
+ */
139
+ function scheduleSdkConfigurationRefresh(initConfiguration) {
140
+ return (0, kubesense_browser_core_1.refreshSdkConfig)(initConfiguration, initConfiguration.applicationId);
141
+ }
142
+ //# sourceMappingURL=remoteSdkConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remoteSdkConfiguration.js","sourceRoot":"","sources":["../../../src/domain/configuration/remoteSdkConfiguration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { MatchOption } from '@kubesense/kubesense-browser-core';
2
+ /**
3
+ * Route-scoped Session Replay.
4
+ *
5
+ * Recording is normally decided once per session by `sessionReplaySampleRate`. These rules add a
6
+ * second, per-view gate so a session that *is* eligible only gets recorded while the user is on
7
+ * a matching route.
8
+ *
9
+ * Rules can only ever narrow recording, never widen it: a session that lost the replay sampling
10
+ * draw is never recorded, whatever the routes say.
11
+ */
12
+ export interface SessionReplayRoutes {
13
+ /** Record only on these routes. When omitted, every route is eligible. */
14
+ include?: MatchOption[] | undefined;
15
+ /** Never record on these routes. Takes precedence over `include`. */
16
+ exclude?: MatchOption[] | undefined;
17
+ }
18
+ /**
19
+ * Rules are matched against the **path** — `pathname` + `search` + `hash` — not the full URL, so
20
+ * a dashboard entry reads the way a route is written (`/checkout`). String options match by
21
+ * prefix, so `/checkout` also covers `/checkout/payment`.
22
+ */
23
+ export declare function getRoutePath(location?: Location | URL): string;
24
+ /**
25
+ * Returns whether recording is allowed on the given path.
26
+ *
27
+ * No rules at all means "record everywhere", which keeps the behaviour of an SDK that has never
28
+ * been configured with routes.
29
+ */
30
+ export declare function isRouteRecordable(routes: SessionReplayRoutes | undefined, path: string): boolean;
31
+ /**
32
+ * Validates the user-provided option. An invalid entry is dropped rather than silently treated
33
+ * as "match nothing", which would turn a typo into a total loss of replay.
34
+ */
35
+ export declare function validateSessionReplayRoutes(routes: unknown): SessionReplayRoutes | undefined;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRoutePath = getRoutePath;
4
+ exports.isRouteRecordable = isRouteRecordable;
5
+ exports.validateSessionReplayRoutes = validateSessionReplayRoutes;
6
+ const kubesense_browser_core_1 = require("@kubesense/kubesense-browser-core");
7
+ /**
8
+ * Rules are matched against the **path** — `pathname` + `search` + `hash` — not the full URL, so
9
+ * a dashboard entry reads the way a route is written (`/checkout`). String options match by
10
+ * prefix, so `/checkout` also covers `/checkout/payment`.
11
+ */
12
+ function getRoutePath(location = window.location) {
13
+ return `${location.pathname}${location.search}${location.hash}`;
14
+ }
15
+ /**
16
+ * Returns whether recording is allowed on the given path.
17
+ *
18
+ * No rules at all means "record everywhere", which keeps the behaviour of an SDK that has never
19
+ * been configured with routes.
20
+ */
21
+ function isRouteRecordable(routes, path) {
22
+ if (!routes) {
23
+ return true;
24
+ }
25
+ // Exclusions win, so a route can always be carved out of a broad `include`.
26
+ if (routes.exclude && routes.exclude.length > 0 && (0, kubesense_browser_core_1.matchList)(routes.exclude, path, true)) {
27
+ return false;
28
+ }
29
+ if (routes.include && routes.include.length > 0) {
30
+ return (0, kubesense_browser_core_1.matchList)(routes.include, path, true);
31
+ }
32
+ return true;
33
+ }
34
+ /**
35
+ * Validates the user-provided option. An invalid entry is dropped rather than silently treated
36
+ * as "match nothing", which would turn a typo into a total loss of replay.
37
+ */
38
+ function validateSessionReplayRoutes(routes) {
39
+ if (routes === undefined || routes === null) {
40
+ return undefined;
41
+ }
42
+ if (typeof routes !== 'object' || Array.isArray(routes)) {
43
+ kubesense_browser_core_1.display.error('Session Replay routes should be an object with optional include and exclude arrays');
44
+ return undefined;
45
+ }
46
+ const include = validateMatchOptionList(routes.include, 'include');
47
+ const exclude = validateMatchOptionList(routes.exclude, 'exclude');
48
+ if (!include && !exclude) {
49
+ return undefined;
50
+ }
51
+ return { include, exclude };
52
+ }
53
+ function validateMatchOptionList(list, name) {
54
+ if (list === undefined) {
55
+ return undefined;
56
+ }
57
+ if (!Array.isArray(list)) {
58
+ kubesense_browser_core_1.display.error(`Session Replay routes "${name}" should be an array`);
59
+ return undefined;
60
+ }
61
+ const validOptions = list.filter((item) => {
62
+ if ((0, kubesense_browser_core_1.isMatchOption)(item)) {
63
+ return true;
64
+ }
65
+ kubesense_browser_core_1.display.error(`Session Replay routes "${name}" entries should be a string, RegExp or function`);
66
+ return false;
67
+ });
68
+ return validOptions.length > 0 ? validOptions : undefined;
69
+ }
70
+ //# sourceMappingURL=sessionReplayRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionReplayRoutes.js","sourceRoot":"","sources":["../../../src/domain/configuration/sessionReplayRoutes.ts"],"names":[],"mappings":";;AAyBA,oCAEC;AAQD,8CAeC;AAMD,kEAkBC;AAzED,8EAAqF;AAmBrF;;;;GAIG;AACH,SAAgB,YAAY,CAAC,WAA2B,MAAM,CAAC,QAAQ;IACrE,OAAO,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;AACjE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,MAAuC,EAAE,IAAY;IACrF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IAED,4EAA4E;IAC5E,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,kCAAS,EAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACzF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,IAAA,kCAAS,EAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,SAAgB,2BAA2B,CAAC,MAAe;IACzD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,gCAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAA;QACnG,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,uBAAuB,CAAE,MAA8B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAC3F,MAAM,OAAO,GAAG,uBAAuB,CAAE,MAA8B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAE3F,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AAC7B,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAa,EAAE,IAAY;IAC1D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,gCAAO,CAAC,KAAK,CAAC,0BAA0B,IAAI,sBAAsB,CAAC,CAAA;QACnE,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACxC,IAAI,IAAA,sCAAa,EAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,gCAAO,CAAC,KAAK,CAAC,0BAA0B,IAAI,kDAAkD,CAAC,CAAA;QAC/F,OAAO,KAAK,CAAA;IACd,CAAC,CAAkB,CAAA;IAEnB,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;AAC3D,CAAC"}
@@ -17,7 +17,7 @@ function startDefaultContext(hooks, configuration, sdkName) {
17
17
  trace_sample_rate: (0, kubesense_browser_core_1.round)(configuration.traceSampleRate, 3),
18
18
  beta_encode_cookie_options: configuration.betaEncodeCookieOptions,
19
19
  },
20
- browser_sdk_version: (0, kubesense_browser_core_1.canUseEventBridge)() ? "1.3.0" : undefined,
20
+ browser_sdk_version: (0, kubesense_browser_core_1.canUseEventBridge)() ? "1.5.0" : undefined,
21
21
  sdk_name: sdkName,
22
22
  },
23
23
  application: {
package/cjs/index.d.ts CHANGED
@@ -18,7 +18,8 @@ export type { RumMutationRecord, RumAttributesMutationRecord, RumChildListMutati
18
18
  export type { ViewportDimension } from './browser/viewportObservable';
19
19
  export { initViewportObservable, getViewportDimension } from './browser/viewportObservable';
20
20
  export { getScrollX, getScrollY } from './browser/scroll';
21
- export type { RumInitConfiguration, RumConfiguration, FeatureFlagsForEvents, RemoteConfiguration, } from './domain/configuration';
21
+ export type { RumInitConfiguration, RumConfiguration, FeatureFlagsForEvents, RemoteConfiguration, SessionReplayRoutes, } from './domain/configuration';
22
+ export { isRouteRecordable, getRoutePath } from './domain/configuration';
22
23
  export { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './domain/action/actionNameConstants';
23
24
  export { STABLE_ATTRIBUTES } from './domain/getSelectorFromElement';
24
25
  export * from './browser/htmlDomUtils';
package/cjs/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.createFormDataTransport = exports.isSampled = exports.createHooks = exports.RumPerformanceEntryType = exports.supportPerformanceTimingEvent = exports.sanitizeIfLongDataUrl = exports.getSessionReplayUrl = exports.STABLE_ATTRIBUTES = exports.DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE = exports.getScrollY = exports.getScrollX = exports.getViewportDimension = exports.initViewportObservable = exports.getMutationObserverConstructor = exports.startViewHistory = exports.LifeCycle = exports.startRum = exports.FrustrationType = exports.RumEventType = exports.ActionType = exports.makeRumPublicApi = void 0;
17
+ exports.createFormDataTransport = exports.isSampled = exports.createHooks = exports.RumPerformanceEntryType = exports.supportPerformanceTimingEvent = exports.sanitizeIfLongDataUrl = exports.getSessionReplayUrl = exports.STABLE_ATTRIBUTES = exports.DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE = exports.getRoutePath = exports.isRouteRecordable = exports.getScrollY = exports.getScrollX = exports.getViewportDimension = exports.initViewportObservable = exports.getMutationObserverConstructor = exports.startViewHistory = exports.LifeCycle = exports.startRum = exports.FrustrationType = exports.RumEventType = exports.ActionType = exports.makeRumPublicApi = void 0;
18
18
  var rumPublicApi_1 = require("./boot/rumPublicApi");
19
19
  Object.defineProperty(exports, "makeRumPublicApi", { enumerable: true, get: function () { return rumPublicApi_1.makeRumPublicApi; } });
20
20
  var rawRumEvent_types_1 = require("./rawRumEvent.types");
@@ -35,6 +35,9 @@ Object.defineProperty(exports, "getViewportDimension", { enumerable: true, get:
35
35
  var scroll_1 = require("./browser/scroll");
36
36
  Object.defineProperty(exports, "getScrollX", { enumerable: true, get: function () { return scroll_1.getScrollX; } });
37
37
  Object.defineProperty(exports, "getScrollY", { enumerable: true, get: function () { return scroll_1.getScrollY; } });
38
+ var configuration_1 = require("./domain/configuration");
39
+ Object.defineProperty(exports, "isRouteRecordable", { enumerable: true, get: function () { return configuration_1.isRouteRecordable; } });
40
+ Object.defineProperty(exports, "getRoutePath", { enumerable: true, get: function () { return configuration_1.getRoutePath; } });
38
41
  var actionNameConstants_1 = require("./domain/action/actionNameConstants");
39
42
  Object.defineProperty(exports, "DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE", { enumerable: true, get: function () { return actionNameConstants_1.DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE; } });
40
43
  var getSelectorFromElement_1 = require("./domain/getSelectorFromElement");
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,oDAAsD;AAA7C,gHAAA,gBAAgB,OAAA;AAyBzB,yDAA+E;AAAtE,+GAAA,UAAU,OAAA;AAAE,iHAAA,YAAY,OAAA;AAAE,oHAAA,eAAe,OAAA;AAClD,4CAA0C;AAAjC,oGAAA,QAAQ,OAAA;AAEjB,gDAAkE;AAAzD,sGAAA,SAAS,OAAA;AAIlB,6DAAgE;AAAvD,+GAAA,gBAAgB,OAAA;AAEzB,yEAAgF;AAAvE,uIAAA,8BAA8B,OAAA;AAQvC,mEAA2F;AAAlF,4HAAA,sBAAsB,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AACrD,2CAAyD;AAAhD,oGAAA,UAAU,OAAA;AAAE,oGAAA,UAAU,OAAA;AAO/B,2EAAgG;AAAvF,iJAAA,0CAA0C,OAAA;AACnD,0EAAmE;AAA1D,2HAAA,iBAAiB,OAAA;AAC1B,yDAAsC;AACtC,oEAAkE;AAAzD,0HAAA,mBAAmB,OAAA;AAC5B,iEAAuE;AAA9D,sHAAA,qBAAqB,OAAA;AAC9B,mDAAgC;AAChC,4DAAyC;AAIzC,yEAA+E;AAAtE,sIAAA,6BAA6B,OAAA;AACtC,yEAAyE;AAAhE,gIAAA,uBAAuB,OAAA;AAShC,wCAA4C;AAAnC,oGAAA,WAAW,OAAA;AACpB,oDAAoD;AAA3C,oGAAA,SAAS,OAAA;AAGlB,mEAAuE;AAA9D,4HAAA,uBAAuB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,oDAAsD;AAA7C,gHAAA,gBAAgB,OAAA;AAyBzB,yDAA+E;AAAtE,+GAAA,UAAU,OAAA;AAAE,iHAAA,YAAY,OAAA;AAAE,oHAAA,eAAe,OAAA;AAClD,4CAA0C;AAAjC,oGAAA,QAAQ,OAAA;AAEjB,gDAAkE;AAAzD,sGAAA,SAAS,OAAA;AAIlB,6DAAgE;AAAvD,+GAAA,gBAAgB,OAAA;AAEzB,yEAAgF;AAAvE,uIAAA,8BAA8B,OAAA;AAQvC,mEAA2F;AAAlF,4HAAA,sBAAsB,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AACrD,2CAAyD;AAAhD,oGAAA,UAAU,OAAA;AAAE,oGAAA,UAAU,OAAA;AAQ/B,wDAAwE;AAA/D,kHAAA,iBAAiB,OAAA;AAAE,6GAAA,YAAY,OAAA;AACxC,2EAAgG;AAAvF,iJAAA,0CAA0C,OAAA;AACnD,0EAAmE;AAA1D,2HAAA,iBAAiB,OAAA;AAC1B,yDAAsC;AACtC,oEAAkE;AAAzD,0HAAA,mBAAmB,OAAA;AAC5B,iEAAuE;AAA9D,sHAAA,qBAAqB,OAAA;AAC9B,mDAAgC;AAChC,4DAAyC;AAIzC,yEAA+E;AAAtE,sIAAA,6BAA6B,OAAA;AACtC,yEAAyE;AAAhE,gIAAA,uBAAuB,OAAA;AAShC,wCAA4C;AAAnC,oGAAA,WAAW,OAAA;AACpB,oDAAoD;AAA3C,oGAAA,SAAS,OAAA;AAGlB,mEAAuE;AAA9D,4HAAA,uBAAuB,OAAA"}
@@ -1423,6 +1423,10 @@ export interface CommonProperties {
1423
1423
  * Email of the user
1424
1424
  */
1425
1425
  readonly email?: string;
1426
+ /**
1427
+ * Mobile phone number of the user
1428
+ */
1429
+ readonly mobile?: string;
1426
1430
  /**
1427
1431
  * Identifier of the user across sessions
1428
1432
  */
@@ -1,5 +1,5 @@
1
1
  import { createBoundedBuffer, display, canUseEventBridge, displayAlreadyInitializedError, willSyntheticsInjectRum, noop, timeStampNow, clocksNow, getEventBridge, initFeatureFlags, addTelemetryConfiguration, initFetchObservable, CustomerContextKey, buildAccountContextManager, buildGlobalContextManager, buildUserContextManager, monitorError, sanitize, } from '@kubesense/kubesense-browser-core';
2
- import { validateAndBuildRumConfiguration, fetchAndApplyRemoteConfiguration, serializeRumConfiguration, } from '../domain/configuration';
2
+ import { validateAndBuildRumConfiguration, fetchAndApplyRemoteConfiguration, serializeRumConfiguration, applyCachedSdkConfiguration, scheduleSdkConfigurationRefresh, } from '../domain/configuration';
3
3
  import { startDurationVital, stopDurationVital } from '../domain/vital/vitalCollection';
4
4
  import { callPluginsMethod } from '../domain/plugins';
5
5
  export function createPreStartStrategy({ ignoreInitIfSyntheticsWillInjectRum = true, startDeflateWorker }, trackingConsentState, customVitalsState, doStartRum) {
@@ -44,6 +44,20 @@ export function createPreStartStrategy({ ignoreInitIfSyntheticsWillInjectRum = t
44
44
  if (eventBridgeAvailable) {
45
45
  initConfiguration = overrideInitConfigurationForBridge(initConfiguration);
46
46
  }
47
+ const remoteSdkConfigurationEnabled = !!initConfiguration.enableRemoteSdkConfiguration;
48
+ if (remoteSdkConfigurationEnabled) {
49
+ // Reading the cached document is synchronous and network-free, so it does not delay
50
+ // initialization. The document fetched below only applies from the next page load.
51
+ const cachedSdkConfiguration = applyCachedSdkConfiguration(initConfiguration);
52
+ initConfiguration = cachedSdkConfiguration.initConfiguration;
53
+ if (!cachedSdkConfiguration.rumEnabled) {
54
+ // RUM is switched off from the dashboard. Still refresh the document, otherwise the
55
+ // switch would be one-way: the SDK could never learn that it has been turned back on.
56
+ cachedInitConfiguration = initConfiguration;
57
+ scheduleSdkConfigurationRefresh(initConfiguration).catch(monitorError);
58
+ return;
59
+ }
60
+ }
47
61
  // Update the exposed initConfiguration to reflect the bridge and remote configuration overrides
48
62
  cachedInitConfiguration = initConfiguration;
49
63
  addTelemetryConfiguration(serializeRumConfiguration(initConfiguration));
@@ -78,6 +92,10 @@ export function createPreStartStrategy({ ignoreInitIfSyntheticsWillInjectRum = t
78
92
  initFetchObservable().subscribe(noop);
79
93
  trackingConsentState.tryToInit(configuration.trackingConsent);
80
94
  tryStartRum();
95
+ if (remoteSdkConfigurationEnabled) {
96
+ // Fire-and-forget, after the SDK is running: refreshes the cache for the next page load.
97
+ scheduleSdkConfigurationRefresh(initConfiguration).catch(monitorError);
98
+ }
81
99
  }
82
100
  const addDurationVital = (vital) => {
83
101
  bufferApiCalls.add((startRumResult) => startRumResult.addDurationVital(vital));