@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.
- package/LICENSE +21 -0
- package/README.md +144 -0
- package/dist/index.cjs +11092 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +1204 -0
- package/dist/index.esm.js +11059 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +3517 -0
- package/dist/index.js.map +1 -0
- package/dist/sdk.js +11098 -0
- package/dist/sdk.js.map +1 -0
- package/dist/sdk.min.js +7 -0
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/modules/anti-adblock.d.ts +108 -0
- package/dist/src/modules/anti-adblock.d.ts.map +1 -0
- package/dist/src/modules/bot-detection.d.ts +15 -0
- package/dist/src/modules/bot-detection.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/accessibility.d.ts +155 -0
- package/dist/src/modules/fingerprint/accessibility.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/audio.d.ts +16 -0
- package/dist/src/modules/fingerprint/audio.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/browser-apis.d.ts +108 -0
- package/dist/src/modules/fingerprint/browser-apis.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/browser.d.ts +14 -0
- package/dist/src/modules/fingerprint/browser.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/canvas.d.ts +14 -0
- package/dist/src/modules/fingerprint/canvas.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/confidence.d.ts +89 -0
- package/dist/src/modules/fingerprint/confidence.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/datetime-locale.d.ts +76 -0
- package/dist/src/modules/fingerprint/datetime-locale.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/device-signals.d.ts +29 -0
- package/dist/src/modules/fingerprint/device-signals.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/dom-blockers.d.ts +56 -0
- package/dist/src/modules/fingerprint/dom-blockers.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/font-preferences.d.ts +55 -0
- package/dist/src/modules/fingerprint/font-preferences.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/fonts-enhanced.d.ts +43 -0
- package/dist/src/modules/fingerprint/fonts-enhanced.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/fonts.d.ts +14 -0
- package/dist/src/modules/fingerprint/fonts.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/hardware.d.ts +40 -0
- package/dist/src/modules/fingerprint/hardware.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/hashing.d.ts +28 -0
- package/dist/src/modules/fingerprint/hashing.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/incognito.d.ts +6 -0
- package/dist/src/modules/fingerprint/incognito.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/math-enhanced.d.ts +70 -0
- package/dist/src/modules/fingerprint/math-enhanced.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/math.d.ts +32 -0
- package/dist/src/modules/fingerprint/math.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/plugins-enhanced.d.ts +97 -0
- package/dist/src/modules/fingerprint/plugins-enhanced.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/screen.d.ts +15 -0
- package/dist/src/modules/fingerprint/screen.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/storage.d.ts +45 -0
- package/dist/src/modules/fingerprint/storage.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/system.d.ts +40 -0
- package/dist/src/modules/fingerprint/system.d.ts.map +1 -0
- package/dist/src/modules/fingerprint/webgl.d.ts +15 -0
- package/dist/src/modules/fingerprint/webgl.d.ts.map +1 -0
- package/dist/src/modules/fingerprint.d.ts +35 -0
- package/dist/src/modules/fingerprint.d.ts.map +1 -0
- package/dist/src/modules/global-interface.d.ts +141 -0
- package/dist/src/modules/global-interface.d.ts.map +1 -0
- package/dist/src/modules/heatmap.d.ts +140 -0
- package/dist/src/modules/heatmap.d.ts.map +1 -0
- package/dist/src/modules/incognito-detection.d.ts +23 -0
- package/dist/src/modules/incognito-detection.d.ts.map +1 -0
- package/dist/src/modules/session-replay.d.ts +132 -0
- package/dist/src/modules/session-replay.d.ts.map +1 -0
- package/dist/src/modules/user-agent.d.ts +35 -0
- package/dist/src/modules/user-agent.d.ts.map +1 -0
- package/dist/src/sdk.d.ts +227 -0
- package/dist/src/sdk.d.ts.map +1 -0
- package/dist/src/types/config.d.ts +44 -0
- package/dist/src/types/config.d.ts.map +1 -0
- package/dist/src/types/detection.d.ts +114 -0
- package/dist/src/types/detection.d.ts.map +1 -0
- package/dist/src/types/events.d.ts +174 -0
- package/dist/src/types/events.d.ts.map +1 -0
- package/dist/src/types/fingerprint.d.ts +157 -0
- package/dist/src/types/fingerprint.d.ts.map +1 -0
- package/dist/src/types/index.d.ts +83 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/methods.d.ts +83 -0
- package/dist/src/types/methods.d.ts.map +1 -0
- package/dist/src/types/visitor.d.ts +90 -0
- package/dist/src/types/visitor.d.ts.map +1 -0
- package/dist/src/utils/browser.d.ts +79 -0
- package/dist/src/utils/browser.d.ts.map +1 -0
- package/dist/src/utils/lazy-loader.d.ts +60 -0
- package/dist/src/utils/lazy-loader.d.ts.map +1 -0
- package/dist/src/utils/webgl-cache.d.ts +43 -0
- package/dist/src/utils/webgl-cache.d.ts.map +1 -0
- 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":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG;IAC3C,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IAEjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEhC,eAAe,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAE/B,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC;IAE7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAEhC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAGnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IAGvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IAGxB,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IAGpB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IAGvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAGlB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAG1B,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IAGF,YAAY,EAAE;QACZ,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,MAAM,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IACjD,KAAK,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAC9C,MAAM,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAChD,OAAO,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAGlD,kBAAkB,CAAC,EAAE;QACnB,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE;YACR,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,SAAS,CAAC,EAAE,OAAO,CAAC;YACpB,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACtB,WAAW,CAAC,EAAE,GAAG,CAAC;SACnB,CAAC;KACH,CAAC;IAGF,IAAI,EAAE,MAAM,CAAC;IAEb,cAAc,EAAE,MAAM,CAAC;IAEvB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAGvC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAG1B,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB,iBAAiB,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAChC,QAAQ,GACR,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,SAAS,GACT,WAAW,GACX,UAAU,GACV,QAAQ,GACR,SAAS,GACT,MAAM,GACN,aAAa,GACb,eAAe,GACf,aAAa,GACb,iBAAiB,GAEjB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,uBAAuB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,wBAAwB,EAAE,CAAC;IAChD,gBAAgB,EAAE;QAAE,SAAS,EAAE,wBAAwB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3E,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB"}
|
|
@@ -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"}
|