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

|
|
318
322
|
|
|
319
323
|
# Changelog
|
|
320
324
|
|
|
325
|
+
- **09/01/2022**:
|
|
326
|
+
- 1.0.0 - Biblioteca convertida para Typescript e testes convertidos para Jest
|
|
321
327
|
- **08/01/2022**:
|
|
322
328
|
- 0.21.1 - Adicionadas as funções isRenavam e isJudicialProcess
|
|
323
329
|
- **16/09/2021**:
|
|
324
|
-
- 0.5.0 - Adicionadas as funções isCPF, isCNPJ e
|
|
330
|
+
- 0.5.0 - Adicionadas as funções isCPF, isCNPJ e isTituloEleitor
|
|
325
331
|
- 0.7.0 - Adicionadas as funções isPostalCode e isCNH
|
|
326
332
|
- 0.8.0 - Adicionada a função isPIS
|
|
327
333
|
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"baseUrl": "src",
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"esModuleInterop": true,
|
|
6
|
+
"target": "es6",
|
|
7
|
+
"moduleResolution": "node",
|
|
8
|
+
"sourceMap": true,
|
|
9
|
+
"outDir": "./dist",
|
|
10
|
+
"noImplicitAny": true,
|
|
11
|
+
"noImplicitReturns": true,
|
|
12
|
+
"noImplicitThis": true,
|
|
13
|
+
"strict": true,
|
|
14
|
+
"allowJs": true,
|
|
15
|
+
"types": ["node", "jest"],
|
|
16
|
+
"typeRoots": ["node_modules/@types", "index.d.ts"],
|
|
17
|
+
"lib": ["es6"],
|
|
18
|
+
"paths": {
|
|
19
|
+
"*": ["node_modules/*"]
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"include": ["./src/**/*"]
|
|
23
|
+
}
|
package/.babelrc
DELETED
package/.prettierrc
DELETED
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2021 Claudio Medeiros
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/cnh.js"],"names":["require","sumElementsByMultipliers","sumToDV","invalidListGenerator","clearValue","applyMask","fakeNumber","dv","value","Error","cnh","invalidList","includes","sum1","substring","dv1","sum2","dv2","validateOrFail","validate","error","mask","fake","withMask","module","exports"],"mappings":"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","sourcesContent":["/**\n * isCNH()\n * Calcula se uma CNH é válida\n *\n * @doc\n * CNH deve possuir 11 caracteres\n *\n * - Os caracteres 1 a 9 são números sequenciais.\n *\n *\n * - Os caracteres 10 e 11 são dígitos verificadores.\n *\n * 1) Partes do número\n * ____________________________ ______\n * | Número | D V |\n * | 5 8 3 1 6 7 9 4 5 3 4 |\n * |____________________________|_____|\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.\n *\n * 5 8 3 1 6 7 9 4 5\n * x x x x x x x x x\n * 2 3 4 5 6 7 8 9 10\n * = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294\n *\n * - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o\n * resto for 10, o DV1 é 0.\n *\n * 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3\n * DV1 = 3\n *\n * 3) Cálculo do segundo DV\n *\n * - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere\n * que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será\n * multiplicado por 2 e ficará no final.\n *\n * 5 8 3 1 6 7 9 4 5 3\n * x x x x x x x x x x\n * 3 4 5 6 7 8 9 10 11 2\n * = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348\n *\n * 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.\n * DV2 = 4\n *\n * - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o\n * resto for 10, o DV2 é 0.\n *\n * Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\n\nconst {\n sumElementsByMultipliers, sumToDV, invalidListGenerator,\n clearValue, applyMask, fakeNumber,\n} = require('../lib/utils');\n\n/**\n * Calcula o Dígito Verificador de um RENAVAM informado\n *\n * @returns String Número fake de um cnh válido\n */\nconst dv = (value = '') => {\n if (!value) throw new Error('CNH não informado');\n\n const cnh = clearValue(value, 9);\n\n const invalidList = invalidListGenerator(9);\n if (invalidList.includes(cnh)) {\n throw new Error('CNH não pode ser uma sequência de números iguais');\n }\n\n const sum1 = sumElementsByMultipliers(cnh.substring(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const dv1 = sumToDV(sum1);\n\n const sum2 = sumElementsByMultipliers(\n cnh.substring(0, 9) + dv1,\n [3, 4, 5, 6, 7, 8, 9, 10, 11, 2],\n );\n const dv2 = sumToDV(sum2);\n\n return `${dv1}${dv2}`;\n};\n\n/**\n * Valida um número de cnh e retorna uma exceção caso seja inválido\n *\n * @returns String Número fake de um cnh válido\n */\nconst validateOrFail = (value = '') => {\n const cnh = clearValue(value, 11);\n\n if (dv(cnh) !== (cnh.substring(9, 11))) {\n throw new Error('Dígito verificador inválido');\n }\n\n return true;\n};\n\n/**\n * Valida um número de cnh\n *\n * @returns String Valor a ser validado\n */\nconst validate = (value = '') => {\n try {\n return validateOrFail(value);\n } catch (error) {\n return false;\n }\n};\n\n/**\n * Aplica uma máscara a uma string\n *\n * @returns String string com a máscara aplicada\n */\nconst mask = (value = '') => applyMask(value, '000000000-00');\n\n/**\n * Cria um número fake\n *\n * @returns String Número fake porém válido\n */\nconst fake = (withMask = false) => {\n const value = fakeNumber(9, true);\n\n const cnh = `${value}${dv(value)}`;\n\n if (withMask) return mask(cnh);\n\n return cnh;\n};\n\nmodule.exports = {\n dv, fake, mask, validate, validateOrFail,\n};\n"],"file":"cnh.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/cnpj.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","clearValue","fakeNumber","applyMask","dv","value","cnpj","blackList","includes","Error","sum1","substring","dv1","sum2","dv2","mask","fake","withMask","num","validateOrFail","validate","error","module","exports"],"mappings":"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","sourcesContent":["/**\n * isCNPJ()\n * Calcula se um CNPJ é válido\n *\n * @doc\n * - CNPJ deve possuir 14 dígitos no formato 00.000.000/0000-00\n *\n * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal\n *\n * - Os caracteres 9 a 12 são a identificação das filiais da empresa.\n *\n * - Os caracteres 13 e 14 são os dígitos verificadores\n *\n * 1) Partes do número\n * _______________________________ _______________ _______\n * | Número | Filiais | DV |\n * | 1 1 . 2 2 2 . 3 3 3 / 0 0 0 1 - X Y |\n * |_______________________________|_______________|_______|\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 12 pelos números 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 1 1 2 2 2 3 3 3 0 0 0 1\n * x x x x x x x x x x x x\n * 5 4 3 2 9 8 7 6 5 4 3 2\n * = 5 +4 +6 +4 +18 +24 +21 +18 +0 +0 +0 +2 = 102\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 102 / 11 tem resto 8. 11 - 3 = 8. DV1 é 8.\n * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.\n *\n * 3) Cálculo do segundo DV.\n *\n * - Soma-se o produto das algarismos 1 a 13 (incluindo o DV1 calculado) pelos\n * números 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.\n *\n * 1 1 2 2 2 3 3 3 0 0 0 1 8\n * x x x x x x x x x x x x x\n * 6 5 4 3 2 9 8 7 6 5 4 3 2\n * = 6 +5 +8 +6 +4 +27 +24 +21 +0 +0 +0 +3 +16 = 120\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 120 / 11 tem resto 10. 11 - 10 = 1. DV2 é 1.\n * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.\n *\n * Fonte: http://www.macoratti.net/alg_cnpj.htm\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\n\nconst {\n invalidListGenerator, sumElementsByMultipliers, sumToDV,\n clearValue, fakeNumber, applyMask,\n} = require('../lib/utils');\n\nconst dv = (value = '') => {\n const cnpj = clearValue(value, 12);\n\n const blackList = invalidListGenerator(12);\n if (blackList.includes(cnpj)) {\n throw new Error('CNPJ é obrigatório');\n }\n\n const sum1 = sumElementsByMultipliers(cnpj.substring(0, 12), '543298765432');\n const dv1 = sumToDV(sum1);\n\n const sum2 = sumElementsByMultipliers(cnpj.substring(0, 12) + dv1, '6543298765432');\n const dv2 = sumToDV(sum2);\n\n return `${dv1}${dv2}`;\n};\n\n/**\n * Aplica uma máscara ao número informado\n *\n * @param {String} value Número de Processo\n * @returns {String} Valor com a máscara\n */\nconst mask = (value) => applyMask(value, '00.000.000/0000-00');\n\n/**\n *\n *\n */\nconst fake = (withMask = false) => {\n const num = fakeNumber(12, true);\n\n const cnpj = `${num}${dv(num)}`;\n\n if (withMask) return mask(cnpj);\n return cnpj;\n};\n\n/**\n * validate()\n * Valida se um número de processo está correto\n *\n */\nconst validateOrFail = (value) => {\n const cnpj = clearValue(value, 14);\n\n if (dv(cnpj) !== cnpj.substring(12, 14)) {\n throw new Error('Dígito verificador inválido');\n }\n\n return true;\n};\n\n/**\n * validate()\n * Valida se um número de processo está correto\n *\n */\nconst validate = (value) => {\n try {\n return validateOrFail(value);\n } catch (error) {\n return false;\n }\n};\n\nmodule.exports = {\n dv,\n fake,\n mask,\n validate,\n validateOrFail,\n};\n"],"file":"cnpj.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/cpf.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","clearValue","fakeNumber","applyMask","dv","value","Error","cpf","invalidList","includes","sum1","dv1","sum2","dv2","mask","fake","withMask","num","validateOrFail","substring","validate","error","module","exports"],"mappings":"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","sourcesContent":["/**\n * isCPF()\n * Calcula se um CPF é válido\n *\n * @doc\n * CPF deve possuir 11 dígitos.\n *\n * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal\n *\n * - O caractere 9 refere-se à região fiscal emissora do documento\n * 1 – DF, GO, MS, MT e TO\n * 2 – AC, AM, AP, PA, RO e RR\n * 3 – CE, MA e PI\n * 4 – AL, PB, PE, RN\n * 5 – BA e SE\n * 6 – MG\n * 7 – ES e RJ\n * 8 – SP\n * 9 – PR e SC\n * 0 – RS\n *\n * - Os caracteres 10 e 11 são dígitos verificadores.\n *\n * 1) Partes do número\n * ------------------------------------------------\n * | Número | R | DV |\n * 2 8 0 . 0 1 2 . 3 8 9 - 3 8\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 9 pelos números 10, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 8 0 0 1 2 3 8 9\n * x x x x x x x x x\n * 10 9 8 7 6 5 4 3 2\n * = 20 +72 +0 +0 +6 +10 +12 +24 +18 = 162\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 162 / 11 tem resto 8. 11 - 8 = 3. DV1 é 3.\n * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.\n *\n * 3) Cálculo do segundo DV.\n *\n * - Soma-se o produto das algarismos 1 a 10 pelos números 11, 10, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 8 0 0 1 2 3 8 9 3\n * x x x x x x x x x x\n * 11 10 9 8 7 6 5 4 3 2\n * = 22 +80 +0 +0 +7 +12 +15 +32 +27 = 201\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 201 / 11 tem resto 3. 11 - 3 = 8. DV2 é 8.\n * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.\n *\n * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-cpf/\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\n\nconst {\n invalidListGenerator, sumElementsByMultipliers, sumToDV,\n clearValue, fakeNumber, applyMask,\n} = require('../lib/utils');\n\n/**\n * dv()\n * Calcula o dígito verificador de um CPF\n *\n * @param {Number|String} value\n * @returns {String}\n */\nconst dv = (value = '') => {\n if (!value) throw new Error('CPF não informado');\n\n const cpf = clearValue(value, 9);\n\n const invalidList = invalidListGenerator(9);\n if (invalidList.includes(cpf)) {\n throw new Error('CPF não pode ser uma sequência de números iguais');\n }\n\n const sum1 = sumElementsByMultipliers(cpf, [10, 9, 8, 7, 6, 5, 4, 3, 2]);\n const dv1 = sumToDV(sum1);\n\n const sum2 = sumElementsByMultipliers(cpf + dv1, [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]);\n const dv2 = sumToDV(sum2);\n\n return `${dv1}${dv2}`;\n};\n\n/**\n * Aplica uma máscara ao número informado\n *\n * @param {String} value Número de Processo\n * @returns {String} Valor com a máscara\n */\nconst mask = (value) => applyMask(value, '000.000.000-00');\n\n/**\n * fake()\n * Gera um número válido\n *\n * @returns {String}\n */\nconst fake = (withMask = false) => {\n const num = fakeNumber(9, true);\n\n const cpf = `${num}${dv(num)}`;\n\n if (withMask) return mask(cpf);\n return cpf;\n};\n\n/**\n * validateOrFail()\n * Valida se um número de processo está correto e\n * retorna uma exceção se não estiver\n *\n * @returns {Boolean}\n */\nconst validateOrFail = (value) => {\n const cpf = clearValue(value, 11);\n\n if (dv(cpf) !== cpf.substring(9, 11)) {\n throw new Error('Dígito verificador inválido');\n }\n\n return true;\n};\n\n/**\n * validate()\n * Valida se um número de processo está correto\n *\n * @returns {Boolean}\n */\nconst validate = (value) => {\n try {\n return validateOrFail(value);\n } catch (error) {\n return false;\n }\n};\n\nmodule.exports = {\n dv,\n fake,\n mask,\n validate,\n validateOrFail,\n};\n"],"file":"cpf.js"}
|
package/dist/documents/index.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var isCNH = require('./cnh').validate;
|
|
4
|
-
|
|
5
|
-
var isCNPJ = require('./cnpj').validate;
|
|
6
|
-
|
|
7
|
-
var isCPF = require('./cpf').validate;
|
|
8
|
-
|
|
9
|
-
var isJudicialProcess = require('./judicial-process').validate;
|
|
10
|
-
|
|
11
|
-
var isPIS = require('./pis-pasep').validate;
|
|
12
|
-
|
|
13
|
-
var isPostalCode = require('./postal-code').validate;
|
|
14
|
-
|
|
15
|
-
var isRenavam = require('./renavam').validate;
|
|
16
|
-
|
|
17
|
-
var isTitulo = require('./titulo-eleitor').validate;
|
|
18
|
-
|
|
19
|
-
module.exports = {
|
|
20
|
-
isCNH: isCNH,
|
|
21
|
-
isCNPJ: isCNPJ,
|
|
22
|
-
isCPF: isCPF,
|
|
23
|
-
isJudicialProcess: isJudicialProcess,
|
|
24
|
-
isPIS: isPIS,
|
|
25
|
-
isPostalCode: isPostalCode,
|
|
26
|
-
isRenavam: isRenavam,
|
|
27
|
-
isTitulo: isTitulo
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/index.js"],"names":["isCNH","require","validate","isCNPJ","isCPF","isJudicialProcess","isPIS","isPostalCode","isRenavam","isTitulo","module","exports"],"mappings":";;AAAA,IAAMA,KAAK,GAAGC,OAAO,CAAC,OAAD,CAAP,CAAiBC,QAA/B;;AACA,IAAMC,MAAM,GAAGF,OAAO,CAAC,QAAD,CAAP,CAAkBC,QAAjC;;AACA,IAAME,KAAK,GAAGH,OAAO,CAAC,OAAD,CAAP,CAAiBC,QAA/B;;AACA,IAAMG,iBAAiB,GAAGJ,OAAO,CAAC,oBAAD,CAAP,CAA8BC,QAAxD;;AACA,IAAMI,KAAK,GAAGL,OAAO,CAAC,aAAD,CAAP,CAAuBC,QAArC;;AACA,IAAMK,YAAY,GAAGN,OAAO,CAAC,eAAD,CAAP,CAAyBC,QAA9C;;AACA,IAAMM,SAAS,GAAGP,OAAO,CAAC,WAAD,CAAP,CAAqBC,QAAvC;;AACA,IAAMO,QAAQ,GAAGR,OAAO,CAAC,kBAAD,CAAP,CAA4BC,QAA7C;;AAEAQ,MAAM,CAACC,OAAP,GAAiB;AACfX,EAAAA,KAAK,EAALA,KADe;AAEfG,EAAAA,MAAM,EAANA,MAFe;AAGfC,EAAAA,KAAK,EAALA,KAHe;AAIfC,EAAAA,iBAAiB,EAAjBA,iBAJe;AAKfC,EAAAA,KAAK,EAALA,KALe;AAMfC,EAAAA,YAAY,EAAZA,YANe;AAOfC,EAAAA,SAAS,EAATA,SAPe;AAQfC,EAAAA,QAAQ,EAARA;AARe,CAAjB","sourcesContent":["const isCNH = require('./cnh').validate;\nconst isCNPJ = require('./cnpj').validate;\nconst isCPF = require('./cpf').validate;\nconst isJudicialProcess = require('./judicial-process').validate;\nconst isPIS = require('./pis-pasep').validate;\nconst isPostalCode = require('./postal-code').validate;\nconst isRenavam = require('./renavam').validate;\nconst isTitulo = require('./titulo-eleitor').validate;\n\nmodule.exports = {\n isCNH,\n isCNPJ,\n isCPF,\n isJudicialProcess,\n isPIS,\n isPostalCode,\n isRenavam,\n isTitulo,\n};\n"],"file":"index.js"}
|