Skip to content

Commit 0dd3181

Browse files
Merge branch 'main' into feat/adds-tools-for-handling-brazilian-passports
2 parents 5ee583e + 6a800a3 commit 0dd3181

20 files changed

Lines changed: 350 additions & 4 deletions

docs/pt-br/utilities.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,16 @@ formatCpf('74650688000'); // 746.506.880-00
2323
formatCpf('746506880', { pad: true }); // 007.465.068-80
2424
```
2525

26+
## parseCpf
27+
28+
Remove a formatação do CPF e retorna apenas os dígitos.
29+
30+
```javascript
31+
import { parseCpf } from '@brazilian-utils/brazilian-utils';
32+
33+
parseCpf('746.506.880-00'); // 74650688000
34+
```
35+
2636
## generateCpf
2737

2838
Gera um CPF válido aleatório.
@@ -55,6 +65,17 @@ formatCnpj('245222000174', { pad: true }); // 00.245.222/0001-74
5565
formatCnpj('12OUT345000199', { version: 2 }); // 12.OUT.345/0001-99
5666
```
5767

68+
## parseCnpj
69+
70+
Remove a formatação do CNPJ e retorna um valor normalizado.
71+
72+
```javascript
73+
import { parseCnpj } from '@brazilian-utils/brazilian-utils';
74+
75+
parseCnpj('24.522.200/0001-74'); // 24522200000174
76+
parseCnpj('12.OUT.345/0001-99', { version: 2 }); // 12OUT345000199
77+
```
78+
5879
## generateCnpj
5980

6081
Gera um CNPJ válido aleatório.
@@ -96,6 +117,16 @@ formatBoleto('00190000090114971860168524522114675860000102656'); // 00190.00009
96117
formatBoleto('1900000901149', { pad: true }); // 00000.00000 00000.000019 00000.901149 0 00000000000000
97118
```
98119

120+
## parseBoleto
121+
122+
Remove a formatação do boleto e retorna apenas os dígitos.
123+
124+
```javascript
125+
import { parseBoleto } from '@brazilian-utils/brazilian-utils';
126+
127+
parseBoleto('00190.00009 01149.718601 68524.522114 6 75860000102656'); // 00190000090114971860168524522114675860000102656
128+
```
129+
99130
## generateBoleto
100131

101132
Gera um boleto válido aleatório.
@@ -149,6 +180,16 @@ formatPhone('11900000000', { mask: 'nanp' }); // (11) 90000-0000
149180
formatPhone('11900000000', { mask: 'auto' }); // Detecta automaticamente a máscara baseado no comprimento
150181
```
151182

183+
## parsePhone
184+
185+
Remove a formatação do telefone e retorna apenas os dígitos.
186+
187+
```javascript
188+
import { parsePhone } from '@brazilian-utils/brazilian-utils';
189+
190+
parsePhone('(11) 90000-0000'); // 11900000000
191+
```
192+
152193
## isValidMobilePhone
153194

154195
Valida se o número de telefone celular é válido.
@@ -215,6 +256,16 @@ formatPis('12345678901'); // 123.45678.90-1
215256
formatPis('123456789', { pad: true }); // 001.23456.78-9
216257
```
217258

259+
## parsePis
260+
261+
Remove a formatação do PIS e retorna apenas os dígitos.
262+
263+
```javascript
264+
import { parsePis } from '@brazilian-utils/brazilian-utils';
265+
266+
parsePis('123.45678.90-1'); // 12345678901
267+
```
268+
218269
## formatCep
219270

220271
Formata o CEP.
@@ -225,6 +276,16 @@ import { formatCep } from '@brazilian-utils/brazilian-utils';
225276
formatCep('92500000'); // 92500-000
226277
```
227278

279+
## parseCep
280+
281+
Remove a formatação do CEP e retorna apenas os dígitos.
282+
283+
```javascript
284+
import { parseCep } from '@brazilian-utils/brazilian-utils';
285+
286+
parseCep('92500-000'); // 92500000
287+
```
288+
228289
## getAddressInfoByCep
229290

230291
Busca informações de endereço para um CEP usando múltiplos provedores.
@@ -265,6 +326,16 @@ import { formatProcessoJuridico } from '@brazilian-utils/brazilian-utils';
265326
formatProcessoJuridico('00020802520125150049'); // 0002080-25.2012.515.0049
266327
```
267328

329+
## parseProcessoJuridico
330+
331+
Remove a formatação do processo jurídico e retorna apenas os dígitos.
332+
333+
```javascript
334+
import { parseProcessoJuridico } from '@brazilian-utils/brazilian-utils';
335+
336+
parseProcessoJuridico('0002080-25.2012.515.0049'); // 00020802520125150049
337+
```
338+
268339
## isValidIe
269340

270341
Valida se a inscrição estadual de um estado é válida.

docs/utilities.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,16 @@ formatCpf('74650688000'); // 746.506.880-00
2323
formatCpf('746506880', { pad: true }); // 007.465.068-80
2424
```
2525

26+
## parseCpf
27+
28+
Remove CPF formatting and return only digits.
29+
30+
```javascript
31+
import { parseCpf } from '@brazilian-utils/brazilian-utils';
32+
33+
parseCpf('746.506.880-00'); // 74650688000
34+
```
35+
2636
## generateCpf
2737

2838
Generate a valid random CPF.
@@ -55,6 +65,17 @@ formatCnpj('245222000174', { pad: true }); // 00.245.222/0001-74
5565
formatCnpj('12OUT345000199', { version: 2 }); // 12.OUT.345/0001-99
5666
```
5767

68+
## parseCnpj
69+
70+
Remove CNPJ formatting and return a normalized value.
71+
72+
```javascript
73+
import { parseCnpj } from '@brazilian-utils/brazilian-utils';
74+
75+
parseCnpj('24.522.200/0001-74'); // 24522200000174
76+
parseCnpj('12.OUT.345/0001-99', { version: 2 }); // 12OUT345000199
77+
```
78+
5879
## isValidCep
5980

6081
Check if CEP ([brazilian postal code](https://en.wikipedia.org/wiki/C%C3%B3digo_de_Endere%C3%A7amento_Postal)) is valid.
@@ -96,6 +117,16 @@ formatBoleto('00190000090114971860168524522114675860000102656'); // 00190.00009
96117
formatBoleto('1900000901149', { pad: true }); // 00000.00000 00000.000019 00000.901149 0 00000000000000
97118
```
98119

120+
## parseBoleto
121+
122+
Remove boleto formatting and return only digits.
123+
124+
```javascript
125+
import { parseBoleto } from '@brazilian-utils/brazilian-utils';
126+
127+
parseBoleto('00190.00009 01149.718601 68524.522114 6 75860000102656'); // 00190000090114971860168524522114675860000102656
128+
```
129+
99130
## generateBoleto
100131

101132
Generate a valid random boleto.
@@ -149,6 +180,16 @@ formatPhone('11900000000', { mask: 'nanp' }); // (11) 90000-0000
149180
formatPhone('11900000000', { mask: 'auto' }); // Automatically detects mask based on length
150181
```
151182

183+
## parsePhone
184+
185+
Remove phone formatting and return only digits.
186+
187+
```javascript
188+
import { parsePhone } from '@brazilian-utils/brazilian-utils';
189+
190+
parsePhone('(11) 90000-0000'); // 11900000000
191+
```
192+
152193
## isValidMobilePhone
153194

154195
Check if mobile phone number is valid.
@@ -215,6 +256,16 @@ formatPis('12345678901'); // 123.45678.90-1
215256
formatPis('123456789', { pad: true }); // 001.23456.78-9
216257
```
217258

259+
## parsePis
260+
261+
Remove PIS formatting and return only digits.
262+
263+
```javascript
264+
import { parsePis } from '@brazilian-utils/brazilian-utils';
265+
266+
parsePis('123.45678.90-1'); // 12345678901
267+
```
268+
218269
## formatCep
219270

220271
Format CEP ([brazilian postal code](https://en.wikipedia.org/wiki/C%C3%B3digo_de_Endere%C3%A7amento_Postal)).
@@ -225,6 +276,16 @@ import { formatCep } from '@brazilian-utils/brazilian-utils';
225276
formatCep('92500000'); // 92500-000
226277
```
227278

279+
## parseCep
280+
281+
Remove CEP formatting and return only digits.
282+
283+
```javascript
284+
import { parseCep } from '@brazilian-utils/brazilian-utils';
285+
286+
parseCep('92500-000'); // 92500000
287+
```
288+
228289
## getAddressInfoByCep
229290

230291
Fetch address information for a given CEP using multiple providers.
@@ -265,6 +326,16 @@ import { formatProcessoJuridico } from '@brazilian-utils/brazilian-utils';
265326
formatProcessoJuridico('00020802520125150049'); // 0002080-25.2012.515.0049
266327
```
267328

329+
## parseProcessoJuridico
330+
331+
Remove processo jurídico formatting and return only digits.
332+
333+
```javascript
334+
import { parseProcessoJuridico } from '@brazilian-utils/brazilian-utils';
335+
336+
parseProcessoJuridico('0002080-25.2012.515.0049'); // 00020802520125150049
337+
```
338+
268339
## isValidIe
269340

270341
Check if inscrição estadual (state registration) is valid.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@brazilian-utils/brazilian-utils",
3-
"version": "2.0.1",
3+
"version": "2.1.0",
44
"license": "MIT",
55
"description": "Brazilian Utils is a library focused on solving problems that we face daily in the development of applications for the Brazilian business.",
66
"repository": "https://github.com/brazilian-utils/javascript",

src/_internals/constants/cities.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3745,7 +3745,6 @@ export const DATA = {
37453745
],
37463746
RN: [
37473747
"Acari",
3748-
"Açu",
37493748
"Afonso Bezerra",
37503749
"Água Nova",
37513750
"Alexandria",
@@ -3755,7 +3754,8 @@ export const DATA = {
37553754
"Antônio Martins",
37563755
"Apodi",
37573756
"Areia Branca",
3758-
"Arês",
3757+
"Arez",
3758+
"Assú",
37593759
"Baía Formosa",
37603760
"Baraúna",
37613761
"Barcelona",
@@ -3980,7 +3980,7 @@ export const DATA = {
39803980
"Pacaraima",
39813981
"Rorainópolis",
39823982
"São João da Baliza",
3983-
"São Luiz",
3983+
"São Luiz do Anauá",
39843984
"Uiramutã",
39853985
],
39863986
RS: [

src/index.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,19 @@ const PUBLIC = [
2222
"formatCpf",
2323
"formatCurrency",
2424
"formatPhone",
25+
"parseBoleto",
26+
"parseCep",
27+
"parseCnpj",
28+
"parseCpf",
2529
"parseCurrency",
2630
"isValidPassport",
2731
"generatePassport",
2832
"parsePassport",
2933
"formatPassport",
34+
"parsePhone",
3035
"formatPis",
36+
"parsePis",
37+
"parseProcessoJuridico",
3138
"getStates",
3239
"getCities",
3340
"getHolidays",

src/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,15 @@ export {
7575
export { isValidPis } from "./is-valid-pis/is-valid-pis";
7676
export { isValidProcessoJuridico } from "./is-valid-processo-juridico/is-valid-processo-juridico";
7777
export { isValidRenavam } from "./is-valid-renavam/is-valid-renavam";
78+
export { parseBoleto } from "./parse-boleto/parse-boleto";
79+
export { parseCep } from "./parse-cep/parse-cep";
80+
export { parseCnpj } from "./parse-cnpj/parse-cnpj";
81+
export { parseCpf } from "./parse-cpf/parse-cpf";
7882
export { parseCurrency } from "./parse-currency/parse-currency";
7983
export { parsePassport } from "./parse-passport/parse-passport";
84+
export { parsePhone } from "./parse-phone/parse-phone";
85+
export { parsePis } from "./parse-pis/parse-pis";
86+
export { parseProcessoJuridico } from "./parse-processo-juridico/parse-processo-juridico";
8087

8188
// ============================================================================
8289
// DEPRECATED EXPORTS - Will be removed in v3.0.0
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { describe, expect, it } from "vitest";
2+
import { parseBoleto } from "./parse-boleto";
3+
4+
describe("parseBoleto", () => {
5+
it("should remove boleto mask characters", () => {
6+
expect(
7+
parseBoleto("10491.44338 55119.000002 00000.000141 3 25230000093423"),
8+
).toBe("10491443385511900000200000000141325230000093423");
9+
});
10+
11+
it("should remove non numeric characters", () => {
12+
expect(
13+
parseBoleto(
14+
"10491.44A338 55119.000002? ABC00000.000?141 3 25230000093423",
15+
),
16+
).toBe("10491443385511900000200000000141325230000093423");
17+
});
18+
});

src/parse-boleto/parse-boleto.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { sanitizeToDigits } from "../_internals/sanitize-to-digits/sanitize-to-digits";
2+
3+
/**
4+
* Removes boleto formatting characters and returns only digits.
5+
*
6+
* @param {string|number} value - The boleto value to be parsed.
7+
* @returns {string} The boleto value without formatting.
8+
*/
9+
export const parseBoleto = (value: string | number): string =>
10+
sanitizeToDigits(value);

src/parse-cep/parse-cep.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { describe, expect, it } from "vitest";
2+
import { parseCep } from "./parse-cep";
3+
4+
describe("parseCep", () => {
5+
it("should remove CEP mask characters", () => {
6+
expect(parseCep("01001-000")).toBe("01001000");
7+
});
8+
9+
it("should remove non numeric characters", () => {
10+
expect(parseCep("a0.10cr01?00#ab0")).toBe("01001000");
11+
});
12+
});

src/parse-cep/parse-cep.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { sanitizeToDigits } from "../_internals/sanitize-to-digits/sanitize-to-digits";
2+
3+
/**
4+
* Removes CEP formatting characters and returns only digits.
5+
*
6+
* @param {string|number} value - The CEP value to be parsed.
7+
* @returns {string} The CEP value without formatting.
8+
*/
9+
export const parseCep = (value: string | number): string =>
10+
sanitizeToDigits(value);

0 commit comments

Comments
 (0)