tamil-captcha
Version:
A lightweight math-based CAPTCHA generator in Tamil language for Node.js and browser applications
118 lines (100 loc) • 3.62 kB
JavaScript
/**
* Tamil CAPTCHA Usage Examples
* Run this file: node examples/usage.js
*/
const {
generateCaptcha,
verifyCaptcha,
getTamilNumber,
getAllTamilNumbers,
getOperations
} = require('../index.js');
console.log('🧪 Tamil CAPTCHA Examples\n');
// Example 1: Basic usage
console.log('1️⃣ Basic Usage:');
const captcha1 = generateCaptcha();
console.log(`Question: ${captcha1.question}`);
console.log(`Answer: ${captcha1.answer}`);
console.log(`Verification (correct): ${verifyCaptcha(captcha1.answer, captcha1.answer)}`);
console.log(`Verification (wrong): ${verifyCaptcha(99, captcha1.answer)}\n`);
// Example 2: Custom options - only addition
console.log('2️⃣ Only Addition (1-5):');
const captcha2 = generateCaptcha({
minNumber: 1,
maxNumber: 5,
operations: ['+']
});
console.log(`Question: ${captcha2.question}`);
console.log(`Answer: ${captcha2.answer}`);
console.log(`Operation: ${captcha2.metadata.operationWord}\n`);
// Example 3: Only multiplication
console.log('3️⃣ Only Multiplication:');
const captcha3 = generateCaptcha({
minNumber: 2,
maxNumber: 4,
operations: ['*']
});
console.log(`Question: ${captcha3.question}`);
console.log(`Answer: ${captcha3.answer}`);
console.log(`Numbers used: ${captcha3.numbers.join(' × ')}\n`);
// Example 4: String input verification
console.log('4️⃣ String Input Verification:');
const captcha4 = generateCaptcha();
console.log(`Question: ${captcha4.question}`);
console.log(`Correct answer: ${captcha4.answer}`);
console.log(`Verify "7": ${verifyCaptcha("7", 7)}`);
console.log(`Verify " 7 ": ${verifyCaptcha(" 7 ", 7)}`);
console.log(`Verify "abc": ${verifyCaptcha("abc", 7)}\n`);
// Example 5: Helper functions
console.log('5️⃣ Helper Functions:');
console.log('Tamil Numbers:');
for (let i = 1; i <= 10; i++) {
console.log(` ${i} = ${getTamilNumber(i)}`);
}
console.log('\nAvailable Operations:');
getOperations().forEach(op => {
console.log(` ${op.symbol} = ${op.word} (${op.key})`);
});
console.log('\nAll Tamil Numbers Object:');
console.log(getAllTamilNumbers());
// Example 6: Multiple CAPTCHAs
console.log('\n6️⃣ Generate Multiple CAPTCHAs:');
for (let i = 0; i < 5; i++) {
const captcha = generateCaptcha();
console.log(`${i + 1}. ${captcha.question} → ${captcha.answer}`);
}
// Example 7: Error handling
console.log('\n7️⃣ Error Handling:');
try {
generateCaptcha({ minNumber: 0, maxNumber: 15 });
} catch (error) {
console.log(`Error: ${error.message}`);
}
try {
generateCaptcha({ minNumber: 5, maxNumber: 3 });
} catch (error) {
console.log(`Error: ${error.message}`);
}
try {
getTamilNumber(15);
} catch (error) {
console.log(`Error: ${error.message}`);
}
// Example 8: Real-world simulation
console.log('\n8️⃣ Real-world Simulation:');
console.log('Simulating a form submission...');
const sessionCaptcha = generateCaptcha();
console.log(`User sees: ${sessionCaptcha.question}`);
// Simulate user input
const userAnswers = [
sessionCaptcha.answer.toString(), // Correct answer
(sessionCaptcha.answer + 1).toString(), // Wrong answer
'invalid', // Invalid input
` ${sessionCaptcha.answer} ` // Correct with spaces
];
userAnswers.forEach((input, index) => {
const isValid = verifyCaptcha(input, sessionCaptcha.answer);
console.log(`User input "${input}": ${isValid ? '✅ Valid' : '❌ Invalid'}`);
});
console.log('\n🎉 Examples completed!');
console.log('💡 Try running: npm test');