{"version":3,"file":"check-cas-number.min.js","sources":["../lib-esm/check.js"],"sourcesContent":["export function check(cas, options = {}) {\n    const { logger } = options;\n    if (!cas?.match(/[0-9]{2,8}-[0-9]{2}-[0-9]/)) {\n        logger?.error('Invalid CAS number, the format does not match: XXXXXXXX-XX-X.');\n        return false;\n    }\n    let sum = 0;\n    const digits = cas.replaceAll('-', '');\n    for (let i = digits.length - 2; i >= 0; i--) {\n        sum = sum + Number.parseInt(digits[i], 10) * (digits.length - i - 1);\n    }\n    // is it larger than 50000 ?\n    if (Number.parseInt(cas.replaceAll('-', ''), 10) < 50000) {\n        logger?.error('Invalid CAS number, the number is smaller than 50-00-0.');\n        return false;\n    }\n    // does the checkdigit match ?\n    const checkDigit = sum % 10;\n    if (checkDigit !== Number.parseInt(cas.slice(-1), 10)) {\n        logger?.error(`Invalid CAS number, the check digit does not match. Expected: ${checkDigit} but got: ${cas.slice(-1)}.`);\n        return false;\n    }\n    return true;\n}\n//# sourceMappingURL=check.js.map"],"names":["cas","options","logger","match","error","sum","digits","replaceAll","i","length","Number","parseInt","checkDigit","slice"],"mappings":"iQAMM,SAAgBA,EAAaC,EAAwB,IACzD,MAAMC,OAAEA,GAAWD,EAEnB,IAAKD,GAAKG,MAAM,6BAId,OAHAD,GAAQE,MACN,kEAEK,EAGT,IAAIC,EAAM,EACV,MAAMC,EAASN,EAAIO,WAAW,IAAK,IAEnC,IAAK,IAAIC,EAAIF,EAAOG,OAAS,EAAGD,GAAK,EAAGA,IACtCH,GAAYK,OAAOC,SAASL,EAAOE,GAAI,KAAOF,EAAOG,OAASD,EAAI,GAIpE,GAAIE,OAAOC,SAASX,EAAIO,WAAW,IAAK,IAAK,IAAM,IAEjD,OADAL,GAAQE,MAAM,4DACP,EAIT,MAAMQ,EAAaP,EAAM,GACzB,OAAIO,IAAeF,OAAOC,SAASX,EAAIa,OAAQ,GAAG,MAChDX,GAAQE,MACN,iEACEQ,cACWZ,EAAIa,OAAM,QAElB,EAGX"}