validation-br 0.21.3 → 1.2.0-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintcache +1 -0
- package/.eslintignore +2 -0
- package/.eslintrc.js +76 -11
- package/.github/workflows/test.yml +39 -0
- package/.prettierignore +1 -0
- package/.prettierrc.js +7 -0
- package/dist/cnh.d.ts +91 -0
- package/dist/cnh.js +128 -0
- package/dist/cnh.js.map +1 -0
- package/dist/cnh.test.d.ts +1 -0
- package/dist/cnpj.d.ts +82 -0
- package/dist/{documents/cnpj.js → cnpj.js} +116 -138
- package/dist/cnpj.js.map +1 -0
- package/dist/cnpj.test.d.ts +1 -0
- package/dist/cpf.d.ts +99 -0
- package/dist/{documents/cpf.js → cpf.js} +135 -160
- package/dist/cpf.js.map +1 -0
- package/dist/cpf.test.d.ts +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.d.ts +1 -0
- package/dist/judicialProcess.d.ts +114 -0
- package/dist/judicialProcess.js +160 -0
- package/dist/judicialProcess.js.map +1 -0
- package/dist/judicialProcess.test.d.ts +1 -0
- package/dist/nup17.d.ts +102 -0
- package/dist/nup17.js +145 -0
- package/dist/nup17.js.map +1 -0
- package/dist/nup17.test.d.ts +1 -0
- package/dist/pisPasep.d.ts +81 -0
- package/dist/{documents/pis-pasep.js → pisPasep.js} +115 -140
- package/dist/pisPasep.js.map +1 -0
- package/dist/pisPasep.test.d.ts +1 -0
- package/dist/postalCode.d.ts +83 -0
- package/dist/postalCode.js +152 -0
- package/dist/postalCode.js.map +1 -0
- package/dist/postalCode.test.d.ts +1 -0
- package/dist/renavam.d.ts +75 -0
- package/dist/renavam.js +110 -0
- package/dist/renavam.js.map +1 -0
- package/dist/renavam.test.d.ts +1 -0
- package/dist/tituloEleitor.d.ts +93 -0
- package/dist/{documents/titulo-eleitor.js → tituloEleitor.js} +132 -155
- package/dist/tituloEleitor.js.map +1 -0
- package/dist/tituloEleitor.test.d.ts +1 -0
- package/dist/utils-applyMask.test.d.ts +1 -0
- package/dist/utils-clearValue.test.d.ts +1 -0
- package/dist/utils-fakeNumber.test.d.ts +1 -0
- package/dist/utils-insertAtPosition.test.d.ts +1 -0
- package/dist/utils-invalidListGenerator.test.d.ts +1 -0
- package/dist/utils-removeFromPosition.test.d.ts +1 -0
- package/dist/utils-sumElementsByMultipliers.test.d.ts +1 -0
- package/dist/utils-sumToDV.test.d.ts +1 -0
- package/dist/utils.d.ts +111 -0
- package/dist/{lib/utils.js → utils.js} +166 -175
- package/dist/utils.js.map +1 -0
- package/dist/vuelidate.d.ts +36 -0
- package/dist/vuelidate.js +31 -0
- package/dist/vuelidate.js.map +1 -0
- package/jest.config.js +14 -0
- package/package.json +44 -27
- package/readme.md +170 -111
- package/tsconfig.json +24 -0
- package/.babelrc +0 -15
- package/.prettierrc +0 -9
- package/LICENSE +0 -21
- package/dist/documents/cnh.js +0 -154
- package/dist/documents/cnh.js.map +0 -1
- package/dist/documents/cnpj.js.map +0 -1
- package/dist/documents/cpf.js.map +0 -1
- package/dist/documents/index.js +0 -29
- package/dist/documents/index.js.map +0 -1
- package/dist/documents/judicial-process.js +0 -177
- package/dist/documents/judicial-process.js.map +0 -1
- package/dist/documents/pis-pasep.js.map +0 -1
- package/dist/documents/postal-code.js +0 -151
- package/dist/documents/postal-code.js.map +0 -1
- package/dist/documents/renavam.js +0 -97
- package/dist/documents/renavam.js.map +0 -1
- package/dist/documents/titulo-eleitor.js.map +0 -1
- package/dist/lib/utils.js.map +0 -1
- package/docs.md +0 -0
- package/index.js +0 -3
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* isPostalCode()
|
|
3
|
+
* Calcula se um código de rastreamento postal no formato JT194690698BR é válido.
|
|
4
|
+
*
|
|
5
|
+
* @doc
|
|
6
|
+
* - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.
|
|
7
|
+
*
|
|
8
|
+
* - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.
|
|
9
|
+
*
|
|
10
|
+
* - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.
|
|
11
|
+
*
|
|
12
|
+
* - O caractere 11 é o dígito verificador.
|
|
13
|
+
*
|
|
14
|
+
* - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.
|
|
15
|
+
*
|
|
16
|
+
* 1) Partes do número
|
|
17
|
+
* ______ ___________________________ ______ _______
|
|
18
|
+
* | Tipo | Número | DV | País |
|
|
19
|
+
* | J T 1 9 4 6 9 0 6 9 8 B R |
|
|
20
|
+
* |______|___________________________|______|_______|
|
|
21
|
+
*
|
|
22
|
+
* 2) Cálculo do DV.
|
|
23
|
+
*
|
|
24
|
+
* - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7
|
|
25
|
+
*
|
|
26
|
+
* 1 9 4 6 9 0 6 9
|
|
27
|
+
* x x x x x x x x
|
|
28
|
+
* 8 6 4 2 3 5 9 7
|
|
29
|
+
* = 8 +54 +16 +12 +18 +0 +54 +63 = 234
|
|
30
|
+
*
|
|
31
|
+
* - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
|
|
32
|
+
* 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
|
|
33
|
+
* Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
|
|
34
|
+
* Caso retorne 1, o resto será 0
|
|
35
|
+
*
|
|
36
|
+
*
|
|
37
|
+
*
|
|
38
|
+
*
|
|
39
|
+
* Fonte:
|
|
40
|
+
*
|
|
41
|
+
* @param {String} value Objeto postal no formato JT194690698BR
|
|
42
|
+
* @returns {Boolean}
|
|
43
|
+
*/
|
|
44
|
+
/**
|
|
45
|
+
* dv()
|
|
46
|
+
* Calcula o dígito verificador
|
|
47
|
+
*
|
|
48
|
+
* @param {Number|String} value
|
|
49
|
+
* @returns {String}
|
|
50
|
+
*/
|
|
51
|
+
export declare const dv: (value: string | number) => string;
|
|
52
|
+
/**
|
|
53
|
+
* Aplica uma máscara ao número informado
|
|
54
|
+
*
|
|
55
|
+
* @param {String} value Número de Processo
|
|
56
|
+
* @returns {String} Valor com a máscara
|
|
57
|
+
*/
|
|
58
|
+
export declare const mask: (value: string | number) => string;
|
|
59
|
+
/**
|
|
60
|
+
* fake()
|
|
61
|
+
* Gera um número válido
|
|
62
|
+
*
|
|
63
|
+
* @returns {String}
|
|
64
|
+
*/
|
|
65
|
+
export declare const fake: (withMask?: boolean) => string;
|
|
66
|
+
/**
|
|
67
|
+
* validateOrFail()
|
|
68
|
+
* Valida se um número é válido e
|
|
69
|
+
* retorna uma exceção se não estiver
|
|
70
|
+
*
|
|
71
|
+
* @param {String} value Número a ser validado
|
|
72
|
+
* @returns {Boolean}
|
|
73
|
+
*/
|
|
74
|
+
export declare const validateOrFail: (value: string) => boolean;
|
|
75
|
+
/**
|
|
76
|
+
* validate()
|
|
77
|
+
* Valida se um número é válido
|
|
78
|
+
*
|
|
79
|
+
* @param {String} value Número a ser validado
|
|
80
|
+
* @returns {Boolean}
|
|
81
|
+
*/
|
|
82
|
+
export declare const validate: (value: string) => boolean;
|
|
83
|
+
export default validate;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* isPostalCode()
|
|
4
|
+
* Calcula se um código de rastreamento postal no formato JT194690698BR é válido.
|
|
5
|
+
*
|
|
6
|
+
* @doc
|
|
7
|
+
* - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.
|
|
8
|
+
*
|
|
9
|
+
* - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.
|
|
10
|
+
*
|
|
11
|
+
* - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.
|
|
12
|
+
*
|
|
13
|
+
* - O caractere 11 é o dígito verificador.
|
|
14
|
+
*
|
|
15
|
+
* - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.
|
|
16
|
+
*
|
|
17
|
+
* 1) Partes do número
|
|
18
|
+
* ______ ___________________________ ______ _______
|
|
19
|
+
* | Tipo | Número | DV | País |
|
|
20
|
+
* | J T 1 9 4 6 9 0 6 9 8 B R |
|
|
21
|
+
* |______|___________________________|______|_______|
|
|
22
|
+
*
|
|
23
|
+
* 2) Cálculo do DV.
|
|
24
|
+
*
|
|
25
|
+
* - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7
|
|
26
|
+
*
|
|
27
|
+
* 1 9 4 6 9 0 6 9
|
|
28
|
+
* x x x x x x x x
|
|
29
|
+
* 8 6 4 2 3 5 9 7
|
|
30
|
+
* = 8 +54 +16 +12 +18 +0 +54 +63 = 234
|
|
31
|
+
*
|
|
32
|
+
* - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
|
|
33
|
+
* 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
|
|
34
|
+
* Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
|
|
35
|
+
* Caso retorne 1, o resto será 0
|
|
36
|
+
*
|
|
37
|
+
*
|
|
38
|
+
*
|
|
39
|
+
*
|
|
40
|
+
* Fonte:
|
|
41
|
+
*
|
|
42
|
+
* @param {String} value Objeto postal no formato JT194690698BR
|
|
43
|
+
* @returns {Boolean}
|
|
44
|
+
*/
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
|
|
47
|
+
const utils_1 = require("./utils");
|
|
48
|
+
/**
|
|
49
|
+
* dv()
|
|
50
|
+
* Calcula o dígito verificador
|
|
51
|
+
*
|
|
52
|
+
* @param {Number|String} value
|
|
53
|
+
* @returns {String}
|
|
54
|
+
*/
|
|
55
|
+
exports.dv = (value) => {
|
|
56
|
+
if (!value)
|
|
57
|
+
throw new Error('PIS não informado');
|
|
58
|
+
const postalCode = utils_1.clearValue(value, 8);
|
|
59
|
+
const sum = utils_1.sumElementsByMultipliers(postalCode, [8, 6, 4, 2, 3, 5, 9, 7]);
|
|
60
|
+
const rest = sum % 11;
|
|
61
|
+
// const specificities = { 0: { dv: 5 }, 1: { dv: 0 } }
|
|
62
|
+
const specificities = [
|
|
63
|
+
{ rest: 0, dv: 5 },
|
|
64
|
+
{ rest: 1, dv: 0 },
|
|
65
|
+
];
|
|
66
|
+
const specifity = specificities.find((item) => item.rest === rest);
|
|
67
|
+
const DV = specifity ? specifity.dv : 11 - rest;
|
|
68
|
+
return String(DV);
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Aplica uma máscara ao número informado
|
|
72
|
+
*
|
|
73
|
+
* @param {String} value Número de Processo
|
|
74
|
+
* @returns {String} Valor com a máscara
|
|
75
|
+
*/
|
|
76
|
+
exports.mask = (value) => String(value).toLocaleUpperCase();
|
|
77
|
+
/**
|
|
78
|
+
* fake()
|
|
79
|
+
* Gera um número válido
|
|
80
|
+
*
|
|
81
|
+
* @returns {String}
|
|
82
|
+
*/
|
|
83
|
+
exports.fake = (withMask = false) => {
|
|
84
|
+
const num = utils_1.fakeNumber(8, true);
|
|
85
|
+
const randLetter = () => [
|
|
86
|
+
'A',
|
|
87
|
+
'B',
|
|
88
|
+
'C',
|
|
89
|
+
'D',
|
|
90
|
+
'E',
|
|
91
|
+
'F',
|
|
92
|
+
'G',
|
|
93
|
+
'H',
|
|
94
|
+
'I',
|
|
95
|
+
'J',
|
|
96
|
+
'K',
|
|
97
|
+
'L',
|
|
98
|
+
'M',
|
|
99
|
+
'N',
|
|
100
|
+
'O',
|
|
101
|
+
'P',
|
|
102
|
+
'Q',
|
|
103
|
+
'R',
|
|
104
|
+
'S',
|
|
105
|
+
'T',
|
|
106
|
+
'U',
|
|
107
|
+
'V',
|
|
108
|
+
'W',
|
|
109
|
+
'X',
|
|
110
|
+
'Y',
|
|
111
|
+
'Z',
|
|
112
|
+
][+(Math.random() * 25).toFixed(0)];
|
|
113
|
+
const postalCode = `${randLetter()}${randLetter()}${num}${exports.dv(num)}BR`;
|
|
114
|
+
if (withMask)
|
|
115
|
+
return exports.mask(postalCode);
|
|
116
|
+
return postalCode;
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* validateOrFail()
|
|
120
|
+
* Valida se um número é válido e
|
|
121
|
+
* retorna uma exceção se não estiver
|
|
122
|
+
*
|
|
123
|
+
* @param {String} value Número a ser validado
|
|
124
|
+
* @returns {Boolean}
|
|
125
|
+
*/
|
|
126
|
+
exports.validateOrFail = (value) => {
|
|
127
|
+
const postalCode = utils_1.clearValue(value, 9);
|
|
128
|
+
if (!/^[a-z]{2}([\d]{9})[a-z]{2}$/gi.test(String(value))) {
|
|
129
|
+
throw new Error('O número não está no formato "XX000000000XX"');
|
|
130
|
+
}
|
|
131
|
+
if (exports.dv(value) !== postalCode.substring(8, 9)) {
|
|
132
|
+
throw new Error('Dígito verificador inválido');
|
|
133
|
+
}
|
|
134
|
+
return true;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* validate()
|
|
138
|
+
* Valida se um número é válido
|
|
139
|
+
*
|
|
140
|
+
* @param {String} value Número a ser validado
|
|
141
|
+
* @returns {Boolean}
|
|
142
|
+
*/
|
|
143
|
+
exports.validate = (value) => {
|
|
144
|
+
try {
|
|
145
|
+
return exports.validateOrFail(value);
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
exports.default = exports.validate;
|
|
152
|
+
//# sourceMappingURL=postalCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postalCode.js","sourceRoot":"","sources":["../src/postalCode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RENAVAM
|
|
3
|
+
* Funções auxiliares para cálculo de máscaras, validação, dígito verificador e criaçãode
|
|
4
|
+
* números fake.
|
|
5
|
+
*
|
|
6
|
+
* @doc
|
|
7
|
+
* - O número de RENAVAM deve possuir 11 caracteres
|
|
8
|
+
*
|
|
9
|
+
* - Os caracteres de 1 a 10 são a numeração documento
|
|
10
|
+
*
|
|
11
|
+
* - O caractere 11 é o dígito verificador.
|
|
12
|
+
*
|
|
13
|
+
* 1) Partes do número
|
|
14
|
+
* _______________________________________________
|
|
15
|
+
* | Número | D V |
|
|
16
|
+
* | 2 6 8 2 7 6 4 9 9 6 - 0 |
|
|
17
|
+
* |_________________________________________|_____|
|
|
18
|
+
*
|
|
19
|
+
* 2) Cálculo do DV.
|
|
20
|
+
*
|
|
21
|
+
* - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
|
|
22
|
+
*
|
|
23
|
+
* 2 6 8 2 7 6 4 9 9 6
|
|
24
|
+
* x x x x x x x x x x
|
|
25
|
+
* 3 2 9 8 7 6 5 4 3 2
|
|
26
|
+
* = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 234
|
|
27
|
+
*
|
|
28
|
+
* - O somatório encontrado é multiplicado por 10 e ao resultado
|
|
29
|
+
* é aplicado o cálculo do MOD 11.
|
|
30
|
+
*
|
|
31
|
+
* ( 234 * 10 ) / 11 tem resto 8. DV = 8. Caso o resto seja maior ou igual a
|
|
32
|
+
* 10, DV será 0.
|
|
33
|
+
*
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* dv()
|
|
38
|
+
* Calcula o dígito verificador
|
|
39
|
+
*
|
|
40
|
+
* @param {Number|String} value
|
|
41
|
+
* @returns {String}
|
|
42
|
+
*/
|
|
43
|
+
export declare const dv: (value: string | number) => string;
|
|
44
|
+
/**
|
|
45
|
+
* Aplica uma máscara ao número informado
|
|
46
|
+
*
|
|
47
|
+
* @param {String} value Número de Processo
|
|
48
|
+
* @returns {String} Valor com a máscara
|
|
49
|
+
*/
|
|
50
|
+
export declare const mask: (value: string | number) => string;
|
|
51
|
+
/**
|
|
52
|
+
* fake()
|
|
53
|
+
* Gera um número válido
|
|
54
|
+
*
|
|
55
|
+
* @returns {String}
|
|
56
|
+
*/
|
|
57
|
+
export declare const fake: (withMask?: boolean) => string;
|
|
58
|
+
/**
|
|
59
|
+
* validateOrFail()
|
|
60
|
+
* Valida se um número é válido e
|
|
61
|
+
* retorna uma exceção se não estiver
|
|
62
|
+
*
|
|
63
|
+
* @param {String|Number} value Número a ser validado
|
|
64
|
+
* @returns {Boolean}
|
|
65
|
+
*/
|
|
66
|
+
export declare const validateOrFail: (value: string | number) => boolean;
|
|
67
|
+
/**
|
|
68
|
+
* validate()
|
|
69
|
+
* Valida se um número é válido
|
|
70
|
+
*
|
|
71
|
+
* @param {String|Number} value Número a ser validado
|
|
72
|
+
* @returns {Boolean}
|
|
73
|
+
*/
|
|
74
|
+
export declare const validate: (value: string | number) => boolean;
|
|
75
|
+
export default validate;
|
package/dist/renavam.js
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RENAVAM
|
|
4
|
+
* Funções auxiliares para cálculo de máscaras, validação, dígito verificador e criaçãode
|
|
5
|
+
* números fake.
|
|
6
|
+
*
|
|
7
|
+
* @doc
|
|
8
|
+
* - O número de RENAVAM deve possuir 11 caracteres
|
|
9
|
+
*
|
|
10
|
+
* - Os caracteres de 1 a 10 são a numeração documento
|
|
11
|
+
*
|
|
12
|
+
* - O caractere 11 é o dígito verificador.
|
|
13
|
+
*
|
|
14
|
+
* 1) Partes do número
|
|
15
|
+
* _______________________________________________
|
|
16
|
+
* | Número | D V |
|
|
17
|
+
* | 2 6 8 2 7 6 4 9 9 6 - 0 |
|
|
18
|
+
* |_________________________________________|_____|
|
|
19
|
+
*
|
|
20
|
+
* 2) Cálculo do DV.
|
|
21
|
+
*
|
|
22
|
+
* - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
|
|
23
|
+
*
|
|
24
|
+
* 2 6 8 2 7 6 4 9 9 6
|
|
25
|
+
* x x x x x x x x x x
|
|
26
|
+
* 3 2 9 8 7 6 5 4 3 2
|
|
27
|
+
* = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 234
|
|
28
|
+
*
|
|
29
|
+
* - O somatório encontrado é multiplicado por 10 e ao resultado
|
|
30
|
+
* é aplicado o cálculo do MOD 11.
|
|
31
|
+
*
|
|
32
|
+
* ( 234 * 10 ) / 11 tem resto 8. DV = 8. Caso o resto seja maior ou igual a
|
|
33
|
+
* 10, DV será 0.
|
|
34
|
+
*
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
|
|
39
|
+
const utils_1 = require("./utils");
|
|
40
|
+
/**
|
|
41
|
+
* dv()
|
|
42
|
+
* Calcula o dígito verificador
|
|
43
|
+
*
|
|
44
|
+
* @param {Number|String} value
|
|
45
|
+
* @returns {String}
|
|
46
|
+
*/
|
|
47
|
+
exports.dv = (value) => {
|
|
48
|
+
if (!value)
|
|
49
|
+
throw new Error('Renavam não informado');
|
|
50
|
+
const renavam = utils_1.clearValue(value, 10); // só 10 para remover o DV
|
|
51
|
+
const invalidList = utils_1.invalidListGenerator(10);
|
|
52
|
+
if (invalidList.includes(renavam)) {
|
|
53
|
+
throw new Error('RENAVAM não pode ser uma sequência de números iguais');
|
|
54
|
+
}
|
|
55
|
+
const sum1 = utils_1.sumElementsByMultipliers(renavam, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]) * 10;
|
|
56
|
+
const dv1 = sum1 % 11 >= 10 ? 0 : sum1 % 11;
|
|
57
|
+
return `${dv1}`;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Aplica uma máscara ao número informado
|
|
61
|
+
*
|
|
62
|
+
* @param {String} value Número de Processo
|
|
63
|
+
* @returns {String} Valor com a máscara
|
|
64
|
+
*/
|
|
65
|
+
exports.mask = (value) => utils_1.applyMask(value, '0000000000-0');
|
|
66
|
+
/**
|
|
67
|
+
* fake()
|
|
68
|
+
* Gera um número válido
|
|
69
|
+
*
|
|
70
|
+
* @returns {String}
|
|
71
|
+
*/
|
|
72
|
+
exports.fake = (withMask = false) => {
|
|
73
|
+
const value = utils_1.fakeNumber(10, true);
|
|
74
|
+
const renavam = `${value}${exports.dv(value)}`;
|
|
75
|
+
if (withMask)
|
|
76
|
+
return exports.mask(renavam);
|
|
77
|
+
return renavam;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* validateOrFail()
|
|
81
|
+
* Valida se um número é válido e
|
|
82
|
+
* retorna uma exceção se não estiver
|
|
83
|
+
*
|
|
84
|
+
* @param {String|Number} value Número a ser validado
|
|
85
|
+
* @returns {Boolean}
|
|
86
|
+
*/
|
|
87
|
+
exports.validateOrFail = (value) => {
|
|
88
|
+
const renavam = utils_1.clearValue(value, 11);
|
|
89
|
+
if (exports.dv(renavam) !== renavam.substring(10, 11)) {
|
|
90
|
+
throw new Error('Dígito verificador inválido');
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* validate()
|
|
96
|
+
* Valida se um número é válido
|
|
97
|
+
*
|
|
98
|
+
* @param {String|Number} value Número a ser validado
|
|
99
|
+
* @returns {Boolean}
|
|
100
|
+
*/
|
|
101
|
+
exports.validate = (value) => {
|
|
102
|
+
try {
|
|
103
|
+
return exports.validateOrFail(value);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
exports.default = exports.validate;
|
|
110
|
+
//# sourceMappingURL=renavam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renavam.js","sourceRoot":"","sources":["../src/renavam.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;;;AAEH,mCAMgB;AAEhB;;;;;;GAMG;AACU,QAAA,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAEpD,MAAM,OAAO,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA,CAAC,0BAA0B;IAEhE,MAAM,WAAW,GAAG,4BAAoB,CAAC,EAAE,CAAC,CAAA;IAC5C,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;KACxE;IAED,MAAM,IAAI,GAAG,gCAAwB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACnF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IAC3C,OAAO,GAAG,GAAG,EAAE,CAAA;AACjB,CAAC,CAAA;AAED;;;;;GAKG;AACU,QAAA,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,iBAAS,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;AAExF;;;;;GAKG;AACU,QAAA,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,KAAK,GAAG,kBAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAElC,MAAM,OAAO,GAAG,GAAG,KAAK,GAAG,UAAE,CAAC,KAAK,CAAC,EAAE,CAAA;IAEtC,IAAI,QAAQ;QAAE,OAAO,YAAI,CAAC,OAAO,CAAC,CAAA;IAElC,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED;;;;;;;GAOG;AACU,QAAA,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,OAAO,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAErC,IAAI,UAAE,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QAC7C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;KAC/C;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;;;GAMG;AACU,QAAA,QAAQ,GAAG,CAAC,KAAsB,EAAW,EAAE;IAC1D,IAAI;QACF,OAAO,sBAAc,CAAC,KAAK,CAAC,CAAA;KAC7B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AAED,kBAAe,gBAAQ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* isTitulo()
|
|
3
|
+
* Calcula se um título eleitoral é válido
|
|
4
|
+
*
|
|
5
|
+
* @doc
|
|
6
|
+
* Título de eleitor deve possuir 12 dígitos.
|
|
7
|
+
*
|
|
8
|
+
* - Os caracteres 1 a 8 são números sequenciais.
|
|
9
|
+
*
|
|
10
|
+
* - Os caracteres 9 e 10 representam os estados da federação onde o título
|
|
11
|
+
* foi emitido (01 = SP, 02 = MG, 03 = RJ, 04 = RS, 05 = BA, 06 = PR, 07 = CE, 08 = PE,
|
|
12
|
+
* 09 = SC, 10 = GO, 11 = MA12 = PB, 13 = PA, 14 = ES, 15 = PI, 16 = RN, 17 = AL,
|
|
13
|
+
* 18 = MT, 19 = MS, 20 = DF, 21 = SE, 22 = AM, 23 = RO, 24 = AC, 25 = AP, 26 = RR,
|
|
14
|
+
* 27 = TO, 28 = Exterior(ZZ).
|
|
15
|
+
*
|
|
16
|
+
* - Os caracteres 11 e 12 são dígitos verificadores.
|
|
17
|
+
*
|
|
18
|
+
* 1) Partes do número
|
|
19
|
+
* ------------------------------------------------
|
|
20
|
+
* | Número Sequencial | UF | DV |
|
|
21
|
+
* 1 0 2 3 8 5 0 1 0 6 7 1
|
|
22
|
+
*
|
|
23
|
+
* 2) Cálculo do primeiro DV.
|
|
24
|
+
*
|
|
25
|
+
* - Soma-se o produto das algarismos 1 a 8 pelos números 2, 3, 4, 5, 6, 7, 8 e 9.
|
|
26
|
+
*
|
|
27
|
+
* 1 0 2 3 8 5 0 1
|
|
28
|
+
* x x x x x x x x
|
|
29
|
+
* 2 3 4 5 6 7 8 9
|
|
30
|
+
* = 2 + 0 + 8 +15 +48 +35 + 0 + 9 = 117
|
|
31
|
+
*
|
|
32
|
+
* - O somatório encontrado é dividido por 11. O DV1 é o resto da divisão. Se o
|
|
33
|
+
* resto for 10, o DV1 é 0.
|
|
34
|
+
*
|
|
35
|
+
* 2.1) 117 / 11 tem resto igual a 7.
|
|
36
|
+
*
|
|
37
|
+
* 3) Cálculo do segundo DV
|
|
38
|
+
*
|
|
39
|
+
* - Soma-se o produto dos algarismos 9 a 11 (relativos aos 2 dígitos da UF e o novo
|
|
40
|
+
* DV1 que acabou de ser calculado) e os multiplicam pelos números 7, 8 e 9. Se o
|
|
41
|
+
* resto for 10, DV2 será 0.
|
|
42
|
+
* 0 6 7
|
|
43
|
+
* x x x
|
|
44
|
+
* 7 8 9
|
|
45
|
+
* = 0 +48 +63 = 111
|
|
46
|
+
*
|
|
47
|
+
* 3.1) 111 / 11 tem resto igual a 1.
|
|
48
|
+
*
|
|
49
|
+
* Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/
|
|
50
|
+
*
|
|
51
|
+
* @param {String} value Título eleitoral
|
|
52
|
+
* @returns {Boolean}
|
|
53
|
+
*/
|
|
54
|
+
/**
|
|
55
|
+
* dv()
|
|
56
|
+
* Calcula o dígito verificador
|
|
57
|
+
*
|
|
58
|
+
* @param {Number|String} value
|
|
59
|
+
* @returns {String}
|
|
60
|
+
*/
|
|
61
|
+
export declare const dv: (value: string | number) => string;
|
|
62
|
+
/**
|
|
63
|
+
* Aplica uma máscara ao número informado
|
|
64
|
+
*
|
|
65
|
+
* @param {String} value Número de Processo
|
|
66
|
+
* @returns {String} Valor com a máscara
|
|
67
|
+
*/
|
|
68
|
+
export declare const mask: (value: string | number) => string;
|
|
69
|
+
/**
|
|
70
|
+
* fake()
|
|
71
|
+
* Gera um número válido
|
|
72
|
+
*
|
|
73
|
+
* @returns {String}
|
|
74
|
+
*/
|
|
75
|
+
export declare const fake: (withMask?: boolean) => string;
|
|
76
|
+
/**
|
|
77
|
+
* validateOrFail()
|
|
78
|
+
* Valida se um número é válido e
|
|
79
|
+
* retorna uma exceção se não estiver
|
|
80
|
+
*
|
|
81
|
+
* @param {String|Number} value Número a ser validado
|
|
82
|
+
* @returns {Boolean}
|
|
83
|
+
*/
|
|
84
|
+
export declare const validateOrFail: (value: string | number) => boolean;
|
|
85
|
+
/**
|
|
86
|
+
* validate()
|
|
87
|
+
* Valida se um número é válido
|
|
88
|
+
*
|
|
89
|
+
* @param {String|Number} value Número a ser validado
|
|
90
|
+
* @returns {Boolean}
|
|
91
|
+
*/
|
|
92
|
+
export declare const validate: (value: string | number) => boolean;
|
|
93
|
+
export default validate;
|