@brainfish-ai/web-tracker 0.0.27 → 0.0.29
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/dist/common/recordingSampler.d.ts +16 -0
- package/dist/index.d.ts +11 -1
- package/dist/tracker.cjs.js +1 -1
- package/dist/tracker.cjs.js.gz +0 -0
- package/dist/tracker.cjs.js.map +1 -1
- package/dist/tracker.es.js +63 -11
- package/dist/tracker.es.js.gz +0 -0
- package/dist/tracker.es.js.map +1 -1
- package/dist/tracker.js +1 -1
- package/dist/tracker.js.gz +0 -0
- package/dist/tracker.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Recording Sampler
|
|
3
|
+
*
|
|
4
|
+
* Provides hash-based deterministic sampling for session recording to reduce recording volume.
|
|
5
|
+
* Same sessionId always produces the same decision (consistent across tabs and page reloads).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Determines whether session recording should be enabled for the current session.
|
|
9
|
+
* Uses deterministic hash-based sampling for consistency across tabs.
|
|
10
|
+
*
|
|
11
|
+
* @param sampleRate - Percentage of sessions to record (0-100).
|
|
12
|
+
* Undefined or invalid values default to 5%.
|
|
13
|
+
* @param sessionId - Backend session ID for deterministic sampling (required)
|
|
14
|
+
* @returns true if recording should be enabled, false otherwise
|
|
15
|
+
*/
|
|
16
|
+
export declare function shouldSampleRecording(sampleRate: number | undefined, sessionId: string): boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import { TrackerSdkOptions, TrackProperties, TrackerSdk } from '@brainfish-ai/tracker-sdk';
|
|
2
2
|
export type * from '@brainfish-ai/tracker-sdk';
|
|
3
|
+
export type RecordingOptions = {
|
|
4
|
+
blocklist?: string[];
|
|
5
|
+
sampleRate?: number;
|
|
6
|
+
_allowLocalhostRecording?: boolean;
|
|
7
|
+
};
|
|
3
8
|
export type TrackerOptions = TrackerSdkOptions & {
|
|
4
9
|
trackOutgoingLinks?: boolean;
|
|
5
10
|
trackScreenViews?: boolean;
|
|
6
11
|
trackAttributes?: boolean;
|
|
7
12
|
trackHashChanges?: boolean;
|
|
8
13
|
enableRecording?: boolean;
|
|
14
|
+
recordingOptions?: RecordingOptions;
|
|
15
|
+
/** @deprecated Use recordingOptions.blocklist instead */
|
|
9
16
|
recordingBlocklist?: string[];
|
|
17
|
+
/** @deprecated Use recordingOptions._allowLocalhostRecording instead */
|
|
10
18
|
_allowLocalhostRecording?: boolean;
|
|
11
19
|
};
|
|
12
20
|
export declare const VERSION: string;
|
|
@@ -18,13 +26,14 @@ export declare class Tracker extends TrackerSdk {
|
|
|
18
26
|
private readonly sessionManager;
|
|
19
27
|
private readonly recordingBlocklist;
|
|
20
28
|
private isRecordingActive;
|
|
29
|
+
private onFirstScreenViewTracked;
|
|
21
30
|
constructor(options: TrackerOptions);
|
|
22
31
|
private debounce;
|
|
23
32
|
private isServer;
|
|
24
33
|
trackOutgoingLinks(): void;
|
|
25
34
|
trackScreenViews(): void;
|
|
26
35
|
trackAttributes(): void;
|
|
27
|
-
startRecording
|
|
36
|
+
private startRecording;
|
|
28
37
|
screenView(properties?: TrackProperties): Promise<void>;
|
|
29
38
|
screenView(path: string, properties?: TrackProperties): Promise<void>;
|
|
30
39
|
/**
|
|
@@ -33,6 +42,7 @@ export declare class Tracker extends TrackerSdk {
|
|
|
33
42
|
* @returns Promise that resolves when events are recorded and session is managed
|
|
34
43
|
*/
|
|
35
44
|
private recordEventsToServer;
|
|
45
|
+
private initializeRecordingWithSessionId;
|
|
36
46
|
private sendScreenViewEvent;
|
|
37
47
|
/**
|
|
38
48
|
* Disables privacy-sensitive tracking features and stops active recording.
|