@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,227 @@
1
+ /**
2
+ * Zaplier SDK v1.0.0
3
+ * 100% Cookieless Analytics Tracking
4
+ *
5
+ * Main SDK class for client-side tracking integration
6
+ */
7
+ import type { InternalConfig, ZaplierSDK as IZaplierSDK, PageViewEvent, SDKConfig, UserData, VisitorHistory, VisitorInfo } from "./types";
8
+ /**
9
+ * Main Zaplier SDK Class
10
+ */
11
+ export declare class ZaplierSDK implements IZaplierSDK {
12
+ config: InternalConfig;
13
+ version: string;
14
+ private visitorId?;
15
+ private backendVisitorId?;
16
+ private sessionId?;
17
+ private fingerprint?;
18
+ private isInitialized;
19
+ private eventQueue;
20
+ private replayEngine?;
21
+ private heatmapEngine?;
22
+ private antiAdblockManager?;
23
+ constructor(userConfig: SDKConfig);
24
+ /**
25
+ * Initialize SDK
26
+ */
27
+ private initialize;
28
+ /**
29
+ * Initialize tracking engines (Session Replay & Heatmap)
30
+ */
31
+ private initializeTrackingEngines;
32
+ /**
33
+ * Generate session ID
34
+ */
35
+ private generateSessionId;
36
+ /**
37
+ * Initialize Anti-Adblock Manager
38
+ */
39
+ private initializeAntiAdblock;
40
+ /**
41
+ * Collect fingerprint and generate visitor ID (IMPROVED - 2024)
42
+ * Enhanced with better incognito detection
43
+ */
44
+ private collectFingerprint;
45
+ /**
46
+ * Check if running on localhost
47
+ */
48
+ private isLocalhost;
49
+ /**
50
+ * Send event to backend
51
+ */
52
+ private sendEvent;
53
+ /**
54
+ * Make HTTP request to backend using anti-adblock system
55
+ */
56
+ private makeRequest;
57
+ /**
58
+ * Process queued events
59
+ */
60
+ private processEventQueue;
61
+ /**
62
+ * Track generic event
63
+ */
64
+ track(eventType: string, eventData?: Record<string, any>): void;
65
+ /**
66
+ * Track custom event
67
+ */
68
+ trackCustomEvent(eventName: string, metadata?: Record<string, any>): boolean;
69
+ /**
70
+ * Track conversion event
71
+ */
72
+ trackConversion(eventName: string, value?: number, currency?: string, metadata?: Record<string, any>): boolean;
73
+ /**
74
+ * Track page view
75
+ */
76
+ trackPageView(data?: Partial<PageViewEvent>): void;
77
+ /**
78
+ * Track purchase
79
+ */
80
+ trackPurchase(data: {
81
+ value?: number;
82
+ revenue?: number;
83
+ currency?: string;
84
+ quantity?: number;
85
+ productId?: string;
86
+ productName?: string;
87
+ orderId?: string;
88
+ customData?: Record<string, any>;
89
+ }): void;
90
+ /**
91
+ * Track add to cart
92
+ */
93
+ trackAddToCart(data?: {
94
+ productId?: string;
95
+ productName?: string;
96
+ price?: number;
97
+ quantity?: number;
98
+ customData?: Record<string, any>;
99
+ }): void;
100
+ /**
101
+ * Track view content
102
+ */
103
+ trackViewContent(data?: {
104
+ productId?: string;
105
+ productName?: string;
106
+ category?: string;
107
+ customData?: Record<string, any>;
108
+ }): void;
109
+ /**
110
+ * Track initiate checkout
111
+ */
112
+ trackInitiateCheckout(data?: {
113
+ value?: number;
114
+ currency?: string;
115
+ numItems?: number;
116
+ customData?: Record<string, any>;
117
+ }): void;
118
+ /**
119
+ * Track lead
120
+ */
121
+ trackLead(data?: Record<string, any>): void;
122
+ /**
123
+ * Identify user
124
+ */
125
+ identify(userData: {
126
+ email?: string;
127
+ phone?: string;
128
+ [key: string]: any;
129
+ }): void;
130
+ /**
131
+ * Track SPA navigation
132
+ */
133
+ trackSPANavigation(url?: string, title?: string): void;
134
+ /**
135
+ * Reset scroll tracking
136
+ */
137
+ resetScrollTracking(): void;
138
+ /**
139
+ * Start presence tracking
140
+ */
141
+ startPresenceTracking(): void;
142
+ /**
143
+ * Stop presence tracking
144
+ */
145
+ stopPresenceTracking(): void;
146
+ /**
147
+ * Heatmap API
148
+ */
149
+ heatmap: {
150
+ enable: () => void;
151
+ disable: () => void;
152
+ enableMouseTracking: () => void;
153
+ disableMouseTracking: () => void;
154
+ getStats: () => {
155
+ clickCount: number;
156
+ maxScrollDepth: number;
157
+ isRecording: boolean;
158
+ mouseMovements: number;
159
+ rageClicks: number;
160
+ } | null;
161
+ isRecording: () => boolean;
162
+ };
163
+ /**
164
+ * Replay API
165
+ */
166
+ replay: {
167
+ enable: () => void;
168
+ disable: () => void;
169
+ start: () => boolean;
170
+ stop: () => void;
171
+ isRecording: () => boolean;
172
+ getEventCount: () => number;
173
+ addFunnelStep: (stepData: Record<string, any>) => void;
174
+ markConversion: (data: Record<string, any>) => void;
175
+ };
176
+ /**
177
+ * Enable enhanced tracking
178
+ */
179
+ enableEnhancedTracking(): boolean;
180
+ /**
181
+ * Disable enhanced tracking
182
+ */
183
+ disableEnhancedTracking(): void;
184
+ /**
185
+ * Check if enhanced mode is active
186
+ */
187
+ isEnhancedMode(): boolean;
188
+ /**
189
+ * Get visitor ID (real UUID from backend, or fallback)
190
+ */
191
+ getVisitorId(): string | null;
192
+ /**
193
+ * Get visitor information from backend
194
+ * Returns detailed visitor data including location, device info, and stats
195
+ *
196
+ * IMPORTANT: Only uses backendVisitorId (UUID), not the local visitorId with 'vis_' prefix
197
+ */
198
+ getVisitorInfo(): Promise<VisitorInfo | null>;
199
+ /**
200
+ * Get visitor history (visits/events)
201
+ * Returns visit history with location, IP, incognito, VPN detection
202
+ */
203
+ getVisitorHistory(): Promise<VisitorHistory | null>;
204
+ /**
205
+ * Get user data
206
+ */
207
+ getUserData(): UserData;
208
+ /**
209
+ * Get conversion likelihood (mock implementation)
210
+ */
211
+ getConversionLikelihood(): {
212
+ score: number;
213
+ factors: string[];
214
+ };
215
+ /**
216
+ * Get user segment (mock implementation)
217
+ */
218
+ getUserSegment(): {
219
+ type: "high_intent" | "medium_intent" | "exploring";
220
+ confidence: number;
221
+ };
222
+ }
223
+ /**
224
+ * Default export for ES modules
225
+ */
226
+ export default ZaplierSDK;
227
+ //# sourceMappingURL=sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * SDK Configuration Types
3
+ *
4
+ * 100% Cookieless tracking using fingerprinting only.
5
+ * No storage dependencies - fully GDPR/LGPD compliant.
6
+ */
7
+ export interface SDKConfig {
8
+ /** Workspace token (required) */
9
+ token: string;
10
+ /** Enable session replay recording (default: false) */
11
+ replay?: boolean;
12
+ /** Enable heatmap tracking (default: false) */
13
+ heatmap?: boolean;
14
+ /** Enable debug mode for development (default: false) */
15
+ debug?: boolean;
16
+ /** Allow tracking on localhost (default: false) */
17
+ allow_localhost?: boolean;
18
+ /** GDPR mode - limits invasive fingerprinting (default: false) */
19
+ gdprMode?: boolean;
20
+ }
21
+ /**
22
+ * Internal configuration with optimized defaults
23
+ * These settings are not exposed to the user but can be referenced internally
24
+ */
25
+ export interface InternalConfig extends SDKConfig {
26
+ apiEndpoint: string;
27
+ retryEnabled: boolean;
28
+ maxRetries: number;
29
+ retryDelays: number[];
30
+ autoTrack: boolean;
31
+ dedupeEnabled: boolean;
32
+ fingerprintEnabled: boolean;
33
+ presenceTracking: boolean;
34
+ heartbeatInterval: number;
35
+ scrollTracking: boolean;
36
+ scrollDepthTracking: boolean;
37
+ gdprCompliant: boolean;
38
+ enhancedTracking: 'ask' | 'true' | 'false';
39
+ replaySampling: number;
40
+ replayMaskInputs: boolean;
41
+ }
42
+ export type ConfigKey = keyof SDKConfig;
43
+ export type InternalConfigKey = keyof InternalConfig;
44
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,SAAS;IACxB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IAEd,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,mDAAmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,SAAS;IAE/C,WAAW,EAAE,MAAM,CAAC;IAGpB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IAGtB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;IAG5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAG1B,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAG7B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAG3C,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC;AACxC,MAAM,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Detection Types
3
+ *
4
+ * Types for bot detection and incognito detection functionality
5
+ */
6
+ /**
7
+ * Generic detection result
8
+ */
9
+ export interface DetectionResult {
10
+ detected: boolean;
11
+ confidence: number;
12
+ method: string;
13
+ details?: Record<string, any>;
14
+ }
15
+ /**
16
+ * Bot detection result
17
+ */
18
+ export interface BotDetectionResult {
19
+ isBot: boolean;
20
+ confidence: number;
21
+ riskLevel: 'low' | 'medium' | 'high';
22
+ detectionMethods: string[];
23
+ detectors?: BotDetectionMethods;
24
+ userAgent?: UserAgentAnalysis;
25
+ details?: {
26
+ userAgent?: string;
27
+ suspiciousPatterns?: string[];
28
+ timing?: Record<string, number>;
29
+ capabilities?: Record<string, boolean>;
30
+ };
31
+ }
32
+ /**
33
+ * Bot detection methods
34
+ */
35
+ export type BotDetectionMethodType = 'user_agent' | 'timing_analysis' | 'headless_detection' | 'automation_detection' | 'behavior_analysis';
36
+ /**
37
+ * Bot detection methods interface
38
+ */
39
+ export interface BotDetectionMethods {
40
+ [key: string]: DetectionResult;
41
+ }
42
+ /**
43
+ * Incognito detection result
44
+ */
45
+ export interface IncognitoDetectionResult {
46
+ isIncognito: boolean;
47
+ confidence: number;
48
+ detectionMethods: string[];
49
+ details?: {
50
+ localStorage?: boolean | null;
51
+ sessionStorage?: boolean | null;
52
+ indexedDB?: boolean | null;
53
+ cookiesEnabled?: boolean | null;
54
+ quota?: number | null;
55
+ permissions?: Record<string, any>;
56
+ };
57
+ }
58
+ /**
59
+ * Incognito detection methods
60
+ */
61
+ export type IncognitoDetectionMethodType = 'localStorage' | 'sessionStorage' | 'indexedDB' | 'cookies' | 'quota_management' | 'permissions' | 'filesystem' | 'cache_detection';
62
+ /**
63
+ * Incognito detection methods interface
64
+ */
65
+ export interface IncognitoDetectionMethods {
66
+ [key: string]: DetectionResult | any;
67
+ }
68
+ /**
69
+ * User agent analysis result
70
+ */
71
+ export interface UserAgentAnalysis {
72
+ browser: {
73
+ name: string;
74
+ version: string;
75
+ major: string;
76
+ engine: string;
77
+ };
78
+ os: {
79
+ name: string;
80
+ version: string;
81
+ family?: string;
82
+ };
83
+ device: {
84
+ type: string;
85
+ vendor?: string;
86
+ model?: string;
87
+ };
88
+ cpu?: {
89
+ architecture: string;
90
+ };
91
+ suspicious?: {
92
+ isBot: boolean;
93
+ patterns: string[];
94
+ category: string;
95
+ };
96
+ isMobile: boolean;
97
+ isTablet: boolean;
98
+ isDesktop: boolean;
99
+ isBot: boolean;
100
+ raw: string;
101
+ }
102
+ /**
103
+ * Detection configuration
104
+ */
105
+ export interface DetectionConfig {
106
+ timeout?: number;
107
+ enableAdvanced?: boolean;
108
+ methods?: string[];
109
+ thresholds?: {
110
+ botConfidence?: number;
111
+ incognitoConfidence?: number;
112
+ };
113
+ }
114
+ //# sourceMappingURL=detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../../src/types/detection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Event and Tracking Types
3
+ */
4
+ export interface BaseEventData {
5
+ eventType: string;
6
+ eventName?: string;
7
+ customData?: Record<string, any>;
8
+ }
9
+ export interface PageViewEvent extends BaseEventData {
10
+ eventType: 'page_view';
11
+ url?: string;
12
+ pageTitle?: string;
13
+ referrer?: string;
14
+ spaNavigation?: boolean;
15
+ navigationType?: 'manual' | 'spa' | 'direct';
16
+ }
17
+ export interface CustomEvent extends BaseEventData {
18
+ eventType: 'custom';
19
+ eventName: string;
20
+ metadata?: Record<string, any>;
21
+ }
22
+ export interface ConversionEvent extends BaseEventData {
23
+ eventType: 'conversion';
24
+ eventName: string;
25
+ revenue?: number;
26
+ currency?: string;
27
+ metadata?: Record<string, any>;
28
+ }
29
+ export interface EcommerceEvent extends BaseEventData {
30
+ eventType: 'purchase' | 'add_to_cart' | 'view_content' | 'initiate_checkout';
31
+ productId?: string;
32
+ productName?: string;
33
+ price?: number;
34
+ quantity?: number;
35
+ revenue?: number;
36
+ currency?: string;
37
+ orderId?: string;
38
+ }
39
+ export interface IdentifyEvent extends BaseEventData {
40
+ eventType: 'identify';
41
+ email?: string;
42
+ phone?: string;
43
+ userData?: Record<string, any>;
44
+ }
45
+ export type EventData = PageViewEvent | CustomEvent | ConversionEvent | EcommerceEvent | IdentifyEvent;
46
+ /**
47
+ * Internal event payload sent to server
48
+ */
49
+ export interface EventPayload {
50
+ eventId: string;
51
+ eventType: string;
52
+ eventName?: string;
53
+ sessionId: string;
54
+ userId?: string;
55
+ timestamp: string;
56
+ url: string;
57
+ referrer?: string;
58
+ pageTitle?: string;
59
+ utmSource?: string;
60
+ utmMedium?: string;
61
+ utmCampaign?: string;
62
+ utmContent?: string;
63
+ utmTerm?: string;
64
+ fbclid?: string;
65
+ gclid?: string;
66
+ ttclid?: string;
67
+ fbp?: string;
68
+ fbc?: string;
69
+ userAgent: string;
70
+ screenWidth: number;
71
+ screenHeight: number;
72
+ viewportWidth: number;
73
+ viewportHeight: number;
74
+ fingerprint?: string;
75
+ fingerprintComponents?: FingerprintComponents;
76
+ botDetection?: BotDetectionResult;
77
+ incognitoDetection?: IncognitoDetectionResult;
78
+ gdprMode: boolean;
79
+ enhancedMode: boolean;
80
+ customData?: Record<string, any>;
81
+ revenue?: number;
82
+ currency?: string;
83
+ productId?: string;
84
+ productName?: string;
85
+ quantity?: number;
86
+ orderId?: string;
87
+ }
88
+ /**
89
+ * Fingerprinting component results
90
+ */
91
+ export interface FingerprintComponents {
92
+ canvas?: string;
93
+ webgl?: {
94
+ vendor: string;
95
+ renderer: string;
96
+ version: string;
97
+ };
98
+ audio?: string;
99
+ fonts?: string[];
100
+ screen: {
101
+ width: number;
102
+ height: number;
103
+ colorDepth: number;
104
+ pixelRatio: number;
105
+ };
106
+ timezone: number;
107
+ language: string;
108
+ platform: string;
109
+ hardwareConcurrency?: number;
110
+ deviceMemory?: number;
111
+ }
112
+ /**
113
+ * Bot detection result
114
+ */
115
+ export interface BotDetectionResult {
116
+ isBot: boolean;
117
+ confidence: number;
118
+ detectors: {
119
+ webDriver: {
120
+ detected: boolean;
121
+ confidence: number;
122
+ };
123
+ headlessBrowser: {
124
+ detected: boolean;
125
+ confidence: number;
126
+ };
127
+ domBlockers: {
128
+ detected: boolean;
129
+ confidence: number;
130
+ };
131
+ canvasInconsistency: {
132
+ detected: boolean;
133
+ confidence: number;
134
+ };
135
+ webglAnomaly: {
136
+ detected: boolean;
137
+ confidence: number;
138
+ };
139
+ missingLanguages: {
140
+ detected: boolean;
141
+ confidence: number;
142
+ };
143
+ inconsistentEval: {
144
+ detected: boolean;
145
+ confidence: number;
146
+ };
147
+ automationTools: {
148
+ detected: boolean;
149
+ confidence: number;
150
+ };
151
+ };
152
+ userAgent?: {
153
+ suspicious: boolean;
154
+ patterns: string[];
155
+ };
156
+ }
157
+ /**
158
+ * Incognito mode detection result
159
+ */
160
+ export interface IncognitoDetectionResult {
161
+ isIncognito: boolean;
162
+ confidence: number;
163
+ detectionMethods: {
164
+ localStorage: boolean | null;
165
+ indexedDB: boolean | null;
166
+ sessionStorage: boolean | null;
167
+ openDatabase: boolean | null;
168
+ permissions: boolean | null;
169
+ quotaManagement: boolean | null;
170
+ filesystem: boolean | null;
171
+ cookiesEnabled: boolean | null;
172
+ };
173
+ }
174
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/types/events.ts"],"names":[],"mappings":"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"}