{"_id":"@azurhosts/scamguard-images","_rev":"15-441e63d2141d17b584d16c1065372675","name":"@azurhosts/scamguard-images","dist-tags":{"latest":"12.0.1"},"versions":{"1.0.0":{"name":"@azurhosts/scamguard-images","version":"1.0.0","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@1.0.0","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"f09e5105b4c7d17e3306ad18ce9852cbf82d4d2d","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-1.0.0.tgz","fileCount":6,"integrity":"sha512-pE+rsDa+lEoWEYEUC+vCXg4r74TSf7ObtFrmzb1HnoEuYfjMFHfDSCy82RZ327Iu/O8KBFxZw+nmUF/18ayM1Q==","signatures":[{"sig":"MEUCIQDFEnYF2R2KZTO6truKuHlRFEgHkN2LF2YH+GEmLWRiPQIgOV8DcZlFGjeYY6C26wPI7Jw1Mgqn9UO+fMbM6YSYFFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9343},"main":"src/index.js","engines":{"node":">=18.0.0"},"gitHead":"fc580aeb86d693bce66a60cdaf7a1696b170bff3","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^0.22.0","axios":"^1.7.0","blockhash-js":"^0.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_1.0.0_1783358251106_0.951439210519416","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@azurhosts/scamguard-images","version":"3.0.0","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@3.0.0","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"a5654a729b559f82ee4fd577fcb5a9500189be0c","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-3.0.0.tgz","fileCount":6,"integrity":"sha512-dRmHOs2nsjv6WZucHGXLmzBkVKbi2WtPSAkiZQUfeld7wBeAML+gaZ43+M7yQP3EiyOH7JPoZjJ64CHPwLrKuA==","signatures":[{"sig":"MEYCIQDkB5mkUX+IVYf19dYO0W9CKf9Fi/XI/fX9X8v2fIElhgIhAJ59f9WmZlfL2i9E4VQLUU6L7sBysN1JJ0FWLzVKtjF+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9444},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d5767f226f517a226dd914be8d9b8644b2879e84","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_3.0.0_1783363904653_0.9560209050450375","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@azurhosts/scamguard-images","version":"4.0.0","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@4.0.0","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"870332dce4e2201d7595d85846f5a7d18a831536","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-4.0.0.tgz","fileCount":6,"integrity":"sha512-bPbAGn9WnbpB2TonEDvC/JvqQPeTxRh0ZJEpadadguYZr87bC2dAH+Rp8K4Gzo4kn2JWjEXVSfAZBL3zxueodA==","signatures":[{"sig":"MEUCIQDHbgqx7mjQy74QhnVD7q5nclpY91QboKrRU1T3OGKW8gIgRgtQrqhVy8CguNBscYfAmg2rBePQU0QTnc5NsfcoIPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9538},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"fcfa3869570bb2a1093af1485ebcddf344895806","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_4.0.0_1783364265213_0.04201791634780849","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@azurhosts/scamguard-images","version":"5.0.0","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@5.0.0","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"49cfef84e3097eee9ac5dffb17226b533f87c3ae","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-5.0.0.tgz","fileCount":9,"integrity":"sha512-oplSYO5P872q3Rdl5IbtVK2sUEI0cZQotQuhgoLzUL/vM7uLW+srUfjHfxHPhiurWK97GZtcudneF9VhCCRg3Q==","signatures":[{"sig":"MEYCIQDoZa/oPkN7zbZz1LILxbbaib4oH3rO6BVwrq5pvSocEgIhAPocWQoR2ZP077o0k8EmzVxpIiLPJcjndPrW4astwObb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15480},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"5d6c7a435e736f727afae634e4c75bd394030bf5","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_5.0.0_1783365726726_0.20346600000415083","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@azurhosts/scamguard-images","version":"6.0.0","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@6.0.0","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"d05a3beb0ed3a0bae544ac59a21d7b3593f5fdc9","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-6.0.0.tgz","fileCount":9,"integrity":"sha512-/lWxLw9PUuCeXxre9KfkHNlvtne0c7H/0RZIF7QsKmT75MxJZRqeG7w7fhGzE8RQCogdahxv6BZUvMX/ITmfRw==","signatures":[{"sig":"MEYCIQC8lkh/B3MBvUUY8d8yyDFRx4Jf/1KVUetUZTQzN5flyQIhANf7TMznTZHuRz1VqHaKl5fWCCcbVNeb+uLzKlAzER1f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20190},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"959b624a8d531bb081e9282c63acdebc843df9cd","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_6.0.0_1783366374870_0.6390622407315676","host":"s3://npm-registry-packages-npm-production"}},"6.0.1":{"name":"@azurhosts/scamguard-images","version":"6.0.1","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@6.0.1","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"6f4a6b579ed34c3f4ad9948ca543a9e35f674779","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-6.0.1.tgz","fileCount":9,"integrity":"sha512-ejBJ2JkEf4qGI2lDOimLxvGw6CBJ5yvMGZ6/bGxj5LTDOmXHM+fG6uhKr6CEwZ1YQCxeRrBujBHccerefIVvNA==","signatures":[{"sig":"MEYCIQCoktSXSUIVM9UC13IyjqDi5RYMrDR16fmxeEhNfE0lggIhAI9xkA+HBa4xbzihysjDUyjmbCOSyVHJR1bmVWK1WVpJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20190},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"35f50ddefb2ceea51296e5f2b07c1636f43dfc3a","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_6.0.1_1783366599930_0.5563313116674207","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"@azurhosts/scamguard-images","version":"7.0.0","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@7.0.0","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"ada0eec7b708fc4a00a62614967eeb94b6dbe16d","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-7.0.0.tgz","fileCount":10,"integrity":"sha512-poPL0woDepayj3+HgxXm9DdG99wXua/B7L3EWjlz5DTt1D7WSyyTdLgjYKvhXM/33RvzYV4VN5nwpQnmyzIJ8w==","signatures":[{"sig":"MEYCIQDayMw+Sv6LJtpgPE0Ifu5WeqSKtJZ8Hfl9vV1mqzFZnAIhAMLdvTtLjAXcxkVZzX/ZRHm/UGVTmP/6g2L4XPcjQx8K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26285},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"29b5380b2c9d94ca3c1891167cf4f1b9a41d7be0","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3","whois-json":"^2.0.4","tesseract.js":"^7.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_7.0.0_1783367195105_0.09515868717651976","host":"s3://npm-registry-packages-npm-production"}},"7.0.1":{"name":"@azurhosts/scamguard-images","version":"7.0.1","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@7.0.1","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"b8f4051147e8f700e93b7f40f3722783f677c544","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-7.0.1.tgz","fileCount":10,"integrity":"sha512-Qo0OzhXHtnOj9wvbSKBi5jmX2KncQTGbbIjcXxC0ZhUYfYQyCX03fhCeEFgbwBNKWwtp3P/ZMX0fD+qd5NMyyA==","signatures":[{"sig":"MEYCIQCAdOVS/FHGeYWg3RJ0EnZcz63emyWgDtCp5P8T0oTwegIhAKnybBcUoiG0J/YBC+nqovMbE0D00mWU0hqT7gm+rZWr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26285},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"f11be9bd9e29c0079b3fb9335a99fbae68348189","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3","whois-json":"^2.0.4","tesseract.js":"^7.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_7.0.1_1783367209421_0.25263130173076576","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@azurhosts/scamguard-images","version":"8.0.0","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@8.0.0","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"f727317c4587e3d8ae034fc4fae391c812369b3e","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-8.0.0.tgz","fileCount":10,"integrity":"sha512-PHlPjcLVBO9Mx+nmmY3svGXDqEltZwmZbT3sSbthbQdUYSNN7YQvD+tOrlLm9PQgTrzeUz2Svnzy2HCBMtzwyA==","signatures":[{"sig":"MEUCIHp53fVl1a72PMbJvGjqYfjPsrZyu4wzvyDLUJyXal29AiEA+s6tHVVt/dpksb/IWJhSI1itfhZxHcP5MLbSD5tTxyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27035},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"2b01055b2af9ae52fab207d372f1978020a89edd","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3","whois-json":"^2.0.4","tesseract.js":"^7.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_8.0.0_1783367821970_0.4833793805844355","host":"s3://npm-registry-packages-npm-production"}},"8.0.1":{"name":"@azurhosts/scamguard-images","version":"8.0.1","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@8.0.1","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"df5ec05d106989df6fe5a33358a841a4b4392505","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-8.0.1.tgz","fileCount":10,"integrity":"sha512-0E1s3337Eo7SjUiUDMUCMmkI/BAZWwtokEv0vCdvznkOI7obMuiefiLoK/fNttVUudWWbcrHG/Og+93urXveDw==","signatures":[{"sig":"MEQCIELGiTt1BmmT/zfpaK5JYfEkiBbs6gkMl6nq3+qYGnqCAiAe/p70KY6qknsN2vSoF+U4LAcBj2bIxJlQSEgjQz0FiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27035},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"2c929a9f6455f945df78daa6347d8e87f3785fb3","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3","whois-json":"^2.0.4","tesseract.js":"^7.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_8.0.1_1783367858453_0.676985932207834","host":"s3://npm-registry-packages-npm-production"}},"9.0.0":{"name":"@azurhosts/scamguard-images","version":"9.0.0","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@9.0.0","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"5843385b713a291aed2ed44fe2427ad44e4f13c1","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-9.0.0.tgz","fileCount":10,"integrity":"sha512-NZhQDA0gw7wzctQusBRSwMRPCaIxgz3ftxqRUX7mSQa1mPDz+n5W//hlnH4dxGN+qMRL2vAQ1tqNxGtqsiqsdw==","signatures":[{"sig":"MEQCIDIZTxZI6sQmXDfY4sMHCWQeZw/r4zRMH/fmsS8PNCkiAiBmMy3OKMWVZdU3lub+7gt4CH/x9/Sk+SyBRT/jX9bxSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27622},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"bbfa24350b73a5d82ee057627da6f3d38f98098d","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3","whois-json":"^2.0.4","tesseract.js":"^7.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_9.0.0_1783368288894_0.9898053275349843","host":"s3://npm-registry-packages-npm-production"}},"10.0.0":{"name":"@azurhosts/scamguard-images","version":"10.0.0","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@10.0.0","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"0fdd1a811a26c15feb190a513872c917bd54d168","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-10.0.0.tgz","fileCount":11,"integrity":"sha512-1i/sRkj2XK+fdH7iacX+1saApZ3Hq4pYTImHKPK1i4G8UFOFGDveNWQW6YYfMQ/8TJ/41ymxqc65r1mDR+lCQQ==","signatures":[{"sig":"MEQCIAx6osNSoISzoCg/dTcklOwh6ECGiTiKni6CQcR0XOYkAiAziZ6DUef/od1DQ/eBkb3NteY+d1MgT1RgxecM3dxJqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32740},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"eddb4a103cb71979107730194d14a902b9b0e8d3","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3","whois-json":"^2.0.4","tesseract.js":"^7.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_10.0.0_1783369640087_0.747440862435695","host":"s3://npm-registry-packages-npm-production"}},"11.0.0":{"name":"@azurhosts/scamguard-images","version":"11.0.0","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@11.0.0","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"c0458df733be35fe0e20962f4626216be653f38f","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-11.0.0.tgz","fileCount":11,"integrity":"sha512-Ww1cY0j0mdL57IgAbwplqEY3I0fOY31cXedn2p9ZBSMJf7c2QaR6fuiSRZucytUVJoa0Igmm+pf6dD/hK9wrNw==","signatures":[{"sig":"MEQCIG+9yQYDTPYcbqChxgGWuDXTwlatwSaQMKWUTOUgnEV3AiBMcbV7iCozfPYOXITUDFR/Ws2MiU2tosteMXlj5qWTcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34060},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"535ba52b76f0a3a5a4bc313fd5856357eb93292b","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3","whois-json":"^2.0.4","tesseract.js":"^7.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_11.0.0_1783370420294_0.25239513957129756","host":"s3://npm-registry-packages-npm-production"}},"12.0.0":{"name":"@azurhosts/scamguard-images","version":"12.0.0","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","_id":"@azurhosts/scamguard-images@12.0.0","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dist":{"shasum":"55aa1c9fcd676ecc574d6152372d358c700df1c3","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-12.0.0.tgz","fileCount":11,"integrity":"sha512-fxPI5jJYpKoLmpor4OFR0+OWz3LXEVQHHIGoUj3XUCIGq+WeXhFmyVl1K1XgJreT+hkrF4c3DTVJnZuoww1nSQ==","signatures":[{"sig":"MEYCIQDqkE2WHBMYckaGCq8nyDULo8SmxILZaCvrNt80rzEFPAIhAIGrd/IgXmRkEokpFj3hSKmkVxmkKJeLDKccYJ3qWoCi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38127},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"e75ff10d16f4ac8f273aacef00da22975e7cf151","_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"repository":{"url":"git+https://github.com/AzurHOSTS/ScamGuard.git","type":"git"},"_npmVersion":"10.9.7","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jimp":"^1.6.1","axios":"^1.18.1","sharp":"^0.35.3","whois-json":"^2.0.4","tesseract.js":"^7.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/scamguard-images_12.0.0_1783372384828_0.561060856241528","host":"s3://npm-registry-packages-npm-production"}},"12.0.1":{"name":"@azurhosts/scamguard-images","version":"12.0.1","description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","main":"src/index.js","type":"module","keywords":["discord","scam","bot","image","detection","phash","moderation"],"author":{"name":"AzurHOSTS"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/AzurHOSTS/ScamGuard.git"},"homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"dependencies":{"axios":"^1.18.1","jimp":"^1.6.1","sharp":"^0.35.3","tesseract.js":"^7.0.0","whois-json":"^2.0.4"},"engines":{"node":">=18.0.0"},"_id":"@azurhosts/scamguard-images@12.0.1","gitHead":"6c70447b35fc35888222cc3f88d5170c9a05cd71","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-aStpr0p1+jo9rNMJCjo+deytbtvHjFK2BDfocf8DGv3HhiEcOdR1mrlSUaXQe7kunqlQgpEw7bMTYi9eBSsR5A==","shasum":"46653a46f53aceae6124d1a79835a68b1152201b","tarball":"https://registry.npmjs.org/@azurhosts/scamguard-images/-/scamguard-images-12.0.1.tgz","fileCount":11,"unpackedSize":38127,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICb1KM/HM/j0HNzm2RlBLKHNtVweUgQFzTskJan6c5YGAiBePpvPjmmDsqjvdaY2VnyMnfVvaly/OfWmhlzXcfZD3A=="}]},"_npmUser":{"name":"oxiwan","email":"oxiwan@sandgame.fr"},"directories":{},"maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/scamguard-images_12.0.1_1783372445691_0.6033996203400902"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-06T17:17:30.913Z","modified":"2026-07-06T21:14:05.949Z","1.0.0":"2026-07-06T17:17:31.263Z","3.0.0":"2026-07-06T18:51:44.801Z","4.0.0":"2026-07-06T18:57:45.360Z","5.0.0":"2026-07-06T19:22:06.871Z","6.0.0":"2026-07-06T19:32:55.039Z","6.0.1":"2026-07-06T19:36:40.092Z","7.0.0":"2026-07-06T19:46:35.237Z","7.0.1":"2026-07-06T19:46:49.572Z","8.0.0":"2026-07-06T19:57:02.114Z","8.0.1":"2026-07-06T19:57:38.614Z","9.0.0":"2026-07-06T20:04:49.062Z","10.0.0":"2026-07-06T20:27:20.226Z","11.0.0":"2026-07-06T20:40:20.431Z","12.0.0":"2026-07-06T21:13:04.950Z","12.0.1":"2026-07-06T21:14:05.829Z"},"bugs":{"url":"https://github.com/AzurHOSTS/ScamGuard/issues"},"author":{"name":"AzurHOSTS"},"license":"MIT","homepage":"https://github.com/AzurHOSTS/ScamGuard#readme","keywords":["discord","scam","bot","image","detection","phash","moderation"],"repository":{"type":"git","url":"git+https://github.com/AzurHOSTS/ScamGuard.git"},"description":"Plugin de détection d'images de scam par hash perceptuel pour bots Discord.js","maintainers":[{"name":"oxiwan","email":"oxiwan@sandgame.fr"}],"readme":"# ScamGuard images\n\nPlugin léger de **détection d'images et de comportements de scam** pour bots Discord.js.  \nUtilise le **hash perceptuel (phash)** pour comparer les images envoyées dans un serveur\navec une bibliothèque d'images de scam connues, en tolérant les variantes (compression, redimensionnement),\net combine ça avec de l'**OCR**, de la **détection de mots-clés**, de l'**analyse d'URLs** et des\n**signaux comportementaux/compte** pour calculer un score de risque global.\n\n## Fonctionnalités\n\n- Comparaison par hash perceptuel (tolérant aux variantes d'image)\n- Détection sur pièces jointes, embeds et URLs dans le contenu\n- OCR (Tesseract.js) sur les images pour extraire le texte et le passer au filtre de mots-clés\n- Détection de mots-clés pondérés (texte du message + texte OCR combinés)\n- Vérification des URLs (whitelist, âge de domaine via whois)\n- Vérification du compte Discord (âge du compte, âge d'arrivée sur le serveur, avatar manquant, pseudo suspect, absence de rôles)\n- Signaux comportementaux (première interaction, message image seule, crosspost par texte, crosspost par nombre de pièces jointes identique sur plusieurs salons)\n- Téléchargement parallèle des images (`Promise.all`)\n- Cache en mémoire des hashes de référence\n- Zéro dépendance Discord — fonctionne avec n'importe quel bot Discord.js existant\n- Entièrement configurable (seuils, scores, dossiers, langues OCR, whitelist...)\n\n## Installation\n\n```bash\nnpm install @azurhosts/scamguard-images\n```\n\n## Démarrage rapide\n\n```js\nimport { analyzeMessageImages } from '@azurhosts/scamguard-images';\n\nclient.on('messageCreate', async (message) => {\n  if (message.author.bot) return;\n\n  const result = await analyzeMessageImages(message, {\n    bannedImagesDir: './banned_images',   // ton dossier d'images de référence\n    bannedImagesThreshold: 0.3125,        // tolérance de similarité normalisée (0-1)\n    bannedImagesScore: 50,                // score ajouté si match image détecté\n    ocrEnabled: true,                     // active l'OCR sur les images\n    ocrLang: 'fra+eng',                   // langues tesseract.js\n    checkDomainAge: true,                 // active la vérification whois des domaines\n    keywords: [],                         // liste de mots-clés pondérés\n    whitelist: [],                        // domaines de confiance pour les URLs\n  });\n\n  if (result.score >= 50) {\n    console.log(`[ScamGuard] Scam détecté:`, result.factors);\n    await message.delete();\n    // ta logique de sanction ici\n  }\n});\n```\n\n## Préparer le dossier banned_images\n\nCrée un dossier `banned_images/` à la racine de ton projet et ajoute-y des screenshots des scams connus à bloquer.\n\n```\nracine/\n├── banned_images/\n│   ├── nitro_fake.png\n│   ├── steam_scam.jpg\n│   └── ...\n├── index.js\n└── package.json\n```\n\nLe plugin tolère les légères modifications d'une image (recadrage, compression JPEG, changement de taille) grâce au hash perceptuel.\n\n## Options\n\n### Images bannies\n\n| Option | Type | Défaut | Description |\n|--------|------|--------|-------------|\n| `bannedImagesDir` | `string` | `./banned_images` | Chemin vers le dossier d'images de référence |\n| `bannedImagesThreshold` | `number` | `0.3125` | Distance max normalisée (0-1) pour un match (0 = identique, plus élevé = plus tolérant) |\n| `bannedImagesScore` | `number` | `50` | Score ajouté au résultat si une image bannie est détectée |\n\n### OCR\n\n| Option | Type | Défaut | Description |\n|--------|------|--------|-------------|\n| `ocrEnabled` | `boolean` | `true` | Active l'OCR sur les images |\n| `ocrLang` | `string` | `'fra+eng'` | Langues tesseract.js |\n| `maxOcrLength` | `number` | `2000` | Longueur max du texte OCR extrait |\n| `noTextBonus` | `number` | `10` | Bonus ajouté si des mots-clés sont trouvés uniquement via l'OCR (message sans texte) |\n\n### Mots-clés et URLs\n\n| Option | Type | Défaut | Description |\n|--------|------|--------|-------------|\n| `keywords` | `Array` | `[]` | Liste de mots-clés pondérés |\n| `whitelist` | `string[]` | `[]` | Domaines de confiance pour les URLs |\n| `checkDomainAge` | `boolean` | `true` | Active la vérification whois de l'âge du domaine |\n\n### Vérification du compte Discord\n\n| Option | Type | Défaut | Description |\n|--------|------|--------|-------------|\n| `accountAgeDays` | `number` | `30` | Seuil d'ancienneté du compte Discord (en jours) |\n| `accountAgeScore` | `number` | `15` | Score ajouté si le compte est plus récent que le seuil |\n| `joinAgeDays` | `number` | `7` | Seuil d'ancienneté d'arrivée sur le serveur (en jours) |\n| `joinAgeScore` | `number` | `15` | Score ajouté si le membre a rejoint le serveur récemment |\n| `noAvatarScore` | `number` | `5` | Score ajouté si le compte n'a pas d'avatar global |\n| `suspiciousUsernameScore` | `number` | `10` | Score ajouté si le pseudo correspond à un pattern suspect (mot+chiffres, chaîne aléatoire) |\n| `noRolesScore` | `number` | `5` | Score ajouté si le membre n'a aucun rôle attribué |\n| `noServerAvatarScore` | `number` | `3` | Score ajouté si le membre n'a pas d'avatar spécifique au serveur |\n\n### Signaux comportementaux\n\n| Option | Type | Défaut | Description |\n|--------|------|--------|-------------|\n| `firstInteractionScore` | `number` | `10` | Score ajouté à la première interaction connue de l'utilisateur |\n| `imageOnlyScore` | `number` | `10` | Score ajouté si le message contient une image sans texte |\n| `crosspostScore` | `number` | `20` | Score ajouté si le même texte est posté dans plusieurs salons |\n| `crosspostWindow` | `number` | `300000` | Fenêtre de temps (ms) pour la détection de crosspost par texte |\n| `crosspostMinChannels` | `number` | `2` | Nombre minimum de salons pour déclencher le crosspost par texte |\n| `attachmentCrosspostScore` | `number` | `40` | Score ajouté si le même nombre de pièces jointes est posté sur plusieurs salons en peu de temps |\n| `attachmentCrosspostWindow` | `number` | `60000` | Fenêtre de temps (ms) pour la détection de crosspost par pièces jointes |\n| `attachmentCrosspostMinChannels` | `number` | `2` | Nombre minimum de salons pour déclencher le crosspost par pièces jointes |\n\n## Résultat retourné\n\n```js\n{\n  score: 65,\n  imageFlag: {\n    banned: {\n      matched: \"nitro_fake.png\",  // nom du fichier de référence\n      distance: 8,                // distance de Hamming\n      similarity: 95.2            // similarité en %\n    }\n  },\n  factors: [\n    \"banned_image (nitro_fake.png, 95.2%)\",\n    \"account_age_3d (+15)\",\n    \"attachment_crosspost_1f_3ch (+40)\"\n  ],\n  ocrText: \"Réclame ton Nitro gratuit ici...\"\n}\n```\n\n## Dépendances\n\n| Package | Utilisation |\n|---------|-------------|\n| `jimp` | Lecture et décodage des images |\n| `blockhash` | Calcul du hash perceptuel |\n| `axios` | Téléchargement des images |\n| `tesseract.js` | OCR sur les images |\n\n## Prérequis\n\n- Node.js >= 18.0.0\n- Discord.js v14+","readmeFilename":"README.md"}