@@ -30,6 +30,27 @@ const BASE64URL_ALPHABET =
3030type RandomValuesProvider = {
3131 getRandomValues : ( bytes : Uint8Array ) => Uint8Array
3232}
33+ type FingerprintLogLevel = 'debug' | 'info' | 'warn' | 'error'
34+
35+ function logFingerprint (
36+ level : FingerprintLogLevel ,
37+ data : Record < string , any > ,
38+ message : string ,
39+ ) : void {
40+ try {
41+ logger [ level ] ( data , message )
42+ } catch {
43+ // Fingerprinting is part of login; logging must not block it.
44+ }
45+ }
46+
47+ function trackFingerprintGenerated ( properties : Record < string , any > ) : void {
48+ try {
49+ trackEvent ( AnalyticsEvent . FINGERPRINT_GENERATED , properties )
50+ } catch {
51+ // Fingerprinting is part of login; telemetry must not block it.
52+ }
53+ }
3354
3455async function getMachineId ( ) : Promise < string > {
3556 if ( ! machineIdModule ) {
@@ -157,7 +178,8 @@ export function generateLegacyFingerprintSuffix(
157178 . toString ( 'base64url' )
158179 . substring ( 0 , LEGACY_FINGERPRINT_SUFFIX_LENGTH )
159180 } catch ( err ) {
160- logger . warn (
181+ logFingerprint (
182+ 'warn' ,
161183 {
162184 errorMessage : err instanceof Error ? err . message : String ( err ) ,
163185 } ,
@@ -174,7 +196,8 @@ export function generateLegacyFingerprintSuffix(
174196 . substring ( 0 , LEGACY_FINGERPRINT_SUFFIX_LENGTH )
175197 }
176198 } catch ( err ) {
177- logger . warn (
199+ logFingerprint (
200+ 'warn' ,
178201 {
179202 errorMessage : err instanceof Error ? err . message : String ( err ) ,
180203 } ,
@@ -219,20 +242,22 @@ export async function calculateFingerprint(): Promise<string> {
219242 ENHANCED_FINGERPRINT_TIMEOUT_MS ,
220243 `Enhanced CLI fingerprinting timed out after ${ ENHANCED_FINGERPRINT_TIMEOUT_MS } ms` ,
221244 )
222- logger . debug (
245+ logFingerprint (
246+ 'debug' ,
223247 {
224248 fingerprintType : 'enhanced_cli' ,
225249 fingerprintId : fingerprint . substring ( 0 , 20 ) + '...' ,
226250 } ,
227251 'Enhanced CLI fingerprint generated successfully' ,
228252 )
229- trackEvent ( AnalyticsEvent . FINGERPRINT_GENERATED , {
253+ trackFingerprintGenerated ( {
230254 fingerprintType : 'enhanced_cli' ,
231255 success : true ,
232256 } )
233257 return fingerprint
234258 } catch ( enhancedError ) {
235- logger . info (
259+ logFingerprint (
260+ 'info' ,
236261 {
237262 errorMessage :
238263 enhancedError instanceof Error ? enhancedError . message : String ( enhancedError ) ,
@@ -243,22 +268,24 @@ export async function calculateFingerprint(): Promise<string> {
243268
244269 try {
245270 const fingerprint = calculateLegacyFingerprint ( )
246- logger . debug (
271+ logFingerprint (
272+ 'debug' ,
247273 {
248274 fingerprintType : 'legacy_fallback' ,
249275 fingerprintId : fingerprint ,
250276 } ,
251277 'Legacy fingerprint generated successfully as fallback' ,
252278 )
253- trackEvent ( AnalyticsEvent . FINGERPRINT_GENERATED , {
279+ trackFingerprintGenerated ( {
254280 fingerprintType : 'legacy' ,
255281 success : true ,
256282 fallbackReason :
257283 enhancedError instanceof Error ? enhancedError . message : 'unknown' ,
258284 } )
259285 return fingerprint
260286 } catch ( legacyError ) {
261- logger . error (
287+ logFingerprint (
288+ 'error' ,
262289 {
263290 errorMessage :
264291 legacyError instanceof Error ? legacyError . message : String ( legacyError ) ,
0 commit comments