validation-br 0.8.0 → 0.21.1
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.
- package/.babelrc +15 -0
- package/.eslintrc.js +17 -0
- package/.prettierrc +9 -0
- package/LICENSE +21 -0
- package/dist/documents/cnh.js +154 -0
- package/dist/documents/cnh.js.map +1 -0
- package/dist/documents/cnpj.js +139 -0
- package/dist/documents/cnpj.js.map +1 -0
- package/dist/documents/cpf.js +161 -0
- package/dist/documents/cpf.js.map +1 -0
- package/dist/documents/index.js +16 -10
- package/dist/documents/index.js.map +1 -0
- package/dist/documents/judicial-process.js +177 -0
- package/dist/documents/judicial-process.js.map +1 -0
- package/dist/documents/pis-pasep.js +140 -0
- package/dist/documents/pis-pasep.js.map +1 -0
- package/dist/documents/postal-code.js +151 -0
- package/dist/documents/postal-code.js.map +1 -0
- package/dist/documents/renavam.js +97 -0
- package/dist/documents/renavam.js.map +1 -0
- package/dist/documents/titulo-eleitor.js +155 -0
- package/dist/documents/titulo-eleitor.js.map +1 -0
- package/dist/lib/utils.js +176 -0
- package/dist/lib/utils.js.map +1 -0
- package/docs.md +0 -0
- package/index.js +2 -2
- package/package.json +13 -6
- package/readme.md +235 -81
package/readme.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# validation-br
|
|
2
2
|
|
|
3
|
-
Biblioteca de validação de documentos pessoais do Brasil com suporte a CPF, CNPJ, Título Eleitoral, PIS/PASEP, CNH, e Objetos registrados de
|
|
3
|
+
Biblioteca de validação de documentos pessoais do Brasil com suporte a CPF, CNPJ, Título Eleitoral, PIS/PASEP, CNH, RENAVAM, Processos Judiciais e Objetos registrados de Rastreamento dos Correios.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
# Instalação
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
8
|
# Usando yarn
|
|
@@ -14,169 +14,323 @@ npm install validation-br
|
|
|
14
14
|
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
# Importação
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
## Importação direta
|
|
20
|
+
|
|
21
|
+
Permite realizar diretamente uma validação a partir do objeto principal
|
|
20
22
|
|
|
23
|
+
```js
|
|
21
24
|
// Modules
|
|
22
25
|
const { isCPF, isCNPJ } = require('validation-br');
|
|
23
26
|
|
|
24
27
|
// ES6
|
|
25
|
-
import { isCPF, isCNPJ } from
|
|
28
|
+
import { isCPF, isCNPJ } from 'validation-br';
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Importação de submódulos
|
|
32
|
+
|
|
33
|
+
Importando os submódulos, é possível criar máscaras, números fake para testes de desenvolvimento e calcular dígitos verificadores.
|
|
34
|
+
|
|
35
|
+
### Exemplos
|
|
36
|
+
|
|
37
|
+
```js
|
|
38
|
+
// ES6
|
|
39
|
+
import { dv, fake, mask, validate } from 'validation-br/cpf';
|
|
40
|
+
|
|
41
|
+
// Modules
|
|
42
|
+
const cpf = require('validation-br/cpf');
|
|
43
|
+
const { dv, fake, mask, validate } = require('validation-br/cpf');
|
|
26
44
|
|
|
45
|
+
// Calculo do dígito verificador de um CPF. Os métodos aceitam inteiros e strings, inclusive com máscaras.
|
|
46
|
+
cpf.dv(906259666); // -> '51'
|
|
47
|
+
cpf.dv('906259666'); // -> '51'
|
|
48
|
+
cpf.dv('906.259.666'); // -> '51'
|
|
27
49
|
|
|
50
|
+
// Cria um número fake de CPF para fins de testes.
|
|
51
|
+
cpf.fake(); // -> 90625966651
|
|
52
|
+
// Passe um parâmetro true para gerar o número com máscara
|
|
53
|
+
cpf.fake(true); // -> 906.259.666-51
|
|
54
|
+
|
|
55
|
+
// Aplique uma máscara a um cpf
|
|
56
|
+
cpf.mask(90625966651); // -> 906.259.666-51
|
|
57
|
+
|
|
58
|
+
// Valida um número
|
|
59
|
+
cpf.validate('01234567890'); // -> true
|
|
60
|
+
|
|
61
|
+
// Valida um número e retorna exceção se a validação falhar
|
|
62
|
+
cpf.validateOrFail('01234567890'); // -> true
|
|
28
63
|
```
|
|
29
64
|
|
|
30
65
|
## Tabela de Conteúdo
|
|
31
66
|
|
|
67
|
+
- [isCNH](#isCNH) - Validação do CNH
|
|
32
68
|
- [isCPF](#isCPF) - Validação do CPF
|
|
33
69
|
- [isCNPJ](#isCNPJ) - Validação do CNPJ
|
|
34
|
-
- [
|
|
35
|
-
- [
|
|
36
|
-
- [isPostaCode](#isPostaCode) - Validação de Objetos Registrados dos Correios
|
|
70
|
+
- [isPostalCode](#isPostalCode) - Validação de Objetos Registrados dos Correios
|
|
71
|
+
- [isJudicialProcess](#isJudicialProcess) - Validação de Números de Processos Judiciais
|
|
37
72
|
- [isPIS](#isPIS) - Validação de PIS, PASEP, NIS e NIT
|
|
73
|
+
- [isPostalCode](#isPostalCode) - Validação de Objetos Registrados dos Correios
|
|
74
|
+
- [isRenavam](#isRenavam) - Validação de RENAVAM
|
|
75
|
+
- [isTitulo](#isTitulo) - Validação do Título de Eleitor
|
|
38
76
|
|
|
39
|
-
###
|
|
77
|
+
### isCNH( `value` )
|
|
40
78
|
|
|
41
|
-
Valida
|
|
79
|
+
Valida o documento da carteira nacional de habilitação.
|
|
42
80
|
|
|
43
81
|
```js
|
|
44
|
-
// Importação
|
|
45
|
-
import {
|
|
82
|
+
// Importação somente da validação
|
|
83
|
+
import { isCNH } from 'validation-br';
|
|
84
|
+
// ou
|
|
85
|
+
// Importação do submódulo
|
|
86
|
+
import cnh from 'validation-br/cnh';
|
|
46
87
|
|
|
47
88
|
// Valida
|
|
48
|
-
|
|
49
|
-
//-> true
|
|
89
|
+
isCNH('69044271146'); //-> true
|
|
90
|
+
isCNH('62472927637'); //-> true
|
|
91
|
+
isCNH('46190476839'); //-> false
|
|
92
|
+
cnh.validate('62472927637'); //-> true
|
|
93
|
+
cnh.validateOrFail('62472927637'); //-> true
|
|
50
94
|
|
|
51
|
-
//
|
|
52
|
-
|
|
53
|
-
|
|
95
|
+
// Número fake com e sem máscara
|
|
96
|
+
cnh.fake(); // -> 62472927637
|
|
97
|
+
cnh.fake(true); // -> 624729276-37
|
|
54
98
|
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
99
|
+
// Aplica uma máscara
|
|
100
|
+
cnh.mask('62472927637'); // -> 624729276-37
|
|
101
|
+
|
|
102
|
+
// Calcula o DV
|
|
103
|
+
cnh.dv('624729276'); // -> '37'
|
|
58
104
|
```
|
|
59
105
|
|
|
60
|
-
### isCNPJ
|
|
106
|
+
### isCNPJ( `value` )
|
|
61
107
|
|
|
62
108
|
Valida um CNPJ
|
|
63
109
|
|
|
64
110
|
```js
|
|
65
|
-
// Importação
|
|
66
|
-
import { isCNPJ } from
|
|
111
|
+
// Importação somente da validação
|
|
112
|
+
import { isCNPJ } from 'validation-br';
|
|
113
|
+
// ou
|
|
114
|
+
// Importação do submódulo
|
|
115
|
+
import cnpj from 'validation-br/cnpj';
|
|
67
116
|
|
|
68
117
|
// Valida
|
|
69
|
-
isCNPJ('73.797.980/0001-79')
|
|
70
|
-
//-> true
|
|
118
|
+
isCNPJ('73.797.980/0001-79'); //-> true
|
|
119
|
+
isCNPJ('55585709000198'); //-> true
|
|
120
|
+
isCNPJ('99362238000180'); //-> false
|
|
121
|
+
cnpj.validate('99362238000180'); //-> true
|
|
122
|
+
cnpj.validateOrFail('99362238000180'); //-> true
|
|
71
123
|
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
|
|
124
|
+
// Número fake com e sem máscara
|
|
125
|
+
cnpj.fake(); // -> 55585709000198
|
|
126
|
+
cnpj.fake(true); // -> 55.585.709/0001-98
|
|
75
127
|
|
|
76
|
-
//
|
|
77
|
-
|
|
78
|
-
|
|
128
|
+
// Aplica uma máscara
|
|
129
|
+
cnpj.mask('99362238000180'); // -> 99.362.238/0001-80
|
|
130
|
+
|
|
131
|
+
// Calcula o DV
|
|
132
|
+
cnpj.dv('993622380001'); // -> '80'
|
|
79
133
|
```
|
|
80
134
|
|
|
81
|
-
###
|
|
135
|
+
### isCPF( `value` )
|
|
82
136
|
|
|
83
|
-
Valida um
|
|
137
|
+
Valida um CPF
|
|
84
138
|
|
|
85
139
|
```js
|
|
86
|
-
// Importação
|
|
87
|
-
import {
|
|
140
|
+
// Importação somente da validação
|
|
141
|
+
import { isCPF } from 'validation-br';
|
|
142
|
+
// ou
|
|
143
|
+
// Importação do submódulo
|
|
144
|
+
import cpf from 'validation-br/cpf';
|
|
88
145
|
|
|
89
146
|
// Valida
|
|
90
|
-
|
|
91
|
-
//-> true
|
|
147
|
+
isCPF('01234567890'); //-> true
|
|
148
|
+
isCPF('012.345.678-90'); //-> true
|
|
149
|
+
isCPF('01234567891'); //-> false
|
|
150
|
+
cpf.validate('01234567890'); //-> true
|
|
151
|
+
cpf.validateOrFail('01234567890'); //-> true
|
|
92
152
|
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
-
|
|
153
|
+
// Número fake com e sem máscara
|
|
154
|
+
cpf.fake(); // -> 01234567891
|
|
155
|
+
cpf.fake(true); // -> 012.345.678-91
|
|
96
156
|
|
|
97
|
-
//
|
|
98
|
-
|
|
99
|
-
|
|
157
|
+
// Aplica uma máscara
|
|
158
|
+
cpf.mask('01234567890'); // -> 012.345.678-90
|
|
159
|
+
|
|
160
|
+
// Calcula o DV
|
|
161
|
+
cpf.dv('012345678'); // -> '90'
|
|
100
162
|
```
|
|
101
163
|
|
|
102
|
-
###
|
|
164
|
+
### isJudicialProcess( `value` )
|
|
103
165
|
|
|
104
|
-
Valida o
|
|
166
|
+
Valida códigos PIS, PASEP, NIS e NIT, que usam o mesmo algoritmo. Aceita números com e sem pontos e traços.
|
|
105
167
|
|
|
106
168
|
```js
|
|
107
|
-
// Importação
|
|
108
|
-
import {
|
|
169
|
+
// Importação somente da validação
|
|
170
|
+
import { isJudicialProcess } from 'validation-br';
|
|
171
|
+
// ou
|
|
172
|
+
// Importação do submódulo
|
|
173
|
+
import judicialProcess from 'validation-br/judicial-process';
|
|
109
174
|
|
|
110
175
|
// Valida
|
|
111
|
-
|
|
112
|
-
//-> true
|
|
176
|
+
isJudicialProcess('71282677380'); //-> true
|
|
177
|
+
isJudicialProcess('237.95126.95-5'); //-> true
|
|
178
|
+
isJudicialProcess('500.12973.80-1'); //-> false
|
|
179
|
+
judicialProcess.validate('71282677380'); //-> true
|
|
180
|
+
judicialProcess.validateOrFail('71282677380'); //-> true
|
|
113
181
|
|
|
114
|
-
//
|
|
115
|
-
|
|
116
|
-
|
|
182
|
+
// Número fake com e sem máscara
|
|
183
|
+
judicialProcess.fake(); // -> 71282677380
|
|
184
|
+
judicialProcess.fake(true); // -> 712.82677.38-0
|
|
185
|
+
|
|
186
|
+
// Aplica uma máscara
|
|
187
|
+
judicialProcess.mask('71282677380'); // -> 712.82677.38-0
|
|
188
|
+
|
|
189
|
+
// Calcula o DV
|
|
190
|
+
judicialProcess.dv('7128267738'); // -> '0'
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### isPIS( `value` )
|
|
194
|
+
|
|
195
|
+
Valida códigos PIS, PASEP, NIS e NIT, que usam o mesmo algoritmo. Aceita números com e sem pontos e traços.
|
|
196
|
+
|
|
197
|
+
```js
|
|
198
|
+
// Importação somente da validação
|
|
199
|
+
import { isPIS } from 'validation-br';
|
|
200
|
+
// ou
|
|
201
|
+
// Importação do submódulo
|
|
202
|
+
import pis from 'validation-br/pis';
|
|
117
203
|
|
|
118
204
|
// Valida
|
|
119
|
-
|
|
120
|
-
//->
|
|
205
|
+
isPIS('71282677380'); //-> true
|
|
206
|
+
isPIS('237.95126.95-5'); //-> true
|
|
207
|
+
isPIS('500.12973.80-1'); //-> false
|
|
208
|
+
pis.validate('71282677380'); //-> true
|
|
209
|
+
pis.validateOrFail('71282677380'); //-> true
|
|
210
|
+
|
|
211
|
+
// Número fake com e sem máscara
|
|
212
|
+
pis.fake(); // -> 71282677380
|
|
213
|
+
pis.fake(true); // -> 712.82677.38-0
|
|
214
|
+
|
|
215
|
+
// Aplica uma máscara
|
|
216
|
+
pis.mask('71282677380'); // -> 712.82677.38-0
|
|
217
|
+
|
|
218
|
+
// Calcula o DV
|
|
219
|
+
pis.dv('7128267738'); // -> '0'
|
|
121
220
|
```
|
|
122
221
|
|
|
123
|
-
###
|
|
222
|
+
### isPostalCode( `value` )
|
|
124
223
|
|
|
125
|
-
Valida um código de rastreamento de objetos postais no formato
|
|
224
|
+
Valida um código de rastreamento de objetos postais no formato XX00000000DYY, onde:
|
|
126
225
|
|
|
127
226
|
- XX: O código do objeto postal com 2 dígitos;
|
|
128
|
-
-
|
|
227
|
+
- 00000000: Número sequencial do objeto com 8 dígitos;
|
|
228
|
+
- D: Dígito Verificador
|
|
129
229
|
- YY: País de origem do objeto com 2 dígitos.
|
|
130
230
|
|
|
131
231
|
```js
|
|
132
|
-
// Importação
|
|
133
|
-
import { isPostalCode } from
|
|
232
|
+
// Importação somente da validação
|
|
233
|
+
import { isPostalCode } from 'validation-br';
|
|
234
|
+
// ou
|
|
235
|
+
// Importação do submódulo
|
|
236
|
+
import postalCode from 'validation-br/postal-code';
|
|
134
237
|
|
|
135
238
|
// Valida
|
|
136
|
-
isPostalCode('PN718252423BR')
|
|
137
|
-
//-> true
|
|
239
|
+
isPostalCode('PN718252423BR'); //-> true
|
|
240
|
+
isPostalCode('RY728187035CN'); //-> true
|
|
241
|
+
isPostalCode('JT194624698BR'); //-> false
|
|
242
|
+
postalCode.validate('PN718252423BR'); //-> true
|
|
243
|
+
postalCode.validateOrFail('PN718252423BR'); //-> true
|
|
244
|
+
|
|
245
|
+
// Número fake com e sem máscara.
|
|
246
|
+
postalCode.fake(); // -> PN718252423BR
|
|
247
|
+
postalCode.fake(true); // -> PN718252423BR
|
|
248
|
+
|
|
249
|
+
// Aplica uma máscara
|
|
250
|
+
// No caso de PostalCode, a máscara apenas coloca as letras em maiúsculas
|
|
251
|
+
postalCode.mask('pn718252423br'); // -> PN718252423BR
|
|
252
|
+
|
|
253
|
+
// Calcula o DV
|
|
254
|
+
postalCode.dv('PN718252423BR'); // -> '3'
|
|
255
|
+
```
|
|
138
256
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
257
|
+
### isRenavam( `value` )
|
|
258
|
+
|
|
259
|
+
Valida o número de um RENAVAM de 11 dígitos
|
|
260
|
+
|
|
261
|
+
```js
|
|
262
|
+
// Importação somente da validação
|
|
263
|
+
import { isRenavam } from 'validation-br';
|
|
264
|
+
// ou
|
|
265
|
+
// Importação do submódulo
|
|
266
|
+
import renavam from 'validation-br/renavam';
|
|
142
267
|
|
|
143
268
|
// Valida
|
|
144
|
-
|
|
145
|
-
//->
|
|
269
|
+
isRenavam('14283256656'); //-> true
|
|
270
|
+
isRenavam('95059845976'); //-> true
|
|
271
|
+
isRenavam('67747331626'); //-> false
|
|
272
|
+
renavam.validate('95059845976'); //-> true
|
|
273
|
+
renavam.validateOrFail('95059845976'); //-> true
|
|
274
|
+
|
|
275
|
+
// Número fake com e sem máscara
|
|
276
|
+
renavam.fake(); // -> 95059845976
|
|
277
|
+
renavam.fake(true); // -> 9505984597-6
|
|
278
|
+
|
|
279
|
+
// Aplica uma máscara
|
|
280
|
+
renavam.mask('95059845976'); // -> 9505984597-6
|
|
281
|
+
|
|
282
|
+
// Calcula o DV
|
|
283
|
+
renavam.dv('950598459'); // -> '76'
|
|
146
284
|
```
|
|
147
285
|
|
|
148
|
-
###
|
|
286
|
+
### isTitulo( `value` )
|
|
149
287
|
|
|
150
|
-
Valida
|
|
288
|
+
Valida um título eleitoral
|
|
151
289
|
|
|
152
290
|
```js
|
|
153
|
-
// Importação
|
|
154
|
-
import {
|
|
291
|
+
// Importação somente da validação
|
|
292
|
+
import { isTitulo } from 'validation-br';
|
|
293
|
+
// ou
|
|
294
|
+
// Importação do submódulo
|
|
295
|
+
import titulo from 'validation-br/titulo';
|
|
155
296
|
|
|
156
297
|
// Valida
|
|
157
|
-
|
|
158
|
-
//-> true
|
|
298
|
+
isTitulo('743650641660'); //-> true
|
|
299
|
+
isTitulo('525028881694'); //-> true
|
|
300
|
+
isTitulo('153016161686'); //-> false
|
|
301
|
+
titulo.validate('01234567890'); //-> true
|
|
302
|
+
titulo.validateOrFail('01234567890'); //-> true
|
|
159
303
|
|
|
160
|
-
//
|
|
161
|
-
|
|
162
|
-
|
|
304
|
+
// Número fake com e sem máscara
|
|
305
|
+
titulo.fake(); // -> 153016161686
|
|
306
|
+
titulo.fake(true); // -> 1530.1616.1686
|
|
163
307
|
|
|
164
|
-
//
|
|
165
|
-
|
|
166
|
-
|
|
308
|
+
// Aplica uma máscara
|
|
309
|
+
titulo.mask('525028881694'); // -> 5250.2888.1694
|
|
310
|
+
|
|
311
|
+
// Calcula o DV
|
|
312
|
+
titulo.dv('5250288816'); // -> '94'
|
|
167
313
|
```
|
|
168
314
|
|
|
169
|
-
|
|
315
|
+
# Tests
|
|
316
|
+
|
|
317
|
+

|
|
318
|
+
|
|
319
|
+
# Changelog
|
|
170
320
|
|
|
321
|
+
- **08/01/2022**:
|
|
322
|
+
- 0.21.1 - Adicionadas as funções isRenavam e isJudicialProcess
|
|
171
323
|
- **16/09/2021**:
|
|
172
324
|
- 0.5.0 - Adicionadas as funções isCPF, isCNPJ e isTitulo
|
|
173
325
|
- 0.7.0 - Adicionadas as funções isPostalCode e isCNH
|
|
174
|
-
- 0.8.0 -
|
|
326
|
+
- 0.8.0 - Adicionada a função isPIS
|
|
175
327
|
|
|
176
|
-
|
|
328
|
+
# Referências
|
|
177
329
|
|
|
178
330
|
- [Cálculo do DV do CPF](http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-cpf/)
|
|
179
331
|
- [Cálculo do DV do CNPJ](http://www.macoratti.net/alg_cnpj.htm)
|
|
180
332
|
- [Cálculo do DV do Título Eleitoral](http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/)
|
|
181
333
|
- [Cálculo do PIS](http://www.macoratti.net/alg_pis.htm)
|
|
182
334
|
- [Diferença entre PIS, PASEP, NIS e NIT](https://www.jornalcontabil.com.br/entenda-de-uma-vez-a-diferenca-entre-pis-pasep-nit-e-nis/#:~:text=NIS%20%E2%80%93%20N%C3%BAmero%20de%20Identifica%C3%A7%C3%A3o%20Social,do%20Patrim%C3%B4nio%20do%20Servidor%20P%C3%BAblico)
|
|
335
|
+
- [Documentação Oficial de Numeração de Processos Judiciais](https://juslaboris.tst.jus.br/bitstream/handle/20.500.12178/30318/2008_res0065_cnj_rep01.pdf?sequence=2)
|
|
336
|
+
- [Cálculos de DV](http://ghiorzi.org/DVnew.htm)
|