@thumbmarkjs/thumbmarkjs 1.7.4 → 1.7.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"thumbmark.umd.js","sources":["../src/options.ts","../src/components/audio/index.ts","../src/utils/commonPixels.ts","../src/utils/hash.ts","../src/components/canvas/index.ts","../src/utils/ephemeralIFrame.ts","../src/components/fonts/index.ts","../src/components/hardware/index.ts","../src/components/math/index.ts","../src/utils/getMostFrequent.ts","../src/components/permissions/index.ts","../src/components/system/browser.ts","../src/components/screen/index.ts","../src/components/system/index.ts","../src/components/webgl/index.ts","../src/utils/stableStringify.ts","../src/components/mathml/index.ts","../src/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/components/webrtc/index.ts","../src/components/speech/index.ts","../src/utils/version.ts","../src/functions/filterComponents.ts","../src/utils/visitorId.ts","../src/utils/cache.ts","../src/functions/api.ts","../src/functions/index.ts","../src/utils/log.ts","../src/utils/raceAll.ts","../src/thumbmark.ts","../src/functions/legacy_functions.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["MAXIMUM_CACHE_LIFETIME","DEFAULT_STORAGE_PREFIX","DEFAULT_API_ENDPOINT","defaultOptions","exclude","include","stabilize","logging","timeout","cache_api_call","cache_lifetime_in_ms","performance","experimental","property_name_factory","name","options","stabilizationExclusionRules","private","browsers","iframe","vpn","always","OfflineAudioContextClass","window","OfflineAudioContext","webkitOfflineAudioContext","calculateHash","samples","hash","i","length","Math","abs","getCommonPixels","images","width","height","finalData","data","indice","u","push","getMostFrequent","pixelArray","Uint8ClampedArray","ImageData","arr","frequencyMap","num","mostFrequent","parseInt","fmix","input","imul","C","Uint32Array","rotl","m","n","key","seed","text","TextEncoder","encode","buffer","utf8","charCode","charCodeAt","Uint8Array","encodeUtf8","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","finalize","byteArray","Array","from","map","byte","toString","padStart","join","_WIDTH","async","ephemeralIFrame","callback","document","wait","createElement","setAttribute","style","setProperty","src","appendChild","iframeDocument","contentDocument","_a","contentWindow","undefined","Error","setTimeout","removeChild","durationMs","resolveWith","Promise","resolve","availableFonts","baseFonts","measureSingleFont","ctx","font","measureText","getVideoCard","canvas","gl","getContext","vendor","getParameter","VENDOR","renderer","RENDERER","result","version","VERSION","shadingLanguageVersion","SHADING_LANGUAGE_VERSION","debugInfo","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","error","getArchitecture","f","Float32Array","u8","Infinity","integrate","a","b","h","sum","mostFrequentValuesInArrayOfDictionaries","keys","forEach","mostFrequentValueForKey","element","String","highestFrequency","Object","mostFrequentValue","obj","filter","val","defaultPermissionKeys","getBrowser","navigator","privacyBrowserStrategies","detect","brave","strategy","parseBrowserFromUA","userAgent","ua","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","regex","match","groups","_b","_c","version1","_d","version2","_e","_f","source","includes","toLowerCase","isMobileUserAgent","test","matchMedias","results","mediaQueries","pointer","hover","update","scripting","value","matchMedia","matches","getApplePayVersion","location","protocol","ApplePaySession","versionCheck","supportsVersion","_RUNS","stableStringify","seen","stringify","node","toJSON","isFinite","JSON","out","isArray","indexOf","seenIndex","sort","splice","BLACKBOARD_BOLD","GREEK_SYMBOLS","createMathML","content","createComplexNestedStructure","nestedContent","bbSymbol","bbIndex","startIdx","greekSet","slice","createSymbolStructures","structures","tm_component_promises","audio","reject","audioContext","audioBuffer","createBufferSource","oscillator","createOscillator","frequency","compressor","createDynamicsCompressor","threshold","knee","ratio","attack","release","connect","destination","start","oncomplete","event","renderedBuffer","getChannelData","sampleHash","maxChannels","maxChannelCount","channelCountMode","startRendering","console","createAudioFingerprint","imageDatas","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","randomText","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","imageData","getImageData","generateCanvasImageData","commonPixelsHash","fonts","defaultWidths","fontWidth","hardware","deviceMemory","memoryInfo","memory","videocard","architecture","jsHeapSizeLimit","locales","languages","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","math","acos","asin","cos","PI","largeCos","largeSin","sin","largeTan","tan","permissions","permission_keys","permissions_to_check","all","permissionStatus","feature","status","query","state","getBrowserPermissionsOnce","plugins","plugin","filename","description","screen","is_touchscreen","maxTouchPoints","colorDepth","mediaMatches","w","longer","max","shorter","min","screenResolution","system","browser","platform","productSub","product","useragent","hardwareConcurrency","mobile","applePayVersion","cookieEnabled","webgl","vertexShaderSource","fragmentShaderSource","vertexShader","createShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","numSpokes","vertices","angleIncrement","angle","vertexBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","positionAttribute","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","viewport","clearColor","clear","COLOR_BUFFER_BIT","drawArrays","LINES","pixelData","readPixels","RGBA","UNSIGNED_BYTE","drawingBufferWidth","drawingBufferHeight","createWebGLImageData","webrtc","RTCPeerConnection","webkitRTCPeerConnection","mozRTCPeerConnection","supported","connection","iceCandidatePoolSize","iceServers","createDataChannel","offerOptions","offerToReceiveAudio","offerToReceiveVideo","offer","createOffer","setLocalDescription","sdp","extensions","Set","x","replace","getDescriptors","mediaType","RegExp","split","constructDescriptions","descriptors","descriptor","matcher","matchAll","_","type","parts","mimeType","clockRate","channels","feedbackSupport","sdpFmtpLine","Boolean","audioCodecs","videoCodecs","compressedData","count","video","extensionsHash","totalTimeout","iceTimeout","floor","resolveResult","removeEventListener","onIceCandidate","close","candidateObj","candidate","clearTimeout","candidateType","addEventListener","details","message","processOffer","speech","speechSynthesis","getVoices","voicesResolved","timeoutHandle","processVoices","voices","voiceSignatures","voice","escapeValue","voiceURI","lang","localService","default","voiceCount","voicesHash","onVoicesChanged","tm_experimental_component_promises","mathml","testElement","innerHTML","position","visibility","rect","getBoundingClientRect","isMathMLSupported","dimensionsArray","fontStyleHash","struct","measurement","mathElement","whiteSpace","top","computedStyle","defaultView","getComputedStyle","measurements","dimensions","fontInfo","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","fontVariant","fontStretch","fontSizeAdjust","textRendering","fontFeatureSettings","fontVariantNumeric","fontKerning","measureMathMLStructure","customComponents","timeoutInstance","includeComponent","creationFunction","getVersion","getExcludeList","majorVer","excludeList","stabilizationOptions","option","rules","rule","some","br","filterThumbmarkData","includeList","performFilter","currentObj","path","entries","currentPath","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","DEFAULT_STORAGE_PROPERTY_NAME","getVisitorIdPropertyName","_options","storage_property_name","DEFAULT_VISITOR_ID_NAME","setVisitorId","visitorId","localStorage","setItem","CACHE_KEY","getCache","rawCache","getItem","jsonCache","parse","getApiResponseExpiry","Date","now","currentApiPromise","apiPromiseResult","getApiPromise","components","cached","cache","apiResponse","apiResponseExpiry","getCachedApiResponse","endpoint","api_endpoint","propertyName","getVisitorId","requestBody","clientHash","metadata","resolvedMetadata","fetchPromise","fetch","method","headers","api_key","Authorization","then","response","ok","json","values","newValues","setCache","setCachedApiResponse","catch","timeoutMs","timeoutPromise","info","timed_out","race","getThumbmark","thumbmark","allErrors","shouldLog","sessionStorage","random","allComponents","elapsed","resolvedComponents","clientComponentsResult","errors","componentErrors","resolveClientComponents","experimentalComponents","experimentalElapsed","expElapsed","expErrors","apiPromise","apiResult","allElapsed","maybeElapsed","apiComponents","uniqueness","score","thisHash","thumbmarkData","experimentalData","url","payload","pathname","logThumbmarkData","requestId","e","comps","opts","topLevelExcludes","promises","fn","resolvedValues","timeoutTime","timeoutVal","p","startTime","err","t","raceAllPerformance","resolvedComponentsRaw","index","component","constructor","this","get","overrideOptions","globalIncludeComponent","includeData"],"mappings":"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"}
1
+ {"version":3,"file":"thumbmark.umd.js","sources":["../src/options.ts","../src/components/audio/index.ts","../src/utils/commonPixels.ts","../src/utils/hash.ts","../src/components/canvas/index.ts","../src/utils/ephemeralIFrame.ts","../src/components/fonts/index.ts","../src/components/hardware/index.ts","../src/components/math/index.ts","../src/utils/getMostFrequent.ts","../src/components/permissions/index.ts","../src/components/system/browser.ts","../src/components/screen/index.ts","../src/components/system/index.ts","../src/components/webgl/index.ts","../src/utils/stableStringify.ts","../src/components/mathml/index.ts","../src/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/components/webrtc/index.ts","../src/components/speech/index.ts","../src/utils/version.ts","../src/functions/filterComponents.ts","../src/utils/visitorId.ts","../src/utils/cache.ts","../src/functions/api.ts","../src/functions/index.ts","../src/utils/log.ts","../src/utils/raceAll.ts","../src/thumbmark.ts","../src/functions/legacy_functions.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["MAXIMUM_CACHE_LIFETIME","DEFAULT_STORAGE_PREFIX","DEFAULT_API_ENDPOINT","defaultOptions","exclude","include","stabilize","logging","timeout","cache_api_call","cache_lifetime_in_ms","performance","experimental","property_name_factory","name","options","stabilizationExclusionRules","private","browsers","iframe","vpn","always","OfflineAudioContextClass","window","OfflineAudioContext","webkitOfflineAudioContext","calculateHash","samples","hash","i","length","Math","abs","getCommonPixels","images","width","height","finalData","data","indice","u","push","getMostFrequent","pixelArray","Uint8ClampedArray","ImageData","arr","frequencyMap","num","mostFrequent","parseInt","fmix","input","imul","C","Uint32Array","rotl","m","n","key","seed","text","TextEncoder","encode","buffer","utf8","charCode","charCodeAt","Uint8Array","encodeUtf8","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","finalize","byteArray","Array","from","map","byte","toString","padStart","join","_WIDTH","async","ephemeralIFrame","callback","document","wait","createElement","setAttribute","style","setProperty","src","appendChild","iframeDocument","contentDocument","_a","contentWindow","undefined","Error","setTimeout","removeChild","durationMs","resolveWith","Promise","resolve","availableFonts","baseFonts","measureSingleFont","ctx","font","measureText","getVideoCard","canvas","gl","getContext","vendor","getParameter","VENDOR","renderer","RENDERER","result","version","VERSION","shadingLanguageVersion","SHADING_LANGUAGE_VERSION","debugInfo","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","error","getArchitecture","f","Float32Array","u8","Infinity","integrate","a","b","h","sum","mostFrequentValuesInArrayOfDictionaries","keys","forEach","mostFrequentValueForKey","element","String","highestFrequency","Object","mostFrequentValue","obj","filter","val","defaultPermissionKeys","getBrowser","navigator","privacyBrowserStrategies","detect","brave","strategy","parseBrowserFromUA","userAgent","ua","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","regex","match","groups","_b","_c","version1","_d","version2","_e","_f","source","includes","toLowerCase","isMobileUserAgent","test","matchMedias","results","mediaQueries","pointer","hover","update","scripting","value","matchMedia","matches","getApplePayVersion","location","protocol","ApplePaySession","versionCheck","supportsVersion","_RUNS","stableStringify","seen","stringify","node","toJSON","isFinite","JSON","out","isArray","indexOf","seenIndex","sort","splice","BLACKBOARD_BOLD","GREEK_SYMBOLS","createMathML","content","createComplexNestedStructure","nestedContent","bbSymbol","bbIndex","startIdx","greekSet","slice","createSymbolStructures","structures","tm_component_promises","audio","reject","audioContext","audioBuffer","createBufferSource","oscillator","createOscillator","frequency","compressor","createDynamicsCompressor","threshold","knee","ratio","attack","release","connect","destination","start","oncomplete","event","renderedBuffer","getChannelData","sampleHash","maxChannels","maxChannelCount","channelCountMode","startRendering","console","createAudioFingerprint","imageDatas","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","randomText","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","imageData","getImageData","generateCanvasImageData","commonPixelsHash","fonts","defaultWidths","fontWidth","hardware","deviceMemory","memoryInfo","memory","videocard","architecture","jsHeapSizeLimit","locales","languages","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","math","acos","asin","cos","PI","largeCos","largeSin","sin","largeTan","tan","permissions","permission_keys","permissions_to_check","all","permissionStatus","feature","status","query","state","getBrowserPermissionsOnce","plugins","plugin","filename","description","screen","is_touchscreen","maxTouchPoints","colorDepth","mediaMatches","w","longer","max","shorter","min","screenResolution","system","browser","platform","productSub","product","useragent","hardwareConcurrency","mobile","applePayVersion","cookieEnabled","webgl","vertexShaderSource","fragmentShaderSource","vertexShader","createShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","numSpokes","vertices","angleIncrement","angle","vertexBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","positionAttribute","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","viewport","clearColor","clear","COLOR_BUFFER_BIT","drawArrays","LINES","pixelData","readPixels","RGBA","UNSIGNED_BYTE","drawingBufferWidth","drawingBufferHeight","createWebGLImageData","webrtc","RTCPeerConnection","webkitRTCPeerConnection","mozRTCPeerConnection","supported","connection","iceCandidatePoolSize","iceServers","createDataChannel","offerOptions","offerToReceiveAudio","offerToReceiveVideo","offer","createOffer","setLocalDescription","sdp","extensions","Set","x","replace","getDescriptors","mediaType","RegExp","split","constructDescriptions","descriptors","descriptor","matcher","matchAll","_","type","parts","mimeType","clockRate","channels","feedbackSupport","sdpFmtpLine","Boolean","audioCodecs","videoCodecs","compressedData","count","video","extensionsHash","totalTimeout","iceTimeout","floor","resolveResult","removeEventListener","onIceCandidate","close","candidateObj","candidate","clearTimeout","candidateType","addEventListener","details","message","processOffer","speech","speechSynthesis","getVoices","voicesResolved","timeoutHandle","processVoices","voices","voiceSignatures","voice","escapeValue","voiceURI","lang","localService","default","voiceCount","voicesHash","onVoicesChanged","tm_experimental_component_promises","mathml","testElement","innerHTML","position","visibility","rect","getBoundingClientRect","isMathMLSupported","dimensionsArray","fontStyleHash","struct","measurement","mathElement","whiteSpace","top","computedStyle","defaultView","getComputedStyle","measurements","dimensions","fontInfo","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","fontVariant","fontStretch","fontSizeAdjust","textRendering","fontFeatureSettings","fontVariantNumeric","fontKerning","measureMathMLStructure","customComponents","timeoutInstance","getVersion","getExcludeList","majorVer","excludeList","stabilizationOptions","option","rules","rule","some","br","filterThumbmarkData","includeList","performFilter","currentObj","path","entries","currentPath","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","DEFAULT_STORAGE_PROPERTY_NAME","getVisitorIdPropertyName","_options","storage_property_name","DEFAULT_VISITOR_ID_NAME","setVisitorId","visitorId","localStorage","setItem","CACHE_KEY","getCache","rawCache","getItem","jsonCache","parse","getApiResponseExpiry","Date","now","ApiError","constructor","super","this","currentApiPromise","apiPromiseResult","callApi","endpoint","response","fetch","method","headers","api_key","Authorization","ok","json","values","newValues","setCache","apiResponseExpiry","apiResponse","setCachedApiResponse","getApiPromise","components","cached","cache","getCachedApiResponse","api_endpoint","propertyName","getVisitorId","requestBody","clientHash","metadata","resolvedMetadata","timeoutMs","apiCall","attempt","r","MAX_RETRIES","callApiWithRetry","finally","info","timed_out","race","getThumbmark","instanceCustomComponents","thumbmark","allErrors","shouldLog","sessionStorage","random","allComponents","elapsed","resolvedComponents","clientComponentsResult","errors","componentErrors","resolveClientComponents","experimentalComponents","experimentalElapsed","expElapsed","expErrors","apiPromise","apiResult","allElapsed","maybeElapsed","apiComponents","uniqueness","score","thisHash","thumbmarkData","experimentalData","url","payload","pathname","logThumbmarkData","catch","requestId","e","comps","opts","topLevelExcludes","promises","fn","resolvedValues","timeoutTime","timeoutVal","p","startTime","then","err","t","raceAllPerformance","resolvedComponentsRaw","index","component","get","overrideOptions","includeComponent","includeData","creationFunction"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thumbmarkjs/thumbmarkjs",
3
- "version": "1.7.4",
3
+ "version": "1.7.6",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./dist/thumbmark.cjs.js",
@@ -275,6 +275,57 @@ describe('getApiPromise timeout behavior', () => {
275
275
  expect(result?.visitorId).toBe(storedVisitorId);
276
276
  });
277
277
 
278
+ test('retries on network error and succeeds on second attempt', async () => {
279
+ jest.useRealTimers();
280
+ const noCacheOptions = { ...testOptions, cache_api_call: false, timeout: 5000 };
281
+
282
+ mockFetch
283
+ .mockRejectedValueOnce(new TypeError('Failed to fetch'))
284
+ .mockResolvedValueOnce({
285
+ ok: true, status: 200,
286
+ json: async () => ({ version: '1.0', thumbmark: 'retry-ok' }),
287
+ });
288
+
289
+ const result = await getApiPromise(noCacheOptions, testComponents);
290
+
291
+ expect(mockFetch).toHaveBeenCalledTimes(2);
292
+ expect(result?.thumbmark).toBe('retry-ok');
293
+ jest.useFakeTimers();
294
+ });
295
+
296
+ test('does not retry on 500 server error', async () => {
297
+ jest.useRealTimers();
298
+ const noCacheOptions = { ...testOptions, cache_api_call: false, timeout: 5000 };
299
+
300
+ mockFetch.mockResolvedValueOnce({ ok: false, status: 500 });
301
+
302
+ await expect(getApiPromise(noCacheOptions, testComponents)).rejects.toThrow('HTTP error! status: 500');
303
+ expect(mockFetch).toHaveBeenCalledTimes(1);
304
+ jest.useFakeTimers();
305
+ });
306
+
307
+ test('does not retry on 403 auth error', async () => {
308
+ jest.useRealTimers();
309
+ const noCacheOptions = { ...testOptions, cache_api_call: false, timeout: 5000 };
310
+
311
+ mockFetch.mockResolvedValueOnce({ ok: false, status: 403 });
312
+
313
+ await expect(getApiPromise(noCacheOptions, testComponents)).rejects.toThrow('HTTP error! status: 403');
314
+ expect(mockFetch).toHaveBeenCalledTimes(1);
315
+ jest.useFakeTimers();
316
+ });
317
+
318
+ test('network errors exhaust retries then throw', async () => {
319
+ jest.useRealTimers();
320
+ const noCacheOptions = { ...testOptions, cache_api_call: false, timeout: 5000 };
321
+
322
+ mockFetch.mockRejectedValue(new TypeError('Failed to fetch'));
323
+
324
+ await expect(getApiPromise(noCacheOptions, testComponents)).rejects.toThrow('Failed to fetch');
325
+ expect(mockFetch).toHaveBeenCalledTimes(3);
326
+ jest.useFakeTimers();
327
+ });
328
+
278
329
  test('returns full cached response (not just visitorId) when cache exists on timeout', async () => {
279
330
  const noCacheOptions = {
280
331
  ...testOptions,
@@ -46,9 +46,62 @@ export interface apiResponse {
46
46
 
47
47
  // ===================== API Call Logic =====================
48
48
 
49
+ export class ApiError extends Error {
50
+ constructor(public status: number) {
51
+ super(`HTTP error! status: ${status}`);
52
+ }
53
+ }
54
+
49
55
  let currentApiPromise: Promise<apiResponse> | null = null;
50
56
  let apiPromiseResult: apiResponse | null = null;
51
57
 
58
+ const MAX_RETRIES = 3;
59
+ const RETRY_BACKOFF_MS = 200;
60
+
61
+ /**
62
+ * Calls the API endpoint once. Returns the response data on success.
63
+ * Throws ApiError on HTTP errors, or a native error on network failures.
64
+ */
65
+ async function callApi(
66
+ endpoint: string, body: any, options: OptionsAfterDefaults, visitorId: string | null,
67
+ ): Promise<apiResponse> {
68
+ const response = await fetch(endpoint, {
69
+ method: 'POST',
70
+ headers: {
71
+ 'x-api-key': options.api_key!,
72
+ 'Authorization': 'custom-authorized',
73
+ 'Content-Type': 'application/json',
74
+ },
75
+ body: JSON.stringify(body),
76
+ });
77
+
78
+ if (!response.ok) throw new ApiError(response.status);
79
+
80
+ const data = await response.json();
81
+ if (data.visitorId && data.visitorId !== visitorId) setVisitorId(data.visitorId, options);
82
+ apiPromiseResult = data;
83
+ setCachedApiResponse(options, data);
84
+ return data;
85
+ }
86
+
87
+ /**
88
+ * Calls callApi with retries on network errors.
89
+ * HTTP errors (ApiError) are not retried — only network failures.
90
+ */
91
+ async function callApiWithRetry(
92
+ endpoint: string, body: any, options: OptionsAfterDefaults, visitorId: string | null,
93
+ ): Promise<apiResponse> {
94
+ for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
95
+ if (attempt > 0) await new Promise(r => setTimeout(r, attempt * RETRY_BACKOFF_MS));
96
+ try {
97
+ return await callApi(endpoint, body, options, visitorId);
98
+ } catch (error) {
99
+ if (error instanceof ApiError || attempt === MAX_RETRIES - 1) throw error;
100
+ }
101
+ }
102
+ throw new Error('Unreachable');
103
+ }
104
+
52
105
  /**
53
106
  * Calls the Thumbmark API with the given components, using caching and deduplication.
54
107
  * Returns a promise for the API response or null on error.
@@ -109,61 +162,19 @@ export const getApiPromise = (
109
162
  }
110
163
  }
111
164
 
112
- const fetchPromise = fetch(endpoint, {
113
- method: 'POST',
114
- headers: {
115
- 'x-api-key': options.api_key!,
116
- 'Authorization': 'custom-authorized',
117
- 'Content-Type': 'application/json',
118
- },
119
- body: JSON.stringify(requestBody),
120
- })
121
- .then(response => {
122
- // Handle HTTP errors that aren't network errors
123
- if (!response.ok) {
124
- if (response.status === 403) {
125
- throw new Error('INVALID_API_KEY');
126
- }
127
- throw new Error(`HTTP error! status: ${response.status}`);
128
- }
129
- return response.json();
130
- })
131
- .then(data => {
132
- // Handle visitor ID from server response
133
- if (data.visitorId && data.visitorId !== visitorId) {
134
- setVisitorId(data.visitorId, options);
135
- }
136
- apiPromiseResult = data; // Cache the successful result
137
- setCachedApiResponse(options, data); // Cache to localStorage according to options
138
- currentApiPromise = null; // Clear the in-flight promise
139
- return data;
140
- })
141
- .catch(error => {
142
- currentApiPromise = null; // Clear the in-flight promise on error
143
- throw error; // Propagate all errors to caller
144
- });
145
-
146
- // Timeout logic
147
165
  const timeoutMs = options.timeout || 5000;
148
- const timeoutPromise = new Promise<apiResponse>((resolve) => {
166
+
167
+ const apiCall = callApiWithRetry(endpoint, requestBody, options, visitorId)
168
+ .finally(() => { currentApiPromise = null; });
169
+
170
+ const timeout = new Promise<apiResponse>((resolve) => {
149
171
  setTimeout(() => {
150
- // On timeout, try to return expired cache as fallback
151
- // Note: getCache() returns cache regardless of expiry
152
172
  const cache = getCache(options);
153
- if (cache && cache.apiResponse) {
154
- resolve(cache.apiResponse);
155
- } else {
156
- // Even without caching, return the visitor ID if available
157
- // (visitorId was already retrieved at the start of this function)
158
- resolve({
159
- info: { timed_out: true },
160
- ...(visitorId && { visitorId }),
161
- });
162
- }
173
+ resolve(cache?.apiResponse || { info: { timed_out: true }, ...(visitorId && { visitorId }) });
163
174
  }, timeoutMs);
164
175
  });
165
176
 
166
- currentApiPromise = Promise.race([fetchPromise, timeoutPromise]);
177
+ currentApiPromise = Promise.race([apiCall, timeout]);
167
178
  return currentApiPromise;
168
179
  };
169
180
 
@@ -10,6 +10,7 @@ import { defaultOptions, OptionsAfterDefaults, optionsInterface } from "../optio
10
10
  import {
11
11
  timeoutInstance,
12
12
  componentInterface,
13
+ componentFunctionInterface,
13
14
  tm_component_promises,
14
15
  customComponents,
15
16
  tm_experimental_component_promises,
@@ -20,7 +21,7 @@ import { raceAllPerformance } from "../utils/raceAll";
20
21
  import { getVersion } from "../utils/version";
21
22
  import { filterThumbmarkData, getExcludeList } from './filterComponents'
22
23
  import { logThumbmarkData } from '../utils/log';
23
- import { getApiPromise, infoInterface } from "./api";
24
+ import { getApiPromise, ApiError, infoInterface } from "./api";
24
25
  import { stableStringify } from "../utils/stableStringify";
25
26
 
26
27
 
@@ -28,7 +29,7 @@ import { stableStringify } from "../utils/stableStringify";
28
29
  * Final thumbmark response structure
29
30
  */
30
31
  export interface ThumbmarkError {
31
- type: 'component_timeout' | 'component_error' | 'api_timeout' | 'api_error' | 'api_unauthorized' | 'fatal';
32
+ type: 'component_timeout' | 'component_error' | 'api_timeout' | 'api_error' | 'api_unauthorized' | 'network_error' | 'fatal';
32
33
  message: string;
33
34
  component?: string;
34
35
  }
@@ -62,7 +63,10 @@ export interface ThumbmarkResponse {
62
63
  * @param options - Options for fingerprinting and API
63
64
  * @returns ThumbmarkResponse (elapsed is present only if options.performance is true)
64
65
  */
65
- export async function getThumbmark(options?: optionsInterface): Promise<ThumbmarkResponse> {
66
+ export async function getThumbmark(
67
+ options?: optionsInterface,
68
+ instanceCustomComponents: Record<string, componentFunctionInterface | null> = {}
69
+ ): Promise<ThumbmarkResponse> {
66
70
  // Early exit for non-browser environments (Node.js, Jest, SSR)
67
71
  if (typeof document === 'undefined' || typeof window === 'undefined') {
68
72
  return {
@@ -82,7 +86,11 @@ export async function getThumbmark(options?: optionsInterface): Promise<Thumbmar
82
86
  const shouldLog = (_options.logging && !sessionStorage.getItem("_tmjs_l") && Math.random() < 0.0001);
83
87
 
84
88
  // Merge built-in and user-registered components
85
- const allComponents = { ...tm_component_promises, ...customComponents };
89
+ const allComponents = {
90
+ ...tm_component_promises,
91
+ ...customComponents,
92
+ ...instanceCustomComponents,
93
+ } as Record<string, componentFunctionInterface>;
86
94
  const { elapsed, resolvedComponents: clientComponentsResult, errors: componentErrors } = await resolveClientComponents(allComponents, _options);
87
95
  allErrors.push(...componentErrors);
88
96
 
@@ -103,7 +111,7 @@ export async function getThumbmark(options?: optionsInterface): Promise<Thumbmar
103
111
  try {
104
112
  apiResult = await apiPromise;
105
113
  } catch (error) {
106
- if (error instanceof Error && error.message === 'INVALID_API_KEY') {
114
+ if (error instanceof ApiError && error.status === 403) {
107
115
  return {
108
116
  error: [{ type: 'api_unauthorized', message: 'Invalid API key or quota exceeded' }],
109
117
  components: {},
@@ -112,9 +120,8 @@ export async function getThumbmark(options?: optionsInterface): Promise<Thumbmar
112
120
  thumbmark: ''
113
121
  };
114
122
  }
115
- // Non-auth API errors (5xx, network): log error and continue without API data
116
123
  allErrors.push({
117
- type: 'api_error',
124
+ type: error instanceof ApiError ? 'api_error' : 'network_error',
118
125
  message: error instanceof Error ? error.message : String(error)
119
126
  });
120
127
  }
@@ -216,4 +223,4 @@ export async function resolveClientComponents(
216
223
  return { elapsed, resolvedComponents, errors };
217
224
  }
218
225
 
219
- export { globalIncludeComponent as includeComponent };
226
+ export { globalIncludeComponent as includeComponent };
@@ -0,0 +1,87 @@
1
+ import { Thumbmark } from './thumbmark';
2
+ import { customComponents } from './factory';
3
+ import { getThumbmark, includeComponent as includeGlobalComponent } from './index';
4
+
5
+ describe('Thumbmark custom components', () => {
6
+ beforeEach(() => {
7
+ for (const key of Object.keys(customComponents)) {
8
+ delete customComponents[key];
9
+ }
10
+ });
11
+
12
+ test('custom components stay scoped to the instance that registered them', async () => {
13
+ const tm1 = new Thumbmark({ logging: false });
14
+ const tm2 = new Thumbmark({ logging: false });
15
+
16
+ tm1.includeComponent('instanceOnly', async () => ({
17
+ value: 'tm1'
18
+ }));
19
+
20
+ const tm1Result = await tm1.get({ include: ['instanceOnly'] });
21
+ const tm2Result = await tm2.get({ include: ['instanceOnly'] });
22
+
23
+ expect(tm1Result.components.instanceOnly).toEqual({ value: 'tm1' });
24
+ expect(tm2Result.components.instanceOnly).toBeUndefined();
25
+ });
26
+
27
+ test('deprecated global includeComponent still registers components for getThumbmark', async () => {
28
+ includeGlobalComponent('legacyGlobal', async () => ({
29
+ value: 'global'
30
+ }));
31
+
32
+ const result = await getThumbmark({
33
+ logging: false,
34
+ include: ['legacyGlobal']
35
+ });
36
+
37
+ expect(result.components.legacyGlobal).toEqual({ value: 'global' });
38
+ });
39
+
40
+ test('getThumbmark accepts an optional custom component registry', async () => {
41
+ const result = await getThumbmark({
42
+ logging: false,
43
+ include: ['directCustom']
44
+ }, {
45
+ directCustom: async () => ({
46
+ value: 'direct'
47
+ })
48
+ });
49
+
50
+ expect(result.components.directCustom).toEqual({ value: 'direct' });
51
+ });
52
+
53
+ test('deprecated global includeComponent still registers components for Thumbmark.get()', async () => {
54
+ includeGlobalComponent('legacyGlobal', async () => ({
55
+ value: 'global'
56
+ }));
57
+
58
+ const tm = new Thumbmark({ logging: false });
59
+ const result = await tm.get({
60
+ include: ['legacyGlobal']
61
+ });
62
+
63
+ expect(result.components.legacyGlobal).toEqual({ value: 'global' });
64
+ });
65
+
66
+ test('instance custom components override deprecated global ones for the same key', async () => {
67
+ includeGlobalComponent('sharedKey', async () => ({
68
+ value: 'global'
69
+ }));
70
+
71
+ const tm = new Thumbmark({ logging: false });
72
+ tm.includeComponent('sharedKey', async () => ({
73
+ value: 'instance'
74
+ }));
75
+
76
+ const globalResult = await getThumbmark({
77
+ logging: false,
78
+ include: ['sharedKey']
79
+ });
80
+ const instanceResult = await tm.get({
81
+ include: ['sharedKey']
82
+ });
83
+
84
+ expect(globalResult.components.sharedKey).toEqual({ value: 'global' });
85
+ expect(instanceResult.components.sharedKey).toEqual({ value: 'instance' });
86
+ });
87
+ });
package/src/thumbmark.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { optionsInterface } from "./options";
2
- import { getThumbmark, includeComponent as globalIncludeComponent, ThumbmarkResponse } from './functions';
2
+ import { getThumbmark, ThumbmarkResponse } from './functions';
3
3
  import { getVersion } from "./utils/version";
4
4
  import { defaultOptions } from "./options";
5
- import { componentInterface } from "./factory";
5
+ import { componentFunctionInterface, componentInterface } from "./factory";
6
6
 
7
7
  /**
8
8
  * A client for generating thumbmarks with a persistent configuration.
@@ -10,6 +10,7 @@ import { componentInterface } from "./factory";
10
10
 
11
11
  export class Thumbmark {
12
12
  private options: optionsInterface;
13
+ private customComponents: Record<string, componentFunctionInterface | null>;
13
14
 
14
15
  /**
15
16
  * Creates a new Thumbmarker client instance.
@@ -17,6 +18,7 @@ export class Thumbmark {
17
18
  */
18
19
  constructor(options?: optionsInterface) {
19
20
  this.options = { ...defaultOptions, ...options };
21
+ this.customComponents = {};
20
22
  }
21
23
 
22
24
  /**
@@ -26,7 +28,7 @@ export class Thumbmark {
26
28
  */
27
29
  public async get(overrideOptions?: optionsInterface): Promise<ThumbmarkResponse> {
28
30
  const finalOptions = { ...this.options, ...overrideOptions };
29
- return getThumbmark(finalOptions);
31
+ return getThumbmark(finalOptions, this.customComponents);
30
32
  }
31
33
  public getVersion(): string {
32
34
  return getVersion()
@@ -37,6 +39,6 @@ export class Thumbmark {
37
39
  * @param fn - The component function
38
40
  */
39
41
  public includeComponent(key: string, fn: (options?: optionsInterface) => Promise<componentInterface | null>) {
40
- globalIncludeComponent(key, fn);
42
+ this.customComponents[key] = fn;
41
43
  }
42
- }
44
+ }