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

|
|
173
322
|
|
|
174
|
-
|
|
323
|
+
# Changelog
|
|
175
324
|
|
|
325
|
+
- **08/01/2022**:
|
|
326
|
+
- 0.21.1 - Adicionadas as funções isRenavam e isJudicialProcess
|
|
176
327
|
- **16/09/2021**:
|
|
177
328
|
- 0.5.0 - Adicionadas as funções isCPF, isCNPJ e isTitulo
|
|
178
329
|
- 0.7.0 - Adicionadas as funções isPostalCode e isCNH
|
|
179
330
|
- 0.8.0 - Adicionada a função isPIS
|
|
180
331
|
|
|
181
|
-
|
|
332
|
+
# Referências
|
|
182
333
|
|
|
183
334
|
- [Cálculo do DV do CPF](http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-cpf/)
|
|
184
335
|
- [Cálculo do DV do CNPJ](http://www.macoratti.net/alg_cnpj.htm)
|
|
185
336
|
- [Cálculo do DV do Título Eleitoral](http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/)
|
|
186
337
|
- [Cálculo do PIS](http://www.macoratti.net/alg_pis.htm)
|
|
187
338
|
- [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)
|
|
339
|
+
- [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)
|
|
340
|
+
- [Cálculos de DV](http://ghiorzi.org/DVnew.htm)
|