Skip to content

Commit ba7ee79

Browse files
authored
Merge pull request #477 from brazilian-utils/sync-code-with-python-lib
feat: implement some extra utilities
2 parents 0887ef0 + ea10397 commit ba7ee79

83 files changed

Lines changed: 1956 additions & 99 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/pt-br/utilities.md

Lines changed: 286 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ formatCpf('746506880', { pad: true }); // 007.465.068-80
2525

2626
## parseCpf
2727

28-
Remove a formatação do CPF e retorna apenas os dígitos.
28+
Remove a formatação do CPF, mantém apenas os dígitos e limita o resultado a 11 dígitos.
2929

3030
```javascript
3131
import { parseCpf } from '@brazilian-utils/brazilian-utils';
@@ -67,7 +67,7 @@ formatCnpj('12OUT345000199', { version: 2 }); // 12.OUT.345/0001-99
6767

6868
## parseCnpj
6969

70-
Remove a formatação do CNPJ e retorna um valor normalizado.
70+
Remove a formatação do CNPJ, retorna um valor normalizado e limita o resultado a 14 caracteres.
7171

7272
```javascript
7373
import { parseCnpj } from '@brazilian-utils/brazilian-utils';
@@ -119,7 +119,7 @@ formatBoleto('1900000901149', { pad: true }); // 00000.00000 00000.000019 00000.
119119

120120
## parseBoleto
121121

122-
Remove a formatação do boleto e retorna apenas os dígitos.
122+
Remove a formatação do boleto, mantém apenas os dígitos e limita o resultado a 47 dígitos.
123123

124124
```javascript
125125
import { parseBoleto } from '@brazilian-utils/brazilian-utils';
@@ -182,12 +182,13 @@ formatPhone('11900000000', { mask: 'auto' }); // Detecta automaticamente a másc
182182

183183
## parsePhone
184184

185-
Remove a formatação do telefone e retorna apenas os dígitos.
185+
Remove a formatação do telefone, mantém apenas os dígitos e limita o resultado a 11 dígitos.
186186

187187
```javascript
188188
import { parsePhone } from '@brazilian-utils/brazilian-utils';
189189

190190
parsePhone('(11) 90000-0000'); // 11900000000
191+
parsePhone('+55 (11) 90000-0000'); // 55119000000
191192
```
192193

193194
## isValidMobilePhone
@@ -258,7 +259,7 @@ formatPis('123456789', { pad: true }); // 001.23456.78-9
258259

259260
## parsePis
260261

261-
Remove a formatação do PIS e retorna apenas os dígitos.
262+
Remove a formatação do PIS, mantém apenas os dígitos e limita o resultado a 11 dígitos.
262263

263264
```javascript
264265
import { parsePis } from '@brazilian-utils/brazilian-utils';
@@ -278,7 +279,7 @@ formatCep('92500000'); // 92500-000
278279

279280
## parseCep
280281

281-
Remove a formatação do CEP e retorna apenas os dígitos.
282+
Remove a formatação do CEP, mantém apenas os dígitos e limita o resultado a 8 dígitos.
282283

283284
```javascript
284285
import { parseCep } from '@brazilian-utils/brazilian-utils';
@@ -328,7 +329,7 @@ formatProcessoJuridico('00020802520125150049'); // 0002080-25.2012.515.0049
328329

329330
## parseProcessoJuridico
330331

331-
Remove a formatação do processo jurídico e retorna apenas os dígitos.
332+
Remove a formatação do processo jurídico, mantém apenas os dígitos e limita o resultado a 20 dígitos.
332333

333334
```javascript
334335
import { parseProcessoJuridico } from '@brazilian-utils/brazilian-utils';
@@ -518,7 +519,7 @@ isValidPassport('12345678'); // false
518519

519520
## formatPassport
520521

521-
Formata um número de passaporte brasileiro (maiúsculas, sem símbolos).
522+
Formata um número de passaporte brasileiro (maiúsculas, sem símbolos, limitado a 8 caracteres).
522523

523524
```javascript
524525
import { formatPassport } from '@brazilian-utils/brazilian-utils';
@@ -539,11 +540,287 @@ generatePassport(); // 'RY393097'
539540

540541
## parsePassport
541542

542-
Remove todos os caracteres não alfanuméricos (incluindo '-', '.' e espaços) de um número de passaporte.
543+
Remove todos os caracteres não alfanuméricos de um número de passaporte, converte para maiúsculas e limita o resultado a 8 caracteres.
543544

544545
```javascript
545546
import { parsePassport } from '@brazilian-utils/brazilian-utils';
546547

547548
parsePassport('AB-123.456'); // 'AB123456'
548549
parsePassport(' AB 123 456 '); // 'AB123456'
549550
```
551+
552+
## generateCep
553+
554+
Gera um CEP aleatório.
555+
556+
```javascript
557+
import { generateCep } from '@brazilian-utils/brazilian-utils';
558+
559+
generateCep(); // '92500000'
560+
```
561+
562+
## formatCnh
563+
564+
Formata a CNH.
565+
566+
```javascript
567+
import { formatCnh } from '@brazilian-utils/brazilian-utils';
568+
569+
formatCnh('02650306461'); // 026503064-61
570+
formatCnh('2650306461', { pad: true }); // 026503064-61
571+
```
572+
573+
## isValidCnh
574+
575+
Valida se a CNH é válida.
576+
577+
```javascript
578+
import { isValidCnh } from '@brazilian-utils/brazilian-utils';
579+
580+
isValidCnh('00000000119'); // true
581+
```
582+
583+
## generateCnh
584+
585+
Gera uma CNH válida aleatória.
586+
587+
```javascript
588+
import { generateCnh } from '@brazilian-utils/brazilian-utils';
589+
590+
generateCnh(); // '02650306461'
591+
```
592+
593+
## parseCnh
594+
595+
Remove a formatação da CNH, mantém apenas os dígitos e limita o resultado a 11 dígitos.
596+
597+
```javascript
598+
import { parseCnh } from '@brazilian-utils/brazilian-utils';
599+
600+
parseCnh('026503064-61'); // '02650306461'
601+
```
602+
603+
## getCepInfoByAddress
604+
605+
Busca CEPs a partir de um endereço usando a ViaCEP.
606+
607+
```javascript
608+
import { getCepInfoByAddress } from '@brazilian-utils/brazilian-utils';
609+
610+
const ceps = await getCepInfoByAddress({
611+
federalUnit: 'SP',
612+
city: 'Sao Paulo',
613+
street: 'Avenida Paulista'
614+
});
615+
616+
// [
617+
// {
618+
// cep: '01310100',
619+
// logradouro: 'Avenida Paulista',
620+
// complemento: 'lado par',
621+
// bairro: 'Bela Vista',
622+
// localidade: 'São Paulo',
623+
// uf: 'SP'
624+
// }
625+
// ]
626+
```
627+
628+
## generateProcessoJuridico
629+
630+
Gera um número de processo jurídico válido de acordo com a definição do [CNJ](https://www.conjur.com.br/dl/resolucao-65-cnj.pdf).
631+
632+
```javascript
633+
import { generateProcessoJuridico } from '@brazilian-utils/brazilian-utils';
634+
635+
generateProcessoJuridico(); // '00020802520125150049'
636+
generateProcessoJuridico({ year: 2026, court: 5 }); // string | null
637+
```
638+
639+
## formatLegalNature
640+
641+
Formata um código de natureza jurídica.
642+
643+
```javascript
644+
import { formatLegalNature } from '@brazilian-utils/brazilian-utils';
645+
646+
formatLegalNature('2062'); // 206-2
647+
```
648+
649+
## isValidLegalNature
650+
651+
Valida se um código de natureza jurídica existe na lista oficial.
652+
653+
```javascript
654+
import { isValidLegalNature } from '@brazilian-utils/brazilian-utils';
655+
656+
isValidLegalNature('2062'); // true
657+
isValidLegalNature('9999'); // false
658+
```
659+
660+
## generateLegalNature
661+
662+
Gera um código de natureza jurídica válido aleatório.
663+
664+
```javascript
665+
import { generateLegalNature } from '@brazilian-utils/brazilian-utils';
666+
667+
generateLegalNature(); // '2062'
668+
```
669+
670+
## parseLegalNature
671+
672+
Remove a formatação da natureza jurídica, mantém apenas os dígitos e limita o resultado a 4 dígitos.
673+
674+
```javascript
675+
import { parseLegalNature } from '@brazilian-utils/brazilian-utils';
676+
677+
parseLegalNature('206-2'); // '2062'
678+
```
679+
680+
## getLegalNatures
681+
682+
Retorna o mapa de naturezas jurídicas indexado pelo código.
683+
684+
```javascript
685+
import { getLegalNatures } from '@brazilian-utils/brazilian-utils';
686+
687+
const legalNatures = getLegalNatures();
688+
689+
legalNatures['2062']; // 'Sociedade Empresária Limitada'
690+
```
691+
692+
## generatePhone
693+
694+
Gera um telefone brasileiro aleatório.
695+
696+
```javascript
697+
import { generatePhone } from '@brazilian-utils/brazilian-utils';
698+
699+
generatePhone(); // '11912345678' ou '1131234567'
700+
generatePhone('mobile'); // '11912345678'
701+
generatePhone('landline'); // '1131234567'
702+
```
703+
704+
## formatLicensePlate
705+
706+
Formata uma placa. Placas antigas brasileiras são retornadas com hífen e placas Mercosul permanecem normalizadas.
707+
708+
```javascript
709+
import { formatLicensePlate } from '@brazilian-utils/brazilian-utils';
710+
711+
formatLicensePlate('abc1234'); // 'ABC-1234'
712+
formatLicensePlate('abc1d23'); // 'ABC1D23'
713+
```
714+
715+
## generateLicensePlate
716+
717+
Gera uma placa aleatória no formato escolhido.
718+
719+
```javascript
720+
import { generateLicensePlate } from '@brazilian-utils/brazilian-utils';
721+
722+
generateLicensePlate(); // 'ABC1D23'
723+
generateLicensePlate('LLLNNNN'); // 'ABC1234'
724+
generateLicensePlate('LLLNNLN'); // 'ABC12D3'
725+
```
726+
727+
## getFormatLicensePlate
728+
729+
Detecta o formato normalizado de uma placa.
730+
731+
```javascript
732+
import { getFormatLicensePlate } from '@brazilian-utils/brazilian-utils';
733+
734+
getFormatLicensePlate('ABC-1234'); // 'LLLNNNN'
735+
getFormatLicensePlate('ABC1D23'); // 'LLLNLNN'
736+
getFormatLicensePlate('ABC12D3'); // 'LLLNNLN'
737+
getFormatLicensePlate('INVALID'); // null
738+
```
739+
740+
## parseLicensePlate
741+
742+
Remove separadores de uma placa, normaliza para letras maiúsculas e limita o resultado a 7 caracteres.
743+
744+
```javascript
745+
import { parseLicensePlate } from '@brazilian-utils/brazilian-utils';
746+
747+
parseLicensePlate('abc-1234'); // 'ABC1234'
748+
```
749+
750+
## generatePis
751+
752+
Gera um PIS válido aleatório.
753+
754+
```javascript
755+
import { generatePis } from '@brazilian-utils/brazilian-utils';
756+
757+
generatePis(); // '12345678901'
758+
```
759+
760+
## getMunicipality
761+
762+
Busca informações de município por código IBGE, ou obtém o código IBGE a partir do nome do município e UF.
763+
764+
```javascript
765+
import { getMunicipality } from '@brazilian-utils/brazilian-utils';
766+
767+
await getMunicipality({ code: '3550308' });
768+
// ['São Paulo', 'SP']
769+
770+
await getMunicipality({ municipalityName: 'São Paulo', uf: 'SP' });
771+
// '3550308'
772+
```
773+
774+
## isHoliday
775+
776+
Verifica se uma data específica é feriado brasileiro.
777+
778+
```javascript
779+
import { isHoliday } from '@brazilian-utils/brazilian-utils';
780+
781+
isHoliday({ targetDate: new Date('2024-01-01') }); // true
782+
isHoliday({ targetDate: new Date('2024-07-09'), stateCode: 'SP' }); // true
783+
```
784+
785+
## formatVoterId
786+
787+
Formata um título de eleitor.
788+
789+
```javascript
790+
import { formatVoterId } from '@brazilian-utils/brazilian-utils';
791+
792+
formatVoterId('123456780175'); // '1234 5678 01 75'
793+
```
794+
795+
## isValidVoterId
796+
797+
Valida se um título de eleitor é válido.
798+
799+
```javascript
800+
import { generateVoterId, isValidVoterId } from '@brazilian-utils/brazilian-utils';
801+
802+
const voterId = generateVoterId('SP');
803+
804+
isValidVoterId(voterId); // true
805+
```
806+
807+
## generateVoterId
808+
809+
Gera um título de eleitor válido aleatório. Você pode opcionalmente informar a UF.
810+
811+
```javascript
812+
import { generateVoterId } from '@brazilian-utils/brazilian-utils';
813+
814+
generateVoterId(); // título de eleitor aleatório válido
815+
generateVoterId('SP'); // título de eleitor aleatório válido de São Paulo
816+
```
817+
818+
## parseVoterId
819+
820+
Remove a formatação do título de eleitor, mantém apenas os dígitos e limita o resultado a 12 dígitos.
821+
822+
```javascript
823+
import { parseVoterId } from '@brazilian-utils/brazilian-utils';
824+
825+
parseVoterId('1234 5678 01 75'); // '123456780175'
826+
```

0 commit comments

Comments
 (0)