@thumbmarkjs/thumbmarkjs 1.1.3-rc.7 → 1.3.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/README.md +66 -66
- package/dist/thumbmark.cjs.js +1 -1
- package/dist/thumbmark.cjs.js.map +1 -1
- package/dist/thumbmark.esm.d.ts +3 -10
- package/dist/thumbmark.esm.js +1 -1
- package/dist/thumbmark.esm.js.map +1 -1
- package/dist/thumbmark.umd.js +1 -1
- package/dist/thumbmark.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/mathml/index.ts +149 -0
- package/src/components/webrtc/index.ts +126 -0
- package/src/factory.ts +12 -0
- package/src/functions/api.ts +130 -0
- package/src/functions/filterComponents.ts +0 -1
- package/src/functions/index.ts +39 -140
- package/src/options.ts +3 -1
- package/src/utils/log.ts +2 -1
- package/dist/types/components/audio/index.d.ts +0 -2
- package/dist/types/components/canvas/index.d.ts +0 -3
- package/dist/types/components/fonts/index.d.ts +0 -4
- package/dist/types/components/hardware/index.d.ts +0 -2
- package/dist/types/components/locales/index.d.ts +0 -2
- package/dist/types/components/math/index.d.ts +0 -2
- package/dist/types/components/permissions/index.d.ts +0 -3
- package/dist/types/components/plugins/index.d.ts +0 -2
- package/dist/types/components/screen/index.d.ts +0 -2
- package/dist/types/components/system/browser.d.ts +0 -7
- package/dist/types/components/system/index.d.ts +0 -2
- package/dist/types/components/webgl/index.d.ts +0 -2
- package/dist/types/factory.d.ts +0 -51
- package/dist/types/functions/filterComponents.d.ts +0 -10
- package/dist/types/functions/index.d.ts +0 -89
- package/dist/types/functions/legacy_functions.d.ts +0 -27
- package/dist/types/index.d.ts +0 -8
- package/dist/types/options.d.ts +0 -43
- package/dist/types/thumbmark.d.ts +0 -26
- package/dist/types/utils/commonPixels.d.ts +0 -1
- package/dist/types/utils/ephemeralIFrame.d.ts +0 -4
- package/dist/types/utils/getMostFrequent.d.ts +0 -5
- package/dist/types/utils/hash.d.ts +0 -5
- package/dist/types/utils/imageDataToDataURL.d.ts +0 -1
- package/dist/types/utils/log.d.ts +0 -8
- package/dist/types/utils/raceAll.d.ts +0 -9
- package/dist/types/utils/sort.d.ts +0 -8
- package/dist/types/utils/version.d.ts +0 -4
- package/dist/types/utils/visitorId.d.ts +0 -11
|
@@ -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/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/utils/version.ts","../src/functions/filterComponents.ts","../src/utils/visitorId.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],"names":["API_ENDPOINT","defaultOptions","exclude","include","stabilize","logging","timeout","cache_api_call","performance","options","stabilizationExclusionRules","private","browsers","iframe","vpn","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","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","Uint8Array","finalize","byteArray","Array","from","map","byte","toString","padStart","join","_WIDTH","wait","durationMs","resolveWith","Promise","resolve","setTimeout","availableFonts","baseFonts","measureSingleFont","ctx","font","Error","measureText","getVideoCard","canvas","document","createElement","gl","_a","getContext","undefined","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","name","ua","userAgent","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","brave","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","window","location","protocol","ApplePaySession","versionCheck","supportsVersion","_RUNS","tm_component_promises","audio","async","reject","sampleRate","numSamples","audioContext","OfflineAudioContext","webkitOfflineAudioContext","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","callback","setAttribute","style","setProperty","src","appendChild","iframeDocument","contentDocument","contentWindow","removeChild","ephemeralIFrame","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","permissionPromises","permissionStatus","feature","status","query","state","getBrowserPermissionsOnce","all","then","resolvedPermissions","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","customComponents","timeoutInstance","includeComponent","creationFunction","getVersion","filterThumbmarkData","isArray","browserInfo","browserComponent","ver","split","majorVer","excludeList","stabilizationOptions","includeList","option","rules","rule","appliesToAllBrowsers","browserMatch","some","browserRule","ruleName","ruleVersionStr","ruleVersion","performFilter","currentObj","path","entries","currentPath","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","VISITOR_ID_KEY","currentApiPromise","apiPromiseResult","getApiPromise","components","endpoint","visitorId","localStorage","getItem","getVisitorId","requestBody","clientHash","JSON","stringify","fetchPromise","fetch","method","headers","api_key","Authorization","response","ok","json","setItem","setVisitorId","catch","timeoutMs","timeoutPromise","info","timed_out","race","getThumbmark","_options","allComponents","elapsed","resolvedComponents","clientComponentsResult","resolveClientComponents","apiPromise","apiResult","maybeElapsed","apiComponents","uniqueness","score","thumbmark","thisHash","thumbmarkData","url","payload","pathname","sessionStorage","random","logThumbmarkData","comps","opts","e","promises","_","fn","resolvedValues","timeoutTime","timeoutVal","p","startTime","now","t","raceAllPerformance","resolvedComponentsRaw","index","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/components/mathml/index.ts","../src/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/components/webrtc/index.ts","../src/utils/version.ts","../src/functions/filterComponents.ts","../src/utils/visitorId.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],"names":["API_ENDPOINT","defaultOptions","exclude","include","stabilize","logging","timeout","cache_api_call","performance","experimental","options","stabilizationExclusionRules","private","browsers","iframe","vpn","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","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","Uint8Array","finalize","byteArray","Array","from","map","byte","toString","padStart","join","_WIDTH","wait","durationMs","resolveWith","Promise","resolve","setTimeout","availableFonts","baseFonts","measureSingleFont","ctx","font","Error","measureText","getVideoCard","canvas","document","createElement","gl","_a","getContext","undefined","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","name","ua","userAgent","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","brave","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","window","location","protocol","ApplePaySession","versionCheck","supportsVersion","_RUNS","BLACKBOARD_BOLD","GREEK_SYMBOLS","createMathML","content","createComplexNestedStructure","nestedContent","bbSymbol","bbIndex","startIdx","greekSet","slice","createSymbolStructures","structures","tm_component_promises","audio","async","reject","sampleRate","numSamples","audioContext","OfflineAudioContext","webkitOfflineAudioContext","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","callback","setAttribute","style","setProperty","src","appendChild","iframeDocument","contentDocument","contentWindow","removeChild","ephemeralIFrame","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","permissionPromises","permissionStatus","feature","status","query","state","getBrowserPermissionsOnce","all","then","resolvedPermissions","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","tm_experimental_component_promises","webrtc","RTCPeerConnection","webkitRTCPeerConnection","mozRTCPeerConnection","supported","connection","iceCandidatePoolSize","iceServers","createDataChannel","offerOptions","offerToReceiveAudio","offerToReceiveVideo","offer","createOffer","setLocalDescription","sdp","extensions","Set","x","replace","sort","getDescriptors","mediaType","RegExp","split","constructDescriptions","descriptors","descriptor","matcher","matchAll","_","type","parts","mimeType","clockRate","channels","feedbackSupport","sdpFmtpLine","Boolean","codecsSdp","video","resolveResult","removeEventListener","onIceCandidate","close","candidateObj","candidate","clearTimeout","candidateType","addEventListener","JSON","stringify","message","processOffer","mathml","testElement","innerHTML","position","visibility","rect","getBoundingClientRect","isMathMLSupported","measurements","struct","mathElement","whiteSpace","top","computedStyle","getComputedStyle","dimensions","fontInfo","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","fontVariant","fontStretch","fontSizeAdjust","textRendering","fontFeatureSettings","fontVariantNumeric","fontKerning","measureMathMLStructure","customComponents","timeoutInstance","includeComponent","creationFunction","getVersion","filterThumbmarkData","isArray","browserInfo","browserComponent","ver","majorVer","excludeList","stabilizationOptions","includeList","option","rules","rule","appliesToAllBrowsers","browserMatch","some","browserRule","ruleName","ruleVersionStr","ruleVersion","performFilter","currentObj","path","entries","currentPath","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","VISITOR_ID_KEY","currentApiPromise","apiPromiseResult","getApiPromise","components","endpoint","visitorId","localStorage","getItem","getVisitorId","requestBody","clientHash","fetchPromise","fetch","method","headers","api_key","Authorization","response","ok","json","setItem","setVisitorId","catch","timeoutMs","timeoutPromise","info","timed_out","race","getThumbmark","_options","shouldLog","sessionStorage","random","allComponents","elapsed","resolvedComponents","clientComponentsResult","resolveClientComponents","experimentalComponents","apiPromise","apiResult","thumbmark","maybeElapsed","apiComponents","uniqueness","score","thisHash","thumbmarkData","experimentalData","url","payload","pathname","logThumbmarkData","comps","opts","e","promises","fn","resolvedValues","timeoutTime","timeoutVal","p","startTime","now","t","raceAllPerformance","resolvedComponentsRaw","index","constructor","this","get","overrideOptions","globalIncludeComponent","includeData"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { componentInterface } from '../../factory';
|
|
2
|
+
import { hash } from '../../utils/hash';
|
|
3
|
+
|
|
4
|
+
const BLACKBOARD_BOLD = ['\uD835\uDD04', '\uD835\uDD05', '\u212D', '\uD835\uDD07', '\uD835\uDD08', '\uD835\uDD09', '\uD835\uDD38', '\uD835\uDD39', '\u2102', '\uD835\uDD3B', '\uD835\uDD3C', '\uD835\uDD3D'];
|
|
5
|
+
const GREEK_SYMBOLS = ['\u03B2', '\u03C8', '\u03BB', '\u03B5', '\u03B6', '\u03B1', '\u03BE', '\u03BC', '\u03C1', '\u03C6', '\u03BA', '\u03C4', '\u03B7', '\u03C3', '\u03B9', '\u03C9', '\u03B3', '\u03BD', '\u03C7', '\u03B4', '\u03B8', '\u03C0', '\u03C5', '\u03BF'];
|
|
6
|
+
|
|
7
|
+
export default async function getMathML(): Promise<componentInterface | null> {
|
|
8
|
+
return new Promise((resolve) => {
|
|
9
|
+
try {
|
|
10
|
+
if (!isMathMLSupported()) {
|
|
11
|
+
resolve({
|
|
12
|
+
supported: false,
|
|
13
|
+
error: 'MathML not supported'
|
|
14
|
+
});
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const structures = [
|
|
19
|
+
createMathML('integral', '<msubsup><mo>\u222B</mo><mi>a</mi><mi>b</mi></msubsup><mfrac><mrow><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mrow><mi>g</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mfrac><mi>dx</mi>'),
|
|
20
|
+
createMathML('fraction', '<mfrac><mrow><mi>\u03C0</mi><mo>\u00D7</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>\u03C3</mi></mrow></mfrac>'),
|
|
21
|
+
createMathML('matrix', '<mo>[</mo><mtable><mtr><mtd><mi>\u03B1</mi></mtd><mtd><mi>\u03B2</mi></mtd></mtr><mtr><mtd><mi>\u03B3</mi></mtd><mtd><mi>\u03B4</mi></mtd></mtr></mtable><mo>]</mo>'),
|
|
22
|
+
createComplexNestedStructure(),
|
|
23
|
+
...createSymbolStructures()
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
const measurements: any = {};
|
|
27
|
+
structures.forEach((struct, i) => {
|
|
28
|
+
measurements[`struct_${i}`] = measureMathMLStructure(struct);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
resolve({
|
|
32
|
+
//supported: true,
|
|
33
|
+
//measurements,
|
|
34
|
+
hash: hash(JSON.stringify(measurements))
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
} catch (error) {
|
|
38
|
+
resolve({
|
|
39
|
+
supported: false,
|
|
40
|
+
error: `MathML error: ${(error as Error).message}`
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function isMathMLSupported(): boolean {
|
|
47
|
+
try {
|
|
48
|
+
const testElement = document.createElement('math');
|
|
49
|
+
testElement.innerHTML = '<mrow><mi>x</mi></mrow>';
|
|
50
|
+
testElement.style.position = 'absolute';
|
|
51
|
+
testElement.style.visibility = 'hidden';
|
|
52
|
+
|
|
53
|
+
document.body.appendChild(testElement);
|
|
54
|
+
const rect = testElement.getBoundingClientRect();
|
|
55
|
+
document.body.removeChild(testElement);
|
|
56
|
+
|
|
57
|
+
return rect.width > 0 && rect.height > 0;
|
|
58
|
+
} catch {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function createMathML(name: string, content: string): string {
|
|
64
|
+
return `<math><mrow>${content}</mrow></math>`;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function createComplexNestedStructure(): string {
|
|
68
|
+
let nestedContent = '<mo>\u220F</mo>'; // Product symbol (∏)
|
|
69
|
+
|
|
70
|
+
// Add all symbol combinations inside the main structure
|
|
71
|
+
BLACKBOARD_BOLD.forEach((bbSymbol, bbIndex) => {
|
|
72
|
+
const startIdx = bbIndex * 2;
|
|
73
|
+
const greekSet = GREEK_SYMBOLS.slice(startIdx, startIdx + 2);
|
|
74
|
+
|
|
75
|
+
if (greekSet.length === 2) {
|
|
76
|
+
nestedContent += `<mmultiscripts><mi>${bbSymbol}</mi><none/><mi>${greekSet[1]}</mi><mprescripts></mprescripts><mi>${greekSet[0]}</mi><none/></mmultiscripts>`;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
return createMathML('complex_nested',
|
|
81
|
+
`<munderover><mmultiscripts>${nestedContent}</mmultiscripts></munderover>`
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function createSymbolStructures(): string[] {
|
|
86
|
+
const structures: string[] = [];
|
|
87
|
+
|
|
88
|
+
// Use blackboard bold as base symbols with Greek symbols as subscripts/superscripts
|
|
89
|
+
BLACKBOARD_BOLD.forEach((bbSymbol, bbIndex) => {
|
|
90
|
+
// Get 2 Greek symbols for this blackboard bold symbol (lower left, top right)
|
|
91
|
+
const startIdx = bbIndex * 2;
|
|
92
|
+
const greekSet = GREEK_SYMBOLS.slice(startIdx, startIdx + 2);
|
|
93
|
+
|
|
94
|
+
if (greekSet.length === 2) {
|
|
95
|
+
structures.push(createMathML('combined',
|
|
96
|
+
`<mmultiscripts><mi>${bbSymbol}</mi><none/><mi>${greekSet[1]}</mi><mprescripts></mprescripts><mi>${greekSet[0]}</mi><none/></mmultiscripts>`
|
|
97
|
+
));
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
return structures;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function measureMathMLStructure(mathml: string): any {
|
|
105
|
+
try {
|
|
106
|
+
const mathElement = document.createElement('math');
|
|
107
|
+
mathElement.innerHTML = mathml.replace(/<\/?math>/g, '');
|
|
108
|
+
mathElement.style.whiteSpace = 'nowrap';
|
|
109
|
+
mathElement.style.position = 'absolute';
|
|
110
|
+
mathElement.style.visibility = 'hidden';
|
|
111
|
+
mathElement.style.top = '-9999px';
|
|
112
|
+
|
|
113
|
+
document.body.appendChild(mathElement);
|
|
114
|
+
|
|
115
|
+
const rect = mathElement.getBoundingClientRect();
|
|
116
|
+
const computedStyle = window.getComputedStyle(mathElement);
|
|
117
|
+
|
|
118
|
+
const measurements = {
|
|
119
|
+
dimensions: {
|
|
120
|
+
width: rect.width,
|
|
121
|
+
height: rect.height,
|
|
122
|
+
|
|
123
|
+
},
|
|
124
|
+
fontInfo: {
|
|
125
|
+
fontFamily: computedStyle.fontFamily,
|
|
126
|
+
fontSize: computedStyle.fontSize,
|
|
127
|
+
fontWeight: computedStyle.fontWeight,
|
|
128
|
+
fontStyle: computedStyle.fontStyle,
|
|
129
|
+
lineHeight: computedStyle.lineHeight,
|
|
130
|
+
// Enhanced font properties for better system detection
|
|
131
|
+
fontVariant: computedStyle.fontVariant || 'normal',
|
|
132
|
+
fontStretch: computedStyle.fontStretch || 'normal',
|
|
133
|
+
fontSizeAdjust: computedStyle.fontSizeAdjust || 'none',
|
|
134
|
+
textRendering: computedStyle.textRendering || 'auto',
|
|
135
|
+
fontFeatureSettings: computedStyle.fontFeatureSettings || 'normal',
|
|
136
|
+
fontVariantNumeric: computedStyle.fontVariantNumeric || 'normal',
|
|
137
|
+
fontKerning: computedStyle.fontKerning || 'auto'
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
document.body.removeChild(mathElement);
|
|
142
|
+
return measurements;
|
|
143
|
+
|
|
144
|
+
} catch (error) {
|
|
145
|
+
return {
|
|
146
|
+
error: (error as Error).message
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { componentInterface } from '../../factory';
|
|
2
|
+
import { hash } from '../../utils/hash';
|
|
3
|
+
|
|
4
|
+
export default async function getWebRTC(): Promise<componentInterface | null> {
|
|
5
|
+
return new Promise((resolve) => {
|
|
6
|
+
try {
|
|
7
|
+
// Check if WebRTC is supported
|
|
8
|
+
const RTCPeerConnection = (window as any).RTCPeerConnection || (window as any).webkitRTCPeerConnection || (window as any).mozRTCPeerConnection;
|
|
9
|
+
if (!RTCPeerConnection) {
|
|
10
|
+
resolve({
|
|
11
|
+
supported: false,
|
|
12
|
+
error: 'WebRTC not supported'
|
|
13
|
+
});
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const config = {
|
|
18
|
+
iceCandidatePoolSize: 1,
|
|
19
|
+
iceServers: []
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const connection = new RTCPeerConnection(config);
|
|
23
|
+
connection.createDataChannel(''); // trigger ICE gathering
|
|
24
|
+
|
|
25
|
+
const processOffer = async () => {
|
|
26
|
+
try {
|
|
27
|
+
const offerOptions = { offerToReceiveAudio: true, offerToReceiveVideo: true };
|
|
28
|
+
const offer = await connection.createOffer(offerOptions);
|
|
29
|
+
await connection.setLocalDescription(offer);
|
|
30
|
+
|
|
31
|
+
const sdp = offer.sdp || '';
|
|
32
|
+
|
|
33
|
+
// Extract RTP extensions
|
|
34
|
+
const extensions = [...new Set((sdp.match(/extmap:\d+ [^\n\r]+/g) || []).map((x: string) => x.replace(/extmap:\d+ /, '')))].sort();
|
|
35
|
+
|
|
36
|
+
// Extract codec information
|
|
37
|
+
const getDescriptors = (mediaType: string) => {
|
|
38
|
+
const match = sdp.match(new RegExp(`m=${mediaType} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));
|
|
39
|
+
return match ? match[1].split(' ') : [];
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const constructDescriptions = (mediaType: string, descriptors: string[]) => {
|
|
43
|
+
return descriptors.map(descriptor => {
|
|
44
|
+
const matcher = new RegExp(`(rtpmap|fmtp|rtcp-fb):${descriptor} (.+)`, 'g');
|
|
45
|
+
const matches = [...sdp.matchAll(matcher)];
|
|
46
|
+
if (!matches.length) return null;
|
|
47
|
+
|
|
48
|
+
const description: any = {};
|
|
49
|
+
matches.forEach(match => {
|
|
50
|
+
const [_, type, data] = match;
|
|
51
|
+
const parts = data.split('/');
|
|
52
|
+
if (type === 'rtpmap') {
|
|
53
|
+
description.mimeType = `${mediaType}/${parts[0]}`;
|
|
54
|
+
description.clockRate = +parts[1];
|
|
55
|
+
if (mediaType === 'audio') description.channels = +parts[2] || 1;
|
|
56
|
+
} else if (type === 'rtcp-fb') {
|
|
57
|
+
description.feedbackSupport = description.feedbackSupport || [];
|
|
58
|
+
description.feedbackSupport.push(data);
|
|
59
|
+
} else if (type === 'fmtp') {
|
|
60
|
+
description.sdpFmtpLine = data;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
return description;
|
|
64
|
+
}).filter(Boolean);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const codecsSdp = {
|
|
68
|
+
audio: constructDescriptions('audio', getDescriptors('audio')),
|
|
69
|
+
video: constructDescriptions('video', getDescriptors('video'))
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// Set up for ICE candidate collection with timeout
|
|
73
|
+
const result = await new Promise<componentInterface>((resolveResult) => {
|
|
74
|
+
const timeout = setTimeout(() => {
|
|
75
|
+
connection.removeEventListener('icecandidate', onIceCandidate);
|
|
76
|
+
connection.close();
|
|
77
|
+
resolveResult({
|
|
78
|
+
supported: true,
|
|
79
|
+
codecsSdp,
|
|
80
|
+
extensions: extensions as string[],
|
|
81
|
+
timeout: true
|
|
82
|
+
});
|
|
83
|
+
}, 3000);
|
|
84
|
+
|
|
85
|
+
const onIceCandidate = (event: RTCPeerConnectionIceEvent) => {
|
|
86
|
+
const candidateObj = event.candidate;
|
|
87
|
+
if (!candidateObj || !candidateObj.candidate) return;
|
|
88
|
+
|
|
89
|
+
clearTimeout(timeout);
|
|
90
|
+
connection.removeEventListener('icecandidate', onIceCandidate);
|
|
91
|
+
connection.close();
|
|
92
|
+
|
|
93
|
+
resolveResult({
|
|
94
|
+
supported: true,
|
|
95
|
+
codecsSdp,
|
|
96
|
+
extensions: extensions as string[],
|
|
97
|
+
candidateType: candidateObj.type || ''
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
connection.addEventListener('icecandidate', onIceCandidate);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
resolve({
|
|
105
|
+
hash: hash(JSON.stringify(result)),
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
} catch (error) {
|
|
109
|
+
connection.close();
|
|
110
|
+
resolve({
|
|
111
|
+
supported: true,
|
|
112
|
+
error: `WebRTC offer failed: ${(error as Error).message}`
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
processOffer();
|
|
118
|
+
|
|
119
|
+
} catch (error) {
|
|
120
|
+
resolve({
|
|
121
|
+
supported: false,
|
|
122
|
+
error: `WebRTC error: ${(error as Error).message}`
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
package/src/factory.ts
CHANGED
|
@@ -20,6 +20,10 @@ import getScreen from "./components/screen";
|
|
|
20
20
|
import getSystem from "./components/system";
|
|
21
21
|
import getWebGL from "./components/webgl";
|
|
22
22
|
|
|
23
|
+
// Import experimental component functions
|
|
24
|
+
import getWebRTC from "./components/webrtc";
|
|
25
|
+
import getMathML from "./components/mathml";
|
|
26
|
+
|
|
23
27
|
/**
|
|
24
28
|
* @description key->function map of built-in components. Do not call the function here.
|
|
25
29
|
*/
|
|
@@ -37,6 +41,14 @@ export const tm_component_promises = {
|
|
|
37
41
|
'webgl': getWebGL
|
|
38
42
|
};
|
|
39
43
|
|
|
44
|
+
/**
|
|
45
|
+
* @description key->function map of experimental components. Only resolved during logging.
|
|
46
|
+
*/
|
|
47
|
+
export const tm_experimental_component_promises = {
|
|
48
|
+
'webrtc': getWebRTC,
|
|
49
|
+
'mathml': getMathML
|
|
50
|
+
};
|
|
51
|
+
|
|
40
52
|
// the component interface is the form of the JSON object the function's promise must return
|
|
41
53
|
export interface componentInterface {
|
|
42
54
|
[key: string]: string | string[] | number | boolean | componentInterface;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { optionsInterface, API_ENDPOINT } from '../options';
|
|
2
|
+
import { componentInterface } from '../factory';
|
|
3
|
+
import { getVisitorId, setVisitorId } from '../utils/visitorId';
|
|
4
|
+
import { getVersion } from "../utils/version";
|
|
5
|
+
import { hash } from '../utils/hash';
|
|
6
|
+
|
|
7
|
+
// ===================== Types & Interfaces =====================
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Info returned from the API (IP, classification, uniqueness, etc)
|
|
11
|
+
*/
|
|
12
|
+
export interface infoInterface {
|
|
13
|
+
ip_address?: {
|
|
14
|
+
ip_address: string,
|
|
15
|
+
ip_identifier: string,
|
|
16
|
+
autonomous_system_number: number,
|
|
17
|
+
ip_version: 'v6' | 'v4',
|
|
18
|
+
},
|
|
19
|
+
classification?: {
|
|
20
|
+
tor: boolean,
|
|
21
|
+
vpn: boolean,
|
|
22
|
+
bot: boolean,
|
|
23
|
+
datacenter: boolean,
|
|
24
|
+
danger_level: number, // 5 is highest and should be blocked. 0 is no danger.
|
|
25
|
+
},
|
|
26
|
+
uniqueness?: {
|
|
27
|
+
score: number | string
|
|
28
|
+
},
|
|
29
|
+
timed_out?: boolean; // added for timeout handling
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* API response structure
|
|
34
|
+
*/
|
|
35
|
+
interface apiResponse {
|
|
36
|
+
info?: infoInterface;
|
|
37
|
+
version?: string;
|
|
38
|
+
components?: componentInterface;
|
|
39
|
+
visitorId?: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// ===================== API Call Logic =====================
|
|
43
|
+
|
|
44
|
+
let currentApiPromise: Promise<apiResponse> | null = null;
|
|
45
|
+
let apiPromiseResult: apiResponse | null = null;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Calls the Thumbmark API with the given components, using caching and deduplication.
|
|
49
|
+
* Returns a promise for the API response or null on error.
|
|
50
|
+
*/
|
|
51
|
+
export const getApiPromise = (
|
|
52
|
+
options: optionsInterface,
|
|
53
|
+
components: componentInterface
|
|
54
|
+
): Promise<apiResponse | null> => {
|
|
55
|
+
// 1. If a result is already cached and caching is enabled, return it.
|
|
56
|
+
if (options.cache_api_call && apiPromiseResult) {
|
|
57
|
+
return Promise.resolve(apiPromiseResult);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// 2. If a request is already in flight, return that promise to prevent duplicate calls.
|
|
61
|
+
if (currentApiPromise) {
|
|
62
|
+
return currentApiPromise;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// 3. Otherwise, initiate a new API call with timeout.
|
|
66
|
+
const endpoint = `${API_ENDPOINT}/thumbmark`;
|
|
67
|
+
const visitorId = getVisitorId();
|
|
68
|
+
const requestBody: any = {
|
|
69
|
+
components,
|
|
70
|
+
options,
|
|
71
|
+
clientHash: hash(JSON.stringify(components)),
|
|
72
|
+
version: getVersion()
|
|
73
|
+
};
|
|
74
|
+
if (visitorId) {
|
|
75
|
+
requestBody.visitorId = visitorId;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const fetchPromise = fetch(endpoint, {
|
|
79
|
+
method: 'POST',
|
|
80
|
+
headers: {
|
|
81
|
+
'x-api-key': options.api_key!,
|
|
82
|
+
'Authorization': 'custom-authorized',
|
|
83
|
+
'Content-Type': 'application/json',
|
|
84
|
+
},
|
|
85
|
+
body: JSON.stringify(requestBody),
|
|
86
|
+
})
|
|
87
|
+
.then(response => {
|
|
88
|
+
// Handle HTTP errors that aren't network errors
|
|
89
|
+
if (!response.ok) {
|
|
90
|
+
if (response.status === 403) {
|
|
91
|
+
throw new Error('INVALID_API_KEY');
|
|
92
|
+
}
|
|
93
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
94
|
+
}
|
|
95
|
+
return response.json();
|
|
96
|
+
})
|
|
97
|
+
.then(data => {
|
|
98
|
+
// Handle visitor ID from server response
|
|
99
|
+
if (data.visitorId && data.visitorId !== visitorId) {
|
|
100
|
+
setVisitorId(data.visitorId);
|
|
101
|
+
}
|
|
102
|
+
apiPromiseResult = data; // Cache the successful result
|
|
103
|
+
currentApiPromise = null; // Clear the in-flight promise
|
|
104
|
+
return data;
|
|
105
|
+
})
|
|
106
|
+
.catch(error => {
|
|
107
|
+
console.error('Error fetching pro data', error);
|
|
108
|
+
currentApiPromise = null; // Also clear the in-flight promise on error
|
|
109
|
+
// For 403 errors, propagate the error instead of returning null
|
|
110
|
+
if (error.message === 'INVALID_API_KEY') {
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
// Return null instead of a string to prevent downstream crashes
|
|
114
|
+
return null;
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
// Timeout logic
|
|
118
|
+
const timeoutMs = options.timeout || 5000;
|
|
119
|
+
const timeoutPromise = new Promise<apiResponse>((resolve) => {
|
|
120
|
+
setTimeout(() => {
|
|
121
|
+
resolve({
|
|
122
|
+
info: { timed_out: true },
|
|
123
|
+
version: getVersion(),
|
|
124
|
+
});
|
|
125
|
+
}, timeoutMs);
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
currentApiPromise = Promise.race([fetchPromise, timeoutPromise]);
|
|
129
|
+
return currentApiPromise;
|
|
130
|
+
};
|
|
@@ -47,7 +47,6 @@ export function filterThumbmarkData(
|
|
|
47
47
|
if (!rules) continue;
|
|
48
48
|
|
|
49
49
|
for (const rule of rules) {
|
|
50
|
-
// FIX: Use the 'in' operator as a type guard to check if 'browsers' exists.
|
|
51
50
|
// A rule applies to all browsers if the 'browsers' key is not present.
|
|
52
51
|
const appliesToAllBrowsers = !('browsers' in rule);
|
|
53
52
|
|