@thumbmarkjs/thumbmarkjs 1.1.3-rc.3 → 1.1.3-rc.4
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/dist/thumbmark.cjs.js +1 -1
- package/dist/thumbmark.cjs.js.map +1 -1
- package/dist/thumbmark.esm.d.ts +1 -0
- 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/dist/types/components/audio/index.d.ts +2 -0
- package/dist/types/components/canvas/index.d.ts +3 -0
- package/dist/types/components/fonts/index.d.ts +4 -0
- package/dist/types/components/hardware/index.d.ts +2 -0
- package/dist/types/components/locales/index.d.ts +2 -0
- package/dist/types/components/math/index.d.ts +2 -0
- package/dist/types/components/permissions/index.d.ts +3 -0
- package/dist/types/components/plugins/index.d.ts +2 -0
- package/dist/types/components/screen/index.d.ts +2 -0
- package/dist/types/components/system/browser.d.ts +7 -0
- package/dist/types/components/system/index.d.ts +2 -0
- package/dist/types/components/webgl/index.d.ts +2 -0
- package/dist/types/factory.d.ts +51 -0
- package/dist/types/functions/filterComponents.d.ts +10 -0
- package/dist/types/functions/index.d.ts +89 -0
- package/dist/types/functions/legacy_functions.d.ts +27 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/options.d.ts +43 -0
- package/dist/types/thumbmark.d.ts +26 -0
- package/dist/types/utils/commonPixels.d.ts +1 -0
- package/dist/types/utils/ephemeralIFrame.d.ts +4 -0
- package/dist/types/utils/getMostFrequent.d.ts +5 -0
- package/dist/types/utils/hash.d.ts +5 -0
- package/dist/types/utils/imageDataToDataURL.d.ts +1 -0
- package/dist/types/utils/log.d.ts +8 -0
- package/dist/types/utils/raceAll.d.ts +9 -0
- package/dist/types/utils/sort.d.ts +8 -0
- package/dist/types/utils/version.d.ts +4 -0
- package/dist/types/utils/visitorId.d.ts +11 -0
- package/package.json +1 -1
- package/src/functions/index.ts +9 -1
package/dist/thumbmark.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).ThumbmarkJS={})}(this,(function(e){"use strict";const n="https://api.thumbmarkjs.com",t={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1};let r={...t};const o={private:[{exclude:["canvas"],browsers:["firefox","safari>=17","brave"]},{exclude:["audio"],browsers:["samsungbrowser","safari"]},{exclude:["fonts"],browsers:["firefox"]},{exclude:["audio.sampleHash","hardware.deviceMemory","header.acceptLanguage.q","system.hardwareConcurrency","plugins"],browsers:["brave"]},{exclude:["tls.extensions"],browsers:["firefox"]},{exclude:["header.acceptLanguage"],browsers:["edge","chrome"]}],iframe:[{exclude:["permissions.camera","permission.geolocation","permissions.microphone","system.applePayVersion","system.cookieEnabled"],browsers:["safari"]}],vpn:[{exclude:["ip"]}]};function i(e){let n=0;for(let t=0;t<e.length;++t)n+=Math.abs(e[t]);return n}function a(e,n,t){let r=[];for(let n=0;n<e[0].data.length;n++){let t=[];for(let r=0;r<e.length;r++)t.push(e[r].data[n]);r.push(s(t))}const o=new Uint8ClampedArray(r);return new ImageData(o,n,t)}function s(e){if(0===e.length)return 0;const n={};for(const t of e)n[t]=(n[t]||0)+1;let t=e[0];for(const e in n)n[e]>n[t]&&(t=parseInt(e,10));return t}function c(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const l=new Uint32Array([597399067,2869860233,951274213,2716044179]);function u(e,n){return e<<n|e>>>32-n}function d(e,n=0){var t;if(n=n?0|n:0,"string"==typeof e&&(t=e,e=(new TextEncoder).encode(t).buffer),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const r=new Uint32Array([n,n,n,n]);!function(e,n){const t=e.byteLength/16|0,r=new Uint32Array(e,0,4*t);for(let e=0;e<t;e++){const t=r.subarray(4*e,4*(e+1));t[0]=Math.imul(t[0],l[0]),t[0]=u(t[0],15),t[0]=Math.imul(t[0],l[1]),n[0]=n[0]^t[0],n[0]=u(n[0],19),n[0]=n[0]+n[1],n[0]=Math.imul(n[0],5)+1444728091,t[1]=Math.imul(t[1],l[1]),t[1]=u(t[1],16),t[1]=Math.imul(t[1],l[2]),n[1]=n[1]^t[1],n[1]=u(n[1],17),n[1]=n[1]+n[2],n[1]=Math.imul(n[1],5)+197830471,t[2]=Math.imul(t[2],l[2]),t[2]=u(t[2],17),t[2]=Math.imul(t[2],l[3]),n[2]=n[2]^t[2],n[2]=u(n[2],15),n[2]=n[2]+n[3],n[2]=Math.imul(n[2],5)+2530024501,t[3]=Math.imul(t[3],l[3]),t[3]=u(t[3],18),t[3]=Math.imul(t[3],l[0]),n[3]=n[3]^t[3],n[3]=u(n[3],13),n[3]=n[3]+n[0],n[3]=Math.imul(n[3],5)+850148119}}(e,r),function(e,n){const t=e.byteLength/16|0,r=e.byteLength%16,o=new Uint32Array(4),i=new Uint8Array(e,16*t,r);switch(r){case 15:o[3]=o[3]^i[14]<<16;case 14:o[3]=o[3]^i[13]<<8;case 13:o[3]=o[3]^i[12],o[3]=Math.imul(o[3],l[3]),o[3]=u(o[3],18),o[3]=Math.imul(o[3],l[0]),n[3]=n[3]^o[3];case 12:o[2]=o[2]^i[11]<<24;case 11:o[2]=o[2]^i[10]<<16;case 10:o[2]=o[2]^i[9]<<8;case 9:o[2]=o[2]^i[8],o[2]=Math.imul(o[2],l[2]),o[2]=u(o[2],17),o[2]=Math.imul(o[2],l[3]),n[2]=n[2]^o[2];case 8:o[1]=o[1]^i[7]<<24;case 7:o[1]=o[1]^i[6]<<16;case 6:o[1]=o[1]^i[5]<<8;case 5:o[1]=o[1]^i[4],o[1]=Math.imul(o[1],l[1]),o[1]=u(o[1],16),o[1]=Math.imul(o[1],l[2]),n[1]=n[1]^o[1];case 4:o[0]=o[0]^i[3]<<24;case 3:o[0]=o[0]^i[2]<<16;case 2:o[0]=o[0]^i[1]<<8;case 1:o[0]=o[0]^i[0],o[0]=Math.imul(o[0],l[0]),o[0]=u(o[0],15),o[0]=Math.imul(o[0],l[1]),n[0]=n[0]^o[0]}}(e,r),function(e,n){n[0]=n[0]^e.byteLength,n[1]=n[1]^e.byteLength,n[2]=n[2]^e.byteLength,n[3]=n[3]^e.byteLength,n[0]=n[0]+n[1]|0,n[0]=n[0]+n[2]|0,n[0]=n[0]+n[3]|0,n[1]=n[1]+n[0]|0,n[2]=n[2]+n[0]|0,n[3]=n[3]+n[0]|0,n[0]=c(n[0]),n[1]=c(n[1]),n[2]=c(n[2]),n[3]=c(n[3]),n[0]=n[0]+n[1]|0,n[0]=n[0]+n[2]|0,n[0]=n[0]+n[3]|0,n[1]=n[1]+n[0]|0,n[2]=n[2]+n[0]|0,n[3]=n[3]+n[0]|0}(e,r);const o=new Uint8Array(r.buffer);return Array.from(o).map((e=>e.toString(16).padStart(2,"0"))).join("")}const m=280;function h(e,n){return new Promise((t=>setTimeout(t,e,n)))}const f=["Arial","Arial Black","Arial Narrow","Arial Rounded MT","Arimo","Archivo","Barlow","Bebas Neue","Bitter","Bookman","Calibri","Cabin","Candara","Century","Century Gothic","Comic Sans MS","Constantia","Courier","Courier New","Crimson Text","DM Mono","DM Sans","DM Serif Display","DM Serif Text","Dosis","Droid Sans","Exo","Fira Code","Fira Sans","Franklin Gothic Medium","Garamond","Geneva","Georgia","Gill Sans","Helvetica","Impact","Inconsolata","Indie Flower","Inter","Josefin Sans","Karla","Lato","Lexend","Lucida Bright","Lucida Console","Lucida Sans Unicode","Manrope","Merriweather","Merriweather Sans","Montserrat","Myriad","Noto Sans","Nunito","Nunito Sans","Open Sans","Optima","Orbitron","Oswald","Pacifico","Palatino","Perpetua","PT Sans","PT Serif","Poppins","Prompt","Public Sans","Quicksand","Rajdhani","Recursive","Roboto","Roboto Condensed","Rockwell","Rubik","Segoe Print","Segoe Script","Segoe UI","Sora","Source Sans Pro","Space Mono","Tahoma","Taviraj","Times","Times New Roman","Titillium Web","Trebuchet MS","Ubuntu","Varela Round","Verdana","Work Sans"],p=["monospace","sans-serif","serif"];function g(e,n){if(!e)throw new Error("Canvas context not supported");return e.font=`72px ${n}`,e.measureText("WwMmLli0Oo").width}function v(){var e;const n=document.createElement("canvas"),t=null!==(e=n.getContext("webgl"))&&void 0!==e?e:n.getContext("experimental-webgl");if(t&&"getParameter"in t)try{const e=(t.getParameter(t.VENDOR)||"").toString(),n=(t.getParameter(t.RENDERER)||"").toString();let r={vendor:e,renderer:n,version:(t.getParameter(t.VERSION)||"").toString(),shadingLanguageVersion:(t.getParameter(t.SHADING_LANGUAGE_VERSION)||"").toString()};if(!n.length||!e.length){const e=t.getExtension("WEBGL_debug_renderer_info");if(e){const n=(t.getParameter(e.UNMASKED_VENDOR_WEBGL)||"").toString(),o=(t.getParameter(e.UNMASKED_RENDERER_WEBGL)||"").toString();n&&(r.vendorUnmasked=n),o&&(r.rendererUnmasked=o)}}return r}catch(e){}return"undefined"}function w(){const e=new Float32Array(1),n=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],n[3]}const y=(e,n,t,r)=>{const o=(t-n)/r;let i=0;for(let t=0;t<r;t++){i+=e(n+(t+.5)*o)}return i*o};function b(e,n){const t={};return n.forEach((n=>{const r=function(e){if(0===e.length)return null;const n={};e.forEach((e=>{const t=String(e);n[t]=(n[t]||0)+1}));let t=e[0],r=1;return Object.keys(n).forEach((e=>{n[e]>r&&(t=e,r=n[e])})),t}(e.map((e=>n in e?e[n]:void 0)).filter((e=>void 0!==e)));r&&(t[n]=r)})),t}const S=["accelerometer","accessibility","accessibility-events","ambient-light-sensor","background-fetch","background-sync","bluetooth","camera","clipboard-read","clipboard-write","device-info","display-capture","gyroscope","geolocation","local-fonts","magnetometer","microphone","midi","nfc","notifications","payment-handler","persistent-storage","push","speaker","storage-access","top-level-storage-access","window-management","query"];function M(){var e,n,t,r,o,i;if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const a=navigator.userAgent,s=[/(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>EdgA|EdgiOS|Edg)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>OPR|OPX)\/(?<version>\d+(?:\.\d+)+)/,/Opera[\s\/](?<version>\d+(?:\.\d+)+)/,/Opera Mini\/(?<version>\d+(?:\.\d+)+)/,/Opera Mobi\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Vivaldi)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Brave)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>CriOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>FxiOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Chrome|Chromium)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Firefox|Waterfox|Iceweasel|IceCat)\/(?<version>\d+(?:\.\d+)+)/,/Version\/(?<version1>[\d.]+).*Safari\/[\d.]+|(?<name>Safari)\/(?<version2>[\d.]+)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)+)/,/(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)+)/],c={edg:"Edge",edga:"Edge",edgios:"Edge",opr:"Opera",opx:"Opera",crios:"Chrome",fxios:"Firefox",samsung:"SamsungBrowser",vivaldi:"Vivaldi",brave:"Brave"};for(const l of s){const s=a.match(l);if(s){let a=null===(e=s.groups)||void 0===e?void 0:e.name,u=(null===(n=s.groups)||void 0===n?void 0:n.version)||(null===(t=s.groups)||void 0===t?void 0:t.version1)||(null===(r=s.groups)||void 0===r?void 0:r.version2);if(a||!(null===(o=s.groups)||void 0===o?void 0:o.version1)&&!(null===(i=s.groups)||void 0===i?void 0:i.version2)||(a="Safari"),!a&&l.source.includes("Opera Mini")&&(a="Opera Mini"),!a&&l.source.includes("Opera Mobi")&&(a="Opera Mobi"),!a&&l.source.includes("Opera")&&(a="Opera"),!a&&s[1]&&(a=s[1]),!u&&s[2]&&(u=s[2]),a){return{name:c[a.toLowerCase()]||a,version:u||"unknown"}}}}return{name:"unknown",version:"unknown"}}function P(){if("undefined"==typeof navigator||!navigator.userAgent)return!1;const e=navigator.userAgent;return/Mobi|Android|iPhone|iPod|IEMobile|Opera Mini|Opera Mobi|webOS|BlackBerry|Windows Phone/i.test(e)&&!/iPad/i.test(e)}function E(){let e=[];const n={"prefers-contrast":["high","more","low","less","forced","no-preference"],"any-hover":["hover","none"],"any-pointer":["none","coarse","fine"],pointer:["none","coarse","fine"],hover:["hover","none"],update:["fast","slow"],"inverted-colors":["inverted","none"],"prefers-reduced-motion":["reduce","no-preference"],"prefers-reduced-transparency":["reduce","no-preference"],scripting:["none","initial-only","enabled"],"forced-colors":["active","none"]};return Object.keys(n).forEach((t=>{n[t].forEach((n=>{matchMedia(`(${t}: ${n})`).matches&&e.push(`${t}: ${n}`)}))})),e}function A(){if("https:"===window.location.protocol&&"function"==typeof window.ApplePaySession)try{const e=window.ApplePaySession.supportsVersion;for(let n=15;n>0;n--)if(e(n))return n}catch(e){return 0}return 0}const x="SamsungBrowser"!==M().name?1:3;let C,T=null;const k={audio:async function(){return async function(){return new Promise(((e,n)=>{try{const n=44100,t=5e3,r=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,t,n),o=r.createBufferSource(),a=r.createOscillator();a.frequency.value=1e3;const s=r.createDynamicsCompressor();let c;s.threshold.value=-50,s.knee.value=40,s.ratio.value=12,s.attack.value=0,s.release.value=.2,a.connect(s),s.connect(r.destination),a.start(),r.oncomplete=n=>{c=n.renderedBuffer.getChannelData(0),e({sampleHash:i(c),maxChannels:r.destination.maxChannelCount,channelCountMode:o.channelCountMode})},r.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),n(e)}}))}()},canvas:async function(){return new Promise((e=>{const n=Array.from({length:3},(()=>function(){const e=document.createElement("canvas"),n=e.getContext("2d");if(!n)return new ImageData(1,1);e.width=m,e.height=20;const t=n.createLinearGradient(0,0,e.width,e.height);t.addColorStop(0,"red"),t.addColorStop(1/6,"orange"),t.addColorStop(2/6,"yellow"),t.addColorStop(.5,"green"),t.addColorStop(4/6,"blue"),t.addColorStop(5/6,"indigo"),t.addColorStop(1,"violet"),n.fillStyle=t,n.fillRect(0,0,e.width,e.height);const r="Random Text WMwmil10Oo";n.font="23.123px Arial",n.fillStyle="black",n.fillText(r,-5,15),n.fillStyle="rgba(0, 0, 255, 0.5)",n.fillText(r,-3.3,17.7),n.beginPath(),n.moveTo(0,0),n.lineTo(2*e.width/7,e.height),n.strokeStyle="white",n.lineWidth=2,n.stroke();const o=n.getImageData(0,0,e.width,e.height);return o}()));e({commonPixelsHash:d(a(n,m,20).data.toString()).toString()})}))},fonts:async function(e){return new Promise(((e,n)=>{try{!async function(e){for(var n;!document.body;)await h(50);const t=document.createElement("iframe");t.setAttribute("frameBorder","0");const r=t.style;r.setProperty("position","fixed"),r.setProperty("display","block","important"),r.setProperty("visibility","visible"),r.setProperty("border","0"),r.setProperty("opacity","0"),t.src="about:blank",document.body.appendChild(t);const o=t.contentDocument||(null===(n=t.contentWindow)||void 0===n?void 0:n.document);if(!o)throw new Error("Iframe document is not accessible");e({iframe:o}),setTimeout((()=>{document.body.removeChild(t)}),0)}((async({iframe:n})=>{const t=n.createElement("canvas").getContext("2d"),r=p.map((e=>g(t,e)));let o={};f.forEach((e=>{const n=g(t,e);r.includes(n)||(o[e]=n)})),e(o)}))}catch(e){n({error:"unsupported"})}}))},hardware:function(){return new Promise(((e,n)=>{const t=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,r=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:v(),architecture:w(),deviceMemory:t.toString()||"undefined",jsHeapSizeLimit:r.jsHeapSizeLimit||0})}))},locales:function(){return new Promise((e=>{e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))},math:function(){return new Promise((e=>{e({acos:Math.acos(.5),asin:y(Math.asin,-1,1,97),cos:y(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:y(Math.sin,-Math.PI,Math.PI,97),tan:y(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){let n=(null==e?void 0:e.permissions_to_check)||S;const t=Array.from({length:3},(()=>async function(e){const n={};for(const t of e)try{const e=await navigator.permissions.query({name:t});n[t]=e.state.toString()}catch(e){}return n}(n)));return Promise.all(t).then((e=>b(e,n)))},plugins:async function(){const e=[];if(navigator.plugins)for(let n=0;n<navigator.plugins.length;n++){const t=navigator.plugins[n];e.push([t.name,t.filename,t.description].join("|"))}return new Promise((n=>{n({plugins:e})}))},screen:function(){return new Promise((e=>{const n={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:E()};P()&&navigator.maxTouchPoints>0&&(n.resolution=function(){const e=window.screen.width,n=window.screen.height,t=Math.max(e,n).toString(),r=Math.min(e,n).toString();return`${t}x${r}`}()),e(n)}))},system:function(){return new Promise((e=>{const n=M();e({platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:n.name,version:n.version},mobile:P(),applePayVersion:A(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(C=document.createElement("canvas"),C.width=200,C.height=100,T=C.getContext("webgl"));try{if(!T)throw new Error("WebGL not supported");const e=Array.from({length:x},(()=>function(){try{if(!T)throw new Error("WebGL not supported");const e="\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n ",n="\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n ",t=T.createShader(T.VERTEX_SHADER),r=T.createShader(T.FRAGMENT_SHADER);if(!t||!r)throw new Error("Failed to create shaders");if(T.shaderSource(t,e),T.shaderSource(r,n),T.compileShader(t),!T.getShaderParameter(t,T.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+T.getShaderInfoLog(t));if(T.compileShader(r),!T.getShaderParameter(r,T.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+T.getShaderInfoLog(r));const o=T.createProgram();if(!o)throw new Error("Failed to create shader program");if(T.attachShader(o,t),T.attachShader(o,r),T.linkProgram(o),!T.getProgramParameter(o,T.LINK_STATUS))throw new Error("Shader program linking failed: "+T.getProgramInfoLog(o));T.useProgram(o);const i=137,a=new Float32Array(4*i),s=2*Math.PI/i;for(let e=0;e<i;e++){const n=e*s;a[4*e]=0,a[4*e+1]=0,a[4*e+2]=Math.cos(n)*(C.width/2),a[4*e+3]=Math.sin(n)*(C.height/2)}const c=T.createBuffer();T.bindBuffer(T.ARRAY_BUFFER,c),T.bufferData(T.ARRAY_BUFFER,a,T.STATIC_DRAW);const l=T.getAttribLocation(o,"position");T.enableVertexAttribArray(l),T.vertexAttribPointer(l,2,T.FLOAT,!1,0,0),T.viewport(0,0,C.width,C.height),T.clearColor(0,0,0,1),T.clear(T.COLOR_BUFFER_BIT),T.drawArrays(T.LINES,0,2*i);const u=new Uint8ClampedArray(C.width*C.height*4);T.readPixels(0,0,C.width,C.height,T.RGBA,T.UNSIGNED_BYTE,u);return new ImageData(u,C.width,C.height)}catch(e){return new ImageData(1,1)}finally{T&&(T.bindBuffer(T.ARRAY_BUFFER,null),T.useProgram(null),T.viewport(0,0,T.drawingBufferWidth,T.drawingBufferHeight),T.clearColor(0,0,0,0))}}()));return{commonPixelsHash:d(a(e,C.width,C.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},O={},R={timeout:"true"},I=(e,n,t)=>{O[e]=n};function L(){return"1.1.3-rc.2"}function _(e,n){var t;let r=M();if("unknown"===r.name&&e.system&&"object"==typeof e.system&&!Array.isArray(e.system)){const n=e.system.browser;if(n&&"object"==typeof n&&!Array.isArray(n)){const e=n;r={name:e.name||"unknown",version:e.version||"unknown"}}}const i=r.name.toLowerCase(),a=r.version.split(".")[0]||"0",s=parseInt(a,10),c=[...(null==n?void 0:n.exclude)||[]],l=(null==n?void 0:n.stabilize)||[],u=(null==n?void 0:n.include)||[];for(const e of l){const n=o[e];if(n)for(const e of n){const n=!("browsers"in e),r=!n&&(null===(t=e.browsers)||void 0===t?void 0:t.some((e=>{const n=e.match(/(.+?)(>=)(\d+)/);if(n){const[,e,,t]=n,r=parseInt(t,10);return i===e&&s>=r}return i===e})));(n||r)&&c.push(...e.exclude)}}return function e(n,t=""){const r={};for(const[o,i]of Object.entries(n)){const n=t?`${t}.${o}`:o;if("object"!=typeof i||Array.isArray(i)||null===i){const e=c.some((e=>n.startsWith(e))),t=u.some((e=>n.startsWith(e)));e&&!t||(r[o]=i)}else{const t=e(i,n);Object.keys(t).length>0&&(r[o]=t)}}return r}(e)}let B=null,D=null;async function F(e){const r={...t,...e},o={...k,...O},{elapsed:i,resolvedComponents:a}=await N(o,r),s=r.api_key?((e,t)=>{if(e.cache_api_call&&D)return Promise.resolve(D);if(B)return B;const r=fetch(`${n}/thumbmark`,{method:"POST",headers:{"x-api-key":e.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify({components:t,options:e,clientHash:d(JSON.stringify(t)),version:"1.1.3-rc.2"})}).then((e=>{if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return e.json()})).then((e=>(D=e,B=null,e))).catch((e=>(console.error("Error fetching pro data",e),B=null,null))),o=e.timeout||5e3,i=new Promise((e=>{setTimeout((()=>{e({thumbmark:d(JSON.stringify(t)),info:{timed_out:!0},version:"1.1.3-rc.2"})}),o)}));return B=Promise.race([r,i]),B})(r,a):null,c=s?await s:null,l=r.performance?{elapsed:i}:{},u=_((null==c?void 0:c.components)||{},r),m={...a,...u},h=(null==c?void 0:c.info)||{uniqueness:{score:"api only"}},f=d(JSON.stringify(m));return async function(e,t,r){var o;const i=`${n}/log`,a={thumbmark:e,components:t,version:"1.1.3-rc.2",options:r,path:null===(o=null===window||void 0===window?void 0:window.location)||void 0===o?void 0:o.pathname};if(!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4){sessionStorage.setItem("_tmjs_l","1");try{await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}catch(e){}}}(f,m,r).catch((()=>{})),{thumbmark:f,components:m,info:h,version:"1.1.3-rc.2",...l}}async function N(e,n){const r={...t,...n},o=Object.entries(e).filter((([e])=>{var n;return!(null===(n=null==r?void 0:r.exclude)||void 0===n?void 0:n.includes(e))})).filter((([e])=>{var n,t,o,i;return(null===(n=null==r?void 0:r.include)||void 0===n?void 0:n.some((e=>e.includes("."))))?null===(t=null==r?void 0:r.include)||void 0===t?void 0:t.some((n=>n.startsWith(e))):0===(null===(o=null==r?void 0:r.include)||void 0===o?void 0:o.length)||(null===(i=null==r?void 0:r.include)||void 0===i?void 0:i.includes(e))})),i=o.map((([e])=>e)),a=o.map((([e,t])=>t(n))),s=await function(e,n,t){return Promise.all(e.map((e=>{const r=performance.now();return Promise.race([e.then((e=>({value:e,elapsed:performance.now()-r}))),(o=n,i=t,new Promise((e=>{setTimeout((()=>e(i)),o)}))).then((e=>({value:e,elapsed:performance.now()-r})))]);var o,i})))}(a,(null==r?void 0:r.timeout)||5e3,R),c={},l={};s.forEach(((e,n)=>{var t;null!=e.value&&(l[i[n]]=e.value,c[i[n]]=null!==(t=e.elapsed)&&void 0!==t?t:0)}));const u=_(l,r);return{elapsed:c,resolvedComponents:u}}e.Thumbmark=class{constructor(e){this.options={...t,...e}}async get(e){return F({...this.options,...e})}getVersion(){return"1.1.3-rc.2"}includeComponent(e,n){I(e,n)}},e.filterThumbmarkData=_,e.getFingerprint=async function(e){try{const n=await F(r);return e?{hash:n.thumbmark.toString(),data:n.components}:n.thumbmark.toString()}catch(e){throw e}},e.getFingerprintData=async function(){return(await F(r)).components},e.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:n}=await N(k,r);return{...n,elapsed:e}}catch(e){throw e}},e.getThumbmark=F,e.getVersion=L,e.includeComponent=I,e.setOption=function(e,n){r[e]=n},e.stabilizationExclusionRules=o}));
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).ThumbmarkJS={})}(this,(function(e){"use strict";const n="https://api.thumbmarkjs.com",t={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1};let r={...t};const o={private:[{exclude:["canvas"],browsers:["firefox","safari>=17","brave"]},{exclude:["audio"],browsers:["samsungbrowser","safari"]},{exclude:["fonts"],browsers:["firefox"]},{exclude:["audio.sampleHash","hardware.deviceMemory","header.acceptLanguage.q","system.hardwareConcurrency","plugins"],browsers:["brave"]},{exclude:["tls.extensions"],browsers:["firefox"]},{exclude:["header.acceptLanguage"],browsers:["edge","chrome"]}],iframe:[{exclude:["permissions.camera","permission.geolocation","permissions.microphone","system.applePayVersion","system.cookieEnabled"],browsers:["safari"]}],vpn:[{exclude:["ip"]}]};function i(e){let n=0;for(let t=0;t<e.length;++t)n+=Math.abs(e[t]);return n}function a(e,n,t){let r=[];for(let n=0;n<e[0].data.length;n++){let t=[];for(let r=0;r<e.length;r++)t.push(e[r].data[n]);r.push(s(t))}const o=new Uint8ClampedArray(r);return new ImageData(o,n,t)}function s(e){if(0===e.length)return 0;const n={};for(const t of e)n[t]=(n[t]||0)+1;let t=e[0];for(const e in n)n[e]>n[t]&&(t=parseInt(e,10));return t}function c(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const l=new Uint32Array([597399067,2869860233,951274213,2716044179]);function u(e,n){return e<<n|e>>>32-n}function d(e,n=0){var t;if(n=n?0|n:0,"string"==typeof e&&(t=e,e=(new TextEncoder).encode(t).buffer),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const r=new Uint32Array([n,n,n,n]);!function(e,n){const t=e.byteLength/16|0,r=new Uint32Array(e,0,4*t);for(let e=0;e<t;e++){const t=r.subarray(4*e,4*(e+1));t[0]=Math.imul(t[0],l[0]),t[0]=u(t[0],15),t[0]=Math.imul(t[0],l[1]),n[0]=n[0]^t[0],n[0]=u(n[0],19),n[0]=n[0]+n[1],n[0]=Math.imul(n[0],5)+1444728091,t[1]=Math.imul(t[1],l[1]),t[1]=u(t[1],16),t[1]=Math.imul(t[1],l[2]),n[1]=n[1]^t[1],n[1]=u(n[1],17),n[1]=n[1]+n[2],n[1]=Math.imul(n[1],5)+197830471,t[2]=Math.imul(t[2],l[2]),t[2]=u(t[2],17),t[2]=Math.imul(t[2],l[3]),n[2]=n[2]^t[2],n[2]=u(n[2],15),n[2]=n[2]+n[3],n[2]=Math.imul(n[2],5)+2530024501,t[3]=Math.imul(t[3],l[3]),t[3]=u(t[3],18),t[3]=Math.imul(t[3],l[0]),n[3]=n[3]^t[3],n[3]=u(n[3],13),n[3]=n[3]+n[0],n[3]=Math.imul(n[3],5)+850148119}}(e,r),function(e,n){const t=e.byteLength/16|0,r=e.byteLength%16,o=new Uint32Array(4),i=new Uint8Array(e,16*t,r);switch(r){case 15:o[3]=o[3]^i[14]<<16;case 14:o[3]=o[3]^i[13]<<8;case 13:o[3]=o[3]^i[12],o[3]=Math.imul(o[3],l[3]),o[3]=u(o[3],18),o[3]=Math.imul(o[3],l[0]),n[3]=n[3]^o[3];case 12:o[2]=o[2]^i[11]<<24;case 11:o[2]=o[2]^i[10]<<16;case 10:o[2]=o[2]^i[9]<<8;case 9:o[2]=o[2]^i[8],o[2]=Math.imul(o[2],l[2]),o[2]=u(o[2],17),o[2]=Math.imul(o[2],l[3]),n[2]=n[2]^o[2];case 8:o[1]=o[1]^i[7]<<24;case 7:o[1]=o[1]^i[6]<<16;case 6:o[1]=o[1]^i[5]<<8;case 5:o[1]=o[1]^i[4],o[1]=Math.imul(o[1],l[1]),o[1]=u(o[1],16),o[1]=Math.imul(o[1],l[2]),n[1]=n[1]^o[1];case 4:o[0]=o[0]^i[3]<<24;case 3:o[0]=o[0]^i[2]<<16;case 2:o[0]=o[0]^i[1]<<8;case 1:o[0]=o[0]^i[0],o[0]=Math.imul(o[0],l[0]),o[0]=u(o[0],15),o[0]=Math.imul(o[0],l[1]),n[0]=n[0]^o[0]}}(e,r),function(e,n){n[0]=n[0]^e.byteLength,n[1]=n[1]^e.byteLength,n[2]=n[2]^e.byteLength,n[3]=n[3]^e.byteLength,n[0]=n[0]+n[1]|0,n[0]=n[0]+n[2]|0,n[0]=n[0]+n[3]|0,n[1]=n[1]+n[0]|0,n[2]=n[2]+n[0]|0,n[3]=n[3]+n[0]|0,n[0]=c(n[0]),n[1]=c(n[1]),n[2]=c(n[2]),n[3]=c(n[3]),n[0]=n[0]+n[1]|0,n[0]=n[0]+n[2]|0,n[0]=n[0]+n[3]|0,n[1]=n[1]+n[0]|0,n[2]=n[2]+n[0]|0,n[3]=n[3]+n[0]|0}(e,r);const o=new Uint8Array(r.buffer);return Array.from(o).map((e=>e.toString(16).padStart(2,"0"))).join("")}const m=280;function h(e,n){return new Promise((t=>setTimeout(t,e,n)))}const f=["Arial","Arial Black","Arial Narrow","Arial Rounded MT","Arimo","Archivo","Barlow","Bebas Neue","Bitter","Bookman","Calibri","Cabin","Candara","Century","Century Gothic","Comic Sans MS","Constantia","Courier","Courier New","Crimson Text","DM Mono","DM Sans","DM Serif Display","DM Serif Text","Dosis","Droid Sans","Exo","Fira Code","Fira Sans","Franklin Gothic Medium","Garamond","Geneva","Georgia","Gill Sans","Helvetica","Impact","Inconsolata","Indie Flower","Inter","Josefin Sans","Karla","Lato","Lexend","Lucida Bright","Lucida Console","Lucida Sans Unicode","Manrope","Merriweather","Merriweather Sans","Montserrat","Myriad","Noto Sans","Nunito","Nunito Sans","Open Sans","Optima","Orbitron","Oswald","Pacifico","Palatino","Perpetua","PT Sans","PT Serif","Poppins","Prompt","Public Sans","Quicksand","Rajdhani","Recursive","Roboto","Roboto Condensed","Rockwell","Rubik","Segoe Print","Segoe Script","Segoe UI","Sora","Source Sans Pro","Space Mono","Tahoma","Taviraj","Times","Times New Roman","Titillium Web","Trebuchet MS","Ubuntu","Varela Round","Verdana","Work Sans"],p=["monospace","sans-serif","serif"];function g(e,n){if(!e)throw new Error("Canvas context not supported");return e.font=`72px ${n}`,e.measureText("WwMmLli0Oo").width}function v(){var e;const n=document.createElement("canvas"),t=null!==(e=n.getContext("webgl"))&&void 0!==e?e:n.getContext("experimental-webgl");if(t&&"getParameter"in t)try{const e=(t.getParameter(t.VENDOR)||"").toString(),n=(t.getParameter(t.RENDERER)||"").toString();let r={vendor:e,renderer:n,version:(t.getParameter(t.VERSION)||"").toString(),shadingLanguageVersion:(t.getParameter(t.SHADING_LANGUAGE_VERSION)||"").toString()};if(!n.length||!e.length){const e=t.getExtension("WEBGL_debug_renderer_info");if(e){const n=(t.getParameter(e.UNMASKED_VENDOR_WEBGL)||"").toString(),o=(t.getParameter(e.UNMASKED_RENDERER_WEBGL)||"").toString();n&&(r.vendorUnmasked=n),o&&(r.rendererUnmasked=o)}}return r}catch(e){}return"undefined"}function w(){const e=new Float32Array(1),n=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],n[3]}const y=(e,n,t,r)=>{const o=(t-n)/r;let i=0;for(let t=0;t<r;t++){i+=e(n+(t+.5)*o)}return i*o};function b(e,n){const t={};return n.forEach((n=>{const r=function(e){if(0===e.length)return null;const n={};e.forEach((e=>{const t=String(e);n[t]=(n[t]||0)+1}));let t=e[0],r=1;return Object.keys(n).forEach((e=>{n[e]>r&&(t=e,r=n[e])})),t}(e.map((e=>n in e?e[n]:void 0)).filter((e=>void 0!==e)));r&&(t[n]=r)})),t}const S=["accelerometer","accessibility","accessibility-events","ambient-light-sensor","background-fetch","background-sync","bluetooth","camera","clipboard-read","clipboard-write","device-info","display-capture","gyroscope","geolocation","local-fonts","magnetometer","microphone","midi","nfc","notifications","payment-handler","persistent-storage","push","speaker","storage-access","top-level-storage-access","window-management","query"];function M(){var e,n,t,r,o,i;if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const a=navigator.userAgent,s=[/(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>EdgA|EdgiOS|Edg)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>OPR|OPX)\/(?<version>\d+(?:\.\d+)+)/,/Opera[\s\/](?<version>\d+(?:\.\d+)+)/,/Opera Mini\/(?<version>\d+(?:\.\d+)+)/,/Opera Mobi\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Vivaldi)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Brave)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>CriOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>FxiOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Chrome|Chromium)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Firefox|Waterfox|Iceweasel|IceCat)\/(?<version>\d+(?:\.\d+)+)/,/Version\/(?<version1>[\d.]+).*Safari\/[\d.]+|(?<name>Safari)\/(?<version2>[\d.]+)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)+)/,/(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)+)/],c={edg:"Edge",edga:"Edge",edgios:"Edge",opr:"Opera",opx:"Opera",crios:"Chrome",fxios:"Firefox",samsung:"SamsungBrowser",vivaldi:"Vivaldi",brave:"Brave"};for(const l of s){const s=a.match(l);if(s){let a=null===(e=s.groups)||void 0===e?void 0:e.name,u=(null===(n=s.groups)||void 0===n?void 0:n.version)||(null===(t=s.groups)||void 0===t?void 0:t.version1)||(null===(r=s.groups)||void 0===r?void 0:r.version2);if(a||!(null===(o=s.groups)||void 0===o?void 0:o.version1)&&!(null===(i=s.groups)||void 0===i?void 0:i.version2)||(a="Safari"),!a&&l.source.includes("Opera Mini")&&(a="Opera Mini"),!a&&l.source.includes("Opera Mobi")&&(a="Opera Mobi"),!a&&l.source.includes("Opera")&&(a="Opera"),!a&&s[1]&&(a=s[1]),!u&&s[2]&&(u=s[2]),a){return{name:c[a.toLowerCase()]||a,version:u||"unknown"}}}}return{name:"unknown",version:"unknown"}}function P(){if("undefined"==typeof navigator||!navigator.userAgent)return!1;const e=navigator.userAgent;return/Mobi|Android|iPhone|iPod|IEMobile|Opera Mini|Opera Mobi|webOS|BlackBerry|Windows Phone/i.test(e)&&!/iPad/i.test(e)}function E(){let e=[];const n={"prefers-contrast":["high","more","low","less","forced","no-preference"],"any-hover":["hover","none"],"any-pointer":["none","coarse","fine"],pointer:["none","coarse","fine"],hover:["hover","none"],update:["fast","slow"],"inverted-colors":["inverted","none"],"prefers-reduced-motion":["reduce","no-preference"],"prefers-reduced-transparency":["reduce","no-preference"],scripting:["none","initial-only","enabled"],"forced-colors":["active","none"]};return Object.keys(n).forEach((t=>{n[t].forEach((n=>{matchMedia(`(${t}: ${n})`).matches&&e.push(`${t}: ${n}`)}))})),e}function A(){if("https:"===window.location.protocol&&"function"==typeof window.ApplePaySession)try{const e=window.ApplePaySession.supportsVersion;for(let n=15;n>0;n--)if(e(n))return n}catch(e){return 0}return 0}const x="SamsungBrowser"!==M().name?1:3;let C,T=null;const k={audio:async function(){return async function(){return new Promise(((e,n)=>{try{const n=44100,t=5e3,r=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,t,n),o=r.createBufferSource(),a=r.createOscillator();a.frequency.value=1e3;const s=r.createDynamicsCompressor();let c;s.threshold.value=-50,s.knee.value=40,s.ratio.value=12,s.attack.value=0,s.release.value=.2,a.connect(s),s.connect(r.destination),a.start(),r.oncomplete=n=>{c=n.renderedBuffer.getChannelData(0),e({sampleHash:i(c),maxChannels:r.destination.maxChannelCount,channelCountMode:o.channelCountMode})},r.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),n(e)}}))}()},canvas:async function(){return new Promise((e=>{const n=Array.from({length:3},(()=>function(){const e=document.createElement("canvas"),n=e.getContext("2d");if(!n)return new ImageData(1,1);e.width=m,e.height=20;const t=n.createLinearGradient(0,0,e.width,e.height);t.addColorStop(0,"red"),t.addColorStop(1/6,"orange"),t.addColorStop(2/6,"yellow"),t.addColorStop(.5,"green"),t.addColorStop(4/6,"blue"),t.addColorStop(5/6,"indigo"),t.addColorStop(1,"violet"),n.fillStyle=t,n.fillRect(0,0,e.width,e.height);const r="Random Text WMwmil10Oo";n.font="23.123px Arial",n.fillStyle="black",n.fillText(r,-5,15),n.fillStyle="rgba(0, 0, 255, 0.5)",n.fillText(r,-3.3,17.7),n.beginPath(),n.moveTo(0,0),n.lineTo(2*e.width/7,e.height),n.strokeStyle="white",n.lineWidth=2,n.stroke();const o=n.getImageData(0,0,e.width,e.height);return o}()));e({commonPixelsHash:d(a(n,m,20).data.toString()).toString()})}))},fonts:async function(e){return new Promise(((e,n)=>{try{!async function(e){for(var n;!document.body;)await h(50);const t=document.createElement("iframe");t.setAttribute("frameBorder","0");const r=t.style;r.setProperty("position","fixed"),r.setProperty("display","block","important"),r.setProperty("visibility","visible"),r.setProperty("border","0"),r.setProperty("opacity","0"),t.src="about:blank",document.body.appendChild(t);const o=t.contentDocument||(null===(n=t.contentWindow)||void 0===n?void 0:n.document);if(!o)throw new Error("Iframe document is not accessible");e({iframe:o}),setTimeout((()=>{document.body.removeChild(t)}),0)}((async({iframe:n})=>{const t=n.createElement("canvas").getContext("2d"),r=p.map((e=>g(t,e)));let o={};f.forEach((e=>{const n=g(t,e);r.includes(n)||(o[e]=n)})),e(o)}))}catch(e){n({error:"unsupported"})}}))},hardware:function(){return new Promise(((e,n)=>{const t=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,r=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:v(),architecture:w(),deviceMemory:t.toString()||"undefined",jsHeapSizeLimit:r.jsHeapSizeLimit||0})}))},locales:function(){return new Promise((e=>{e({languages:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}))},math:function(){return new Promise((e=>{e({acos:Math.acos(.5),asin:y(Math.asin,-1,1,97),cos:y(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:y(Math.sin,-Math.PI,Math.PI,97),tan:y(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){let n=(null==e?void 0:e.permissions_to_check)||S;const t=Array.from({length:3},(()=>async function(e){const n={};for(const t of e)try{const e=await navigator.permissions.query({name:t});n[t]=e.state.toString()}catch(e){}return n}(n)));return Promise.all(t).then((e=>b(e,n)))},plugins:async function(){const e=[];if(navigator.plugins)for(let n=0;n<navigator.plugins.length;n++){const t=navigator.plugins[n];e.push([t.name,t.filename,t.description].join("|"))}return new Promise((n=>{n({plugins:e})}))},screen:function(){return new Promise((e=>{const n={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:E()};P()&&navigator.maxTouchPoints>0&&(n.resolution=function(){const e=window.screen.width,n=window.screen.height,t=Math.max(e,n).toString(),r=Math.min(e,n).toString();return`${t}x${r}`}()),e(n)}))},system:function(){return new Promise((e=>{const n=M();e({platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:n.name,version:n.version},mobile:P(),applePayVersion:A(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(C=document.createElement("canvas"),C.width=200,C.height=100,T=C.getContext("webgl"));try{if(!T)throw new Error("WebGL not supported");const e=Array.from({length:x},(()=>function(){try{if(!T)throw new Error("WebGL not supported");const e="\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n ",n="\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n ",t=T.createShader(T.VERTEX_SHADER),r=T.createShader(T.FRAGMENT_SHADER);if(!t||!r)throw new Error("Failed to create shaders");if(T.shaderSource(t,e),T.shaderSource(r,n),T.compileShader(t),!T.getShaderParameter(t,T.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+T.getShaderInfoLog(t));if(T.compileShader(r),!T.getShaderParameter(r,T.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+T.getShaderInfoLog(r));const o=T.createProgram();if(!o)throw new Error("Failed to create shader program");if(T.attachShader(o,t),T.attachShader(o,r),T.linkProgram(o),!T.getProgramParameter(o,T.LINK_STATUS))throw new Error("Shader program linking failed: "+T.getProgramInfoLog(o));T.useProgram(o);const i=137,a=new Float32Array(4*i),s=2*Math.PI/i;for(let e=0;e<i;e++){const n=e*s;a[4*e]=0,a[4*e+1]=0,a[4*e+2]=Math.cos(n)*(C.width/2),a[4*e+3]=Math.sin(n)*(C.height/2)}const c=T.createBuffer();T.bindBuffer(T.ARRAY_BUFFER,c),T.bufferData(T.ARRAY_BUFFER,a,T.STATIC_DRAW);const l=T.getAttribLocation(o,"position");T.enableVertexAttribArray(l),T.vertexAttribPointer(l,2,T.FLOAT,!1,0,0),T.viewport(0,0,C.width,C.height),T.clearColor(0,0,0,1),T.clear(T.COLOR_BUFFER_BIT),T.drawArrays(T.LINES,0,2*i);const u=new Uint8ClampedArray(C.width*C.height*4);T.readPixels(0,0,C.width,C.height,T.RGBA,T.UNSIGNED_BYTE,u);return new ImageData(u,C.width,C.height)}catch(e){return new ImageData(1,1)}finally{T&&(T.bindBuffer(T.ARRAY_BUFFER,null),T.useProgram(null),T.viewport(0,0,T.drawingBufferWidth,T.drawingBufferHeight),T.clearColor(0,0,0,0))}}()));return{commonPixelsHash:d(a(e,C.width,C.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},O={},I={timeout:"true"},R=(e,n,t)=>{O[e]=n};function _(){return"1.1.3-rc.3"}function L(e,n){var t;let r=M();if("unknown"===r.name&&e.system&&"object"==typeof e.system&&!Array.isArray(e.system)){const n=e.system.browser;if(n&&"object"==typeof n&&!Array.isArray(n)){const e=n;r={name:e.name||"unknown",version:e.version||"unknown"}}}const i=r.name.toLowerCase(),a=r.version.split(".")[0]||"0",s=parseInt(a,10),c=[...(null==n?void 0:n.exclude)||[]],l=(null==n?void 0:n.stabilize)||[],u=(null==n?void 0:n.include)||[];for(const e of l){const n=o[e];if(n)for(const e of n){const n=!("browsers"in e),r=!n&&(null===(t=e.browsers)||void 0===t?void 0:t.some((e=>{const n=e.match(/(.+?)(>=)(\d+)/);if(n){const[,e,,t]=n,r=parseInt(t,10);return i===e&&s>=r}return i===e})));(n||r)&&c.push(...e.exclude)}}return function e(n,t=""){const r={};for(const[o,i]of Object.entries(n)){const n=t?`${t}.${o}`:o;if("object"!=typeof i||Array.isArray(i)||null===i){const e=c.some((e=>n.startsWith(e))),t=u.some((e=>n.startsWith(e)));e&&!t||(r[o]=i)}else{const t=e(i,n);Object.keys(t).length>0&&(r[o]=t)}}return r}(e)}const B="thumbmark_visitor_id";let D=null,F=null;const N=(e,t)=>{if(e.cache_api_call&&F)return Promise.resolve(F);if(D)return D;const r=`${n}/thumbmark`,o=function(){try{return localStorage.getItem(B)}catch(e){return null}}(),i={components:t,options:e,clientHash:d(JSON.stringify(t)),version:"1.1.3-rc.3"};o&&(i.visitorId=o);const a=fetch(r,{method:"POST",headers:{"x-api-key":e.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify(i)}).then((e=>{if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return e.json()})).then((e=>(e.visitorId&&e.visitorId!==o&&function(e){try{localStorage.setItem(B,e)}catch(e){}}(e.visitorId),F=e,D=null,e))).catch((e=>(console.error("Error fetching pro data",e),D=null,null))),s=e.timeout||5e3,c=new Promise((e=>{setTimeout((()=>{e({info:{timed_out:!0},version:"1.1.3-rc.3"})}),s)}));return D=Promise.race([a,c]),D};async function U(e){const r={...t,...e},o={...k,...O},{elapsed:i,resolvedComponents:a}=await j(o,r),s=r.api_key?N(r,a):null,c=s?await s:null,l=r.performance?{elapsed:i}:{},u=L((null==c?void 0:c.components)||{},r),m={...a,...u},h=(null==c?void 0:c.info)||{uniqueness:{score:"api only"}},f=d(JSON.stringify(m));(async function(e,t,r){var o;const i=`${n}/log`,a={thumbmark:e,components:t,version:"1.1.3-rc.3",options:r,path:null===(o=null===window||void 0===window?void 0:window.location)||void 0===o?void 0:o.pathname};if(!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4){sessionStorage.setItem("_tmjs_l","1");try{await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}catch(e){}}})(f,m,r).catch((()=>{}));const p={thumbmark:f,components:m,info:h,version:"1.1.3-rc.3",...l};return(null==c?void 0:c.visitorId)&&(p.visitorId=c.visitorId),p}async function j(e,n){const r={...t,...n},o=Object.entries(e).filter((([e])=>{var n;return!(null===(n=null==r?void 0:r.exclude)||void 0===n?void 0:n.includes(e))})).filter((([e])=>{var n,t,o,i;return(null===(n=null==r?void 0:r.include)||void 0===n?void 0:n.some((e=>e.includes("."))))?null===(t=null==r?void 0:r.include)||void 0===t?void 0:t.some((n=>n.startsWith(e))):0===(null===(o=null==r?void 0:r.include)||void 0===o?void 0:o.length)||(null===(i=null==r?void 0:r.include)||void 0===i?void 0:i.includes(e))})),i=o.map((([e])=>e)),a=o.map((([e,t])=>t(n))),s=await function(e,n,t){return Promise.all(e.map((e=>{const r=performance.now();return Promise.race([e.then((e=>({value:e,elapsed:performance.now()-r}))),(o=n,i=t,new Promise((e=>{setTimeout((()=>e(i)),o)}))).then((e=>({value:e,elapsed:performance.now()-r})))]);var o,i})))}(a,(null==r?void 0:r.timeout)||5e3,I),c={},l={};s.forEach(((e,n)=>{var t;null!=e.value&&(l[i[n]]=e.value,c[i[n]]=null!==(t=e.elapsed)&&void 0!==t?t:0)}));const u=L(l,r);return{elapsed:c,resolvedComponents:u}}e.Thumbmark=class{constructor(e){this.options={...t,...e}}async get(e){return U({...this.options,...e})}getVersion(){return"1.1.3-rc.3"}includeComponent(e,n){R(e,n)}},e.filterThumbmarkData=L,e.getFingerprint=async function(e){try{const n=await U(r);return e?{hash:n.thumbmark.toString(),data:n.components}:n.thumbmark.toString()}catch(e){throw e}},e.getFingerprintData=async function(){return(await U(r)).components},e.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:n}=await j(k,r);return{...n,elapsed:e}}catch(e){throw e}},e.getThumbmark=U,e.getVersion=_,e.includeComponent=R,e.setOption=function(e,n){r[e]=n},e.stabilizationExclusionRules=o}));
|
|
2
2
|
//# sourceMappingURL=thumbmark.umd.js.map
|
|
@@ -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/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],"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","currentApiPromise","apiPromiseResult","getThumbmark","_options","allComponents","elapsed","resolvedComponents","clientComponentsResult","resolveClientComponents","apiPromise","api_key","components","fetchPromise","fetch","method","headers","Authorization","JSON","stringify","clientHash","response","ok","json","catch","timeoutMs","timeoutPromise","thumbmark","info","timed_out","race","getApiPromise","apiResult","maybeElapsed","apiComponents","uniqueness","score","thisHash","thumbmarkData","url","payload","pathname","sessionStorage","getItem","random","setItem","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/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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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { componentInterface } from '../../factory';
|
|
2
|
+
import { optionsInterface } from '../../options';
|
|
3
|
+
export default function getFonts(options?: optionsInterface): Promise<componentInterface | null>;
|
|
4
|
+
export declare function getFontMetrics(): Promise<componentInterface>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is used to create the includeComponent function as well as the interfaces each of the
|
|
3
|
+
* fingerprint components must implement.
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
import { optionsInterface } from './options';
|
|
7
|
+
import getAudio from "./components/audio";
|
|
8
|
+
import getCanvas from "./components/canvas";
|
|
9
|
+
import getFonts from "./components/fonts";
|
|
10
|
+
import getHardware from "./components/hardware";
|
|
11
|
+
import getLocales from "./components/locales";
|
|
12
|
+
import getMath from "./components/math";
|
|
13
|
+
import getPermissions from "./components/permissions";
|
|
14
|
+
import getPlugins from "./components/plugins";
|
|
15
|
+
import getScreen from "./components/screen";
|
|
16
|
+
import getSystem from "./components/system";
|
|
17
|
+
import getWebGL from "./components/webgl";
|
|
18
|
+
/**
|
|
19
|
+
* @description key->function map of built-in components. Do not call the function here.
|
|
20
|
+
*/
|
|
21
|
+
export declare const tm_component_promises: {
|
|
22
|
+
audio: typeof getAudio;
|
|
23
|
+
canvas: typeof getCanvas;
|
|
24
|
+
fonts: typeof getFonts;
|
|
25
|
+
hardware: typeof getHardware;
|
|
26
|
+
locales: typeof getLocales;
|
|
27
|
+
math: typeof getMath;
|
|
28
|
+
permissions: typeof getPermissions;
|
|
29
|
+
plugins: typeof getPlugins;
|
|
30
|
+
screen: typeof getScreen;
|
|
31
|
+
system: typeof getSystem;
|
|
32
|
+
webgl: typeof getWebGL;
|
|
33
|
+
};
|
|
34
|
+
export interface componentInterface {
|
|
35
|
+
[key: string]: string | string[] | number | boolean | componentInterface;
|
|
36
|
+
}
|
|
37
|
+
export interface componentFunctionInterface {
|
|
38
|
+
(options?: optionsInterface): Promise<componentInterface | null>;
|
|
39
|
+
}
|
|
40
|
+
export declare const customComponents: {
|
|
41
|
+
[name: string]: componentFunctionInterface | null;
|
|
42
|
+
};
|
|
43
|
+
export declare const timeoutInstance: componentInterface;
|
|
44
|
+
/**
|
|
45
|
+
* includeComponent is the function each custom component function needs to call in order for the component to be included
|
|
46
|
+
* in the fingerprint.
|
|
47
|
+
* @param {string} name - the name identifier of the component
|
|
48
|
+
* @param {componentFunctionInterface} creationFunction - the function that implements the component
|
|
49
|
+
* @returns nothing
|
|
50
|
+
*/
|
|
51
|
+
export declare const includeComponent: (name: string, creationFunction: componentFunctionInterface, options?: optionsInterface) => void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { componentInterface } from "../factory";
|
|
2
|
+
import { optionsInterface } from "../options";
|
|
3
|
+
/**
|
|
4
|
+
* Filters a componentInterface object based on include/exclude and stabilization options.
|
|
5
|
+
*
|
|
6
|
+
* @param obj - The object to filter
|
|
7
|
+
* @param options - Filtering options
|
|
8
|
+
* @returns Filtered object
|
|
9
|
+
*/
|
|
10
|
+
export declare function filterThumbmarkData(obj: componentInterface, options?: optionsInterface): componentInterface;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ThumbmarkJS: Main fingerprinting and API logic
|
|
3
|
+
*
|
|
4
|
+
* This module handles component collection, API calls, uniqueness scoring, and data filtering
|
|
5
|
+
* for the ThumbmarkJS browser fingerprinting library.
|
|
6
|
+
*
|
|
7
|
+
* Exports:
|
|
8
|
+
* - getThumbmark
|
|
9
|
+
* - getThumbmarkDataFromPromiseMap
|
|
10
|
+
* - resolveClientComponents
|
|
11
|
+
* - filterThumbmarkData
|
|
12
|
+
*
|
|
13
|
+
* Internal helpers and types are also defined here.
|
|
14
|
+
*/
|
|
15
|
+
import { optionsInterface } from "../options";
|
|
16
|
+
import { componentInterface, includeComponent as globalIncludeComponent } from "../factory";
|
|
17
|
+
/**
|
|
18
|
+
* Info returned from the API (IP, classification, uniqueness, etc)
|
|
19
|
+
*/
|
|
20
|
+
interface infoInterface {
|
|
21
|
+
ip_address?: {
|
|
22
|
+
ip_address: string;
|
|
23
|
+
ip_identifier: string;
|
|
24
|
+
autonomous_system_number: number;
|
|
25
|
+
ip_version: 'v6' | 'v4';
|
|
26
|
+
};
|
|
27
|
+
classification?: {
|
|
28
|
+
tor: boolean;
|
|
29
|
+
vpn: boolean;
|
|
30
|
+
bot: boolean;
|
|
31
|
+
datacenter: boolean;
|
|
32
|
+
danger_level: number;
|
|
33
|
+
};
|
|
34
|
+
uniqueness?: {
|
|
35
|
+
score: number | string;
|
|
36
|
+
};
|
|
37
|
+
timed_out?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* API response structure
|
|
41
|
+
*/
|
|
42
|
+
interface apiResponse {
|
|
43
|
+
info?: infoInterface;
|
|
44
|
+
version?: string;
|
|
45
|
+
components?: componentInterface;
|
|
46
|
+
visitorId?: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Final thumbmark response structure
|
|
50
|
+
*/
|
|
51
|
+
interface thumbmarkResponse {
|
|
52
|
+
components: componentInterface;
|
|
53
|
+
info: {
|
|
54
|
+
[key: string]: any;
|
|
55
|
+
};
|
|
56
|
+
version: string;
|
|
57
|
+
thumbmark: string;
|
|
58
|
+
visitorId?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Only present if options.performance is true.
|
|
61
|
+
*/
|
|
62
|
+
elapsed?: any;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Calls the Thumbmark API with the given components, using caching and deduplication.
|
|
66
|
+
* Returns a promise for the API response or null on error.
|
|
67
|
+
*/
|
|
68
|
+
export declare const getApiPromise: (options: optionsInterface, components: componentInterface) => Promise<apiResponse | null>;
|
|
69
|
+
/**
|
|
70
|
+
* Main entry point: collects all components, optionally calls API, and returns thumbmark data.
|
|
71
|
+
*
|
|
72
|
+
* @param options - Options for fingerprinting and API
|
|
73
|
+
* @returns thumbmarkResponse (elapsed is present only if options.performance is true)
|
|
74
|
+
*/
|
|
75
|
+
export declare function getThumbmark(options?: optionsInterface): Promise<thumbmarkResponse>;
|
|
76
|
+
/**
|
|
77
|
+
* Resolves and times all filtered component promises from a component function map.
|
|
78
|
+
*
|
|
79
|
+
* @param comps - Map of component functions
|
|
80
|
+
* @param options - Options for filtering and timing
|
|
81
|
+
* @returns Object with elapsed times and filtered resolved components
|
|
82
|
+
*/
|
|
83
|
+
export declare function resolveClientComponents(comps: {
|
|
84
|
+
[key: string]: (options?: optionsInterface) => Promise<componentInterface | null>;
|
|
85
|
+
}, options?: optionsInterface): Promise<{
|
|
86
|
+
elapsed: Record<string, number>;
|
|
87
|
+
resolvedComponents: componentInterface;
|
|
88
|
+
}>;
|
|
89
|
+
export { globalIncludeComponent as includeComponent };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is here to support legacy implementations.
|
|
3
|
+
* Eventually, these functions will be removed to keep the library small.
|
|
4
|
+
*/
|
|
5
|
+
import { componentInterface } from '../factory';
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
* @deprecated
|
|
9
|
+
*/
|
|
10
|
+
export declare function getFingerprintData(): Promise<componentInterface>;
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param includeData boolean
|
|
14
|
+
* @deprecated this function is going to be removed. use getThumbmark or Thumbmark class instead.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getFingerprint(includeData?: false): Promise<string>;
|
|
17
|
+
export declare function getFingerprint(includeData: true): Promise<{
|
|
18
|
+
hash: string;
|
|
19
|
+
data: componentInterface;
|
|
20
|
+
}>;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @deprecated use Thumbmark or getThumbmark instead with options
|
|
24
|
+
*/
|
|
25
|
+
export declare function getFingerprintPerformance(): Promise<{
|
|
26
|
+
elapsed: Record<string, number>;
|
|
27
|
+
}>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { getFingerprint, getFingerprintData, getFingerprintPerformance } from './functions/legacy_functions';
|
|
2
|
+
import { getThumbmark } from './functions';
|
|
3
|
+
import { getVersion } from './utils/version';
|
|
4
|
+
import { setOption, optionsInterface, stabilizationExclusionRules } from './options';
|
|
5
|
+
import { includeComponent } from './factory';
|
|
6
|
+
import { Thumbmark } from './thumbmark';
|
|
7
|
+
import { filterThumbmarkData } from './functions/filterComponents';
|
|
8
|
+
export { Thumbmark, getThumbmark, getVersion, filterThumbmarkData, optionsInterface, stabilizationExclusionRules, setOption, getFingerprint, getFingerprintData, getFingerprintPerformance, includeComponent };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface optionsInterface {
|
|
2
|
+
exclude?: string[];
|
|
3
|
+
include?: string[];
|
|
4
|
+
permissions_to_check?: PermissionName[];
|
|
5
|
+
timeout?: number;
|
|
6
|
+
logging?: boolean;
|
|
7
|
+
api_key?: string;
|
|
8
|
+
cache_api_call?: boolean;
|
|
9
|
+
performance?: boolean;
|
|
10
|
+
stabilize?: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare const API_ENDPOINT = "https://api.thumbmarkjs.com";
|
|
13
|
+
export declare const defaultOptions: optionsInterface;
|
|
14
|
+
export declare let options: {
|
|
15
|
+
exclude?: string[] | undefined;
|
|
16
|
+
include?: string[] | undefined;
|
|
17
|
+
permissions_to_check?: PermissionName[] | undefined;
|
|
18
|
+
timeout?: number | undefined;
|
|
19
|
+
logging?: boolean | undefined;
|
|
20
|
+
api_key?: string | undefined;
|
|
21
|
+
cache_api_call?: boolean | undefined;
|
|
22
|
+
performance?: boolean | undefined;
|
|
23
|
+
stabilize?: string[] | undefined;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @param key @deprecated this function will be removed
|
|
28
|
+
* @param value
|
|
29
|
+
*/
|
|
30
|
+
export declare function setOption<K extends keyof optionsInterface>(key: K, value: optionsInterface[K]): void;
|
|
31
|
+
export declare const stabilizationExclusionRules: {
|
|
32
|
+
private: {
|
|
33
|
+
exclude: string[];
|
|
34
|
+
browsers: string[];
|
|
35
|
+
}[];
|
|
36
|
+
iframe: {
|
|
37
|
+
exclude: string[];
|
|
38
|
+
browsers: string[];
|
|
39
|
+
}[];
|
|
40
|
+
vpn: {
|
|
41
|
+
exclude: string[];
|
|
42
|
+
}[];
|
|
43
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { optionsInterface } from "./options";
|
|
2
|
+
import { componentInterface } from "./factory";
|
|
3
|
+
/**
|
|
4
|
+
* A client for generating thumbmarks with a persistent configuration.
|
|
5
|
+
*/
|
|
6
|
+
export declare class Thumbmark {
|
|
7
|
+
private options;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new Thumbmarker client instance.
|
|
10
|
+
* @param options - Default configuration options for this instance.
|
|
11
|
+
*/
|
|
12
|
+
constructor(options?: optionsInterface);
|
|
13
|
+
/**
|
|
14
|
+
* Generates a thumbmark using the instance's configuration.
|
|
15
|
+
* @param overrideOptions - Options to override for this specific call.
|
|
16
|
+
* @returns The thumbmark result.
|
|
17
|
+
*/
|
|
18
|
+
get(overrideOptions?: optionsInterface): Promise<any>;
|
|
19
|
+
getVersion(): string;
|
|
20
|
+
/**
|
|
21
|
+
* Register a custom component to be included in the fingerprint.
|
|
22
|
+
* @param key - The component name
|
|
23
|
+
* @param fn - The component function
|
|
24
|
+
*/
|
|
25
|
+
includeComponent(key: string, fn: (options?: optionsInterface) => Promise<componentInterface | null>): void;
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getCommonPixels(images: ImageData[], width: number, height: number): ImageData;
|