validation-br 1.6.3-b → 1.6.3-d
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/package.json +6 -4
- package/.prettierignore +0 -1
- package/.prettierrc.js +0 -7
- package/.publish/dist/_exceptions/ValidationBRError.d.ts +0 -7
- package/.publish/dist/_exceptions/ValidationBRError.js +0 -11
- package/.publish/dist/_exceptions/ValidationBRError.js.map +0 -1
- package/.publish/dist/cnh.d.ts +0 -98
- package/.publish/dist/cnh.js +0 -149
- package/.publish/dist/cnh.js.map +0 -1
- package/.publish/dist/cnpj.d.ts +0 -121
- package/.publish/dist/cnpj.js +0 -193
- package/.publish/dist/cnpj.js.map +0 -1
- package/.publish/dist/cpf.d.ts +0 -106
- package/.publish/dist/cpf.js +0 -157
- package/.publish/dist/cpf.js.map +0 -1
- package/.publish/dist/index.d.ts +0 -21
- package/.publish/dist/index.js +0 -42
- package/.publish/dist/index.js.map +0 -1
- package/.publish/dist/judicialProcess.d.ts +0 -133
- package/.publish/dist/judicialProcess.js +0 -200
- package/.publish/dist/judicialProcess.js.map +0 -1
- package/.publish/dist/nup17.d.ts +0 -103
- package/.publish/dist/nup17.js +0 -159
- package/.publish/dist/nup17.js.map +0 -1
- package/.publish/dist/pisPasep.d.ts +0 -88
- package/.publish/dist/pisPasep.js +0 -136
- package/.publish/dist/pisPasep.js.map +0 -1
- package/.publish/dist/postalCode.d.ts +0 -92
- package/.publish/dist/postalCode.js +0 -144
- package/.publish/dist/postalCode.js.map +0 -1
- package/.publish/dist/renavam.d.ts +0 -82
- package/.publish/dist/renavam.js +0 -132
- package/.publish/dist/renavam.js.map +0 -1
- package/.publish/dist/tituloEleitor.d.ts +0 -100
- package/.publish/dist/tituloEleitor.js +0 -157
- package/.publish/dist/tituloEleitor.js.map +0 -1
- package/.publish/dist/utils.d.ts +0 -131
- package/.publish/dist/utils.js +0 -190
- package/.publish/dist/utils.js.map +0 -1
- package/.publish/package-lock.json +0 -4372
- package/.publish/package.json +0 -112
- package/.publish/readme.md +0 -492
- package/eslint.config.js +0 -82
- package/jest.config.js +0 -11
- package/publish.sh +0 -31
- package/tsconfig.json +0 -25
package/.publish/package.json
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "validation-br",
|
|
3
|
-
"description": "Brazilian personal documents validation - cpf, cnpj, titulo, pis/pasep, cnh, renavam, processos judiciais, protocolo federal, código de rastreamento dos correios",
|
|
4
|
-
"version": "1.6.3-b",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "./dist/index.d.ts",
|
|
7
|
-
|
|
8
|
-
"directories": {
|
|
9
|
-
"meupa": ".publish"
|
|
10
|
-
},
|
|
11
|
-
|
|
12
|
-
"author": "Cláudio Medeiros <klawdyo@gmail.com>",
|
|
13
|
-
"license": "MIT",
|
|
14
|
-
"scripts": {
|
|
15
|
-
"build": "tsc",
|
|
16
|
-
"prepublishOnly": "./publish.sh",
|
|
17
|
-
"test": "jest",
|
|
18
|
-
"test:watch": "jest --watch",
|
|
19
|
-
"test:coverage": "jest --collectCoverageFrom=src/**/*.ts --coverage",
|
|
20
|
-
"format": "prettier --write \"./**/*.{js,ts,json}\""
|
|
21
|
-
},
|
|
22
|
-
"lint-staged": {
|
|
23
|
-
"*.{js,ts}": [
|
|
24
|
-
"prettier --write",
|
|
25
|
-
"eslint --cache --fix"
|
|
26
|
-
]
|
|
27
|
-
},
|
|
28
|
-
"devDependencies": {
|
|
29
|
-
"@types/jest": "^27.4.0",
|
|
30
|
-
"@types/node": "^14.14.2",
|
|
31
|
-
"jest": "^29.7.0",
|
|
32
|
-
"ts-jest": "^29.2.5",
|
|
33
|
-
"ts-node": "^9.0.0",
|
|
34
|
-
"typescript": "^5.6.2"
|
|
35
|
-
},
|
|
36
|
-
"repository": {
|
|
37
|
-
"url": "git+https://github.com/klawdyo/validation-br.git"
|
|
38
|
-
},
|
|
39
|
-
"bugs": {
|
|
40
|
-
"url": "https://github.com/klawdyo/validation-br/issues"
|
|
41
|
-
},
|
|
42
|
-
"homepage": "https://github.com/klawdyo/validation-br#readme",
|
|
43
|
-
"keywords": [
|
|
44
|
-
"validation-br",
|
|
45
|
-
"validation",
|
|
46
|
-
"personal documents",
|
|
47
|
-
"document",
|
|
48
|
-
"brazil",
|
|
49
|
-
"brasil",
|
|
50
|
-
"brazilian",
|
|
51
|
-
"brasileiro",
|
|
52
|
-
"cpf",
|
|
53
|
-
"cnpj",
|
|
54
|
-
"pis",
|
|
55
|
-
"pasep",
|
|
56
|
-
"cnh",
|
|
57
|
-
"titulo eleitor",
|
|
58
|
-
"eleitoral",
|
|
59
|
-
"titulo",
|
|
60
|
-
"renavam",
|
|
61
|
-
"processos",
|
|
62
|
-
"judiciais",
|
|
63
|
-
"judicial",
|
|
64
|
-
"justiça",
|
|
65
|
-
"protocolo",
|
|
66
|
-
"federal",
|
|
67
|
-
"fake",
|
|
68
|
-
"falso",
|
|
69
|
-
"mock",
|
|
70
|
-
"faker",
|
|
71
|
-
"mockup",
|
|
72
|
-
"mask",
|
|
73
|
-
"mascara",
|
|
74
|
-
"fake cpf",
|
|
75
|
-
"fake cnpj",
|
|
76
|
-
"fake cnh",
|
|
77
|
-
"fake pis",
|
|
78
|
-
"fake pasep",
|
|
79
|
-
"fake cadunico",
|
|
80
|
-
"fake renavam",
|
|
81
|
-
"fake titulo",
|
|
82
|
-
"fake titulo eleitor",
|
|
83
|
-
"fake titulo eleitoral",
|
|
84
|
-
"fake número processo",
|
|
85
|
-
"processo justiça",
|
|
86
|
-
"processo judicial",
|
|
87
|
-
"valida",
|
|
88
|
-
"validar",
|
|
89
|
-
"validação",
|
|
90
|
-
"valide",
|
|
91
|
-
"validate",
|
|
92
|
-
"format",
|
|
93
|
-
"formatar",
|
|
94
|
-
"formatador",
|
|
95
|
-
"formatter",
|
|
96
|
-
"nest",
|
|
97
|
-
"nestjs",
|
|
98
|
-
"yup",
|
|
99
|
-
"next",
|
|
100
|
-
"nextjs",
|
|
101
|
-
"typeorm",
|
|
102
|
-
"class-validator",
|
|
103
|
-
"vuelidate",
|
|
104
|
-
"vue",
|
|
105
|
-
"vue3",
|
|
106
|
-
"indicative",
|
|
107
|
-
"adonis",
|
|
108
|
-
"adonisjs",
|
|
109
|
-
"adonis4",
|
|
110
|
-
"adonisjs4"
|
|
111
|
-
]
|
|
112
|
-
}
|
package/.publish/readme.md
DELETED
|
@@ -1,492 +0,0 @@
|
|
|
1
|
-
# validation-br
|
|
2
|
-
|
|
3
|
-
> **A primeira biblioteca a inserir o suporte ao CNPJ alfanumérico**
|
|
4
|
-
|
|
5
|
-
Biblioteca de validação de documentos pessoais do Brasil com suporte a CPF, CNPJ (numérico e **alfanumérico**), Título Eleitoral, PIS/PASEP, CNH.
|
|
6
|
-
|
|
7
|
-
`Validation-BR` 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, além de permitir a criação de números fake para facilitar o desenvolvimento e testes, aplicar máscaras e calcular somente os dígitos verificadores.
|
|
8
|
-
|
|
9
|
-
# Instalação
|
|
10
|
-
|
|
11
|
-
```sh
|
|
12
|
-
# Usando yarn
|
|
13
|
-
yarn add validation-br
|
|
14
|
-
|
|
15
|
-
# Usando npm
|
|
16
|
-
npm install validation-br
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
# Importação
|
|
21
|
-
|
|
22
|
-
## Importação direta
|
|
23
|
-
|
|
24
|
-
```js
|
|
25
|
-
// Modules
|
|
26
|
-
const { isCPF, isCNPJ } = require('validation-br');
|
|
27
|
-
|
|
28
|
-
// ES6 - Importação a partir do objeto principal
|
|
29
|
-
import { isCPF, isCNPJ } from 'validation-br';
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Importação de submódulos
|
|
33
|
-
|
|
34
|
-
Importando os submódulos, é possível criar máscaras, números fake para testes de desenvolvimento e calcular dígitos verificadores.
|
|
35
|
-
|
|
36
|
-
> As funções dos exemplos abaixo se aplicam a todos os tipos de documentos.
|
|
37
|
-
|
|
38
|
-
```js
|
|
39
|
-
// Importação direta
|
|
40
|
-
import { isCPF } from 'validation-br';
|
|
41
|
-
isCPF('01234567890'); // -> true
|
|
42
|
-
isCPF('01234567891'); // -> false
|
|
43
|
-
|
|
44
|
-
// Importe de submódulos
|
|
45
|
-
import { dv, fake, mask, validate } from 'validation-br/dist/cpf';
|
|
46
|
-
|
|
47
|
-
// Calculo do dígito verificador de um CPF. Os métodos aceitam inteiros e strings, inclusive com máscaras.
|
|
48
|
-
dv(906259666); // -> '51'
|
|
49
|
-
dv('906259666'); // -> '51'
|
|
50
|
-
dv('906.259.666'); // -> '51'
|
|
51
|
-
|
|
52
|
-
// Cria um número fake de CPF para fins de testes.
|
|
53
|
-
fake(); // -> 90625966651
|
|
54
|
-
// Passe um parâmetro true para gerar o número com máscara
|
|
55
|
-
fake(true); // -> 906.259.666-51
|
|
56
|
-
|
|
57
|
-
// Aplique uma máscara a um cpf
|
|
58
|
-
mask(90625966651); // -> 906.259.666-51
|
|
59
|
-
|
|
60
|
-
// Normalize o número do documento
|
|
61
|
-
normalize('906.259.666-51'); // -> 90625966651
|
|
62
|
-
|
|
63
|
-
// Valida um número e retorna exceção se a validação falhar
|
|
64
|
-
validateOrFail('01234567890'); // -> true
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## Tabela de Conteúdo
|
|
68
|
-
|
|
69
|
-
### Funções de Validação
|
|
70
|
-
|
|
71
|
-
- [CNH](#cnh) - Validação do CNH
|
|
72
|
-
- [CPF](#cpf) - Validação do CPF
|
|
73
|
-
- [CNPJ](#cnpj) - Validação do CNPJ
|
|
74
|
-
- [NUP-17](#nup-17) - Validação de Número Unificado de Protocolo do Governo Federal
|
|
75
|
-
- [Processo Judicial](#processos-judiciais) - Validação de Números de Processos Judiciais
|
|
76
|
-
- [PIS](#pis) - Validação de PIS, PASEP, NIS e NIT
|
|
77
|
-
- [Código de Rastreamento Postal](#código-de-rastreamento-postal-dos-correios) - Validação de Objetos Registrados dos Correios
|
|
78
|
-
- [Renavam](#renavam) - Validação de RENAVAM
|
|
79
|
-
- [Titulo de Eleitor](#título-de-eleitor) - Validação do Título de Eleitor
|
|
80
|
-
|
|
81
|
-
## Usando em outras bibliotecas de validação
|
|
82
|
-
|
|
83
|
-
`Validation-BR` pode ser utilizado em conjunto com quaisquer bibliotecas de validação que permita estender seus métodos.
|
|
84
|
-
Abaixo seguem alguns exemplos. Sinta-se convidado a adicionar a sua biblioteca favorita em nosso wiki.
|
|
85
|
-
|
|
86
|
-
- [Vuelidate](https://github.com/klawdyo/validation-br/wiki/Vuelidate) - Usado para validação de estado no vuejs
|
|
87
|
-
- [Class-Validator](https://github.com/klawdyo/validation-br/wiki/ClassValidator) - Usado em nest, typeorm E mais uma infinidade de frameworks
|
|
88
|
-
- [Indicative](https://github.com/klawdyo/validation-br/wiki/Indicative) - Indicative é a biblioteca padrão de validação usada no Adonis.
|
|
89
|
-
- [Joi](https://github.com/klawdyo/validation-br/wiki/Joi) - Joi é um validador de esquemas usado em aplicações node, react, vue etc.
|
|
90
|
-
- [Yup](https://github.com/klawdyo/validation-br/wiki/Yup) - Yup é usado para validar estado em aplicações react.
|
|
91
|
-
|
|
92
|
-
## CNH
|
|
93
|
-
|
|
94
|
-
Valida o documento da carteira nacional de habilitação.
|
|
95
|
-
|
|
96
|
-
```js
|
|
97
|
-
// Importação direta
|
|
98
|
-
import { isCNH } from 'validation-br';
|
|
99
|
-
isCNH('69044271146'); //-> true
|
|
100
|
-
isCNH('62472927637'); //-> true
|
|
101
|
-
isCNH('46190476839'); //-> false
|
|
102
|
-
|
|
103
|
-
// Importação do submódulo
|
|
104
|
-
import { validate, mask, normalize, fake, dv } from 'validation-br/dist/cnh';
|
|
105
|
-
|
|
106
|
-
// Valida
|
|
107
|
-
validate('624729276-37'); //-> true
|
|
108
|
-
validateOrFail('62472927637'); //-> true
|
|
109
|
-
|
|
110
|
-
// Número fake com e sem máscara
|
|
111
|
-
fake(); // -> 62472927637
|
|
112
|
-
fake(true); // -> 624729276-37
|
|
113
|
-
|
|
114
|
-
// Aplica uma máscara
|
|
115
|
-
mask('62472927637'); // -> 624729276-37
|
|
116
|
-
|
|
117
|
-
// Normalize o número do documento
|
|
118
|
-
normalize('624729276-37'); // -> 62472927637
|
|
119
|
-
|
|
120
|
-
// Calcula o DV
|
|
121
|
-
dv('624729276'); // -> '37'
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## CNPJ
|
|
125
|
-
|
|
126
|
-
Valida um CNPJ **numérico** e **alfanumérico**.
|
|
127
|
-
|
|
128
|
-
> **Primeira biblioteca a inserir o suporte ao CNPJ alfanumérico.**
|
|
129
|
-
>
|
|
130
|
-
> A partir da [Nota Técnica conjunta COCAD/SUARA/RFB nº 49 de 14 de maio de 2024](https://github.com/user-attachments/files/15851229/Nota.COCAD.SUARA.2024.05.49.CNPJ.Alfanumerico-1.pdf), os números de CNPJ poderão ser alfanuméricos. A alteração entra em uso em 2026.
|
|
131
|
-
|
|
132
|
-
```js
|
|
133
|
-
// Importação direta
|
|
134
|
-
import { isCNPJ } from 'validation-br';
|
|
135
|
-
isCNPJ('73.797.980/0001-79'); //-> true
|
|
136
|
-
isCNPJ('55585709000198'); //-> true
|
|
137
|
-
isCNPJ('99362238000180'); //-> false
|
|
138
|
-
|
|
139
|
-
// ou
|
|
140
|
-
// Importação do submódulo
|
|
141
|
-
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/cnpj';
|
|
142
|
-
|
|
143
|
-
// Valida
|
|
144
|
-
|
|
145
|
-
validate('99362238000180'); //-> true
|
|
146
|
-
validateOrFail('99362238000180'); //-> true
|
|
147
|
-
|
|
148
|
-
// Número fake com e sem máscara
|
|
149
|
-
fake(); // -> 55585709000198
|
|
150
|
-
fake(true); // -> 55.585.709/0001-98
|
|
151
|
-
fake({ withMask: true }); // -> 55.585.709/0001-98
|
|
152
|
-
fake({ withMask: true, alphanumeric: true }); // -> A1.222.333/0001-50
|
|
153
|
-
fake({ withMask: false, alphanumeric: true }); // -> A1222333/0001-50
|
|
154
|
-
|
|
155
|
-
// Aplica uma máscara
|
|
156
|
-
mask('99362238000180'); // -> 99.362.238/0001-80
|
|
157
|
-
|
|
158
|
-
// Normalize o número do documento
|
|
159
|
-
normalize('99.362.238/0001-80'); // -> 99362238000180
|
|
160
|
-
|
|
161
|
-
// Calcula o DV
|
|
162
|
-
dv('993622380001'); // -> '80'
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
## CPF
|
|
166
|
-
|
|
167
|
-
Valida um CPF
|
|
168
|
-
|
|
169
|
-
```js
|
|
170
|
-
// Importação direta
|
|
171
|
-
import { isCPF } from 'validation-br';
|
|
172
|
-
isCPF('01234567890'); //-> true
|
|
173
|
-
isCPF('012.345.678-90'); //-> true
|
|
174
|
-
isCPF('01234567891'); //-> false
|
|
175
|
-
|
|
176
|
-
// ou
|
|
177
|
-
// Importação do submódulo
|
|
178
|
-
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/cpf';
|
|
179
|
-
|
|
180
|
-
// Valida
|
|
181
|
-
validate('01234567890'); //-> true
|
|
182
|
-
validateOrFail('01234567890'); //-> true
|
|
183
|
-
|
|
184
|
-
// Número fake com e sem máscara
|
|
185
|
-
fake(); // -> 01234567891
|
|
186
|
-
fake(true); // -> 012.345.678-91
|
|
187
|
-
|
|
188
|
-
// Aplica uma máscara
|
|
189
|
-
mask('01234567890'); // -> 012.345.678-90
|
|
190
|
-
|
|
191
|
-
// Normalize o número do documento
|
|
192
|
-
normalize('012.345.678-90'); // -> 01234567890
|
|
193
|
-
|
|
194
|
-
// Calcula o DV
|
|
195
|
-
dv('012345678'); // -> '90'
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
## Processos Judiciais
|
|
199
|
-
|
|
200
|
-
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.
|
|
201
|
-
|
|
202
|
-
O número é composto por 6 partes:
|
|
203
|
-
|
|
204
|
-
1. Número sequencial dado pelo órgão de registro, reiniciado a cada ano, com até 7 caracteres
|
|
205
|
-
2. Dígito verificador com 2 caracteres
|
|
206
|
-
3. Ano de registro com 4 caracteres
|
|
207
|
-
4. Órgão do poder judiciário com 1 caractere, sendo eles:
|
|
208
|
-
|
|
209
|
-
- 1 - Supremo Tribunal Federal
|
|
210
|
-
- 2 - Conselho Nacional de Justiça
|
|
211
|
-
- 3 - Superior Tribunal de Justiça
|
|
212
|
-
- 4 - Justiça Federal
|
|
213
|
-
- 5 - Justiça do Trabalho
|
|
214
|
-
- 6 - Justiça Eleitoral
|
|
215
|
-
- 7 - Justiça Militar da União
|
|
216
|
-
- 8 - Justiça dos Estados e do Distrito Federal e Territórios
|
|
217
|
-
- 9 - Justiça Militar Estadual
|
|
218
|
-
|
|
219
|
-
5. Tribunal do segmento do poder judiciário com 2 caracteres
|
|
220
|
-
6. Código da unidade de origem do processo com 4 caracteres
|
|
221
|
-
|
|
222
|
-
```js
|
|
223
|
-
// Importação direta
|
|
224
|
-
import { isJudicialProcess } from 'validation-br';
|
|
225
|
-
isJudicialProcess('20802520125150049'); //-> true
|
|
226
|
-
isJudicialProcess('0011006-07.2016.8.20.0100'); //-> true
|
|
227
|
-
isJudicialProcess('00110060720168200101'); //-> false
|
|
228
|
-
|
|
229
|
-
// Importação do submódulo
|
|
230
|
-
import {
|
|
231
|
-
validate,
|
|
232
|
-
mask,
|
|
233
|
-
dv,
|
|
234
|
-
normalize,
|
|
235
|
-
fake,
|
|
236
|
-
validateOrFail,
|
|
237
|
-
} from 'validation-br/dist/judicialProcess';
|
|
238
|
-
|
|
239
|
-
validate('00110060720168200100'); //-> true
|
|
240
|
-
validateOrFail('00110060720168200100'); //-> true
|
|
241
|
-
|
|
242
|
-
// Número fake com e sem máscara
|
|
243
|
-
fake(); // -> 00110060720168200100
|
|
244
|
-
fake(true); // -> 0011006-07.2016.8.20.0100
|
|
245
|
-
|
|
246
|
-
// Aplica uma máscara
|
|
247
|
-
mask('00110060720168200100'); // -> 0011006-07.2016.8.20.0100
|
|
248
|
-
|
|
249
|
-
// Normalize o número do documento
|
|
250
|
-
normalize('0011006-07.2016.8.20.0100'); // -> 00110060720168200100
|
|
251
|
-
|
|
252
|
-
// Calcula o DV.
|
|
253
|
-
// 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.
|
|
254
|
-
dv('001100620168200100'); // -> '07'
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
## NUP-17
|
|
258
|
-
|
|
259
|
-
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.
|
|
260
|
-
|
|
261
|
-
1. Os primeiros 5 dígitos correspondem código do órgão
|
|
262
|
-
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
|
|
263
|
-
3. Os dígitos 12 a 15 representam o ano de registro do protocolo
|
|
264
|
-
4. Os caracteres 16 a 17 são o dígito verificador
|
|
265
|
-
|
|
266
|
-
```js
|
|
267
|
-
// Importação direta
|
|
268
|
-
import { isNUP17 } from 'validation-br';
|
|
269
|
-
isNUP17('23037001462202165'); //-> true
|
|
270
|
-
isNUP17('23037.001462/2021-65'); //-> true
|
|
271
|
-
isNUP17('23037.001462/2021-66'); //-> false
|
|
272
|
-
|
|
273
|
-
// ou
|
|
274
|
-
// Importação do submódulo
|
|
275
|
-
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/nup17';
|
|
276
|
-
|
|
277
|
-
// Valida
|
|
278
|
-
validate('23037.001462/2021-65'); //-> true
|
|
279
|
-
validateOrFail('23037.001462/2021-65'); //-> true
|
|
280
|
-
|
|
281
|
-
// Número fake com e sem máscara
|
|
282
|
-
fake(); // -> 23037001462202165
|
|
283
|
-
fake(true); // -> 23037.001462/2021-65
|
|
284
|
-
|
|
285
|
-
// Aplica uma máscara
|
|
286
|
-
mask('23037001462202165'); // -> 23037.001462/2021-65
|
|
287
|
-
|
|
288
|
-
// Normalize o número do documento
|
|
289
|
-
normalize('23037.001462/2021-65'); // -> 23037001462202165
|
|
290
|
-
|
|
291
|
-
// Calcula o DV
|
|
292
|
-
dv('230370014622021'); // -> '65'
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
## PIS
|
|
296
|
-
|
|
297
|
-
Valida códigos PIS, PASEP, NIS e NIT, que usam o mesmo algoritmo. Aceita números com e sem pontos e traços.
|
|
298
|
-
|
|
299
|
-
```js
|
|
300
|
-
// Importação direta
|
|
301
|
-
import { isPIS } from 'validation-br';
|
|
302
|
-
isPIS('71282677380'); //-> true
|
|
303
|
-
isPIS('237.95126.95-5'); //-> true
|
|
304
|
-
isPIS('500.12973.80-1'); //-> false
|
|
305
|
-
|
|
306
|
-
// ou
|
|
307
|
-
// Importação do submódulo
|
|
308
|
-
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/pisPasep';
|
|
309
|
-
|
|
310
|
-
// Valida
|
|
311
|
-
validate('71282677380'); //-> true
|
|
312
|
-
validateOrFail('71282677380'); //-> true
|
|
313
|
-
|
|
314
|
-
// Número fake com e sem máscara
|
|
315
|
-
fake(); // -> 71282677380
|
|
316
|
-
fake(true); // -> 712.82677.38-0
|
|
317
|
-
|
|
318
|
-
// Normalize o número do documento
|
|
319
|
-
normalize('712.82677.38-0'); // -> 71282677380
|
|
320
|
-
|
|
321
|
-
// Aplica uma máscara
|
|
322
|
-
mask('71282677380'); // -> 712.82677.38-0
|
|
323
|
-
|
|
324
|
-
// Calcula o DV
|
|
325
|
-
dv('7128267738'); // -> '0'
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
## Código de Rastreamento Postal dos Correios
|
|
329
|
-
|
|
330
|
-
Valida um código de rastreamento de objetos postais no formato XX00000000DYY, onde:
|
|
331
|
-
|
|
332
|
-
- XX: O código do objeto postal com 2 dígitos;
|
|
333
|
-
- 00000000: Número sequencial do objeto com 8 dígitos;
|
|
334
|
-
- D: Dígito Verificador
|
|
335
|
-
- YY: País de origem do objeto com 2 dígitos.
|
|
336
|
-
|
|
337
|
-
```js
|
|
338
|
-
// Importação direta
|
|
339
|
-
import { isPostalCode } from 'validation-br';
|
|
340
|
-
isPostalCode('PN718252423BR'); //-> true
|
|
341
|
-
isPostalCode('RY728187035CN'); //-> true
|
|
342
|
-
isPostalCode('JT194624698BR'); //-> false
|
|
343
|
-
|
|
344
|
-
// ou
|
|
345
|
-
// Importação do submódulo
|
|
346
|
-
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/postalCode';
|
|
347
|
-
|
|
348
|
-
// Valida
|
|
349
|
-
validate('PN718252423BR'); //-> true
|
|
350
|
-
validateOrFail('PN718252423BR'); //-> true
|
|
351
|
-
|
|
352
|
-
// Número fake com e sem máscara.
|
|
353
|
-
fake(); // -> PN718252423BR
|
|
354
|
-
fake(true); // -> PN718252423BR
|
|
355
|
-
|
|
356
|
-
// Aplica uma máscara
|
|
357
|
-
// No caso de PostalCode, a máscara apenas coloca as letras em maiúsculas, servindo como normalização
|
|
358
|
-
mask('pn718252423br'); // -> PN718252423BR
|
|
359
|
-
|
|
360
|
-
// Normalize o número do documento
|
|
361
|
-
normalize('pn718252423br'); // -> PN718252423BR
|
|
362
|
-
|
|
363
|
-
// Calcula o DV
|
|
364
|
-
dv('PN718252423BR'); // -> '3'
|
|
365
|
-
```
|
|
366
|
-
|
|
367
|
-
## RENAVAM
|
|
368
|
-
|
|
369
|
-
Valida o número de um RENAVAM de 11 dígitos
|
|
370
|
-
|
|
371
|
-
```js
|
|
372
|
-
// Importação direta
|
|
373
|
-
import { isRenavam } from 'validation-br';
|
|
374
|
-
isRenavam('14283256656'); //-> true
|
|
375
|
-
isRenavam('95059845976'); //-> true
|
|
376
|
-
isRenavam('67747331626'); //-> false
|
|
377
|
-
|
|
378
|
-
// ou
|
|
379
|
-
// Importação do submódulo
|
|
380
|
-
import { validate, mask, dv, normalize, fake, validateOrFail } from 'validation-br/dist/renavam';
|
|
381
|
-
|
|
382
|
-
// Valida
|
|
383
|
-
validate('95059845976'); //-> true
|
|
384
|
-
validateOrFail('95059845976'); //-> true
|
|
385
|
-
|
|
386
|
-
// Número fake com e sem máscara
|
|
387
|
-
fake(); // -> 95059845976
|
|
388
|
-
fake(true); // -> 9505984597-6
|
|
389
|
-
|
|
390
|
-
// Normaliza o número do documento
|
|
391
|
-
normalize('9505984597-6'); // -> 95059845976
|
|
392
|
-
|
|
393
|
-
// Aplica uma máscara
|
|
394
|
-
mask('95059845976'); // -> 9505984597-6
|
|
395
|
-
|
|
396
|
-
// Calcula o DV
|
|
397
|
-
dv('950598459'); // -> '76'
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
## Título de Eleitor
|
|
401
|
-
|
|
402
|
-
Valida um título eleitoral
|
|
403
|
-
|
|
404
|
-
```js
|
|
405
|
-
// Importação direta
|
|
406
|
-
import { isTituloEleitor } from 'validation-br';
|
|
407
|
-
isTituloEleitor('743650641660'); //-> true
|
|
408
|
-
isTituloEleitor('525028881694'); //-> true
|
|
409
|
-
isTituloEleitor('153016161686'); //-> false
|
|
410
|
-
|
|
411
|
-
// Importação do submódulo
|
|
412
|
-
import {
|
|
413
|
-
validate,
|
|
414
|
-
mask,
|
|
415
|
-
dv,
|
|
416
|
-
normalize,
|
|
417
|
-
fake,
|
|
418
|
-
validateOrFail,
|
|
419
|
-
} from 'validation-br/dist/tituloEleitor';
|
|
420
|
-
|
|
421
|
-
// Valida
|
|
422
|
-
validate('01234567890'); //-> true
|
|
423
|
-
validateOrFail('01234567890'); //-> true
|
|
424
|
-
|
|
425
|
-
// Número fake com e sem máscara
|
|
426
|
-
fake(); // -> 153016161686
|
|
427
|
-
fake(true); // -> 1530.1616.1686
|
|
428
|
-
|
|
429
|
-
// Normalize o número do documento
|
|
430
|
-
normalize('1530.1616.1686'); // -> 153016161686
|
|
431
|
-
|
|
432
|
-
// Aplica uma máscara
|
|
433
|
-
mask('525028881694'); // -> 5250.2888.1694
|
|
434
|
-
|
|
435
|
-
// Calcula o DV
|
|
436
|
-
dv('5250288816'); // -> '94'
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
# Testes
|
|
440
|
-
|
|
441
|
-
Todos os testes passando com 100% de cobertura
|
|
442
|
-
|
|
443
|
-

|
|
444
|
-
|
|
445
|
-
# Github Actions
|
|
446
|
-
|
|
447
|
-
Github actions executados nas versões 18, 20 e 22 do Node.
|
|
448
|
-
|
|
449
|
-

|
|
450
|
-
|
|
451
|
-
# Changelog
|
|
452
|
-
|
|
453
|
-
- **25/12/2025**:
|
|
454
|
-
- 1.6.0
|
|
455
|
-
- Incluída a função normalize() que retorna o valor normalizado, somente números (ou letras maiúsculas quando couber).
|
|
456
|
-
- **16/12/2023**:
|
|
457
|
-
- 1.5.0
|
|
458
|
-
- CNPJ alfanumérico
|
|
459
|
-
- Removidos github actions dos node 12, 14 e 16 e acrescentado o 22
|
|
460
|
-
- **16/12/2023**:
|
|
461
|
-
- 1.4.5
|
|
462
|
-
- Corrige o caminho da definição dos types. (Thanks @ishigami)
|
|
463
|
-
- **30/12/2022**:
|
|
464
|
-
- 1.4.4
|
|
465
|
-
- Correção de bug quando o documento válido tinha caracteres adicionais
|
|
466
|
-
- Refatoração de `clearValue()` para comportar configurações opcionais
|
|
467
|
-
- **01/10/2022**:
|
|
468
|
-
- 1.4.1
|
|
469
|
-
- Correção na importação principal dos módulos
|
|
470
|
-
- Refatoração do isJudicialProcess para permitir 100% de cobertura dos testes
|
|
471
|
-
- Inclusão de mais testes unitários para atingir 100% de cobertura
|
|
472
|
-
- **10/01/2022**:
|
|
473
|
-
- 1.1.0 - Adicionado NUP17 - Número Unificado de Protocolo de 17 dígitos do Governo Federal
|
|
474
|
-
- **09/01/2022**:
|
|
475
|
-
- 1.0.0 - Biblioteca convertida para Typescript e testes convertidos para Jest
|
|
476
|
-
- **08/01/2022**:
|
|
477
|
-
- 0.21.1 - Adicionadas as funções isRenavam e isJudicialProcess
|
|
478
|
-
- **16/09/2021**:
|
|
479
|
-
- 0.5.0 - Adicionadas as funções isCPF, isCNPJ e isTituloEleitor
|
|
480
|
-
- 0.7.0 - Adicionadas as funções isPostalCode e isCNH
|
|
481
|
-
- 0.8.0 - Adicionada a função isPIS
|
|
482
|
-
|
|
483
|
-
# Referências
|
|
484
|
-
|
|
485
|
-
- [Cálculo do DV do CPF](http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-cpf/)
|
|
486
|
-
- [Cálculo do DV do CNPJ](http://www.macoratti.net/alg_cnpj.htm)
|
|
487
|
-
- [Cálculo do DV do Título Eleitoral](http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/)
|
|
488
|
-
- [Cálculo do PIS](http://www.macoratti.net/alg_pis.htm)
|
|
489
|
-
- [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)
|
|
490
|
-
- [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)
|
|
491
|
-
- [Cálculos de DV](http://ghiorzi.org/DVnew.htm)
|
|
492
|
-
- [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/eslint.config.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
// root: true,
|
|
3
|
-
// extends: ['airbnb-base', 'prettier'],
|
|
4
|
-
// parserOptions: {
|
|
5
|
-
// ecmaVersion: 2018,
|
|
6
|
-
// sourceType: 'module',
|
|
7
|
-
// },
|
|
8
|
-
// env: {
|
|
9
|
-
// node: true,
|
|
10
|
-
// jest: true,
|
|
11
|
-
// },
|
|
12
|
-
settings: {
|
|
13
|
-
'import/resolver': {
|
|
14
|
-
node: {
|
|
15
|
-
extensions: ['.js', '.ts'],
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
rules: {
|
|
20
|
-
// '@typescript-eslint/no-unused-vars': ['error', { varsIgnorePattern: '^_', args: 'none' }],
|
|
21
|
-
'array-callback-return': 'off',
|
|
22
|
-
'arrow-body-style': 'off',
|
|
23
|
-
curly: ['error', 'multi-line', 'consistent'],
|
|
24
|
-
'class-methods-use-this': 'off',
|
|
25
|
-
'consistent-return': 'warn',
|
|
26
|
-
'default-case': 'off',
|
|
27
|
-
// 'import/extensions': ['error', 'never'],
|
|
28
|
-
// 'import/first': 'warn',
|
|
29
|
-
// 'import/no-named-as-default': 'warn',
|
|
30
|
-
// 'import/no-named-as-default-member': 'warn',
|
|
31
|
-
// 'import/no-unresolved': 'warn',
|
|
32
|
-
// 'import/prefer-default-export': 'off',
|
|
33
|
-
'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }],
|
|
34
|
-
'max-classes-per-file': 'off',
|
|
35
|
-
'max-len': ['error', 120, 2, { ignoreUrls: true, ignoreTemplateLiterals: true }],
|
|
36
|
-
'newline-per-chained-call': 'warn',
|
|
37
|
-
'no-await-in-loop': 'off',
|
|
38
|
-
'no-confusing-arrow': 'off',
|
|
39
|
-
'no-console': 'off',
|
|
40
|
-
'no-continue': 'off',
|
|
41
|
-
'no-else-return': ['error', { allowElseIf: true }],
|
|
42
|
-
'no-loop-func': 'off',
|
|
43
|
-
'no-mixed-operators': 'off',
|
|
44
|
-
'no-nested-ternary': 'off',
|
|
45
|
-
// 'no-only-tests/no-only-tests': 'error',
|
|
46
|
-
'no-param-reassign': 'off',
|
|
47
|
-
'no-plusplus': 'off',
|
|
48
|
-
'no-prototype-builtins': 'off',
|
|
49
|
-
'no-restricted-syntax': 'off',
|
|
50
|
-
'no-return-assign': 'warn',
|
|
51
|
-
'no-sequences': 'warn',
|
|
52
|
-
'no-shadow': 'off',
|
|
53
|
-
'no-underscore-dangle': 'off',
|
|
54
|
-
'no-unexpected-multiline': 'off',
|
|
55
|
-
'no-unused-vars': 'off',
|
|
56
|
-
'no-use-before-define': ['warn', { functions: false, classes: false }],
|
|
57
|
-
'prefer-destructuring': 'off',
|
|
58
|
-
semi: ['error', 'always'],
|
|
59
|
-
'sort-imports': 'off',
|
|
60
|
-
'no-unused-expressions': 'off',
|
|
61
|
-
quotes: ['error', 'single', { avoidEscape: true }],
|
|
62
|
-
// '@typescript-eslint/ban-types': 'error',
|
|
63
|
-
},
|
|
64
|
-
// overrides: [
|
|
65
|
-
// {
|
|
66
|
-
// files: ['*.ts'],
|
|
67
|
-
// rules: {
|
|
68
|
-
// 'no-dupe-class-members': 'off',
|
|
69
|
-
// 'no-undef': 'off',
|
|
70
|
-
// '@typescript-eslint/explicit-function-return-type': 'error',
|
|
71
|
-
// },
|
|
72
|
-
// },
|
|
73
|
-
// {
|
|
74
|
-
// files: ['*.d.ts'],
|
|
75
|
-
// rules: {
|
|
76
|
-
// 'no-useless-constructor': 'off', // crashes on constructor declaration in .d.ts files
|
|
77
|
-
// },
|
|
78
|
-
// },
|
|
79
|
-
// ],
|
|
80
|
-
// plugins: ['no-only-tests', '@typescript-eslint'],
|
|
81
|
-
ignores: ['dist/*', '/node_modules/**'],
|
|
82
|
-
};
|
package/jest.config.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
moduleFileExtensions: ['ts', 'js'],
|
|
3
|
-
transform: {
|
|
4
|
-
'^.+\\.(ts|tsx)$': ['ts-jest', { /* ts-jest config goes here in Jest */ }],
|
|
5
|
-
},
|
|
6
|
-
testRegex: '(/test/.*\\.(test|spec))\\.(jsx?|tsx?)$',
|
|
7
|
-
testEnvironment: 'node',
|
|
8
|
-
coverageDirectory: './coverage/',
|
|
9
|
-
collectCoverage: true,
|
|
10
|
-
coverageProvider: 'v8',
|
|
11
|
-
}
|