@thumbmarkjs/thumbmarkjs 1.1.0-rc.3 → 1.1.0-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/package.json +1 -1
- package/src/components/audio/index.ts +2 -6
- package/src/components/canvas/index.ts +2 -12
- package/src/components/fonts/index.ts +2 -8
- package/src/components/math/index.ts +1 -1
- package/src/components/permissions/index.ts +1 -6
- package/src/components/plugins/index.ts +1 -9
- package/src/components/system/index.ts +2 -5
- package/src/functions/filterComponents.ts +66 -17
- package/src/functions/index.ts +1 -1
- package/src/options.ts +27 -6
package/dist/thumbmark.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e="https://api.thumbmarkjs.com",n={exclude:[],include:[],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1};let t={...n};function r(){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 o(){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 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,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 S(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 b=["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(){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}const P="SamsungBrowser"!==r().name?1:3;let E,A=null;const C={audio:async function(){const e=r();return["SamsungBrowser","Safari"].includes(e.name)?null: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(){const e=r(),n=e.name.toLowerCase(),t=e.version.split(".")[0]||"0",o=parseInt(t,10);return["firefox","brave"].includes(n)||"safari"===n&&o>=17?null:(document.createElement("canvas"),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){const n=r();return["Firefox"].includes(n.name)?null: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)||b;"safari"===r().name.toLowerCase()&&(n=n.filter((e=>!["camera","geolocation","microphone"].includes(e))));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=>S(e,n)))},plugins:async function(){const e=r().name.toLowerCase();if(["brave"].includes(e))return null;const n=[];if(navigator.plugins)for(let e=0;e<navigator.plugins.length;e++){const t=navigator.plugins[e];n.push([t.name,t.filename,t.description].join("|"))}return new Promise((e=>{e({plugins:n})}))},screen:function(){return new Promise((e=>{const n={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:M()};o()&&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=r(),t={platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:n.name,version:n.version},mobile:o()};"safari"!==n.name.toLowerCase()&&(t.applePayVersion=function(){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}(),t.cookieEnabled=window.navigator.cookieEnabled),e(t)}))},webgl:async function(){"undefined"!=typeof document&&(E=document.createElement("canvas"),E.width=200,E.height=100,A=E.getContext("webgl"));try{if(!A)throw new Error("WebGL not supported");const e=Array.from({length:P},(()=>function(){try{if(!A)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=A.createShader(A.VERTEX_SHADER),r=A.createShader(A.FRAGMENT_SHADER);if(!t||!r)throw new Error("Failed to create shaders");if(A.shaderSource(t,e),A.shaderSource(r,n),A.compileShader(t),!A.getShaderParameter(t,A.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+A.getShaderInfoLog(t));if(A.compileShader(r),!A.getShaderParameter(r,A.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+A.getShaderInfoLog(r));const o=A.createProgram();if(!o)throw new Error("Failed to create shader program");if(A.attachShader(o,t),A.attachShader(o,r),A.linkProgram(o),!A.getProgramParameter(o,A.LINK_STATUS))throw new Error("Shader program linking failed: "+A.getProgramInfoLog(o));A.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)*(E.width/2),a[4*e+3]=Math.sin(n)*(E.height/2)}const c=A.createBuffer();A.bindBuffer(A.ARRAY_BUFFER,c),A.bufferData(A.ARRAY_BUFFER,a,A.STATIC_DRAW);const l=A.getAttribLocation(o,"position");A.enableVertexAttribArray(l),A.vertexAttribPointer(l,2,A.FLOAT,!1,0,0),A.viewport(0,0,E.width,E.height),A.clearColor(0,0,0,1),A.clear(A.COLOR_BUFFER_BIT),A.drawArrays(A.LINES,0,2*i);const u=new Uint8ClampedArray(E.width*E.height*4);A.readPixels(0,0,E.width,E.height,A.RGBA,A.UNSIGNED_BYTE,u);return new ImageData(u,E.width,E.height)}catch(e){return new ImageData(1,1)}finally{A&&(A.bindBuffer(A.ARRAY_BUFFER,null),A.useProgram(null),A.viewport(0,0,A.drawingBufferWidth,A.drawingBufferHeight),A.clearColor(0,0,0,0))}}()));return{commonPixelsHash:d(a(e,E.width,E.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},x={},k={timeout:"true"},T=(e,n,t)=>{x[e]=n};function O(){return"1.1.0-rc.3"}function _(e,n,t=""){const r={},o=(null==n?void 0:n.exclude)||[],i=(null==n?void 0:n.include)||[];for(const[a,s]of Object.entries(e)){const e=t+a+".";if("object"!=typeof s||Array.isArray(s)){const n=o.some((n=>e.startsWith(n))),t=i.some((n=>e.startsWith(n)));n&&!t||(r[a]=s)}else{const t=_(s,n,e);Object.keys(t).length>0&&(r[a]=t)}}return r}function R(e){return"object"!=typeof e||null===e||Array.isArray(e)?e:Object.keys(e).sort().reduce(((n,t)=>{const r=e[t];return n[t]=R(r),n}),{})}let I=null,L=null;async function B(t){const r={...n,...t},o={...C,...x},{elapsed:i,resolvedComponents:a}=await D(o,r),s=r.api_key?((n,t)=>{if(n.cache_api_call&&L)return Promise.resolve(L);if(I)return I;const r=fetch(`${e}/thumbmark`,{method:"POST",headers:{"x-api-key":n.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify({components:t,options:n,clientHash:d(JSON.stringify(t))})}).then((e=>{if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return e.json()})).then((e=>(L=e,I=null,e))).catch((e=>(console.error("Error fetching pro data",e),I=null,null))),o=n.timeout||5e3,i=new Promise((e=>{setTimeout((()=>{e({thumbmark:d(JSON.stringify(t)),info:{timed_out:!0},version:"1.1.0-rc.3"})}),o)}));return I=Promise.race([r,i]),I})(r,a):null,c=s?await s:null,l=r.performance?{elapsed:i}:{},u=_((null==c?void 0:c.components)||{},r),m=R({...a,...u}),h=(null==c?void 0:c.info)||{uniqueness:{score:"api only"}},f=d(JSON.stringify(m));return async function(n,t,r){var o;const i=`${e}/log`,a={thumbmark:n,components:t,version:"1.1.0-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((()=>{})),{thumbmark:f,components:m,info:h,version:"1.1.0-rc.3",...l}}async function D(e,t){const r={...n,...t},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,n])=>n(t))),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,k),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}}exports.Thumbmark=class{constructor(e){this.options={...n,...e}}async get(e){return B({...this.options,...e})}getVersion(){return"1.1.0-rc.3"}includeComponent(e,n){T(e,n)}},exports.getFingerprint=async function(e){try{const n=await B(t);return e?{hash:n.thumbmark.toString(),data:n.components}:n.thumbmark.toString()}catch(e){throw e}},exports.getFingerprintData=async function(){return(await B(t)).components},exports.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:n}=await D(C,t);return{...n,elapsed:e}}catch(e){throw e}},exports.getThumbmark=B,exports.getVersion=O,exports.includeComponent=T,exports.setOption=function(e,n){if(!["include","exclude","permissions_to_check","retries","timeout","logging","api_key","cache_api_call"].includes(e))throw new Error("Unknown option "+e);if(["include","exclude","permissions_to_check"].includes(e)&&(!Array.isArray(n)||!n.every((e=>"string"==typeof e))))throw new Error("The value of the include, exclude and permissions_to_check must be an array of strings");if(["retries","timeout"].includes(e)&&"number"!=typeof n)throw new Error("The value of retries must be a number");t[e]=n};
|
|
1
|
+
"use strict";const e="https://api.thumbmarkjs.com",n={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1};let t={...n};const r={private:[{exclude:["canvas"],browsers:["firefox","safari>=17","brave"]},{exclude:["audio"],browsers:["samsungbrowser","safari"]},{exclude:["fonts"],browsers:["firefox"]},{exclude:["plugins"],browsers:["brave"]}],iframe:[{exclude:["permissions.camera","permission.geolocation","permissions.microphone","system.applePayVersion","system.cookieEnabled"],browsers:["safari"]}],vpn:[{exclude:["ip"]}]};function o(e){let n=0;for(let t=0;t<e.length;++t)n+=Math.abs(e[t]);return n}function i(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(a(t))}const o=new Uint8ClampedArray(r);return new ImageData(o,n,t)}function a(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 s(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const c=new Uint32Array([597399067,2869860233,951274213,2716044179]);function l(e,n){return e<<n|e>>>32-n}function u(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],c[0]),t[0]=l(t[0],15),t[0]=Math.imul(t[0],c[1]),n[0]=n[0]^t[0],n[0]=l(n[0],19),n[0]=n[0]+n[1],n[0]=Math.imul(n[0],5)+1444728091,t[1]=Math.imul(t[1],c[1]),t[1]=l(t[1],16),t[1]=Math.imul(t[1],c[2]),n[1]=n[1]^t[1],n[1]=l(n[1],17),n[1]=n[1]+n[2],n[1]=Math.imul(n[1],5)+197830471,t[2]=Math.imul(t[2],c[2]),t[2]=l(t[2],17),t[2]=Math.imul(t[2],c[3]),n[2]=n[2]^t[2],n[2]=l(n[2],15),n[2]=n[2]+n[3],n[2]=Math.imul(n[2],5)+2530024501,t[3]=Math.imul(t[3],c[3]),t[3]=l(t[3],18),t[3]=Math.imul(t[3],c[0]),n[3]=n[3]^t[3],n[3]=l(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],c[3]),o[3]=l(o[3],18),o[3]=Math.imul(o[3],c[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],c[2]),o[2]=l(o[2],17),o[2]=Math.imul(o[2],c[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],c[1]),o[1]=l(o[1],16),o[1]=Math.imul(o[1],c[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],c[0]),o[0]=l(o[0],15),o[0]=Math.imul(o[0],c[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]=s(n[0]),n[1]=s(n[1]),n[2]=s(n[2]),n[3]=s(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 d=280;function m(e,n){return new Promise((t=>setTimeout(t,e,n)))}const h=["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"],f=["monospace","sans-serif","serif"];function p(e,n){if(!e)throw new Error("Canvas context not supported");return e.font=`72px ${n}`,e.measureText("WwMmLli0Oo").width}function g(){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 v(){const e=new Float32Array(1),n=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],n[3]}const w=(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 y(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 b(){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 M(){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 P(){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 E(){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 A="SamsungBrowser"!==b().name?1:3;let x,C=null;const O={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),i=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:o(c),maxChannels:r.destination.maxChannelCount,channelCountMode:i.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=d,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:u(i(n,d,20).data.toString()).toString()})}))},fonts:async function(e){return new Promise(((e,n)=>{try{!async function(e){for(var n;!document.body;)await m(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=f.map((e=>p(t,e)));let o={};h.forEach((e=>{const n=p(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:g(),architecture:v(),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:w(Math.asin,-1,1,97),cos:w(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:w(Math.sin,-Math.PI,Math.PI,97),tan:w(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=>y(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:P()};M()&&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=b();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:M(),applePayVersion:E(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(x=document.createElement("canvas"),x.width=200,x.height=100,C=x.getContext("webgl"));try{if(!C)throw new Error("WebGL not supported");const e=Array.from({length:A},(()=>function(){try{if(!C)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=C.createShader(C.VERTEX_SHADER),r=C.createShader(C.FRAGMENT_SHADER);if(!t||!r)throw new Error("Failed to create shaders");if(C.shaderSource(t,e),C.shaderSource(r,n),C.compileShader(t),!C.getShaderParameter(t,C.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+C.getShaderInfoLog(t));if(C.compileShader(r),!C.getShaderParameter(r,C.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+C.getShaderInfoLog(r));const o=C.createProgram();if(!o)throw new Error("Failed to create shader program");if(C.attachShader(o,t),C.attachShader(o,r),C.linkProgram(o),!C.getProgramParameter(o,C.LINK_STATUS))throw new Error("Shader program linking failed: "+C.getProgramInfoLog(o));C.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)*(x.width/2),a[4*e+3]=Math.sin(n)*(x.height/2)}const c=C.createBuffer();C.bindBuffer(C.ARRAY_BUFFER,c),C.bufferData(C.ARRAY_BUFFER,a,C.STATIC_DRAW);const l=C.getAttribLocation(o,"position");C.enableVertexAttribArray(l),C.vertexAttribPointer(l,2,C.FLOAT,!1,0,0),C.viewport(0,0,x.width,x.height),C.clearColor(0,0,0,1),C.clear(C.COLOR_BUFFER_BIT),C.drawArrays(C.LINES,0,2*i);const u=new Uint8ClampedArray(x.width*x.height*4);C.readPixels(0,0,x.width,x.height,C.RGBA,C.UNSIGNED_BYTE,u);return new ImageData(u,x.width,x.height)}catch(e){return new ImageData(1,1)}finally{C&&(C.bindBuffer(C.ARRAY_BUFFER,null),C.useProgram(null),C.viewport(0,0,C.drawingBufferWidth,C.drawingBufferHeight),C.clearColor(0,0,0,0))}}()));return{commonPixelsHash:u(i(e,x.width,x.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},T={},k={timeout:"true"},I=(e,n,t)=>{T[e]=n};function R(){return"1.1.0-rc.4"}function _(e,n){var t;const o=b(),i=o.name.toLowerCase(),a=o.version.split(".")[0]||"0",s=parseInt(a,10);console.log(s);const 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=r[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)}function L(e){return"object"!=typeof e||null===e||Array.isArray(e)?e:Object.keys(e).sort().reduce(((n,t)=>{const r=e[t];return n[t]=L(r),n}),{})}let B=null,D=null;async function F(t){const r={...n,...t},o={...O,...T},{elapsed:i,resolvedComponents:a}=await N(o,r),s=r.api_key?((n,t)=>{if(n.cache_api_call&&D)return Promise.resolve(D);if(B)return B;const r=fetch(`${e}/thumbmark`,{method:"POST",headers:{"x-api-key":n.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify({components:t,options:n,clientHash:u(JSON.stringify(t))})}).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=n.timeout||5e3,i=new Promise((e=>{setTimeout((()=>{e({thumbmark:u(JSON.stringify(t)),info:{timed_out:!0},version:"1.1.0-rc.4"})}),o)}));return B=Promise.race([r,i]),B})(r,a):null,c=s?await s:null,l=r.performance?{elapsed:i}:{},d=_((null==c?void 0:c.components)||{},r),m=L({...a,...d}),h=(null==c?void 0:c.info)||{uniqueness:{score:"api only"}},f=u(JSON.stringify(m));return async function(n,t,r){var o;const i=`${e}/log`,a={thumbmark:n,components:t,version:"1.1.0-rc.4",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.0-rc.4",...l}}async function N(e,t){const r={...n,...t},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,n])=>n(t))),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,k),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}}exports.Thumbmark=class{constructor(e){this.options={...n,...e}}async get(e){return F({...this.options,...e})}getVersion(){return"1.1.0-rc.4"}includeComponent(e,n){I(e,n)}},exports.getFingerprint=async function(e){try{const n=await F(t);return e?{hash:n.thumbmark.toString(),data:n.components}:n.thumbmark.toString()}catch(e){throw e}},exports.getFingerprintData=async function(){return(await F(t)).components},exports.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:n}=await N(O,t);return{...n,elapsed:e}}catch(e){throw e}},exports.getThumbmark=F,exports.getVersion=R,exports.includeComponent=I,exports.setOption=function(e,n){t[e]=n};
|
|
2
2
|
//# sourceMappingURL=thumbmark.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbmark.cjs.js","sources":["../src/options.ts","../src/components/system/browser.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/screen/index.ts","../src/components/webgl/index.ts","../src/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/components/system/index.ts","../src/utils/version.ts","../src/functions/filterComponents.ts","../src/utils/sort.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","logging","timeout","cache_api_call","performance","options","getBrowser","navigator","name","version","ua","userAgent","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","brave","regex","match","_a","groups","undefined","_b","_c","version1","_d","version2","_e","_f","source","includes","toLowerCase","isMobileUserAgent","test","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","getContext","vendor","getParameter","VENDOR","renderer","RENDERER","result","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","matchMedias","results","mediaQueries","pointer","hover","update","scripting","value","matchMedia","matches","_RUNS","tm_component_promises","audio","async","browser","reject","sampleRate","numSamples","audioContext","window","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","ver","split","majorVer","imageDatas","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","randomText","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","imageData","getImageData","generateCanvasImageData","commonPixelsHash","fonts","callback","iframe","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","platform","productSub","product","useragent","hardwareConcurrency","mobile","location","protocol","ApplePaySession","versionCheck","supportsVersion","getApplePayVersion","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","path","excludeList","includeList","entries","currentPath","isArray","isExcluded","some","exclusion","startsWith","isIncluded","inclusion","filtered","sortComponentKeys","sort","reduce","acc","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","every","item"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thumbmark.cjs.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/sort.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","ver","split","majorVer","log","excludeList","stabilizationOptions","includeList","option","rules","rule","appliesToAllBrowsers","browserMatch","some","browserRule","ruleName","ruleVersionStr","ruleVersion","performFilter","currentObj","path","entries","currentPath","isArray","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","sortComponentKeys","sort","reduce","acc","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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"}
|
package/dist/thumbmark.esm.d.ts
CHANGED
package/dist/thumbmark.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e="https://api.thumbmarkjs.com",n={exclude:[],include:[],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1};let t={...n};function r(e,n){if(!["include","exclude","permissions_to_check","retries","timeout","logging","api_key","cache_api_call"].includes(e))throw new Error("Unknown option "+e);if(["include","exclude","permissions_to_check"].includes(e)&&(!Array.isArray(n)||!n.every((e=>"string"==typeof e))))throw new Error("The value of the include, exclude and permissions_to_check must be an array of strings");if(["retries","timeout"].includes(e)&&"number"!=typeof n)throw new Error("The value of retries must be a number");t[e]=n}function o(){var e,n,t,r,o,a;if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const i=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=i.match(l);if(s){let i=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(i||!(null===(o=s.groups)||void 0===o?void 0:o.version1)&&!(null===(a=s.groups)||void 0===a?void 0:a.version2)||(i="Safari"),!i&&l.source.includes("Opera Mini")&&(i="Opera Mini"),!i&&l.source.includes("Opera Mobi")&&(i="Opera Mobi"),!i&&l.source.includes("Opera")&&(i="Opera"),!i&&s[1]&&(i=s[1]),!u&&s[2]&&(u=s[2]),i){return{name:c[i.toLowerCase()]||i,version:u||"unknown"}}}}return{name:"unknown",version:"unknown"}}function a(){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 i(e){let n=0;for(let t=0;t<e.length;++t)n+=Math.abs(e[t]);return n}function s(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(c(t))}const o=new Uint8ClampedArray(r);return new ImageData(o,n,t)}function c(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 l(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const u=new Uint32Array([597399067,2869860233,951274213,2716044179]);function d(e,n){return e<<n|e>>>32-n}function m(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],u[0]),t[0]=d(t[0],15),t[0]=Math.imul(t[0],u[1]),n[0]=n[0]^t[0],n[0]=d(n[0],19),n[0]=n[0]+n[1],n[0]=Math.imul(n[0],5)+1444728091,t[1]=Math.imul(t[1],u[1]),t[1]=d(t[1],16),t[1]=Math.imul(t[1],u[2]),n[1]=n[1]^t[1],n[1]=d(n[1],17),n[1]=n[1]+n[2],n[1]=Math.imul(n[1],5)+197830471,t[2]=Math.imul(t[2],u[2]),t[2]=d(t[2],17),t[2]=Math.imul(t[2],u[3]),n[2]=n[2]^t[2],n[2]=d(n[2],15),n[2]=n[2]+n[3],n[2]=Math.imul(n[2],5)+2530024501,t[3]=Math.imul(t[3],u[3]),t[3]=d(t[3],18),t[3]=Math.imul(t[3],u[0]),n[3]=n[3]^t[3],n[3]=d(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),a=new Uint8Array(e,16*t,r);switch(r){case 15:o[3]=o[3]^a[14]<<16;case 14:o[3]=o[3]^a[13]<<8;case 13:o[3]=o[3]^a[12],o[3]=Math.imul(o[3],u[3]),o[3]=d(o[3],18),o[3]=Math.imul(o[3],u[0]),n[3]=n[3]^o[3];case 12:o[2]=o[2]^a[11]<<24;case 11:o[2]=o[2]^a[10]<<16;case 10:o[2]=o[2]^a[9]<<8;case 9:o[2]=o[2]^a[8],o[2]=Math.imul(o[2],u[2]),o[2]=d(o[2],17),o[2]=Math.imul(o[2],u[3]),n[2]=n[2]^o[2];case 8:o[1]=o[1]^a[7]<<24;case 7:o[1]=o[1]^a[6]<<16;case 6:o[1]=o[1]^a[5]<<8;case 5:o[1]=o[1]^a[4],o[1]=Math.imul(o[1],u[1]),o[1]=d(o[1],16),o[1]=Math.imul(o[1],u[2]),n[1]=n[1]^o[1];case 4:o[0]=o[0]^a[3]<<24;case 3:o[0]=o[0]^a[2]<<16;case 2:o[0]=o[0]^a[1]<<8;case 1:o[0]=o[0]^a[0],o[0]=Math.imul(o[0],u[0]),o[0]=d(o[0],15),o[0]=Math.imul(o[0],u[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]=l(n[0]),n[1]=l(n[1]),n[2]=l(n[2]),n[3]=l(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 h=280;function f(e,n){return new Promise((t=>setTimeout(t,e,n)))}const p=["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"],g=["monospace","sans-serif","serif"];function v(e,n){if(!e)throw new Error("Canvas context not supported");return e.font,e.font=`72px ${n}`,e.measureText("WwMmLli0Oo").width}function w(){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 y(){const e=new Float32Array(1),n=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],n[3]}const S=(e,n,t,r)=>{const o=(t-n)/r;let a=0;for(let t=0;t<r;t++){a+=e(n+(t+.5)*o)}return a*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 M=["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 P(){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}const E="SamsungBrowser"!==o().name?1:3;let A,C=null;const x={audio:async function(){const e=o();return["SamsungBrowser","Safari"].includes(e.name)?null: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(){const e=o(),n=e.name.toLowerCase(),t=e.version.split(".")[0]||"0",r=parseInt(t,10);return["firefox","brave"].includes(n)||"safari"===n&&r>=17?null:(document.createElement("canvas"),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=h,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:m(s(n,h,20).data.toString()).toString()})})))},fonts:async function(e){const n=o();return["Firefox"].includes(n.name)?null:new Promise(((e,n)=>{try{!async function(e){for(var n;!document.body;)await f(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=g.map((e=>v(t,e)));let o={};p.forEach((e=>{const n=v(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:w(),architecture:y(),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:S(Math.asin,-1,1,97),cos:S(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:S(Math.sin,-Math.PI,Math.PI,97),tan:S(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){let n=(null==e?void 0:e.permissions_to_check)||M;"safari"===o().name.toLowerCase()&&(n=n.filter((e=>!["camera","geolocation","microphone"].includes(e))));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=o().name.toLowerCase();if(["brave"].includes(e))return null;const n=[];if(navigator.plugins)for(let e=0;e<navigator.plugins.length;e++){const t=navigator.plugins[e];n.push([t.name,t.filename,t.description].join("|"))}return new Promise((e=>{e({plugins:n})}))},screen:function(){return new Promise((e=>{const n={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:P()};a()&&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=o(),t={platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:n.name,version:n.version},mobile:a()};"safari"!==n.name.toLowerCase()&&(t.applePayVersion=function(){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}(),t.cookieEnabled=window.navigator.cookieEnabled),e(t)}))},webgl:async function(){"undefined"!=typeof document&&(A=document.createElement("canvas"),A.width=200,A.height=100,C=A.getContext("webgl"));try{if(!C)throw new Error("WebGL not supported");const e=Array.from({length:E},(()=>function(){try{if(!C)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=C.createShader(C.VERTEX_SHADER),r=C.createShader(C.FRAGMENT_SHADER);if(!t||!r)throw new Error("Failed to create shaders");if(C.shaderSource(t,e),C.shaderSource(r,n),C.compileShader(t),!C.getShaderParameter(t,C.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+C.getShaderInfoLog(t));if(C.compileShader(r),!C.getShaderParameter(r,C.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+C.getShaderInfoLog(r));const o=C.createProgram();if(!o)throw new Error("Failed to create shader program");if(C.attachShader(o,t),C.attachShader(o,r),C.linkProgram(o),!C.getProgramParameter(o,C.LINK_STATUS))throw new Error("Shader program linking failed: "+C.getProgramInfoLog(o));C.useProgram(o);const a=137,i=new Float32Array(4*a),s=2*Math.PI/a;for(let e=0;e<a;e++){const n=e*s;i[4*e]=0,i[4*e+1]=0,i[4*e+2]=Math.cos(n)*(A.width/2),i[4*e+3]=Math.sin(n)*(A.height/2)}const c=C.createBuffer();C.bindBuffer(C.ARRAY_BUFFER,c),C.bufferData(C.ARRAY_BUFFER,i,C.STATIC_DRAW);const l=C.getAttribLocation(o,"position");C.enableVertexAttribArray(l),C.vertexAttribPointer(l,2,C.FLOAT,!1,0,0),C.viewport(0,0,A.width,A.height),C.clearColor(0,0,0,1),C.clear(C.COLOR_BUFFER_BIT),C.drawArrays(C.LINES,0,2*a);const u=new Uint8ClampedArray(A.width*A.height*4);C.readPixels(0,0,A.width,A.height,C.RGBA,C.UNSIGNED_BYTE,u);return new ImageData(u,A.width,A.height)}catch(e){return new ImageData(1,1)}finally{C&&(C.bindBuffer(C.ARRAY_BUFFER,null),C.useProgram(null),C.viewport(0,0,C.drawingBufferWidth,C.drawingBufferHeight),C.clearColor(0,0,0,0))}}()));return{commonPixelsHash:m(s(e,A.width,A.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},k={},O={timeout:"true"},T=(e,n,t)=>{k[e]=n};function _(){return"1.1.0-rc.3"}function R(e,n,t=""){const r={},o=(null==n?void 0:n.exclude)||[],a=(null==n?void 0:n.include)||[];for(const[i,s]of Object.entries(e)){const e=t+i+".";if("object"!=typeof s||Array.isArray(s)){const n=o.some((n=>e.startsWith(n))),t=a.some((n=>e.startsWith(n)));n&&!t||(r[i]=s)}else{const t=R(s,n,e);Object.keys(t).length>0&&(r[i]=t)}}return r}function I(e){return"object"!=typeof e||null===e||Array.isArray(e)?e:Object.keys(e).sort().reduce(((n,t)=>{const r=e[t];return n[t]=I(r),n}),{})}let L=null,B=null;async function D(t){const r={...n,...t},o={...x,...k},{elapsed:a,resolvedComponents:i}=await N(o,r),s=r.api_key?((n,t)=>{if(n.cache_api_call&&B)return Promise.resolve(B);if(L)return L;const r=fetch(`${e}/thumbmark`,{method:"POST",headers:{"x-api-key":n.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify({components:t,options:n,clientHash:m(JSON.stringify(t))})}).then((e=>{if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return e.json()})).then((e=>(B=e,L=null,e))).catch((e=>(console.error("Error fetching pro data",e),L=null,null))),o=n.timeout||5e3,a=new Promise((e=>{setTimeout((()=>{e({thumbmark:m(JSON.stringify(t)),info:{timed_out:!0},version:"1.1.0-rc.3"})}),o)}));return L=Promise.race([r,a]),L})(r,i):null,c=s?await s:null,l=r.performance?{elapsed:a}:{},u=R((null==c?void 0:c.components)||{},r),d=I({...i,...u}),h=(null==c?void 0:c.info)||{uniqueness:{score:"api only"}},f=m(JSON.stringify(d));return async function(n,t,r){var o;const a=`${e}/log`,i={thumbmark:n,components:t,version:"1.1.0-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(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})}catch(e){}}}(f,d,r).catch((()=>{})),{thumbmark:f,components:d,info:h,version:"1.1.0-rc.3",...l}}async function N(e,t){const r={...n,...t},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,a;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===(a=null==r?void 0:r.include)||void 0===a?void 0:a.includes(e))})),a=o.map((([e])=>e)),i=o.map((([e,n])=>n(t))),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,a=t,new Promise((e=>{setTimeout((()=>e(a)),o)}))).then((e=>({value:e,elapsed:performance.now()-r})))]);var o,a})))}(i,(null==r?void 0:r.timeout)||5e3,O),c={},l={};s.forEach(((e,n)=>{var t;null!=e.value&&(l[a[n]]=e.value,c[a[n]]=null!==(t=e.elapsed)&&void 0!==t?t:0)}));const u=R(l,r,"");return{elapsed:c,resolvedComponents:u}}async function U(){return(await D(t)).components}async function F(e){try{const n=await D(t);return e?{hash:n.thumbmark.toString(),data:n.components}:n.thumbmark.toString()}catch(e){throw e}}async function j(){try{const{elapsed:e,resolvedComponents:n}=await N(x,t);return{...n,elapsed:e}}catch(e){throw e}}class G{constructor(e){this.options={...n,...e}}async get(e){return D({...this.options,...e})}getVersion(){return"1.1.0-rc.3"}includeComponent(e,n){T(e,n)}}export{G as Thumbmark,F as getFingerprint,U as getFingerprintData,j as getFingerprintPerformance,D as getThumbmark,_ as getVersion,T as includeComponent,r as setOption};
|
|
1
|
+
const e="https://api.thumbmarkjs.com",n={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1};let t={...n};function r(e,n){t[e]=n}const o={private:[{exclude:["canvas"],browsers:["firefox","safari>=17","brave"]},{exclude:["audio"],browsers:["samsungbrowser","safari"]},{exclude:["fonts"],browsers:["firefox"]},{exclude:["plugins"],browsers:["brave"]}],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 S(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 b=["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 C="SamsungBrowser"!==M().name?1:3;let x,O=null;const T={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)||b;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=>S(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&&(x=document.createElement("canvas"),x.width=200,x.height=100,O=x.getContext("webgl"));try{if(!O)throw new Error("WebGL not supported");const e=Array.from({length:C},(()=>function(){try{if(!O)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=O.createShader(O.VERTEX_SHADER),r=O.createShader(O.FRAGMENT_SHADER);if(!t||!r)throw new Error("Failed to create shaders");if(O.shaderSource(t,e),O.shaderSource(r,n),O.compileShader(t),!O.getShaderParameter(t,O.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+O.getShaderInfoLog(t));if(O.compileShader(r),!O.getShaderParameter(r,O.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+O.getShaderInfoLog(r));const o=O.createProgram();if(!o)throw new Error("Failed to create shader program");if(O.attachShader(o,t),O.attachShader(o,r),O.linkProgram(o),!O.getProgramParameter(o,O.LINK_STATUS))throw new Error("Shader program linking failed: "+O.getProgramInfoLog(o));O.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)*(x.width/2),a[4*e+3]=Math.sin(n)*(x.height/2)}const c=O.createBuffer();O.bindBuffer(O.ARRAY_BUFFER,c),O.bufferData(O.ARRAY_BUFFER,a,O.STATIC_DRAW);const l=O.getAttribLocation(o,"position");O.enableVertexAttribArray(l),O.vertexAttribPointer(l,2,O.FLOAT,!1,0,0),O.viewport(0,0,x.width,x.height),O.clearColor(0,0,0,1),O.clear(O.COLOR_BUFFER_BIT),O.drawArrays(O.LINES,0,2*i);const u=new Uint8ClampedArray(x.width*x.height*4);O.readPixels(0,0,x.width,x.height,O.RGBA,O.UNSIGNED_BYTE,u);return new ImageData(u,x.width,x.height)}catch(e){return new ImageData(1,1)}finally{O&&(O.bindBuffer(O.ARRAY_BUFFER,null),O.useProgram(null),O.viewport(0,0,O.drawingBufferWidth,O.drawingBufferHeight),O.clearColor(0,0,0,0))}}()));return{commonPixelsHash:d(a(e,x.width,x.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},k={},I={timeout:"true"},R=(e,n,t)=>{k[e]=n};function _(){return"1.1.0-rc.4"}function L(e,n){var t;const r=M(),i=r.name.toLowerCase(),a=r.version.split(".")[0]||"0",s=parseInt(a,10);console.log(s);const 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)}function B(e){return"object"!=typeof e||null===e||Array.isArray(e)?e:Object.keys(e).sort().reduce(((n,t)=>{const r=e[t];return n[t]=B(r),n}),{})}let D=null,N=null;async function U(t){const r={...n,...t},o={...T,...k},{elapsed:i,resolvedComponents:a}=await F(o,r),s=r.api_key?((n,t)=>{if(n.cache_api_call&&N)return Promise.resolve(N);if(D)return D;const r=fetch(`${e}/thumbmark`,{method:"POST",headers:{"x-api-key":n.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify({components:t,options:n,clientHash:d(JSON.stringify(t))})}).then((e=>{if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return e.json()})).then((e=>(N=e,D=null,e))).catch((e=>(console.error("Error fetching pro data",e),D=null,null))),o=n.timeout||5e3,i=new Promise((e=>{setTimeout((()=>{e({thumbmark:d(JSON.stringify(t)),info:{timed_out:!0},version:"1.1.0-rc.4"})}),o)}));return D=Promise.race([r,i]),D})(r,a):null,c=s?await s:null,l=r.performance?{elapsed:i}:{},u=L((null==c?void 0:c.components)||{},r),m=B({...a,...u}),h=(null==c?void 0:c.info)||{uniqueness:{score:"api only"}},f=d(JSON.stringify(m));return async function(n,t,r){var o;const i=`${e}/log`,a={thumbmark:n,components:t,version:"1.1.0-rc.4",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.0-rc.4",...l}}async function F(e,t){const r={...n,...t},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,n])=>n(t))),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}}async function j(){return(await U(t)).components}async function G(e){try{const n=await U(t);return e?{hash:n.thumbmark.toString(),data:n.components}:n.thumbmark.toString()}catch(e){throw e}}async function W(){try{const{elapsed:e,resolvedComponents:n}=await F(T,t);return{...n,elapsed:e}}catch(e){throw e}}class V{constructor(e){this.options={...n,...e}}async get(e){return U({...this.options,...e})}getVersion(){return"1.1.0-rc.4"}includeComponent(e,n){R(e,n)}}export{V as Thumbmark,G as getFingerprint,j as getFingerprintData,W as getFingerprintPerformance,U as getThumbmark,_ as getVersion,R as includeComponent,r as setOption};
|
|
2
2
|
//# sourceMappingURL=thumbmark.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbmark.esm.js","sources":["../src/options.ts","../src/components/system/browser.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/screen/index.ts","../src/components/webgl/index.ts","../src/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/components/system/index.ts","../src/utils/version.ts","../src/functions/filterComponents.ts","../src/utils/sort.ts","../src/functions/index.ts","../src/utils/log.ts","../src/utils/raceAll.ts","../src/functions/legacy_functions.ts","../src/thumbmark.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","logging","timeout","cache_api_call","performance","options","setOption","key","value","includes","Error","Array","isArray","every","item","getBrowser","navigator","name","version","ua","userAgent","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","brave","regex","match","_a","groups","undefined","_b","_c","version1","_d","version2","_e","_f","source","toLowerCase","isMobileUserAgent","test","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","seed","text","TextEncoder","encode","buffer","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","Uint8Array","finalize","byteArray","from","map","byte","toString","padStart","join","_WIDTH","wait","durationMs","resolveWith","Promise","resolve","setTimeout","availableFonts","baseFonts","measureSingleFont","ctx","font","measureText","getVideoCard","canvas","document","createElement","gl","getContext","vendor","getParameter","VENDOR","renderer","RENDERER","result","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","matchMedias","results","mediaQueries","pointer","hover","update","scripting","matchMedia","matches","_RUNS","tm_component_promises","audio","async","browser","reject","sampleRate","numSamples","audioContext","window","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","ver","split","majorVer","imageDatas","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","randomText","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","imageData","getImageData","generateCanvasImageData","commonPixelsHash","fonts","callback","iframe","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","platform","productSub","product","useragent","hardwareConcurrency","mobile","location","protocol","ApplePaySession","versionCheck","supportsVersion","getApplePayVersion","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","path","excludeList","includeList","entries","currentPath","isExcluded","some","exclusion","startsWith","isIncluded","inclusion","filtered","sortComponentKeys","sort","reduce","acc","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","getFingerprintData","getFingerprint","includeData","getFingerprintPerformance","Thumbmark","constructor","this","get","overrideOptions","globalIncludeComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thumbmark.esm.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/sort.ts","../src/functions/index.ts","../src/utils/log.ts","../src/utils/raceAll.ts","../src/functions/legacy_functions.ts","../src/thumbmark.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","setOption","key","value","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","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","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","ver","split","majorVer","log","excludeList","stabilizationOptions","includeList","option","rules","rule","appliesToAllBrowsers","browserMatch","some","browserRule","ruleName","ruleVersionStr","ruleVersion","performFilter","currentObj","path","entries","currentPath","isArray","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","sortComponentKeys","sort","reduce","acc","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","getFingerprintData","getFingerprint","includeData","getFingerprintPerformance","Thumbmark","constructor","this","get","overrideOptions","globalIncludeComponent"],"mappings":"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"}
|
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:[],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1};let r={...t};function o(){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 i(){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 a(e){let n=0;for(let t=0;t<e.length;++t)n+=Math.abs(e[t]);return n}function s(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(c(t))}const o=new Uint8ClampedArray(r);return new ImageData(o,n,t)}function c(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 l(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const u=new Uint32Array([597399067,2869860233,951274213,2716044179]);function d(e,n){return e<<n|e>>>32-n}function m(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],u[0]),t[0]=d(t[0],15),t[0]=Math.imul(t[0],u[1]),n[0]=n[0]^t[0],n[0]=d(n[0],19),n[0]=n[0]+n[1],n[0]=Math.imul(n[0],5)+1444728091,t[1]=Math.imul(t[1],u[1]),t[1]=d(t[1],16),t[1]=Math.imul(t[1],u[2]),n[1]=n[1]^t[1],n[1]=d(n[1],17),n[1]=n[1]+n[2],n[1]=Math.imul(n[1],5)+197830471,t[2]=Math.imul(t[2],u[2]),t[2]=d(t[2],17),t[2]=Math.imul(t[2],u[3]),n[2]=n[2]^t[2],n[2]=d(n[2],15),n[2]=n[2]+n[3],n[2]=Math.imul(n[2],5)+2530024501,t[3]=Math.imul(t[3],u[3]),t[3]=d(t[3],18),t[3]=Math.imul(t[3],u[0]),n[3]=n[3]^t[3],n[3]=d(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],u[3]),o[3]=d(o[3],18),o[3]=Math.imul(o[3],u[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],u[2]),o[2]=d(o[2],17),o[2]=Math.imul(o[2],u[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],u[1]),o[1]=d(o[1],16),o[1]=Math.imul(o[1],u[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],u[0]),o[0]=d(o[0],15),o[0]=Math.imul(o[0],u[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]=l(n[0]),n[1]=l(n[1]),n[2]=l(n[2]),n[3]=l(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 h=280;function f(e,n){return new Promise((t=>setTimeout(t,e,n)))}const p=["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"],g=["monospace","sans-serif","serif"];function v(e,n){if(!e)throw new Error("Canvas context not supported");return e.font,e.font=`72px ${n}`,e.measureText("WwMmLli0Oo").width}function w(){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 y(){const e=new Float32Array(1),n=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],n[3]}const S=(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 M=["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 P(){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}const E="SamsungBrowser"!==o().name?1:3;let A,C=null;const T={audio:async function(){const e=o();return["SamsungBrowser","Safari"].includes(e.name)?null: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(),i=r.createOscillator();i.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,i.connect(s),s.connect(r.destination),i.start(),r.oncomplete=n=>{c=n.renderedBuffer.getChannelData(0),e({sampleHash:a(c),maxChannels:r.destination.maxChannelCount,channelCountMode:o.channelCountMode})},r.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),n(e)}}))}()},canvas:async function(){const e=o(),n=e.name.toLowerCase(),t=e.version.split(".")[0]||"0",r=parseInt(t,10);return["firefox","brave"].includes(n)||"safari"===n&&r>=17?null:(document.createElement("canvas"),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=h,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:m(s(n,h,20).data.toString()).toString()})})))},fonts:async function(e){const n=o();return["Firefox"].includes(n.name)?null:new Promise(((e,n)=>{try{!async function(e){for(var n;!document.body;)await f(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=g.map((e=>v(t,e)));let o={};p.forEach((e=>{const n=v(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:w(),architecture:y(),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:S(Math.asin,-1,1,97),cos:S(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:S(Math.sin,-Math.PI,Math.PI,97),tan:S(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){let n=(null==e?void 0:e.permissions_to_check)||M;"safari"===o().name.toLowerCase()&&(n=n.filter((e=>!["camera","geolocation","microphone"].includes(e))));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=o().name.toLowerCase();if(["brave"].includes(e))return null;const n=[];if(navigator.plugins)for(let e=0;e<navigator.plugins.length;e++){const t=navigator.plugins[e];n.push([t.name,t.filename,t.description].join("|"))}return new Promise((e=>{e({plugins:n})}))},screen:function(){return new Promise((e=>{const n={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:P()};i()&&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=o(),t={platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:n.name,version:n.version},mobile:i()};"safari"!==n.name.toLowerCase()&&(t.applePayVersion=function(){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}(),t.cookieEnabled=window.navigator.cookieEnabled),e(t)}))},webgl:async function(){"undefined"!=typeof document&&(A=document.createElement("canvas"),A.width=200,A.height=100,C=A.getContext("webgl"));try{if(!C)throw new Error("WebGL not supported");const e=Array.from({length:E},(()=>function(){try{if(!C)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=C.createShader(C.VERTEX_SHADER),r=C.createShader(C.FRAGMENT_SHADER);if(!t||!r)throw new Error("Failed to create shaders");if(C.shaderSource(t,e),C.shaderSource(r,n),C.compileShader(t),!C.getShaderParameter(t,C.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+C.getShaderInfoLog(t));if(C.compileShader(r),!C.getShaderParameter(r,C.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+C.getShaderInfoLog(r));const o=C.createProgram();if(!o)throw new Error("Failed to create shader program");if(C.attachShader(o,t),C.attachShader(o,r),C.linkProgram(o),!C.getProgramParameter(o,C.LINK_STATUS))throw new Error("Shader program linking failed: "+C.getProgramInfoLog(o));C.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)*(A.width/2),a[4*e+3]=Math.sin(n)*(A.height/2)}const c=C.createBuffer();C.bindBuffer(C.ARRAY_BUFFER,c),C.bufferData(C.ARRAY_BUFFER,a,C.STATIC_DRAW);const l=C.getAttribLocation(o,"position");C.enableVertexAttribArray(l),C.vertexAttribPointer(l,2,C.FLOAT,!1,0,0),C.viewport(0,0,A.width,A.height),C.clearColor(0,0,0,1),C.clear(C.COLOR_BUFFER_BIT),C.drawArrays(C.LINES,0,2*i);const u=new Uint8ClampedArray(A.width*A.height*4);C.readPixels(0,0,A.width,A.height,C.RGBA,C.UNSIGNED_BYTE,u);return new ImageData(u,A.width,A.height)}catch(e){return new ImageData(1,1)}finally{C&&(C.bindBuffer(C.ARRAY_BUFFER,null),C.useProgram(null),C.viewport(0,0,C.drawingBufferWidth,C.drawingBufferHeight),C.clearColor(0,0,0,0))}}()));return{commonPixelsHash:m(s(e,A.width,A.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},k={},x={timeout:"true"},O=(e,n,t)=>{k[e]=n};function _(){return"1.1.0-rc.3"}function R(e,n,t=""){const r={},o=(null==n?void 0:n.exclude)||[],i=(null==n?void 0:n.include)||[];for(const[a,s]of Object.entries(e)){const e=t+a+".";if("object"!=typeof s||Array.isArray(s)){const n=o.some((n=>e.startsWith(n))),t=i.some((n=>e.startsWith(n)));n&&!t||(r[a]=s)}else{const t=R(s,n,e);Object.keys(t).length>0&&(r[a]=t)}}return r}function I(e){return"object"!=typeof e||null===e||Array.isArray(e)?e:Object.keys(e).sort().reduce(((n,t)=>{const r=e[t];return n[t]=I(r),n}),{})}let L=null,B=null;async function D(e){const r={...t,...e},o={...T,...k},{elapsed:i,resolvedComponents:a}=await F(o,r),s=r.api_key?((e,t)=>{if(e.cache_api_call&&B)return Promise.resolve(B);if(L)return L;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:m(JSON.stringify(t))})}).then((e=>{if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return e.json()})).then((e=>(B=e,L=null,e))).catch((e=>(console.error("Error fetching pro data",e),L=null,null))),o=e.timeout||5e3,i=new Promise((e=>{setTimeout((()=>{e({thumbmark:m(JSON.stringify(t)),info:{timed_out:!0},version:"1.1.0-rc.3"})}),o)}));return L=Promise.race([r,i]),L})(r,a):null,c=s?await s:null,l=r.performance?{elapsed:i}:{},u=R((null==c?void 0:c.components)||{},r),d=I({...a,...u}),h=(null==c?void 0:c.info)||{uniqueness:{score:"api only"}},f=m(JSON.stringify(d));return async function(e,t,r){var o;const i=`${n}/log`,a={thumbmark:e,components:t,version:"1.1.0-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,d,r).catch((()=>{})),{thumbmark:f,components:d,info:h,version:"1.1.0-rc.3",...l}}async function F(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,x),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=R(l,r,"");return{elapsed:c,resolvedComponents:u}}e.Thumbmark=class{constructor(e){this.options={...t,...e}}async get(e){return D({...this.options,...e})}getVersion(){return"1.1.0-rc.3"}includeComponent(e,n){O(e,n)}},e.getFingerprint=async function(e){try{const n=await D(r);return e?{hash:n.thumbmark.toString(),data:n.components}:n.thumbmark.toString()}catch(e){throw e}},e.getFingerprintData=async function(){return(await D(r)).components},e.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:n}=await F(T,r);return{...n,elapsed:e}}catch(e){throw e}},e.getThumbmark=D,e.getVersion=_,e.includeComponent=O,e.setOption=function(e,n){if(!["include","exclude","permissions_to_check","retries","timeout","logging","api_key","cache_api_call"].includes(e))throw new Error("Unknown option "+e);if(["include","exclude","permissions_to_check"].includes(e)&&(!Array.isArray(n)||!n.every((e=>"string"==typeof e))))throw new Error("The value of the include, exclude and permissions_to_check must be an array of strings");if(["retries","timeout"].includes(e)&&"number"!=typeof n)throw new Error("The value of retries must be a number");r[e]=n}}));
|
|
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 o={...t};const r={private:[{exclude:["canvas"],browsers:["firefox","safari>=17","brave"]},{exclude:["audio"],browsers:["samsungbrowser","safari"]},{exclude:["fonts"],browsers:["firefox"]},{exclude:["plugins"],browsers:["brave"]}],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 o=[];for(let n=0;n<e[0].data.length;n++){let t=[];for(let o=0;o<e.length;o++)t.push(e[o].data[n]);o.push(s(t))}const r=new Uint8ClampedArray(o);return new ImageData(r,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 o=new Uint32Array([n,n,n,n]);!function(e,n){const t=e.byteLength/16|0,o=new Uint32Array(e,0,4*t);for(let e=0;e<t;e++){const t=o.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,o),function(e,n){const t=e.byteLength/16|0,o=e.byteLength%16,r=new Uint32Array(4),i=new Uint8Array(e,16*t,o);switch(o){case 15:r[3]=r[3]^i[14]<<16;case 14:r[3]=r[3]^i[13]<<8;case 13:r[3]=r[3]^i[12],r[3]=Math.imul(r[3],l[3]),r[3]=u(r[3],18),r[3]=Math.imul(r[3],l[0]),n[3]=n[3]^r[3];case 12:r[2]=r[2]^i[11]<<24;case 11:r[2]=r[2]^i[10]<<16;case 10:r[2]=r[2]^i[9]<<8;case 9:r[2]=r[2]^i[8],r[2]=Math.imul(r[2],l[2]),r[2]=u(r[2],17),r[2]=Math.imul(r[2],l[3]),n[2]=n[2]^r[2];case 8:r[1]=r[1]^i[7]<<24;case 7:r[1]=r[1]^i[6]<<16;case 6:r[1]=r[1]^i[5]<<8;case 5:r[1]=r[1]^i[4],r[1]=Math.imul(r[1],l[1]),r[1]=u(r[1],16),r[1]=Math.imul(r[1],l[2]),n[1]=n[1]^r[1];case 4:r[0]=r[0]^i[3]<<24;case 3:r[0]=r[0]^i[2]<<16;case 2:r[0]=r[0]^i[1]<<8;case 1:r[0]=r[0]^i[0],r[0]=Math.imul(r[0],l[0]),r[0]=u(r[0],15),r[0]=Math.imul(r[0],l[1]),n[0]=n[0]^r[0]}}(e,o),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,o);const r=new Uint8Array(o.buffer);return Array.from(r).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 o={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(),r=(t.getParameter(e.UNMASKED_RENDERER_WEBGL)||"").toString();n&&(o.vendorUnmasked=n),r&&(o.rendererUnmasked=r)}}return o}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,o)=>{const r=(t-n)/o;let i=0;for(let t=0;t<o;t++){i+=e(n+(t+.5)*r)}return i*r};function b(e,n){const t={};return n.forEach((n=>{const o=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],o=1;return Object.keys(n).forEach((e=>{n[e]>o&&(t=e,o=n[e])})),t}(e.map((e=>n in e?e[n]:void 0)).filter((e=>void 0!==e)));o&&(t[n]=o)})),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,o,r,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===(o=s.groups)||void 0===o?void 0:o.version2);if(a||!(null===(r=s.groups)||void 0===r?void 0:r.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 C="SamsungBrowser"!==M().name?1:3;let x,T=null;const O={audio:async function(){return async function(){return new Promise(((e,n)=>{try{const n=44100,t=5e3,o=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,t,n),r=o.createBufferSource(),a=o.createOscillator();a.frequency.value=1e3;const s=o.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(o.destination),a.start(),o.oncomplete=n=>{c=n.renderedBuffer.getChannelData(0),e({sampleHash:i(c),maxChannels:o.destination.maxChannelCount,channelCountMode:r.channelCountMode})},o.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 o="Random Text WMwmil10Oo";n.font="23.123px Arial",n.fillStyle="black",n.fillText(o,-5,15),n.fillStyle="rgba(0, 0, 255, 0.5)",n.fillText(o,-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 r=n.getImageData(0,0,e.width,e.height);return r}()));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 o=t.style;o.setProperty("position","fixed"),o.setProperty("display","block","important"),o.setProperty("visibility","visible"),o.setProperty("border","0"),o.setProperty("opacity","0"),t.src="about:blank",document.body.appendChild(t);const r=t.contentDocument||(null===(n=t.contentWindow)||void 0===n?void 0:n.document);if(!r)throw new Error("Iframe document is not accessible");e({iframe:r}),setTimeout((()=>{document.body.removeChild(t)}),0)}((async({iframe:n})=>{const t=n.createElement("canvas").getContext("2d"),o=p.map((e=>g(t,e)));let r={};f.forEach((e=>{const n=g(t,e);o.includes(n)||(r[e]=n)})),e(r)}))}catch(e){n({error:"unsupported"})}}))},hardware:function(){return new Promise(((e,n)=>{const t=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,o=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:v(),architecture:w(),deviceMemory:t.toString()||"undefined",jsHeapSizeLimit:o.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(),o=Math.min(e,n).toString();return`${t}x${o}`}()),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&&(x=document.createElement("canvas"),x.width=200,x.height=100,T=x.getContext("webgl"));try{if(!T)throw new Error("WebGL not supported");const e=Array.from({length:C},(()=>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),o=T.createShader(T.FRAGMENT_SHADER);if(!t||!o)throw new Error("Failed to create shaders");if(T.shaderSource(t,e),T.shaderSource(o,n),T.compileShader(t),!T.getShaderParameter(t,T.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+T.getShaderInfoLog(t));if(T.compileShader(o),!T.getShaderParameter(o,T.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+T.getShaderInfoLog(o));const r=T.createProgram();if(!r)throw new Error("Failed to create shader program");if(T.attachShader(r,t),T.attachShader(r,o),T.linkProgram(r),!T.getProgramParameter(r,T.LINK_STATUS))throw new Error("Shader program linking failed: "+T.getProgramInfoLog(r));T.useProgram(r);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)*(x.width/2),a[4*e+3]=Math.sin(n)*(x.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(r,"position");T.enableVertexAttribArray(l),T.vertexAttribPointer(l,2,T.FLOAT,!1,0,0),T.viewport(0,0,x.width,x.height),T.clearColor(0,0,0,1),T.clear(T.COLOR_BUFFER_BIT),T.drawArrays(T.LINES,0,2*i);const u=new Uint8ClampedArray(x.width*x.height*4);T.readPixels(0,0,x.width,x.height,T.RGBA,T.UNSIGNED_BYTE,u);return new ImageData(u,x.width,x.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,x.width,x.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}}},k={},I={timeout:"true"},R=(e,n,t)=>{k[e]=n};function _(){return"1.1.0-rc.4"}function L(e,n){var t;const o=M(),i=o.name.toLowerCase(),a=o.version.split(".")[0]||"0",s=parseInt(a,10);console.log(s);const 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=r[e];if(n)for(const e of n){const n=!("browsers"in e),o=!n&&(null===(t=e.browsers)||void 0===t?void 0:t.some((e=>{const n=e.match(/(.+?)(>=)(\d+)/);if(n){const[,e,,t]=n,o=parseInt(t,10);return i===e&&s>=o}return i===e})));(n||o)&&c.push(...e.exclude)}}return function e(n,t=""){const o={};for(const[r,i]of Object.entries(n)){const n=t?`${t}.${r}`:r;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||(o[r]=i)}else{const t=e(i,n);Object.keys(t).length>0&&(o[r]=t)}}return o}(e)}function B(e){return"object"!=typeof e||null===e||Array.isArray(e)?e:Object.keys(e).sort().reduce(((n,t)=>{const o=e[t];return n[t]=B(o),n}),{})}let D=null,F=null;async function N(e){const o={...t,...e},r={...O,...k},{elapsed:i,resolvedComponents:a}=await U(r,o),s=o.api_key?((e,t)=>{if(e.cache_api_call&&F)return Promise.resolve(F);if(D)return D;const o=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))})}).then((e=>{if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return e.json()})).then((e=>(F=e,D=null,e))).catch((e=>(console.error("Error fetching pro data",e),D=null,null))),r=e.timeout||5e3,i=new Promise((e=>{setTimeout((()=>{e({thumbmark:d(JSON.stringify(t)),info:{timed_out:!0},version:"1.1.0-rc.4"})}),r)}));return D=Promise.race([o,i]),D})(o,a):null,c=s?await s:null,l=o.performance?{elapsed:i}:{},u=L((null==c?void 0:c.components)||{},o),m=B({...a,...u}),h=(null==c?void 0:c.info)||{uniqueness:{score:"api only"}},f=d(JSON.stringify(m));return async function(e,t,o){var r;const i=`${n}/log`,a={thumbmark:e,components:t,version:"1.1.0-rc.4",options:o,path:null===(r=null===window||void 0===window?void 0:window.location)||void 0===r?void 0:r.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,o).catch((()=>{})),{thumbmark:f,components:m,info:h,version:"1.1.0-rc.4",...l}}async function U(e,n){const o={...t,...n},r=Object.entries(e).filter((([e])=>{var n;return!(null===(n=null==o?void 0:o.exclude)||void 0===n?void 0:n.includes(e))})).filter((([e])=>{var n,t,r,i;return(null===(n=null==o?void 0:o.include)||void 0===n?void 0:n.some((e=>e.includes("."))))?null===(t=null==o?void 0:o.include)||void 0===t?void 0:t.some((n=>n.startsWith(e))):0===(null===(r=null==o?void 0:o.include)||void 0===r?void 0:r.length)||(null===(i=null==o?void 0:o.include)||void 0===i?void 0:i.includes(e))})),i=r.map((([e])=>e)),a=r.map((([e,t])=>t(n))),s=await function(e,n,t){return Promise.all(e.map((e=>{const o=performance.now();return Promise.race([e.then((e=>({value:e,elapsed:performance.now()-o}))),(r=n,i=t,new Promise((e=>{setTimeout((()=>e(i)),r)}))).then((e=>({value:e,elapsed:performance.now()-o})))]);var r,i})))}(a,(null==o?void 0:o.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,o);return{elapsed:c,resolvedComponents:u}}e.Thumbmark=class{constructor(e){this.options={...t,...e}}async get(e){return N({...this.options,...e})}getVersion(){return"1.1.0-rc.4"}includeComponent(e,n){R(e,n)}},e.getFingerprint=async function(e){try{const n=await N(o);return e?{hash:n.thumbmark.toString(),data:n.components}:n.thumbmark.toString()}catch(e){throw e}},e.getFingerprintData=async function(){return(await N(o)).components},e.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:n}=await U(O,o);return{...n,elapsed:e}}catch(e){throw e}},e.getThumbmark=N,e.getVersion=_,e.includeComponent=R,e.setOption=function(e,n){o[e]=n}}));
|
|
2
2
|
//# sourceMappingURL=thumbmark.umd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbmark.umd.js","sources":["../src/options.ts","../src/components/system/browser.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/screen/index.ts","../src/components/webgl/index.ts","../src/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/components/system/index.ts","../src/utils/version.ts","../src/functions/filterComponents.ts","../src/utils/sort.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","logging","timeout","cache_api_call","performance","options","getBrowser","navigator","name","version","ua","userAgent","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","brave","regex","match","_a","groups","undefined","_b","_c","version1","_d","version2","_e","_f","source","includes","toLowerCase","isMobileUserAgent","test","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","getContext","vendor","getParameter","VENDOR","renderer","RENDERER","result","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","matchMedias","results","mediaQueries","pointer","hover","update","scripting","value","matchMedia","matches","_RUNS","tm_component_promises","audio","async","browser","reject","sampleRate","numSamples","audioContext","window","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","ver","split","majorVer","imageDatas","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","randomText","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","imageData","getImageData","generateCanvasImageData","commonPixelsHash","fonts","callback","iframe","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","platform","productSub","product","useragent","hardwareConcurrency","mobile","location","protocol","ApplePaySession","versionCheck","supportsVersion","getApplePayVersion","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","path","excludeList","includeList","entries","currentPath","isArray","isExcluded","some","exclusion","startsWith","isIncluded","inclusion","filtered","sortComponentKeys","sort","reduce","acc","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","every","item"],"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/sort.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","ver","split","majorVer","log","excludeList","stabilizationOptions","includeList","option","rules","rule","appliesToAllBrowsers","browserMatch","some","browserRule","ruleName","ruleVersionStr","ruleVersion","performFilter","currentObj","path","entries","currentPath","isArray","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","sortComponentKeys","sort","reduce","acc","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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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { componentInterface
|
|
2
|
-
import { getBrowser } from '../system/browser'
|
|
1
|
+
import { componentInterface } from '../../factory'
|
|
3
2
|
|
|
4
3
|
export default async function getAudio(): Promise<componentInterface | null> {
|
|
5
|
-
|
|
6
|
-
if (!['SamsungBrowser', 'Safari'].includes(browser.name))
|
|
7
|
-
return createAudioFingerprint()
|
|
8
|
-
return null;
|
|
4
|
+
return createAudioFingerprint()
|
|
9
5
|
}
|
|
10
6
|
|
|
11
7
|
async function createAudioFingerprint(): Promise<componentInterface> {
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { componentInterface
|
|
1
|
+
import { componentInterface } from '../../factory';
|
|
2
2
|
import { getCommonPixels } from '../../utils/commonPixels';
|
|
3
3
|
import { hash } from '../../utils/hash';
|
|
4
|
-
import { getBrowser } from '../system/browser';
|
|
5
|
-
import { optionsInterface } from '../../options';
|
|
6
4
|
|
|
7
5
|
const _RUNS = 3;
|
|
8
6
|
|
|
@@ -16,19 +14,11 @@ const _WIDTH = 280;
|
|
|
16
14
|
const _HEIGHT = 20;
|
|
17
15
|
|
|
18
16
|
export default async function getCanvas(): Promise<componentInterface | null> {
|
|
19
|
-
|
|
20
|
-
const name = browser.name.toLowerCase();
|
|
21
|
-
const ver = browser.version.split('.')[0] || '0';
|
|
22
|
-
const majorVer = parseInt(ver, 10);
|
|
23
|
-
if (!['firefox', 'brave'].includes(name) && !(name === 'safari' && majorVer >= 17))
|
|
24
|
-
return generateCanvasFingerprint()
|
|
25
|
-
return null;
|
|
17
|
+
return generateCanvasFingerprint()
|
|
26
18
|
}
|
|
27
19
|
|
|
28
20
|
|
|
29
21
|
export function generateCanvasFingerprint(): Promise<componentInterface> {
|
|
30
|
-
const canvas = document.createElement('canvas');
|
|
31
|
-
|
|
32
22
|
return new Promise((resolve) => {
|
|
33
23
|
/**
|
|
34
24
|
* Since some browsers fudge with the canvas pixels to prevent fingerprinting, the following
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { componentInterface
|
|
1
|
+
import { componentInterface } from '../../factory'
|
|
2
2
|
import { ephemeralIFrame } from '../../utils/ephemeralIFrame'
|
|
3
|
-
import { getBrowser } from '../system/browser'
|
|
4
3
|
import { optionsInterface } from '../../options'
|
|
5
4
|
|
|
6
|
-
interface FontMetrics {[k: string]: number}
|
|
5
|
+
//interface FontMetrics {[k: string]: number}
|
|
7
6
|
|
|
8
7
|
const availableFonts = [
|
|
9
8
|
'Arial',
|
|
@@ -100,10 +99,7 @@ const availableFonts = [
|
|
|
100
99
|
const baseFonts = ['monospace', 'sans-serif', 'serif'];
|
|
101
100
|
|
|
102
101
|
export default async function getFonts(options?: optionsInterface): Promise<componentInterface | null> {
|
|
103
|
-
const browser = getBrowser()
|
|
104
|
-
if (!['Firefox'].includes(browser.name))
|
|
105
102
|
return getFontMetrics()
|
|
106
|
-
return null;
|
|
107
103
|
}
|
|
108
104
|
|
|
109
105
|
export function getFontMetrics(): Promise<componentInterface> {
|
|
@@ -112,7 +108,6 @@ export function getFontMetrics(): Promise<componentInterface> {
|
|
|
112
108
|
try {
|
|
113
109
|
|
|
114
110
|
ephemeralIFrame(async ({ iframe }) => {
|
|
115
|
-
const textToRender = 'Hello, world!';
|
|
116
111
|
|
|
117
112
|
const canvas = iframe.createElement('canvas');
|
|
118
113
|
const ctx = canvas.getContext('2d');
|
|
@@ -144,7 +139,6 @@ function measureSingleFont(ctx: CanvasRenderingContext2D | null, font: string):
|
|
|
144
139
|
throw new Error('Canvas context not supported');
|
|
145
140
|
}
|
|
146
141
|
const text: string = "WwMmLli0Oo";
|
|
147
|
-
const defaultFont = ctx.font; // Store default font
|
|
148
142
|
ctx.font = `72px ${font}`; // Set a default font size
|
|
149
143
|
return ctx.measureText(text).width;
|
|
150
144
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { componentInterface
|
|
1
|
+
import { componentInterface } from '../../factory';
|
|
2
2
|
import { mostFrequentValuesInArrayOfDictionaries } from '../../utils/getMostFrequent';
|
|
3
3
|
import { optionsInterface } from '../../options';
|
|
4
|
-
import { getBrowser } from '../system/browser';
|
|
5
4
|
|
|
6
5
|
const defaultPermissionKeys: PermissionName[] = [
|
|
7
6
|
'accelerometer',
|
|
@@ -27,10 +26,6 @@ const defaultPermissionKeys: PermissionName[] = [
|
|
|
27
26
|
|
|
28
27
|
export default async function getPermissions(options?: optionsInterface): Promise<componentInterface> {
|
|
29
28
|
let permission_keys = options?.permissions_to_check || defaultPermissionKeys;
|
|
30
|
-
const browser = getBrowser();
|
|
31
|
-
if (browser.name.toLowerCase() === 'safari') { // removing from Safari due to iFrame handling
|
|
32
|
-
permission_keys = permission_keys.filter((key) => !['camera', 'geolocation', 'microphone'].includes(key));
|
|
33
|
-
}
|
|
34
29
|
const retries = 3;
|
|
35
30
|
const permissionPromises: Promise<componentInterface>[] = Array.from({length: retries}, () => getBrowserPermissionsOnce(permission_keys) );
|
|
36
31
|
return Promise.all(permissionPromises).then((resolvedPermissions) => {
|
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
import { componentInterface
|
|
2
|
-
import { getBrowser } from '../system/browser';
|
|
1
|
+
import { componentInterface} from '../../factory'
|
|
3
2
|
|
|
4
3
|
export default async function getPlugins(): Promise<componentInterface | null> {
|
|
5
|
-
const browser = getBrowser();
|
|
6
|
-
const name = browser.name.toLowerCase();
|
|
7
|
-
|
|
8
|
-
// Brave will scramble the plugins list, so not including it.
|
|
9
|
-
if (['brave'].includes(name)) {
|
|
10
|
-
return null;
|
|
11
|
-
}
|
|
12
4
|
|
|
13
5
|
const plugins: string[] = [];
|
|
14
6
|
|
|
@@ -14,11 +14,8 @@ export default function getSystem(): Promise<componentInterface> {
|
|
|
14
14
|
'hardwareConcurrency': navigator.hardwareConcurrency,
|
|
15
15
|
'browser': {'name': browser.name, 'version': browser.version },
|
|
16
16
|
'mobile': isMobileUserAgent(),
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (browser.name.toLowerCase() !== 'safari') {
|
|
20
|
-
result['applePayVersion'] = getApplePayVersion();
|
|
21
|
-
result['cookieEnabled'] = window.navigator.cookieEnabled;
|
|
17
|
+
'applePayVersion': getApplePayVersion(),
|
|
18
|
+
'cookieEnabled': window.navigator.cookieEnabled,
|
|
22
19
|
}
|
|
23
20
|
resolve(result);
|
|
24
21
|
});
|
|
@@ -1,42 +1,91 @@
|
|
|
1
1
|
import { componentInterface } from "../factory";
|
|
2
2
|
import { optionsInterface } from "../options";
|
|
3
|
+
import { stabilizationExclusionRules } from "../options";
|
|
4
|
+
import { getBrowser } from "../components/system/browser";
|
|
3
5
|
|
|
4
6
|
// ===================== Data Filtering =====================
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
|
-
*
|
|
9
|
+
* Filters a componentInterface object based on include/exclude and stabilization options.
|
|
8
10
|
*
|
|
9
11
|
* @param obj - The object to filter
|
|
10
12
|
* @param options - Filtering options
|
|
11
|
-
* @param path - Current path (for recursion)
|
|
12
13
|
* @returns Filtered object
|
|
13
14
|
*/
|
|
14
15
|
export function filterThumbmarkData(
|
|
15
16
|
obj: componentInterface,
|
|
16
17
|
options?: optionsInterface,
|
|
17
|
-
path: string = ""
|
|
18
18
|
): componentInterface {
|
|
19
|
-
|
|
20
|
-
const
|
|
19
|
+
// Get current browser name and version
|
|
20
|
+
const browser = getBrowser();
|
|
21
|
+
const name = browser.name.toLowerCase();
|
|
22
|
+
const ver = browser.version.split('.')[0] || '0';
|
|
23
|
+
const majorVer = parseInt(ver, 10);
|
|
24
|
+
console.log(majorVer);
|
|
25
|
+
|
|
26
|
+
// Initialize excludeList with user-defined exclusions from options
|
|
27
|
+
const excludeList = [...(options?.exclude || [])];
|
|
28
|
+
const stabilizationOptions = options?.stabilize || [];
|
|
21
29
|
const includeList = options?.include || [];
|
|
22
30
|
|
|
23
|
-
|
|
24
|
-
|
|
31
|
+
// Expand the excludeList based on stabilization rules
|
|
32
|
+
for (const option of stabilizationOptions) {
|
|
33
|
+
const rules = stabilizationExclusionRules[option as keyof typeof stabilizationExclusionRules];
|
|
34
|
+
if (!rules) continue;
|
|
35
|
+
|
|
36
|
+
for (const rule of rules) {
|
|
37
|
+
// FIX: Use the 'in' operator as a type guard to check if 'browsers' exists.
|
|
38
|
+
// A rule applies to all browsers if the 'browsers' key is not present.
|
|
39
|
+
const appliesToAllBrowsers = !('browsers' in rule);
|
|
25
40
|
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
41
|
+
// The 'rule.browsers?' optional chaining here safely handles the case where 'browsers' is missing.
|
|
42
|
+
const browserMatch = !appliesToAllBrowsers && rule.browsers?.some(browserRule => {
|
|
43
|
+
const match = browserRule.match(/(.+?)(>=)(\d+)/);
|
|
44
|
+
|
|
45
|
+
if (match) {
|
|
46
|
+
const [, ruleName, , ruleVersionStr] = match;
|
|
47
|
+
const ruleVersion = parseInt(ruleVersionStr, 10);
|
|
48
|
+
return name === ruleName && majorVer >= ruleVersion;
|
|
49
|
+
}
|
|
50
|
+
return name === browserRule;
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
if (appliesToAllBrowsers || browserMatch) {
|
|
54
|
+
excludeList.push(...rule.exclude);
|
|
30
55
|
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Inner recursive function to perform the actual filtering.
|
|
61
|
+
* Uses the fully prepared excludeList and includeList from the parent scope.
|
|
62
|
+
* @param currentObj - The object to filter
|
|
63
|
+
* @param path - Current path for nested keys
|
|
64
|
+
* @returns A filtered object
|
|
65
|
+
*/
|
|
66
|
+
function performFilter(currentObj: componentInterface, path: string = ""): componentInterface {
|
|
67
|
+
const result: componentInterface = {};
|
|
68
|
+
|
|
69
|
+
for (const [key, value] of Object.entries(currentObj)) {
|
|
70
|
+
const currentPath = path ? `${path}.${key}` : key;
|
|
34
71
|
|
|
35
|
-
if (!
|
|
36
|
-
|
|
72
|
+
if (typeof value === "object" && !Array.isArray(value) && value !== null) {
|
|
73
|
+
const filtered = performFilter(value, currentPath);
|
|
74
|
+
if (Object.keys(filtered).length > 0) {
|
|
75
|
+
result[key] = filtered;
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
const isExcluded = excludeList.some(exclusion => currentPath.startsWith(exclusion));
|
|
79
|
+
const isIncluded = includeList.some(inclusion => currentPath.startsWith(inclusion));
|
|
80
|
+
|
|
81
|
+
if (!isExcluded || isIncluded) {
|
|
82
|
+
result[key] = value;
|
|
83
|
+
}
|
|
37
84
|
}
|
|
38
85
|
}
|
|
86
|
+
return result;
|
|
39
87
|
}
|
|
40
88
|
|
|
41
|
-
|
|
89
|
+
// Start the filtering process
|
|
90
|
+
return performFilter(obj);
|
|
42
91
|
}
|
package/src/functions/index.ts
CHANGED
|
@@ -221,7 +221,7 @@ export async function resolveClientComponents(
|
|
|
221
221
|
}
|
|
222
222
|
});
|
|
223
223
|
|
|
224
|
-
const resolvedComponents = filterThumbmarkData(resolvedComponentsRaw, opts
|
|
224
|
+
const resolvedComponents = filterThumbmarkData(resolvedComponentsRaw, opts);
|
|
225
225
|
return { elapsed, resolvedComponents };
|
|
226
226
|
}
|
|
227
227
|
|
package/src/options.ts
CHANGED
|
@@ -7,6 +7,7 @@ export interface optionsInterface {
|
|
|
7
7
|
api_key?: string,
|
|
8
8
|
cache_api_call?: boolean,
|
|
9
9
|
performance?: boolean,
|
|
10
|
+
stabilize?: string[],
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
export const API_ENDPOINT = 'https://api.thumbmarkjs.com';
|
|
@@ -14,6 +15,7 @@ export const API_ENDPOINT = 'https://api.thumbmarkjs.com';
|
|
|
14
15
|
export const defaultOptions: optionsInterface = {
|
|
15
16
|
exclude: [],
|
|
16
17
|
include: [],
|
|
18
|
+
stabilize: ['private', 'iframe'],
|
|
17
19
|
logging: true,
|
|
18
20
|
timeout: 5000,
|
|
19
21
|
cache_api_call: true,
|
|
@@ -27,11 +29,30 @@ export let options = {...defaultOptions};
|
|
|
27
29
|
* @param value
|
|
28
30
|
*/
|
|
29
31
|
export function setOption<K extends keyof optionsInterface>(key: K, value: optionsInterface[K]) {
|
|
30
|
-
if (!['include', 'exclude', 'permissions_to_check', 'retries', 'timeout', 'logging', 'api_key', 'cache_api_call'].includes(key))
|
|
31
|
-
throw new Error('Unknown option ' + key)
|
|
32
|
-
if (['include', 'exclude', 'permissions_to_check'].includes(key) && !(Array.isArray(value) && value.every(item => typeof item === 'string')) )
|
|
33
|
-
throw new Error('The value of the include, exclude and permissions_to_check must be an array of strings');
|
|
34
|
-
if ([ 'retries', 'timeout'].includes(key) && typeof value !== 'number')
|
|
35
|
-
throw new Error('The value of retries must be a number');
|
|
36
32
|
options[key] = value;
|
|
37
33
|
}
|
|
34
|
+
|
|
35
|
+
export const stabilizationExclusionRules = {
|
|
36
|
+
'private': [
|
|
37
|
+
{ exclude: ['canvas'], browsers: ['firefox', 'safari>=17', 'brave' ]},
|
|
38
|
+
{ exclude: ['audio'], browsers: ['samsungbrowser', 'safari' ]},
|
|
39
|
+
{ exclude: ['fonts'], browsers: ['firefox']},
|
|
40
|
+
{ exclude: ['plugins'], browsers: ['brave']},
|
|
41
|
+
],
|
|
42
|
+
'iframe': [
|
|
43
|
+
{
|
|
44
|
+
exclude: [
|
|
45
|
+
'permissions.camera',
|
|
46
|
+
'permission.geolocation',
|
|
47
|
+
'permissions.microphone',
|
|
48
|
+
'system.applePayVersion',
|
|
49
|
+
'system.cookieEnabled'
|
|
50
|
+
],
|
|
51
|
+
browsers: ['safari']
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
],
|
|
55
|
+
'vpn': [
|
|
56
|
+
{ exclude: ['ip'] },
|
|
57
|
+
],
|
|
58
|
+
}
|