@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,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"}