@thumbmarkjs/thumbmarkjs 1.8.1 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -4
- package/dist/thumbmark.cjs.js +1 -1
- package/dist/thumbmark.cjs.js.map +1 -1
- package/dist/thumbmark.esm.js +1 -1
- package/dist/thumbmark.esm.js.map +1 -1
- package/dist/thumbmark.umd.js +1 -1
- package/dist/thumbmark.umd.js.map +1 -1
- package/dist/types/components/audio/index.d.ts +2 -0
- package/dist/types/components/canvas/index.d.ts +3 -0
- package/dist/types/components/fonts/index.d.ts +4 -0
- package/dist/types/components/hardware/index.d.ts +2 -0
- package/dist/types/components/intl/index.d.ts +2 -0
- package/dist/types/components/locales/index.d.ts +2 -0
- package/dist/types/components/math/index.d.ts +2 -0
- package/dist/types/components/mathml/index.d.ts +2 -0
- package/dist/types/components/mediaDevices/index.d.ts +2 -0
- package/dist/types/components/permissions/index.d.ts +3 -0
- package/dist/types/components/plugins/index.d.ts +2 -0
- package/dist/types/components/screen/index.d.ts +2 -0
- package/dist/types/components/speech/index.d.ts +2 -0
- package/dist/types/components/system/browser.d.ts +9 -0
- package/dist/types/components/system/index.d.ts +2 -0
- package/dist/types/components/webgl/index.d.ts +13 -0
- package/dist/types/components/webrtc/index.d.ts +3 -0
- package/dist/types/factory.d.ts +66 -0
- package/dist/types/functions/api.d.ts +73 -0
- package/dist/types/functions/filterComponents.d.ts +15 -0
- package/dist/types/functions/index.d.ts +63 -0
- package/dist/types/functions/legacy_functions.d.ts +27 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/options.d.ts +76 -0
- package/dist/types/thumbmark.d.ts +28 -0
- package/dist/types/utils/cache.d.ts +23 -0
- package/dist/types/utils/commonPixels.d.ts +1 -0
- package/dist/types/utils/ephemeralIFrame.d.ts +4 -0
- package/dist/types/utils/getMostFrequent.d.ts +5 -0
- package/dist/types/utils/hash.d.ts +5 -0
- package/dist/types/utils/imageDataToDataURL.d.ts +1 -0
- package/dist/types/utils/log.d.ts +9 -0
- package/dist/types/utils/raceAll.d.ts +10 -0
- package/dist/types/utils/sort.d.ts +8 -0
- package/dist/types/utils/stableStringify.d.ts +22 -0
- package/dist/types/utils/version.d.ts +4 -0
- package/dist/types/utils/visitorId.d.ts +14 -0
- package/package.json +3 -2
- package/src/components/audio/index.ts +0 -1
- package/src/components/system/browser.ts +24 -4
- package/src/components/webgl/index.test.ts +223 -0
- package/src/components/webgl/index.ts +188 -146
- package/src/components/webrtc/index.ts +15 -38
- package/src/functions/filterComponents.test.ts +35 -0
- package/src/functions/filterComponents.ts +2 -3
- package/src/functions/index.ts +70 -10
- package/src/utils/commonPixels.ts +25 -0
- package/src/utils/raceAll.ts +22 -12
- package/src/utils/stableStringify.ts +6 -4
package/dist/thumbmark.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ThumbmarkJS={})}(this,(function(e){"use strict";const t=2592e5,n="thumbmark",o="https://api.thumbmarkjs.com",r={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,cache_lifetime_in_ms:0,performance:!1,experimental:!1,property_name_factory:e=>`${n}_${e}`};let i={...r};const a={private:[{exclude:["canvas"],browsers:["firefox","safari>=17","brave"]},{exclude:["audio"],browsers:["samsungbrowser","safari"]},{exclude:["fonts"],browsers:["firefox"]},{exclude:["audio.sampleHash","hardware.deviceMemory","header.acceptLanguage.q","system.hardwareConcurrency","plugins"],browsers:["brave"]},{exclude:["tls.extensions"],browsers:["firefox","chrome","safari"]},{exclude:["header.acceptLanguage"],browsers:["edge","chrome"]}],iframe:[{exclude:["system.applePayVersion","system.cookieEnabled"],browsers:["safari"]},{exclude:["permissions"]}],vpn:[{exclude:["ip"]}],always:[{exclude:["speech"],browsers:["brave","firefox"]}]},s="undefined"!=typeof window?window.OfflineAudioContext||window.webkitOfflineAudioContext:null;function c(e){let t=0;for(let n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}function u(e,t,n){let o=[];for(let t=0;t<e[0].data.length;t++){let n=[];for(let o=0;o<e.length;o++)n.push(e[o].data[t]);o.push(l(n))}const r=new Uint8ClampedArray(o);return new ImageData(r,t,n)}function l(e){if(0===e.length)return 0;const t={};for(const n of e)t[n]=(t[n]||0)+1;let n=e[0];for(const e in t)t[e]>t[n]&&(n=parseInt(e,10));return n}function m(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const d=new Uint32Array([597399067,2869860233,951274213,2716044179]);function f(e,t){return e<<t|e>>>32-t}function p(e,t=0){if(t=t?0|t:0,"string"==typeof e&&(e=function(e){if("undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e).buffer;const t=[];for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);o<128?t.push(o):o<2048?t.push(192|o>>6,128|63&o):o<55296||o>=57344?t.push(224|o>>12,128|o>>6&63,128|63&o):(n++,o=65536+((1023&o)<<10|1023&e.charCodeAt(n)),t.push(240|o>>18,128|o>>12&63,128|o>>6&63,128|63&o))}return new Uint8Array(t).buffer}(e)),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const n=new Uint32Array([t,t,t,t]);!function(e,t){const n=e.byteLength/16|0,o=new Uint32Array(e,0,4*n);for(let e=0;e<n;e++){const n=o.subarray(4*e,4*(e+1));n[0]=Math.imul(n[0],d[0]),n[0]=f(n[0],15),n[0]=Math.imul(n[0],d[1]),t[0]=t[0]^n[0],t[0]=f(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,n[1]=Math.imul(n[1],d[1]),n[1]=f(n[1],16),n[1]=Math.imul(n[1],d[2]),t[1]=t[1]^n[1],t[1]=f(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,n[2]=Math.imul(n[2],d[2]),n[2]=f(n[2],17),n[2]=Math.imul(n[2],d[3]),t[2]=t[2]^n[2],t[2]=f(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,n[3]=Math.imul(n[3],d[3]),n[3]=f(n[3],18),n[3]=Math.imul(n[3],d[0]),t[3]=t[3]^n[3],t[3]=f(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}(e,n),function(e,t){const n=e.byteLength/16|0,o=e.byteLength%16,r=new Uint32Array(4),i=new Uint8Array(e,16*n,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],d[3]),r[3]=f(r[3],18),r[3]=Math.imul(r[3],d[0]),t[3]=t[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],d[2]),r[2]=f(r[2],17),r[2]=Math.imul(r[2],d[3]),t[2]=t[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],d[1]),r[1]=f(r[1],16),r[1]=Math.imul(r[1],d[2]),t[1]=t[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],d[0]),r[0]=f(r[0],15),r[0]=Math.imul(r[0],d[1]),t[0]=t[0]^r[0]}}(e,n),function(e,t){t[0]=t[0]^e.byteLength,t[1]=t[1]^e.byteLength,t[2]=t[2]^e.byteLength,t[3]=t[3]^e.byteLength,t[0]=t[0]+t[1]|0,t[0]=t[0]+t[2]|0,t[0]=t[0]+t[3]|0,t[1]=t[1]+t[0]|0,t[2]=t[2]+t[0]|0,t[3]=t[3]+t[0]|0,t[0]=m(t[0]),t[1]=m(t[1]),t[2]=m(t[2]),t[3]=m(t[3]),t[0]=t[0]+t[1]|0,t[0]=t[0]+t[2]|0,t[0]=t[0]+t[3]|0,t[1]=t[1]+t[0]|0,t[2]=t[2]+t[0]|0,t[3]=t[3]+t[0]|0}(e,n);const o=new Uint8Array(n.buffer);return Array.from(o).map((e=>e.toString(16).padStart(2,"0"))).join("")}const h=280;async function g(e){for(var t;!document.body;)await w(50);const n=document.createElement("iframe");n.setAttribute("frameBorder","0");const o=n.style;o.setProperty("position","fixed"),o.setProperty("display","block","important"),o.setProperty("visibility","visible"),o.setProperty("border","0"),o.setProperty("opacity","0"),n.src="about:blank",document.body.appendChild(n);const r=n.contentDocument||(null===(t=n.contentWindow)||void 0===t?void 0:t.document);if(!r)throw new Error("Iframe document is not accessible");e({iframe:r}),setTimeout((()=>{document.body.removeChild(n)}),0)}function w(e,t){return new Promise((n=>setTimeout(n,e,t)))}const v=["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"],y=["monospace","sans-serif","serif"];function S(e,t){return e.font=`72px ${t}`,e.measureText("WwMmLli0Oo").width}function b(){var e;const t=document.createElement("canvas"),n=null!==(e=t.getContext("webgl"))&&void 0!==e?e:t.getContext("experimental-webgl");if(n&&"getParameter"in n)try{const e=(n.getParameter(n.VENDOR)||"").toString(),t=(n.getParameter(n.RENDERER)||"").toString();let o={vendor:e,renderer:t,version:(n.getParameter(n.VERSION)||"").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||"").toString()};if(!t.length||!e.length){const e=n.getExtension("WEBGL_debug_renderer_info");if(e){const t=(n.getParameter(e.UNMASKED_VENDOR_WEBGL)||"").toString(),r=(n.getParameter(e.UNMASKED_RENDERER_WEBGL)||"").toString();t&&(o.vendorUnmasked=t),r&&(o.rendererUnmasked=r)}}return o}catch(e){}return"undefined"}function C(){const e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}const M=(e,t,n,o)=>{const r=(n-t)/o;let i=0;for(let n=0;n<o;n++){i+=e(t+(n+.5)*r)}return i*r};function E(e,t){const n={};return t.forEach((t=>{const o=function(e){if(0===e.length)return null;const t={};e.forEach((e=>{const n=String(e);t[n]=(t[n]||0)+1}));let n=e[0],o=1;return Object.keys(t).forEach((e=>{t[e]>o&&(n=e,o=t[e])})),n}(e.map((e=>t in e?e[t]:void 0)).filter((e=>void 0!==e)));o&&(n[t]=o)})),n}const x=["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(){if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const e=[{name:"Brave",detect:()=>!!navigator.brave}];for(const t of e)if(t.detect()){const e=T(navigator.userAgent);return{name:t.name,version:e.version}}return T(navigator.userAgent)}function T(e){var t,n,o,r,i,a;const 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>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"};for(const u of s){const s=e.match(u);if(s){let e=null===(t=s.groups)||void 0===t?void 0:t.name,l=(null===(n=s.groups)||void 0===n?void 0:n.version)||(null===(o=s.groups)||void 0===o?void 0:o.version1)||(null===(r=s.groups)||void 0===r?void 0:r.version2);if(e||!(null===(i=s.groups)||void 0===i?void 0:i.version1)&&!(null===(a=s.groups)||void 0===a?void 0:a.version2)||(e="Safari"),!e&&u.source.includes("Opera Mini")&&(e="Opera Mini"),!e&&u.source.includes("Opera Mobi")&&(e="Opera Mobi"),!e&&u.source.includes("Opera")&&(e="Opera"),!e&&s[1]&&(e=s[1]),!l&&s[2]&&(l=s[2]),e){return{name:c[e.toLowerCase()]||e,version:l||"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 _(){let e=[];const t={"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(t).forEach((n=>{t[n].forEach((t=>{matchMedia(`(${n}: ${t})`).matches&&e.push(`${n}: ${t}`)}))})),e}function I(){if("https:"===window.location.protocol&&"function"==typeof window.ApplePaySession)try{const e=window.ApplePaySession.supportsVersion;for(let t=15;t>0;t--)if(e(t))return t}catch(e){return 0}return 0}const k="SamsungBrowser"!==P().name?1:3;let R,O=null;function L(e){const t=[];return function e(n){if(n&&n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),void 0===n)return;if("number"==typeof n)return isFinite(n)?""+n:"null";if("object"!=typeof n)return JSON.stringify(n);let o,r;if(Array.isArray(n)){for(r="[",o=0;o<n.length;o++)o&&(r+=","),r+=e(n[o])||"null";return r+"]"}if(null===n)return"null";if(-1!==t.indexOf(n))throw new TypeError("Converting circular structure to JSON");const i=t.push(n)-1,a=Object.keys(n).sort();for(r="",o=0;o<a.length;o++){const t=a[o],i=e(n[t]);i&&(r&&(r+=","),r+=JSON.stringify(t)+":"+i)}return t.splice(i,1),"{"+r+"}"}(e)||""}const D=["𝔄","𝔅","ℭ","𝔇","𝔈","𝔉","𝔸","𝔹","ℂ","𝔻","𝔼","𝔽"],F=["β","ψ","λ","ε","ζ","α","ξ","μ","ρ","φ","κ","τ","η","σ","ι","ω","γ","ν","χ","δ","θ","π","υ","ο"];function N(e,t){return`<math><mrow>${t}</mrow></math>`}function U(){let e="<mo>∏</mo>";return D.forEach(((t,n)=>{const o=2*n,r=F.slice(o,o+2);2===r.length&&(e+=`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`)})),N(0,`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function B(){const e=[];return D.forEach(((t,n)=>{const o=2*n,r=F.slice(o,o+2);2===r.length&&e.push(N(0,`<mmultiscripts><mi>${t}</mi><none/><mi>${r[1]}</mi><mprescripts></mprescripts><mi>${r[0]}</mi><none/></mmultiscripts>`))})),e}const $={audio:async function(){return s?async function(){return new Promise(((e,t)=>{try{const t=new s(1,5e3,44100),n=t.createBufferSource(),o=t.createOscillator();o.frequency.value=1e3;const r=t.createDynamicsCompressor();let i;r.threshold.value=-50,r.knee.value=40,r.ratio.value=12,r.attack.value=0,r.release.value=.2,o.connect(r),r.connect(t.destination),o.start(),t.oncomplete=o=>{i=o.renderedBuffer.getChannelData(0),e({sampleHash:c(i),maxChannels:t.destination.maxChannelCount,channelCountMode:n.channelCountMode})},t.startRendering()}catch(e){console.error("Error creating audio fingerprint:",e),t(e)}}))}():null},canvas:async function(){return new Promise((e=>{const t=Array.from({length:3},(()=>function(){const e=document.createElement("canvas"),t=e.getContext("2d");if(!t)return null;e.width=h,e.height=20;const n=t.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,"red"),n.addColorStop(1/6,"orange"),n.addColorStop(2/6,"yellow"),n.addColorStop(.5,"green"),n.addColorStop(4/6,"blue"),n.addColorStop(5/6,"indigo"),n.addColorStop(1,"violet"),t.fillStyle=n,t.fillRect(0,0,e.width,e.height);const o="Random Text WMwmil10Oo";t.font="23.123px Arial",t.fillStyle="black",t.fillText(o,-5,15),t.fillStyle="rgba(0, 0, 255, 0.5)",t.fillText(o,-3.3,17.7),t.beginPath(),t.moveTo(0,0),t.lineTo(2*e.width/7,e.height),t.strokeStyle="white",t.lineWidth=2,t.stroke();const r=t.getImageData(0,0,e.width,e.height);return r}())).filter((e=>null!==e));0!==t.length?e({commonPixelsHash:p(u(t,h,20).data.toString()).toString()}):e(null)}))},fonts:async function(e){return new Promise((e=>{try{g((async({iframe:t})=>{const n=t.createElement("canvas").getContext("2d");if(!n)return void e(null);const o=y.map((e=>S(n,e)));let r={};v.forEach((e=>{const t=S(n,e);o.includes(t)||(r[e]=t)})),e(r)}))}catch(t){e(null)}}))},hardware:function(){return new Promise(((e,t)=>{const n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,o=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:b(),architecture:C(),deviceMemory:n.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:M(Math.asin,-1,1,97),cos:M(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:M(Math.sin,-Math.PI,Math.PI,97),tan:M(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){const t=(null==e?void 0:e.permissions_to_check)||x;return E(await Promise.all(Array.from({length:3},(()=>async function(e){const t={};for(const n of e)try{const e=await navigator.permissions.query({name:n});t[n]=e.state.toString()}catch(e){}return t}(t)))),t)},plugins:async function(){const e=[];if(navigator.plugins)for(let t=0;t<navigator.plugins.length;t++){const n=navigator.plugins[t];e.push([n.name,n.filename,n.description].join("|"))}return new Promise((t=>{t({plugins:e})}))},screen:function(){return new Promise((e=>{if("undefined"==typeof matchMedia||"undefined"==typeof screen)return void e(null);const t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:_()};A()&&navigator.maxTouchPoints>0&&(t.resolution=function(){const e=window.screen.width,t=window.screen.height,n=Math.max(e,t).toString(),o=Math.min(e,t).toString();return`${n}x${o}`}()),e(t)}))},system:function(){return new Promise((e=>{const t=P();e({platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:t.name,version:t.version},mobile:A(),applePayVersion:I(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){"undefined"!=typeof document&&(R=document.createElement("canvas"),R.width=200,R.height=100,O=R.getContext("webgl"));try{if(!O)throw new Error("WebGL not supported");const e=Array.from({length:k},(()=>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 ",t="\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n ",n=O.createShader(O.VERTEX_SHADER),o=O.createShader(O.FRAGMENT_SHADER);if(!n||!o)throw new Error("Failed to create shaders");if(O.shaderSource(n,e),O.shaderSource(o,t),O.compileShader(n),!O.getShaderParameter(n,O.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+O.getShaderInfoLog(n));if(O.compileShader(o),!O.getShaderParameter(o,O.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+O.getShaderInfoLog(o));const r=O.createProgram();if(!r)throw new Error("Failed to create shader program");if(O.attachShader(r,n),O.attachShader(r,o),O.linkProgram(r),!O.getProgramParameter(r,O.LINK_STATUS))throw new Error("Shader program linking failed: "+O.getProgramInfoLog(r));O.useProgram(r);const i=137,a=new Float32Array(4*i),s=2*Math.PI/i;for(let e=0;e<i;e++){const t=e*s;a[4*e]=0,a[4*e+1]=0,a[4*e+2]=Math.cos(t)*(R.width/2),a[4*e+3]=Math.sin(t)*(R.height/2)}const c=O.createBuffer();O.bindBuffer(O.ARRAY_BUFFER,c),O.bufferData(O.ARRAY_BUFFER,a,O.STATIC_DRAW);const u=O.getAttribLocation(r,"position");O.enableVertexAttribArray(u),O.vertexAttribPointer(u,2,O.FLOAT,!1,0,0),O.viewport(0,0,R.width,R.height),O.clearColor(0,0,0,1),O.clear(O.COLOR_BUFFER_BIT),O.drawArrays(O.LINES,0,2*i);const l=new Uint8ClampedArray(R.width*R.height*4);O.readPixels(0,0,R.width,R.height,O.RGBA,O.UNSIGNED_BYTE,l);return new ImageData(l,R.width,R.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:p(u(e,R.width,R.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}},webrtc:async function(e){return new Promise((t=>{try{const n=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!n)return void t({supported:!1,error:"WebRTC not supported"});const o=new n({iceCandidatePoolSize:1,iceServers:[]});o.createDataChannel("");(async()=>{try{const n={offerToReceiveAudio:!0,offerToReceiveVideo:!0},r=await o.createOffer(n);await o.setLocalDescription(r);const i=r.sdp||"",a=[...new Set((i.match(/extmap:\d+ [^\n\r]+/g)||[]).map((e=>e.replace(/extmap:\d+ /,""))))].sort(),s=e=>{const t=i.match(new RegExp(`m=${e} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return t?t[1].split(" "):[]},c=(e,t)=>t.map((t=>{const n=new RegExp(`(rtpmap|fmtp|rtcp-fb):${t} (.+)`,"g"),o=[...i.matchAll(n)];if(!o.length)return null;const r={};return o.forEach((t=>{const[n,o,i]=t,a=i.split("/");"rtpmap"===o?(r.mimeType=`${e}/${a[0]}`,r.clockRate=+a[1],"audio"===e&&(r.channels=+a[2]||1)):"rtcp-fb"===o?(r.feedbackSupport=r.feedbackSupport||[],r.feedbackSupport.push(i)):"fmtp"===o&&(r.sdpFmtpLine=i)})),r})).filter(Boolean),u=c("audio",s("audio")),l=c("video",s("video")),m={audio:{count:u.length,hash:p(L(u))},video:{count:l.length,hash:p(L(l))},extensionsHash:p(L(a))},d=(null==e?void 0:e.timeout)||5e3,f=Math.floor(.9*d),h=await new Promise((e=>{const t=setTimeout((()=>{o.removeEventListener("icecandidate",n),o.close(),e({supported:!0,...m,timeout:!0})}),f),n=r=>{const i=r.candidate;i&&i.candidate&&(clearTimeout(t),o.removeEventListener("icecandidate",n),o.close(),e({supported:!0,...m,candidateType:i.type||""}))};o.addEventListener("icecandidate",n)}));t({details:h,hash:p(L(h))})}catch(e){o.close(),t({supported:!0,error:`WebRTC offer failed: ${e.message}`})}})()}catch(e){t({supported:!1,error:`WebRTC error: ${e.message}`})}}))},speech:async function(){return new Promise((e=>{try{if("undefined"==typeof window||!window.speechSynthesis||"function"!=typeof window.speechSynthesis.getVoices)return void e({supported:!1,error:"Speech Synthesis API not supported"});let t=!1,n=null;const o=o=>{if(!t){t=!0,n&&clearTimeout(n);try{const t=o.map((e=>{const t=e=>e.replace(/\\/g,"\\\\").replace(/,/g,"\\,");return[t(e.voiceURI||""),t(e.name||""),t(e.lang||""),e.localService?"1":"0",e.default?"1":"0"].join(",")}));t.sort();const n={voiceCount:o.length,voicesHash:p(L(t))};e({details:n,hash:p(L(n))})}catch(t){e({supported:!0,error:`Voice processing failed: ${t.message}`})}}},r=window.speechSynthesis.getVoices();if(r.length>0)return void o(r);n=setTimeout((()=>{const e=window.speechSynthesis.getVoices();o(e)}),800);const i=()=>{window.speechSynthesis.removeEventListener("voiceschanged",i);const e=window.speechSynthesis.getVoices();o(e)};window.speechSynthesis.addEventListener("voiceschanged",i)}catch(t){e({supported:!1,error:`Speech Synthesis error: ${t.message}`})}}))}},V={intl:async function(){if("undefined"==typeof Intl)return null;try{const e=new Date(Date.UTC(2024,0,15,12,30,45)),t={dateFullFormat:new Intl.DateTimeFormat("en-US",{dateStyle:"full",timeZone:"UTC"}).format(e),dateMediumFormat:new Intl.DateTimeFormat("en-US",{dateStyle:"medium",timeZone:"UTC"}).format(e),timeFormat:new Intl.DateTimeFormat("en-US",{timeStyle:"long",timeZone:"UTC"}).format(e),numberFormat:new Intl.NumberFormat("en-US").format(123456.789),currencyFormat:new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(123456.789),percentFormat:new Intl.NumberFormat("en-US",{style:"percent"}).format(.456),nonLatinDate:new Intl.DateTimeFormat("ar-EG",{timeZone:"UTC"}).format(e),nonLatinNumber:new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(123456.789)},n=Intl;return"function"==typeof n.ListFormat&&(t.listFormat=new n.ListFormat("en",{type:"conjunction"}).format(["a","b","c"])),"function"==typeof n.DisplayNames&&(t.displayNames=new n.DisplayNames("en",{type:"region"}).of("US")||""),{details:t,hash:p(L(t))}}catch(e){return null}},mathml:async function(){return new Promise((e=>{try{g((async({iframe:t})=>{try{if(!function(e){try{const t=e.createElement("math");t.innerHTML="<mrow><mi>x</mi></mrow>",t.style.position="absolute",t.style.visibility="hidden",e.body.appendChild(t);const n=t.getBoundingClientRect();return e.body.removeChild(t),n.width>0&&n.height>0}catch(e){return!1}}(t))return void e({supported:!1,error:"MathML not supported"});const n=[N("integral","<msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mfrac><mrow><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mrow><mi>g</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mfrac><mi>dx</mi>"),N("fraction","<mfrac><mrow><mi>π</mi><mo>×</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>σ</mi></mrow></mfrac>"),N("matrix","<mo>[</mo><mtable><mtr><mtd><mi>α</mi></mtd><mtd><mi>β</mi></mtd></mtr><mtr><mtd><mi>γ</mi></mtd><mtd><mi>δ</mi></mtd></mtr></mtable><mo>]</mo>"),U(),...B()],o=[];let r="";n.forEach(((e,n)=>{const i=function(e,t){try{const n=t.createElement("math");n.innerHTML=e.replace(/<\/?math>/g,""),n.style.whiteSpace="nowrap",n.style.position="absolute",n.style.visibility="hidden",n.style.top="-9999px",t.body.appendChild(n);const o=n.getBoundingClientRect(),r=(t.defaultView||window).getComputedStyle(n),i={dimensions:{width:o.width,height:o.height},fontInfo:{fontFamily:r.fontFamily,fontSize:r.fontSize,fontWeight:r.fontWeight,fontStyle:r.fontStyle,lineHeight:r.lineHeight,fontVariant:r.fontVariant||"normal",fontStretch:r.fontStretch||"normal",fontSizeAdjust:r.fontSizeAdjust||"none",textRendering:r.textRendering||"auto",fontFeatureSettings:r.fontFeatureSettings||"normal",fontVariantNumeric:r.fontVariantNumeric||"normal",fontKerning:r.fontKerning||"auto"}};return t.body.removeChild(n),i}catch(e){return{error:e.message}}}(e,t);o.push({width:i.dimensions.width,height:i.dimensions.height}),0===n&&i.fontInfo&&(r=p(L(i.fontInfo)))}));const i={fontStyleHash:r,dimensions:o};e({details:i,hash:p(L(i))})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))},mediadevices:async function(){if("undefined"==typeof navigator||!navigator.mediaDevices||"function"!=typeof navigator.mediaDevices.enumerateDevices)return null;try{const e=await navigator.mediaDevices.enumerateDevices(),t={};for(const n of e)t[n.kind]=(t[n.kind]||0)+1;return{audioinput:t.audioinput||0,audiooutput:t.audiooutput||0,videoinput:t.videoinput||0}}catch(e){return null}}},j={},W={timeout:"true"};function H(){return"1.8.1"}function G(e,t){var n,o;let r=P();if("unknown"===r.name&&t){const e=null===(n=t.system)||void 0===n?void 0:n.browser;(null==e?void 0:e.name)&&(r={name:String(e.name),version:String(e.version||"unknown")})}const i=r.name.toLowerCase(),s=parseInt(r.version.split(".")[0]||"0",10),c=[...(null==e?void 0:e.exclude)||[]],u=[...new Set([...(null==e?void 0:e.stabilize)||[],"always"])];for(const e of u){const t=a[e];if(t)for(const e of t)"browsers"in e&&!(null===(o=e.browsers)||void 0===o?void 0:o.some((e=>{const t=e.match(/(.+?)(>=)(\d+)/);return t?i===t[1]&&s>=+t[3]:i===e})))||c.push(...e.exclude)}return c}function z(e,t){const n=G(t,e),o=(null==t?void 0:t.include)||[];return function e(t,r=""){const i={};for(const[a,s]of Object.entries(t)){const t=r?`${r}.${a}`:a;if("object"!=typeof s||Array.isArray(s)||null===s){const e=n.some((e=>t.startsWith(e))),r=o.some((e=>t.startsWith(e)));e&&!r||(i[a]=s)}else{const n=e(s,t);Object.keys(n).length>0&&(i[a]=n)}}return i}(e)}const J="visitor_id";function q(e){return e.storage_property_name?e.storage_property_name:e.property_name_factory(J)}const K=`${n}_${J}`;function Z(e,t){try{localStorage.setItem(q(t),e)}catch(e){}}const Y="cache";function X(e){try{const t=localStorage.getItem(e.property_name_factory(Y)),n=JSON.parse(t);return n||{}}catch(e){}return{}}function Q(e){return e.cache_lifetime_in_ms>t?Date.now()+t:Date.now()+e.cache_lifetime_in_ms}class ee extends Error{constructor(e){super(`HTTP error! status: ${e}`),this.status=e}}let te=null,ne=null;async function oe(e,t,n,o){const r=await fetch(e,{method:"POST",headers:{"x-api-key":n.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok)throw new ee(r.status);const i=await r.json();return i.visitorId&&i.visitorId!==o&&Z(i.visitorId,n),ne=i,function(e,t){if(!e.cache_api_call||!e.cache_lifetime_in_ms)return;!function(e,t){const n={...X(e),...t};try{localStorage.setItem(e.property_name_factory(Y),JSON.stringify(n))}catch(e){}}(e,{apiResponseExpiry:Q(e),apiResponse:t})}(n,i),i}const re=(e,t)=>{if(e.cache_api_call){if(ne)return Promise.resolve(ne);const t=function(e){const t=X(e);if(t&&t.apiResponse&&t.apiResponseExpiry&&Date.now()<=t.apiResponseExpiry)return t.apiResponse;return}(e);if(t)return Promise.resolve(t);if(te)return te}const n=`${e.api_endpoint||o}/thumbmark`,r=function(e){try{const t=q(e);let n=localStorage.getItem(t);return n||t===K||(n=localStorage.getItem(K),n&&Z(n,e)),n}catch(e){return null}}(e),i={components:t,options:e,clientHash:p(L(t)),version:"1.8.1"};if(r&&(i.visitorId=r),e.metadata){const t="function"==typeof e.metadata?e.metadata():e.metadata;if(t){("string"==typeof t?t.length:JSON.stringify(t).length)>1e3?console.error("ThumbmarkJS: Metadata exceeds 1000 characters. Skipping metadata."):i.metadata=t}}const a=e.timeout||5e3,s=async function(e,t,n,o){for(let r=0;r<3;r++){r>0&&await new Promise((e=>setTimeout(e,200*r)));try{return await oe(e,t,n,o)}catch(e){if(e instanceof ee||2===r)throw e}}throw new Error("Unreachable")}(n,i,e,r).finally((()=>{te=null})),c=new Promise((t=>{setTimeout((()=>{const n=X(e);t((null==n?void 0:n.apiResponse)||{info:{timed_out:!0},...r&&{visitorId:r}})}),a)}));return te=Promise.race([s,c]),te};async function ie(e,t={}){var n,i;if("undefined"==typeof document||"undefined"==typeof window)return{thumbmark:"",components:{},info:{},version:"1.8.1",error:[{type:"fatal",message:"Browser environment required"}]};try{const a={...r,...e},s=[],c=a.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,u={...$,...j,...t},{elapsed:l,resolvedComponents:m,errors:d}=await ae(u,a);s.push(...d);let f={},h={};if(c||a.experimental){const{elapsed:e,resolvedComponents:t,errors:n}=await ae(V,a);f=t,h=e,s.push(...n)}const g=a.api_key?re(a,m):null;let w=null;if(g)try{w=await g}catch(e){if(e instanceof ee&&403===e.status)return{error:[{type:"api_unauthorized",message:"Invalid API key or quota exceeded"}],components:{},info:{},version:"1.8.1",thumbmark:""};s.push({type:e instanceof ee?"api_error":"network_error",message:e instanceof Error?e.message:String(e)})}(null===(n=null==w?void 0:w.info)||void 0===n?void 0:n.timed_out)&&s.push({type:"api_timeout",message:"API request timed out"});const v={...l,...h},y=a.performance?{elapsed:v}:{},S=z((null==w?void 0:w.components)||{},a),b={...m,...S},C=(null==w?void 0:w.info)||{uniqueness:{score:"api only"}},M=null!==(i=null==w?void 0:w.thumbmark)&&void 0!==i?i:p(L(b)),E="1.8.1";c&&async function(e,t,n,r={},i=[]){var a;const s=`${o}/log`,c={thumbmark:e,components:t,experimental:r,version:"1.8.1",options:n,path:null===(a=null===window||void 0===window?void 0:window.location)||void 0===a?void 0:a.pathname,...i.length>0&&{errors:i}};sessionStorage.setItem("_tmjs_l","1");try{await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})}catch(e){}}(M,b,a,f,s).catch((()=>{}));return{...(null==w?void 0:w.visitorId)&&{visitorId:w.visitorId},thumbmark:M,components:b,info:C,version:E,...y,...s.length>0&&{error:s},...Object.keys(f).length>0&&a.experimental&&{experimental:f},...(null==w?void 0:w.requestId)&&{requestId:w.requestId},...(null==w?void 0:w.metadata)&&{metadata:w.metadata}}}catch(e){return{thumbmark:"",components:{},info:{},version:"1.8.1",error:[{type:"fatal",message:e instanceof Error?e.message:String(e)}]}}}async function ae(e,t){const n={...r,...t},o=G(n).filter((e=>!e.includes("."))),i=Object.entries(e).filter((([e])=>{var t;return!(null===(t=null==n?void 0:n.exclude)||void 0===t?void 0:t.includes(e))})).filter((([e])=>!o.includes(e))).filter((([e])=>{var t,o,r,i;return(null===(t=null==n?void 0:n.include)||void 0===t?void 0:t.some((e=>e.includes("."))))?null===(o=null==n?void 0:n.include)||void 0===o?void 0:o.some((t=>t.startsWith(e))):0===(null===(r=null==n?void 0:n.include)||void 0===r?void 0:r.length)||(null===(i=null==n?void 0:n.include)||void 0===i?void 0:i.includes(e))})),a=i.map((([e])=>e)),s=i.map((([e,n])=>n(t))),c=await function(e,t,n){return Promise.all(e.map((e=>{const o=performance.now();return Promise.race([e.then((e=>({value:e,elapsed:performance.now()-o}))).catch((e=>({value:n,elapsed:performance.now()-o,error:e instanceof Error?e.message:String(e)}))),(r=t,i=n,new Promise((e=>{setTimeout((()=>e(i)),r)}))).then((e=>({value:e,elapsed:performance.now()-o,error:"timeout"})))]);var r,i})))}(s,(null==n?void 0:n.timeout)||5e3,W),u={},l={},m=[];c.forEach(((e,t)=>{var n;const o=a[t];u[o]=null!==(n=e.elapsed)&&void 0!==n?n:0,"timeout"===e.error?m.push({type:"component_timeout",message:`Component '${o}' timed out`,component:o}):e.error&&m.push({type:"component_error",message:e.error,component:o}),null!=e.value&&(l[o]=e.value)}));const d=z(l,n);return{elapsed:u,resolvedComponents:d,errors:m}}e.Thumbmark=class{constructor(e){this.options={...r,...e},this.customComponents={}}async get(e){return ie({...this.options,...e},this.customComponents)}getVersion(){return"1.8.1"}includeComponent(e,t){this.customComponents[e]=t}},e.filterThumbmarkData=z,e.getFingerprint=async function(e){try{const t=await ie(i);return e?{hash:t.thumbmark.toString(),data:t.components}:t.thumbmark.toString()}catch(e){throw e}},e.getFingerprintData=async function(){return(await ie(i)).components},e.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:t}=await ae($,i);return{...t,elapsed:e}}catch(e){throw e}},e.getThumbmark=ie,e.getVersion=H,e.includeComponent=(e,t,n)=>{j[e]=t},e.setOption=function(e,t){i[e]=t},e.stabilizationExclusionRules=a,e.stableStringify=L}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ThumbmarkJS={})}(this,(function(e){"use strict";const t=2592e5,n="thumbmark",r="https://api.thumbmarkjs.com",o={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,cache_lifetime_in_ms:0,performance:!1,experimental:!1,property_name_factory:e=>`${n}_${e}`};let i={...o};const a={private:[{exclude:["canvas"],browsers:["firefox","safari>=17","brave"]},{exclude:["audio"],browsers:["samsungbrowser","safari"]},{exclude:["fonts"],browsers:["firefox"]},{exclude:["audio.sampleHash","hardware.deviceMemory","header.acceptLanguage.q","system.hardwareConcurrency","plugins"],browsers:["brave"]},{exclude:["tls.extensions"],browsers:["firefox","chrome","safari"]},{exclude:["header.acceptLanguage"],browsers:["edge","chrome"]}],iframe:[{exclude:["system.applePayVersion","system.cookieEnabled"],browsers:["safari"]},{exclude:["permissions"]}],vpn:[{exclude:["ip"]}],always:[{exclude:["speech"],browsers:["brave","firefox"]}]},s="undefined"!=typeof window?window.OfflineAudioContext||window.webkitOfflineAudioContext:null;function c(e){let t=0;for(let n=0;n<e.length;++n)t+=Math.abs(e[n]);return t}function l(e,t,n){if(1===e.length)return e[0];if(3===e.length){const r=e[0].data,o=e[1].data,i=e[2].data,a=new Uint8ClampedArray(r.length);for(let e=0;e<r.length;e++){const t=r[e],n=o[e],s=i[e];a[e]=t===n||t===s?t:n===s?n:t}return new ImageData(a,t,n)}let r=[];for(let t=0;t<e[0].data.length;t++){let n=[];for(let r=0;r<e.length;r++)n.push(e[r].data[t]);r.push(u(n))}const o=new Uint8ClampedArray(r);return new ImageData(o,t,n)}function u(e){if(0===e.length)return 0;const t={};for(const n of e)t[n]=(t[n]||0)+1;let n=e[0];for(const e in t)t[e]>t[n]&&(n=parseInt(e,10));return n}function m(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),(e^=e>>>16)>>>0}const d=new Uint32Array([597399067,2869860233,951274213,2716044179]);function p(e,t){return e<<t|e>>>32-t}function f(e,t=0){if(t=t?0|t:0,"string"==typeof e&&(e=function(e){if("undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e).buffer;const t=[];for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);r<128?t.push(r):r<2048?t.push(192|r>>6,128|63&r):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|63&r):(n++,r=65536+((1023&r)<<10|1023&e.charCodeAt(n)),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return new Uint8Array(t).buffer}(e)),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");const n=new Uint32Array([t,t,t,t]);!function(e,t){const n=e.byteLength/16|0,r=new Uint32Array(e,0,4*n);for(let e=0;e<n;e++){const n=r.subarray(4*e,4*(e+1));n[0]=Math.imul(n[0],d[0]),n[0]=p(n[0],15),n[0]=Math.imul(n[0],d[1]),t[0]=t[0]^n[0],t[0]=p(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,n[1]=Math.imul(n[1],d[1]),n[1]=p(n[1],16),n[1]=Math.imul(n[1],d[2]),t[1]=t[1]^n[1],t[1]=p(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,n[2]=Math.imul(n[2],d[2]),n[2]=p(n[2],17),n[2]=Math.imul(n[2],d[3]),t[2]=t[2]^n[2],t[2]=p(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,n[3]=Math.imul(n[3],d[3]),n[3]=p(n[3],18),n[3]=Math.imul(n[3],d[0]),t[3]=t[3]^n[3],t[3]=p(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}(e,n),function(e,t){const n=e.byteLength/16|0,r=e.byteLength%16,o=new Uint32Array(4),i=new Uint8Array(e,16*n,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],d[3]),o[3]=p(o[3],18),o[3]=Math.imul(o[3],d[0]),t[3]=t[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],d[2]),o[2]=p(o[2],17),o[2]=Math.imul(o[2],d[3]),t[2]=t[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],d[1]),o[1]=p(o[1],16),o[1]=Math.imul(o[1],d[2]),t[1]=t[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],d[0]),o[0]=p(o[0],15),o[0]=Math.imul(o[0],d[1]),t[0]=t[0]^o[0]}}(e,n),function(e,t){t[0]=t[0]^e.byteLength,t[1]=t[1]^e.byteLength,t[2]=t[2]^e.byteLength,t[3]=t[3]^e.byteLength,t[0]=t[0]+t[1]|0,t[0]=t[0]+t[2]|0,t[0]=t[0]+t[3]|0,t[1]=t[1]+t[0]|0,t[2]=t[2]+t[0]|0,t[3]=t[3]+t[0]|0,t[0]=m(t[0]),t[1]=m(t[1]),t[2]=m(t[2]),t[3]=m(t[3]),t[0]=t[0]+t[1]|0,t[0]=t[0]+t[2]|0,t[0]=t[0]+t[3]|0,t[1]=t[1]+t[0]|0,t[2]=t[2]+t[0]|0,t[3]=t[3]+t[0]|0}(e,n);const r=new Uint8Array(n.buffer);return Array.from(r).map((e=>e.toString(16).padStart(2,"0"))).join("")}const h=280;async function g(e){for(var t;!document.body;)await w(50);const n=document.createElement("iframe");n.setAttribute("frameBorder","0");const r=n.style;r.setProperty("position","fixed"),r.setProperty("display","block","important"),r.setProperty("visibility","visible"),r.setProperty("border","0"),r.setProperty("opacity","0"),n.src="about:blank",document.body.appendChild(n);const o=n.contentDocument||(null===(t=n.contentWindow)||void 0===t?void 0:t.document);if(!o)throw new Error("Iframe document is not accessible");e({iframe:o}),setTimeout((()=>{document.body.removeChild(n)}),0)}function w(e,t){return new Promise((n=>setTimeout(n,e,t)))}const y=["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"],v=["monospace","sans-serif","serif"];function S(e,t){return e.font=`72px ${t}`,e.measureText("WwMmLli0Oo").width}function b(){var e;const t=document.createElement("canvas"),n=null!==(e=t.getContext("webgl"))&&void 0!==e?e:t.getContext("experimental-webgl");if(n&&"getParameter"in n)try{const e=(n.getParameter(n.VENDOR)||"").toString(),t=(n.getParameter(n.RENDERER)||"").toString();let r={vendor:e,renderer:t,version:(n.getParameter(n.VERSION)||"").toString(),shadingLanguageVersion:(n.getParameter(n.SHADING_LANGUAGE_VERSION)||"").toString()};if(!t.length||!e.length){const e=n.getExtension("WEBGL_debug_renderer_info");if(e){const t=(n.getParameter(e.UNMASKED_VENDOR_WEBGL)||"").toString(),o=(n.getParameter(e.UNMASKED_RENDERER_WEBGL)||"").toString();t&&(r.vendorUnmasked=t),o&&(r.rendererUnmasked=o)}}return r}catch(e){}return"undefined"}function C(){const e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}const M=(e,t,n,r)=>{const o=(n-t)/r;let i=0;for(let n=0;n<r;n++){i+=e(t+(n+.5)*o)}return i*o};function x(e,t){const n={};return t.forEach((t=>{const r=function(e){if(0===e.length)return null;const t={};e.forEach((e=>{const n=String(e);t[n]=(t[n]||0)+1}));let n=e[0],r=1;return Object.keys(t).forEach((e=>{t[e]>r&&(n=e,r=t[e])})),n}(e.map((e=>t in e?e[t]:void 0)).filter((e=>void 0!==e)));r&&(n[t]=r)})),n}const _=["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"];const P=new Map;function A(){if("undefined"==typeof navigator)return{name:"unknown",version:"unknown"};const e=!!navigator.brave,t=(e?"B|":"N|")+navigator.userAgent,n=P.get(t);if(n)return n;const r=[{name:"Brave",detect:()=>e}];let o;for(const e of r)if(e.detect()){const n=T(navigator.userAgent);return o={name:e.name,version:n.version},P.set(t,o),o}return o=T(navigator.userAgent),P.set(t,o),o}function T(e){var t,n,r,o,i,a;const 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>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"};for(const l of s){const s=e.match(l);if(s){let e=null===(t=s.groups)||void 0===t?void 0:t.name,u=(null===(n=s.groups)||void 0===n?void 0:n.version)||(null===(r=s.groups)||void 0===r?void 0:r.version1)||(null===(o=s.groups)||void 0===o?void 0:o.version2);if(e||!(null===(i=s.groups)||void 0===i?void 0:i.version1)&&!(null===(a=s.groups)||void 0===a?void 0:a.version2)||(e="Safari"),!e&&l.source.includes("Opera Mini")&&(e="Opera Mini"),!e&&l.source.includes("Opera Mobi")&&(e="Opera Mobi"),!e&&l.source.includes("Opera")&&(e="Opera"),!e&&s[1]&&(e=s[1]),!u&&s[2]&&(u=s[2]),e){return{name:c[e.toLowerCase()]||e,version:u||"unknown"}}}}return{name:"unknown",version:"unknown"}}function E(){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 k(){let e=[];const t={"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(t).forEach((n=>{t[n].forEach((t=>{matchMedia(`(${n}: ${t})`).matches&&e.push(`${n}: ${t}`)}))})),e}function I(){if("https:"===window.location.protocol&&"function"==typeof window.ApplePaySession)try{const e=window.ApplePaySession.supportsVersion;for(let t=15;t>0;t--)if(e(t))return t}catch(e){return 0}return 0}const R="SamsungBrowser"!==A().name?1:3,O="Brave"!==A().name,D=137,F=(()=>{const e=new Float32Array(548),t=2*Math.PI/D;for(let n=0;n<D;n++){const r=n*t;e[4*n]=0,e[4*n+1]=0,e[4*n+2]=100*Math.cos(r),e[4*n+3]=50*Math.sin(r)}return e})();let L=null;function N(){try{if("undefined"==typeof document)return null;const e=document.createElement("canvas");e.width=200,e.height=100;const t=e.getContext("webgl");if(!t)return null;e.addEventListener("webglcontextlost",(e=>{e.preventDefault(),L=null}),{once:!0});const n=t.createShader(t.VERTEX_SHADER),r=t.createShader(t.FRAGMENT_SHADER);if(!n||!r)return null;if(t.shaderSource(n,"\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n"),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))return null;if(t.shaderSource(r,"\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.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS))return null;const o=t.createProgram();if(!o)return null;if(t.attachShader(o,n),t.attachShader(o,r),t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS))return null;const i=t.createBuffer();return i?(t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,F,t.STATIC_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),{canvas:e,gl:t,program:o,buffer:i}):null}catch(e){return null}}function U(e){const t=new Set;return function e(n){if(n&&n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),void 0===n)return;if("number"==typeof n)return isFinite(n)?""+n:"null";if("object"!=typeof n)return JSON.stringify(n);let r,o;if(Array.isArray(n)){for(o="[",r=0;r<n.length;r++)r&&(o+=","),o+=e(n[r])||"null";return o+"]"}if(null===n)return"null";if(t.has(n))throw new TypeError("Converting circular structure to JSON");t.add(n);const i=Object.keys(n).sort();for(o="",r=0;r<i.length;r++){const t=i[r],a=e(n[t]);a&&(o&&(o+=","),o+=JSON.stringify(t)+":"+a)}return t.delete(n),"{"+o+"}"}(e)||""}const B=["𝔄","𝔅","ℭ","𝔇","𝔈","𝔉","𝔸","𝔹","ℂ","𝔻","𝔼","𝔽"],$=["β","ψ","λ","ε","ζ","α","ξ","μ","ρ","φ","κ","τ","η","σ","ι","ω","γ","ν","χ","δ","θ","π","υ","ο"];function V(e,t){return`<math><mrow>${t}</mrow></math>`}function j(){let e="<mo>∏</mo>";return B.forEach(((t,n)=>{const r=2*n,o=$.slice(r,r+2);2===o.length&&(e+=`<mmultiscripts><mi>${t}</mi><none/><mi>${o[1]}</mi><mprescripts></mprescripts><mi>${o[0]}</mi><none/></mmultiscripts>`)})),V(0,`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function H(){const e=[];return B.forEach(((t,n)=>{const r=2*n,o=$.slice(r,r+2);2===o.length&&e.push(V(0,`<mmultiscripts><mi>${t}</mi><none/><mi>${o[1]}</mi><mprescripts></mprescripts><mi>${o[0]}</mi><none/></mmultiscripts>`))})),e}const W={audio:async function(){return s?async function(){return new Promise(((e,t)=>{try{const t=new s(1,5e3,44100),n=t.createBufferSource(),r=t.createOscillator();r.frequency.value=1e3;const o=t.createDynamicsCompressor();let i;o.threshold.value=-50,o.knee.value=40,o.ratio.value=12,o.attack.value=0,o.release.value=.2,r.connect(o),o.connect(t.destination),r.start(),t.oncomplete=r=>{i=r.renderedBuffer.getChannelData(0),e({sampleHash:c(i),maxChannels:t.destination.maxChannelCount,channelCountMode:n.channelCountMode})},t.startRendering()}catch(e){t(e)}}))}():null},canvas:async function(){return new Promise((e=>{const t=Array.from({length:3},(()=>function(){const e=document.createElement("canvas"),t=e.getContext("2d");if(!t)return null;e.width=h,e.height=20;const n=t.createLinearGradient(0,0,e.width,e.height);n.addColorStop(0,"red"),n.addColorStop(1/6,"orange"),n.addColorStop(2/6,"yellow"),n.addColorStop(.5,"green"),n.addColorStop(4/6,"blue"),n.addColorStop(5/6,"indigo"),n.addColorStop(1,"violet"),t.fillStyle=n,t.fillRect(0,0,e.width,e.height);const r="Random Text WMwmil10Oo";return t.font="23.123px Arial",t.fillStyle="black",t.fillText(r,-5,15),t.fillStyle="rgba(0, 0, 255, 0.5)",t.fillText(r,-3.3,17.7),t.beginPath(),t.moveTo(0,0),t.lineTo(2*e.width/7,e.height),t.strokeStyle="white",t.lineWidth=2,t.stroke(),t.getImageData(0,0,e.width,e.height)}())).filter((e=>null!==e));0!==t.length?e({commonPixelsHash:f(l(t,h,20).data.toString()).toString()}):e(null)}))},fonts:async function(e){return new Promise((e=>{try{g((async({iframe:t})=>{const n=t.createElement("canvas").getContext("2d");if(!n)return void e(null);const r=v.map((e=>S(n,e)));let o={};y.forEach((e=>{const t=S(n,e);r.includes(t)||(o[e]=t)})),e(o)}))}catch(t){e(null)}}))},hardware:function(){return new Promise(((e,t)=>{const n=void 0!==navigator.deviceMemory?navigator.deviceMemory:0,r=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:b(),architecture:C(),deviceMemory:n.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:M(Math.asin,-1,1,97),cos:M(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:M(Math.sin,-Math.PI,Math.PI,97),tan:M(Math.tan,0,2*Math.PI,97)})}))},permissions:async function(e){const t=(null==e?void 0:e.permissions_to_check)||_;return x(await Promise.all(Array.from({length:3},(()=>async function(e){const t={};for(const n of e)try{const e=await navigator.permissions.query({name:n});t[n]=e.state.toString()}catch(e){}return t}(t)))),t)},plugins:async function(){const e=[];if(navigator.plugins)for(let t=0;t<navigator.plugins.length;t++){const n=navigator.plugins[t];e.push([n.name,n.filename,n.description].join("|"))}return new Promise((t=>{t({plugins:e})}))},screen:function(){return new Promise((e=>{if("undefined"==typeof matchMedia||"undefined"==typeof screen)return void e(null);const t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:k()};E()&&navigator.maxTouchPoints>0&&(t.resolution=function(){const e=window.screen.width,t=window.screen.height,n=Math.max(e,t).toString(),r=Math.min(e,t).toString();return`${n}x${r}`}()),e(t)}))},system:function(){return new Promise((e=>{const t=A();e({platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:t.name,version:t.version},mobile:E(),applePayVersion:I(),cookieEnabled:window.navigator.cookieEnabled})}))},webgl:async function(){const e=O?(L||(L=N()),L):N();if(!e)return{webgl:"unsupported"};try{const t=Array.from({length:R},(()=>function(e){const{canvas:t,gl:n,program:r,buffer:o}=e;try{n.useProgram(r),n.bindBuffer(n.ARRAY_BUFFER,o);const e=n.getAttribLocation(r,"position");n.enableVertexAttribArray(e),n.vertexAttribPointer(e,2,n.FLOAT,!1,0,0),n.viewport(0,0,t.width,t.height),n.clearColor(0,0,0,1),n.clear(n.COLOR_BUFFER_BIT),n.drawArrays(n.LINES,0,274);const i=new Uint8ClampedArray(t.width*t.height*4);return n.readPixels(0,0,t.width,t.height,n.RGBA,n.UNSIGNED_BYTE,i),new ImageData(i,t.width,t.height)}catch(e){return L=null,new ImageData(1,1)}finally{n.bindBuffer(n.ARRAY_BUFFER,null),n.useProgram(null),n.viewport(0,0,n.drawingBufferWidth,n.drawingBufferHeight),n.clearColor(0,0,0,0)}}(e)));return{commonPixelsHash:f(l(t,e.canvas.width,e.canvas.height).data.toString()).toString()}}catch(e){return{webgl:"unsupported"}}},webrtc:async function(e){return new Promise((e=>{let t;try{const n=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!n)return void e({supported:!1,error:"WebRTC not supported"});t=new n({iceCandidatePoolSize:1,iceServers:[]});const r=t;r.createDataChannel("");(async()=>{try{const t={offerToReceiveAudio:!0,offerToReceiveVideo:!0},n=await r.createOffer(t);await r.setLocalDescription(n);const o=n.sdp||"",i=[...new Set((o.match(/extmap:\d+ [^\n\r]+/g)||[]).map((e=>e.replace(/extmap:\d+ /,""))))].sort(),a=e=>{const t=o.match(new RegExp(`m=${e} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return t?t[1].split(" "):[]},s=(e,t)=>t.map((t=>{const n=new RegExp(`(rtpmap|fmtp|rtcp-fb):${t} (.+)`,"g"),r=[...o.matchAll(n)];if(!r.length)return null;const i={};return r.forEach((t=>{const[n,r,o]=t,a=o.split("/");"rtpmap"===r?(i.mimeType=`${e}/${a[0]}`,i.clockRate=+a[1],"audio"===e&&(i.channels=+a[2]||1)):"rtcp-fb"===r?(i.feedbackSupport=i.feedbackSupport||[],i.feedbackSupport.push(o)):"fmtp"===r&&(i.sdpFmtpLine=o)})),i})).filter(Boolean),c=s("audio",a("audio")),l=s("video",a("video")),u={audio:{count:c.length,hash:f(U(c))},video:{count:l.length,hash:f(U(l))},extensionsHash:f(U(i))};r.close();const m={supported:!0,...u,candidateType:"host"};e({details:m,hash:f(U(m))})}catch(t){r.close(),e({supported:!0,error:`WebRTC offer failed: ${t.message}`})}})()}catch(n){null==t||t.close(),e({supported:!1,error:`WebRTC error: ${n.message}`})}}))},speech:async function(){return new Promise((e=>{try{if("undefined"==typeof window||!window.speechSynthesis||"function"!=typeof window.speechSynthesis.getVoices)return void e({supported:!1,error:"Speech Synthesis API not supported"});let t=!1,n=null;const r=r=>{if(!t){t=!0,n&&clearTimeout(n);try{const t=r.map((e=>{const t=e=>e.replace(/\\/g,"\\\\").replace(/,/g,"\\,");return[t(e.voiceURI||""),t(e.name||""),t(e.lang||""),e.localService?"1":"0",e.default?"1":"0"].join(",")}));t.sort();const n={voiceCount:r.length,voicesHash:f(U(t))};e({details:n,hash:f(U(n))})}catch(t){e({supported:!0,error:`Voice processing failed: ${t.message}`})}}},o=window.speechSynthesis.getVoices();if(o.length>0)return void r(o);n=setTimeout((()=>{const e=window.speechSynthesis.getVoices();r(e)}),800);const i=()=>{window.speechSynthesis.removeEventListener("voiceschanged",i);const e=window.speechSynthesis.getVoices();r(e)};window.speechSynthesis.addEventListener("voiceschanged",i)}catch(t){e({supported:!1,error:`Speech Synthesis error: ${t.message}`})}}))}},z={intl:async function(){if("undefined"==typeof Intl)return null;try{const e=new Date(Date.UTC(2024,0,15,12,30,45)),t={dateFullFormat:new Intl.DateTimeFormat("en-US",{dateStyle:"full",timeZone:"UTC"}).format(e),dateMediumFormat:new Intl.DateTimeFormat("en-US",{dateStyle:"medium",timeZone:"UTC"}).format(e),timeFormat:new Intl.DateTimeFormat("en-US",{timeStyle:"long",timeZone:"UTC"}).format(e),numberFormat:new Intl.NumberFormat("en-US").format(123456.789),currencyFormat:new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(123456.789),percentFormat:new Intl.NumberFormat("en-US",{style:"percent"}).format(.456),nonLatinDate:new Intl.DateTimeFormat("ar-EG",{timeZone:"UTC"}).format(e),nonLatinNumber:new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(123456.789)},n=Intl;return"function"==typeof n.ListFormat&&(t.listFormat=new n.ListFormat("en",{type:"conjunction"}).format(["a","b","c"])),"function"==typeof n.DisplayNames&&(t.displayNames=new n.DisplayNames("en",{type:"region"}).of("US")||""),{details:t,hash:f(U(t))}}catch(e){return null}},mathml:async function(){return new Promise((e=>{try{g((async({iframe:t})=>{try{if(!function(e){try{const t=e.createElement("math");t.innerHTML="<mrow><mi>x</mi></mrow>",t.style.position="absolute",t.style.visibility="hidden",e.body.appendChild(t);const n=t.getBoundingClientRect();return e.body.removeChild(t),n.width>0&&n.height>0}catch(e){return!1}}(t))return void e({supported:!1,error:"MathML not supported"});const n=[V("integral","<msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mfrac><mrow><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mrow><mi>g</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mfrac><mi>dx</mi>"),V("fraction","<mfrac><mrow><mi>π</mi><mo>×</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>σ</mi></mrow></mfrac>"),V("matrix","<mo>[</mo><mtable><mtr><mtd><mi>α</mi></mtd><mtd><mi>β</mi></mtd></mtr><mtr><mtd><mi>γ</mi></mtd><mtd><mi>δ</mi></mtd></mtr></mtable><mo>]</mo>"),j(),...H()],r=[];let o="";n.forEach(((e,n)=>{const i=function(e,t){try{const n=t.createElement("math");n.innerHTML=e.replace(/<\/?math>/g,""),n.style.whiteSpace="nowrap",n.style.position="absolute",n.style.visibility="hidden",n.style.top="-9999px",t.body.appendChild(n);const r=n.getBoundingClientRect(),o=(t.defaultView||window).getComputedStyle(n),i={dimensions:{width:r.width,height:r.height},fontInfo:{fontFamily:o.fontFamily,fontSize:o.fontSize,fontWeight:o.fontWeight,fontStyle:o.fontStyle,lineHeight:o.lineHeight,fontVariant:o.fontVariant||"normal",fontStretch:o.fontStretch||"normal",fontSizeAdjust:o.fontSizeAdjust||"none",textRendering:o.textRendering||"auto",fontFeatureSettings:o.fontFeatureSettings||"normal",fontVariantNumeric:o.fontVariantNumeric||"normal",fontKerning:o.fontKerning||"auto"}};return t.body.removeChild(n),i}catch(e){return{error:e.message}}}(e,t);r.push({width:i.dimensions.width,height:i.dimensions.height}),0===n&&i.fontInfo&&(o=f(U(i.fontInfo)))}));const i={fontStyleHash:o,dimensions:r};e({details:i,hash:f(U(i))})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}}))},mediadevices:async function(){if("undefined"==typeof navigator||!navigator.mediaDevices||"function"!=typeof navigator.mediaDevices.enumerateDevices)return null;try{const e=await navigator.mediaDevices.enumerateDevices(),t={};for(const n of e)t[n.kind]=(t[n.kind]||0)+1;return{audioinput:t.audioinput||0,audiooutput:t.audiooutput||0,videoinput:t.videoinput||0}}catch(e){return null}}},G={},J={timeout:"true"};function q(){return"1.9.1"}function K(e,t){var n,r;let o=A();if("unknown"===o.name&&t){const e=null===(n=t.system)||void 0===n?void 0:n.browser;(null==e?void 0:e.name)&&(o={name:String(e.name),version:String(e.version||"unknown")})}const i=o.name.toLowerCase(),s=parseInt(o.version.split(".")[0]||"0",10),c=Array.isArray(null==e?void 0:e.exclude)?[...e.exclude]:[],l=[...new Set([...(null==e?void 0:e.stabilize)||[],"always"])];for(const e of l){const t=a[e];if(t)for(const e of t)"browsers"in e&&!(null===(r=e.browsers)||void 0===r?void 0:r.some((e=>{const t=e.match(/(.+?)(>=)(\d+)/);return t?i===t[1]&&s>=+t[3]:i===e})))||c.push(...e.exclude)}return c}function Y(e,t){const n=K(t,e),r=Array.isArray(null==t?void 0:t.include)?t.include:[];return function e(t,o=""){const i={};for(const[a,s]of Object.entries(t)){const t=o?`${o}.${a}`:a;if("object"!=typeof s||Array.isArray(s)||null===s){const e=n.some((e=>t.startsWith(e))),o=r.some((e=>t.startsWith(e)));e&&!o||(i[a]=s)}else{const n=e(s,t);Object.keys(n).length>0&&(i[a]=n)}}return i}(e)}const Z="visitor_id";function X(e){return e.storage_property_name?e.storage_property_name:e.property_name_factory(Z)}const Q=`${n}_${Z}`;function ee(e,t){try{localStorage.setItem(X(t),e)}catch(e){}}const te="cache";function ne(e){try{const t=localStorage.getItem(e.property_name_factory(te)),n=JSON.parse(t);return n||{}}catch(e){}return{}}function re(e){return e.cache_lifetime_in_ms>t?Date.now()+t:Date.now()+e.cache_lifetime_in_ms}class oe extends Error{constructor(e){super(`HTTP error! status: ${e}`),this.status=e}}let ie=null,ae=null;async function se(e,t,n,r){const o=await fetch(e,{method:"POST",headers:{"x-api-key":n.api_key,Authorization:"custom-authorized","Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok)throw new oe(o.status);const i=await o.json();return i.visitorId&&i.visitorId!==r&&ee(i.visitorId,n),ae=i,function(e,t){if(!e.cache_api_call||!e.cache_lifetime_in_ms)return;!function(e,t){const n={...ne(e),...t};try{localStorage.setItem(e.property_name_factory(te),JSON.stringify(n))}catch(e){}}(e,{apiResponseExpiry:re(e),apiResponse:t})}(n,i),i}const ce=(e,t)=>{if(e.cache_api_call){if(ae)return Promise.resolve(ae);const t=function(e){const t=ne(e);if(t&&t.apiResponse&&t.apiResponseExpiry&&Date.now()<=t.apiResponseExpiry)return t.apiResponse;return}(e);if(t)return Promise.resolve(t);if(ie)return ie}const n=`${e.api_endpoint||r}/thumbmark`,o=function(e){try{const t=X(e);let n=localStorage.getItem(t);return n||t===Q||(n=localStorage.getItem(Q),n&&ee(n,e)),n}catch(e){return null}}(e),i={components:t,options:e,clientHash:f(U(t)),version:"1.9.1"};if(o&&(i.visitorId=o),e.metadata){const t="function"==typeof e.metadata?e.metadata():e.metadata;if(t){("string"==typeof t?t.length:JSON.stringify(t).length)>1e3?console.error("ThumbmarkJS: Metadata exceeds 1000 characters. Skipping metadata."):i.metadata=t}}const a=e.timeout||5e3,s=async function(e,t,n,r){for(let o=0;o<3;o++){o>0&&await new Promise((e=>setTimeout(e,200*o)));try{return await se(e,t,n,r)}catch(e){if(e instanceof oe||2===o)throw e}}throw new Error("Unreachable")}(n,i,e,o).finally((()=>{ie=null})),c=new Promise((t=>{setTimeout((()=>{const n=ne(e);t((null==n?void 0:n.apiResponse)||{info:{timed_out:!0},...o&&{visitorId:o}})}),a)}));return ie=Promise.race([s,c]),ie};async function le(e,t={}){var n,i;if("undefined"==typeof document||"undefined"==typeof window)return{thumbmark:"",components:{},info:{},version:"1.9.1",error:[{type:"fatal",message:"Browser environment required"}]};try{const a={...o,...e},s=[],c=a.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,l={...W,...G,...t},{elapsed:u,resolvedComponents:m,errors:d,pipelineTimings:p}=await ue(l,a);s.push(...d);let h={},g={},w={};if(c||a.experimental){const{elapsed:e,resolvedComponents:t,errors:n,pipelineTimings:r}=await ue(z,a);h=t,g=e,w=r,s.push(...n)}const y=a.api_key?ce(a,m):null;let v=null;if(y)try{v=await y}catch(e){if(e instanceof oe&&403===e.status)return{error:[{type:"api_unauthorized",message:"Invalid API key or quota exceeded"}],components:{},info:{},version:"1.9.1",thumbmark:""};s.push({type:e instanceof oe?"api_error":"network_error",message:e instanceof Error?e.message:String(e)})}(null===(n=null==v?void 0:v.info)||void 0===n?void 0:n.timed_out)&&s.push({type:"api_timeout",message:"API request timed out"});const S=performance.now(),b=Y((null==v?void 0:v.components)||{},a),C=performance.now()-S,M={...m,...b},x=(null==v?void 0:v.info)||{uniqueness:{score:"api only"}};let _,P=0,A=0;if(null==v?void 0:v.thumbmark)_=v.thumbmark;else{const e=performance.now(),t=U(M);P=performance.now()-e;const n=performance.now();_=f(t),A=performance.now()-n}const T="1.9.1";c&&async function(e,t,n,o={},i=[]){var a;const s=`${r}/log`,c={thumbmark:e,components:t,experimental:o,version:"1.9.1",options:n,path:null===(a=null===window||void 0===window?void 0:window.location)||void 0===a?void 0:a.pathname,...i.length>0&&{errors:i}};sessionStorage.setItem("_tmjs_l","1");try{await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})}catch(e){}}(_,M,a,h,s).catch((()=>{}));const E=null!==(i=w["_pipeline.filter"])&&void 0!==i?i:0,k={"_pipeline.dispatch":p["_pipeline.dispatch"],"_pipeline.resolve":p["_pipeline.resolve"],"_pipeline.filter":p["_pipeline.filter"]+E+C,"_pipeline.stringify":P,"_pipeline.hash":A,"_pipeline.assembly":0},I={...u,...g,...p,...k},R=a.performance?{elapsed:I}:{},O=performance.now(),D={...(null==v?void 0:v.visitorId)&&{visitorId:v.visitorId},thumbmark:_,components:M,info:x,version:T,...R,...s.length>0&&{error:s},...Object.keys(h).length>0&&a.experimental&&{experimental:h},...(null==v?void 0:v.requestId)&&{requestId:v.requestId},...(null==v?void 0:v.metadata)&&{metadata:v.metadata}};return I["_pipeline.assembly"]=performance.now()-O,D}catch(e){return{thumbmark:"",components:{},info:{},version:"1.9.1",error:[{type:"fatal",message:e instanceof Error?e.message:String(e)}]}}}async function ue(e,t){const n={...o,...t},r=K(n).filter((e=>!e.includes("."))),i=Object.entries(e).filter((([e])=>{var t;return!(null===(t=null==n?void 0:n.exclude)||void 0===t?void 0:t.includes(e))})).filter((([e])=>!r.includes(e))).filter((([e])=>{var t,r,o,i;return(null===(t=null==n?void 0:n.include)||void 0===t?void 0:t.some((e=>e.includes("."))))?null===(r=null==n?void 0:n.include)||void 0===r?void 0:r.some((t=>t.startsWith(e))):0===(null===(o=null==n?void 0:n.include)||void 0===o?void 0:o.length)||(null===(i=null==n?void 0:n.include)||void 0===i?void 0:i.includes(e))})),a=i.map((([e])=>e)),s={},c=performance.now(),l=i.map((([e,n])=>{const r=performance.now(),o=n(t);return s[`_dispatch.${e}`]=performance.now()-r,o})),u=performance.now()-c,m=performance.now(),d=await function(e,t,n){return Promise.all(e.map((e=>{const r=performance.now();let o;const i=e.then((e=>(void 0!==o&&clearTimeout(o),{value:e,elapsed:performance.now()-r}))).catch((e=>(void 0!==o&&clearTimeout(o),{value:n,elapsed:performance.now()-r,error:e instanceof Error?e.message:String(e)}))),a=new Promise((e=>{o=setTimeout((()=>{e({value:n,elapsed:performance.now()-r,error:"timeout"})}),t)}));return Promise.race([i,a])})))}(l,(null==n?void 0:n.timeout)||5e3,J),p=performance.now()-m,f={},h={},g=[];d.forEach(((e,t)=>{var n;const r=a[t];f[r]=null!==(n=e.elapsed)&&void 0!==n?n:0,"timeout"===e.error?g.push({type:"component_timeout",message:`Component '${r}' timed out`,component:r}):e.error&&g.push({type:"component_error",message:e.error,component:r}),null!=e.value&&(h[r]=e.value)}));const w=performance.now(),y=Y(h,n),v={"_pipeline.dispatch":u,"_pipeline.resolve":p,"_pipeline.filter":performance.now()-w,...s};return{elapsed:f,resolvedComponents:y,errors:g,pipelineTimings:v}}e.Thumbmark=class{constructor(e){this.options={...o,...e},this.customComponents={}}async get(e){return le({...this.options,...e},this.customComponents)}getVersion(){return"1.9.1"}includeComponent(e,t){this.customComponents[e]=t}},e.filterThumbmarkData=Y,e.getFingerprint=async function(e){try{const t=await le(i);return e?{hash:t.thumbmark.toString(),data:t.components}:t.thumbmark.toString()}catch(e){throw e}},e.getFingerprintData=async function(){return(await le(i)).components},e.getFingerprintPerformance=async function(){try{const{elapsed:e,resolvedComponents:t}=await ue(W,i);return{...t,elapsed:e}}catch(e){throw e}},e.getThumbmark=le,e.getVersion=q,e.includeComponent=(e,t,n)=>{G[e]=t},e.setOption=function(e,t){i[e]=t},e.stabilizationExclusionRules=a,e.stableStringify=U}));
|
|
2
2
|
//# sourceMappingURL=thumbmark.umd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbmark.umd.js","sources":["../src/options.ts","../src/components/audio/index.ts","../src/utils/commonPixels.ts","../src/utils/hash.ts","../src/components/canvas/index.ts","../src/utils/ephemeralIFrame.ts","../src/components/fonts/index.ts","../src/components/hardware/index.ts","../src/components/math/index.ts","../src/utils/getMostFrequent.ts","../src/components/permissions/index.ts","../src/components/system/browser.ts","../src/components/screen/index.ts","../src/components/system/index.ts","../src/components/webgl/index.ts","../src/utils/stableStringify.ts","../src/components/mathml/index.ts","../src/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/components/webrtc/index.ts","../src/components/speech/index.ts","../src/components/intl/index.ts","../src/components/mediaDevices/index.ts","../src/utils/version.ts","../src/functions/filterComponents.ts","../src/utils/visitorId.ts","../src/utils/cache.ts","../src/functions/api.ts","../src/functions/index.ts","../src/utils/log.ts","../src/utils/raceAll.ts","../src/thumbmark.ts","../src/functions/legacy_functions.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["MAXIMUM_CACHE_LIFETIME","DEFAULT_STORAGE_PREFIX","DEFAULT_API_ENDPOINT","defaultOptions","exclude","include","stabilize","logging","timeout","cache_api_call","cache_lifetime_in_ms","performance","experimental","property_name_factory","name","options","stabilizationExclusionRules","private","browsers","iframe","vpn","always","OfflineAudioContextClass","window","OfflineAudioContext","webkitOfflineAudioContext","calculateHash","samples","hash","i","length","Math","abs","getCommonPixels","images","width","height","finalData","data","indice","u","push","getMostFrequent","pixelArray","Uint8ClampedArray","ImageData","arr","frequencyMap","num","mostFrequent","parseInt","fmix","input","imul","C","Uint32Array","rotl","m","n","key","seed","text","TextEncoder","encode","buffer","utf8","charCode","charCodeAt","Uint8Array","encodeUtf8","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","finalize","byteArray","Array","from","map","byte","toString","padStart","join","_WIDTH","async","ephemeralIFrame","callback","document","wait","createElement","setAttribute","style","setProperty","src","appendChild","iframeDocument","contentDocument","_a","contentWindow","undefined","Error","setTimeout","removeChild","durationMs","resolveWith","Promise","resolve","availableFonts","baseFonts","measureSingleFont","ctx","font","measureText","getVideoCard","canvas","gl","getContext","vendor","getParameter","VENDOR","renderer","RENDERER","result","version","VERSION","shadingLanguageVersion","SHADING_LANGUAGE_VERSION","debugInfo","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","error","getArchitecture","f","Float32Array","u8","Infinity","integrate","a","b","h","sum","mostFrequentValuesInArrayOfDictionaries","keys","forEach","mostFrequentValueForKey","element","String","highestFrequency","Object","mostFrequentValue","obj","filter","val","defaultPermissionKeys","getBrowser","navigator","privacyBrowserStrategies","detect","brave","strategy","parseBrowserFromUA","userAgent","ua","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","regex","match","groups","_b","_c","version1","_d","version2","_e","_f","source","includes","toLowerCase","isMobileUserAgent","test","matchMedias","results","mediaQueries","pointer","hover","update","scripting","value","matchMedia","matches","getApplePayVersion","location","protocol","ApplePaySession","versionCheck","supportsVersion","_RUNS","stableStringify","seen","stringify","node","toJSON","isFinite","JSON","out","isArray","indexOf","seenIndex","sort","splice","BLACKBOARD_BOLD","GREEK_SYMBOLS","createMathML","content","createComplexNestedStructure","nestedContent","bbSymbol","bbIndex","startIdx","greekSet","slice","createSymbolStructures","structures","tm_component_promises","audio","reject","audioContext","audioBuffer","createBufferSource","oscillator","createOscillator","frequency","compressor","createDynamicsCompressor","threshold","knee","ratio","attack","release","connect","destination","start","oncomplete","event","renderedBuffer","getChannelData","sampleHash","maxChannels","maxChannelCount","channelCountMode","startRendering","console","createAudioFingerprint","imageDatas","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","randomText","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","imageData","getImageData","generateCanvasImageData","commonPixelsHash","fonts","defaultWidths","fontWidth","hardware","deviceMemory","memoryInfo","memory","videocard","architecture","jsHeapSizeLimit","locales","languages","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","math","acos","asin","cos","PI","largeCos","largeSin","sin","largeTan","tan","permissions","permission_keys","permissions_to_check","all","permissionStatus","feature","status","query","state","getBrowserPermissionsOnce","plugins","plugin","filename","description","screen","is_touchscreen","maxTouchPoints","colorDepth","mediaMatches","w","longer","max","shorter","min","screenResolution","system","browser","platform","productSub","product","useragent","hardwareConcurrency","mobile","applePayVersion","cookieEnabled","webgl","vertexShaderSource","fragmentShaderSource","vertexShader","createShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","useProgram","numSpokes","vertices","angleIncrement","angle","vertexBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","positionAttribute","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","viewport","clearColor","clear","COLOR_BUFFER_BIT","drawArrays","LINES","pixelData","readPixels","RGBA","UNSIGNED_BYTE","drawingBufferWidth","drawingBufferHeight","createWebGLImageData","webrtc","RTCPeerConnection","webkitRTCPeerConnection","mozRTCPeerConnection","supported","connection","iceCandidatePoolSize","iceServers","createDataChannel","offerOptions","offerToReceiveAudio","offerToReceiveVideo","offer","createOffer","setLocalDescription","sdp","extensions","Set","x","replace","getDescriptors","mediaType","RegExp","split","constructDescriptions","descriptors","descriptor","matcher","matchAll","_","type","parts","mimeType","clockRate","channels","feedbackSupport","sdpFmtpLine","Boolean","audioCodecs","videoCodecs","compressedData","count","video","extensionsHash","totalTimeout","iceTimeout","floor","resolveResult","removeEventListener","onIceCandidate","close","candidateObj","candidate","clearTimeout","candidateType","addEventListener","details","message","processOffer","speech","speechSynthesis","getVoices","voicesResolved","timeoutHandle","processVoices","voices","voiceSignatures","voice","escapeValue","voiceURI","lang","localService","default","voiceCount","voicesHash","onVoicesChanged","tm_experimental_component_promises","intl","date","Date","UTC","dateFullFormat","dateStyle","format","dateMediumFormat","timeFormat","timeStyle","numberFormat","NumberFormat","currencyFormat","currency","percentFormat","nonLatinDate","nonLatinNumber","IntlAny","ListFormat","listFormat","DisplayNames","displayNames","of","mathml","testElement","innerHTML","position","visibility","rect","getBoundingClientRect","isMathMLSupported","dimensionsArray","fontStyleHash","struct","measurement","mathElement","whiteSpace","top","computedStyle","defaultView","getComputedStyle","measurements","dimensions","fontInfo","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","fontVariant","fontStretch","fontSizeAdjust","textRendering","fontFeatureSettings","fontVariantNumeric","fontKerning","measureMathMLStructure","mediadevices","mediaDevices","enumerateDevices","devices","counts","device","kind","audioinput","audiooutput","videoinput","customComponents","timeoutInstance","getVersion","getExcludeList","majorVer","excludeList","stabilizationOptions","option","rules","rule","some","br","filterThumbmarkData","includeList","performFilter","currentObj","path","entries","currentPath","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","DEFAULT_STORAGE_PROPERTY_NAME","getVisitorIdPropertyName","_options","storage_property_name","DEFAULT_VISITOR_ID_NAME","setVisitorId","visitorId","localStorage","setItem","CACHE_KEY","getCache","rawCache","getItem","jsonCache","parse","getApiResponseExpiry","now","ApiError","constructor","super","this","currentApiPromise","apiPromiseResult","callApi","endpoint","response","fetch","method","headers","api_key","Authorization","ok","json","values","newValues","setCache","apiResponseExpiry","apiResponse","setCachedApiResponse","getApiPromise","components","cached","cache","getCachedApiResponse","api_endpoint","propertyName","getVisitorId","requestBody","clientHash","metadata","resolvedMetadata","timeoutMs","apiCall","attempt","r","MAX_RETRIES","callApiWithRetry","finally","info","timed_out","race","getThumbmark","instanceCustomComponents","thumbmark","allErrors","shouldLog","sessionStorage","random","allComponents","elapsed","resolvedComponents","clientComponentsResult","errors","componentErrors","resolveClientComponents","experimentalComponents","experimentalElapsed","expElapsed","expErrors","apiPromise","apiResult","allElapsed","maybeElapsed","apiComponents","uniqueness","score","thisHash","thumbmarkData","experimentalData","url","payload","pathname","logThumbmarkData","catch","requestId","e","comps","opts","topLevelExcludes","promises","fn","resolvedValues","timeoutTime","timeoutVal","p","startTime","then","err","t","raceAllPerformance","resolvedComponentsRaw","index","component","get","overrideOptions","includeComponent","includeData","creationFunction"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thumbmark.umd.js","sources":["../src/options.ts","../src/components/audio/index.ts","../src/utils/commonPixels.ts","../src/utils/hash.ts","../src/components/canvas/index.ts","../src/utils/ephemeralIFrame.ts","../src/components/fonts/index.ts","../src/components/hardware/index.ts","../src/components/math/index.ts","../src/utils/getMostFrequent.ts","../src/components/permissions/index.ts","../src/components/system/browser.ts","../src/components/screen/index.ts","../src/components/system/index.ts","../src/components/webgl/index.ts","../src/utils/stableStringify.ts","../src/components/mathml/index.ts","../src/factory.ts","../src/components/locales/index.ts","../src/components/plugins/index.ts","../src/components/webrtc/index.ts","../src/components/speech/index.ts","../src/components/intl/index.ts","../src/components/mediaDevices/index.ts","../src/utils/version.ts","../src/functions/filterComponents.ts","../src/utils/visitorId.ts","../src/utils/cache.ts","../src/functions/api.ts","../src/functions/index.ts","../src/utils/log.ts","../src/utils/raceAll.ts","../src/thumbmark.ts","../src/functions/legacy_functions.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["MAXIMUM_CACHE_LIFETIME","DEFAULT_STORAGE_PREFIX","DEFAULT_API_ENDPOINT","defaultOptions","exclude","include","stabilize","logging","timeout","cache_api_call","cache_lifetime_in_ms","performance","experimental","property_name_factory","name","options","stabilizationExclusionRules","private","browsers","iframe","vpn","always","OfflineAudioContextClass","window","OfflineAudioContext","webkitOfflineAudioContext","calculateHash","samples","hash","i","length","Math","abs","getCommonPixels","images","width","height","a","data","b","c","out","Uint8ClampedArray","x","y","z","ImageData","finalData","indice","u","push","getMostFrequent","pixelArray","arr","frequencyMap","num","mostFrequent","parseInt","fmix","input","imul","C","Uint32Array","rotl","m","n","key","seed","text","TextEncoder","encode","buffer","utf8","charCode","charCodeAt","Uint8Array","encodeUtf8","ArrayBuffer","TypeError","blocks","byteLength","view32","k","subarray","body","reminder","tail","finalize","byteArray","Array","from","map","byte","toString","padStart","join","_WIDTH","async","ephemeralIFrame","callback","document","wait","createElement","setAttribute","style","setProperty","src","appendChild","iframeDocument","contentDocument","_a","contentWindow","undefined","Error","setTimeout","removeChild","durationMs","resolveWith","Promise","resolve","availableFonts","baseFonts","measureSingleFont","ctx","font","measureText","getVideoCard","canvas","gl","getContext","vendor","getParameter","VENDOR","renderer","RENDERER","result","version","VERSION","shadingLanguageVersion","SHADING_LANGUAGE_VERSION","debugInfo","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","error","getArchitecture","f","Float32Array","u8","Infinity","integrate","h","sum","mostFrequentValuesInArrayOfDictionaries","keys","forEach","mostFrequentValueForKey","element","String","highestFrequency","Object","mostFrequentValue","obj","filter","val","defaultPermissionKeys","browserCache","Map","getBrowser","navigator","isBrave","brave","cacheKey","userAgent","cached","get","privacyBrowserStrategies","detect","strategy","parsed","parseBrowserFromUA","set","ua","regexes","browserNameMap","edg","edga","edgios","opr","opx","crios","fxios","samsung","vivaldi","regex","match","groups","_b","_c","version1","_d","version2","_e","_f","source","includes","toLowerCase","isMobileUserAgent","test","matchMedias","results","mediaQueries","pointer","hover","update","scripting","value","matchMedia","matches","getApplePayVersion","location","protocol","ApplePaySession","versionCheck","supportsVersion","_RUNS","_USE_CACHE","_NUM_SPOKES","_VERTICES","v","angleIncrement","PI","angle","cos","sin","_cache","setupWebGL","addEventListener","event","preventDefault","once","vertexShader","createShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","program","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","_","stableStringify","seen","Set","stringify","node","toJSON","isFinite","JSON","isArray","has","add","sort","delete","BLACKBOARD_BOLD","GREEK_SYMBOLS","createMathML","content","createComplexNestedStructure","nestedContent","bbSymbol","bbIndex","startIdx","greekSet","slice","createSymbolStructures","structures","tm_component_promises","audio","reject","audioContext","audioBuffer","createBufferSource","oscillator","createOscillator","frequency","compressor","createDynamicsCompressor","threshold","knee","ratio","attack","release","connect","destination","start","oncomplete","renderedBuffer","getChannelData","sampleHash","maxChannels","maxChannelCount","channelCountMode","startRendering","createAudioFingerprint","imageDatas","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","randomText","fillText","beginPath","moveTo","lineTo","strokeStyle","lineWidth","stroke","getImageData","generateCanvasImageData","commonPixelsHash","fonts","defaultWidths","fontWidth","hardware","deviceMemory","memoryInfo","memory","videocard","architecture","jsHeapSizeLimit","locales","languages","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","math","acos","asin","largeCos","largeSin","largeTan","tan","permissions","permission_keys","permissions_to_check","all","permissionStatus","feature","status","query","state","getBrowserPermissionsOnce","plugins","plugin","filename","description","screen","is_touchscreen","maxTouchPoints","colorDepth","mediaMatches","w","longer","max","shorter","min","screenResolution","system","browser","platform","productSub","product","useragent","hardwareConcurrency","mobile","applePayVersion","cookieEnabled","webgl","cache","useProgram","positionAttribute","getAttribLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","viewport","clearColor","clear","COLOR_BUFFER_BIT","drawArrays","LINES","pixelData","readPixels","RGBA","UNSIGNED_BYTE","drawingBufferWidth","drawingBufferHeight","renderImage","webrtc","connection","RTCPeerConnection","webkitRTCPeerConnection","mozRTCPeerConnection","supported","iceCandidatePoolSize","iceServers","conn","createDataChannel","offerOptions","offerToReceiveAudio","offerToReceiveVideo","offer","createOffer","setLocalDescription","sdp","extensions","replace","getDescriptors","mediaType","RegExp","split","constructDescriptions","descriptors","descriptor","matcher","matchAll","type","parts","mimeType","clockRate","channels","feedbackSupport","sdpFmtpLine","Boolean","audioCodecs","videoCodecs","compressedData","count","video","extensionsHash","close","candidateType","details","message","processOffer","speech","speechSynthesis","getVoices","voicesResolved","timeoutHandle","processVoices","voices","clearTimeout","voiceSignatures","voice","escapeValue","voiceURI","lang","localService","default","voiceCount","voicesHash","onVoicesChanged","removeEventListener","tm_experimental_component_promises","intl","date","Date","UTC","dateFullFormat","dateStyle","format","dateMediumFormat","timeFormat","timeStyle","numberFormat","NumberFormat","currencyFormat","currency","percentFormat","nonLatinDate","nonLatinNumber","IntlAny","ListFormat","listFormat","DisplayNames","displayNames","of","mathml","testElement","innerHTML","position","visibility","rect","getBoundingClientRect","isMathMLSupported","dimensionsArray","fontStyleHash","struct","measurement","mathElement","whiteSpace","top","computedStyle","defaultView","getComputedStyle","measurements","dimensions","fontInfo","fontFamily","fontSize","fontWeight","fontStyle","lineHeight","fontVariant","fontStretch","fontSizeAdjust","textRendering","fontFeatureSettings","fontVariantNumeric","fontKerning","measureMathMLStructure","mediadevices","mediaDevices","enumerateDevices","devices","counts","device","kind","audioinput","audiooutput","videoinput","customComponents","timeoutInstance","getVersion","getExcludeList","majorVer","excludeList","stabilizationOptions","option","rules","rule","some","br","filterThumbmarkData","includeList","performFilter","currentObj","path","entries","currentPath","isExcluded","exclusion","startsWith","isIncluded","inclusion","filtered","DEFAULT_STORAGE_PROPERTY_NAME","getVisitorIdPropertyName","_options","storage_property_name","DEFAULT_VISITOR_ID_NAME","setVisitorId","visitorId","localStorage","setItem","CACHE_KEY","getCache","rawCache","getItem","jsonCache","parse","getApiResponseExpiry","now","ApiError","constructor","super","this","currentApiPromise","apiPromiseResult","callApi","endpoint","response","fetch","method","headers","api_key","Authorization","ok","json","values","newValues","setCache","apiResponseExpiry","apiResponse","setCachedApiResponse","getApiPromise","components","getCachedApiResponse","api_endpoint","propertyName","getVisitorId","requestBody","clientHash","metadata","resolvedMetadata","console","timeoutMs","apiCall","attempt","r","MAX_RETRIES","callApiWithRetry","finally","info","timed_out","race","getThumbmark","instanceCustomComponents","thumbmark","allErrors","shouldLog","sessionStorage","random","allComponents","elapsed","resolvedComponents","clientComponentsResult","errors","componentErrors","pipelineTimings","mainPipelineTimings","resolveClientComponents","experimentalComponents","experimentalElapsed","expPipelineTimings","expElapsed","expErrors","expTimings","apiPromise","apiResult","filterStart","apiComponents","filterMs","uniqueness","score","stringifyMs","hashMs","stringifyStart","stringified","hashStart","thisHash","thumbmarkData","experimentalData","url","payload","pathname","logThumbmarkData","catch","expFilterMs","_pipelineTimings","allElapsed","maybeElapsed","assemblyStart","requestId","e","comps","opts","topLevelExcludes","perComponentDispatch","dispatchStart","promises","fn","t0","p","dispatchMs","resolveStart","resolvedValues","timeoutTime","timeoutVal","startTime","timeoutId","resultPromise","then","err","timeoutPromise","raceAllPerformance","resolveMs","resolvedComponentsRaw","index","component","overrideOptions","includeComponent","includeData","creationFunction"],"mappings":"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EhF,OAAQyF,IAGnBM,YAAW,KACTd,SAAShB,KAAK+B,YAAYhG,EAAO,GAChC,EACL,CAEgB,SAAAkF,EAAee,EAAoBC,GACjD,OAAO,IAAIC,SAASC,GAAYL,WAAWK,EAASH,EAAYC,IAClE,CC5BF,MAAMG,EAAiB,CACnB,QACA,cACA,eACA,mBACA,QACA,UACA,SACA,aACA,SACA,UACA,UACA,QACA,UACA,UACA,iBACA,gBACA,aACA,UACA,cACA,eACA,UACA,UACA,mBACA,gBACA,QACA,aACA,MACA,YACA,YACA,yBACA,WACA,SACA,UACA,YACA,YACA,SACA,cACA,eACA,QACA,eACA,QACA,OACA,SACA,gBACA,iBACA,sBACA,UACA,eACA,oBACA,aACA,SACA,YACA,SACA,cACA,YACA,SACA,WACA,SACA,WACA,WACA,WACA,UACA,WACA,UACA,SACA,cACA,YACA,WACA,YACA,SACA,mBACA,WACA,QACA,cACA,eACA,WACA,OACA,kBACA,aACA,SACA,UACA,QACA,kBACA,gBACA,eACA,SACA,eACA,UACA,aAGIC,EAAY,CAAC,YAAa,aAAc,SA4ChD,SAASC,EAAkBC,EAA+BC,GAGtD,OADAD,EAAIC,KAAO,QAAQA,IACZD,EAAIE,YAFU,cAEQ1F,KACjC,CCjIA,SAAS2F,UACL,MAAMC,EAAS3B,SAASE,cAAc,UAChC0B,EAA+B,QAA1BlB,EAAAiB,EAAOE,WAAW,gBAAQjB,IAAAF,EAAAA,EAAIiB,EAAOE,WAAW,sBAE3D,GAAID,GAAM,iBAAkBA,EACxB,IAEI,MAAME,GAAUF,EAAGG,aAAaH,EAAGI,SAAW,IAAIvC,WAC5CwC,GAAYL,EAAGG,aAAaH,EAAGM,WAAa,IAAIzC,WAEtD,IAAI0C,EAA6B,CAC7BL,OAAQA,EACRG,SAAUA,EACVG,SAAUR,EAAGG,aAAaH,EAAGS,UAAY,IAAI5C,WAC7C6C,wBAAyBV,EAAGG,aAAaH,EAAGW,2BAA6B,IAAI9C,YAIjF,IAAKwC,EAASvG,SAAWoG,EAAOpG,OAAQ,CACpC,MAAM8G,EAAYZ,EAAGa,aAAa,6BAClC,GAAID,EAAW,C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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { componentInterface } from '../../factory';
|
|
2
|
+
import { optionsInterface } from '../../options';
|
|
3
|
+
export default function getFonts(options?: optionsInterface): Promise<componentInterface | null>;
|
|
4
|
+
export declare function getFontMetrics(): Promise<componentInterface | null>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface BrowserResult {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
}
|
|
5
|
+
/** Test-only: reset the memoization cache between test runs. */
|
|
6
|
+
export declare function __resetBrowserCache(): void;
|
|
7
|
+
export declare function getBrowser(): BrowserResult;
|
|
8
|
+
export declare function isMobileUserAgent(): boolean;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { componentInterface } from '../../factory';
|
|
2
|
+
interface WebGLCache {
|
|
3
|
+
canvas: HTMLCanvasElement;
|
|
4
|
+
gl: WebGLRenderingContext;
|
|
5
|
+
program: WebGLProgram;
|
|
6
|
+
buffer: WebGLBuffer;
|
|
7
|
+
}
|
|
8
|
+
/** Test-only: reset the module-scope cache between test runs. */
|
|
9
|
+
export declare function __resetWebGLCache(): void;
|
|
10
|
+
/** Test-only: read the current cache reference without mutating it. */
|
|
11
|
+
export declare function __getWebGLCache(): WebGLCache | null;
|
|
12
|
+
export default function getWebGL(): Promise<componentInterface>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is used to create the includeComponent function as well as the interfaces each of the
|
|
3
|
+
* fingerprint components must implement.
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
import { optionsInterface } from './options';
|
|
7
|
+
import getAudio from "./components/audio";
|
|
8
|
+
import getCanvas from "./components/canvas";
|
|
9
|
+
import getFonts from "./components/fonts";
|
|
10
|
+
import getHardware from "./components/hardware";
|
|
11
|
+
import getLocales from "./components/locales";
|
|
12
|
+
import getMath from "./components/math";
|
|
13
|
+
import getPermissions from "./components/permissions";
|
|
14
|
+
import getPlugins from "./components/plugins";
|
|
15
|
+
import getScreen from "./components/screen";
|
|
16
|
+
import getSystem from "./components/system";
|
|
17
|
+
import getWebGL from "./components/webgl";
|
|
18
|
+
import getIntl from "./components/intl";
|
|
19
|
+
import getMediaDevices from "./components/mediaDevices";
|
|
20
|
+
import getWebRTC from "./components/webrtc";
|
|
21
|
+
import getMathML from "./components/mathml";
|
|
22
|
+
import getSpeech from "./components/speech";
|
|
23
|
+
/**
|
|
24
|
+
* @description key->function map of built-in components. Do not call the function here.
|
|
25
|
+
*/
|
|
26
|
+
export declare const tm_component_promises: {
|
|
27
|
+
audio: typeof getAudio;
|
|
28
|
+
canvas: typeof getCanvas;
|
|
29
|
+
fonts: typeof getFonts;
|
|
30
|
+
hardware: typeof getHardware;
|
|
31
|
+
locales: typeof getLocales;
|
|
32
|
+
math: typeof getMath;
|
|
33
|
+
permissions: typeof getPermissions;
|
|
34
|
+
plugins: typeof getPlugins;
|
|
35
|
+
screen: typeof getScreen;
|
|
36
|
+
system: typeof getSystem;
|
|
37
|
+
webgl: typeof getWebGL;
|
|
38
|
+
webrtc: typeof getWebRTC;
|
|
39
|
+
speech: typeof getSpeech;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* @description key->function map of experimental components. Only resolved during logging.
|
|
43
|
+
*/
|
|
44
|
+
export declare const tm_experimental_component_promises: {
|
|
45
|
+
intl: typeof getIntl;
|
|
46
|
+
mathml: typeof getMathML;
|
|
47
|
+
mediadevices: typeof getMediaDevices;
|
|
48
|
+
};
|
|
49
|
+
export interface componentInterface {
|
|
50
|
+
[key: string]: string | string[] | number | boolean | componentInterface;
|
|
51
|
+
}
|
|
52
|
+
export interface componentFunctionInterface {
|
|
53
|
+
(options?: optionsInterface): Promise<componentInterface | null>;
|
|
54
|
+
}
|
|
55
|
+
export declare const customComponents: {
|
|
56
|
+
[name: string]: componentFunctionInterface | null;
|
|
57
|
+
};
|
|
58
|
+
export declare const timeoutInstance: componentInterface;
|
|
59
|
+
/**
|
|
60
|
+
* includeComponent is the function each custom component function needs to call in order for the component to be included
|
|
61
|
+
* in the fingerprint.
|
|
62
|
+
* @param {string} name - the name identifier of the component
|
|
63
|
+
* @param {componentFunctionInterface} creationFunction - the function that implements the component
|
|
64
|
+
* @returns nothing
|
|
65
|
+
*/
|
|
66
|
+
export declare const includeComponent: (name: string, creationFunction: componentFunctionInterface, options?: optionsInterface) => void;
|