validation-br 0.8.3 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/readme.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # validation-br
2
2
 
3
- Biblioteca de validação de documentos pessoais do Brasil com suporte a CPF, CNPJ, Título Eleitoral, PIS/PASEP, CNH, e Objetos registrados de rastreamento dos Correios.
3
+ Biblioteca de validação de documentos pessoais do Brasil com suporte a CPF, CNPJ, Título Eleitoral, PIS/PASEP, CNH, RENAVAM, Processos Judiciais e Objetos registrados de Rastreamento dos Correios.
4
4
 
5
- ## Instalação
5
+ # Instalação
6
6
 
7
7
  ```sh
8
8
  # Usando yarn
@@ -14,174 +14,323 @@ npm install validation-br
14
14
 
15
15
  ```
16
16
 
17
- ## Importação
17
+ # Importação
18
18
 
19
- ```js
19
+ ## Importação direta
20
+
21
+ Permite realizar diretamente uma validação a partir do objeto principal
20
22
 
23
+ ```js
21
24
  // Modules
22
25
  const { isCPF, isCNPJ } = require('validation-br');
23
26
 
24
27
  // ES6
25
- import { isCPF, isCNPJ } from ('validation-br');
28
+ import { isCPF, isCNPJ } from 'validation-br';
29
+ ```
30
+
31
+ ## Importação de submódulos
32
+
33
+ Importando os submódulos, é possível criar máscaras, números fake para testes de desenvolvimento e calcular dígitos verificadores.
34
+
35
+ ### Exemplos
36
+
37
+ ```js
38
+ // ES6
39
+ import { dv, fake, mask, validate } from 'validation-br/cpf';
40
+
41
+ // Modules
42
+ const cpf = require('validation-br/cpf');
43
+ const { dv, fake, mask, validate } = require('validation-br/cpf');
26
44
 
45
+ // Calculo do dígito verificador de um CPF. Os métodos aceitam inteiros e strings, inclusive com máscaras.
46
+ cpf.dv(906259666); // -> '51'
47
+ cpf.dv('906259666'); // -> '51'
48
+ cpf.dv('906.259.666'); // -> '51'
27
49
 
50
+ // Cria um número fake de CPF para fins de testes.
51
+ cpf.fake(); // -> 90625966651
52
+ // Passe um parâmetro true para gerar o número com máscara
53
+ cpf.fake(true); // -> 906.259.666-51
54
+
55
+ // Aplique uma máscara a um cpf
56
+ cpf.mask(90625966651); // -> 906.259.666-51
57
+
58
+ // Valida um número
59
+ cpf.validate('01234567890'); // -> true
60
+
61
+ // Valida um número e retorna exceção se a validação falhar
62
+ cpf.validateOrFail('01234567890'); // -> true
28
63
  ```
29
64
 
30
65
  ## Tabela de Conteúdo
31
66
 
67
+ - [isCNH](#isCNH) - Validação do CNH
32
68
  - [isCPF](#isCPF) - Validação do CPF
33
69
  - [isCNPJ](#isCNPJ) - Validação do CNPJ
34
- - [isTitulo](#isTitulo) - Validação do Título de Eleitor
35
- - [isCNH](#isCNH) - Validação do CNH
36
70
  - [isPostalCode](#isPostalCode) - Validação de Objetos Registrados dos Correios
71
+ - [isJudicialProcess](#isJudicialProcess) - Validação de Números de Processos Judiciais
37
72
  - [isPIS](#isPIS) - Validação de PIS, PASEP, NIS e NIT
73
+ - [isPostalCode](#isPostalCode) - Validação de Objetos Registrados dos Correios
74
+ - [isRenavam](#isRenavam) - Validação de RENAVAM
75
+ - [isTitulo](#isTitulo) - Validação do Título de Eleitor
38
76
 
39
- ### isCPF
77
+ ### isCNH( `value` )
40
78
 
41
- Valida um CPF
79
+ Valida o documento da carteira nacional de habilitação.
42
80
 
43
81
  ```js
44
- // Importação
45
- import { isCPF } from ('validation-br');
82
+ // Importação somente da validação
83
+ import { isCNH } from 'validation-br';
84
+ // ou
85
+ // Importação do submódulo
86
+ import cnh from 'validation-br/cnh';
46
87
 
47
88
  // Valida
48
- isCPF('01234567890')
49
- //-> true
89
+ isCNH('69044271146'); //-> true
90
+ isCNH('62472927637'); //-> true
91
+ isCNH('46190476839'); //-> false
92
+ cnh.validate('62472927637'); //-> true
93
+ cnh.validateOrFail('62472927637'); //-> true
50
94
 
51
- // Valida
52
- isCPF('012.345.678-90')
53
- //-> true
95
+ // Número fake com e sem máscara
96
+ cnh.fake(); // -> 62472927637
97
+ cnh.fake(true); // -> 624729276-37
54
98
 
55
- // Valida
56
- isCPF('01234567891')
57
- //-> false
99
+ // Aplica uma máscara
100
+ cnh.mask('62472927637'); // -> 624729276-37
101
+
102
+ // Calcula o DV
103
+ cnh.dv('624729276'); // -> '37'
58
104
  ```
59
105
 
60
- ### isCNPJ
106
+ ### isCNPJ( `value` )
61
107
 
62
108
  Valida um CNPJ
63
109
 
64
110
  ```js
65
- // Importação
66
- import { isCNPJ } from ('validation-br');
111
+ // Importação somente da validação
112
+ import { isCNPJ } from 'validation-br';
113
+ // ou
114
+ // Importação do submódulo
115
+ import cnpj from 'validation-br/cnpj';
67
116
 
68
117
  // Valida
69
- isCNPJ('73.797.980/0001-79')
70
- //-> true
118
+ isCNPJ('73.797.980/0001-79'); //-> true
119
+ isCNPJ('55585709000198'); //-> true
120
+ isCNPJ('99362238000180'); //-> false
121
+ cnpj.validate('99362238000180'); //-> true
122
+ cnpj.validateOrFail('99362238000180'); //-> true
71
123
 
72
- // Valida
73
- isCNPJ('55585709000198')
74
- //-> true
124
+ // Número fake com e sem máscara
125
+ cnpj.fake(); // -> 55585709000198
126
+ cnpj.fake(true); // -> 55.585.709/0001-98
75
127
 
76
- // Valida
77
- isCNPJ('99362238000180')
78
- //-> false
128
+ // Aplica uma máscara
129
+ cnpj.mask('99362238000180'); // -> 99.362.238/0001-80
130
+
131
+ // Calcula o DV
132
+ cnpj.dv('993622380001'); // -> '80'
79
133
  ```
80
134
 
81
- ### isTitulo
135
+ ### isCPF( `value` )
82
136
 
83
- Valida um título eleitoral
137
+ Valida um CPF
84
138
 
85
139
  ```js
86
- // Importação
87
- import { isTitulo } from ('validation-br');
140
+ // Importação somente da validação
141
+ import { isCPF } from 'validation-br';
142
+ // ou
143
+ // Importação do submódulo
144
+ import cpf from 'validation-br/cpf';
88
145
 
89
146
  // Valida
90
- isTitulo('743650641660')
91
- //-> true
147
+ isCPF('01234567890'); //-> true
148
+ isCPF('012.345.678-90'); //-> true
149
+ isCPF('01234567891'); //-> false
150
+ cpf.validate('01234567890'); //-> true
151
+ cpf.validateOrFail('01234567890'); //-> true
92
152
 
93
- // Valida
94
- isTitulo('525028881694')
95
- //-> true
153
+ // Número fake com e sem máscara
154
+ cpf.fake(); // -> 01234567891
155
+ cpf.fake(true); // -> 012.345.678-91
96
156
 
97
- // Valida
98
- isTitulo('153016161686')
99
- //-> false
157
+ // Aplica uma máscara
158
+ cpf.mask('01234567890'); // -> 012.345.678-90
159
+
160
+ // Calcula o DV
161
+ cpf.dv('012345678'); // -> '90'
100
162
  ```
101
163
 
102
- ### isCNH
164
+ ### isJudicialProcess( `value` )
103
165
 
104
- Valida o documento da carteira nacional de habilitação.
166
+ Valida códigos PIS, PASEP, NIS e NIT, que usam o mesmo algoritmo. Aceita números com e sem pontos e traços.
105
167
 
106
168
  ```js
107
- // Importação
108
- import { isCNH } from ('validation-br');
169
+ // Importação somente da validação
170
+ import { isJudicialProcess } from 'validation-br';
171
+ // ou
172
+ // Importação do submódulo
173
+ import judicialProcess from 'validation-br/judicial-process';
109
174
 
110
175
  // Valida
111
- isCNH('69044271146')
112
- //-> true
176
+ isJudicialProcess('71282677380'); //-> true
177
+ isJudicialProcess('237.95126.95-5'); //-> true
178
+ isJudicialProcess('500.12973.80-1'); //-> false
179
+ judicialProcess.validate('71282677380'); //-> true
180
+ judicialProcess.validateOrFail('71282677380'); //-> true
113
181
 
114
- // Valida
115
- isCNH('62472927637')
116
- //-> true
182
+ // Número fake com e sem máscara
183
+ judicialProcess.fake(); // -> 71282677380
184
+ judicialProcess.fake(true); // -> 712.82677.38-0
185
+
186
+ // Aplica uma máscara
187
+ judicialProcess.mask('71282677380'); // -> 712.82677.38-0
188
+
189
+ // Calcula o DV
190
+ judicialProcess.dv('7128267738'); // -> '0'
191
+ ```
192
+
193
+ ### isPIS( `value` )
194
+
195
+ Valida códigos PIS, PASEP, NIS e NIT, que usam o mesmo algoritmo. Aceita números com e sem pontos e traços.
196
+
197
+ ```js
198
+ // Importação somente da validação
199
+ import { isPIS } from 'validation-br';
200
+ // ou
201
+ // Importação do submódulo
202
+ import pis from 'validation-br/pis';
117
203
 
118
204
  // Valida
119
- isCNH('46190476839')
120
- //-> false
205
+ isPIS('71282677380'); //-> true
206
+ isPIS('237.95126.95-5'); //-> true
207
+ isPIS('500.12973.80-1'); //-> false
208
+ pis.validate('71282677380'); //-> true
209
+ pis.validateOrFail('71282677380'); //-> true
210
+
211
+ // Número fake com e sem máscara
212
+ pis.fake(); // -> 71282677380
213
+ pis.fake(true); // -> 712.82677.38-0
214
+
215
+ // Aplica uma máscara
216
+ pis.mask('71282677380'); // -> 712.82677.38-0
217
+
218
+ // Calcula o DV
219
+ pis.dv('7128267738'); // -> '0'
121
220
  ```
122
221
 
123
- ### isPostalCode
222
+ ### isPostalCode( `value` )
124
223
 
125
- Valida um código de rastreamento de objetos postais no formato XX000000000YY, onde:
224
+ Valida um código de rastreamento de objetos postais no formato XX00000000DYY, onde:
126
225
 
127
226
  - XX: O código do objeto postal com 2 dígitos;
128
- - 000000000: Número sequencial do objeto com 9 dígitos;
227
+ - 00000000: Número sequencial do objeto com 8 dígitos;
228
+ - D: Dígito Verificador
129
229
  - YY: País de origem do objeto com 2 dígitos.
130
230
 
131
231
  ```js
132
- // Importação
133
- import { isPostalCode } from ('validation-br');
232
+ // Importação somente da validação
233
+ import { isPostalCode } from 'validation-br';
234
+ // ou
235
+ // Importação do submódulo
236
+ import postalCode from 'validation-br/postal-code';
134
237
 
135
238
  // Valida
136
- isPostalCode('PN718252423BR')
137
- //-> true
239
+ isPostalCode('PN718252423BR'); //-> true
240
+ isPostalCode('RY728187035CN'); //-> true
241
+ isPostalCode('JT194624698BR'); //-> false
242
+ postalCode.validate('PN718252423BR'); //-> true
243
+ postalCode.validateOrFail('PN718252423BR'); //-> true
244
+
245
+ // Número fake com e sem máscara.
246
+ postalCode.fake(); // -> PN718252423BR
247
+ postalCode.fake(true); // -> PN718252423BR
248
+
249
+ // Aplica uma máscara
250
+ // No caso de PostalCode, a máscara apenas coloca as letras em maiúsculas
251
+ postalCode.mask('pn718252423br'); // -> PN718252423BR
252
+
253
+ // Calcula o DV
254
+ postalCode.dv('PN718252423BR'); // -> '3'
255
+ ```
138
256
 
139
- // Valida
140
- isPostalCode('RY728187035CN')
141
- //-> true
257
+ ### isRenavam( `value` )
258
+
259
+ Valida o número de um RENAVAM de 11 dígitos
260
+
261
+ ```js
262
+ // Importação somente da validação
263
+ import { isRenavam } from 'validation-br';
264
+ // ou
265
+ // Importação do submódulo
266
+ import renavam from 'validation-br/renavam';
142
267
 
143
268
  // Valida
144
- isPostalCode('JT194624698BR')
145
- //-> false
269
+ isRenavam('14283256656'); //-> true
270
+ isRenavam('95059845976'); //-> true
271
+ isRenavam('67747331626'); //-> false
272
+ renavam.validate('95059845976'); //-> true
273
+ renavam.validateOrFail('95059845976'); //-> true
274
+
275
+ // Número fake com e sem máscara
276
+ renavam.fake(); // -> 95059845976
277
+ renavam.fake(true); // -> 9505984597-6
278
+
279
+ // Aplica uma máscara
280
+ renavam.mask('95059845976'); // -> 9505984597-6
281
+
282
+ // Calcula o DV
283
+ renavam.dv('950598459'); // -> '76'
146
284
  ```
147
285
 
148
- ### isPIS
286
+ ### isTitulo( `value` )
149
287
 
150
- Valida códigos PIS, PASEP, NIS e NIT, que usam o mesmo algoritmo. Aceita números com e sem pontos e traços.
288
+ Valida um título eleitoral
151
289
 
152
290
  ```js
153
- // Importação
154
- import { isPIS } from ('validation-br');
291
+ // Importação somente da validação
292
+ import { isTitulo } from 'validation-br';
293
+ // ou
294
+ // Importação do submódulo
295
+ import titulo from 'validation-br/titulo';
155
296
 
156
297
  // Valida
157
- isPIS('71282677380')
158
- //-> true
298
+ isTitulo('743650641660'); //-> true
299
+ isTitulo('525028881694'); //-> true
300
+ isTitulo('153016161686'); //-> false
301
+ titulo.validate('01234567890'); //-> true
302
+ titulo.validateOrFail('01234567890'); //-> true
159
303
 
160
- // Valida
161
- isPIS('237.95126.95-5')
162
- //-> true
304
+ // Número fake com e sem máscara
305
+ titulo.fake(); // -> 153016161686
306
+ titulo.fake(true); // -> 1530.1616.1686
163
307
 
164
- // Valida
165
- isPIS('500.12973.80-1')
166
- //-> false
167
- ```
308
+ // Aplica uma máscara
309
+ titulo.mask('525028881694'); // -> 5250.2888.1694
168
310
 
169
- ## Tests
170
- ![image](https://user-images.githubusercontent.com/100168/133695302-17744b22-2bf0-41e8-8907-58ea4770be3c.png)
311
+ // Calcula o DV
312
+ titulo.dv('5250288816'); // -> '94'
313
+ ```
171
314
 
315
+ # Tests
172
316
 
317
+ ![image](https://user-images.githubusercontent.com/100168/148660802-e1d1b6e1-b447-4534-aa92-298849db6f47.png)
173
318
 
174
- ## Changelog
319
+ # Changelog
175
320
 
321
+ - **08/01/2022**:
322
+ - 0.21.1 - Adicionadas as funções isRenavam e isJudicialProcess
176
323
  - **16/09/2021**:
177
324
  - 0.5.0 - Adicionadas as funções isCPF, isCNPJ e isTitulo
178
325
  - 0.7.0 - Adicionadas as funções isPostalCode e isCNH
179
326
  - 0.8.0 - Adicionada a função isPIS
180
327
 
181
- ## Referências
328
+ # Referências
182
329
 
183
330
  - [Cálculo do DV do CPF](http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-cpf/)
184
331
  - [Cálculo do DV do CNPJ](http://www.macoratti.net/alg_cnpj.htm)
185
332
  - [Cálculo do DV do Título Eleitoral](http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/)
186
333
  - [Cálculo do PIS](http://www.macoratti.net/alg_pis.htm)
187
334
  - [Diferença entre PIS, PASEP, NIS e NIT](https://www.jornalcontabil.com.br/entenda-de-uma-vez-a-diferenca-entre-pis-pasep-nit-e-nis/#:~:text=NIS%20%E2%80%93%20N%C3%BAmero%20de%20Identifica%C3%A7%C3%A3o%20Social,do%20Patrim%C3%B4nio%20do%20Servidor%20P%C3%BAblico)
335
+ - [Documentação Oficial de Numeração de Processos Judiciais](https://juslaboris.tst.jus.br/bitstream/handle/20.500.12178/30318/2008_res0065_cnj_rep01.pdf?sequence=2)
336
+ - [Cálculos de DV](http://ghiorzi.org/DVnew.htm)