validation-br 0.8.1 → 0.21.2

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