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.
Files changed (49) hide show
  1. package/.eslintcache +1 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc.js +76 -11
  4. package/.github/workflows/test.yml +39 -0
  5. package/.prettierignore +1 -0
  6. package/.prettierrc.js +7 -0
  7. package/dist/{documents/cnh.js → cnh.js} +122 -153
  8. package/dist/cnh.js.map +1 -0
  9. package/dist/{documents/cnpj.js → cnpj.js} +111 -138
  10. package/dist/cnpj.js.map +1 -0
  11. package/dist/{documents/cpf.js → cpf.js} +133 -160
  12. package/dist/cpf.js.map +1 -0
  13. package/dist/index.js +24 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/judicialProcess.js +153 -0
  16. package/dist/judicialProcess.js.map +1 -0
  17. package/dist/{documents/pis-pasep.js → pisPasep.js} +113 -140
  18. package/dist/pisPasep.js.map +1 -0
  19. package/dist/postalCode.js +150 -0
  20. package/dist/postalCode.js.map +1 -0
  21. package/dist/renavam.js +108 -0
  22. package/dist/renavam.js.map +1 -0
  23. package/dist/{documents/titulo-eleitor.js → tituloEleitor.js} +130 -155
  24. package/dist/tituloEleitor.js.map +1 -0
  25. package/dist/{lib/utils.js → utils.js} +166 -175
  26. package/dist/utils.js.map +1 -0
  27. package/jest.config.js +14 -0
  28. package/package.json +77 -30
  29. package/readme.md +120 -114
  30. package/tsconfig.json +23 -0
  31. package/.babelrc +0 -15
  32. package/.prettierrc +0 -9
  33. package/LICENSE +0 -21
  34. package/dist/documents/cnh.js.map +0 -1
  35. package/dist/documents/cnpj.js.map +0 -1
  36. package/dist/documents/cpf.js.map +0 -1
  37. package/dist/documents/index.js +0 -29
  38. package/dist/documents/index.js.map +0 -1
  39. package/dist/documents/judicial-process.js +0 -177
  40. package/dist/documents/judicial-process.js.map +0 -1
  41. package/dist/documents/pis-pasep.js.map +0 -1
  42. package/dist/documents/postal-code.js +0 -151
  43. package/dist/documents/postal-code.js.map +0 -1
  44. package/dist/documents/renavam.js +0 -97
  45. package/dist/documents/renavam.js.map +0 -1
  46. package/dist/documents/titulo-eleitor.js.map +0 -1
  47. package/dist/lib/utils.js.map +0 -1
  48. package/docs.md +0 -0
  49. 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, 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 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); // -> '51'
47
- cpf.dv('906259666'); // -> '51'
48
- cpf.dv('906.259.666'); // -> '51'
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(); // -> 90625966651
55
+ cpf.fake() // -> 90625966651
52
56
  // Passe um parâmetro true para gerar o número com máscara
53
- cpf.fake(true); // -> 906.259.666-51
57
+ cpf.fake(true) // -> 906.259.666-51
54
58
 
55
59
  // Aplique uma máscara a um cpf
56
- cpf.mask(90625966651); // -> 906.259.666-51
60
+ cpf.mask(90625966651) // -> 906.259.666-51
57
61
 
58
62
  // Valida um número
59
- cpf.validate('01234567890'); // -> true
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'); // -> true
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
- - [isTitulo](#isTitulo) - Validação do Título de Eleitor
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'); //-> true
90
- isCNH('62472927637'); //-> true
91
- isCNH('46190476839'); //-> false
92
- cnh.validate('62472927637'); //-> true
93
- cnh.validateOrFail('62472927637'); //-> true
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(); // -> 62472927637
97
- cnh.fake(true); // -> 624729276-37
100
+ cnh.fake() // -> 62472927637
101
+ cnh.fake(true) // -> 624729276-37
98
102
 
99
103
  // Aplica uma máscara
100
- cnh.mask('62472927637'); // -> 624729276-37
104
+ cnh.mask('62472927637') // -> 624729276-37
101
105
 
102
106
  // Calcula o DV
103
- cnh.dv('624729276'); // -> '37'
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'); //-> true
119
- isCNPJ('55585709000198'); //-> true
120
- isCNPJ('99362238000180'); //-> false
121
- cnpj.validate('99362238000180'); //-> true
122
- cnpj.validateOrFail('99362238000180'); //-> 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
123
127
 
124
128
  // Número fake com e sem máscara
125
- cnpj.fake(); // -> 55585709000198
126
- cnpj.fake(true); // -> 55.585.709/0001-98
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'); // -> 99.362.238/0001-80
133
+ cnpj.mask('99362238000180') // -> 99.362.238/0001-80
130
134
 
131
135
  // Calcula o DV
132
- cnpj.dv('993622380001'); // -> '80'
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'); //-> true
148
- isCPF('012.345.678-90'); //-> true
149
- isCPF('01234567891'); //-> false
150
- cpf.validate('01234567890'); //-> true
151
- cpf.validateOrFail('01234567890'); //-> 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
152
156
 
153
157
  // Número fake com e sem máscara
154
- cpf.fake(); // -> 01234567891
155
- cpf.fake(true); // -> 012.345.678-91
158
+ cpf.fake() // -> 01234567891
159
+ cpf.fake(true) // -> 012.345.678-91
156
160
 
157
161
  // Aplica uma máscara
158
- cpf.mask('01234567890'); // -> 012.345.678-90
162
+ cpf.mask('01234567890') // -> 012.345.678-90
159
163
 
160
164
  // Calcula o DV
161
- cpf.dv('012345678'); // -> '90'
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'); //-> 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
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(); // -> 71282677380
184
- judicialProcess.fake(true); // -> 712.82677.38-0
187
+ judicialProcess.fake() // -> 71282677380
188
+ judicialProcess.fake(true) // -> 712.82677.38-0
185
189
 
186
190
  // Aplica uma máscara
187
- judicialProcess.mask('71282677380'); // -> 712.82677.38-0
191
+ judicialProcess.mask('71282677380') // -> 712.82677.38-0
188
192
 
189
193
  // Calcula o DV
190
- judicialProcess.dv('7128267738'); // -> '0'
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'); //-> 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
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(); // -> 71282677380
213
- pis.fake(true); // -> 712.82677.38-0
216
+ pis.fake() // -> 71282677380
217
+ pis.fake(true) // -> 712.82677.38-0
214
218
 
215
219
  // Aplica uma máscara
216
- pis.mask('71282677380'); // -> 712.82677.38-0
220
+ pis.mask('71282677380') // -> 712.82677.38-0
217
221
 
218
222
  // Calcula o DV
219
- pis.dv('7128267738'); // -> '0'
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'); //-> true
240
- isPostalCode('RY728187035CN'); //-> true
241
- isPostalCode('JT194624698BR'); //-> false
242
- postalCode.validate('PN718252423BR'); //-> true
243
- postalCode.validateOrFail('PN718252423BR'); //-> true
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(); // -> PN718252423BR
247
- postalCode.fake(true); // -> PN718252423BR
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'); // -> PN718252423BR
255
+ postalCode.mask('pn718252423br') // -> PN718252423BR
252
256
 
253
257
  // Calcula o DV
254
- postalCode.dv('PN718252423BR'); // -> '3'
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'); //-> true
270
- isRenavam('95059845976'); //-> true
271
- isRenavam('67747331626'); //-> false
272
- renavam.validate('95059845976'); //-> true
273
- renavam.validateOrFail('95059845976'); //-> true
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(); // -> 95059845976
277
- renavam.fake(true); // -> 9505984597-6
280
+ renavam.fake() // -> 95059845976
281
+ renavam.fake(true) // -> 9505984597-6
278
282
 
279
283
  // Aplica uma máscara
280
- renavam.mask('95059845976'); // -> 9505984597-6
284
+ renavam.mask('95059845976') // -> 9505984597-6
281
285
 
282
286
  // Calcula o DV
283
- renavam.dv('950598459'); // -> '76'
287
+ renavam.dv('950598459') // -> '76'
284
288
  ```
285
289
 
286
- ### isTitulo( `value` )
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 { isTitulo } from 'validation-br';
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
- isTitulo('743650641660'); //-> true
299
- isTitulo('525028881694'); //-> true
300
- isTitulo('153016161686'); //-> false
301
- titulo.validate('01234567890'); //-> true
302
- titulo.validateOrFail('01234567890'); //-> true
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(); // -> 153016161686
306
- titulo.fake(true); // -> 1530.1616.1686
309
+ titulo.fake() // -> 153016161686
310
+ titulo.fake(true) // -> 1530.1616.1686
307
311
 
308
312
  // Aplica uma máscara
309
- titulo.mask('525028881694'); // -> 5250.2888.1694
313
+ titulo.mask('525028881694') // -> 5250.2888.1694
310
314
 
311
315
  // Calcula o DV
312
- titulo.dv('5250288816'); // -> '94'
316
+ titulo.dv('5250288816') // -> '94'
313
317
  ```
314
318
 
315
319
  # Tests
316
320
 
317
- ![image](https://user-images.githubusercontent.com/100168/148660802-e1d1b6e1-b447-4534-aa92-298849db6f47.png)
321
+ ![image](https://user-images.githubusercontent.com/100168/148705528-7c810b3c-851a-49c4-bc08-f9631498d526.png)
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 isTitulo
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
@@ -1,15 +0,0 @@
1
- {
2
- "presets": [
3
- [
4
- "@babel/preset-env",
5
- {
6
- "targets": {
7
- "chrome": "58",
8
- "ie": "11"
9
- }
10
- },
11
- "minify"
12
- ]
13
- ],
14
- "plugins": ["@babel/plugin-transform-runtime"]
15
- }
package/.prettierrc DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "semi": true,
3
- "arrowParens": "always",
4
- "bracketSpacing": true,
5
- "endOfLine": "lf",
6
- "singleQuote": true,
7
- "trailingComma": "es5",
8
- "useTabs": false
9
- }
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":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,eAGIA,OAAO,CAAC,cAAD,CAHX;AAAA,IACEC,wBADF,YACEA,wBADF;AAAA,IAC4BC,OAD5B,YAC4BA,OAD5B;AAAA,IACqCC,oBADrC,YACqCA,oBADrC;AAAA,IAEEC,UAFF,YAEEA,UAFF;AAAA,IAEcC,SAFd,YAEcA,SAFd;AAAA,IAEyBC,UAFzB,YAEyBA,UAFzB;AAKA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,EAAE,GAAG,SAALA,EAAK,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AACzB,MAAI,CAACA,KAAL,EAAY,MAAM,IAAIC,KAAJ,CAAU,mBAAV,CAAN;AAEZ,MAAMC,GAAG,GAAGN,UAAU,CAACI,KAAD,EAAQ,CAAR,CAAtB;AAEA,MAAMG,WAAW,GAAGR,oBAAoB,CAAC,CAAD,CAAxC;;AACA,MAAIQ,WAAW,CAACC,QAAZ,CAAqBF,GAArB,CAAJ,EAA+B;AAC7B,UAAM,IAAID,KAAJ,CAAU,kDAAV,CAAN;AACD;;AAED,MAAMI,IAAI,GAAGZ,wBAAwB,CAACS,GAAG,CAACI,SAAJ,CAAc,CAAd,EAAiB,CAAjB,CAAD,EAAsB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,EAAzB,CAAtB,CAArC;AACA,MAAMC,GAAG,GAAGb,OAAO,CAACW,IAAD,CAAnB;AAEA,MAAMG,IAAI,GAAGf,wBAAwB,CACnCS,GAAG,CAACI,SAAJ,CAAc,CAAd,EAAiB,CAAjB,IAAsBC,GADa,EAEnC,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,EAAtB,EAA0B,EAA1B,EAA8B,CAA9B,CAFmC,CAArC;AAIA,MAAME,GAAG,GAAGf,OAAO,CAACc,IAAD,CAAnB;AAEA,mBAAUD,GAAV,SAAgBE,GAAhB;AACD,CApBD;AAsBA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAgB;AAAA,MAAfV,KAAe,uEAAP,EAAO;AACrC,MAAME,GAAG,GAAGN,UAAU,CAACI,KAAD,EAAQ,EAAR,CAAtB;;AAEA,MAAID,EAAE,CAACG,GAAD,CAAF,KAAaA,GAAG,CAACI,SAAJ,CAAc,CAAd,EAAiB,EAAjB,CAAjB,EAAwC;AACtC,UAAM,IAAIL,KAAJ,CAAU,6BAAV,CAAN;AACD;;AAED,SAAO,IAAP;AACD,CARD;AAUA;AACA;AACA;AACA;AACA;;;AACA,IAAMU,QAAQ,GAAG,SAAXA,QAAW,GAAgB;AAAA,MAAfX,KAAe,uEAAP,EAAO;;AAC/B,MAAI;AACF,WAAOU,cAAc,CAACV,KAAD,CAArB;AACD,GAFD,CAEE,OAAOY,KAAP,EAAc;AACd,WAAO,KAAP;AACD;AACF,CAND;AAQA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,IAAI,GAAG,SAAPA,IAAO;AAAA,MAACb,KAAD,uEAAS,EAAT;AAAA,SAAgBH,SAAS,CAACG,KAAD,EAAQ,cAAR,CAAzB;AAAA,CAAb;AAEA;AACA;AACA;AACA;AACA;;;AACA,IAAMc,IAAI,GAAG,SAAPA,IAAO,GAAsB;AAAA,MAArBC,QAAqB,uEAAV,KAAU;AACjC,MAAMf,KAAK,GAAGF,UAAU,CAAC,CAAD,EAAI,IAAJ,CAAxB;AAEA,MAAMI,GAAG,aAAMF,KAAN,SAAcD,EAAE,CAACC,KAAD,CAAhB,CAAT;AAEA,MAAIe,QAAJ,EAAc,OAAOF,IAAI,CAACX,GAAD,CAAX;AAEd,SAAOA,GAAP;AACD,CARD;;AAUAc,MAAM,CAACC,OAAP,GAAiB;AACflB,EAAAA,EAAE,EAAFA,EADe;AACXe,EAAAA,IAAI,EAAJA,IADW;AACLD,EAAAA,IAAI,EAAJA,IADK;AACCF,EAAAA,QAAQ,EAARA,QADD;AACWD,EAAAA,cAAc,EAAdA;AADX,CAAjB","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"}
@@ -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"}