{"version":3,"file":"check-cas-number.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":["check","cas","options","logger","match","error","sum","digits","replaceAll","i","length","Number","parseInt","checkDigit","slice"],"mappings":";;;;;;;;;;;;IAMM,SAAUA,KAAKA,CAACC,GAAW,EAAEC,OAAA,GAAwB,EAAE,EAAA;MAC3D,MAAM;IAAEC,IAAAA;IAAM,GAAE,GAAGD,OAAO;IAE1B,EAAA,IAAI,CAACD,GAAG,EAAEG,KAAK,CAAC,2BAA2B,CAAC,EAAE;IAC5CD,IAAAA,MAAM,EAAEE,KAAK,CACX,+DAA+D,CAChE;IACD,IAAA,OAAO,KAAK;IACd;MAEA,IAAIC,GAAG,GAAG,CAAC;MACX,MAAMC,MAAM,GAAGN,GAAG,CAACO,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;IAEtC,EAAA,KAAK,IAAIC,CAAC,GAAGF,MAAM,CAACG,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QAC3CH,GAAG,GAAGA,GAAG,GAAGK,MAAM,CAACC,QAAQ,CAACL,MAAM,CAACE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAIF,MAAM,CAACG,MAAM,GAAGD,CAAC,GAAG,CAAC,CAAC;IACtE;IAEA;IACA,EAAA,IAAIE,MAAM,CAACC,QAAQ,CAACX,GAAG,CAACO,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE;IACxDL,IAAAA,MAAM,EAAEE,KAAK,CAAC,yDAAyD,CAAC;IACxE,IAAA,OAAO,KAAK;IACd;IAEA;IACA,EAAA,MAAMQ,UAAU,GAAGP,GAAG,GAAG,EAAE;IAC3B,EAAA,IAAIO,UAAU,KAAKF,MAAM,CAACC,QAAQ,CAACX,GAAG,CAACa,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;IACrDX,IAAAA,MAAM,EAAEE,KAAK,CACX,CAAA,8DAAA,EACEQ,UACF,CAAaZ,UAAAA,EAAAA,GAAG,CAACa,KAAK,CAAC,EAAE,CAAC,GAAG,CAC9B;IACD,IAAA,OAAO,KAAK;IACd;IACA,EAAA,OAAO,IAAI;IACb;;;;;;;;"}