Comparing version 0.0.2 to 0.0.3
@@ -8,5 +8,6 @@ { | ||
"deprecated": false, | ||
"description": "rCaptcha Human Verification | by Swôth#9990", | ||
"description": "rCaptcha Human Verification | by Swôth#9990 & Roalia#0001", | ||
"keywords": [ | ||
"rennia", | ||
"rennia", | ||
"roalia", | ||
"swoth", | ||
@@ -19,5 +20,5 @@ "captcha", | ||
"license": "MIT", | ||
"main": "rCaptcha.js", | ||
"main": "index.js", | ||
"name": "rcaptcha", | ||
"version": "0.0.2" | ||
"version": "0.0.3" | ||
} |
179
rCaptcha.js
@@ -0,98 +1,95 @@ | ||
//||===---===---===---===---[===]---===---===---===---===||\\ | ||
const Canvas = require('canvas'); | ||
const latestVersion = require('latest-version'); | ||
const lang = require('./lang.json') | ||
const error = lang.errors | ||
//||===---===---===---===---[===]---===---===---===---===||\\ | ||
class rCaptcha { | ||
constructor(rCaptcha) { | ||
const language = rCaptcha["language"] || rCaptcha["dil"] || null | ||
constructor(rCaptcha) { | ||
//||===---===---===---===---[===]---===---===---===---===||\\ | ||
const language = rCaptcha["language"] || rCaptcha["dil"] || null | ||
const difficulty = rCaptcha["difficulty"] || rCaptcha["zorluk"] || null | ||
const length = rCaptcha["length"] || rCaptcha["uzunluk"] || null | ||
const err1_TR = "rCaptcha Hata: Lütfen bir dil seçiniz, mevcut diller: TR - EN" | ||
const err1_EN = "rCaptcha Error: Please select a language, available languages: TR - EN" | ||
if (!language) throw new Error("\n" + err1_TR + "\n" + err1_EN + "\n") | ||
const err2_TR = "rCaptcha Hata: Geçersiz bir dil yazdınız, mevcut diller: TR - EN" | ||
const err2_EN = "rCaptcha Error: You typed an invalid language, available languages: TR - EN" | ||
if (!["EN", "TR"].includes(language)) throw new Error("\n" + err2_TR + "\n" + err2_EN + "\n") | ||
const err3_TR = "\n rCaptcha Hata: Lütfen bir zorluk seçiniz, mevcut zorluklar: KOLAY - ORTA - ZOR - ÇOKZOR \n" | ||
const err3_EN = "\n rCaptcha Error: Please select a difficulty, available difficulties: EASY - MEDIUM - HARD - VERYHARD \n" | ||
if (!difficulty) throw new Error(language === "TR" ? err3_TR : err3_EN) | ||
const err4_TR = "\n rCaptcha Hata: Geçersiz bir zorluk yazdınız, mevcut zorluklar: KOLAY - ORTA - ZOR - ÇOKZOR \n" | ||
const err4_EN = "\n rCaptcha Error: You typed an invalid difficulty, available difficulties: EASY - MEDIUM - HARD - VERYHARD \n" | ||
const options1 = ["KOLAY", "ORTA", "ZOR", "ÇOKZOR", "EASY", "MEDIUM", "HARD", "VERYHARD"] | ||
if (!options1.includes(difficulty)) throw new Error(language === "TR" ? err4_TR : err4_EN) | ||
const err5_TR = "\n rCaptcha Hata: Lütfen bir uzunluk seçiniz, uzunluk 4 ile 12 arasında olmalıdır. \n" | ||
const err5_EN = "\n rCaptcha Error: Please select a length, length must be between 4 and 12. \n" | ||
if (!length) throw new Error(language === "TR" ? err5_TR : err5_EN) | ||
const err6_TR = "\n rCaptcha Hata: Geçersiz bir uzunluk seçtiniz, uzunluk 4 ile 12 arasında olmalıdır. \n" | ||
const err6_EN = "\n rCaptcha Error: You chose an invalid length, length must be between 4 and 12. \n" | ||
if (isNaN(length)) throw new Error(language === "TR" ? err6_TR : err6_EN) | ||
const err7_TR = "\n rCaptcha Hata: Geçersiz bir uzunluk seçtiniz, uzunluk 4 ile 12 arasında olmalıdır. \n" | ||
const err7_EN = "\n rCaptcha Error: You chose an invalid length, length must be between 4 and 12. \n" | ||
if (length < 4 || length > 12) throw new Error(language === "TR" ? err7_TR : err7_EN) | ||
async function rCaptchaChecker() { | ||
const rCaptchaLatest = await latestVersion("rCaptcha") | ||
const rCaptchaRunning = require('./package.json').version | ||
const err8_TR = "\n\n rCaptcha Hata: Lütfen modülü son sürüme güncelleyiniz: npm i rcaptcha@" + rCaptchaLatest + " \n" | ||
const err8_EN = "\n\n rCaptcha Error: Please update package to latest version: npm i rcaptcha@" + rCaptchaLatest + " \n" | ||
if (rCaptchaLatest !== rCaptchaRunning) throw new Error(language === "TR" ? err8_TR : err8_EN) | ||
}; rCaptchaChecker(); | ||
const level_1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" | ||
const level_2 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" | ||
const level_3 = "01234567890123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" | ||
const level_4 = "!+#>-<@&%01234567890123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" | ||
const karakterler = ["KOLAY", "EASY"].includes(difficulty) ? level_1 : ["ORTA", "MEDIUM"].includes(difficulty) ? level_2 : ["ZOR", "HARD"].includes(difficulty) ? level_3 : level_4 | ||
const rCaptchaŞifre = Array(length).fill(karakterler).map(function(x) { return x[Math.floor(Math.random() * x.length)] }).join(''); | ||
const canvas = Canvas.createCanvas(900, 300); | ||
const ctx = canvas.getContext('2d'); | ||
/*await Canvas.loadImage("https://i.hizliresim.com/OKYHJl.png").then((image) => { | ||
ctx.drawImage(image, 0, 0, canvas.width, canvas.height) | ||
});*/ // Çalışmıyor... | ||
ctx.fillStyle = "#000000"; | ||
ctx.textAlign = "center"; | ||
ctx.font = length >= 10 ? '900 100px Nunito' : length <= 6 ? '900 160px Nunito' : '900 140px Nunito'; | ||
ctx.lineWidth = 5; | ||
ctx.fillText(rCaptchaŞifre, canvas.width / 2, canvas.height / 1.7); | ||
ctx.strokeStyle = "#ffffff"; | ||
ctx.strokeText(rCaptchaŞifre, canvas.width / 2, canvas.height / 1.7); | ||
const rCaptchaYanıt_TR = { | ||
dil: language, | ||
zorluk: difficulty, | ||
uzunluk: length, | ||
kod: rCaptchaŞifre, | ||
resim: { | ||
url: canvas.toDataURL(), | ||
buffer: canvas.toBuffer() | ||
} | ||
} | ||
const rCaptchaYanıt_EN = { | ||
language: language, | ||
difficulty: difficulty, | ||
length: length, | ||
code: rCaptchaŞifre, | ||
image: { | ||
url: canvas.toDataURL(), | ||
buffer: canvas.toBuffer() | ||
} | ||
} | ||
const rCaptchaYanıt = language === "TR" ? rCaptchaYanıt_TR : rCaptchaYanıt_EN | ||
return rCaptchaYanıt; | ||
} | ||
} | ||
const difficulties = ["KOLAY", "ORTA", "ZOR", "ÇOKZOR", "EASY", "MEDIUM", "HARD", "VERYHARD"]; | ||
const level_1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; | ||
const level_2 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; | ||
const level_3 = "01234567890123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; | ||
const level_4 = "!+#>-<@&%01234567890123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; | ||
//||===---===---===---===---[===]---===---===---===---===||\\ | ||
if (!language) throw new Error(error.tr.err1 + '\n' + error.en.err1); | ||
if (!["EN", "TR"].includes(language)) throw new Error(language == "TR" ? error.tr.err2 : error.en.err2); | ||
if (!difficulty) throw new Error(language === "TR" ? error.tr.err3 : error.en.err3); | ||
if (!difficulties.includes(difficulty)) throw new Error(language === "TR" ? error.tr.err4 : error.en.err4); | ||
if (!length) throw new Error(language === "TR" ? error.tr.err5 : error.en.err5); | ||
if (isNaN(length)) throw new Error(language === "TR" ? error.tr.err6 : error.en.err6); | ||
if (length < 4 || length > 12) throw new Error(language === "TR" ? error.tr.err7 : error.en.err7) | ||
//||===---===---===---===---[===]---===---===---===---===||\\ | ||
const karakterler = ["KOLAY", "EASY"].includes(difficulty) ? level_1 : ["ORTA", "MEDIUM"].includes(difficulty) ? level_2 : ["ZOR", "HARD"].includes(difficulty) ? level_3 : level_4 | ||
const rCaptchaŞifre = Array(length).fill(karakterler).map(function(x) { return x[Math.floor(Math.random() * x.length)] }).join(''); | ||
const canvas = Canvas.createCanvas(900, 300); | ||
const ctx = canvas.getContext('2d'); | ||
//||===---===---===---===---[===]---===---===---===---===||\\ | ||
ctx.fillStyle = "#000000"; | ||
ctx.textAlign = "center"; | ||
ctx.font = length >= 10 ? '900 100px Nunito' : length <= 6 ? '900 160px Nunito' : '900 140px Nunito'; | ||
ctx.lineWidth = 5; | ||
ctx.fillText(rCaptchaŞifre, canvas.width / 2, canvas.height / 1.7); | ||
ctx.strokeStyle = "#ffffff"; | ||
ctx.strokeText(rCaptchaŞifre, canvas.width / 2, canvas.height / 1.7); | ||
/*async function rCaptchaArkaplan() { | ||
await Canvas.loadImage("https://i.hizliresim.com/OKYHJl.png").then((image) => { | ||
ctx.drawImage(image, 0, 0, canvas.width, canvas.height) | ||
}); | ||
}; rCaptchaArkaplan();*/ | ||
//||===---===---===---===---[===]---===---===---===---===||\\ | ||
const rCaptchaYanıt_TR = { | ||
dil: language, | ||
zorluk: difficulty, | ||
uzunluk: length, | ||
kod: rCaptchaŞifre, | ||
resim: { | ||
url: canvas.toDataURL(), | ||
buffer: canvas.toBuffer() | ||
} | ||
} | ||
const rCaptchaYanıt_EN = { | ||
language: language, | ||
difficulty: difficulty, | ||
length: length, | ||
code: rCaptchaŞifre, | ||
image: { | ||
url: canvas.toDataURL(), | ||
buffer: canvas.toBuffer() | ||
} | ||
} | ||
//||===---===---===---===---[===]---===---===---===---===||\\ | ||
const rCaptchaYanıt = language === "TR" ? rCaptchaYanıt_TR : rCaptchaYanıt_EN | ||
return rCaptchaYanıt; | ||
//||===---===---===---===---[===]---===---===---===---===||\\ | ||
} | ||
} | ||
//||===---===---===---===---[===]---===---===---===---===||\\ | ||
module.exports = rCaptcha; | ||
module.exports.version = require('./package.json').version | ||
module.exports.version = require("./package.json").version; | ||
//||===---===---===---===---[===]---===---===---===---===||\\ |
@@ -11,5 +11,5 @@ ## rCaptcha® | Human Verification | ||
--- | ||
> **Developer:** `Swôth#9990` | ||
> **Developer:** `Swôth#9990` and `Roalia#0001` | ||
--- | ||
> **Geliştirici:** `Swôth#9990` | ||
> **Geliştirici:** `Swôth#9990` ve `Roalia#0001` | ||
--- | ||
@@ -37,4 +37,4 @@ --- | ||
const newCaptcha = new rCaptcha({ | ||
language: "", // TR or EN is avalable... | ||
difficulty: "", // EASY, MEDIUM, HARD, VERYHARD is avalable... | ||
language: "", // TR or EN is available... | ||
difficulty: "", // EASY, MEDIUM, HARD, VERYHARD is available... | ||
length: 4, // Length is must me between 4 and 12... | ||
@@ -51,4 +51,4 @@ }) | ||
const newCaptcha = new rCaptcha({ | ||
language: "EN", // TR or EN is avalable... | ||
difficulty: "HARD", // EASY, MEDIUM, HARD, VERYHARD is avalable... | ||
language: "EN", // TR or EN is available... | ||
difficulty: "HARD", // EASY, MEDIUM, HARD, VERYHARD is available... | ||
length: 10, // Length is must me between 4 and 12... | ||
@@ -79,4 +79,4 @@ }) | ||
const newCaptcha = new rCaptcha({ | ||
language: "EN", // TR or EN is avalable... | ||
difficulty: "HARD", // EASY, MEDIUM, HARD, VERYHARD is avalable... | ||
language: "EN", // TR or EN is available... | ||
difficulty: "HARD", // EASY, MEDIUM, HARD, VERYHARD is available... | ||
length: 10, // Length is must me between 4 and 12... | ||
@@ -86,2 +86,3 @@ }) | ||
// captcha image link: newCaptcha.image.url | ||
// example in discord.js: const x = new Discord.MessageAttachment(newCaptcha.image.buffer) | ||
// example in html: <img src=" + newCaptcha.image.url + "> | ||
@@ -104,2 +105,4 @@ | ||
--- | ||
> **0.0.3 ▸ New developer (Roalia#0001) added, the number of lines has been reduced!** | ||
--- | ||
> **0.0.2 ▸ A small bug was fixed!** | ||
@@ -111,2 +114,2 @@ --- | ||
--- | ||
> **by `Swôth#9990` (MIT)** | ||
> **by `Swôth#9990` and `Roalia#0001` (MIT)** |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
11980
6
203
109
2