From 24b5cf7d9495429e5bfcc663fa3871ee8825a881 Mon Sep 17 00:00:00 2001 From: Jureg Date: Tue, 18 Nov 2025 15:03:10 -0300 Subject: [PATCH 1/2] fix: brazilian cpf formatter --- src/br/cpf.spec.ts | 6 ++++++ src/br/cpf.ts | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/br/cpf.spec.ts b/src/br/cpf.spec.ts index a99f800f..e6b3c758 100644 --- a/src/br/cpf.spec.ts +++ b/src/br/cpf.spec.ts @@ -8,6 +8,12 @@ describe('br/cpf', () => { expect(result).toEqual('231.002.999-00'); }); + it('format: 216.957.050-09', () => { + const result = format('216.957.050-09'); + + expect(result).toEqual('216.957.050-09'); + }); + it('validate:390.533.447-05', () => { const result = validate('390.533.447-05'); diff --git a/src/br/cpf.ts b/src/br/cpf.ts index 51495f0d..d3483abc 100644 --- a/src/br/cpf.ts +++ b/src/br/cpf.ts @@ -47,7 +47,7 @@ const impl: Validator = { format(input: string): string { const [value] = clean(input); - const [a, b, c, d] = strings.splitAt(value, 3, 6, input.length - 2); + const [a, b, c, d] = strings.splitAt(value, 3, 6, 9, 11); return `${a}.${b}.${c}-${d}`; }, From c0539662403b24127c109fc2a8411c3b9ef58dab Mon Sep 17 00:00:00 2001 From: Jureg Date: Tue, 18 Nov 2025 15:22:36 -0300 Subject: [PATCH 2/2] add: validation document length --- src/br/cpf.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/br/cpf.ts b/src/br/cpf.ts index d3483abc..48898e04 100644 --- a/src/br/cpf.ts +++ b/src/br/cpf.ts @@ -47,6 +47,10 @@ const impl: Validator = { format(input: string): string { const [value] = clean(input); + if (value.length !== 11) { + throw new exceptions.InvalidLength('CPF must have 11 digits.'); + } + const [a, b, c, d] = strings.splitAt(value, 3, 6, 9, 11); return `${a}.${b}.${c}-${d}`;