@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,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced Accessibility & Media Queries Detection Module
|
|
3
|
+
* Based on FingerprintJS accessibility and preference detection with additional queries
|
|
4
|
+
*
|
|
5
|
+
* Detects comprehensive user accessibility preferences and display capabilities:
|
|
6
|
+
* - Motion preferences (reduced motion, prefers animation)
|
|
7
|
+
* - Color preferences (contrast, inverted colors, forced colors)
|
|
8
|
+
* - Display capabilities (color gamut, HDR, monochrome)
|
|
9
|
+
* - Transparency and visual effects preferences
|
|
10
|
+
* - System-level accessibility settings
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Error types for accessibility detection
|
|
14
|
+
*/
|
|
15
|
+
export declare const enum AccessibilityError {
|
|
16
|
+
NotSupported = "NOT_SUPPORTED",
|
|
17
|
+
MediaQueriesUnavailable = "MEDIA_QUERIES_UNAVAILABLE",
|
|
18
|
+
BrowserIncompatible = "BROWSER_INCOMPATIBLE"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Color Gamut Detection
|
|
22
|
+
* Detects the range of colors that the display can show
|
|
23
|
+
*/
|
|
24
|
+
export type ColorGamut = 'srgb' | 'p3' | 'rec2020' | 'unknown';
|
|
25
|
+
export declare function getColorGamut(): ColorGamut;
|
|
26
|
+
/**
|
|
27
|
+
* Forced Colors Detection
|
|
28
|
+
* Detects if the user has enabled high contrast mode
|
|
29
|
+
*/
|
|
30
|
+
export declare function getForcedColors(): boolean | null;
|
|
31
|
+
/**
|
|
32
|
+
* Contrast Preference Detection
|
|
33
|
+
* Detects user's contrast preference
|
|
34
|
+
*/
|
|
35
|
+
export type ContrastPreference = 'no-preference' | 'more' | 'less' | 'forced' | 'unknown';
|
|
36
|
+
export declare function getContrastPreference(): ContrastPreference;
|
|
37
|
+
/**
|
|
38
|
+
* Reduced Motion Detection
|
|
39
|
+
* Detects if user prefers reduced motion (accessibility feature)
|
|
40
|
+
*/
|
|
41
|
+
export declare function getReducedMotion(): boolean | null;
|
|
42
|
+
/**
|
|
43
|
+
* Reduced Transparency Detection
|
|
44
|
+
* Detects if user prefers reduced transparency
|
|
45
|
+
*/
|
|
46
|
+
export declare function getReducedTransparency(): boolean | null;
|
|
47
|
+
/**
|
|
48
|
+
* Monochrome Detection
|
|
49
|
+
* Detects monochrome displays and their bit depth
|
|
50
|
+
*/
|
|
51
|
+
export declare function getMonochromeDepth(): number;
|
|
52
|
+
/**
|
|
53
|
+
* Inverted Colors Detection
|
|
54
|
+
* Detects if the user has inverted colors enabled
|
|
55
|
+
*/
|
|
56
|
+
export declare function getInvertedColors(): boolean | null;
|
|
57
|
+
/**
|
|
58
|
+
* HDR Support Detection
|
|
59
|
+
* Detects High Dynamic Range display support
|
|
60
|
+
*/
|
|
61
|
+
export declare function getHDRSupport(): boolean | null;
|
|
62
|
+
/**
|
|
63
|
+
* Color Depth Detection
|
|
64
|
+
* Enhanced color depth detection with more granular values
|
|
65
|
+
*/
|
|
66
|
+
export declare function getEnhancedColorDepth(): number;
|
|
67
|
+
/**
|
|
68
|
+
* Hover Capability Detection
|
|
69
|
+
* Detects if the primary input mechanism can hover
|
|
70
|
+
*/
|
|
71
|
+
export type HoverCapability = 'none' | 'hover' | 'unknown';
|
|
72
|
+
export declare function getHoverCapability(): HoverCapability;
|
|
73
|
+
/**
|
|
74
|
+
* Pointer Capability Detection
|
|
75
|
+
* Detects the accuracy of the primary input mechanism
|
|
76
|
+
*/
|
|
77
|
+
export type PointerCapability = 'none' | 'coarse' | 'fine' | 'unknown';
|
|
78
|
+
export declare function getPointerCapability(): PointerCapability;
|
|
79
|
+
/**
|
|
80
|
+
* Check if accessibility detection is available
|
|
81
|
+
* Enhanced with browser compatibility checks
|
|
82
|
+
*/
|
|
83
|
+
export declare function isAccessibilityDetectionAvailable(): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Additional accessibility media queries from FingerprintJS
|
|
86
|
+
*/
|
|
87
|
+
/**
|
|
88
|
+
* Reduced Data Mode Detection
|
|
89
|
+
* Detects if user has enabled data saving mode
|
|
90
|
+
*/
|
|
91
|
+
export declare function getReducedData(): boolean | null;
|
|
92
|
+
/**
|
|
93
|
+
* Display Mode Detection
|
|
94
|
+
* Detects if the application is running in a standalone display mode
|
|
95
|
+
*/
|
|
96
|
+
export type DisplayMode = 'browser' | 'minimal-ui' | 'standalone' | 'fullscreen' | 'unknown';
|
|
97
|
+
export declare function getDisplayMode(): DisplayMode;
|
|
98
|
+
/**
|
|
99
|
+
* Environment Blending Detection
|
|
100
|
+
* Detects how the display is integrated with the environment
|
|
101
|
+
*/
|
|
102
|
+
export type EnvironmentBlending = 'opaque' | 'additive' | 'subtractive' | 'unknown';
|
|
103
|
+
export declare function getEnvironmentBlending(): EnvironmentBlending;
|
|
104
|
+
/**
|
|
105
|
+
* Any Hover Capability Detection
|
|
106
|
+
* Detects if any available input mechanism can hover
|
|
107
|
+
*/
|
|
108
|
+
export declare function getAnyHover(): boolean | null;
|
|
109
|
+
/**
|
|
110
|
+
* Any Pointer Capability Detection
|
|
111
|
+
* Detects the accuracy of any available input mechanism
|
|
112
|
+
*/
|
|
113
|
+
export declare function getAnyPointer(): PointerCapability;
|
|
114
|
+
/**
|
|
115
|
+
* Color Scheme Preference Detection
|
|
116
|
+
* Detects user's preferred color scheme (light/dark mode)
|
|
117
|
+
*/
|
|
118
|
+
export type ColorScheme = 'light' | 'dark' | 'no-preference' | 'unknown';
|
|
119
|
+
export declare function getColorScheme(): ColorScheme;
|
|
120
|
+
/**
|
|
121
|
+
* Complete accessibility fingerprint
|
|
122
|
+
*/
|
|
123
|
+
export interface AccessibilityFingerprint {
|
|
124
|
+
colorGamut: ColorGamut;
|
|
125
|
+
forcedColors: boolean | null;
|
|
126
|
+
contrastPreference: ContrastPreference;
|
|
127
|
+
reducedMotion: boolean | null;
|
|
128
|
+
reducedTransparency: boolean | null;
|
|
129
|
+
monochromeDepth: number;
|
|
130
|
+
invertedColors: boolean | null;
|
|
131
|
+
hdrSupport: boolean | null;
|
|
132
|
+
enhancedColorDepth: number;
|
|
133
|
+
hoverCapability: HoverCapability;
|
|
134
|
+
pointerCapability: PointerCapability;
|
|
135
|
+
reducedData: boolean | null;
|
|
136
|
+
displayMode: DisplayMode;
|
|
137
|
+
environmentBlending: EnvironmentBlending;
|
|
138
|
+
anyHover: boolean | null;
|
|
139
|
+
anyPointer: PointerCapability;
|
|
140
|
+
colorScheme: ColorScheme;
|
|
141
|
+
hasAccessibilityFeatures: boolean;
|
|
142
|
+
displayCapabilities: string;
|
|
143
|
+
interactionCapabilities: string;
|
|
144
|
+
}
|
|
145
|
+
export declare function getAccessibilityFingerprint(): AccessibilityFingerprint;
|
|
146
|
+
/**
|
|
147
|
+
* Analyze accessibility fingerprint for confidence and uniqueness
|
|
148
|
+
*/
|
|
149
|
+
export declare function analyzeAccessibilityFingerprint(fingerprint: AccessibilityFingerprint): {
|
|
150
|
+
confidence: number;
|
|
151
|
+
uniqueness: number;
|
|
152
|
+
accessibilityScore: number;
|
|
153
|
+
modernBrowserScore: number;
|
|
154
|
+
};
|
|
155
|
+
//# sourceMappingURL=accessibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../../../src/modules/fingerprint/accessibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio Fingerprinting
|
|
3
|
+
* Based on FingerprintJS audio component using AudioContext
|
|
4
|
+
*/
|
|
5
|
+
import type { AudioFingerprint, FingerprintComponent } from "../../types/fingerprint";
|
|
6
|
+
/**
|
|
7
|
+
* Generate audio fingerprint using OfflineAudioContext (no user gesture required)
|
|
8
|
+
* This is the recommended approach for fingerprinting - no audio output, no user interaction needed
|
|
9
|
+
*/
|
|
10
|
+
export declare function getAudioFingerprint(): Promise<FingerprintComponent<AudioFingerprint>>;
|
|
11
|
+
/**
|
|
12
|
+
* Check if audio fingerprinting is available
|
|
13
|
+
* Prefers OfflineAudioContext (no user gesture needed)
|
|
14
|
+
*/
|
|
15
|
+
export declare function isAudioAvailable(): boolean;
|
|
16
|
+
//# sourceMappingURL=audio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../../../src/modules/fingerprint/audio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAgNjC;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAClD,oBAAoB,CAAC,gBAAgB,CAAC,CACvC,CAuDA;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAgB1C"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-Specific APIs Detection Module
|
|
3
|
+
* Based on FingerprintJS browser-specific API detection
|
|
4
|
+
* Detects availability and state of browser-specific features and APIs
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Error types for browser APIs detection
|
|
8
|
+
*/
|
|
9
|
+
export declare const enum BrowserAPIError {
|
|
10
|
+
NotSupported = "NOT_SUPPORTED",
|
|
11
|
+
SecurityError = "SECURITY_ERROR",
|
|
12
|
+
FeatureUnavailable = "FEATURE_UNAVAILABLE",
|
|
13
|
+
BrowserIncompatible = "BROWSER_INCOMPATIBLE"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* PDF Viewer Detection
|
|
17
|
+
* Detects if native PDF viewer is enabled (Chrome/Edge feature)
|
|
18
|
+
*/
|
|
19
|
+
export declare function getPdfViewerEnabled(): boolean | null;
|
|
20
|
+
/**
|
|
21
|
+
* Apple Pay State Detection
|
|
22
|
+
* Detects Apple Pay availability and state (Safari/iOS feature)
|
|
23
|
+
*/
|
|
24
|
+
export declare const enum ApplePayState {
|
|
25
|
+
Disabled = 0,
|
|
26
|
+
Enabled = 1,
|
|
27
|
+
NoAPI = -1,
|
|
28
|
+
NotAvailableInInsecureContext = -2,
|
|
29
|
+
NotAvailableInFrame = -3
|
|
30
|
+
}
|
|
31
|
+
export declare function getApplePayState(): ApplePayState;
|
|
32
|
+
/**
|
|
33
|
+
* Private Click Measurement Detection
|
|
34
|
+
* Detects Safari's Private Click Measurement API
|
|
35
|
+
*/
|
|
36
|
+
export declare function getPrivateClickMeasurement(): boolean | null;
|
|
37
|
+
/**
|
|
38
|
+
* Enhanced Cookies Detection
|
|
39
|
+
* More detailed cookie support detection
|
|
40
|
+
*/
|
|
41
|
+
export interface CookieCapabilities {
|
|
42
|
+
enabled: boolean;
|
|
43
|
+
sameSiteSupport: boolean;
|
|
44
|
+
secureSupport: boolean;
|
|
45
|
+
partitionedSupport: boolean;
|
|
46
|
+
}
|
|
47
|
+
export declare function getCookieCapabilities(): CookieCapabilities;
|
|
48
|
+
/**
|
|
49
|
+
* WebGL Extensions Detection
|
|
50
|
+
* Enhanced WebGL extension detection
|
|
51
|
+
*/
|
|
52
|
+
export declare function getWebGLExtensions(): string[];
|
|
53
|
+
/**
|
|
54
|
+
* Performance Memory Detection
|
|
55
|
+
* Chrome-specific memory information
|
|
56
|
+
*/
|
|
57
|
+
export interface PerformanceMemory {
|
|
58
|
+
usedJSHeapSize?: number;
|
|
59
|
+
totalJSHeapSize?: number;
|
|
60
|
+
jsHeapSizeLimit?: number;
|
|
61
|
+
}
|
|
62
|
+
export declare function getPerformanceMemory(): PerformanceMemory | null;
|
|
63
|
+
/**
|
|
64
|
+
* Connection Information Detection
|
|
65
|
+
* Network connection information (Chrome/Edge)
|
|
66
|
+
*/
|
|
67
|
+
export interface ConnectionInfo {
|
|
68
|
+
effectiveType?: string;
|
|
69
|
+
downlink?: number;
|
|
70
|
+
rtt?: number;
|
|
71
|
+
saveData?: boolean;
|
|
72
|
+
}
|
|
73
|
+
export declare function getConnectionInfo(): ConnectionInfo | null;
|
|
74
|
+
/**
|
|
75
|
+
* Vendor-specific Properties Detection
|
|
76
|
+
* Detects browser vendor-specific properties
|
|
77
|
+
*/
|
|
78
|
+
export interface VendorProperties {
|
|
79
|
+
webkitTemporaryStorage?: boolean;
|
|
80
|
+
webkitPersistentStorage?: boolean;
|
|
81
|
+
safariObjectTypes?: string[];
|
|
82
|
+
chromeRuntime?: boolean;
|
|
83
|
+
mozInnerScreenX?: boolean;
|
|
84
|
+
msCredentials?: boolean;
|
|
85
|
+
}
|
|
86
|
+
export declare function getVendorProperties(): VendorProperties;
|
|
87
|
+
/**
|
|
88
|
+
* Check if browser APIs detection is available
|
|
89
|
+
*/
|
|
90
|
+
export declare function isBrowserApisDetectionAvailable(): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Complete browser APIs fingerprint
|
|
93
|
+
*/
|
|
94
|
+
export interface BrowserApisFingerprint {
|
|
95
|
+
pdfViewerEnabled: boolean | null;
|
|
96
|
+
applePayState: ApplePayState;
|
|
97
|
+
privateClickMeasurement: boolean | null;
|
|
98
|
+
cookieCapabilities: CookieCapabilities;
|
|
99
|
+
webglExtensions: string[];
|
|
100
|
+
performanceMemory: PerformanceMemory | null;
|
|
101
|
+
connectionInfo: ConnectionInfo | null;
|
|
102
|
+
vendorProperties: VendorProperties;
|
|
103
|
+
browserVendor: string;
|
|
104
|
+
hasNativeFeatures: boolean;
|
|
105
|
+
apiScore: number;
|
|
106
|
+
}
|
|
107
|
+
export declare function getBrowserApisFingerprint(): BrowserApisFingerprint;
|
|
108
|
+
//# sourceMappingURL=browser-apis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-apis.d.ts","sourceRoot":"","sources":["../../../../src/modules/fingerprint/browser-apis.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,0BAAkB,eAAe;IAC/B,YAAY,kBAAkB;IAC9B,aAAa,mBAAmB;IAChC,kBAAkB,wBAAwB;IAC1C,mBAAmB,yBAAyB;CAC7C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,GAAG,IAAI,CAUpD;AAED;;;GAGG;AACH,0BAAkB,aAAa;IAC7B,QAAQ,IAAI;IACZ,OAAO,IAAI;IACX,KAAK,KAAK;IACV,6BAA6B,KAAK;IAClC,mBAAmB,KAAK;CACzB;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAqChD;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,GAAG,IAAI,CAS3D;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAoC1D;AA0DD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAc7C;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAe/D;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAmBzD;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CA0BtD;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,OAAO,CAEzD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,uBAAuB,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC5C,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,yBAAyB,IAAI,sBAAsB,CA0DlE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser and System Information Fingerprinting
|
|
3
|
+
* Based on FingerprintJS browser component with enhanced detection
|
|
4
|
+
*/
|
|
5
|
+
import type { FingerprintComponent, BrowserFingerprint } from '../../types/fingerprint';
|
|
6
|
+
/**
|
|
7
|
+
* Generate browser fingerprint
|
|
8
|
+
*/
|
|
9
|
+
export declare function getBrowserFingerprint(): Promise<FingerprintComponent<BrowserFingerprint>>;
|
|
10
|
+
/**
|
|
11
|
+
* Check if browser fingerprinting is available
|
|
12
|
+
*/
|
|
13
|
+
export declare function isBrowserFingerprintingAvailable(): boolean;
|
|
14
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../../src/modules/fingerprint/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAoLxF;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAuE/F;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,OAAO,CAM1D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas Fingerprinting
|
|
3
|
+
* Based on FingerprintJS canvas component with incognito detection
|
|
4
|
+
*/
|
|
5
|
+
import type { FingerprintComponent, CanvasFingerprint } from '../../types/fingerprint';
|
|
6
|
+
/**
|
|
7
|
+
* Generate canvas fingerprint
|
|
8
|
+
*/
|
|
9
|
+
export declare function getCanvasFingerprint(): Promise<FingerprintComponent<CanvasFingerprint>>;
|
|
10
|
+
/**
|
|
11
|
+
* Check if canvas fingerprinting is available
|
|
12
|
+
*/
|
|
13
|
+
export declare function isCanvasAvailable(): boolean;
|
|
14
|
+
//# sourceMappingURL=canvas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../../src/modules/fingerprint/canvas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAmGvF;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAyD7F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Confidence Scoring System
|
|
3
|
+
* Based on FingerprintJS confidence calculation methodology
|
|
4
|
+
* Provides intelligent weighting and stability scoring for fingerprint components
|
|
5
|
+
*/
|
|
6
|
+
import type { FingerprintComponentType } from '../../types/fingerprint';
|
|
7
|
+
/**
|
|
8
|
+
* Confidence levels enum
|
|
9
|
+
*/
|
|
10
|
+
export declare const enum Confidence {
|
|
11
|
+
/** At least 99.5% chance of correct identification */
|
|
12
|
+
VeryHigh = 0.995,
|
|
13
|
+
/** At least 99% chance of correct identification */
|
|
14
|
+
High = 0.99,
|
|
15
|
+
/** At least 95% chance of correct identification */
|
|
16
|
+
Medium = 0.95,
|
|
17
|
+
/** At least 80% chance of correct identification */
|
|
18
|
+
Low = 0.8,
|
|
19
|
+
/** Less than 80% chance - not reliable for identification */
|
|
20
|
+
VeryLow = 0.5
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Component stability levels
|
|
24
|
+
*/
|
|
25
|
+
export interface ComponentStability {
|
|
26
|
+
/** How stable the component is across sessions (0-1) */
|
|
27
|
+
stability: number;
|
|
28
|
+
/** How much entropy the component provides (0-1) */
|
|
29
|
+
entropy: number;
|
|
30
|
+
/** How unique the component is across users (0-1) */
|
|
31
|
+
uniqueness: number;
|
|
32
|
+
/** How resistant the component is to spoofing (0-1) */
|
|
33
|
+
spoofResistance: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Component weights and characteristics
|
|
37
|
+
* Based on extensive research and real-world data analysis
|
|
38
|
+
*/
|
|
39
|
+
export declare const COMPONENT_CHARACTERISTICS: Record<FingerprintComponentType, ComponentStability>;
|
|
40
|
+
/**
|
|
41
|
+
* New advanced components characteristics
|
|
42
|
+
*/
|
|
43
|
+
export declare const ADVANCED_COMPONENT_CHARACTERISTICS: Record<string, ComponentStability>;
|
|
44
|
+
/**
|
|
45
|
+
* Calculate component weight based on its characteristics
|
|
46
|
+
*/
|
|
47
|
+
export declare function calculateComponentWeight(componentType: string): number;
|
|
48
|
+
/**
|
|
49
|
+
* Component result for confidence calculation
|
|
50
|
+
*/
|
|
51
|
+
export interface ComponentResult {
|
|
52
|
+
component: string;
|
|
53
|
+
success: boolean;
|
|
54
|
+
duration: number;
|
|
55
|
+
value?: any;
|
|
56
|
+
error?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Confidence calculation result
|
|
60
|
+
*/
|
|
61
|
+
export interface ConfidenceResult {
|
|
62
|
+
score: Confidence;
|
|
63
|
+
level: string;
|
|
64
|
+
factors: {
|
|
65
|
+
componentCount: number;
|
|
66
|
+
weightedScore: number;
|
|
67
|
+
stabilityScore: number;
|
|
68
|
+
entropyScore: number;
|
|
69
|
+
spoofResistanceScore: number;
|
|
70
|
+
};
|
|
71
|
+
recommendations: string[];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Calculate overall confidence score for a fingerprint
|
|
75
|
+
*/
|
|
76
|
+
export declare function calculateConfidence(componentResults: ComponentResult[], options?: {
|
|
77
|
+
requireMinimumComponents?: number;
|
|
78
|
+
penalizeMissingCore?: boolean;
|
|
79
|
+
adjustForIncognito?: boolean;
|
|
80
|
+
}): ConfidenceResult;
|
|
81
|
+
/**
|
|
82
|
+
* Get confidence level name from score
|
|
83
|
+
*/
|
|
84
|
+
export declare function getConfidenceLevelName(score: number): string;
|
|
85
|
+
/**
|
|
86
|
+
* Check if a confidence score is acceptable for identification
|
|
87
|
+
*/
|
|
88
|
+
export declare function isConfidenceAcceptable(score: number, minLevel?: Confidence): boolean;
|
|
89
|
+
//# sourceMappingURL=confidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confidence.d.ts","sourceRoot":"","sources":["../../../../src/modules/fingerprint/confidence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAExE;;GAEG;AACH,0BAAkB,UAAU;IAC1B,sDAAsD;IACtD,QAAQ,QAAQ;IAChB,oDAAoD;IACpD,IAAI,OAAO;IACX,oDAAoD;IACpD,MAAM,OAAO;IACb,oDAAoD;IACpD,GAAG,MAAM;IACT,6DAA6D;IAC7D,OAAO,MAAM;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,wBAAwB,EAAE,kBAAkB,CAsI1F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAmBjF,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAiBtE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,eAAe,EAAE,EACnC,OAAO,GAAE;IACP,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACzB,GACL,gBAAgB,CAwIlB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,UAA8B,GACvC,OAAO,CAET"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DateTime Locale Detection
|
|
3
|
+
* Based on FingerprintJS datetime locale detection
|
|
4
|
+
*
|
|
5
|
+
* This component uses the Intl API to detect user's actual locale preferences
|
|
6
|
+
* which is more accurate than navigator.language and reveals true user settings.
|
|
7
|
+
*
|
|
8
|
+
* Key advantages:
|
|
9
|
+
* - More accurate than navigator.language
|
|
10
|
+
* - Reveals actual system locale settings
|
|
11
|
+
* - Detects number formatting preferences
|
|
12
|
+
* - Shows date/time formatting preferences
|
|
13
|
+
* - Captures currency and timezone preferences
|
|
14
|
+
*
|
|
15
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions
|
|
16
|
+
*/
|
|
17
|
+
export interface DateTimeLocaleData {
|
|
18
|
+
locale: string;
|
|
19
|
+
calendar: string;
|
|
20
|
+
numberingSystem: string;
|
|
21
|
+
timeZone: string;
|
|
22
|
+
dateStyle: string;
|
|
23
|
+
timeStyle: string;
|
|
24
|
+
hourCycle: string;
|
|
25
|
+
hour12: boolean;
|
|
26
|
+
numberLocale: string;
|
|
27
|
+
currencyDisplay: string;
|
|
28
|
+
currencySign: string;
|
|
29
|
+
notation: string;
|
|
30
|
+
signDisplay: string;
|
|
31
|
+
listStyle: string;
|
|
32
|
+
relativeTimeStyle: string;
|
|
33
|
+
pluralRules: string;
|
|
34
|
+
navigatorLanguage: string;
|
|
35
|
+
localeMatch: boolean;
|
|
36
|
+
intlSupport: {
|
|
37
|
+
DateTimeFormat: boolean;
|
|
38
|
+
NumberFormat: boolean;
|
|
39
|
+
RelativeTimeFormat: boolean;
|
|
40
|
+
ListFormat: boolean;
|
|
41
|
+
PluralRules: boolean;
|
|
42
|
+
Collator: boolean;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export declare const enum LocaleStatus {
|
|
46
|
+
/** The browser doesn't support Intl API */
|
|
47
|
+
IntlAPINotSupported = -1,
|
|
48
|
+
/** The browser doesn't support DateTimeFormat constructor */
|
|
49
|
+
DateTimeFormatNotSupported = -2,
|
|
50
|
+
/** DateTimeFormat locale is undefined or null */
|
|
51
|
+
LocaleNotAvailable = -3,
|
|
52
|
+
/** NumberFormat is not supported */
|
|
53
|
+
NumberFormatNotSupported = -4
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get comprehensive datetime locale information
|
|
57
|
+
*/
|
|
58
|
+
export declare function getDateTimeLocale(): DateTimeLocaleData | LocaleStatus;
|
|
59
|
+
/**
|
|
60
|
+
* Check if datetime locale detection is available
|
|
61
|
+
*/
|
|
62
|
+
export declare function isDateTimeLocaleAvailable(): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Analyze datetime locale data for confidence and uniqueness
|
|
65
|
+
*/
|
|
66
|
+
export declare function analyzeDateTimeLocale(localeData: DateTimeLocaleData): {
|
|
67
|
+
confidence: number;
|
|
68
|
+
uniqueness: number;
|
|
69
|
+
intlApiSupport: number;
|
|
70
|
+
localeComplexity: number;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Get a compact hash of datetime locale for quick comparison
|
|
74
|
+
*/
|
|
75
|
+
export declare function getDateTimeLocaleHash(localeData: DateTimeLocaleData): string;
|
|
76
|
+
//# sourceMappingURL=datetime-locale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datetime-locale.d.ts","sourceRoot":"","sources":["../../../../src/modules/fingerprint/datetime-locale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,kBAAkB;IAEjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAGhB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IAGpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IAGrB,WAAW,EAAE;QACX,cAAc,EAAE,OAAO,CAAC;QACxB,YAAY,EAAE,OAAO,CAAC;QACtB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,0BAAkB,YAAY;IAC5B,2CAA2C;IAC3C,mBAAmB,KAAK;IACxB,6DAA6D;IAC7D,0BAA0B,KAAK;IAC/B,iDAAiD;IACjD,kBAAkB,KAAK;IACvB,oCAAoC;IACpC,wBAAwB,KAAK;CAC9B;AA8ID;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,kBAAkB,GAAG,YAAY,CAyErE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAOnD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,GAAG;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAuDA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,CAiB5E"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Device-specific signals inspired by FingerprintJS
|
|
3
|
+
* Helps differentiate devices by hardware characteristics
|
|
4
|
+
*/
|
|
5
|
+
export interface DeviceSignals {
|
|
6
|
+
screenFrame?: {
|
|
7
|
+
top: number | null;
|
|
8
|
+
right: number | null;
|
|
9
|
+
bottom: number | null;
|
|
10
|
+
left: number | null;
|
|
11
|
+
} | null;
|
|
12
|
+
hardwareConcurrency?: number;
|
|
13
|
+
deviceMemory?: number;
|
|
14
|
+
architecture?: number;
|
|
15
|
+
touchSupport?: {
|
|
16
|
+
maxTouchPoints: number;
|
|
17
|
+
touchEvent: boolean;
|
|
18
|
+
touchStart: boolean;
|
|
19
|
+
};
|
|
20
|
+
vendorFlavors?: string[];
|
|
21
|
+
cpuClass?: string;
|
|
22
|
+
colorDepth?: number;
|
|
23
|
+
colorGamut?: "srgb" | "p3" | "rec2020";
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Collect all device signals
|
|
27
|
+
*/
|
|
28
|
+
export declare function collectDeviceSignals(): DeviceSignals;
|
|
29
|
+
//# sourceMappingURL=device-signals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-signals.d.ts","sourceRoot":"","sources":["../../../../src/modules/fingerprint/device-signals.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAG5B,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;KACrB,GAAG,IAAI,CAAC;IAGT,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,YAAY,CAAC,EAAE;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IAGF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAGzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACxC;AA8KD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,aAAa,CAYpD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOM Blockers Detection Module
|
|
3
|
+
* Based on FingerprintJS advanced content blocker detection
|
|
4
|
+
* Detects ad blockers, privacy extensions, and content filters
|
|
5
|
+
*/
|
|
6
|
+
type BlockerFilters = Record<string, string[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Error types for DOM blockers detection
|
|
9
|
+
*/
|
|
10
|
+
export declare const enum DOMBlockerError {
|
|
11
|
+
NotSupported = "NOT_SUPPORTED",
|
|
12
|
+
BrowserIncompatible = "BROWSER_INCOMPATIBLE",
|
|
13
|
+
DOMNotAvailable = "DOM_NOT_AVAILABLE",
|
|
14
|
+
Timeout = "TIMEOUT",
|
|
15
|
+
SecurityError = "SECURITY_ERROR"
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Ad blocker and content blocker selectors
|
|
19
|
+
* Obfuscated using base64 to avoid detection by the blockers themselves
|
|
20
|
+
*/
|
|
21
|
+
export declare function getBlockerFilters(): BlockerFilters;
|
|
22
|
+
/**
|
|
23
|
+
* Tests which CSS selectors are blocked by content blockers
|
|
24
|
+
* Optimized for performance and stability
|
|
25
|
+
*/
|
|
26
|
+
export declare function getBlockedSelectors<T extends string>(selectors: readonly T[]): Promise<{
|
|
27
|
+
[K in T]?: true;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Main DOM blockers detection function
|
|
31
|
+
* Enhanced with browser compatibility and error handling
|
|
32
|
+
*/
|
|
33
|
+
export declare function getDomBlockers(options?: {
|
|
34
|
+
debug?: boolean;
|
|
35
|
+
timeout?: number;
|
|
36
|
+
}): Promise<string[] | DOMBlockerError>;
|
|
37
|
+
/**
|
|
38
|
+
* Check if DOM blockers detection is applicable
|
|
39
|
+
* Based on FingerprintJS best practices
|
|
40
|
+
*/
|
|
41
|
+
export declare function isDomBlockersDetectionAvailable(): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Complete DOM blockers fingerprint
|
|
44
|
+
*/
|
|
45
|
+
export interface DomBlockersFingerprint {
|
|
46
|
+
activeBlockers: string[];
|
|
47
|
+
blockerCount: number;
|
|
48
|
+
hasAdBlocker: boolean;
|
|
49
|
+
hasPrivacyExtension: boolean;
|
|
50
|
+
hasTrackingProtection: boolean;
|
|
51
|
+
}
|
|
52
|
+
export declare function getDomBlockersFingerprint(options?: {
|
|
53
|
+
debug?: boolean;
|
|
54
|
+
}): Promise<DomBlockersFingerprint>;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=dom-blockers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-blockers.d.ts","sourceRoot":"","sources":["../../../../src/modules/fingerprint/dom-blockers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAE/C;;GAEG;AACH,0BAAkB,eAAe;IAC/B,YAAY,kBAAkB;IAC9B,mBAAmB,yBAAyB;IAC5C,eAAe,sBAAsB;IACrC,OAAO,YAAY;IACnB,aAAa,mBAAmB;CACjC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAqFlD;AA6DD;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EACxD,SAAS,EAAE,SAAS,CAAC,EAAE,GACtB,OAAO,CAAC;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI;CAAE,CAAC,CAwF9B;AASD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,CA0E7H;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,OAAO,CAGzD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,wBAAsB,yBAAyB,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAiBlH"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Font Preferences Detection
|
|
3
|
+
* Based on FingerprintJS font preferences detection
|
|
4
|
+
*
|
|
5
|
+
* This component measures text rendering widths with different font settings
|
|
6
|
+
* to detect user's font preferences, OS-specific fonts, and browser rendering differences.
|
|
7
|
+
*
|
|
8
|
+
* Key advantages:
|
|
9
|
+
* - Detects OS-specific font rendering
|
|
10
|
+
* - Captures user font size preferences
|
|
11
|
+
* - Reveals browser-specific text rendering
|
|
12
|
+
* - Very stable across sessions
|
|
13
|
+
* - Difficult to spoof
|
|
14
|
+
*/
|
|
15
|
+
export interface FontPreferences {
|
|
16
|
+
default: number;
|
|
17
|
+
serif: number;
|
|
18
|
+
sans: number;
|
|
19
|
+
mono: number;
|
|
20
|
+
apple: number;
|
|
21
|
+
system: number;
|
|
22
|
+
min: number;
|
|
23
|
+
large: number;
|
|
24
|
+
ui: number;
|
|
25
|
+
emoji: number;
|
|
26
|
+
math: number;
|
|
27
|
+
cjk: number;
|
|
28
|
+
arabic: number;
|
|
29
|
+
hebrew: number;
|
|
30
|
+
subpixel: number;
|
|
31
|
+
kerning: number;
|
|
32
|
+
ligatures: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get font preferences fingerprint
|
|
36
|
+
*/
|
|
37
|
+
export declare function getFontPreferences(): Promise<FontPreferences>;
|
|
38
|
+
/**
|
|
39
|
+
* Check if font preferences detection is available
|
|
40
|
+
*/
|
|
41
|
+
export declare function isFontPreferencesAvailable(): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Analyze font preferences for confidence and uniqueness
|
|
44
|
+
*/
|
|
45
|
+
export declare function analyzeFontPreferences(preferences: FontPreferences): {
|
|
46
|
+
confidence: number;
|
|
47
|
+
uniqueness: number;
|
|
48
|
+
hasSystemFonts: boolean;
|
|
49
|
+
hasAdvancedFeatures: boolean;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Get a compact hash of font preferences for quick comparison
|
|
53
|
+
*/
|
|
54
|
+
export declare function getFontPreferencesHash(preferences: FontPreferences): string;
|
|
55
|
+
//# sourceMappingURL=font-preferences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"font-preferences.d.ts","sourceRoot":"","sources":["../../../../src/modules/fingerprint/font-preferences.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,MAAM,WAAW,eAAe;IAE9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IAGf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IAGd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IAGb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IAGf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAiOD;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CA0BnE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAQpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,eAAe,GAAG;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAiCA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,eAAe,GAAG,MAAM,CAG3E"}
|