UNPKG

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
/** * 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');