@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,157 @@
1
+ /**
2
+ * Fingerprinting Types
3
+ * Based on FingerprintJS architecture with privacy-first approach
4
+ */
5
+ /**
6
+ * Individual fingerprint component
7
+ */
8
+ export interface FingerprintComponent<T = any> {
9
+ value: T;
10
+ duration?: number;
11
+ error?: string;
12
+ }
13
+ /**
14
+ * Canvas fingerprinting result
15
+ */
16
+ export interface CanvasFingerprint {
17
+ text: string;
18
+ geometry: string;
19
+ winding: boolean;
20
+ isInconsistent?: boolean;
21
+ }
22
+ /**
23
+ * WebGL fingerprinting result
24
+ */
25
+ export interface WebGLFingerprint {
26
+ vendor: string;
27
+ renderer: string;
28
+ version: string;
29
+ extensions: string[];
30
+ parameters: Record<string, any>;
31
+ shaderPrecision: {
32
+ vertex: string;
33
+ fragment: string;
34
+ };
35
+ }
36
+ /**
37
+ * Audio fingerprinting result
38
+ */
39
+ export interface AudioFingerprint {
40
+ oscillator: string;
41
+ compressor: string;
42
+ sampleRate: number;
43
+ maxChannelCount: number;
44
+ }
45
+ /**
46
+ * Font detection result
47
+ */
48
+ export interface FontFingerprint {
49
+ available: string[];
50
+ method: "basic" | "advanced";
51
+ measurements?: Record<string, {
52
+ width: number;
53
+ height: number;
54
+ }>;
55
+ }
56
+ /**
57
+ * Screen and viewport information
58
+ */
59
+ export interface ScreenFingerprint {
60
+ width: number;
61
+ height: number;
62
+ colorDepth: number;
63
+ pixelRatio: number;
64
+ viewportWidth: number;
65
+ viewportHeight: number;
66
+ availableWidth: number;
67
+ availableHeight: number;
68
+ orientation?: {
69
+ angle: number;
70
+ type: string;
71
+ };
72
+ }
73
+ /**
74
+ * Browser and system information
75
+ */
76
+ export interface BrowserFingerprint {
77
+ language: string;
78
+ languages: string[];
79
+ timezone: string;
80
+ timezoneOffset: number;
81
+ platform: string;
82
+ userAgent: string;
83
+ hardwareConcurrency: number;
84
+ deviceMemory?: number;
85
+ cookieEnabled: boolean;
86
+ doNotTrack: string | null;
87
+ plugins: {
88
+ length: number;
89
+ names: string[];
90
+ };
91
+ touchSupport: {
92
+ maxTouchPoints: number;
93
+ touchEvent: boolean;
94
+ touchStart: boolean;
95
+ };
96
+ }
97
+ /**
98
+ * Complete fingerprint data
99
+ */
100
+ export interface FingerprintData {
101
+ canvas?: FingerprintComponent<CanvasFingerprint>;
102
+ webgl?: FingerprintComponent<WebGLFingerprint>;
103
+ audio?: FingerprintComponent<AudioFingerprint>;
104
+ fonts?: FingerprintComponent<FontFingerprint>;
105
+ screen: FingerprintComponent<ScreenFingerprint>;
106
+ browser: FingerprintComponent<BrowserFingerprint>;
107
+ incognitoDetection?: {
108
+ isIncognito: boolean;
109
+ confidence: number;
110
+ detectionMethods: string[];
111
+ detectionTimestamp?: number;
112
+ sdkVersion?: string;
113
+ details?: {
114
+ localStorage?: boolean;
115
+ sessionStorage?: boolean;
116
+ indexedDB?: boolean;
117
+ cookiesEnabled?: boolean;
118
+ quota?: number | null;
119
+ permissions?: any;
120
+ };
121
+ };
122
+ hash: string;
123
+ stableCoreHash: string;
124
+ stableCoreVector?: Record<string, any>;
125
+ collectionTime: number;
126
+ gdprMode: boolean;
127
+ components: string[];
128
+ }
129
+ /**
130
+ * Fingerprint collection options
131
+ */
132
+ export interface FingerprintOptions {
133
+ gdprMode?: boolean;
134
+ includeInvasive?: boolean;
135
+ timeout?: number;
136
+ debug?: boolean;
137
+ excludeComponents?: FingerprintComponentType[];
138
+ }
139
+ /**
140
+ * Available fingerprint component types
141
+ */
142
+ export type FingerprintComponentType = "canvas" | "webgl" | "audio" | "fonts" | "screen" | "browser" | "incognito" | "hardware" | "system" | "storage" | "math" | "domBlockers" | "accessibility" | "browserApis" | "pluginsEnhanced" | "fontPreferences" | "dateTimeLocale" | "enhancedFonts" | "mathFingerprint" | "accessibilityEnhanced";
143
+ /**
144
+ * Fingerprint collection result
145
+ */
146
+ export interface FingerprintResult {
147
+ success: boolean;
148
+ data?: FingerprintData;
149
+ error?: string;
150
+ collectedComponents: FingerprintComponentType[];
151
+ failedComponents: {
152
+ component: FingerprintComponentType;
153
+ error: string;
154
+ }[];
155
+ confidence?: any;
156
+ }
157
+ //# sourceMappingURL=fingerprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../../../src/types/fingerprint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Export all TypeScript types for the SDK
3
+ */
4
+ import { InternalConfig, SDKConfig } from "./config";
5
+ import { PageViewEvent } from "./events";
6
+ import type { ConversionLikelihoodResponse, IdentifyParams, TrackAddToCartParams, TrackInitiateCheckoutParams, TrackPurchaseParams, TrackViewContentParams, UserSegmentResponse } from "./methods";
7
+ import type { UserData, VisitorInfo } from "./visitor";
8
+ export type { UserData, VisitHistoryEntry, VisitorHistory, VisitorInfo, } from "./visitor";
9
+ export type { ConversionLikelihoodResponse, IdentifyParams, TrackAddToCartParams, TrackConversionParams, TrackCustomEventParams, TrackInitiateCheckoutParams, TrackPurchaseParams, TrackViewContentParams, UserSegmentResponse, } from "./methods";
10
+ export type { ConfigKey, InternalConfig, InternalConfigKey, SDKConfig, } from "./config";
11
+ export type { BaseEventData, ConversionEvent, CustomEvent, EcommerceEvent, BotDetectionResult as EventBotDetectionResult, EventData, IncognitoDetectionResult as EventIncognitoDetectionResult, EventPayload, FingerprintComponents, IdentifyEvent, PageViewEvent, } from "./events";
12
+ export type { AudioFingerprint, BrowserFingerprint, CanvasFingerprint, FingerprintComponent, FingerprintComponentType, FingerprintData, FingerprintOptions, FingerprintResult, FontFingerprint, ScreenFingerprint, WebGLFingerprint, } from "./fingerprint";
13
+ export interface BotDetectionResult {
14
+ isBot: boolean;
15
+ confidence: number;
16
+ riskLevel: "low" | "medium" | "high";
17
+ }
18
+ export interface IncognitoDetectionResult {
19
+ isIncognito: boolean;
20
+ confidence: number;
21
+ detectionMethods: string[];
22
+ }
23
+ export interface UserAgentAnalysis {
24
+ browser: string;
25
+ version: string;
26
+ engine: string;
27
+ os: string;
28
+ device: string;
29
+ }
30
+ /**
31
+ * Main SDK interface
32
+ */
33
+ export interface ZaplierSDK {
34
+ track(eventType: string, eventData?: Record<string, any>): void;
35
+ trackCustomEvent(eventName: string, metadata?: Record<string, any>): boolean;
36
+ trackConversion(eventName: string, value?: number, currency?: string, metadata?: Record<string, any>): boolean;
37
+ trackPageView(data?: Partial<PageViewEvent>): void;
38
+ trackPurchase(data: TrackPurchaseParams): void;
39
+ trackAddToCart(data?: TrackAddToCartParams): void;
40
+ trackViewContent(data?: TrackViewContentParams): void;
41
+ trackInitiateCheckout(data?: TrackInitiateCheckoutParams): void;
42
+ trackLead(data?: Record<string, any>): void;
43
+ identify(userData: IdentifyParams): void;
44
+ trackSPANavigation(url?: string, title?: string): void;
45
+ resetScrollTracking(): void;
46
+ startPresenceTracking(): void;
47
+ stopPresenceTracking(): void;
48
+ heatmap: {
49
+ enable(): void;
50
+ disable(): void;
51
+ };
52
+ replay: {
53
+ enable(): void;
54
+ disable(): void;
55
+ addFunnelStep(stepData: Record<string, any>): void;
56
+ markConversion(data: Record<string, any>): void;
57
+ };
58
+ enableEnhancedTracking(): boolean;
59
+ disableEnhancedTracking(): void;
60
+ isEnhancedMode(): boolean;
61
+ getVisitorId(): string | null;
62
+ getVisitorInfo(): Promise<VisitorInfo | null>;
63
+ getVisitorHistory(): Promise<import("./visitor").VisitorHistory | null>;
64
+ getUserData(): UserData;
65
+ getConversionLikelihood(): ConversionLikelihoodResponse;
66
+ getUserSegment(): UserSegmentResponse;
67
+ config: InternalConfig;
68
+ version: string;
69
+ }
70
+ /**
71
+ * Global window interface extension
72
+ */
73
+ declare global {
74
+ interface Window {
75
+ Zaplier?: ZaplierSDK;
76
+ zaplier?: ZaplierSDK;
77
+ stalker?: {
78
+ config?: Partial<SDKConfig>;
79
+ q?: any[][];
80
+ } & ZaplierSDK;
81
+ }
82
+ }
83
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Method parameter types for SDK calls
3
+ */
4
+ /**
5
+ * Parameters for trackPurchase()
6
+ */
7
+ export interface TrackPurchaseParams {
8
+ value?: number;
9
+ revenue?: number;
10
+ currency?: string;
11
+ quantity?: number;
12
+ productId?: string;
13
+ productName?: string;
14
+ orderId?: string;
15
+ customData?: Record<string, any>;
16
+ }
17
+ /**
18
+ * Parameters for trackAddToCart()
19
+ */
20
+ export interface TrackAddToCartParams {
21
+ productId?: string;
22
+ productName?: string;
23
+ price?: number;
24
+ quantity?: number;
25
+ customData?: Record<string, any>;
26
+ }
27
+ /**
28
+ * Parameters for trackViewContent()
29
+ */
30
+ export interface TrackViewContentParams {
31
+ productId?: string;
32
+ productName?: string;
33
+ category?: string;
34
+ customData?: Record<string, any>;
35
+ }
36
+ /**
37
+ * Parameters for trackInitiateCheckout()
38
+ */
39
+ export interface TrackInitiateCheckoutParams {
40
+ value?: number;
41
+ currency?: string;
42
+ numItems?: number;
43
+ customData?: Record<string, any>;
44
+ }
45
+ /**
46
+ * Parameters for trackConversion()
47
+ */
48
+ export interface TrackConversionParams {
49
+ eventName: string;
50
+ value?: number;
51
+ currency?: string;
52
+ metadata?: Record<string, any>;
53
+ }
54
+ /**
55
+ * Parameters for identify()
56
+ */
57
+ export interface IdentifyParams {
58
+ email?: string;
59
+ phone?: string;
60
+ [key: string]: any;
61
+ }
62
+ /**
63
+ * Parameters for trackCustomEvent()
64
+ */
65
+ export interface TrackCustomEventParams {
66
+ eventName: string;
67
+ metadata?: Record<string, any>;
68
+ }
69
+ /**
70
+ * Response from trackConversion()
71
+ */
72
+ export interface ConversionLikelihoodResponse {
73
+ score: number;
74
+ factors: string[];
75
+ }
76
+ /**
77
+ * Response from getUserSegment()
78
+ */
79
+ export interface UserSegmentResponse {
80
+ type: "high_intent" | "medium_intent" | "exploring";
81
+ confidence: number;
82
+ }
83
+ //# sourceMappingURL=methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../../src/types/methods.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,aAAa,GAAG,eAAe,GAAG,WAAW,CAAC;IACpD,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Visitor-related types for SDK responses
3
+ */
4
+ /**
5
+ * Visitor information returned by getVisitorInfo()
6
+ */
7
+ export interface VisitorInfo {
8
+ visitorId: string;
9
+ workspaceId: string;
10
+ location: {
11
+ country?: string;
12
+ countryCode?: string;
13
+ city?: string;
14
+ };
15
+ device: {
16
+ browser?: string;
17
+ os?: string;
18
+ deviceType?: string;
19
+ userAgent?: string;
20
+ };
21
+ stats: {
22
+ visitCount: number;
23
+ firstSeenAt: string;
24
+ lastSeenAt: string;
25
+ identificationScore?: number;
26
+ };
27
+ signals?: {
28
+ smartSignals?: any;
29
+ tlsFingerprint?: string | null;
30
+ cookieFingerprint?: string | null;
31
+ };
32
+ }
33
+ /**
34
+ * Visit history entry
35
+ */
36
+ export interface VisitHistoryEntry {
37
+ id: string;
38
+ timestamp: string;
39
+ location: string | null;
40
+ country?: string | null;
41
+ countryCode?: string | null;
42
+ city?: string | null;
43
+ ip: string | null;
44
+ browser: string | null;
45
+ os: string | null;
46
+ deviceType: string | null;
47
+ isIncognito: boolean;
48
+ vpnDetected: boolean;
49
+ suspectScore: number;
50
+ }
51
+ /**
52
+ * Visitor history response
53
+ */
54
+ export interface VisitorHistory {
55
+ visitorId: string;
56
+ visits: VisitHistoryEntry[];
57
+ summary: {
58
+ totalVisits: number;
59
+ uniqueIPs: number;
60
+ uniqueLocations: number;
61
+ incognitoSessions: number;
62
+ };
63
+ }
64
+ /**
65
+ * User data returned by getUserData()
66
+ */
67
+ export interface UserData {
68
+ sessionId: string;
69
+ visitorId?: string;
70
+ userId?: string;
71
+ location: {
72
+ city?: string;
73
+ country?: string;
74
+ coordinates?: {
75
+ lat: number;
76
+ lng: number;
77
+ };
78
+ };
79
+ device: {
80
+ userAgent: string;
81
+ language: string;
82
+ screen: {
83
+ width: number;
84
+ height: number;
85
+ };
86
+ };
87
+ journey: any[];
88
+ fingerprint?: string;
89
+ }
90
+ //# sourceMappingURL=visitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../../../src/types/visitor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,GAAG,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5C,CAAC;IACF,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C,CAAC;IACF,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Browser Detection Utilities
3
+ * Based on FingerprintJS browser detection patterns
4
+ * Uses feature detection instead of user-agent parsing for reliability
5
+ */
6
+ /**
7
+ * Detects if the browser is WebKit-based (Safari, mobile Safari)
8
+ */
9
+ export declare function isWebKit(): boolean;
10
+ /**
11
+ * Detects if the browser is running on Android
12
+ */
13
+ export declare function isAndroid(): boolean;
14
+ /**
15
+ * Detects if the browser is Chrome/Chromium-based
16
+ */
17
+ export declare function isChrome(): boolean;
18
+ /**
19
+ * Detects if the browser is Firefox
20
+ */
21
+ export declare function isFirefox(): boolean;
22
+ /**
23
+ * Detects if the browser is Edge (legacy or Chromium)
24
+ */
25
+ export declare function isEdge(): boolean;
26
+ /**
27
+ * Detects if the browser is Safari (not just WebKit)
28
+ */
29
+ export declare function isSafari(): boolean;
30
+ /**
31
+ * Detects if the browser supports specific APIs safely
32
+ */
33
+ export declare function supportsAPI(apiName: string): boolean;
34
+ /**
35
+ * Detects if the browser is in a secure context
36
+ */
37
+ export declare function isSecureContext(): boolean;
38
+ /**
39
+ * Detects if the browser is likely in private/incognito mode
40
+ * This is a best-effort detection and not 100% reliable
41
+ */
42
+ export declare function isLikelyPrivateMode(): boolean;
43
+ /**
44
+ * Gets browser engine name for debugging
45
+ */
46
+ export declare function getBrowserEngine(): string;
47
+ /**
48
+ * Checks if the current environment supports DOM manipulation
49
+ */
50
+ export declare function supportsDOMManipulation(): boolean;
51
+ /**
52
+ * Checks if the current environment supports media queries
53
+ */
54
+ export declare function supportsMediaQueries(): boolean;
55
+ /**
56
+ * Checks if WebGL is likely to be available and stable
57
+ */
58
+ export declare function supportsWebGL(): boolean;
59
+ /**
60
+ * Checks if audio context is available and not suspended
61
+ */
62
+ export declare function supportsAudioContext(): boolean;
63
+ /**
64
+ * Comprehensive browser capability check
65
+ */
66
+ export interface BrowserCapabilities {
67
+ engine: string;
68
+ supportsDOM: boolean;
69
+ supportsMediaQueries: boolean;
70
+ supportsWebGL: boolean;
71
+ supportsAudio: boolean;
72
+ isSecure: boolean;
73
+ isPrivateMode: boolean;
74
+ canRunDOMBlockers: boolean;
75
+ canRunAccessibility: boolean;
76
+ canRunBrowserAPIs: boolean;
77
+ }
78
+ export declare function getBrowserCapabilities(): BrowserCapabilities;
79
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/utils/browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAWlC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAUnC;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CASlC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAWnC;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,OAAO,CAUhC;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAYlC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAgBpD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAMzC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAmB7C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAUjD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAS9C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAgBvC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAU9C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,CAmB5D"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Lazy Loading Utility
3
+ * Based on FingerprintJS lazy evaluation patterns
4
+ * Defers expensive operations until needed
5
+ */
6
+ type LazyFunction<T> = () => Promise<T> | T;
7
+ /**
8
+ * Creates a lazy-loaded function that caches results
9
+ */
10
+ export declare function createLazy<T>(key: string, loader: LazyFunction<T>, options?: {
11
+ timeout?: number;
12
+ maxAge?: number;
13
+ }): () => Promise<T>;
14
+ /**
15
+ * Creates a lazy loader with browser capability checks
16
+ */
17
+ export declare function createConditionalLazy<T>(key: string, loader: LazyFunction<T>, condition: () => boolean, fallback: T, options?: {
18
+ timeout?: number;
19
+ maxAge?: number;
20
+ }): () => Promise<T>;
21
+ /**
22
+ * Creates a lazy loader that breaks up work to avoid blocking
23
+ */
24
+ export declare function createInterruptibleLazy<T>(key: string, loader: LazyFunction<T>, options?: {
25
+ timeout?: number;
26
+ maxAge?: number;
27
+ breakInterval?: number;
28
+ }): () => Promise<T>;
29
+ /**
30
+ * Preloads a lazy function without waiting for the result
31
+ */
32
+ export declare function preload<T>(lazyFn: () => Promise<T>): void;
33
+ /**
34
+ * Clears the lazy cache for a specific key or all keys
35
+ */
36
+ export declare function clearLazyCache(key?: string): void;
37
+ /**
38
+ * Gets cache statistics for debugging
39
+ */
40
+ export declare function getLazyCacheStats(): {
41
+ size: number;
42
+ loaded: number;
43
+ loading: number;
44
+ errors: number;
45
+ };
46
+ /**
47
+ * Utility to run multiple lazy functions in parallel
48
+ */
49
+ export declare function loadInParallel<T extends Record<string, () => Promise<any>>>(loaders: T): Promise<{
50
+ [K in keyof T]: Awaited<ReturnType<T[K]>>;
51
+ }>;
52
+ /**
53
+ * Creates a debounced lazy loader to prevent rapid successive calls
54
+ */
55
+ export declare function createDebouncedLazy<T>(key: string, loader: LazyFunction<T>, debounceMs?: number, options?: {
56
+ timeout?: number;
57
+ maxAge?: number;
58
+ }): () => Promise<T>;
59
+ export {};
60
+ //# sourceMappingURL=lazy-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-loader.d.ts","sourceRoot":"","sources":["../../../src/utils/lazy-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,KAAK,YAAY,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAa5C;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,MAAM,OAAO,CAAC,CAAC,CAAC,CAiElB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,SAAS,EAAE,MAAM,OAAO,EACxB,QAAQ,EAAE,CAAC,EACX,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,MAAM,OAAO,CAAC,CAAC,CAAC,CAWlB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,MAAM,OAAO,CAAC,CAAC,CAAC,CAYlB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAIzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAMjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAiBA;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,EAC/E,OAAO,EAAE,CAAC,GACT,OAAO,CAAC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,CAwBxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,UAAU,GAAE,MAAY,EACxB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,MAAM,OAAO,CAAC,CAAC,CAAC,CAelB"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * WebGL Context Caching Utility
3
+ * Based on FingerprintJS WebGL optimization patterns
4
+ * Prevents expensive WebGL context recreation
5
+ */
6
+ /**
7
+ * Gets or creates a cached WebGL context with intelligent reuse
8
+ */
9
+ export declare function getCachedWebGLContext(): WebGLRenderingContext | null;
10
+ /**
11
+ * Invalidates the WebGL cache with proper cleanup and monitoring
12
+ */
13
+ export declare function invalidateWebGLCache(): void;
14
+ /**
15
+ * Checks if WebGL context is still valid
16
+ */
17
+ export declare function isWebGLContextValid(): boolean;
18
+ /**
19
+ * Gets WebGL extensions with caching
20
+ */
21
+ export declare function getCachedWebGLExtensions(): string[];
22
+ /**
23
+ * Gets WebGL parameters with caching
24
+ */
25
+ export declare function getCachedWebGLParameters(): Record<string, any>;
26
+ /**
27
+ * Get WebGL cache monitoring statistics
28
+ */
29
+ export declare function getWebGLCacheStats(): {
30
+ activeContexts: number;
31
+ totalCreated: number;
32
+ cacheHits: number;
33
+ lastUsed: number | null;
34
+ };
35
+ /**
36
+ * Force cleanup all WebGL resources
37
+ */
38
+ export declare function forceCleanupWebGL(): void;
39
+ /**
40
+ * Cleanup function to be called on page unload with better error handling
41
+ */
42
+ export declare function cleanupWebGLCache(): void;
43
+ //# sourceMappingURL=webgl-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-cache.d.ts","sourceRoot":"","sources":["../../../src/utils/webgl-cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwBH;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,qBAAqB,GAAG,IAAI,CA4DpE;AAiDD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CA+B3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAW7C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAYnD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAuC9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAOA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAUxC"}