// helpers/validateBarcode.ts export const validateBarcode = (value: string, format: 'EAN13' = 'EAN13'): boolean => { switch (format) { case 'EAN13': return isValidEAN13(value) default: return false } } const isValidEAN13 = (value: string): boolean => { if (!/^\d{13}$/.test(value)) return false const digits = value.split('').map(Number) const checkDigit = digits[12] const sum = digits .slice(0, 12) .reduce((acc, digit, index) => acc + digit * (index % 2 === 0 ? 1 : 3), 0) const calculatedCheckDigit = (10 - (sum % 10)) % 10 return calculatedCheckDigit === checkDigit }