@zaplier/sdk 1.0.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 (97) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +144 -0
  3. package/dist/index.cjs +11092 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.ts +1204 -0
  6. package/dist/index.esm.js +11059 -0
  7. package/dist/index.esm.js.map +1 -0
  8. package/dist/index.js +3517 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/sdk.js +11098 -0
  11. package/dist/sdk.js.map +1 -0
  12. package/dist/sdk.min.js +7 -0
  13. package/dist/src/index.d.ts +15 -0
  14. package/dist/src/index.d.ts.map +1 -0
  15. package/dist/src/modules/anti-adblock.d.ts +108 -0
  16. package/dist/src/modules/anti-adblock.d.ts.map +1 -0
  17. package/dist/src/modules/bot-detection.d.ts +15 -0
  18. package/dist/src/modules/bot-detection.d.ts.map +1 -0
  19. package/dist/src/modules/fingerprint/accessibility.d.ts +155 -0
  20. package/dist/src/modules/fingerprint/accessibility.d.ts.map +1 -0
  21. package/dist/src/modules/fingerprint/audio.d.ts +16 -0
  22. package/dist/src/modules/fingerprint/audio.d.ts.map +1 -0
  23. package/dist/src/modules/fingerprint/browser-apis.d.ts +108 -0
  24. package/dist/src/modules/fingerprint/browser-apis.d.ts.map +1 -0
  25. package/dist/src/modules/fingerprint/browser.d.ts +14 -0
  26. package/dist/src/modules/fingerprint/browser.d.ts.map +1 -0
  27. package/dist/src/modules/fingerprint/canvas.d.ts +14 -0
  28. package/dist/src/modules/fingerprint/canvas.d.ts.map +1 -0
  29. package/dist/src/modules/fingerprint/confidence.d.ts +89 -0
  30. package/dist/src/modules/fingerprint/confidence.d.ts.map +1 -0
  31. package/dist/src/modules/fingerprint/datetime-locale.d.ts +76 -0
  32. package/dist/src/modules/fingerprint/datetime-locale.d.ts.map +1 -0
  33. package/dist/src/modules/fingerprint/device-signals.d.ts +29 -0
  34. package/dist/src/modules/fingerprint/device-signals.d.ts.map +1 -0
  35. package/dist/src/modules/fingerprint/dom-blockers.d.ts +56 -0
  36. package/dist/src/modules/fingerprint/dom-blockers.d.ts.map +1 -0
  37. package/dist/src/modules/fingerprint/font-preferences.d.ts +55 -0
  38. package/dist/src/modules/fingerprint/font-preferences.d.ts.map +1 -0
  39. package/dist/src/modules/fingerprint/fonts-enhanced.d.ts +43 -0
  40. package/dist/src/modules/fingerprint/fonts-enhanced.d.ts.map +1 -0
  41. package/dist/src/modules/fingerprint/fonts.d.ts +14 -0
  42. package/dist/src/modules/fingerprint/fonts.d.ts.map +1 -0
  43. package/dist/src/modules/fingerprint/hardware.d.ts +40 -0
  44. package/dist/src/modules/fingerprint/hardware.d.ts.map +1 -0
  45. package/dist/src/modules/fingerprint/hashing.d.ts +28 -0
  46. package/dist/src/modules/fingerprint/hashing.d.ts.map +1 -0
  47. package/dist/src/modules/fingerprint/incognito.d.ts +6 -0
  48. package/dist/src/modules/fingerprint/incognito.d.ts.map +1 -0
  49. package/dist/src/modules/fingerprint/math-enhanced.d.ts +70 -0
  50. package/dist/src/modules/fingerprint/math-enhanced.d.ts.map +1 -0
  51. package/dist/src/modules/fingerprint/math.d.ts +32 -0
  52. package/dist/src/modules/fingerprint/math.d.ts.map +1 -0
  53. package/dist/src/modules/fingerprint/plugins-enhanced.d.ts +97 -0
  54. package/dist/src/modules/fingerprint/plugins-enhanced.d.ts.map +1 -0
  55. package/dist/src/modules/fingerprint/screen.d.ts +15 -0
  56. package/dist/src/modules/fingerprint/screen.d.ts.map +1 -0
  57. package/dist/src/modules/fingerprint/storage.d.ts +45 -0
  58. package/dist/src/modules/fingerprint/storage.d.ts.map +1 -0
  59. package/dist/src/modules/fingerprint/system.d.ts +40 -0
  60. package/dist/src/modules/fingerprint/system.d.ts.map +1 -0
  61. package/dist/src/modules/fingerprint/webgl.d.ts +15 -0
  62. package/dist/src/modules/fingerprint/webgl.d.ts.map +1 -0
  63. package/dist/src/modules/fingerprint.d.ts +35 -0
  64. package/dist/src/modules/fingerprint.d.ts.map +1 -0
  65. package/dist/src/modules/global-interface.d.ts +141 -0
  66. package/dist/src/modules/global-interface.d.ts.map +1 -0
  67. package/dist/src/modules/heatmap.d.ts +140 -0
  68. package/dist/src/modules/heatmap.d.ts.map +1 -0
  69. package/dist/src/modules/incognito-detection.d.ts +23 -0
  70. package/dist/src/modules/incognito-detection.d.ts.map +1 -0
  71. package/dist/src/modules/session-replay.d.ts +132 -0
  72. package/dist/src/modules/session-replay.d.ts.map +1 -0
  73. package/dist/src/modules/user-agent.d.ts +35 -0
  74. package/dist/src/modules/user-agent.d.ts.map +1 -0
  75. package/dist/src/sdk.d.ts +227 -0
  76. package/dist/src/sdk.d.ts.map +1 -0
  77. package/dist/src/types/config.d.ts +44 -0
  78. package/dist/src/types/config.d.ts.map +1 -0
  79. package/dist/src/types/detection.d.ts +114 -0
  80. package/dist/src/types/detection.d.ts.map +1 -0
  81. package/dist/src/types/events.d.ts +174 -0
  82. package/dist/src/types/events.d.ts.map +1 -0
  83. package/dist/src/types/fingerprint.d.ts +157 -0
  84. package/dist/src/types/fingerprint.d.ts.map +1 -0
  85. package/dist/src/types/index.d.ts +83 -0
  86. package/dist/src/types/index.d.ts.map +1 -0
  87. package/dist/src/types/methods.d.ts +83 -0
  88. package/dist/src/types/methods.d.ts.map +1 -0
  89. package/dist/src/types/visitor.d.ts +90 -0
  90. package/dist/src/types/visitor.d.ts.map +1 -0
  91. package/dist/src/utils/browser.d.ts +79 -0
  92. package/dist/src/utils/browser.d.ts.map +1 -0
  93. package/dist/src/utils/lazy-loader.d.ts +60 -0
  94. package/dist/src/utils/lazy-loader.d.ts.map +1 -0
  95. package/dist/src/utils/webgl-cache.d.ts +43 -0
  96. package/dist/src/utils/webgl-cache.d.ts.map +1 -0
  97. package/package.json +82 -0
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Global Interface for Zaplier SDK
3
+ * Provides unified API for both Script tag and NPM usage
4
+ */
5
+ import { ZaplierSDK } from "../sdk";
6
+ import type { SDKConfig } from "../types";
7
+ /**
8
+ * Unified Zaplier interface
9
+ */
10
+ export declare const Zaplier: {
11
+ /**
12
+ * Initialize SDK
13
+ */
14
+ init: (config: SDKConfig) => ZaplierSDK;
15
+ /**
16
+ * Get current instance
17
+ */
18
+ getInstance: () => ZaplierSDK | null;
19
+ /**
20
+ * Track custom event
21
+ */
22
+ track: (eventType: string, eventData?: Record<string, any>) => void;
23
+ /**
24
+ * Track page view
25
+ */
26
+ trackPageView: (data?: any) => void;
27
+ /**
28
+ * Track custom event (alias for track)
29
+ */
30
+ trackEvent: (eventName: string, metadata?: Record<string, any>) => boolean;
31
+ /**
32
+ * Track conversion
33
+ */
34
+ trackConversion: (conversionType: string, value?: number, currency?: string, metadata?: Record<string, any>) => void;
35
+ /**
36
+ * Track purchase
37
+ */
38
+ trackPurchase: (data: {
39
+ value: number;
40
+ currency?: string;
41
+ items?: Array<{
42
+ id: string;
43
+ name: string;
44
+ category?: string;
45
+ quantity?: number;
46
+ price?: number;
47
+ }>;
48
+ orderId?: string;
49
+ coupon?: string;
50
+ }) => void;
51
+ /**
52
+ * Track add to cart
53
+ */
54
+ trackAddToCart: (data?: {
55
+ productId?: string;
56
+ productName?: string;
57
+ price?: number;
58
+ quantity?: number;
59
+ customData?: Record<string, any>;
60
+ }) => void;
61
+ /**
62
+ * Identify user
63
+ */
64
+ identify: (userData: {
65
+ email?: string;
66
+ name?: string;
67
+ id?: string;
68
+ properties?: Record<string, any>;
69
+ }) => void;
70
+ /**
71
+ * Get visitor ID
72
+ */
73
+ getVisitorId: () => string | null;
74
+ /**
75
+ * Get visitor info
76
+ */
77
+ getVisitorInfo: () => Promise<any>;
78
+ /**
79
+ * Get user data
80
+ */
81
+ getUserData: () => any;
82
+ /**
83
+ * Enable enhanced tracking
84
+ */
85
+ enableEnhancedTracking: () => boolean;
86
+ /**
87
+ * Disable enhanced tracking
88
+ */
89
+ disableEnhancedTracking: () => void;
90
+ /**
91
+ * Check if enhanced mode is active
92
+ */
93
+ isEnhancedMode: () => boolean;
94
+ /**
95
+ * Heatmap controls
96
+ */
97
+ heatmap: {
98
+ enable: () => void;
99
+ disable: () => void;
100
+ enableMouseTracking: () => void;
101
+ disableMouseTracking: () => void;
102
+ getStats: () => {
103
+ clickCount: number;
104
+ maxScrollDepth: number;
105
+ isRecording: boolean;
106
+ mouseMovements: number;
107
+ rageClicks: number;
108
+ } | null;
109
+ isRecording: () => boolean;
110
+ };
111
+ /**
112
+ * Session replay controls
113
+ */
114
+ replay: {
115
+ enable: () => void;
116
+ disable: () => void;
117
+ start: () => boolean;
118
+ stop: () => void;
119
+ isRecording: () => boolean;
120
+ getEventCount: () => number;
121
+ addFunnelStep: (stepData: Record<string, any>) => void;
122
+ markConversion: (data: Record<string, any>) => void;
123
+ };
124
+ /**
125
+ * Debug and utility functions
126
+ */
127
+ debug: {
128
+ getStats: () => any;
129
+ getSuccessRates: () => any;
130
+ testTransports: () => any;
131
+ };
132
+ /**
133
+ * Version info
134
+ */
135
+ version: string;
136
+ };
137
+ /**
138
+ * Auto-initialization from script tag data attributes
139
+ */
140
+ export declare function autoInitializeFromScript(): void;
141
+ //# sourceMappingURL=global-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-interface.d.ts","sourceRoot":"","sources":["../../../src/modules/global-interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;OAEG;mBACY,SAAS,KAAG,UAAU;IAUrC;;OAEG;uBACc,UAAU,GAAG,IAAI;IAIlC;;OAEG;uBACgB,MAAM,cAAc,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,IAAI;IAQjE;;OAEG;2BACoB,GAAG,KAAG,IAAI;IAQjC;;OAEG;4BACqB,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,OAAO;IAQxE;;OAEG;sCAEe,MAAM,UACd,MAAM,aACH,MAAM,aACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC7B,IAAI;IAQP;;OAEG;0BACmB;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,KAAK,CAAC;YACZ,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAG,IAAI;IAQR;;OAEG;4BACqB;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC,KAAG,IAAI;IAQR;;OAEG;yBACkB;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC,KAAG,IAAI;IAQR;;OAEG;wBACe,MAAM,GAAG,IAAI;IAO/B;;OAEG;0BACiB,OAAO,CAAC,GAAG,CAAC;IAOhC;;OAEG;uBACc,GAAG;IAOpB;;OAEG;kCACyB,OAAO;IAQnC;;OAEG;mCAC0B,IAAI;IAQjC;;OAEG;0BACiB,OAAO;IAO3B;;OAEG;;sBAEW,IAAI;uBAOH,IAAI;mCAOQ,IAAI;oCAOH,IAAI;;;;;;;;2BAab,OAAO;;IAQ1B;;OAEG;;sBAEW,IAAI;uBAOH,IAAI;qBAON,OAAO;oBAOR,IAAI;2BAOG,OAAO;6BAML,MAAM;kCAMC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,IAAI;+BAO7B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,IAAI;;IASnD;;OAEG;;;;;;IAsBH;;OAEG;;CAEJ,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CA4C/C"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Heatmap Engine
3
+ * Captures click coordinates, scroll depth, mouse movements and rage clicks
4
+ * for visual analytics and user behavior insights
5
+ */
6
+ export interface HeatmapClick {
7
+ x: number;
8
+ y: number;
9
+ absoluteX: number;
10
+ absoluteY: number;
11
+ element: string;
12
+ timestamp: number;
13
+ button: number;
14
+ rageClick?: boolean;
15
+ }
16
+ export interface HeatmapScroll {
17
+ depth: number;
18
+ maxDepth: number;
19
+ timestamp: number;
20
+ viewport: {
21
+ width: number;
22
+ height: number;
23
+ };
24
+ }
25
+ export interface HeatmapMouseMove {
26
+ path: Array<{
27
+ x: number;
28
+ y: number;
29
+ timestamp: number;
30
+ }>;
31
+ timestamp: number;
32
+ }
33
+ export interface HeatmapConfig {
34
+ enabled: boolean;
35
+ trackClicks: boolean;
36
+ trackScrollDepth: boolean;
37
+ trackMouseMoves: boolean;
38
+ trackRageClicks: boolean;
39
+ mouseMoveThrottle: number;
40
+ batchInterval: number;
41
+ maxClickBuffer: number;
42
+ rageClickThreshold: number;
43
+ rageClickTimeWindow: number;
44
+ }
45
+ export declare class HeatmapEngine {
46
+ private config;
47
+ private clicks;
48
+ private scrollData;
49
+ private mouseMoves;
50
+ private lastMouseMove;
51
+ private maxScrollDepth;
52
+ private batchTimer?;
53
+ private isActive;
54
+ private sessionId;
55
+ private recentClicks;
56
+ constructor(sessionId: string, config?: Partial<HeatmapConfig>);
57
+ /**
58
+ * Start heatmap tracking
59
+ */
60
+ start(): boolean;
61
+ /**
62
+ * Stop heatmap tracking
63
+ */
64
+ stop(): void;
65
+ /**
66
+ * Setup event listeners
67
+ */
68
+ private setupEventListeners;
69
+ /**
70
+ * Remove event listeners
71
+ */
72
+ private removeEventListeners;
73
+ /**
74
+ * Track initial viewport for context
75
+ */
76
+ private trackInitialViewport;
77
+ /**
78
+ * Handle click events
79
+ */
80
+ private handleClick;
81
+ /**
82
+ * Handle scroll events
83
+ */
84
+ private handleScroll;
85
+ /**
86
+ * Handle mouse move events (throttled)
87
+ */
88
+ private handleMouseMove;
89
+ /**
90
+ * Handle viewport resize
91
+ */
92
+ private handleResize;
93
+ /**
94
+ * Calculate current scroll depth as percentage
95
+ */
96
+ private calculateScrollDepth;
97
+ /**
98
+ * Detect rage clicks (multiple clicks in same area within time window)
99
+ */
100
+ private detectRageClick;
101
+ /**
102
+ * Get element selector for targeting
103
+ */
104
+ private getElementSelector;
105
+ /**
106
+ * Start batch timer
107
+ */
108
+ private startBatchTimer;
109
+ /**
110
+ * Send batch of heatmap data
111
+ */
112
+ private sendBatch;
113
+ /**
114
+ * Send data to backend (will be enhanced with anti-adblock)
115
+ */
116
+ private sendToBackend;
117
+ /**
118
+ * Get current statistics
119
+ */
120
+ getStats(): {
121
+ clickCount: number;
122
+ maxScrollDepth: number;
123
+ isRecording: boolean;
124
+ mouseMovements: number;
125
+ rageClicks: number;
126
+ };
127
+ /**
128
+ * Enable mouse movement tracking
129
+ */
130
+ enableMouseTracking(): void;
131
+ /**
132
+ * Disable mouse movement tracking
133
+ */
134
+ disableMouseTracking(): void;
135
+ /**
136
+ * Check if heatmap is recording
137
+ */
138
+ isRecording(): boolean;
139
+ }
140
+ //# sourceMappingURL=heatmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heatmap.d.ts","sourceRoot":"","sources":["../../../src/modules/heatmap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Incognito Mode Detection (Analytics Only)
3
+ *
4
+ * Detects private/incognito browsing mode for analytics purposes only.
5
+ * Does NOT use localStorage/sessionStorage for tracking or data persistence.
6
+ * Used only to enrich analytics data with browser context information.
7
+ */
8
+ import type { IncognitoDetectionResult } from "../types/detection";
9
+ /**
10
+ * Main incognito detection function (IMPROVED - 2024)
11
+ *
12
+ * Enhanced with:
13
+ * - Weighted scoring system to reduce false positives
14
+ * - Browser-specific detection weights
15
+ * - Multi-signal validation requirements
16
+ * - Improved confidence thresholds
17
+ */
18
+ export declare function detectIncognitoMode(): Promise<IncognitoDetectionResult>;
19
+ /**
20
+ * Quick incognito detection (less comprehensive but faster)
21
+ */
22
+ export declare function quickIncognitoDetection(): Promise<boolean>;
23
+ //# sourceMappingURL=incognito-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incognito-detection.d.ts","sourceRoot":"","sources":["../../../src/modules/incognito-detection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAGV,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAmpB5B;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CA4L7E;AAoFD;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAYhE"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Session Replay Engine
3
+ * Captures DOM mutations, user interactions, and viewport changes
4
+ * for comprehensive session recording
5
+ */
6
+ export interface ReplayEvent {
7
+ type: 'mutation' | 'click' | 'scroll' | 'input' | 'mouse' | 'viewport' | 'navigation';
8
+ timestamp: number;
9
+ data: any;
10
+ sequence: number;
11
+ }
12
+ export interface ReplayConfig {
13
+ enabled: boolean;
14
+ sampleRate: number;
15
+ maskSensitiveFields: boolean;
16
+ maxEventBuffer: number;
17
+ batchInterval: number;
18
+ captureClicks: boolean;
19
+ captureScrolls: boolean;
20
+ captureInputs: boolean;
21
+ captureMouseMoves: boolean;
22
+ compressionEnabled: boolean;
23
+ }
24
+ export declare class SessionReplayEngine {
25
+ private config;
26
+ private events;
27
+ private observer?;
28
+ private sequence;
29
+ private batchTimer?;
30
+ private isActive;
31
+ private sessionId;
32
+ private lastMouseMove;
33
+ private mouseMoveThrottle;
34
+ constructor(sessionId: string, config?: Partial<ReplayConfig>);
35
+ /**
36
+ * Start session replay recording
37
+ */
38
+ start(): boolean;
39
+ /**
40
+ * Stop session replay recording
41
+ */
42
+ stop(): void;
43
+ /**
44
+ * Setup DOM mutation observer
45
+ */
46
+ private setupDOMObserver;
47
+ /**
48
+ * Setup event listeners
49
+ */
50
+ private setupEventListeners;
51
+ /**
52
+ * Remove event listeners
53
+ */
54
+ private removeEventListeners;
55
+ /**
56
+ * Record initial DOM state
57
+ */
58
+ private recordInitialState;
59
+ /**
60
+ * Handle click events
61
+ */
62
+ private handleClick;
63
+ /**
64
+ * Handle scroll events
65
+ */
66
+ private handleScroll;
67
+ /**
68
+ * Handle input events
69
+ */
70
+ private handleInput;
71
+ /**
72
+ * Handle change events
73
+ */
74
+ private handleChange;
75
+ /**
76
+ * Handle mouse move events (throttled)
77
+ */
78
+ private handleMouseMove;
79
+ /**
80
+ * Handle viewport changes
81
+ */
82
+ private handleViewportChange;
83
+ /**
84
+ * Handle navigation events
85
+ */
86
+ private handleNavigation;
87
+ /**
88
+ * Serialize DOM mutation
89
+ */
90
+ private serializeMutation;
91
+ /**
92
+ * Serialize DOM element
93
+ */
94
+ private serializeElement;
95
+ /**
96
+ * Get element path for targeting
97
+ */
98
+ private getElementPath;
99
+ /**
100
+ * Check if field should be masked
101
+ */
102
+ private isSensitiveField;
103
+ /**
104
+ * Check if attribute should be masked
105
+ */
106
+ private isSensitiveAttribute;
107
+ /**
108
+ * Add event to buffer
109
+ */
110
+ private addEvent;
111
+ /**
112
+ * Start batch timer
113
+ */
114
+ private startBatchTimer;
115
+ /**
116
+ * Send batch of events
117
+ */
118
+ private sendBatch;
119
+ /**
120
+ * Send data to backend (will be enhanced with anti-adblock)
121
+ */
122
+ private sendToBackend;
123
+ /**
124
+ * Get current event count
125
+ */
126
+ getEventCount(): number;
127
+ /**
128
+ * Check if recording is active
129
+ */
130
+ isRecording(): boolean;
131
+ }
132
+ //# sourceMappingURL=session-replay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../../src/modules/session-replay.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAmB;IACpC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,iBAAiB,CAAO;gBAEpB,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAiBjE;;OAEG;IACH,KAAK,IAAI,OAAO;IAqBhB;;OAEG;IACH,IAAI,IAAI,IAAI;IAqBZ;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,WAAW,CAkBjB;IAEF;;OAEG;IACH,OAAO,CAAC,YAAY,CAUlB;IAEF;;OAEG;IACH,OAAO,CAAC,WAAW,CAqBjB;IAEF;;OAEG;IACH,OAAO,CAAC,YAAY,CAoBlB;IAEF;;OAEG;IACH,OAAO,CAAC,eAAe,CAgBrB;IAEF;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAU1B;IAEF;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAGtB;IAEF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkCzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgCtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAK5B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,SAAS;IAoBjB;;OAEG;YACW,aAAa;IAiB3B;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,WAAW,IAAI,OAAO;CAGvB"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Enhanced User Agent Parser
3
+ * Based on FingerprintJS browser detection with advanced engine and version parsing
4
+ */
5
+ import type { UserAgentAnalysis } from '../types/detection';
6
+ /**
7
+ * Browser engine detection (based on FingerprintJS)
8
+ */
9
+ export declare function isChromium(): boolean;
10
+ export declare function isWebKit(): boolean;
11
+ export declare function isGecko(): boolean;
12
+ export declare function isSamsungInternet(): boolean;
13
+ export declare function isIPad(): boolean;
14
+ export declare function isAndroid(): boolean;
15
+ /**
16
+ * Enhanced user agent analysis
17
+ */
18
+ export declare function analyzeUserAgent(userAgent?: string): UserAgentAnalysis;
19
+ /**
20
+ * Get browser engine type
21
+ */
22
+ export declare function getBrowserEngine(): 'chromium' | 'webkit' | 'gecko' | 'trident' | 'unknown';
23
+ /**
24
+ * Check if running on mobile device
25
+ */
26
+ export declare function isMobile(): boolean;
27
+ /**
28
+ * Check if running on tablet
29
+ */
30
+ export declare function isTablet(): boolean;
31
+ /**
32
+ * Check if running on desktop
33
+ */
34
+ export declare function isDesktop(): boolean;
35
+ //# sourceMappingURL=user-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-agent.d.ts","sourceRoot":"","sources":["../../../src/modules/user-agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAQpC;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAGlC;AAED,wBAAgB,OAAO,IAAI,OAAO,CAGjC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED,wBAAgB,MAAM,IAAI,OAAO,CAIhC;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AA4VD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAoCtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAS1F;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC"}