validation-br 0.21.2 → 1.1.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/.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 +60 -31
- package/readme.md +170 -111
- 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,10 +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. Também valida numerações de outros tipos de registros como RENAVAM, Processos Judiciais e Objetos registrados de Rastreamento dos Correios.
|
|
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, Número de Protocolo do Governo Federal e Objetos registrados de Rastreamento dos Correios.
|
|
4
4
|
|
|
5
|
-
Validation-BR também permite
|
|
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.
|
|
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.
|
|
8
6
|
|
|
9
7
|
# Instalação
|
|
10
8
|
|
|
@@ -26,10 +24,10 @@ Permite realizar diretamente uma validação a partir do objeto principal
|
|
|
26
24
|
|
|
27
25
|
```js
|
|
28
26
|
// Modules
|
|
29
|
-
const { isCPF, isCNPJ } = require('validation-br')
|
|
27
|
+
const { isCPF, isCNPJ } = require('validation-br')
|
|
30
28
|
|
|
31
29
|
// ES6
|
|
32
|
-
import { isCPF, isCNPJ } from 'validation-br'
|
|
30
|
+
import { isCPF, isCNPJ } from 'validation-br'
|
|
33
31
|
```
|
|
34
32
|
|
|
35
33
|
## Importação de submódulos
|
|
@@ -40,30 +38,30 @@ Importando os submódulos, é possível criar máscaras, números fake para test
|
|
|
40
38
|
|
|
41
39
|
```js
|
|
42
40
|
// ES6
|
|
43
|
-
import { dv, fake, mask, validate } from 'validation-br/cpf'
|
|
41
|
+
import { dv, fake, mask, validate } from 'validation-br/cpf'
|
|
44
42
|
|
|
45
43
|
// Modules
|
|
46
|
-
const cpf = require('validation-br/cpf')
|
|
47
|
-
const { dv, fake, mask, validate } = require('validation-br/cpf')
|
|
44
|
+
const cpf = require('validation-br/cpf')
|
|
45
|
+
const { dv, fake, mask, validate } = require('validation-br/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
|
-
cpf.dv('906259666')
|
|
52
|
-
cpf.dv('906.259.666')
|
|
48
|
+
cpf.dv(906259666) // -> '51'
|
|
49
|
+
cpf.dv('906259666') // -> '51'
|
|
50
|
+
cpf.dv('906.259.666') // -> '51'
|
|
53
51
|
|
|
54
52
|
// Cria um número fake de CPF para fins de testes.
|
|
55
|
-
cpf.fake()
|
|
53
|
+
cpf.fake() // -> 90625966651
|
|
56
54
|
// Passe um parâmetro true para gerar o número com máscara
|
|
57
|
-
cpf.fake(true)
|
|
55
|
+
cpf.fake(true) // -> 906.259.666-51
|
|
58
56
|
|
|
59
57
|
// Aplique uma máscara a um cpf
|
|
60
|
-
cpf.mask(90625966651)
|
|
58
|
+
cpf.mask(90625966651) // -> 906.259.666-51
|
|
61
59
|
|
|
62
60
|
// Valida um número
|
|
63
|
-
cpf.validate('01234567890')
|
|
61
|
+
cpf.validate('01234567890') // -> true
|
|
64
62
|
|
|
65
63
|
// Valida um número e retorna exceção se a validação falhar
|
|
66
|
-
cpf.validateOrFail('01234567890')
|
|
64
|
+
cpf.validateOrFail('01234567890') // -> true
|
|
67
65
|
```
|
|
68
66
|
|
|
69
67
|
## Tabela de Conteúdo
|
|
@@ -71,12 +69,13 @@ cpf.validateOrFail('01234567890'); // -> true
|
|
|
71
69
|
- [isCNH](#isCNH-value-) - Validação do CNH
|
|
72
70
|
- [isCPF](#isCPF-value-) - Validação do CPF
|
|
73
71
|
- [isCNPJ](#isCNPJ-value-) - Validação do CNPJ
|
|
72
|
+
- [isNUP17](#isNUP17-value-) - Validação de Número Unificado de Protocolo do Governo Federal
|
|
74
73
|
- [isPostalCode](#isPostalCode-value-) - Validação de Objetos Registrados dos Correios
|
|
75
74
|
- [isJudicialProcess](#isJudicialProcess-value-) - Validação de Números de Processos Judiciais
|
|
76
75
|
- [isPIS](#isPIS-value-) - Validação de PIS, PASEP, NIS e NIT
|
|
77
76
|
- [isPostalCode](#isPostalCode-value-) - Validação de Objetos Registrados dos Correios
|
|
78
77
|
- [isRenavam](#isRenavam-value-) - Validação de RENAVAM
|
|
79
|
-
- [
|
|
78
|
+
- [isTituloEleitor](#isTituloEleitor-value-) - Validação do Título de Eleitor
|
|
80
79
|
|
|
81
80
|
### isCNH( `value` )
|
|
82
81
|
|
|
@@ -84,27 +83,27 @@ Valida o documento da carteira nacional de habilitação.
|
|
|
84
83
|
|
|
85
84
|
```js
|
|
86
85
|
// Importação somente da validação
|
|
87
|
-
import { isCNH } from 'validation-br'
|
|
86
|
+
import { isCNH } from 'validation-br'
|
|
88
87
|
// ou
|
|
89
88
|
// Importação do submódulo
|
|
90
|
-
import cnh from 'validation-br/cnh'
|
|
89
|
+
import cnh from 'validation-br/cnh'
|
|
91
90
|
|
|
92
91
|
// Valida
|
|
93
|
-
isCNH('69044271146')
|
|
94
|
-
isCNH('62472927637')
|
|
95
|
-
isCNH('46190476839')
|
|
96
|
-
cnh.validate('62472927637')
|
|
97
|
-
cnh.validateOrFail('62472927637')
|
|
92
|
+
isCNH('69044271146') //-> true
|
|
93
|
+
isCNH('62472927637') //-> true
|
|
94
|
+
isCNH('46190476839') //-> false
|
|
95
|
+
cnh.validate('62472927637') //-> true
|
|
96
|
+
cnh.validateOrFail('62472927637') //-> true
|
|
98
97
|
|
|
99
98
|
// Número fake com e sem máscara
|
|
100
|
-
cnh.fake()
|
|
101
|
-
cnh.fake(true)
|
|
99
|
+
cnh.fake() // -> 62472927637
|
|
100
|
+
cnh.fake(true) // -> 624729276-37
|
|
102
101
|
|
|
103
102
|
// Aplica uma máscara
|
|
104
|
-
cnh.mask('62472927637')
|
|
103
|
+
cnh.mask('62472927637') // -> 624729276-37
|
|
105
104
|
|
|
106
105
|
// Calcula o DV
|
|
107
|
-
cnh.dv('624729276')
|
|
106
|
+
cnh.dv('624729276') // -> '37'
|
|
108
107
|
```
|
|
109
108
|
|
|
110
109
|
### isCNPJ( `value` )
|
|
@@ -113,27 +112,27 @@ Valida um CNPJ
|
|
|
113
112
|
|
|
114
113
|
```js
|
|
115
114
|
// Importação somente da validação
|
|
116
|
-
import { isCNPJ } from 'validation-br'
|
|
115
|
+
import { isCNPJ } from 'validation-br'
|
|
117
116
|
// ou
|
|
118
117
|
// Importação do submódulo
|
|
119
|
-
import cnpj from 'validation-br/cnpj'
|
|
118
|
+
import cnpj from 'validation-br/cnpj'
|
|
120
119
|
|
|
121
120
|
// Valida
|
|
122
|
-
isCNPJ('73.797.980/0001-79')
|
|
123
|
-
isCNPJ('55585709000198')
|
|
124
|
-
isCNPJ('99362238000180')
|
|
125
|
-
cnpj.validate('99362238000180')
|
|
126
|
-
cnpj.validateOrFail('99362238000180')
|
|
121
|
+
isCNPJ('73.797.980/0001-79') //-> true
|
|
122
|
+
isCNPJ('55585709000198') //-> true
|
|
123
|
+
isCNPJ('99362238000180') //-> false
|
|
124
|
+
cnpj.validate('99362238000180') //-> true
|
|
125
|
+
cnpj.validateOrFail('99362238000180') //-> true
|
|
127
126
|
|
|
128
127
|
// Número fake com e sem máscara
|
|
129
|
-
cnpj.fake()
|
|
130
|
-
cnpj.fake(true)
|
|
128
|
+
cnpj.fake() // -> 55585709000198
|
|
129
|
+
cnpj.fake(true) // -> 55.585.709/0001-98
|
|
131
130
|
|
|
132
131
|
// Aplica uma máscara
|
|
133
|
-
cnpj.mask('99362238000180')
|
|
132
|
+
cnpj.mask('99362238000180') // -> 99.362.238/0001-80
|
|
134
133
|
|
|
135
134
|
// Calcula o DV
|
|
136
|
-
cnpj.dv('993622380001')
|
|
135
|
+
cnpj.dv('993622380001') // -> '80'
|
|
137
136
|
```
|
|
138
137
|
|
|
139
138
|
### isCPF( `value` )
|
|
@@ -142,56 +141,111 @@ Valida um CPF
|
|
|
142
141
|
|
|
143
142
|
```js
|
|
144
143
|
// Importação somente da validação
|
|
145
|
-
import { isCPF } from 'validation-br'
|
|
144
|
+
import { isCPF } from 'validation-br'
|
|
146
145
|
// ou
|
|
147
146
|
// Importação do submódulo
|
|
148
|
-
import cpf from 'validation-br/cpf'
|
|
147
|
+
import cpf from 'validation-br/cpf'
|
|
149
148
|
|
|
150
149
|
// Valida
|
|
151
|
-
isCPF('01234567890')
|
|
152
|
-
isCPF('012.345.678-90')
|
|
153
|
-
isCPF('01234567891')
|
|
154
|
-
cpf.validate('01234567890')
|
|
155
|
-
cpf.validateOrFail('01234567890')
|
|
150
|
+
isCPF('01234567890') //-> true
|
|
151
|
+
isCPF('012.345.678-90') //-> true
|
|
152
|
+
isCPF('01234567891') //-> false
|
|
153
|
+
cpf.validate('01234567890') //-> true
|
|
154
|
+
cpf.validateOrFail('01234567890') //-> true
|
|
156
155
|
|
|
157
156
|
// Número fake com e sem máscara
|
|
158
|
-
cpf.fake()
|
|
159
|
-
cpf.fake(true)
|
|
157
|
+
cpf.fake() // -> 01234567891
|
|
158
|
+
cpf.fake(true) // -> 012.345.678-91
|
|
160
159
|
|
|
161
160
|
// Aplica uma máscara
|
|
162
|
-
cpf.mask('01234567890')
|
|
161
|
+
cpf.mask('01234567890') // -> 012.345.678-90
|
|
163
162
|
|
|
164
163
|
// Calcula o DV
|
|
165
|
-
cpf.dv('012345678')
|
|
164
|
+
cpf.dv('012345678') // -> '90'
|
|
166
165
|
```
|
|
167
166
|
|
|
168
167
|
### isJudicialProcess( `value` )
|
|
169
168
|
|
|
170
|
-
Valida
|
|
169
|
+
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.
|
|
170
|
+
|
|
171
|
+
O número é composto por 6 partes:
|
|
172
|
+
|
|
173
|
+
1. Número sequencial dado pelo órgão de registro, reiniciado a cada ano, com até 7 caracteres
|
|
174
|
+
2. Dígito verificador com 2 caracteres
|
|
175
|
+
3. Ano de registro com 4 caracteres
|
|
176
|
+
4. Órgão do poder judiciário com 1 caractere, sendo eles:
|
|
177
|
+
|
|
178
|
+
- 1 - Supremo Tribunal Federal
|
|
179
|
+
- 2 - Conselho Nacional de Justiça
|
|
180
|
+
- 3 - Superior Tribunal de Justiça
|
|
181
|
+
- 4 - Justiça Federal
|
|
182
|
+
- 5 - Justiça do Trabalho
|
|
183
|
+
- 6 - Justiça Eleitoral
|
|
184
|
+
- 7 - Justiça Militar da União
|
|
185
|
+
- 8 - Justiça dos Estados e do Distrito Federal e Territórios
|
|
186
|
+
- 9 - Justiça Militar Estadual
|
|
187
|
+
|
|
188
|
+
5. Tribunal do segmento do poder judiciário com 2 caracteres
|
|
189
|
+
6. Código da unidade de origem do processo com 4 caracteres
|
|
190
|
+
|
|
191
|
+
```js
|
|
192
|
+
// Importação somente da validação
|
|
193
|
+
import { isJudicialProcess } from 'validation-br'
|
|
194
|
+
// ou
|
|
195
|
+
// Importação do submódulo
|
|
196
|
+
import judicialProcess from 'validation-br/judicialProcess'
|
|
197
|
+
|
|
198
|
+
// Valida
|
|
199
|
+
isJudicialProcess('20802520125150049') //-> true
|
|
200
|
+
isJudicialProcess('0011006-07.2016.8.20.0100') //-> true
|
|
201
|
+
isJudicialProcess('00110060720168200101') //-> false
|
|
202
|
+
judicialProcess.validate('00110060720168200100') //-> true
|
|
203
|
+
judicialProcess.validateOrFail('00110060720168200100') //-> true
|
|
204
|
+
|
|
205
|
+
// Número fake com e sem máscara
|
|
206
|
+
judicialProcess.fake() // -> 00110060720168200100
|
|
207
|
+
judicialProcess.fake(true) // -> 0011006-07.2016.8.20.0100
|
|
208
|
+
|
|
209
|
+
// Aplica uma máscara
|
|
210
|
+
judicialProcess.mask('00110060720168200100') // -> 0011006-07.2016.8.20.0100
|
|
211
|
+
|
|
212
|
+
// Calcula o DV.
|
|
213
|
+
// 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.
|
|
214
|
+
judicialProcess.dv('001100620168200100') // -> '07'
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### isNUP17( `value` )
|
|
218
|
+
|
|
219
|
+
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.
|
|
220
|
+
|
|
221
|
+
1. Os primeiros 5 dígitos correspondem código do órgão
|
|
222
|
+
2. Os dígitos de 6 a 11 são um número sequencial dado pelo órgão em questão e é reiniciado a cada ano
|
|
223
|
+
3. Os dígitos 12 a 15 representam o ano de registro do protocolo
|
|
224
|
+
4. Os caracteres 16 a 17 são o dígito verificador
|
|
171
225
|
|
|
172
226
|
```js
|
|
173
227
|
// Importação somente da validação
|
|
174
|
-
import {
|
|
228
|
+
import { isNUP17 } from 'validation-br'
|
|
175
229
|
// ou
|
|
176
230
|
// Importação do submódulo
|
|
177
|
-
import
|
|
231
|
+
import nup from 'validation-br/nup17'
|
|
178
232
|
|
|
179
233
|
// Valida
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
234
|
+
isNUP17('23037001462202165') //-> true
|
|
235
|
+
isNUP17('23037.001462/2021-65') //-> true
|
|
236
|
+
isNUP17('23037.001462/2021-66') //-> false
|
|
237
|
+
nup.validate('23037.001462/2021-65') //-> true
|
|
238
|
+
nup.validateOrFail('23037.001462/2021-65') //-> true
|
|
185
239
|
|
|
186
240
|
// Número fake com e sem máscara
|
|
187
|
-
|
|
188
|
-
|
|
241
|
+
nup.fake() // -> 71282677380
|
|
242
|
+
nup.fake(true) // -> 712.82677.38-0
|
|
189
243
|
|
|
190
244
|
// Aplica uma máscara
|
|
191
|
-
|
|
245
|
+
nup.mask('23037001462202165') // -> 23037.001462/2021-65
|
|
192
246
|
|
|
193
247
|
// Calcula o DV
|
|
194
|
-
|
|
248
|
+
nup.dv('230370014622021') // -> '65'
|
|
195
249
|
```
|
|
196
250
|
|
|
197
251
|
### isPIS( `value` )
|
|
@@ -200,27 +254,27 @@ Valida códigos PIS, PASEP, NIS e NIT, que usam o mesmo algoritmo. Aceita númer
|
|
|
200
254
|
|
|
201
255
|
```js
|
|
202
256
|
// Importação somente da validação
|
|
203
|
-
import { isPIS } from 'validation-br'
|
|
257
|
+
import { isPIS } from 'validation-br'
|
|
204
258
|
// ou
|
|
205
259
|
// Importação do submódulo
|
|
206
|
-
import pis from 'validation-br/pis'
|
|
260
|
+
import pis from 'validation-br/pis'
|
|
207
261
|
|
|
208
262
|
// Valida
|
|
209
|
-
isPIS('71282677380')
|
|
210
|
-
isPIS('237.95126.95-5')
|
|
211
|
-
isPIS('500.12973.80-1')
|
|
212
|
-
pis.validate('71282677380')
|
|
213
|
-
pis.validateOrFail('71282677380')
|
|
263
|
+
isPIS('71282677380') //-> true
|
|
264
|
+
isPIS('237.95126.95-5') //-> true
|
|
265
|
+
isPIS('500.12973.80-1') //-> false
|
|
266
|
+
pis.validate('71282677380') //-> true
|
|
267
|
+
pis.validateOrFail('71282677380') //-> true
|
|
214
268
|
|
|
215
269
|
// Número fake com e sem máscara
|
|
216
|
-
pis.fake()
|
|
217
|
-
pis.fake(true)
|
|
270
|
+
pis.fake() // -> 71282677380
|
|
271
|
+
pis.fake(true) // -> 712.82677.38-0
|
|
218
272
|
|
|
219
273
|
// Aplica uma máscara
|
|
220
|
-
pis.mask('71282677380')
|
|
274
|
+
pis.mask('71282677380') // -> 712.82677.38-0
|
|
221
275
|
|
|
222
276
|
// Calcula o DV
|
|
223
|
-
pis.dv('7128267738')
|
|
277
|
+
pis.dv('7128267738') // -> '0'
|
|
224
278
|
```
|
|
225
279
|
|
|
226
280
|
### isPostalCode( `value` )
|
|
@@ -234,28 +288,28 @@ Valida um código de rastreamento de objetos postais no formato XX00000000DYY, o
|
|
|
234
288
|
|
|
235
289
|
```js
|
|
236
290
|
// Importação somente da validação
|
|
237
|
-
import { isPostalCode } from 'validation-br'
|
|
291
|
+
import { isPostalCode } from 'validation-br'
|
|
238
292
|
// ou
|
|
239
293
|
// Importação do submódulo
|
|
240
|
-
import postalCode from 'validation-br/
|
|
294
|
+
import postalCode from 'validation-br/postalCode'
|
|
241
295
|
|
|
242
296
|
// Valida
|
|
243
|
-
isPostalCode('PN718252423BR')
|
|
244
|
-
isPostalCode('RY728187035CN')
|
|
245
|
-
isPostalCode('JT194624698BR')
|
|
246
|
-
postalCode.validate('PN718252423BR')
|
|
247
|
-
postalCode.validateOrFail('PN718252423BR')
|
|
297
|
+
isPostalCode('PN718252423BR') //-> true
|
|
298
|
+
isPostalCode('RY728187035CN') //-> true
|
|
299
|
+
isPostalCode('JT194624698BR') //-> false
|
|
300
|
+
postalCode.validate('PN718252423BR') //-> true
|
|
301
|
+
postalCode.validateOrFail('PN718252423BR') //-> true
|
|
248
302
|
|
|
249
303
|
// Número fake com e sem máscara.
|
|
250
|
-
postalCode.fake()
|
|
251
|
-
postalCode.fake(true)
|
|
304
|
+
postalCode.fake() // -> PN718252423BR
|
|
305
|
+
postalCode.fake(true) // -> PN718252423BR
|
|
252
306
|
|
|
253
307
|
// Aplica uma máscara
|
|
254
308
|
// No caso de PostalCode, a máscara apenas coloca as letras em maiúsculas
|
|
255
|
-
postalCode.mask('pn718252423br')
|
|
309
|
+
postalCode.mask('pn718252423br') // -> PN718252423BR
|
|
256
310
|
|
|
257
311
|
// Calcula o DV
|
|
258
|
-
postalCode.dv('PN718252423BR')
|
|
312
|
+
postalCode.dv('PN718252423BR') // -> '3'
|
|
259
313
|
```
|
|
260
314
|
|
|
261
315
|
### isRenavam( `value` )
|
|
@@ -264,68 +318,72 @@ Valida o número de um RENAVAM de 11 dígitos
|
|
|
264
318
|
|
|
265
319
|
```js
|
|
266
320
|
// Importação somente da validação
|
|
267
|
-
import { isRenavam } from 'validation-br'
|
|
321
|
+
import { isRenavam } from 'validation-br'
|
|
268
322
|
// ou
|
|
269
323
|
// Importação do submódulo
|
|
270
|
-
import renavam from 'validation-br/renavam'
|
|
324
|
+
import renavam from 'validation-br/renavam'
|
|
271
325
|
|
|
272
326
|
// Valida
|
|
273
|
-
isRenavam('14283256656')
|
|
274
|
-
isRenavam('95059845976')
|
|
275
|
-
isRenavam('67747331626')
|
|
276
|
-
renavam.validate('95059845976')
|
|
277
|
-
renavam.validateOrFail('95059845976')
|
|
327
|
+
isRenavam('14283256656') //-> true
|
|
328
|
+
isRenavam('95059845976') //-> true
|
|
329
|
+
isRenavam('67747331626') //-> false
|
|
330
|
+
renavam.validate('95059845976') //-> true
|
|
331
|
+
renavam.validateOrFail('95059845976') //-> true
|
|
278
332
|
|
|
279
333
|
// Número fake com e sem máscara
|
|
280
|
-
renavam.fake()
|
|
281
|
-
renavam.fake(true)
|
|
334
|
+
renavam.fake() // -> 95059845976
|
|
335
|
+
renavam.fake(true) // -> 9505984597-6
|
|
282
336
|
|
|
283
337
|
// Aplica uma máscara
|
|
284
|
-
renavam.mask('95059845976')
|
|
338
|
+
renavam.mask('95059845976') // -> 9505984597-6
|
|
285
339
|
|
|
286
340
|
// Calcula o DV
|
|
287
|
-
renavam.dv('950598459')
|
|
341
|
+
renavam.dv('950598459') // -> '76'
|
|
288
342
|
```
|
|
289
343
|
|
|
290
|
-
###
|
|
344
|
+
### isTituloEleitor( `value` )
|
|
291
345
|
|
|
292
346
|
Valida um título eleitoral
|
|
293
347
|
|
|
294
348
|
```js
|
|
295
349
|
// Importação somente da validação
|
|
296
|
-
import {
|
|
350
|
+
import { isTituloEleitor } from 'validation-br'
|
|
297
351
|
// ou
|
|
298
352
|
// Importação do submódulo
|
|
299
|
-
import titulo from 'validation-br/
|
|
353
|
+
import titulo from 'validation-br/tituloEleitor'
|
|
300
354
|
|
|
301
355
|
// Valida
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
titulo.validate('01234567890')
|
|
306
|
-
titulo.validateOrFail('01234567890')
|
|
356
|
+
isTituloEleitor('743650641660') //-> true
|
|
357
|
+
isTituloEleitor('525028881694') //-> true
|
|
358
|
+
isTituloEleitor('153016161686') //-> false
|
|
359
|
+
titulo.validate('01234567890') //-> true
|
|
360
|
+
titulo.validateOrFail('01234567890') //-> true
|
|
307
361
|
|
|
308
362
|
// Número fake com e sem máscara
|
|
309
|
-
titulo.fake()
|
|
310
|
-
titulo.fake(true)
|
|
363
|
+
titulo.fake() // -> 153016161686
|
|
364
|
+
titulo.fake(true) // -> 1530.1616.1686
|
|
311
365
|
|
|
312
366
|
// Aplica uma máscara
|
|
313
|
-
titulo.mask('525028881694')
|
|
367
|
+
titulo.mask('525028881694') // -> 5250.2888.1694
|
|
314
368
|
|
|
315
369
|
// Calcula o DV
|
|
316
|
-
titulo.dv('5250288816')
|
|
370
|
+
titulo.dv('5250288816') // -> '94'
|
|
317
371
|
```
|
|
318
372
|
|
|
319
|
-
#
|
|
373
|
+
# Testes
|
|
320
374
|
|
|
321
|
-

|
|
322
376
|
|
|
323
377
|
# Changelog
|
|
324
378
|
|
|
379
|
+
- **10/01/2022**:
|
|
380
|
+
- 1.1.0 - Adicionado NUP17 - Número Unificado de Protocolo de 17 dígitos do Governo Federal
|
|
381
|
+
- **09/01/2022**:
|
|
382
|
+
- 1.0.0 - Biblioteca convertida para Typescript e testes convertidos para Jest
|
|
325
383
|
- **08/01/2022**:
|
|
326
384
|
- 0.21.1 - Adicionadas as funções isRenavam e isJudicialProcess
|
|
327
385
|
- **16/09/2021**:
|
|
328
|
-
- 0.5.0 - Adicionadas as funções isCPF, isCNPJ e
|
|
386
|
+
- 0.5.0 - Adicionadas as funções isCPF, isCNPJ e isTituloEleitor
|
|
329
387
|
- 0.7.0 - Adicionadas as funções isPostalCode e isCNH
|
|
330
388
|
- 0.8.0 - Adicionada a função isPIS
|
|
331
389
|
|
|
@@ -338,3 +396,4 @@ titulo.dv('5250288816'); // -> '94'
|
|
|
338
396
|
- [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
397
|
- [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
398
|
- [Cálculos de DV](http://ghiorzi.org/DVnew.htm)
|
|
399
|
+
- [Cálculo do NUP17](https://www.gov.br/compras/pt-br/acesso-a-informacao/legislacao/portarias/portaria-interministerial-no-11-de-25-de-novembro-de-2019)
|
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"}
|