validation-br 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/test/cnh.test.js +116 -0
  2. package/dist/test/cnh.test.js.map +1 -0
  3. package/dist/test/cnpj.test.js +181 -0
  4. package/dist/test/cnpj.test.js.map +1 -0
  5. package/dist/test/cpf.test.js +136 -0
  6. package/dist/test/cpf.test.js.map +1 -0
  7. package/dist/test/index.test.js +83 -0
  8. package/dist/test/index.test.js.map +1 -0
  9. package/dist/test/judicialProcess.test.js +124 -0
  10. package/dist/test/judicialProcess.test.js.map +1 -0
  11. package/dist/test/nup17.test.js +133 -0
  12. package/dist/test/nup17.test.js.map +1 -0
  13. package/dist/test/pisPasep.test.js +135 -0
  14. package/dist/test/pisPasep.test.js.map +1 -0
  15. package/dist/test/postalCode.test.js +123 -0
  16. package/dist/test/postalCode.test.js.map +1 -0
  17. package/dist/test/renavam.test.js +91 -0
  18. package/dist/test/renavam.test.js.map +1 -0
  19. package/dist/test/tituloEleitor.test.js +118 -0
  20. package/dist/test/tituloEleitor.test.js.map +1 -0
  21. package/dist/test/utils-applyMask.test.js +15 -0
  22. package/dist/test/utils-applyMask.test.js.map +1 -0
  23. package/dist/test/utils-checkRepeatedSequence.test.js +18 -0
  24. package/dist/test/utils-checkRepeatedSequence.test.js.map +1 -0
  25. package/dist/test/utils-clearValue.test.js +59 -0
  26. package/dist/test/utils-clearValue.test.js.map +1 -0
  27. package/dist/test/utils-fakeNumber.test.js +24 -0
  28. package/dist/test/utils-fakeNumber.test.js.map +1 -0
  29. package/dist/test/utils-insertAtPosition.test.js +16 -0
  30. package/dist/test/utils-insertAtPosition.test.js.map +1 -0
  31. package/dist/test/utils-randomLetter.test.js +11 -0
  32. package/dist/test/utils-randomLetter.test.js.map +1 -0
  33. package/dist/test/utils-removeFromPosition.test.js +12 -0
  34. package/dist/test/utils-removeFromPosition.test.js.map +1 -0
  35. package/dist/test/utils-sumElementsByMultipliers.test.js +23 -0
  36. package/dist/test/utils-sumElementsByMultipliers.test.js.map +1 -0
  37. package/dist/test/utils-sumToDV.test.d.ts +1 -0
  38. package/dist/test/utils-sumToDV.test.js +14 -0
  39. package/dist/test/utils-sumToDV.test.js.map +1 -0
  40. package/jest.config.js +1 -1
  41. package/package.json +2 -2
  42. package/readme.md +216 -184
  43. package/test/cnh.test.ts +113 -0
  44. package/test/cnpj.test.ts +179 -0
  45. package/test/cpf.test.ts +124 -0
  46. package/test/index.test.ts +85 -0
  47. package/test/judicialProcess.test.ts +120 -0
  48. package/test/nup17.test.ts +127 -0
  49. package/test/pisPasep.test.ts +126 -0
  50. package/test/postalCode.test.ts +114 -0
  51. package/test/renavam.test.ts +77 -0
  52. package/test/tituloEleitor.test.ts +110 -0
  53. package/test/utils-applyMask.test.ts +13 -0
  54. package/test/utils-checkRepeatedSequence.test.ts +17 -0
  55. package/test/utils-clearValue.test.ts +69 -0
  56. package/test/utils-fakeNumber.test.ts +28 -0
  57. package/test/utils-insertAtPosition.test.ts +15 -0
  58. package/test/utils-randomLetter.test.ts +9 -0
  59. package/test/utils-removeFromPosition.test.ts +10 -0
  60. package/test/utils-sumElementsByMultipliers.test.ts +24 -0
  61. package/test/utils-sumToDV.test.ts +12 -0
  62. package/tsconfig.json +3 -3
  63. package/.github/workflows/test.yml +0 -39
  64. package/dist/cnh.d.ts +0 -91
  65. package/dist/cnh.js +0 -139
  66. package/dist/cnh.js.map +0 -1
  67. package/dist/cnpj.d.ts +0 -114
  68. package/dist/cnpj.js +0 -180
  69. package/dist/cnpj.js.map +0 -1
  70. package/dist/cpf.d.ts +0 -99
  71. package/dist/cpf.js +0 -147
  72. package/dist/cpf.js.map +0 -1
  73. package/dist/data/ValidationBRError.d.ts +0 -6
  74. package/dist/data/ValidationBRError.js +0 -10
  75. package/dist/data/ValidationBRError.js.map +0 -1
  76. package/dist/index.d.ts +0 -21
  77. package/dist/index.js +0 -42
  78. package/dist/index.js.map +0 -1
  79. package/dist/judicialProcess.d.ts +0 -126
  80. package/dist/judicialProcess.js +0 -190
  81. package/dist/judicialProcess.js.map +0 -1
  82. package/dist/nup17.d.ts +0 -102
  83. package/dist/nup17.js +0 -155
  84. package/dist/nup17.js.map +0 -1
  85. package/dist/pisPasep.d.ts +0 -81
  86. package/dist/pisPasep.js +0 -126
  87. package/dist/pisPasep.js.map +0 -1
  88. package/dist/postalCode.d.ts +0 -83
  89. package/dist/postalCode.js +0 -136
  90. package/dist/postalCode.js.map +0 -1
  91. package/dist/renavam.d.ts +0 -75
  92. package/dist/renavam.js +0 -122
  93. package/dist/renavam.js.map +0 -1
  94. package/dist/tituloEleitor.d.ts +0 -93
  95. package/dist/tituloEleitor.js +0 -143
  96. package/dist/tituloEleitor.js.map +0 -1
  97. package/dist/utils-invalidListGenerator.test.d.ts +0 -1
  98. package/dist/utils-randomLetter.test.d.ts +0 -1
  99. package/dist/utils.d.ts +0 -131
  100. package/dist/utils.js +0 -190
  101. package/dist/utils.js.map +0 -1
  102. /package/dist/{cnh.test.d.ts → test/cnh.test.d.ts} +0 -0
  103. /package/dist/{cnpj.test.d.ts → test/cnpj.test.d.ts} +0 -0
  104. /package/dist/{cpf.test.d.ts → test/cpf.test.d.ts} +0 -0
  105. /package/dist/{index.test.d.ts → test/index.test.d.ts} +0 -0
  106. /package/dist/{judicialProcess.test.d.ts → test/judicialProcess.test.d.ts} +0 -0
  107. /package/dist/{nup17.test.d.ts → test/nup17.test.d.ts} +0 -0
  108. /package/dist/{pisPasep.test.d.ts → test/pisPasep.test.d.ts} +0 -0
  109. /package/dist/{postalCode.test.d.ts → test/postalCode.test.d.ts} +0 -0
  110. /package/dist/{renavam.test.d.ts → test/renavam.test.d.ts} +0 -0
  111. /package/dist/{tituloEleitor.test.d.ts → test/tituloEleitor.test.d.ts} +0 -0
  112. /package/dist/{utils-applyMask.test.d.ts → test/utils-applyMask.test.d.ts} +0 -0
  113. /package/dist/{utils-checkRepeatedSequence.test.d.ts → test/utils-checkRepeatedSequence.test.d.ts} +0 -0
  114. /package/dist/{utils-clearValue.test.d.ts → test/utils-clearValue.test.d.ts} +0 -0
  115. /package/dist/{utils-fakeNumber.test.d.ts → test/utils-fakeNumber.test.d.ts} +0 -0
  116. /package/dist/{utils-insertAtPosition.test.d.ts → test/utils-insertAtPosition.test.d.ts} +0 -0
  117. /package/dist/{utils-removeFromPosition.test.d.ts → test/utils-randomLetter.test.d.ts} +0 -0
  118. /package/dist/{utils-sumElementsByMultipliers.test.d.ts → test/utils-removeFromPosition.test.d.ts} +0 -0
  119. /package/dist/{utils-sumToDV.test.d.ts → test/utils-sumElementsByMultipliers.test.d.ts} +0 -0
package/readme.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # validation-br
2
2
 
3
- Biblioteca de validação de documentos pessoais do Brasil com suporte a CPF, CNPJ (numérico e alfanumérico), Título Eleitoral, PIS/PASEP, CNH. Também valida numerações de outros tipos de registros como RENAVAM, Processos Judiciais, Número de Protocolo do Governo Federal e Objetos registrados de Rastreamento dos Correios.
3
+ > **A primeira biblioteca a inserir o suporte ao CNPJ alfanumérico**
4
4
 
5
- Validation-BR também permite criação de números fake para facilitar o desenvolvimento e testes, além de aplicar máscaras e calcular somente os dígitos verificadores.
5
+ Biblioteca de validação de documentos pessoais do Brasil com suporte a CPF, CNPJ (numérico e **alfanumérico**), Título Eleitoral, PIS/PASEP, CNH.
6
+
7
+ `Validation-BR` também valida numerações de outros tipos de registros como RENAVAM, Processos Judiciais, Número de Protocolo do Governo Federal e Objetos registrados de Rastreamento dos Correios, além de permitir a criação de números fake para facilitar o desenvolvimento e testes, aplicar máscaras e calcular somente os dígitos verificadores.
6
8
 
7
9
  # Instalação
8
10
 
@@ -10,7 +12,6 @@ Validation-BR também permite criação de números fake para facilitar o desenv
10
12
  # Usando yarn
11
13
  yarn add validation-br
12
14
 
13
- ## OU
14
15
  # Usando npm
15
16
  npm install validation-br
16
17
 
@@ -20,69 +21,66 @@ npm install validation-br
20
21
 
21
22
  ## Importação direta
22
23
 
23
- Permite realizar diretamente uma validação a partir do objeto principal
24
-
25
24
  ```js
26
25
  // Modules
27
- const { isCPF, isCNPJ } = require('validation-br')
26
+ const { isCPF, isCNPJ } = require('validation-br');
28
27
 
29
- // ES6
30
- import { isCPF, isCNPJ } from 'validation-br'
28
+ // ES6 - Importação a partir do objeto principal
29
+ import { isCPF, isCNPJ } from 'validation-br';
31
30
  ```
32
31
 
33
32
  ## Importação de submódulos
34
33
 
35
34
  Importando os submódulos, é possível criar máscaras, números fake para testes de desenvolvimento e calcular dígitos verificadores.
36
35
 
37
- ### Exemplos
36
+ > As funções dos exemplos abaixo se aplicam a todos os tipos de documentos.
38
37
 
39
38
  ```js
40
- // ES6
41
- import { dv, fake, mask, validate } from 'validation-br/dist/cpf'
42
- // ou
43
- import * as cpf from 'validation-br/dist/cpf'
39
+ // Importação direta
40
+ import { isCPF } from 'validation-br';
41
+ isCPF('01234567890'); // -> true
42
+ isCPF('01234567891'); // -> false
44
43
 
45
- // CommonJS
46
- const cpf = require('validation-br/dist/cpf')
47
- const { dv, fake, mask, validate } = require('validation-br/dist/cpf')
44
+ // Importe de submódulos
45
+ import { dv, fake, mask, validate } from 'validation-br/dist/cpf';
48
46
 
49
47
  // Calculo do dígito verificador de um CPF. Os métodos aceitam inteiros e strings, inclusive com máscaras.
50
- cpf.dv(906259666) // -> '51'
51
- cpf.dv('906259666') // -> '51'
52
- cpf.dv('906.259.666') // -> '51'
48
+ dv(906259666); // -> '51'
49
+ dv('906259666'); // -> '51'
50
+ dv('906.259.666'); // -> '51'
53
51
 
54
52
  // Cria um número fake de CPF para fins de testes.
55
- cpf.fake() // -> 90625966651
53
+ fake(); // -> 90625966651
56
54
  // Passe um parâmetro true para gerar o número com máscara
57
- cpf.fake(true) // -> 906.259.666-51
55
+ fake(true); // -> 906.259.666-51
58
56
 
59
57
  // Aplique uma máscara a um cpf
60
- cpf.mask(90625966651) // -> 906.259.666-51
58
+ mask(90625966651); // -> 906.259.666-51
61
59
 
62
- // Valida um número
63
- cpf.validate('01234567890') // -> true
60
+ // Normalize o número do documento
61
+ normalize('906.259.666-51'); // -> 90625966651
64
62
 
65
63
  // Valida um número e retorna exceção se a validação falhar
66
- cpf.validateOrFail('01234567890') // -> true
64
+ validateOrFail('01234567890'); // -> true
67
65
  ```
68
66
 
69
67
  ## Tabela de Conteúdo
70
68
 
71
69
  ### Funções de Validação
72
70
 
73
- - [isCNH](#isCNH-value-) - Validação do CNH
74
- - [isCPF](#isCPF-value-) - Validação do CPF
75
- - [isCNPJ](#isCNPJ-value-) - Validação do CNPJ
76
- - [isNUP17](#isNUP17-value-) - Validação de Número Unificado de Protocolo do Governo Federal
77
- - [isJudicialProcess](#isJudicialProcess-value-) - Validação de Números de Processos Judiciais
78
- - [isPIS](#isPIS-value-) - Validação de PIS, PASEP, NIS e NIT
79
- - [isPostalCode](#isPostalCode-value-) - Validação de Objetos Registrados dos Correios
80
- - [isRenavam](#isRenavam-value-) - Validação de RENAVAM
81
- - [isTituloEleitor](#isTituloEleitor-value-) - Validação do Título de Eleitor
71
+ - [CNH](#cnh) - Validação do CNH
72
+ - [CPF](#cpf) - Validação do CPF
73
+ - [CNPJ](#cnpj) - Validação do CNPJ
74
+ - [NUP-17](#nup-17) - Validação de Número Unificado de Protocolo do Governo Federal
75
+ - [Processo Judicial](#processos-judiciais) - Validação de Números de Processos Judiciais
76
+ - [PIS](#pis) - Validação de PIS, PASEP, NIS e NIT
77
+ - [Código de Rastreamento Postal](#código-de-rastreamento-postal-dos-correios) - Validação de Objetos Registrados dos Correios
78
+ - [Renavam](#renavam) - Validação de RENAVAM
79
+ - [Titulo de Eleitor](#titulo-de-eleitor) - Validação do Título de Eleitor
82
80
 
83
- ### Usando em outras bibliotecas de validação
81
+ ## Usando em outras bibliotecas de validação
84
82
 
85
- Validation-BR pode ser utilizado em conjunto com quaisquer bibliotecas de validação que permita estender seus métodos.
83
+ `Validation-BR` pode ser utilizado em conjunto com quaisquer bibliotecas de validação que permita estender seus métodos.
86
84
  Abaixo seguem alguns exemplos. Sinta-se convidado a adicionar a sua biblioteca favorita em nosso wiki.
87
85
 
88
86
  - [Vuelidate](https://github.com/klawdyo/validation-br/wiki/Vuelidate) - Usado para validação de estado no vuejs
@@ -91,105 +89,113 @@ Abaixo seguem alguns exemplos. Sinta-se convidado a adicionar a sua biblioteca f
91
89
  - [Joi](https://github.com/klawdyo/validation-br/wiki/Joi) - Joi é um validador de esquemas usado em aplicações node, react, vue etc.
92
90
  - [Yup](https://github.com/klawdyo/validation-br/wiki/Yup) - Yup é usado para validar estado em aplicações react.
93
91
 
94
- ### isCNH( `value` )
92
+ ## CNH
95
93
 
96
94
  Valida o documento da carteira nacional de habilitação.
97
95
 
98
96
  ```js
99
- // Importação somente da validação
100
- import { isCNH } from 'validation-br'
101
- // ou
97
+ // Importação direta
98
+ import { isCNH } from 'validation-br';
99
+ isCNH('69044271146'); //-> true
100
+ isCNH('62472927637'); //-> true
101
+ isCNH('46190476839'); //-> false
102
+
102
103
  // Importação do submódulo
103
- import { validate, mask } from 'validation-br/dist/cnh'
104
- // ou
105
- import * as cnh from 'validation-br/dist/cnh'
104
+ import { validate, mask, normalize, fake, dv } from 'validation-br/dist/cnh';
106
105
 
107
106
  // Valida
108
- isCNH('69044271146') //-> true
109
- isCNH('62472927637') //-> true
110
- isCNH('46190476839') //-> false
111
- cnh.validate('62472927637') //-> true
112
- cnh.validateOrFail('62472927637') //-> true
107
+ validate('624729276-37'); //-> true
108
+ validateOrFail('62472927637'); //-> true
113
109
 
114
110
  // Número fake com e sem máscara
115
- cnh.fake() // -> 62472927637
116
- cnh.fake(true) // -> 624729276-37
111
+ fake(); // -> 62472927637
112
+ fake(true); // -> 624729276-37
117
113
 
118
114
  // Aplica uma máscara
119
- cnh.mask('62472927637') // -> 624729276-37
115
+ mask('62472927637'); // -> 624729276-37
116
+
117
+ // Normalize o número do documento
118
+ normalize('624729276-37'); // -> 62472927637
120
119
 
121
120
  // Calcula o DV
122
- cnh.dv('624729276') // -> '37'
121
+ dv('624729276'); // -> '37'
123
122
  ```
124
123
 
125
- ### isCNPJ( `value` )
124
+ ## CNPJ
126
125
 
127
- Valida um CNPJ
126
+ Valida um CNPJ **numérico** e **alfanumérico**.
128
127
 
128
+ > **Primeira biblioteca a inserir o suporte ao CNPJ alfanumérico.**
129
+ >
129
130
  > A partir da [Nota Técnica conjunta COCAD/SUARA/RFB nº 49 de 14 de maio de 2024](https://github.com/user-attachments/files/15851229/Nota.COCAD.SUARA.2024.05.49.CNPJ.Alfanumerico-1.pdf), os números de CNPJ poderão ser alfanuméricos. A alteração entra em uso em 2026.
130
131
 
131
132
  ```js
132
- // Importação somente da validação
133
- import { isCNPJ } from 'validation-br'
133
+ // Importação direta
134
+ import { isCNPJ } from 'validation-br';
135
+ isCNPJ('73.797.980/0001-79'); //-> true
136
+ isCNPJ('55585709000198'); //-> true
137
+ isCNPJ('99362238000180'); //-> false
138
+
134
139
  // ou
135
140
  // Importação do submódulo
136
- import { validate, mask } from 'validation-br/dist/cnpj'
137
- // ou
138
- import * as cnpj from 'validation-br/dist/cnpj'
141
+ import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/cnpj';
139
142
 
140
143
  // Valida
141
- isCNPJ('73.797.980/0001-79') //-> true
142
- isCNPJ('55585709000198') //-> true
143
- isCNPJ('99362238000180') //-> false
144
- cnpj.validate('99362238000180') //-> true
145
- cnpj.validateOrFail('99362238000180') //-> true
144
+
145
+ validate('99362238000180'); //-> true
146
+ validateOrFail('99362238000180'); //-> true
146
147
 
147
148
  // Número fake com e sem máscara
148
- cnpj.fake() // -> 55585709000198
149
- cnpj.fake(true) // -> 55.585.709/0001-98
150
- cnpj.fake({ withMask: true}) // -> 55.585.709/0001-98
151
- cnpj.fake({ withMask: true, alphanumeric: true}) // -> A1.222.333/0001-50
152
- cnpj.fake({ withMask: false, alphanumeric: true}) // -> A1222333/0001-50
149
+ fake(); // -> 55585709000198
150
+ fake(true); // -> 55.585.709/0001-98
151
+ fake({ withMask: true }); // -> 55.585.709/0001-98
152
+ fake({ withMask: true, alphanumeric: true }); // -> A1.222.333/0001-50
153
+ fake({ withMask: false, alphanumeric: true }); // -> A1222333/0001-50
153
154
 
154
155
  // Aplica uma máscara
155
- cnpj.mask('99362238000180') // -> 99.362.238/0001-80
156
+ mask('99362238000180'); // -> 99.362.238/0001-80
157
+
158
+ // Normalize o número do documento
159
+ normalize('99.362.238/0001-80'); // -> 99362238000180
156
160
 
157
161
  // Calcula o DV
158
- cnpj.dv('993622380001') // -> '80'
162
+ dv('993622380001'); // -> '80'
159
163
  ```
160
164
 
161
- ### isCPF( `value` )
165
+ ## CPF
162
166
 
163
167
  Valida um CPF
164
168
 
165
169
  ```js
166
- // Importação somente da validação
167
- import { isCPF } from 'validation-br'
170
+ // Importação direta
171
+ import { isCPF } from 'validation-br';
172
+ isCPF('01234567890'); //-> true
173
+ isCPF('012.345.678-90'); //-> true
174
+ isCPF('01234567891'); //-> false
175
+
168
176
  // ou
169
177
  // Importação do submódulo
170
- import { validate, mask } from 'validation-br/dist/cpf'
171
- // ou
172
- import * as cpf from 'validation-br/dist/cpf'
178
+ import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/cpf';
173
179
 
174
180
  // Valida
175
- isCPF('01234567890') //-> true
176
- isCPF('012.345.678-90') //-> true
177
- isCPF('01234567891') //-> false
178
- cpf.validate('01234567890') //-> true
179
- cpf.validateOrFail('01234567890') //-> true
181
+ validate('01234567890'); //-> true
182
+ validateOrFail('01234567890'); //-> true
180
183
 
181
184
  // Número fake com e sem máscara
182
- cpf.fake() // -> 01234567891
183
- cpf.fake(true) // -> 012.345.678-91
185
+ fake(); // -> 01234567891
186
+ fake(true); // -> 012.345.678-91
184
187
 
185
188
  // Aplica uma máscara
186
- cpf.mask('01234567890') // -> 012.345.678-90
189
+ mask('01234567890'); // -> 012.345.678-90
190
+
191
+ // Normalize o número do documento
192
+ normalize('012.345.678-90'); // -> 01234567890
187
193
 
188
194
  // Calcula o DV
189
- cpf.dv('012345678') // -> '90'
195
+ dv('012345678'); // -> '90'
190
196
  ```
191
197
 
192
- ### isJudicialProcess( `value` )
198
+ ## Processos Judiciais
193
199
 
194
200
  Valida números de processo da esfera judicial. Esta padronização foi adotada em 2010 e de lá para cá todos os processos judiciais abertos no país seguem o mesmo padrão, seja eleitoral, cível, militar etc.
195
201
 
@@ -214,34 +220,41 @@ O número é composto por 6 partes:
214
220
  6. Código da unidade de origem do processo com 4 caracteres
215
221
 
216
222
  ```js
217
- // Importação somente da validação
218
- import { isJudicialProcess } from 'validation-br'
219
- // ou
220
- // Importação do submódulo
221
- import { validate, mask } from 'validation-br/dist/judicialProcess'
222
- // ou
223
- import * as judicialProcess from 'validation-br/dist/judicialProcess'
223
+ // Importação direta
224
+ import { isJudicialProcess } from 'validation-br';
225
+ isJudicialProcess('20802520125150049'); //-> true
226
+ isJudicialProcess('0011006-07.2016.8.20.0100'); //-> true
227
+ isJudicialProcess('00110060720168200101'); //-> false
224
228
 
225
- // Valida
226
- isJudicialProcess('20802520125150049') //-> true
227
- isJudicialProcess('0011006-07.2016.8.20.0100') //-> true
228
- isJudicialProcess('00110060720168200101') //-> false
229
- judicialProcess.validate('00110060720168200100') //-> true
230
- judicialProcess.validateOrFail('00110060720168200100') //-> true
229
+ // Importação do submódulo
230
+ import {
231
+ validate,
232
+ mask,
233
+ dv,
234
+ normalize,
235
+ fake,
236
+ validateOrFail,
237
+ } from 'validation-br/dist/judicialProcess';
238
+
239
+ validate('00110060720168200100'); //-> true
240
+ validateOrFail('00110060720168200100'); //-> true
231
241
 
232
242
  // Número fake com e sem máscara
233
- judicialProcess.fake() // -> 00110060720168200100
234
- judicialProcess.fake(true) // -> 0011006-07.2016.8.20.0100
243
+ fake(); // -> 00110060720168200100
244
+ fake(true); // -> 0011006-07.2016.8.20.0100
235
245
 
236
246
  // Aplica uma máscara
237
- judicialProcess.mask('00110060720168200100') // -> 0011006-07.2016.8.20.0100
247
+ mask('00110060720168200100'); // -> 0011006-07.2016.8.20.0100
248
+
249
+ // Normalize o número do documento
250
+ normalize('0011006-07.2016.8.20.0100'); // -> 00110060720168200100
238
251
 
239
252
  // Calcula o DV.
240
253
  // Obs.: Antes do cálculo, é necessário que o número do processo não possua o dígito verificador para que o resultado seja correto. Isso é necessário pois o DV fica no meio da numeração, na posição 8 e 9.
241
- judicialProcess.dv('001100620168200100') // -> '07'
254
+ dv('001100620168200100'); // -> '07'
242
255
  ```
243
256
 
244
- ### isNUP17( `value` )
257
+ ## NUP-17
245
258
 
246
259
  Válida um Número Unificado de Protocolo de 17 dígitos. Esta numeração é usada pelo Governo Federal como forma única de numerar processos em todas os órgãos do executivo.
247
260
 
@@ -251,64 +264,68 @@ Válida um Número Unificado de Protocolo de 17 dígitos. Esta numeração é us
251
264
  4. Os caracteres 16 a 17 são o dígito verificador
252
265
 
253
266
  ```js
254
- // Importação somente da validação
255
- import { isNUP17 } from 'validation-br'
267
+ // Importação direta
268
+ import { isNUP17 } from 'validation-br';
269
+ isNUP17('23037001462202165'); //-> true
270
+ isNUP17('23037.001462/2021-65'); //-> true
271
+ isNUP17('23037.001462/2021-66'); //-> false
272
+
256
273
  // ou
257
274
  // Importação do submódulo
258
- import { validate, mask } from 'validation-br/dist/nup17'
259
- // ou
260
- import * as nup from 'validation-br/dist/nup17'
275
+ import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/nup17';
261
276
 
262
277
  // Valida
263
- isNUP17('23037001462202165') //-> true
264
- isNUP17('23037.001462/2021-65') //-> true
265
- isNUP17('23037.001462/2021-66') //-> false
266
- nup.validate('23037.001462/2021-65') //-> true
267
- nup.validateOrFail('23037.001462/2021-65') //-> true
278
+ validate('23037.001462/2021-65'); //-> true
279
+ validateOrFail('23037.001462/2021-65'); //-> true
268
280
 
269
281
  // Número fake com e sem máscara
270
- nup.fake() // -> 71282677380
271
- nup.fake(true) // -> 712.82677.38-0
282
+ fake(); // -> 23037001462202165
283
+ fake(true); // -> 23037.001462/2021-65
272
284
 
273
285
  // Aplica uma máscara
274
- nup.mask('23037001462202165') // -> 23037.001462/2021-65
286
+ mask('23037001462202165'); // -> 23037.001462/2021-65
287
+
288
+ // Normalize o número do documento
289
+ normalize('23037.001462/2021-65'); // -> 23037001462202165
275
290
 
276
291
  // Calcula o DV
277
- nup.dv('230370014622021') // -> '65'
292
+ dv('230370014622021'); // -> '65'
278
293
  ```
279
294
 
280
- ### isPIS( `value` )
295
+ ## PIS
281
296
 
282
297
  Valida códigos PIS, PASEP, NIS e NIT, que usam o mesmo algoritmo. Aceita números com e sem pontos e traços.
283
298
 
284
299
  ```js
285
- // Importação somente da validação
286
- import { isPIS } from 'validation-br'
300
+ // Importação direta
301
+ import { isPIS } from 'validation-br';
302
+ isPIS('71282677380'); //-> true
303
+ isPIS('237.95126.95-5'); //-> true
304
+ isPIS('500.12973.80-1'); //-> false
305
+
287
306
  // ou
288
307
  // Importação do submódulo
289
- import { validate, mask } from 'validation-br/dist/pisPasep'
290
- // ou
291
- import * as pis from 'validation-br/dist/pisPasep'
308
+ import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/pisPasep';
292
309
 
293
310
  // Valida
294
- isPIS('71282677380') //-> true
295
- isPIS('237.95126.95-5') //-> true
296
- isPIS('500.12973.80-1') //-> false
297
- pis.validate('71282677380') //-> true
298
- pis.validateOrFail('71282677380') //-> true
311
+ validate('71282677380'); //-> true
312
+ validateOrFail('71282677380'); //-> true
299
313
 
300
314
  // Número fake com e sem máscara
301
- pis.fake() // -> 71282677380
302
- pis.fake(true) // -> 712.82677.38-0
315
+ fake(); // -> 71282677380
316
+ fake(true); // -> 712.82677.38-0
317
+
318
+ // Normalize o número do documento
319
+ normalize('712.82677.38-0'); // -> 71282677380
303
320
 
304
321
  // Aplica uma máscara
305
- pis.mask('71282677380') // -> 712.82677.38-0
322
+ mask('71282677380'); // -> 712.82677.38-0
306
323
 
307
324
  // Calcula o DV
308
- pis.dv('7128267738') // -> '0'
325
+ dv('7128267738'); // -> '0'
309
326
  ```
310
327
 
311
- ### isPostalCode( `value` )
328
+ ## Código de Rastreamento Postal dos Correios
312
329
 
313
330
  Valida um código de rastreamento de objetos postais no formato XX00000000DYY, onde:
314
331
 
@@ -318,112 +335,127 @@ Valida um código de rastreamento de objetos postais no formato XX00000000DYY, o
318
335
  - YY: País de origem do objeto com 2 dígitos.
319
336
 
320
337
  ```js
321
- // Importação somente da validação
322
- import { isPostalCode } from 'validation-br'
338
+ // Importação direta
339
+ import { isPostalCode } from 'validation-br';
340
+ isPostalCode('PN718252423BR'); //-> true
341
+ isPostalCode('RY728187035CN'); //-> true
342
+ isPostalCode('JT194624698BR'); //-> false
343
+
323
344
  // ou
324
345
  // Importação do submódulo
325
- import { validate, mask } from 'validation-br/dist/postalCode'
326
- // ou
327
- import * as postalCode from 'validation-br/dist/postalCode'
346
+ import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/postalCode';
328
347
 
329
348
  // Valida
330
- isPostalCode('PN718252423BR') //-> true
331
- isPostalCode('RY728187035CN') //-> true
332
- isPostalCode('JT194624698BR') //-> false
333
- postalCode.validate('PN718252423BR') //-> true
334
- postalCode.validateOrFail('PN718252423BR') //-> true
349
+ validate('PN718252423BR'); //-> true
350
+ validateOrFail('PN718252423BR'); //-> true
335
351
 
336
352
  // Número fake com e sem máscara.
337
- postalCode.fake() // -> PN718252423BR
338
- postalCode.fake(true) // -> PN718252423BR
353
+ fake(); // -> PN718252423BR
354
+ fake(true); // -> PN718252423BR
339
355
 
340
356
  // Aplica uma máscara
341
- // No caso de PostalCode, a máscara apenas coloca as letras em maiúsculas
342
- postalCode.mask('pn718252423br') // -> PN718252423BR
357
+ // No caso de PostalCode, a máscara apenas coloca as letras em maiúsculas, servindo como normalização
358
+ mask('pn718252423br'); // -> PN718252423BR
359
+
360
+ // Normalize o número do documento
361
+ normalize('pn718252423br'); // -> PN718252423BR
343
362
 
344
363
  // Calcula o DV
345
- postalCode.dv('PN718252423BR') // -> '3'
364
+ dv('PN718252423BR'); // -> '3'
346
365
  ```
347
366
 
348
- ### isRenavam( `value` )
367
+ ## RENAVAM
349
368
 
350
369
  Valida o número de um RENAVAM de 11 dígitos
351
370
 
352
371
  ```js
353
- // Importação somente da validação
354
- import { isRenavam } from 'validation-br'
372
+ // Importação direta
373
+ import { isRenavam } from 'validation-br';
374
+ isRenavam('14283256656'); //-> true
375
+ isRenavam('95059845976'); //-> true
376
+ isRenavam('67747331626'); //-> false
377
+
355
378
  // ou
356
379
  // Importação do submódulo
357
- import { validate, mask } from 'validation-br/dist/renavam'
358
- // ou
359
- import * as renavam from 'validation-br/dist/renavam'
380
+ import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/renavam';
360
381
 
361
382
  // Valida
362
- isRenavam('14283256656') //-> true
363
- isRenavam('95059845976') //-> true
364
- isRenavam('67747331626') //-> false
365
- renavam.validate('95059845976') //-> true
366
- renavam.validateOrFail('95059845976') //-> true
383
+ validate('95059845976'); //-> true
384
+ validateOrFail('95059845976'); //-> true
367
385
 
368
386
  // Número fake com e sem máscara
369
- renavam.fake() // -> 95059845976
370
- renavam.fake(true) // -> 9505984597-6
387
+ fake(); // -> 95059845976
388
+ fake(true); // -> 9505984597-6
389
+
390
+ // Normaliza o número do documento
391
+ normalize('9505984597-6'); // -> 95059845976
371
392
 
372
393
  // Aplica uma máscara
373
- renavam.mask('95059845976') // -> 9505984597-6
394
+ mask('95059845976'); // -> 9505984597-6
374
395
 
375
396
  // Calcula o DV
376
- renavam.dv('950598459') // -> '76'
397
+ dv('950598459'); // -> '76'
377
398
  ```
378
399
 
379
- ### isTituloEleitor( `value` )
400
+ ## Título de Eleitor
380
401
 
381
402
  Valida um título eleitoral
382
403
 
383
404
  ```js
384
- // Importação somente da validação
385
- import { isTituloEleitor } from 'validation-br'
386
- // ou
405
+ // Importação direta
406
+ import { isTituloEleitor } from 'validation-br';
407
+ isTituloEleitor('743650641660'); //-> true
408
+ isTituloEleitor('525028881694'); //-> true
409
+ isTituloEleitor('153016161686'); //-> false
410
+
387
411
  // Importação do submódulo
388
- import { validate, mask } from 'validation-br/dist/tituloEleitor'
389
- // ou
390
- import * as titulo from 'validation-br/dist/tituloEleitor'
412
+ import {
413
+ validate,
414
+ mask,
415
+ dv,
416
+ normalize,
417
+ fake,
418
+ validateOrFail,
419
+ } from 'validation-br/dist/tituloEleitor';
391
420
 
392
421
  // Valida
393
- isTituloEleitor('743650641660') //-> true
394
- isTituloEleitor('525028881694') //-> true
395
- isTituloEleitor('153016161686') //-> false
396
- titulo.validate('01234567890') //-> true
397
- titulo.validateOrFail('01234567890') //-> true
422
+ validate('01234567890'); //-> true
423
+ validateOrFail('01234567890'); //-> true
398
424
 
399
425
  // Número fake com e sem máscara
400
- titulo.fake() // -> 153016161686
401
- titulo.fake(true) // -> 1530.1616.1686
426
+ fake(); // -> 153016161686
427
+ fake(true); // -> 1530.1616.1686
428
+
429
+ // Normalize o número do documento
430
+ normalize('1530.1616.1686'); // -> 153016161686
402
431
 
403
432
  // Aplica uma máscara
404
- titulo.mask('525028881694') // -> 5250.2888.1694
433
+ mask('525028881694'); // -> 5250.2888.1694
405
434
 
406
435
  // Calcula o DV
407
- titulo.dv('5250288816') // -> '94'
436
+ dv('5250288816'); // -> '94'
408
437
  ```
409
438
 
410
439
  # Testes
411
440
 
412
441
  Todos os testes passando com 100% de cobertura
413
442
 
414
- ![Testes passando com 100% de cobertura](https://github.com/klawdyo/validation-br/assets/100168/bb83df1e-774c-4a92-bf83-7b451682264e)
443
+ ![Testes passando com 100% de cobertura](https://github.com/user-attachments/assets/195a6acb-3a8a-4370-b503-184b8240fe66)
415
444
 
416
445
  # Github Actions
417
446
 
418
447
  Github actions executados nas versões 18, 20 e 22 do Node.
419
448
 
420
- ![Github actions executados nas versões 12, 14, 16, 18 e 20 do Node](https://github.com/klawdyo/validation-br/assets/100168/50f5b3c3-f1b0-46ac-a6b1-e31a366b27c7)
449
+ ![Github actions executados nas versões 18, 20 e 22 do Node](https://github.com/user-attachments/assets/72799ba2-757c-497a-b958-b2de948fd666)
421
450
 
422
451
  # Changelog
423
452
 
453
+ - **25/12/2025**:
454
+ - 1.6.0
455
+ - Incluída a função normalize() que retorna o valor normalizado, somente números (ou letras maiúsculas quando couber).
424
456
  - **16/12/2023**:
425
457
  - 1.5.0
426
- - CNPJ alfanumérico
458
+ - CNPJ alfanumérico
427
459
  - Removidos github actions dos node 12, 14 e 16 e acrescentado o 22
428
460
  - **16/12/2023**:
429
461
  - 1.4.5