trace-sdk
Version:
A comprehensive browser fingerprinting library that generates unique device fingerprints and detects incognito/private browsing mode
3 lines (2 loc) • 31.4 kB
JavaScript
var t=function(){return t=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},t.apply(this,arguments)};function e(t,e,n,r){return new(n||(n=Promise))(function(o,a){function i(t){try{s(r.next(t))}catch(t){a(t)}}function u(t){try{s(r.throw(t))}catch(t){a(t)}}function s(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(i,u)}s((r=r.apply(t,e||[])).next())})}function n(t,e){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=u(0),i.throw=u(1),i.return=u(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(u){return function(s){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=e.call(t,a)}catch(t){u=[6,t],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,s])}}}"function"==typeof SuppressedError&&SuppressedError;var r,o=function(){var t=null,e=null,n=null,r=null,o=null,a=null,i=function(){var n;u(),e=null!==(n=null==t?void 0:t.currentTime)&&void 0!==n?n:0,s(),c()},u=function(){try{t=new OfflineAudioContext(1,44100,44100)}catch(e){t=null}},s=function(){t&&null!==e&&((n=t.createOscillator()).type="triangle",n.frequency.setValueAtTime(1e4,e))},c=function(){t&&(r=t.createDynamicsCompressor(),l("threshold",-50),l("knee",40),l("ratio",12),l("attack",0),l("release",.25))},l=function(e,n){var o=null==r?void 0:r[e];o&&"function"==typeof o.setValueAtTime&&o.setValueAtTime(n,t.currentTime)},f=function(t){h(t),d()},d=function(){r&&r.disconnect(),n&&n.disconnect(),t=null},h=function(t){for(var e=0,n=t.getChannelData(0),r=4500;r<5e3;r++)e+=Math.abs(n[r]);o=e.toString(),"function"==typeof a&&a(o)};return{run:function(e,o){void 0===o&&(o=!1),a=e;try{i(),n&&r&&t&&(n.connect(r),r.connect(t.destination),n.start(0),t.startRendering().then(f).catch(function(t){if(o)throw t}))}catch(t){if(o)throw t;a&&a("0")}}}}(),a=function(){return!!window},i=function(){return!!(null===window||void 0===window?void 0:window.navigator)};!function(t){t[t.UNDEFINED=0]="UNDEFINED",t[t.CHROME=1]="CHROME",t[t.EDGE=2]="EDGE",t[t.FIREFOX=3]="FIREFOX",t[t.SAFARI=4]="SAFARI",t[t.IE=5]="IE"}(r||(r={}));var u=function(){var t;return a()?null===(t=null===window||void 0===window?void 0:window.screen)||void 0===t?void 0:t.colorDepth:0},s=function(){if("undefined"!=typeof window&&window.matchMedia)for(var t=0,e=["rec2020","p3","srgb"];t<e.length;t++){var n=e[t];if(window.matchMedia("(color-gamut: ".concat(n,")")).matches)return n}},c=function(){var t;if(a()&&i())return null===(t=null===window||void 0===window?void 0:window.navigator)||void 0===t?void 0:t.maxTouchPoints},l=function(){var t=function(){var t=r.UNDEFINED;if(i()){var e=navigator.userAgent;/Chrome/.test(e)&&!/Chromium/.test(e)?t=r.CHROME:/Edg/.test(e)?t=r.EDGE:/Firefox/.test(e)?t=r.FIREFOX:/Safari/.test(e)?t=r.SAFARI:/Trident/.test(e)&&(t=r.IE)}return t}();if((t===r.CHROME||t===r.EDGE||t===r.IE)&&"featurePolicy"in document)return document.featurePolicy.features().sort();return null},f=function(t){return"test"===process.env.NODE_ENV?"":document.createElement("video").canPlayType("video/".concat(t))||""},d=function(){if(i()){var t=[];for(var e in window.navigator)t.push(e);return null==t?void 0:t.sort()}return null},h=function(){var t;if(a()&&i())return null===(t=null===window||void 0===window?void 0:window.navigator)||void 0===t?void 0:t.platform},v=function(){var t,e;return null===(e=null===(t=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===t?void 0:t.resolvedOptions())||void 0===e?void 0:e.timeZone},p=function(){var t;if(a()&&i())return null===(t=null===window||void 0===window?void 0:window.navigator)||void 0===t?void 0:t.userAgent},g=function(){var t;if(a()&&i())return null===(t=null===window||void 0===window?void 0:window.navigator)||void 0===t?void 0:t.vendor},E=function(){var t=document.createElement("canvas");t.width=1,t.height=1;var e=t.toDataURL&&t.toDataURL("image/webp").startsWith("data:image/webp");return{isWebPSupported:e,canvas:e?t.toDataURL("image/webp"):"WebP not supported"}},w=function(){var t,e,n,r,o;return{LocationBar:null!==(t=null===locationbar||void 0===locationbar?void 0:locationbar.visible)&&void 0!==t?t:null,Menubar:null!==(e=null===menubar||void 0===menubar?void 0:menubar.visible)&&void 0!==e?e:null,Personalbar:null!==(n=null===personalbar||void 0===personalbar?void 0:personalbar.visible)&&void 0!==n?n:null,Statusbar:null!==(r=null===statusbar||void 0===statusbar?void 0:statusbar.visible)&&void 0!==r?r:null,Toolbar:null!==(o=null===toolbar||void 0===toolbar?void 0:toolbar.visible)&&void 0!==o?o:null}},m=function(){return e(void 0,void 0,void 0,function(){return n(this,function(t){return[2,new Promise(function(t,r){var o="Unknown",a=function(e){t({isPrivate:e,browserName:o})},i=function(t){return t===eval.toString().length},u=function(){navigator.webkitTemporaryStorage.queryUsageAndQuota(function(t,e){return a(e<2*function(){var t,e,n=window.performance;return null!==(e=null===(t=null==n?void 0:n.memory)||void 0===t?void 0:t.jsHeapSizeLimit)&&void 0!==e?e:1073741824}())},function(t){return r(new Error("Failed to query storage quota: ".concat(t.message)))})},s=function(){var t;"function"==typeof(null===(t=self.Promise)||void 0===t?void 0:t.allSettled)?u():(0,window.webkitRequestFileSystem)(0,1,function(){return a(!1)},function(){return a(!0)})};e(void 0,void 0,void 0,function(){return n(this,function(t){switch(t.label){case 0:if("test"===process.env.NODE_ENV)return a(!1),[2];if(!function(){var t;return(null===(t=navigator.vendor)||void 0===t?void 0:t.startsWith("Apple"))&&i(37)}())return[3,5];o="Safari",t.label=1;case 1:return t.trys.push([1,3,,4]),[4,navigator.storage.getDirectory()];case 2:return t.sent(),[3,4];case 3:return t.sent(),a(!0),[3,4];case 4:return[3,6];case 5:!function(){var t;return(null===(t=navigator.vendor)||void 0===t?void 0:t.startsWith("Google"))&&i(33)}()?function(){var t;return void 0!==(null===(t=document.documentElement)||void 0===t?void 0:t.style).MozAppearance&&i(37)}()?(o="Firefox",a(void 0===navigator.serviceWorker)):void 0!==navigator.msSaveBlob&&i(39)?(o="Internet Explorer",a(void 0===window.indexedDB)):a(!1):(e=navigator.userAgent,o=e.includes("Chrome")?void 0!==navigator.brave?"Brave":e.includes("Edg")?"Edge":e.includes("OPR")?"Opera":"Chrome":"Chromium",s()),t.label=6;case 6:return[2]}var e})})})]})})};"undefined"!=typeof window&&(window.detectIncognito=m);var _=function(){var t,e=0;if(document)try{var n=document.createElement("canvas");if(!(null===(t=process.env.NODE_ENV)||void 0===t?void 0:t.includes("test"))){n.style.visibility="hidden";var r=n.getContext("2d");if(r){var o="i9asdm..$#po((^@KbXrww!~cz";r.textBaseline="alphabetic",r.font="16px 'Arial'",r.rotate(.05),r.fillStyle="#f60",r.fillRect(125,1,62,20),r.fillStyle="#069",r.fillText(o,2,15),r.fillStyle="rgba(102, 200, 0, 0.7)",r.fillText(o,4,17),r.shadowBlur=10,r.shadowColor="blue",r.fillRect(-20,10,234,5)}var a=n.toDataURL();if(document.body.appendChild(n),!a)return 0;for(var i=0;i<a.length;i++){e=(e<<5)-e+a.charCodeAt(i),e&=e}}}catch(t){console.error("Canvas operations failed:",t)}return e},y=function(){var t=document.createElement("canvas"),e=t.getContext("webgl")||t.getContext("experimental-webgl");if(!e)return"test"!==process.env.NODE_ENV&&console.warn("WebGL not supported."),null;var n=e.getExtension("WEBGL_debug_renderer_info");return n?{vendor:e.getParameter(n.UNMASKED_VENDOR_WEBGL)||"Unknown Vendor",renderer:e.getParameter(n.UNMASKED_RENDERER_WEBGL)||"Unknown Renderer"}:(console.warn("WEBGL_debug_renderer_info not available"),null)};function A(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var S={exports:{}};S.exports=function(t){var e=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function n(t,e){var n=t[0],r=t[1],o=t[2],a=t[3];r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&o|~r&a)+e[0]-680876936|0)<<7|n>>>25)+r|0)&r|~n&o)+e[1]-389564586|0)<<12|a>>>20)+n|0)&n|~a&r)+e[2]+606105819|0)<<17|o>>>15)+a|0)&a|~o&n)+e[3]-1044525330|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&o|~r&a)+e[4]-176418897|0)<<7|n>>>25)+r|0)&r|~n&o)+e[5]+1200080426|0)<<12|a>>>20)+n|0)&n|~a&r)+e[6]-1473231341|0)<<17|o>>>15)+a|0)&a|~o&n)+e[7]-45705983|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&o|~r&a)+e[8]+1770035416|0)<<7|n>>>25)+r|0)&r|~n&o)+e[9]-1958414417|0)<<12|a>>>20)+n|0)&n|~a&r)+e[10]-42063|0)<<17|o>>>15)+a|0)&a|~o&n)+e[11]-1990404162|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&o|~r&a)+e[12]+1804603682|0)<<7|n>>>25)+r|0)&r|~n&o)+e[13]-40341101|0)<<12|a>>>20)+n|0)&n|~a&r)+e[14]-1502002290|0)<<17|o>>>15)+a|0)&a|~o&n)+e[15]+1236535329|0)<<22|r>>>10)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+e[1]-165796510|0)<<5|n>>>27)+r|0)&o|r&~o)+e[6]-1069501632|0)<<9|a>>>23)+n|0)&r|n&~r)+e[11]+643717713|0)<<14|o>>>18)+a|0)&n|a&~n)+e[0]-373897302|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+e[5]-701558691|0)<<5|n>>>27)+r|0)&o|r&~o)+e[10]+38016083|0)<<9|a>>>23)+n|0)&r|n&~r)+e[15]-660478335|0)<<14|o>>>18)+a|0)&n|a&~n)+e[4]-405537848|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+e[9]+568446438|0)<<5|n>>>27)+r|0)&o|r&~o)+e[14]-1019803690|0)<<9|a>>>23)+n|0)&r|n&~r)+e[3]-187363961|0)<<14|o>>>18)+a|0)&n|a&~n)+e[8]+1163531501|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r&a|o&~a)+e[13]-1444681467|0)<<5|n>>>27)+r|0)&o|r&~o)+e[2]-51403784|0)<<9|a>>>23)+n|0)&r|n&~r)+e[7]+1735328473|0)<<14|o>>>18)+a|0)&n|a&~n)+e[12]-1926607734|0)<<20|r>>>12)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+e[5]-378558|0)<<4|n>>>28)+r|0)^r^o)+e[8]-2022574463|0)<<11|a>>>21)+n|0)^n^r)+e[11]+1839030562|0)<<16|o>>>16)+a|0)^a^n)+e[14]-35309556|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+e[1]-1530992060|0)<<4|n>>>28)+r|0)^r^o)+e[4]+1272893353|0)<<11|a>>>21)+n|0)^n^r)+e[7]-155497632|0)<<16|o>>>16)+a|0)^a^n)+e[10]-1094730640|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+e[13]+681279174|0)<<4|n>>>28)+r|0)^r^o)+e[0]-358537222|0)<<11|a>>>21)+n|0)^n^r)+e[3]-722521979|0)<<16|o>>>16)+a|0)^a^n)+e[6]+76029189|0)<<23|r>>>9)+o|0,r=((r+=((o=((o+=((a=((a+=((n=((n+=(r^o^a)+e[9]-640364487|0)<<4|n>>>28)+r|0)^r^o)+e[12]-421815835|0)<<11|a>>>21)+n|0)^n^r)+e[15]+530742520|0)<<16|o>>>16)+a|0)^a^n)+e[2]-995338651|0)<<23|r>>>9)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+e[0]-198630844|0)<<6|n>>>26)+r|0)|~o))+e[7]+1126891415|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+e[14]-1416354905|0)<<15|o>>>17)+a|0)|~n))+e[5]-57434055|0)<<21|r>>>11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+e[12]+1700485571|0)<<6|n>>>26)+r|0)|~o))+e[3]-1894986606|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+e[10]-1051523|0)<<15|o>>>17)+a|0)|~n))+e[1]-2054922799|0)<<21|r>>>11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+e[8]+1873313359|0)<<6|n>>>26)+r|0)|~o))+e[15]-30611744|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+e[6]-1560198380|0)<<15|o>>>17)+a|0)|~n))+e[13]+1309151649|0)<<21|r>>>11)+o|0,r=((r+=((a=((a+=(r^((n=((n+=(o^(r|~a))+e[4]-145523070|0)<<6|n>>>26)+r|0)|~o))+e[11]-1120210379|0)<<10|a>>>22)+n|0)^((o=((o+=(n^(a|~r))+e[2]+718787259|0)<<15|o>>>17)+a|0)|~n))+e[9]-343485551|0)<<21|r>>>11)+o|0,t[0]=n+t[0]|0,t[1]=r+t[1]|0,t[2]=o+t[2]|0,t[3]=a+t[3]|0}function r(t){var e,n=[];for(e=0;e<64;e+=4)n[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return n}function o(t){var e,n=[];for(e=0;e<64;e+=4)n[e>>2]=t[e]+(t[e+1]<<8)+(t[e+2]<<16)+(t[e+3]<<24);return n}function a(t){var e,o,a,i,u,s,c=t.length,l=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=c;e+=64)n(l,r(t.substring(e-64,e)));for(o=(t=t.substring(e-64)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e=0;e<o;e+=1)a[e>>2]|=t.charCodeAt(e)<<(e%4<<3);if(a[e>>2]|=128<<(e%4<<3),e>55)for(n(l,a),e=0;e<16;e+=1)a[e]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),u=parseInt(i[2],16),s=parseInt(i[1],16)||0,a[14]=u,a[15]=s,n(l,a),l}function i(t){var e,r,a,i,u,s,c=t.length,l=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=c;e+=64)n(l,o(t.subarray(e-64,e)));for(r=(t=e-64<c?t.subarray(e-64):new Uint8Array(0)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e=0;e<r;e+=1)a[e>>2]|=t[e]<<(e%4<<3);if(a[e>>2]|=128<<(e%4<<3),e>55)for(n(l,a),e=0;e<16;e+=1)a[e]=0;return i=(i=8*c).toString(16).match(/(.*?)(.{0,8})$/),u=parseInt(i[2],16),s=parseInt(i[1],16)||0,a[14]=u,a[15]=s,n(l,a),l}function u(t){var n,r="";for(n=0;n<4;n+=1)r+=e[t>>8*n+4&15]+e[t>>8*n&15];return r}function s(t){var e;for(e=0;e<t.length;e+=1)t[e]=u(t[e]);return t.join("")}function c(t){return/[\u0080-\uFFFF]/.test(t)&&(t=unescape(encodeURIComponent(t))),t}function l(t,e){var n,r=t.length,o=new ArrayBuffer(r),a=new Uint8Array(o);for(n=0;n<r;n+=1)a[n]=t.charCodeAt(n);return e?a:o}function f(t){return String.fromCharCode.apply(null,new Uint8Array(t))}function d(t,e,n){var r=new Uint8Array(t.byteLength+e.byteLength);return r.set(new Uint8Array(t)),r.set(new Uint8Array(e),t.byteLength),n?r:r.buffer}function h(t){var e,n=[],r=t.length;for(e=0;e<r-1;e+=2)n.push(parseInt(t.substr(e,2),16));return String.fromCharCode.apply(String,n)}function v(){this.reset()}return s(a("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function e(t,e){return(t=0|t||0)<0?Math.max(t+e,0):Math.min(t,e)}ArrayBuffer.prototype.slice=function(n,r){var o,a,i,u,s=this.byteLength,c=e(n,s),l=s;return r!==t&&(l=e(r,s)),c>l?new ArrayBuffer(0):(o=l-c,a=new ArrayBuffer(o),i=new Uint8Array(a),u=new Uint8Array(this,c,o),i.set(u),a)}}(),v.prototype.append=function(t){return this.appendBinary(c(t)),this},v.prototype.appendBinary=function(t){this._buff+=t,this._length+=t.length;var e,o=this._buff.length;for(e=64;e<=o;e+=64)n(this._hash,r(this._buff.substring(e-64,e)));return this._buff=this._buff.substring(e-64),this},v.prototype.end=function(t){var e,n,r=this._buff,o=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<o;e+=1)a[e>>2]|=r.charCodeAt(e)<<(e%4<<3);return this._finish(a,o),n=s(this._hash),t&&(n=h(n)),this.reset(),n},v.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},v.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},v.prototype.setState=function(t){return this._buff=t.buff,this._length=t.length,this._hash=t.hash,this},v.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},v.prototype._finish=function(t,e){var r,o,a,i=e;if(t[i>>2]|=128<<(i%4<<3),i>55)for(n(this._hash,t),i=0;i<16;i+=1)t[i]=0;r=(r=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),o=parseInt(r[2],16),a=parseInt(r[1],16)||0,t[14]=o,t[15]=a,n(this._hash,t)},v.hash=function(t,e){return v.hashBinary(c(t),e)},v.hashBinary=function(t,e){var n=s(a(t));return e?h(n):n},v.ArrayBuffer=function(){this.reset()},v.ArrayBuffer.prototype.append=function(t){var e,r=d(this._buff.buffer,t,!0),a=r.length;for(this._length+=t.byteLength,e=64;e<=a;e+=64)n(this._hash,o(r.subarray(e-64,e)));return this._buff=e-64<a?new Uint8Array(r.buffer.slice(e-64)):new Uint8Array(0),this},v.ArrayBuffer.prototype.end=function(t){var e,n,r=this._buff,o=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<o;e+=1)a[e>>2]|=r[e]<<(e%4<<3);return this._finish(a,o),n=s(this._hash),t&&(n=h(n)),this.reset(),n},v.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},v.ArrayBuffer.prototype.getState=function(){var t=v.prototype.getState.call(this);return t.buff=f(t.buff),t},v.ArrayBuffer.prototype.setState=function(t){return t.buff=l(t.buff,!0),v.prototype.setState.call(this,t)},v.ArrayBuffer.prototype.destroy=v.prototype.destroy,v.ArrayBuffer.prototype._finish=v.prototype._finish,v.ArrayBuffer.hash=function(t,e){var n=s(i(new Uint8Array(t)));return e?h(n):n},v}();var b=A(S.exports);function M(){var t=function(){var t=document.createElement("canvas");return t.getContext("webgl")||t.getContext("experimental-webgl")}();if(!t)return null;var e=[],n=t.createBuffer();if(!n)return null;t.bindBuffer(t.ARRAY_BUFFER,n);var r=new Float32Array([-.2,-.9,0,.4,-.26,0,0,.732134444,0]);t.bufferData(t.ARRAY_BUFFER,r,t.STATIC_DRAW),n.itemSize=3,n.numItems=3;var o=t.createProgram();if(!o)return null;var a=t.createShader(t.VERTEX_SHADER);t.shaderSource(a,"\n attribute vec2 attrVertex;\n varying vec2 varyinTexCoordinate;\n uniform vec2 uniformOffset;\n void main() {\n varyinTexCoordinate = attrVertex + uniformOffset;\n gl_Position = vec4(attrVertex, 0, 1);\n }"),t.compileShader(a);var i=t.createShader(t.FRAGMENT_SHADER);if(t.shaderSource(i,"\n precision mediump float;\n varying vec2 varyinTexCoordinate;\n void main() {\n gl_FragColor = vec4(varyinTexCoordinate, 0, 1);\n }"),t.compileShader(i),t.attachShader(o,a),t.attachShader(o,i),t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS))return console.warn("WebGL program link error: ",t.getProgramInfoLog(o)),null;t.useProgram(o);var u=t.getAttribLocation(o,"attrVertex"),s=t.getUniformLocation(o,"uniformOffset");if(-1===u||!s)return null;t.enableVertexAttribArray(u),t.vertexAttribPointer(u,n.itemSize,t.FLOAT,!1,0,0),t.uniform2f(s,1,1),t.drawArrays(t.TRIANGLE_STRIP,0,n.numItems);try{var c=t.canvas;c.toDataURL&&e.push(c.toDataURL())}catch(t){console.warn("Canvas toDataURL error: ",t)}var l=t.getExtension("WEBGL_debug_renderer_info");if(l){var f=l.UNMASKED_VENDOR_WEBGL,d=l.UNMASKED_RENDERER_WEBGL;try{var h=t.getParameter(f),v=t.getParameter(d);h&&e.push(String(h)),v&&e.push(String(v))}catch(t){console.warn("Vendor/Renderer not accessible: ",t)}}var p=e.join("||");return{hash:b.hash(p),rawData:p||null}}var T,I=function(){var t,e=document.createElement("canvas").getContext("webgl");if(!e)return"test"!==process.env.NODE_ENV&&console.warn("WebGL not supported."),null;var n={};n.Extensions=e.getSupportedExtensions()||[];for(var r={ALIASED_LINE_WIDTH_RANGE:e.ALIASED_LINE_WIDTH_RANGE,ALIASED_POINT_SIZE_RANGE:e.ALIASED_POINT_SIZE_RANGE,MAX_TEXTURE_SIZE:e.MAX_TEXTURE_SIZE,MAX_CUBE_MAP_TEXTURE_SIZE:e.MAX_CUBE_MAP_TEXTURE_SIZE,MAX_RENDERBUFFER_SIZE:e.MAX_RENDERBUFFER_SIZE,MAX_VIEWPORT_DIMS:e.MAX_VIEWPORT_DIMS,MAX_VERTEX_ATTRIBS:e.MAX_VERTEX_ATTRIBS,MAX_VERTEX_UNIFORM_VECTORS:e.MAX_VERTEX_UNIFORM_VECTORS,MAX_VARYING_VECTORS:e.MAX_VARYING_VECTORS,MAX_COMBINED_TEXTURE_IMAGE_UNITS:e.MAX_COMBINED_TEXTURE_IMAGE_UNITS,MAX_VERTEX_TEXTURE_IMAGE_UNITS:e.MAX_VERTEX_TEXTURE_IMAGE_UNITS,MAX_TEXTURE_IMAGE_UNITS:e.MAX_TEXTURE_IMAGE_UNITS,MAX_FRAGMENT_UNIFORM_VECTORS:e.MAX_FRAGMENT_UNIFORM_VECTORS},o=[],a=0,i=Object.entries(r);a<i.length;a++){var u=i[a],s=u[0],c=u[1];try{var l=e.getParameter(c);o.push("".concat(s,"=").concat(l))}catch(t){o.push("".concat(s,"=unavailable"))}}var f=null,d=e.getExtension("EXT_texture_filter_anisotropic");if(d)try{f=e.getParameter(d.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}catch(t){f=null}return o.push("MAX_ANISOTROPY_EXT=".concat(f)),n.ExtensionParameters=o,n.AlphaBits=e.getParameter(e.ALPHA_BITS),n.GreenBits=e.getParameter(e.GREEN_BITS),n.BlueBits=e.getParameter(e.BLUE_BITS),n.DepthBits=e.getParameter(e.DEPTH_BITS),n.RedBits=e.getParameter(e.RED_BITS),n.ShadingLang=e.getParameter(e.SHADING_LANGUAGE_VERSION),n.Version=e.getParameter(e.VERSION),n.AntiAlias=(null===(t=e.getContextAttributes())||void 0===t?void 0:t.antialias)?1:0,n},R=function(){var t=document.createElement("canvas").getContext("webgl");if(!t)return"test"!==process.env.NODE_ENV&&console.warn("WebGL not supported."),null;for(var e={IsShader:!0},n={VertexShader:t.VERTEX_SHADER,FragmentShader:t.FRAGMENT_SHADER},r={LowFloat:t.LOW_FLOAT,MediumFloat:t.MEDIUM_FLOAT,HighFloat:t.HIGH_FLOAT,LowInt:t.LOW_INT,MediumInt:t.MEDIUM_INT,HighInt:t.HIGH_INT},o=0,a=Object.entries(n);o<a.length;o++)for(var i=a[o],u=i[0],s=i[1],c=0,l=Object.entries(r);c<l.length;c++){var f=l[c],d=f[0],h=f[1],v=t.getShaderPrecisionFormat(s,h);v?(e["".concat(u).concat(d,"Precision")]=v.precision.toString(),e["".concat(u).concat(d,"RangeMin")]=v.rangeMin.toString(),e["".concat(u).concat(d,"RangeMax")]=v.rangeMax.toString()):(console.warn("Could not retrieve ".concat(u," ").concat(d," precision format.")),e["".concat(u).concat(d,"Precision")]="N/A",e["".concat(u).concat(d,"RangeMin")]="N/A",e["".concat(u).concat(d,"RangeMax")]="N/A")}return e},x=function(t,r,o,a){return e(void 0,void 0,void 0,function(){var e,i;return n(this,function(n){switch(n.label){case 0:return n.trys.push([0,3,,4]),[4,fetch("https://api.fingertrace.app/api/".concat(t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fingerprint:r,workspace:o,api_key:a})})];case 1:if(!(e=n.sent()).ok)throw new Error("Error posting data to ".concat(t,": ").concat(e.statusText));return[4,e.json()];case 2:return[2,n.sent()];case 3:return i=n.sent(),console.error("Error posting data to ".concat(t,":"),i),[3,4];case 4:return[2]}})})},C=function(r,o,a,i,u){return e(void 0,void 0,void 0,function(){var e,s,c;return n(this,function(n){switch(n.label){case 0:e=t(t({},o),{fingerprint:a,workspace:i,api_key:u}),n.label=1;case 1:return n.trys.push([1,4,,5]),[4,fetch("https://api.fingertrace.app/api/".concat(r),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})];case 2:if(!(s=n.sent()).ok)throw new Error("Error posting attributes to ".concat(r,": ").concat(s.statusText));return[4,s.json()];case 3:return[2,n.sent()];case 4:return c=n.sent(),console.error("Error posting attributes to ".concat(r,":"),c),[3,5];case 5:return[2]}})})},B={exports:{}};T=B,function(){const t=t=>(new TextEncoder).encode(t);function e(e,n){let r,o,a,i,u,s,c,l;for("string"==typeof e&&(e=t(e)),r=3&e.length,o=e.length-r,a=n,u=3432918353,s=461845907,l=0;l<o;)c=255&e[l]|(255&e[++l])<<8|(255&e[++l])<<16|(255&e[++l])<<24,++l,c=(65535&c)*u+(((c>>>16)*u&65535)<<16)&4294967295,c=c<<15|c>>>17,c=(65535&c)*s+(((c>>>16)*s&65535)<<16)&4294967295,a^=c,a=a<<13|a>>>19,i=5*(65535&a)+((5*(a>>>16)&65535)<<16)&4294967295,a=27492+(65535&i)+(((i>>>16)+58964&65535)<<16);switch(c=0,r){case 3:c^=(255&e[l+2])<<16;case 2:c^=(255&e[l+1])<<8;case 1:c^=255&e[l],c=(65535&c)*u+(((c>>>16)*u&65535)<<16)&4294967295,c=c<<15|c>>>17,c=(65535&c)*s+(((c>>>16)*s&65535)<<16)&4294967295,a^=c}return a^=e.length,a^=a>>>16,a=2246822507*(65535&a)+((2246822507*(a>>>16)&65535)<<16)&4294967295,a^=a>>>13,a=3266489909*(65535&a)+((3266489909*(a>>>16)&65535)<<16)&4294967295,a^=a>>>16,a>>>0}const n=e;n.v2=function(e,n){"string"==typeof e&&(e=t(e));let r,o=e.length,a=n^o,i=0;for(;o>=4;)r=255&e[i]|(255&e[++i])<<8|(255&e[++i])<<16|(255&e[++i])<<24,r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16),r^=r>>>24,r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16),a=1540483477*(65535&a)+((1540483477*(a>>>16)&65535)<<16)^r,o-=4,++i;switch(o){case 3:a^=(255&e[i+2])<<16;case 2:a^=(255&e[i+1])<<8;case 1:a^=255&e[i],a=1540483477*(65535&a)+((1540483477*(a>>>16)&65535)<<16)}return a^=a>>>13,a=1540483477*(65535&a)+((1540483477*(a>>>16)&65535)<<16),a^=a>>>15,a>>>0},n.v3=e,T.exports=n}();var P,N,O=B.exports,U=function(t){P=t},D=function(t){N=t},L=function(){return e(void 0,void 0,void 0,function(){var r,a,i,u,s,c,l,d,h,v,p,g,E;return n(this,function(w){switch(w.label){case 0:return r=new Promise(function(t,e){o.run(function(n){n?t(n):e(new Error("Failed to generate fingerprint"))},!0)}),a=M(),i=_(),u={AVI:f("AVI"),DIF:f("DIF"),DV:f("DV"),M4U:f("M4U"),M4V:f("M4V"),MOV:f("MOV"),QT:f("QT"),MP4:f("MP4"),MPE:f("MPE"),OGG:f("OGG"),WEBM:f("WEBM"),HLS:f("HLS")},[4,e(void 0,void 0,void 0,function(){var t,e;return n(this,function(n){switch(n.label){case 0:return t=["Agency FB","American Typewriter","Andale Mono","Arabic Typesetting","Arial","Arial Black","Arial Narrow","Arial Rounded MT Bold","Arial Unicode MS","ARNO PRO","AvantGarde Bk BT","Avenir","Avenir Next","Avenir Next Condensed","Bahnschrift","BankGothic Md BT","Baskerville","Batang","Big Caslon","Bitstream Vera Sans Mono","Bodoni 72","Bodoni 72 Oldstyle","Bodoni 72 Smallcaps","Bradley Hand","Brush Script MT","Calibri","Cambria","Cambria Math","Candara","Century","Century Gothic","Chalkboard","Chalkboard SE","Chalkduster","Charter","Clarendon","Cochin","Comic Sans MS","Consolas","Constantia","Copperplate","Corbel","Courier","Courier New","DIN Alternate","DIN Condensed","Didot","Ebrima","EUROSTILE","Franklin Gothic","Franklin Gothic Medium","Futura","Futura Bk BT","Futura Md BT","Gabriola","Gadugi","Geneva","Georgia","Gill Sans","GOTHAM","Haettenschweiler","HELV","Helvetica","Helvetica Neue","Herculanum","Hoefler Text","HoloLens MDL2 Assets","Humanst521 BT","Impact","Ink Free","Javanese Text","Leelawadee","Leelawadee UI","Letter Gothic","Levenim MT","Lucida Bright","Lucida Console","Lucida Grande","Lucida Sans","Lucida Sans Unicode","Luminari","Malgun Gothic","Marker Felt","Marlett","Meiryo UI","Menlo","Microsoft Himalaya","Microsoft JhengHei","Microsoft New Tai Lue","Microsoft PhagsPa","Microsoft Sans Serif","Microsoft Tai Le","Microsoft Uighur","Microsoft YaHei","Microsoft Yi Baiti","MingLiU-ExtB","Minion Pro","Monaco","Mongolian Baiti","Monotype Corsiva","MS Gothic","MS Mincho","MS Outlook","MS Reference Specialty","MS UI Gothic","MT Extra","MV Boli","Myanmar Text","MYRIAD PRO","Nirmala UI","Noteworthy","Optima","Palatino","Palatino Linotype","Papyrus","Phosphate","PMingLiU","Pristina","Rockwell","sans-serif-thin","Savoye LET","SCRIPTINA","Segoe MDL2 Assets","Segoe Print","Segoe Script","Segoe UI","Segoe UI Emoji","Segoe UI Historic","Segoe UI Light","Segoe UI Symbol","Serifa","SignPainter","SimHei","SimSun","Sitka","Skia","Small Fonts","Snell Roundhand","Staccato222 BT","Sylfaen","Symbol","Tahoma","Times","Times New Roman","TRAJAN PRO","Trattatello","Trebuchet MS","Univers CE 55 Medium","Verdana","Vrinda","Webdings","Wingdings","Yu Gothic","Zapfino","ZWAdobeF"],e=new Set,[4,document.fonts.ready];case 1:return n.sent(),t.sort().forEach(function(t){document.fonts.check("48px '".concat(t,"'"))&&e.add(t)}),[2,Array.from(e)]}})})];case 1:if(s=w.sent(),A=function(t,e){return"function"==typeof t?t:e},S=function(){return 0},b=A(Math.acos,S),T=A(Math.acosh||function(t){return Math.log(t+Math.sqrt(t*t-1))},S),x=A(Math.asin,S),C=A(Math.asinh||function(t){return Math.log(t+Math.sqrt(t*t+1))},S),B=A(Math.atanh||function(t){return Math.log((1+t)/(1-t))/2},S),P=A(Math.atan,S),N=A(Math.sin,S),U=A(Math.sinh||function(t){return(Math.exp(t)-Math.exp(-t))/2},S),D=A(Math.cos,S),L=A(Math.cosh||function(t){return(Math.exp(t)+Math.exp(-t))/2},S),G=A(Math.tan,S),F=A(Math.tanh||function(t){return(Math.exp(2*t)-1)/(Math.exp(2*t)+1)},S),V=A(Math.exp,S),k=A(Math.expm1||function(t){return Math.exp(t)-1},S),X=A(Math.log1p||function(t){return Math.log(1+t)},S),W=Math.PI,m=1,H={acoshPf:Math.log(m+Math.sqrt(m*m-1)),asinhPf:Math.log(m+Math.sqrt(m*m+1)),atanhPf:Math.log((1+m)/(1-m))/2,sinhPf:(Math.exp(m)-Math.exp(-m))/2,coshPf:(Math.exp(m)+Math.exp(-m))/2,tanhPf:(Math.exp(2*m)-1)/(Math.exp(2*m)+1),expm1Pf:Math.exp(m)-1,log1pPf:Math.log(1+m),powPI:Math.pow(W,m)},c=t({acos:b(.12312423423423424),acosh:T(1e308),asin:x(.12312423423423424),asinh:C(1),atanh:B(.5),atan:P(.5),sin:N(-1e300),sinh:U(1),cos:D(10.000000000123),cosh:L(1),tan:G(-1e300),tanh:F(1),exp:V(1),expm1:k(1),log1p:X(10)},H),l=function(){var t=document.createElement("div"),e=t.style;e.position="absolute",e.left="3.1px",e.top="2.1px",e.zIndex="-100",e.visibility="hidden",e.fontSize="19.123px",e.transformOrigin="0.1px 0.2px 0.3px",e.webkitTransformOrigin="0.1px 0.2px 0.3px",e.webkitTransform="scale(1.01123) matrix3d(0.251106, 0.0131141, 0, -0.000109893, -0.0380797, 0.349552, 0, 7.97469e-06, 0, 0, 1, 0, 575, 88, 0, 1)",e.transform="scale(1.01123) matrix3d(0.251106, 0.0131141, 0, -0.000109893, -0.0380797, 0.349552, 0, 7.97469e-06, 0, 0, 1, 0, 575, 88, 0, 1)",t.innerHTML='<h1>Sed ut perspiciatis unde</h1>pousdfnmv<b>asd<i id="target">asd</i></b>',document.body.appendChild(t);var n="",r=document.getElementById("target"),o=r?r.getClientRects()[0]:null;if(o)for(var a in o)n+=o[a];return t.remove&&t.remove(),n}(),d=O.v3([r,a,i,l].join("|")),h=O.v3([u,s,c].join("|")),v=O.v3([I(),y(),R()].join("|")),(p=d.toString(36)+h.toString(36)+v.toString(36)).length>30)p=p.slice(0,30);else if(p.length<30){for(g=0;p.length<30;)E=O.v3(p+g).toString(36),p+=E,g++;p=p.slice(0,30)}return[2,p]}var m,A,S,b,T,x,C,B,P,N,U,D,L,G,F,V,k,X,W,H})})};function G(){return e(this,void 0,void 0,function(){var t,r,o,a,i,f=this;return n(this,function(_){switch(_.label){case 0:return t=function(){return e(f,void 0,void 0,function(){return n(this,function(t){switch(t.label){case 0:return[4,m()];case 1:return[2,t.sent().isPrivate]}})})},[4,L()];case 1:return r=_.sent(),[4,t()];case 2:o=_.sent(),a={fingerprint:r,device_type:c()?c().toString():"desktop/laptop",platform:h(),user_agent:p(),vendor:g(),webp_support:E(),browser_feature_support:(y="undefined"!=typeof CSS,A="undefined"!=typeof window,S="undefined"!=typeof navigator,{Fetch:A&&"fetch"in window,WebXr:S&&"xr"in navigator,OsCpu:S&&"oscpu"in navigator,WebRTC:A&&"RTCPeerConnection"in window,OnLine:S&&navigator.onLine,Gamepad:S&&"getGamepads"in navigator,Cookies:S&&navigator.cookieEnabled,WebWorker:"undefined"!=typeof Worker,IndexedDb:A&&"indexedDB"in window,PdfViewer:A&&"PDFViewerApplication"in window,ImageBitmap:A&&"createImageBitmap"in window,WebAssembly:A&&"WebAssembly"in window,Performance:A&&"performance"in window,AudioWorklet:A&&"AudioWorklet"in window,PluginSupport:S&&"plugins"in navigator,ServiceWorker:S&&"serviceWorker"in navigator,IsTouchScreen:A&&("ontouchstart"in window||navigator.maxTouchPoints>0),LocalStorage:A&&"localStorage"in window,IsJavaEnabled:S&&navigator.javaEnabled&&navigator.javaEnabled(),PaintWorklet:y&&"PaintWorklet"in CSS,CryptoSupport:A&&"crypto"in window,UserActivation:S&&"userActivation"in navigator,OffScreenCanvas:A&&"OffscreenCanvas"in window,BroadCastChannel:A&&"BroadcastChannel"in window,AnimationWorklet:y&&"AnimationWorklet"in CSS,Battery:S&&"getBattery"in navigator?null:"Battery not supported"}),color_depth:u().toString(),color_gamut:s(),feature_policies:l(),navigator_properties:d(),time_zone:v(),bar_visibility:w(),created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()},_.label=3;case 3:return _.trys.push([3,6,,7]),[4,x("fingerprints",r,P,N)];case 4:return _.sent(),[4,C("deviceinfo",a,r,P,N)];case 5:return _.sent(),[3,7];case 6:return i=_.sent(),console.error("Error posting data:",i),[3,7];case 7:return[2,{fingerprint:r,isIncognito:o}]}var y,A,S})})}export{G as FingerprintSDK,D as SetApiKey,U as SetWorkspaceId,G as default};
//# sourceMappingURL=index.esm.js.map