DEV Community

Manuel Felipe Arias Pineda
Manuel Felipe Arias Pineda

Posted on

🇪🇨 Ecuador devs: Add Cédula de Ciudadanía to the AI identity standard — Soulprint open source (30 min PR)

🇪🇨 La cédula ecuatoriana no está en Soulprint. 10 dígitos, dígito verificador mod-10. ¿La agregas?

const EC: CountryVerifier = {
  countryCode: "EC", countryName: "Ecuador", documentTypes: ["cedula"],
  parse(ocrText: string): DocumentResult {
    const ced = ocrText.match(/(\d{10})/)?.[1] ?? "";
    return { valid: !!ced, doc_number: ced, country: "EC" };
  },
  validate(docNumber: string): NumberValidation {
    if(!/^\d{10}$/.test(docNumber)) return {valid:false};
    const p = Number(docNumber.slice(0,2));
    if(p<1||p>24) return {valid:false};
    const d = docNumber.split("").map(Number);
    const coef=[2,1,2,1,2,1,2,1,2];
    const sum=coef.reduce((s,c,i)=>{let v=c*d[i];return s+(v>=10?v-9:v);},0);
    return { valid: (10-(sum%10))%10 === d[9] };
  },
};
export default EC;
Enter fullscreen mode Exit fullscreen mode

💻 GitHub · Un PR. Un país.

Top comments (0)