ibp-tms 1.0.68 → 1.0.69
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/package.json +1 -1
- package/tms.js +1 -1
- package/tms.js.map +1 -1
package/package.json
CHANGED
package/tms.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(self,(()=>(function(){let t,e,n=[],o=null,i=0,d=0,l=20,r=null,a=null,u=null,c=2;function s(o,i){const d=Date.now();if(t&&e){const l=o-t.x,r=i-t.y,a=d-e,u=Math.sqrt(l*l+r*r)/a;n.push({dx:l,dy:r,dt:a,velocity:u}),n.length>100&&n.shift()}t={x:o,y:i},e=d}function h(){if(navigator.webdriver||window.chrome?.runtime?.sendMessage||/HeadlessChrome|Chrome-Lighthouse/i.test(navigator.userAgent))return 1e3;if(0==navigator.languages?.length)return 500;try{const t=document.createElement("canvas"),e=t.getContext("webgl")||t.getContext("experimental-webgl"),n=["SwiftShader","llvmpipe","softpipe","swrast","Basic Render Driver"];if(e){const t=e.getExtension("WEBGL_debug_renderer_info"),o=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER);if(n.some((t=>o.toLowerCase().includes(t.toLowerCase()))))return 700}}catch(e){}let t=!1;const e=new Error;if(Object.defineProperty(e,"stack",{get(){t=!0}}),t)return 500;try{const t="__ls_test__",e=window.localStorage;e.setItem(t,"1"),e.removeItem(t)}catch(e){return 300}let n=document.cookie.match("AGIDs?=s?(?<MM>\\d{2})(?<dd>\\d{2})(?<yyyy>\\d{4})(?<HH>\\d{2})(?<mm>\\d{2})(?<ss>\\d{2})(?<fffff>\\d{5})");if(!n||null==n||!n.groups)return 300;let o=new Date(Date.parse(`${n.groups.yyyy}-${n.groups.MM}-${n.groups.dd}T${n.groups.HH}:${n.groups.mm}:${n.groups.ss}.${n.groups.fffff}Z`)),i=new Date,d=Math.abs(i.getTime()-o.getTime()),l=v();return d>1e4&&(null==l||!l.count)?300:!("ontouchstart"in window)&&navigator.maxTouchPoints>0?400:null!=l&&l.domain&&-1==window.location.indexOf(l.domain)||null!=u&&-1==window.location.indexOf(u)?101:y()?100:0}function m(t){if(i>0&&(t=i),n.length-d<(t||l))return!1;d=n.length-1;let e=n.some(((t,e,n)=>e>0&&Math.abs(t.velocity-n[e-1].velocity)>.05)),o=n.some(((t,e,n)=>e>1&&(Math.abs(t.dx-n[e-1].dx)>.1||Math.abs(t.dy-n[e-1].dy)>.1))),r=n.some((t=>t.dt>50&&t.dt<500));return e&&o&&r}function f(t,e){let n=m();if(n||t||e||i>0){var o=t&&!n?function(){let t=v(),e=null;return null!=t&&t.hash&&(e=t.hash,delete t.hash,p(t)),e}():w(e||i);if(null==o||c<=0)return;let l="/tfp/"+o+".png";var d=new Image;d.onload=function(){if(!document.body.hasAttribute("r-id")&&function(t,e={}){const n=e.threshold??20,o=e.ratio??.95,i=t.naturalWidth,d=t.naturalHeight,l=200,r=Math.min(1,l/Math.max(i,d)),a=document.createElement("canvas");a.width=Math.max(1,Math.floor(i*r)),a.height=Math.max(1,Math.floor(d*r));const u=a.getContext("2d");u.drawImage(t,0,0,a.width,a.height);const{data:c,width:s,height:h}=u.getImageData(0,0,a.width,a.height),m=s*h;let f=0;for(let t=0;t<c.length;t+=4){const e=c[t],o=c[t+1],i=c[t+2];0!==c[t+3]&&(Math.max(e,o,i)<=n&&f++)}return f/m>=o}(d)){let t=v();null!=t&&t.token&&"UN"!=t.token&&new Promise(((t,e)=>{try{fetch("/traffic/id",{method:"GET"}).then((t=>t.json())).then((n=>{if(n&&n.id){let e=v();null==e&&(e={}),e.id=n.id,e.uid=n.id,r=n.id,p(e),t(n.id)}else e()})).catch((t=>{e()}))}catch(t){e()}})).then((e=>{t.token||(t.token="NA",p(t))})).catch((e=>{t.token="UN",p(t)}))}},d.onerror=function(){if(c<=0)return;c--;let t=(document.querySelector('meta[property="og:url"]')?document.querySelector('meta[property="og:url"]').getAttribute("content"):window.location.href).match(/^(?:https?:\/\/)?(?:www\.)?([^\/]+)/i),e=t?t[0]:null;null!=e&&(d.src=e+l)},d.src=l}}function g(){if(m()){let t=v();null==t&&(t={}),t.hash=w(i),p(t)}}function w(t){let e=0==t?function(t){let e=0,n=0,o=0,i=0,d=[];t.forEach((t=>{e+=t.dx,n+=t.dy,o+=t.dt;let l=Math.sqrt(t.dx*t.dx+t.dy*t.dy);i+=l,d.push(l/(t.dt||1e-5))}));let l=d.length?d.reduce(((t,e)=>t+e),0)/d.length:0,r=Math.atan2(n,e);return[Math.round(255*Math.min(1,l/5)),Math.round(255*(r+Math.PI)/(2*Math.PI)),Math.round(255*Math.min(1,i/100))]}(n):[0,0,0],i=0==t?function(t,e,n){const o=.299*t+.587*e+.114*n;return Math.round(o/255*100)}(e[0],e[1],e[2]):1==t?1:-1,d=o&&o.id?"U-"+o.id:"UN";return btoa(`${d}|${i}|${e[0]}|${e[1]}|${e[2]}|${t??0}`).replace(/[^A-z0-9\.]/gi,"-e")}function v(){return null==window.localStorage.getItem("TSM")?null:JSON.parse(window.localStorage.getItem("TSM"))}function y(){return null!=a&&null!=r&&btoa("U-"+atob(r))!=atob(a)}function p(t){return window.localStorage.setItem("TSM",JSON.stringify(t)),!0}let M=0;function E(t){f(t),M++,M<10&&setTimeout((()=>{E(!1)}),5e3*M)}function b(){E(!0),document.addEventListener("click",(()=>{f(!1)})),document.addEventListener("touchend",(()=>{f(!1)})),window.addEventListener("beforeunload",(()=>{g()})),document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState&&g()}))}function x(){o=v();let t=document.getElementById("agTSM");if(null!=t){let e=JSON.parse(t.textContent);null!=e&&(null!=o&&o.id&&o.uid&&o.id==e.id||(null==o&&(o={}),o.uid=o.id=e.id,p(o)))}return null!=o&&o.uid&&(r=o.uid,a=null==window.localStorage.getItem("AGSTREAM")?null:window.localStorage.getItem("AGSTREAM")),null!=t}function S(){y()&&(i=h(),f(!1,-1))}!function(){if(x()&&document.addEventListener("DOMContentLoaded",(()=>{x(),S()})),document&&document.body&&null!=document.body&&document.body.hasAttribute("r-id"))document.body.addEventListener("ag.tsm.valid",(t=>{let e=v();null==e&&(e={}),e.token=t.detail.token,e.id=t.detail.id,p(e)}));else{i=h(),l="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0?2:20,null!=o&&o.valid||(document.addEventListener("mousemove",(t=>s(t.clientX,t.clientY))),document.addEventListener("mousedown",(t=>s(t.clientX,t.clientY))),document.addEventListener("touchstart",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("touchend",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("touchmove",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("scroll",(t=>{s(window.scrollX,window.scrollY)})),b());let t=v();null==t&&(t={}),t.count?t.count++:t.count=1,t.count<10&&p(t),window.addEventListener("ag.event.stream",(t=>{a=t.detail.streamKey,S()})),window.agEvent&&window.dispatchEvent(new CustomEvent("ag.event.stream.update"))}}()}(),{})));
|
|
1
|
+
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(self,(()=>(function(){let t,e,n=[],o=null,i=0,d=0,l=20,r=null,a=null,u=null,c=2;function s(o,i){const d=Date.now();if(t&&e){const l=o-t.x,r=i-t.y,a=d-e,u=Math.sqrt(l*l+r*r)/a;n.push({dx:l,dy:r,dt:a,velocity:u}),n.length>100&&n.shift()}t={x:o,y:i},e=d}function h(){if(navigator.webdriver||window.chrome?.runtime?.sendMessage||/HeadlessChrome|Chrome-Lighthouse/i.test(navigator.userAgent))return 1e3;if(0==navigator.languages?.length)return 500;try{const t=document.createElement("canvas"),e=t.getContext("webgl")||t.getContext("experimental-webgl"),n=["SwiftShader","llvmpipe","softpipe","swrast","Basic Render Driver"];if(e){const t=e.getExtension("WEBGL_debug_renderer_info"),o=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER);if(n.some((t=>o.toLowerCase().includes(t.toLowerCase()))))return 700}}catch(e){}let t=!1;const e=new Error;if(Object.defineProperty(e,"stack",{get(){t=!0}}),t)return 500;try{const t="__ls_test__",e=window.localStorage;e.setItem(t,"1"),e.removeItem(t)}catch(e){return 300}let n=document.cookie.match("AGIDs?=s?(?<MM>\\d{2})(?<dd>\\d{2})(?<yyyy>\\d{4})(?<HH>\\d{2})(?<mm>\\d{2})(?<ss>\\d{2})(?<fffff>\\d{5})");if(!n||null==n||!n.groups)return 300;let o=new Date(Date.parse(`${n.groups.yyyy}-${n.groups.MM}-${n.groups.dd}T${n.groups.HH}:${n.groups.mm}:${n.groups.ss}.${n.groups.fffff}Z`)),i=new Date,d=Math.abs(i.getTime()-o.getTime()),l=v();return d>1e4&&(null==l||!l.count)?300:!("ontouchstart"in window)&&navigator.maxTouchPoints>0?400:null!=l&&l.domain&&-1==window.location.indexOf(l.domain)||null!=u&&-1==window.location.indexOf(u)?101:y()?100:0}function m(t){if(i>0&&(t=i),n.length-d<(t||l))return!1;d=n.length-1;let e=n.some(((t,e,n)=>e>0&&Math.abs(t.velocity-n[e-1].velocity)>.05)),o=n.some(((t,e,n)=>e>1&&(Math.abs(t.dx-n[e-1].dx)>.1||Math.abs(t.dy-n[e-1].dy)>.1))),r=n.some((t=>t.dt>50&&t.dt<500));return e&&o&&r}function f(t,e){let n=m();if(n||t||e||i>0){var o=t&&!n?function(){let t=v(),e=null;return null!=t&&t.hash&&(e=t.hash,delete t.hash,p(t)),e}():w(e||i);if(null==o||c<=0)return;let l="/tfp/"+o+".png";var d=new Image;d.onload=function(){if(!document.body.hasAttribute("r-id")&&function(t,e={}){const n=e.threshold??20,o=e.ratio??.95,i=t.naturalWidth,d=t.naturalHeight,l=200,r=Math.min(1,l/Math.max(i,d)),a=document.createElement("canvas");a.width=Math.max(1,Math.floor(i*r)),a.height=Math.max(1,Math.floor(d*r));const u=a.getContext("2d");u.drawImage(t,0,0,a.width,a.height);const{data:c,width:s,height:h}=u.getImageData(0,0,a.width,a.height),m=s*h;let f=0;for(let t=0;t<c.length;t+=4){const e=c[t],o=c[t+1],i=c[t+2];0!==c[t+3]&&(Math.max(e,o,i)<=n&&f++)}return f/m>=o}(d)){let t=v();null!=t&&t.token&&"UN"!=t.token&&"NA"!=t.token&&new Promise(((t,e)=>{try{fetch("/traffic/id",{method:"GET"}).then((t=>t.json())).then((n=>{if(n&&n.id){let e=v();null==e&&(e={}),e.id=n.id,e.uid=n.id,r=n.id,p(e),t(n.id)}else e()})).catch((t=>{e()}))}catch(t){e()}})).then((e=>{t.token||(t.token="NA",p(t))})).catch((e=>{t.token="UN",p(t)}))}},d.onerror=function(){if(c<=0)return;c--;let t=(document.querySelector('meta[property="og:url"]')?document.querySelector('meta[property="og:url"]').getAttribute("content"):window.location.href).match(/^(?:https?:\/\/)?(?:www\.)?([^\/]+)/i),e=t?t[0]:null;null!=e&&(d.src=e+l)},d.src=l}}function g(){if(m()){let t=v();null==t&&(t={}),t.hash=w(i),p(t)}}function w(t){let e=0==t?function(t){let e=0,n=0,o=0,i=0,d=[];t.forEach((t=>{e+=t.dx,n+=t.dy,o+=t.dt;let l=Math.sqrt(t.dx*t.dx+t.dy*t.dy);i+=l,d.push(l/(t.dt||1e-5))}));let l=d.length?d.reduce(((t,e)=>t+e),0)/d.length:0,r=Math.atan2(n,e);return[Math.round(255*Math.min(1,l/5)),Math.round(255*(r+Math.PI)/(2*Math.PI)),Math.round(255*Math.min(1,i/100))]}(n):[0,0,0],i=0==t?function(t,e,n){const o=.299*t+.587*e+.114*n;return Math.round(o/255*100)}(e[0],e[1],e[2]):1==t?1:-1,d=o&&o.id?"U-"+o.id:"UN";return btoa(`${d}|${i}|${e[0]}|${e[1]}|${e[2]}|${t??0}`).replace(/[^A-z0-9\.]/gi,"-e")}function v(){return null==window.localStorage.getItem("TSM")?null:JSON.parse(window.localStorage.getItem("TSM"))}function y(){return null!=a&&null!=r&&btoa("U-"+atob(r))!=atob(a)}function p(t){return window.localStorage.setItem("TSM",JSON.stringify(t)),!0}let M=0;function E(t){f(t),M++,M<10&&setTimeout((()=>{E(!1)}),5e3*M)}function b(){E(!0),document.addEventListener("click",(()=>{f(!1)})),document.addEventListener("touchend",(()=>{f(!1)})),window.addEventListener("beforeunload",(()=>{g()})),document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState&&g()}))}function x(){o=v();let t=document.getElementById("agTSM");if(null!=t){let e=JSON.parse(t.textContent);null!=e&&(null!=o&&o.id&&o.uid&&o.id==e.id||(null==o&&(o={}),o.uid=o.id=e.id,p(o)))}return null!=o&&o.uid&&(r=o.uid,a=null==window.localStorage.getItem("AGSTREAM")?null:window.localStorage.getItem("AGSTREAM")),null!=t}function S(){y()&&(i=h(),f(!1,-1))}!function(){if(x()&&document.addEventListener("DOMContentLoaded",(()=>{x(),S()})),document&&document.body&&null!=document.body&&document.body.hasAttribute("r-id"))document.body.addEventListener("ag.tsm.valid",(t=>{let e=v();null==e&&(e={}),e.token=t.detail.token,e.id=t.detail.id,p(e)}));else{i=h(),l="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0?2:20,null!=o&&o.valid||(document.addEventListener("mousemove",(t=>s(t.clientX,t.clientY))),document.addEventListener("mousedown",(t=>s(t.clientX,t.clientY))),document.addEventListener("touchstart",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("touchend",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("touchmove",(t=>{const e=t.touches[0];e&&e.clientX&&s(e.clientX,e.clientY)})),document.addEventListener("scroll",(t=>{s(window.scrollX,window.scrollY)})),b());let t=v();null==t&&(t={}),t.count?t.count++:t.count=1,t.count<10&&p(t),window.addEventListener("ag.event.stream",(t=>{a=t.detail.streamKey,S()})),window.agEvent&&window.dispatchEvent(new CustomEvent("ag.event.stream.update"))}}()}(),{})));
|
package/tms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tms.js","mappings":"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","sources":["webpack:///webpack/universalModuleDefinition","webpack:///./src/tms.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, () => {\nreturn ","(function(){\r\n \r\n \r\n let movements = [];\r\n\r\n let tsm = null;\r\n\r\n let lastPos;\r\n\r\n let lastTime;\r\n\r\n let suspectScore = 0;\r\n\r\n let lastLength = 0;\r\n\r\n let defaultLimit = 20;\r\n\r\n let tmsUserID = null;\r\n\r\n let streamUserID = null;\r\n\r\n let currentDomain = null;\r\n\r\n let isUserIDUpdated = false;\r\n\r\n let updateError = 2;\r\n\r\n const isTouchCapable = () => {\r\n return (\r\n 'ontouchstart' in window ||\r\n navigator.maxTouchPoints > 0 ||\r\n navigator.msMaxTouchPoints > 0 // For older IE\r\n );\r\n };\r\n \r\n function getSignature() {\r\n\r\n var singnatureSamples = movements.filter((x, i) => { return i < 16 });\r\n var signatureValue = singnatureSamples.reduce((x, y, i) => {\r\n return x + '|' + Math.round(y.dx + y.dy + y.dt + y.velocity);\r\n }, '');\r\n return btoa(signatureValue);\r\n }\r\n\r\n function recordMovement(x, y) {\r\n const now = Date.now();\r\n if (lastPos && lastTime) {\r\n const dx = x - lastPos.x;\r\n const dy = y - lastPos.y;\r\n const dt = now - lastTime;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n const velocity = distance / dt;\r\n movements.push({ dx, dy, dt, velocity });\r\n if(movements.length>100)movements.shift();\r\n }\r\n lastPos = { x, y };\r\n lastTime = now;\r\n }\r\n\r\n function huristicAdaption(points) {\r\n let totalDx = 0, totalDy = 0, totalDt = 0;\r\n let totalDist = 0;\r\n let velocities = [];\r\n points.forEach(p => {\r\n totalDx += p.dx;\r\n totalDy += p.dy;\r\n totalDt += p.dt;\r\n let dist = Math.sqrt(p.dx * p.dx + p.dy * p.dy);\r\n totalDist += dist;\r\n velocities.push(dist / (p.dt || 1e-5)); // avoid divide by zero\r\n });\r\n // Feature extraction\r\n let avgVel = velocities.length ? velocities.reduce((a, b) => a + b, 0) / velocities.length : 0;\r\n let direction = Math.atan2(totalDy, totalDx); // angle in radians, -π to π\r\n\r\n // Non-linear scaling and normalization\r\n // velocity: [0, max], direction: [-π, π], totalDist: scale as you wish\r\n let r = Math.round(255 * Math.min(1, avgVel / 5)); // scale velocity, or use other non-linear (logistic, sqrt, etc)\r\n let g = Math.round(255 * (direction + Math.PI) / (2 * Math.PI)); // normalize angle to [0,1]\r\n let b = Math.round(255 * Math.min(1, totalDist / 100)); // scale total distance, or another feature\r\n\r\n return [r, g, b];\r\n }\r\n\r\n\r\n function rgbToGrayWight(r, g, b) {\r\n const gray = 0.299 * r + 0.587 * g + 0.114 * b; // Accurate grayscale\r\n return Math.round(gray / 255 * 100); // Scale to 0-100\r\n }\r\n\r\n\r\n\r\n\r\n function onRecord()\r\n {\r\n document.addEventListener(\"mousemove\", e => recordMovement(e.clientX, e.clientY));\r\n document.addEventListener(\"mousedown\", e => recordMovement(e.clientX, e.clientY));\r\n document.addEventListener(\"touchstart\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchend\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchmove\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"scroll\", e=>{ \r\n recordMovement(window.scrollX, window.scrollY);\r\n });\r\n }\r\n\r\n function getSuspectAutomationScore(){\r\n if(navigator.webdriver|| window.chrome?.runtime?.sendMessage ||/HeadlessChrome|Chrome-Lighthouse/i.test(navigator.userAgent))return 1000;\r\n if(navigator.languages?.length==0)return 500;\r\n try {\r\n const canvas = document.createElement('canvas');\r\n const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\r\n const softwareRenderers = ['SwiftShader', 'llvmpipe', 'softpipe', 'swrast', 'Basic Render Driver'];\r\n if (gl) {\r\n const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');\r\n const renderer = debugInfo ? gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) : gl.getParameter(gl.RENDERER); \r\n if (softwareRenderers.some(r=>renderer.toLowerCase().includes(r.toLowerCase()))) {\r\n return 700;\r\n }\r\n }\r\n } catch (e) { \r\n }\r\n let cdpDetected = false;\r\n const e = new Error();\r\n Object.defineProperty(e, 'stack', {\r\n get() {\r\n cdpDetected = true;\r\n }\r\n });\r\n if(cdpDetected)\r\n return 500;\r\n\r\n \r\n try {\r\n const key = '__ls_test__';\r\n const storage = window.localStorage;\r\n storage.setItem(key, '1');\r\n storage.removeItem(key);\r\n } catch (e) { \r\n return 300;\r\n }\r\n\r\n let primaryCookie = document.cookie.match(('AGID\\s?\\=\\s?(?<MM>\\\\d{2})(?<dd>\\\\d{2})(?<yyyy>\\\\d{4})(?<HH>\\\\d{2})(?<mm>\\\\d{2})(?<ss>\\\\d{2})(?<fffff>\\\\d{5})'));\r\n if(!primaryCookie || primaryCookie==null || !primaryCookie.groups) return 300;\r\n let cookieDate = new Date(Date.parse(`${primaryCookie.groups.yyyy}-${primaryCookie.groups.MM}-${primaryCookie.groups.dd}T${primaryCookie.groups.HH}:${primaryCookie.groups.mm}:${primaryCookie.groups.ss}.${primaryCookie.groups.fffff}Z`));\r\n let currentDate = new Date();\r\n let timeDiff = Math.abs(currentDate.getTime() - cookieDate.getTime()); \r\n let currentValue = getCurrentValue();\r\n if(timeDiff>10*1000&&(currentValue==null||!currentValue.count))return 300; \r\n //if(!(window.innerWidth==window.outerWidth&&window.innerHeight==window.outerHeight))return 400;\r\n if(!('ontouchstart' in window)&&navigator.maxTouchPoints>0)return 400; \r\n if((currentValue!=null&¤tValue.domain&&window.location.indexOf(currentValue.domain)==-1)||(currentDomain!=null&&window.location.indexOf(currentDomain)==-1))return 101;\r\n if(suspectVPN())return 100; \r\n return 0;\r\n }\r\n\r\n function isHuman(limit) {\r\n if(suspectScore>0)limit = suspectScore;\r\n if (movements.length - lastLength < (limit?limit:defaultLimit)) return false;\r\n lastLength = movements.length - 1;\r\n let varying = movements.some((m, i, arr) => i > 0 && (Math.abs(m.velocity - arr[i - 1].velocity) > 0.05));\r\n let nonLinear = movements.some((m, i, arr) => i > 1 && (Math.abs(m.dx - arr[i - 1].dx) > 0.1 || Math.abs(m.dy - arr[i - 1].dy) > 0.1));\r\n let irregular = movements.some(m => m.dt > 50 && m.dt < 500); \r\n return varying && nonLinear && irregular;\r\n }\r\n\r\n function halucinateClient(){\r\n //updateScore(false,-1);\r\n }\r\n\r\n function updateId(){\r\n return new Promise((idresolve,idreject)=>{\r\n try{\r\n fetch('/traffic/id',{method:'GET'}).then(res=>res.json()).then(data=>{\r\n if(data && data.id){\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.id = data.id;\r\n currentValue.uid = data.id;\r\n tmsUserID = data.id;\r\n setCurrentValue(currentValue);\r\n idresolve(data.id);\r\n }else{\r\n halucinateClient();\r\n idreject();\r\n }\r\n }).catch(ex=>{ halucinateClient();idreject();});\r\n }catch(ex){ halucinateClient();idreject(); }\r\n });\r\n }\r\n\r\n function getUId(){\r\n return new Promise((idresolve,idreject)=>{\r\n try{\r\n fetch('/traffic/uid',{method:'GET'}).then(res=>res.json()).then(data=>{\r\n if(data && data.id){\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.uid = data.id;\r\n currentValue.domain = data.domain;\r\n tmsUserID = data.id;\r\n currentDomain = data.domain;\r\n setCurrentValue(currentValue);\r\n idresolve(tmsUserID);\r\n }else{\r\n idresolve('MC4wLjAuMA==');\r\n }\r\n }).catch(ex=>{ idresolve('MC4wLjAuMA=='); });\r\n }catch(ex){ idresolve('MC4wLjAuMA=='); }\r\n });\r\n }\r\n\r\n function webScrapRequestReminder(){\r\n // Disabled\r\n }\r\n\r\n function updateScore(isInit,forcedScoreToUpdate){\r\n let isHumanResult = isHuman();\r\n if(isHumanResult||isInit||forcedScoreToUpdate||suspectScore>0){ \r\n var hashValue = isInit&&!isHumanResult?getScoreFromLocal():getHash(forcedScoreToUpdate?forcedScoreToUpdate:suspectScore); \r\n if(hashValue==null||updateError<=0)return;\r\n let src = \"/tfp/\"+hashValue+'.png';\r\n var image = new Image();\r\n image.onload = function() {\r\n if(!document.body.hasAttribute('r-id') && isImageMostlyBlack(image)){\r\n let curretValue = getCurrentValue();\r\n //Disabled for reduce hits\r\n //if(!curretValue.token||(curretValue.token&&curretValue.token!='UN')){\r\n if(curretValue!=null&&curretValue.token&&curretValue.token!='UN'){\r\n {\r\n updateId().then(data=>{\r\n if(!curretValue.token)\r\n {\r\n curretValue.token='NA';\r\n setCurrentValue(curretValue);\r\n }\r\n }).catch(e=>{\r\n curretValue.token='UN';\r\n setCurrentValue(curretValue);\r\n });\r\n }\r\n }\r\n }else{\r\n\r\n }\r\n if(suspectScore>0){\r\n webScrapRequestReminder();\r\n }\r\n };\r\n image.onerror = function() {\r\n if(updateError<=0) return;\r\n updateError--; \r\n let shareUrl = document.querySelector('meta[property=\"og:url\"]') ? document.querySelector('meta[property=\"og:url\"]').getAttribute(\"content\") : window.location.href;\r\n let domainExtractedMatch = shareUrl.match(/^(?:https?:\\/\\/)?(?:www\\.)?([^\\/]+)/i);\r\n let domainExtracted = domainExtractedMatch ? domainExtractedMatch[0] : null;\r\n if(domainExtracted!=null){\r\n image.src = domainExtracted+src;\r\n }\r\n };\r\n image.src = src;\r\n } \r\n }\r\n\r\n function updateScoreToLocal(){\r\n if(isHuman()){ \r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.hash = getHash(suspectScore);\r\n setCurrentValue(currentValue);\r\n }\r\n }\r\n\r\n function getScoreFromLocal(){\r\n let currentValue = getCurrentValue();\r\n let valueToSend = null;\r\n if(currentValue!=null&¤tValue.hash)\r\n {\r\n valueToSend = currentValue.hash;\r\n delete currentValue.hash;\r\n setCurrentValue(currentValue);\r\n }\r\n return valueToSend;\r\n }\r\n\r\n function getHash(suspectScoreDetected){\r\n let rgb = suspectScoreDetected==0?huristicAdaption(movements):[0,0,0];\r\n let score = suspectScoreDetected==0?rgbToGrayWight(rgb[0],rgb[1],rgb[2]):(suspectScoreDetected==1?1:-1); \r\n let id = tsm && tsm.id ?'U-'+ tsm.id : 'UN';\r\n return btoa(`${id}|${score}|${rgb[0]}|${rgb[1]}|${rgb[2]}|${suspectScoreDetected??0}`).replace(/[^A-z0-9\\.]/gi,'-e');\r\n }\r\n\r\n function getCurrentValue()\r\n {\r\n if(window.localStorage.getItem(\"TSM\")==null)return null;\r\n return JSON.parse(window.localStorage.getItem(\"TSM\"));\r\n }\r\n\r\n function suspectVPN(){\r\n if(streamUserID!=null&&tmsUserID!=null&&btoa('U-'+atob(tmsUserID))!=atob(streamUserID))return true;\r\n return false;\r\n }\r\n\r\n function getCurrentEventStreamID(){\r\n if(window.localStorage.getItem(\"AGSTREAM\")==null)return null;\r\n return window.localStorage.getItem(\"AGSTREAM\");\r\n }\r\n\r\n function setCurrentValue(value)\r\n {\r\n window.localStorage.setItem(\"TSM\", JSON.stringify(value));\r\n return true;\r\n }\r\n\r\n function isImageMostlyBlack(image, opts = {}) {\r\n const threshold = opts.threshold ?? 20; // 0–255, max brightness to count as black\r\n const ratio = opts.ratio ?? 0.95; // fraction of pixels that must be black\r\n\r\n const w = image.naturalWidth;\r\n const h = image.naturalHeight;\r\n\r\n // Downscale to speed up: sample at most 200x200\r\n const maxSize = 200;\r\n const scale = Math.min(1, maxSize / Math.max(w, h));\r\n\r\n const canvas = document.createElement('canvas');\r\n canvas.width = Math.max(1, Math.floor(w * scale));\r\n canvas.height = Math.max(1, Math.floor(h * scale));\r\n const ctx = canvas.getContext('2d');\r\n\r\n ctx.drawImage(image, 0, 0, canvas.width, canvas.height);\r\n\r\n const { data, width, height } = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n const totalPixels = width * height;\r\n\r\n let blackPixels = 0;\r\n for (let i = 0; i < data.length; i += 4) {\r\n const r = data[i];\r\n const g = data[i + 1];\r\n const b = data[i + 2];\r\n const a = data[i + 3];\r\n\r\n // Treat transparent pixels as non‑black (optional)\r\n if (a === 0) continue;\r\n\r\n // brightness via simple max channel\r\n const brightness = Math.max(r, g, b);\r\n\r\n if (brightness <= threshold) {\r\n blackPixels++;\r\n }\r\n }\r\n\r\n return blackPixels / totalPixels >= ratio;\r\n }\r\n\r\n let startPeriod = 5000;\r\n let startIndex = 10;\r\n let currentIndex = 0;\r\n\r\n function autoUpdate(isInit){\r\n updateScore(isInit);\r\n currentIndex++;\r\n if(currentIndex<startIndex)\r\n setTimeout(() => {\r\n autoUpdate(false); \r\n }, startPeriod*currentIndex);\r\n }\r\n\r\n function start(){\r\n autoUpdate(true);\r\n document.addEventListener('click',()=>{updateScore(false);});\r\n document.addEventListener('touchend',()=>{updateScore(false);}); \r\n window.addEventListener('beforeunload',()=>{updateScoreToLocal();});\r\n document.addEventListener(\"visibilitychange\", () => {\r\n if (document.visibilityState === \"hidden\") {\r\n updateScoreToLocal();\r\n }\r\n }); \r\n }\r\n\r\n function attachListener(){\r\n document.body.addEventListener('ag.tsm.valid',(e)=>{\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.token = e.detail.token;\r\n currentValue.id = e.detail.id;\r\n setCurrentValue(currentValue);\r\n });\r\n }\r\n\r\n function updateTSM(){\r\n tsm = getCurrentValue(); \r\n let tsmElement = document.getElementById('agTSM');\r\n if(tsmElement!=null){\r\n let tsmValue = JSON.parse(tsmElement.textContent);\r\n if(tsmValue!=null){\r\n if(tsm == null || !tsm.id || !tsm.uid || tsm.id!=tsmValue.id){\r\n if(tsm==null)tsm={};\r\n tsm.uid = tsm.id = tsmValue.id;\r\n setCurrentValue(tsm);\r\n }\r\n }\r\n }\r\n if(tsm!=null&&tsm.uid){\r\n tmsUserID = tsm.uid;\r\n streamUserID = getCurrentEventStreamID();\r\n }\r\n return tsmElement!=null;\r\n }\r\n\r\n function afterUpdatingUserID(){\r\n if(suspectVPN()){\r\n suspectScore = getSuspectAutomationScore();\r\n updateScore(false,-1);\r\n } \r\n }\r\n\r\n function init(){\r\n \r\n if(updateTSM()){\r\n document.addEventListener('DOMContentLoaded',()=>{\r\n updateTSM();\r\n afterUpdatingUserID();\r\n });\r\n }\r\n \r\n if(document && document.body && document.body!=null && document.body.hasAttribute('r-id')){\r\n attachListener();\r\n }\r\n else{\r\n suspectScore = getSuspectAutomationScore();\r\n defaultLimit = isTouchCapable()?2:20;\r\n if(tsm==null||!tsm.valid){\r\n onRecord();\r\n start();\r\n }\r\n\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n if(currentValue.count)currentValue.count++;\r\n else currentValue.count=1;\r\n if(currentValue.count<10)\r\n setCurrentValue(currentValue);\r\n\r\n window.addEventListener('ag.event.stream',(e)=>{\r\n streamUserID = e.detail.streamKey;\r\n afterUpdatingUserID();\r\n }); \r\n if(window.agEvent){\r\n window.dispatchEvent(new CustomEvent('ag.event.stream.update'));\r\n }\r\n }\r\n }\r\n \r\n init();\r\n\r\n})();\r\n\r\n\r\n"],"names":["root","factory","exports","module","define","amd","a","i","self","lastPos","lastTime","movements","tsm","suspectScore","lastLength","defaultLimit","tmsUserID","streamUserID","currentDomain","updateError","recordMovement","x","y","now","Date","dx","dy","dt","velocity","Math","sqrt","push","length","shift","getSuspectAutomationScore","navigator","webdriver","window","chrome","runtime","sendMessage","test","userAgent","languages","canvas","document","createElement","gl","getContext","softwareRenderers","debugInfo","getExtension","renderer","getParameter","UNMASKED_RENDERER_WEBGL","RENDERER","some","r","toLowerCase","includes","e","cdpDetected","Error","Object","defineProperty","get","key","storage","localStorage","setItem","removeItem","primaryCookie","cookie","match","groups","cookieDate","parse","yyyy","MM","dd","HH","mm","ss","fffff","currentDate","timeDiff","abs","getTime","currentValue","getCurrentValue","count","maxTouchPoints","domain","location","indexOf","suspectVPN","isHuman","limit","varying","m","arr","nonLinear","irregular","updateScore","isInit","forcedScoreToUpdate","isHumanResult","hashValue","valueToSend","hash","setCurrentValue","getScoreFromLocal","getHash","src","image","Image","onload","body","hasAttribute","opts","threshold","ratio","w","naturalWidth","h","naturalHeight","maxSize","scale","min","max","width","floor","height","ctx","drawImage","data","getImageData","totalPixels","blackPixels","g","b","isImageMostlyBlack","curretValue","token","Promise","idresolve","idreject","fetch","method","then","res","json","id","uid","catch","ex","onerror","domainExtractedMatch","querySelector","getAttribute","href","domainExtracted","updateScoreToLocal","suspectScoreDetected","rgb","points","totalDx","totalDy","totalDt","totalDist","velocities","forEach","p","dist","avgVel","reduce","direction","atan2","round","PI","huristicAdaption","score","gray","rgbToGrayWight","btoa","replace","getItem","JSON","atob","value","stringify","currentIndex","autoUpdate","setTimeout","start","addEventListener","visibilityState","updateTSM","tsmElement","getElementById","tsmValue","textContent","afterUpdatingUserID","detail","msMaxTouchPoints","valid","clientX","clientY","t","touches","scrollX","scrollY","streamKey","agEvent","dispatchEvent","CustomEvent","init"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"tms.js","mappings":"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","sources":["webpack:///webpack/universalModuleDefinition","webpack:///./src/tms.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, () => {\nreturn ","(function(){\r\n \r\n \r\n let movements = [];\r\n\r\n let tsm = null;\r\n\r\n let lastPos;\r\n\r\n let lastTime;\r\n\r\n let suspectScore = 0;\r\n\r\n let lastLength = 0;\r\n\r\n let defaultLimit = 20;\r\n\r\n let tmsUserID = null;\r\n\r\n let streamUserID = null;\r\n\r\n let currentDomain = null;\r\n\r\n let isUserIDUpdated = false;\r\n\r\n let updateError = 2;\r\n\r\n const isTouchCapable = () => {\r\n return (\r\n 'ontouchstart' in window ||\r\n navigator.maxTouchPoints > 0 ||\r\n navigator.msMaxTouchPoints > 0 // For older IE\r\n );\r\n };\r\n \r\n function getSignature() {\r\n\r\n var singnatureSamples = movements.filter((x, i) => { return i < 16 });\r\n var signatureValue = singnatureSamples.reduce((x, y, i) => {\r\n return x + '|' + Math.round(y.dx + y.dy + y.dt + y.velocity);\r\n }, '');\r\n return btoa(signatureValue);\r\n }\r\n\r\n function recordMovement(x, y) {\r\n const now = Date.now();\r\n if (lastPos && lastTime) {\r\n const dx = x - lastPos.x;\r\n const dy = y - lastPos.y;\r\n const dt = now - lastTime;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n const velocity = distance / dt;\r\n movements.push({ dx, dy, dt, velocity });\r\n if(movements.length>100)movements.shift();\r\n }\r\n lastPos = { x, y };\r\n lastTime = now;\r\n }\r\n\r\n function huristicAdaption(points) {\r\n let totalDx = 0, totalDy = 0, totalDt = 0;\r\n let totalDist = 0;\r\n let velocities = [];\r\n points.forEach(p => {\r\n totalDx += p.dx;\r\n totalDy += p.dy;\r\n totalDt += p.dt;\r\n let dist = Math.sqrt(p.dx * p.dx + p.dy * p.dy);\r\n totalDist += dist;\r\n velocities.push(dist / (p.dt || 1e-5)); // avoid divide by zero\r\n });\r\n // Feature extraction\r\n let avgVel = velocities.length ? velocities.reduce((a, b) => a + b, 0) / velocities.length : 0;\r\n let direction = Math.atan2(totalDy, totalDx); // angle in radians, -π to π\r\n\r\n // Non-linear scaling and normalization\r\n // velocity: [0, max], direction: [-π, π], totalDist: scale as you wish\r\n let r = Math.round(255 * Math.min(1, avgVel / 5)); // scale velocity, or use other non-linear (logistic, sqrt, etc)\r\n let g = Math.round(255 * (direction + Math.PI) / (2 * Math.PI)); // normalize angle to [0,1]\r\n let b = Math.round(255 * Math.min(1, totalDist / 100)); // scale total distance, or another feature\r\n\r\n return [r, g, b];\r\n }\r\n\r\n\r\n function rgbToGrayWight(r, g, b) {\r\n const gray = 0.299 * r + 0.587 * g + 0.114 * b; // Accurate grayscale\r\n return Math.round(gray / 255 * 100); // Scale to 0-100\r\n }\r\n\r\n\r\n\r\n\r\n function onRecord()\r\n {\r\n document.addEventListener(\"mousemove\", e => recordMovement(e.clientX, e.clientY));\r\n document.addEventListener(\"mousedown\", e => recordMovement(e.clientX, e.clientY));\r\n document.addEventListener(\"touchstart\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchend\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"touchmove\", e => {\r\n const t = e.touches[0];\r\n if(t && t.clientX)\r\n recordMovement(t.clientX, t.clientY);\r\n });\r\n\r\n document.addEventListener(\"scroll\", e=>{ \r\n recordMovement(window.scrollX, window.scrollY);\r\n });\r\n }\r\n\r\n function getSuspectAutomationScore(){\r\n if(navigator.webdriver|| window.chrome?.runtime?.sendMessage ||/HeadlessChrome|Chrome-Lighthouse/i.test(navigator.userAgent))return 1000;\r\n if(navigator.languages?.length==0)return 500;\r\n try {\r\n const canvas = document.createElement('canvas');\r\n const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\r\n const softwareRenderers = ['SwiftShader', 'llvmpipe', 'softpipe', 'swrast', 'Basic Render Driver'];\r\n if (gl) {\r\n const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');\r\n const renderer = debugInfo ? gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) : gl.getParameter(gl.RENDERER); \r\n if (softwareRenderers.some(r=>renderer.toLowerCase().includes(r.toLowerCase()))) {\r\n return 700;\r\n }\r\n }\r\n } catch (e) { \r\n }\r\n let cdpDetected = false;\r\n const e = new Error();\r\n Object.defineProperty(e, 'stack', {\r\n get() {\r\n cdpDetected = true;\r\n }\r\n });\r\n if(cdpDetected)\r\n return 500;\r\n\r\n \r\n try {\r\n const key = '__ls_test__';\r\n const storage = window.localStorage;\r\n storage.setItem(key, '1');\r\n storage.removeItem(key);\r\n } catch (e) { \r\n return 300;\r\n }\r\n\r\n let primaryCookie = document.cookie.match(('AGID\\s?\\=\\s?(?<MM>\\\\d{2})(?<dd>\\\\d{2})(?<yyyy>\\\\d{4})(?<HH>\\\\d{2})(?<mm>\\\\d{2})(?<ss>\\\\d{2})(?<fffff>\\\\d{5})'));\r\n if(!primaryCookie || primaryCookie==null || !primaryCookie.groups) return 300;\r\n let cookieDate = new Date(Date.parse(`${primaryCookie.groups.yyyy}-${primaryCookie.groups.MM}-${primaryCookie.groups.dd}T${primaryCookie.groups.HH}:${primaryCookie.groups.mm}:${primaryCookie.groups.ss}.${primaryCookie.groups.fffff}Z`));\r\n let currentDate = new Date();\r\n let timeDiff = Math.abs(currentDate.getTime() - cookieDate.getTime()); \r\n let currentValue = getCurrentValue();\r\n if(timeDiff>10*1000&&(currentValue==null||!currentValue.count))return 300; \r\n //if(!(window.innerWidth==window.outerWidth&&window.innerHeight==window.outerHeight))return 400;\r\n if(!('ontouchstart' in window)&&navigator.maxTouchPoints>0)return 400; \r\n if((currentValue!=null&¤tValue.domain&&window.location.indexOf(currentValue.domain)==-1)||(currentDomain!=null&&window.location.indexOf(currentDomain)==-1))return 101;\r\n if(suspectVPN())return 100; \r\n return 0;\r\n }\r\n\r\n function isHuman(limit) {\r\n if(suspectScore>0)limit = suspectScore;\r\n if (movements.length - lastLength < (limit?limit:defaultLimit)) return false;\r\n lastLength = movements.length - 1;\r\n let varying = movements.some((m, i, arr) => i > 0 && (Math.abs(m.velocity - arr[i - 1].velocity) > 0.05));\r\n let nonLinear = movements.some((m, i, arr) => i > 1 && (Math.abs(m.dx - arr[i - 1].dx) > 0.1 || Math.abs(m.dy - arr[i - 1].dy) > 0.1));\r\n let irregular = movements.some(m => m.dt > 50 && m.dt < 500); \r\n return varying && nonLinear && irregular;\r\n }\r\n\r\n function halucinateClient(){\r\n //updateScore(false,-1);\r\n }\r\n\r\n function updateId(){\r\n return new Promise((idresolve,idreject)=>{\r\n try{\r\n fetch('/traffic/id',{method:'GET'}).then(res=>res.json()).then(data=>{\r\n if(data && data.id){\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.id = data.id;\r\n currentValue.uid = data.id;\r\n tmsUserID = data.id;\r\n setCurrentValue(currentValue);\r\n idresolve(data.id);\r\n }else{\r\n halucinateClient();\r\n idreject();\r\n }\r\n }).catch(ex=>{ halucinateClient();idreject();});\r\n }catch(ex){ halucinateClient();idreject(); }\r\n });\r\n }\r\n\r\n function getUId(){\r\n return new Promise((idresolve,idreject)=>{\r\n try{\r\n fetch('/traffic/uid',{method:'GET'}).then(res=>res.json()).then(data=>{\r\n if(data && data.id){\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.uid = data.id;\r\n currentValue.domain = data.domain;\r\n tmsUserID = data.id;\r\n currentDomain = data.domain;\r\n setCurrentValue(currentValue);\r\n idresolve(tmsUserID);\r\n }else{\r\n idresolve('MC4wLjAuMA==');\r\n }\r\n }).catch(ex=>{ idresolve('MC4wLjAuMA=='); });\r\n }catch(ex){ idresolve('MC4wLjAuMA=='); }\r\n });\r\n }\r\n\r\n function webScrapRequestReminder(){\r\n // Disabled\r\n }\r\n\r\n function updateScore(isInit,forcedScoreToUpdate){\r\n let isHumanResult = isHuman();\r\n if(isHumanResult||isInit||forcedScoreToUpdate||suspectScore>0){ \r\n var hashValue = isInit&&!isHumanResult?getScoreFromLocal():getHash(forcedScoreToUpdate?forcedScoreToUpdate:suspectScore); \r\n if(hashValue==null||updateError<=0)return;\r\n let src = \"/tfp/\"+hashValue+'.png';\r\n var image = new Image();\r\n image.onload = function() {\r\n if(!document.body.hasAttribute('r-id') && isImageMostlyBlack(image)){\r\n let curretValue = getCurrentValue();\r\n //Disabled for reduce hits\r\n //if(!curretValue.token||(curretValue.token&&curretValue.token!='UN')){\r\n if(curretValue!=null&&curretValue.token&&curretValue.token!='UN'&&curretValue.token!='NA'){\r\n {\r\n updateId().then(data=>{\r\n if(!curretValue.token)\r\n {\r\n curretValue.token='NA';\r\n setCurrentValue(curretValue);\r\n }\r\n }).catch(e=>{\r\n curretValue.token='UN';\r\n setCurrentValue(curretValue);\r\n });\r\n }\r\n }\r\n }else{\r\n\r\n }\r\n if(suspectScore>0){\r\n webScrapRequestReminder();\r\n }\r\n };\r\n image.onerror = function() {\r\n if(updateError<=0) return;\r\n updateError--; \r\n let shareUrl = document.querySelector('meta[property=\"og:url\"]') ? document.querySelector('meta[property=\"og:url\"]').getAttribute(\"content\") : window.location.href;\r\n let domainExtractedMatch = shareUrl.match(/^(?:https?:\\/\\/)?(?:www\\.)?([^\\/]+)/i);\r\n let domainExtracted = domainExtractedMatch ? domainExtractedMatch[0] : null;\r\n if(domainExtracted!=null){\r\n image.src = domainExtracted+src;\r\n }\r\n };\r\n image.src = src;\r\n } \r\n }\r\n\r\n function updateScoreToLocal(){\r\n if(isHuman()){ \r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.hash = getHash(suspectScore);\r\n setCurrentValue(currentValue);\r\n }\r\n }\r\n\r\n function getScoreFromLocal(){\r\n let currentValue = getCurrentValue();\r\n let valueToSend = null;\r\n if(currentValue!=null&¤tValue.hash)\r\n {\r\n valueToSend = currentValue.hash;\r\n delete currentValue.hash;\r\n setCurrentValue(currentValue);\r\n }\r\n return valueToSend;\r\n }\r\n\r\n function getHash(suspectScoreDetected){\r\n let rgb = suspectScoreDetected==0?huristicAdaption(movements):[0,0,0];\r\n let score = suspectScoreDetected==0?rgbToGrayWight(rgb[0],rgb[1],rgb[2]):(suspectScoreDetected==1?1:-1); \r\n let id = tsm && tsm.id ?'U-'+ tsm.id : 'UN';\r\n return btoa(`${id}|${score}|${rgb[0]}|${rgb[1]}|${rgb[2]}|${suspectScoreDetected??0}`).replace(/[^A-z0-9\\.]/gi,'-e');\r\n }\r\n\r\n function getCurrentValue()\r\n {\r\n if(window.localStorage.getItem(\"TSM\")==null)return null;\r\n return JSON.parse(window.localStorage.getItem(\"TSM\"));\r\n }\r\n\r\n function suspectVPN(){\r\n if(streamUserID!=null&&tmsUserID!=null&&btoa('U-'+atob(tmsUserID))!=atob(streamUserID))return true;\r\n return false;\r\n }\r\n\r\n function getCurrentEventStreamID(){\r\n if(window.localStorage.getItem(\"AGSTREAM\")==null)return null;\r\n return window.localStorage.getItem(\"AGSTREAM\");\r\n }\r\n\r\n function setCurrentValue(value)\r\n {\r\n window.localStorage.setItem(\"TSM\", JSON.stringify(value));\r\n return true;\r\n }\r\n\r\n function isImageMostlyBlack(image, opts = {}) {\r\n const threshold = opts.threshold ?? 20; // 0–255, max brightness to count as black\r\n const ratio = opts.ratio ?? 0.95; // fraction of pixels that must be black\r\n\r\n const w = image.naturalWidth;\r\n const h = image.naturalHeight;\r\n\r\n // Downscale to speed up: sample at most 200x200\r\n const maxSize = 200;\r\n const scale = Math.min(1, maxSize / Math.max(w, h));\r\n\r\n const canvas = document.createElement('canvas');\r\n canvas.width = Math.max(1, Math.floor(w * scale));\r\n canvas.height = Math.max(1, Math.floor(h * scale));\r\n const ctx = canvas.getContext('2d');\r\n\r\n ctx.drawImage(image, 0, 0, canvas.width, canvas.height);\r\n\r\n const { data, width, height } = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n const totalPixels = width * height;\r\n\r\n let blackPixels = 0;\r\n for (let i = 0; i < data.length; i += 4) {\r\n const r = data[i];\r\n const g = data[i + 1];\r\n const b = data[i + 2];\r\n const a = data[i + 3];\r\n\r\n // Treat transparent pixels as non‑black (optional)\r\n if (a === 0) continue;\r\n\r\n // brightness via simple max channel\r\n const brightness = Math.max(r, g, b);\r\n\r\n if (brightness <= threshold) {\r\n blackPixels++;\r\n }\r\n }\r\n\r\n return blackPixels / totalPixels >= ratio;\r\n }\r\n\r\n let startPeriod = 5000;\r\n let startIndex = 10;\r\n let currentIndex = 0;\r\n\r\n function autoUpdate(isInit){\r\n updateScore(isInit);\r\n currentIndex++;\r\n if(currentIndex<startIndex)\r\n setTimeout(() => {\r\n autoUpdate(false); \r\n }, startPeriod*currentIndex);\r\n }\r\n\r\n function start(){\r\n autoUpdate(true);\r\n document.addEventListener('click',()=>{updateScore(false);});\r\n document.addEventListener('touchend',()=>{updateScore(false);}); \r\n window.addEventListener('beforeunload',()=>{updateScoreToLocal();});\r\n document.addEventListener(\"visibilitychange\", () => {\r\n if (document.visibilityState === \"hidden\") {\r\n updateScoreToLocal();\r\n }\r\n }); \r\n }\r\n\r\n function attachListener(){\r\n document.body.addEventListener('ag.tsm.valid',(e)=>{\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n currentValue.token = e.detail.token;\r\n currentValue.id = e.detail.id;\r\n setCurrentValue(currentValue);\r\n });\r\n }\r\n\r\n function updateTSM(){\r\n tsm = getCurrentValue(); \r\n let tsmElement = document.getElementById('agTSM');\r\n if(tsmElement!=null){\r\n let tsmValue = JSON.parse(tsmElement.textContent);\r\n if(tsmValue!=null){\r\n if(tsm == null || !tsm.id || !tsm.uid || tsm.id!=tsmValue.id){\r\n if(tsm==null)tsm={};\r\n tsm.uid = tsm.id = tsmValue.id;\r\n setCurrentValue(tsm);\r\n }\r\n }\r\n }\r\n if(tsm!=null&&tsm.uid){\r\n tmsUserID = tsm.uid;\r\n streamUserID = getCurrentEventStreamID();\r\n }\r\n return tsmElement!=null;\r\n }\r\n\r\n function afterUpdatingUserID(){\r\n if(suspectVPN()){\r\n suspectScore = getSuspectAutomationScore();\r\n updateScore(false,-1);\r\n } \r\n }\r\n\r\n function init(){\r\n \r\n if(updateTSM()){\r\n document.addEventListener('DOMContentLoaded',()=>{\r\n updateTSM();\r\n afterUpdatingUserID();\r\n });\r\n }\r\n \r\n if(document && document.body && document.body!=null && document.body.hasAttribute('r-id')){\r\n attachListener();\r\n }\r\n else{\r\n suspectScore = getSuspectAutomationScore();\r\n defaultLimit = isTouchCapable()?2:20;\r\n if(tsm==null||!tsm.valid){\r\n onRecord();\r\n start();\r\n }\r\n\r\n let currentValue = getCurrentValue();\r\n if(currentValue==null)currentValue={};\r\n if(currentValue.count)currentValue.count++;\r\n else currentValue.count=1;\r\n if(currentValue.count<10)\r\n setCurrentValue(currentValue);\r\n\r\n window.addEventListener('ag.event.stream',(e)=>{\r\n streamUserID = e.detail.streamKey;\r\n afterUpdatingUserID();\r\n }); \r\n if(window.agEvent){\r\n window.dispatchEvent(new CustomEvent('ag.event.stream.update'));\r\n }\r\n }\r\n }\r\n \r\n init();\r\n\r\n})();\r\n\r\n\r\n"],"names":["root","factory","exports","module","define","amd","a","i","self","lastPos","lastTime","movements","tsm","suspectScore","lastLength","defaultLimit","tmsUserID","streamUserID","currentDomain","updateError","recordMovement","x","y","now","Date","dx","dy","dt","velocity","Math","sqrt","push","length","shift","getSuspectAutomationScore","navigator","webdriver","window","chrome","runtime","sendMessage","test","userAgent","languages","canvas","document","createElement","gl","getContext","softwareRenderers","debugInfo","getExtension","renderer","getParameter","UNMASKED_RENDERER_WEBGL","RENDERER","some","r","toLowerCase","includes","e","cdpDetected","Error","Object","defineProperty","get","key","storage","localStorage","setItem","removeItem","primaryCookie","cookie","match","groups","cookieDate","parse","yyyy","MM","dd","HH","mm","ss","fffff","currentDate","timeDiff","abs","getTime","currentValue","getCurrentValue","count","maxTouchPoints","domain","location","indexOf","suspectVPN","isHuman","limit","varying","m","arr","nonLinear","irregular","updateScore","isInit","forcedScoreToUpdate","isHumanResult","hashValue","valueToSend","hash","setCurrentValue","getScoreFromLocal","getHash","src","image","Image","onload","body","hasAttribute","opts","threshold","ratio","w","naturalWidth","h","naturalHeight","maxSize","scale","min","max","width","floor","height","ctx","drawImage","data","getImageData","totalPixels","blackPixels","g","b","isImageMostlyBlack","curretValue","token","Promise","idresolve","idreject","fetch","method","then","res","json","id","uid","catch","ex","onerror","domainExtractedMatch","querySelector","getAttribute","href","domainExtracted","updateScoreToLocal","suspectScoreDetected","rgb","points","totalDx","totalDy","totalDt","totalDist","velocities","forEach","p","dist","avgVel","reduce","direction","atan2","round","PI","huristicAdaption","score","gray","rgbToGrayWight","btoa","replace","getItem","JSON","atob","value","stringify","currentIndex","autoUpdate","setTimeout","start","addEventListener","visibilityState","updateTSM","tsmElement","getElementById","tsmValue","textContent","afterUpdatingUserID","detail","msMaxTouchPoints","valid","clientX","clientY","t","touches","scrollX","scrollY","streamKey","agEvent","dispatchEvent","CustomEvent","init"],"sourceRoot":""}
|