UNPKG

tc-check

Version:

A Node.js and TypeScript package to validate Turkish citizens using first name, last name, birth year, and T.C. Kimlik Number via the official government API.

29 lines (28 loc) 1.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Validator = void 0; class Validator { validatePerson(person) { const tc = person.tc; if (!tc || tc.length !== 11 || !/^\d+$/.test(tc) || tc[0] === '0') return false; const digits = tc.split('').map(Number); const sumOdd = digits[0] + digits[2] + digits[4] + digits[6] + digits[8]; const sumEven = digits[1] + digits[3] + digits[5] + digits[7]; const check1 = (sumOdd * 7 - sumEven) % 10; const check2 = (sumOdd + sumEven + check1) % 10; return check1 === digits[9] && check2 === digits[10]; } generateFakeTC() { const digits = []; digits[0] = Math.floor(Math.random() * 9) + 1; for (let i = 1; i < 9; i++) digits[i] = Math.floor(Math.random() * 10); const sumOdd = digits[0] + digits[2] + digits[4] + digits[6] + digits[8]; const sumEven = digits[1] + digits[3] + digits[5] + digits[7]; digits[9] = (sumOdd * 7 - sumEven) % 10; digits[10] = (sumOdd + sumEven + digits[9]) % 10; return digits.join(''); } } exports.Validator = Validator;