validation-br 0.8.2 → 0.21.3
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/LICENSE +21 -0
- package/dist/documents/cnh.js +89 -12
- package/dist/documents/cnh.js.map +1 -1
- package/dist/documents/cnpj.js +78 -14
- package/dist/documents/cnpj.js.map +1 -1
- package/dist/documents/cpf.js +91 -13
- package/dist/documents/cpf.js.map +1 -1
- package/dist/documents/index.js +16 -10
- package/dist/documents/index.js.map +1 -1
- package/dist/documents/judicial-process.js +177 -0
- package/dist/documents/judicial-process.js.map +1 -0
- package/dist/documents/pis-pasep.js +93 -24
- package/dist/documents/pis-pasep.js.map +1 -1
- package/dist/documents/postal-code.js +91 -12
- package/dist/documents/postal-code.js.map +1 -1
- package/dist/documents/renavam.js +97 -0
- package/dist/documents/renavam.js.map +1 -0
- package/dist/documents/titulo-eleitor.js +91 -10
- package/dist/documents/titulo-eleitor.js.map +1 -1
- package/dist/lib/utils.js +123 -7
- package/dist/lib/utils.js.map +1 -1
- package/index.js +2 -2
- package/package.json +48 -8
- package/readme.md +239 -86
- package/src/documents/cnh.js +0 -73
- package/src/documents/cnpj.js +0 -71
- package/src/documents/cpf.js +0 -80
- package/src/documents/index.js +0 -15
- package/src/documents/pis-pasep.js +0 -69
- package/src/documents/postal-code.js +0 -64
- package/src/documents/titulo-eleitor.js +0 -73
- package/src/lib/utils.js +0 -41
- package/tests/index.js +0 -13
- package/tests/invalid-list-generator.test.js +0 -25
- package/tests/is-cnh.test.js +0 -42
- package/tests/is-cnpj.test.js +0 -46
- package/tests/is-cpf.test.js +0 -41
- package/tests/is-pis.test.js +0 -41
- package/tests/is-postal-code.test.js +0 -48
- package/tests/is-renavam.test.js +0 -34
- package/tests/is-titulo.test.js +0 -42
- package/tests/sum-elements-by-multipliers.test.js +0 -35
- package/tests/sum-to-dv.test.js +0 -17
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
const { sumElementsByMultipliers, sumToDV } = require('../../dist/lib/utils');
|
|
2
|
-
// const { sumElementsByMultipliers, sumToDV } = require('../lib/utils');
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* isPIS()
|
|
6
|
-
* Calcula se um código de PIS/PASEP/NIS/NIT no formato 268.27649.96-0 é válido. Não
|
|
7
|
-
* valida o formato, portanto, 26827649960 é equivalente a 268.27649.96-0 para efeitos
|
|
8
|
-
* desta validação.
|
|
9
|
-
*
|
|
10
|
-
* @doc
|
|
11
|
-
* - O número de PIS deve possuir 11 caracteres
|
|
12
|
-
*
|
|
13
|
-
* - Os caracteres de 1 a 10 são a numeração documento
|
|
14
|
-
*
|
|
15
|
-
* - O caractere 11 é o dígito verificador.
|
|
16
|
-
*
|
|
17
|
-
* 1) Partes do número
|
|
18
|
-
* _______________________________________________
|
|
19
|
-
* | Número | D V |
|
|
20
|
-
* | 2 6 8 . 2 7 6 4 9 . 9 6 - 0 |
|
|
21
|
-
* |_________________________________________|_____|
|
|
22
|
-
*
|
|
23
|
-
* 2) Cálculo do DV.
|
|
24
|
-
*
|
|
25
|
-
* - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
|
|
26
|
-
*
|
|
27
|
-
* 2 6 8 2 7 6 4 9 9 6
|
|
28
|
-
* x x x x x x x x x x
|
|
29
|
-
* 3 2 9 8 7 6 5 4 3 2
|
|
30
|
-
* = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 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: http://www.macoratti.net/alg_pis.htm
|
|
41
|
-
*
|
|
42
|
-
* @param {String} value Objeto postal no formato 268.27649.96-0
|
|
43
|
-
* @returns {Boolean}
|
|
44
|
-
*/
|
|
45
|
-
const isPIS = (value = '') => {
|
|
46
|
-
const pis = value.replace(/[^\d]+/g, '');
|
|
47
|
-
|
|
48
|
-
if (!pis || pis.length !== 11) return false;
|
|
49
|
-
|
|
50
|
-
const sum = sumElementsByMultipliers(pis.substr(0, 10), [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
|
|
51
|
-
const dv = sumToDV(sum);
|
|
52
|
-
|
|
53
|
-
// console.log({
|
|
54
|
-
// pis,
|
|
55
|
-
// sum,
|
|
56
|
-
// dvOriginal: pis.charAt(10),
|
|
57
|
-
// dvCalculado: dv,
|
|
58
|
-
// });
|
|
59
|
-
|
|
60
|
-
return dv === Number(pis.charAt(10));
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
// console.log(isPIS());
|
|
64
|
-
// console.log(isPIS('11111111111'));
|
|
65
|
-
// console.log(isPIS('26827649960'));
|
|
66
|
-
// console.log(isPIS('712.82677.38-0'));
|
|
67
|
-
// console.log(isPIS('237.95126.95-5'));
|
|
68
|
-
|
|
69
|
-
module.exports = isPIS;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
// const { sumElementsByMultipliers } = require('../../dist/lib/utils');
|
|
2
|
-
const { sumElementsByMultipliers } = require('../lib/utils');
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* isPostalCode()
|
|
6
|
-
* Calcula se um código de rastreamento postal no formato JT194690698BR é válido.
|
|
7
|
-
*
|
|
8
|
-
* @doc
|
|
9
|
-
* - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.
|
|
10
|
-
*
|
|
11
|
-
* - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.
|
|
12
|
-
*
|
|
13
|
-
* - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.
|
|
14
|
-
*
|
|
15
|
-
* - O caractere 11 é o dígito verificador.
|
|
16
|
-
*
|
|
17
|
-
* - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.
|
|
18
|
-
*
|
|
19
|
-
* 1) Partes do número
|
|
20
|
-
* ______ ___________________________ ______ _______
|
|
21
|
-
* | Tipo | Número | DV | País |
|
|
22
|
-
* | J T 1 9 4 6 9 0 6 9 8 B R |
|
|
23
|
-
* |______|___________________________|______|_______|
|
|
24
|
-
*
|
|
25
|
-
* 2) Cálculo do DV.
|
|
26
|
-
*
|
|
27
|
-
* - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7
|
|
28
|
-
*
|
|
29
|
-
* 1 9 4 6 9 0 6 9
|
|
30
|
-
* x x x x x x x x
|
|
31
|
-
* 8 6 4 2 3 5 9 7
|
|
32
|
-
* = 8 +54 +16 +12 +18 +0 +54 +63 = 234
|
|
33
|
-
*
|
|
34
|
-
* - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
|
|
35
|
-
* 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
|
|
36
|
-
* Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
|
|
37
|
-
* Caso retorne 1, o resto será 0
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* Fonte:
|
|
43
|
-
*
|
|
44
|
-
* @param {String} value Objeto postal no formato JT194690698BR
|
|
45
|
-
* @returns {Boolean}
|
|
46
|
-
*/
|
|
47
|
-
const isPostalCode = (value = '') => {
|
|
48
|
-
const match = value.match(/^[a-z]{2}([\d]{9})[a-z]{2}$/ig, '');
|
|
49
|
-
if (!match) return false;
|
|
50
|
-
|
|
51
|
-
const postalCode = match[0].replace(/[^\d]+/g, '');
|
|
52
|
-
|
|
53
|
-
const sum = sumElementsByMultipliers(postalCode.substr(0, 8), [8, 6, 4, 2, 3, 5, 9, 7]);
|
|
54
|
-
|
|
55
|
-
const rest = sum % 11;
|
|
56
|
-
const specificities = { 0: { dv: 5 }, 1: { dv: 0 } };
|
|
57
|
-
const dv = specificities[rest] ? specificities[rest].dv : 11 - rest;
|
|
58
|
-
|
|
59
|
-
if (dv !== Number(postalCode.charAt(8))) return false;
|
|
60
|
-
|
|
61
|
-
return true;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
module.exports = isPostalCode;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
const { sumElementsByMultipliers } = require('../lib/utils');
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* isTitulo()
|
|
5
|
-
* Calcula se um título eleitoral é válido
|
|
6
|
-
*
|
|
7
|
-
* @doc
|
|
8
|
-
* Título de eleitor deve possuir 12 dígitos.
|
|
9
|
-
*
|
|
10
|
-
* - Os caracteres 1 a 8 são números sequenciais.
|
|
11
|
-
*
|
|
12
|
-
* - Os caracteres 9 e 10 representam os estados da federação onde o título
|
|
13
|
-
* foi emitido (01 = SP, 02 = MG, 03 = RJ, 04 = RS, 05 = BA, 06 = PR, 07 = CE, 08 = PE,
|
|
14
|
-
* 09 = SC, 10 = GO, 11 = MA12 = PB, 13 = PA, 14 = ES, 15 = PI, 16 = RN, 17 = AL,
|
|
15
|
-
* 18 = MT, 19 = MS, 20 = DF, 21 = SE, 22 = AM, 23 = RO, 24 = AC, 25 = AP, 26 = RR,
|
|
16
|
-
* 27 = TO, 28 = Exterior(ZZ).
|
|
17
|
-
*
|
|
18
|
-
* - Os caracteres 11 e 12 são dígitos verificadores.
|
|
19
|
-
*
|
|
20
|
-
* 1) Partes do número
|
|
21
|
-
* ------------------------------------------------
|
|
22
|
-
* | Número Sequencial | UF | DV |
|
|
23
|
-
* 1 0 2 3 8 5 0 1 0 6 7 1
|
|
24
|
-
*
|
|
25
|
-
* 2) Cálculo do primeiro DV.
|
|
26
|
-
*
|
|
27
|
-
* - Soma-se o produto das algarismos 1 a 8 pelos números 2, 3, 4, 5, 6, 7, 8 e 9.
|
|
28
|
-
*
|
|
29
|
-
* 1 0 2 3 8 5 0 1
|
|
30
|
-
* x x x x x x x x
|
|
31
|
-
* 2 3 4 5 6 7 8 9
|
|
32
|
-
* = 2 + 0 + 8 +15 +48 +35 + 0 + 9 = 117
|
|
33
|
-
*
|
|
34
|
-
* - O somatório encontrado é dividido por 11. O DV1 é o resto da divisão. Se o
|
|
35
|
-
* resto for 10, o DV1 é 0.
|
|
36
|
-
*
|
|
37
|
-
* 2.1) 117 / 11 tem resto igual a 7.
|
|
38
|
-
*
|
|
39
|
-
* 3) Cálculo do segundo DV
|
|
40
|
-
*
|
|
41
|
-
* - Soma-se o produto dos algarismos 9 a 11 (relativos aos 2 dígitos da UF e o novo
|
|
42
|
-
* DV1 que acabou de ser calculado) e os multiplicam pelos números 7, 8 e 9. Se o
|
|
43
|
-
* resto for 10, DV2 será 0.
|
|
44
|
-
* 0 6 7
|
|
45
|
-
* x x x
|
|
46
|
-
* 7 8 9
|
|
47
|
-
* = 0 +48 +63 = 111
|
|
48
|
-
*
|
|
49
|
-
* 3.1) 111 / 11 tem resto igual a 1.
|
|
50
|
-
*
|
|
51
|
-
* Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/
|
|
52
|
-
*
|
|
53
|
-
* @param {String} value Título eleitoral
|
|
54
|
-
* @returns {Boolean}
|
|
55
|
-
*/
|
|
56
|
-
const isTitulo = (value = '') => {
|
|
57
|
-
const titulo = value.replace(/[^\d]+/g, '');
|
|
58
|
-
|
|
59
|
-
if (!titulo || titulo.length !== 12) return false;
|
|
60
|
-
|
|
61
|
-
const sum1 = sumElementsByMultipliers(titulo.substr(0, 8), [2, 3, 4, 5, 6, 7, 8, 9]);
|
|
62
|
-
const sum2 = sumElementsByMultipliers(titulo.substr(8, 3), [7, 8, 9]);
|
|
63
|
-
|
|
64
|
-
const dv1 = (sum1 % 11) >= 10 ? 0 : sum1 % 11;
|
|
65
|
-
const dv2 = (sum2 % 11) >= 10 ? 0 : sum2 % 11;
|
|
66
|
-
|
|
67
|
-
if (dv1 !== Number(titulo.charAt(10))) return false;
|
|
68
|
-
if (dv2 !== Number(titulo.charAt(11))) return false;
|
|
69
|
-
|
|
70
|
-
return true;
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
module.exports = isTitulo;
|
package/src/lib/utils.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Calcula o DV verificador a partir das regras do MOD11:
|
|
3
|
-
* O valor da soma é dividido por 11. O resultado é o resto da divisão. Caso o resto seja
|
|
4
|
-
* menor que 2, ou seja, o valor da divisão seja 10 ou 11, o resultado é 0.
|
|
5
|
-
*
|
|
6
|
-
* @param {Integer} sum Soma
|
|
7
|
-
*/
|
|
8
|
-
export function sumToDV(sum) {
|
|
9
|
-
return sum % 11 < 2 ? 0 : 11 - (sum % 11);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Cria uma lista de valores repetidos no tamanho do documento para eliminar
|
|
14
|
-
* valores que já conhecemos como inválidos
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* invalidListGenerator(10, 11)
|
|
18
|
-
* //-> [00000000000, 11111111111, ....., 99999999999]
|
|
19
|
-
*
|
|
20
|
-
* @param {Integer} length Número de itens do array
|
|
21
|
-
* @param {Integer} size Tamanho da string gerada
|
|
22
|
-
* @returns {Array} Lista de valores
|
|
23
|
-
*/
|
|
24
|
-
export function invalidListGenerator(size) {
|
|
25
|
-
return [...Array(10).keys()].map((f) => String(f).repeat(size));
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Soma os elementos de uma string com os elementos de outra, ou de um array
|
|
30
|
-
* @example
|
|
31
|
-
* sumElementsByMultipliers('123', '987') //-> 46
|
|
32
|
-
* sumElementsByMultipliers('123', [9, 8, 7]) //-> 46
|
|
33
|
-
*
|
|
34
|
-
* @param {String} value
|
|
35
|
-
* @param {String|Array} multiplier
|
|
36
|
-
* @returns {Integer} Somatório
|
|
37
|
-
*/
|
|
38
|
-
export function sumElementsByMultipliers(value, multiplier) {
|
|
39
|
-
return (Array.isArray(multiplier) ? multiplier : multiplier.split(''))
|
|
40
|
-
.reduce((accu, curr, i) => accu + (curr * Number(value.charAt(i))), 0);
|
|
41
|
-
}
|
package/tests/index.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Funções de Validação
|
|
2
|
-
require('./is-cpf.test');
|
|
3
|
-
require('./is-cnpj.test');
|
|
4
|
-
require('./is-titulo.test');
|
|
5
|
-
require('./is-postal-code.test');
|
|
6
|
-
require('./is-cnh.test');
|
|
7
|
-
require('./is-pis.test');
|
|
8
|
-
// require('./is-renavam.test');
|
|
9
|
-
|
|
10
|
-
// Funções Auxiliares
|
|
11
|
-
require('./sum-to-dv.test');
|
|
12
|
-
require('./invalid-list-generator.test');
|
|
13
|
-
require('./sum-elements-by-multipliers.test');
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
const test = require('tape');
|
|
2
|
-
const { invalidListGenerator } = require('../dist/lib/utils');
|
|
3
|
-
|
|
4
|
-
test('invalidListGenerator - Número de itens', (t) => {
|
|
5
|
-
const list = invalidListGenerator(4);
|
|
6
|
-
|
|
7
|
-
t.equal(list.length, 10, 'Deve ter 10 itens');
|
|
8
|
-
t.true(Array.isArray(list), 'Deve ser um array');
|
|
9
|
-
|
|
10
|
-
t.end();
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
test('invalidListGenerator - Tamanho dos itens', (t) => {
|
|
14
|
-
const valid = [
|
|
15
|
-
{ length: 10, size: 8 },
|
|
16
|
-
{ length: 10, size: 4 },
|
|
17
|
-
];
|
|
18
|
-
|
|
19
|
-
valid.forEach((item) => {
|
|
20
|
-
const list = invalidListGenerator(item.size);
|
|
21
|
-
t.equal(list[0], '0'.repeat(item.size), `invalidListGenerator(${item.size}) deve gerar itens com ${item.size} caracteres`);
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
t.end();
|
|
25
|
-
});
|
package/tests/is-cnh.test.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
const test = require('tape');
|
|
2
|
-
const { isCNH } = require('../dist/documents');
|
|
3
|
-
|
|
4
|
-
test('CNHs válidas', (t) => {
|
|
5
|
-
const valid = [
|
|
6
|
-
'50195131143',
|
|
7
|
-
'58316794534',
|
|
8
|
-
'69044271146',
|
|
9
|
-
'46190906839',
|
|
10
|
-
'62472927637',
|
|
11
|
-
];
|
|
12
|
-
|
|
13
|
-
valid.forEach((cnh) => {
|
|
14
|
-
t.true(isCNH(cnh), `CNH ${cnh} deve ser válida`);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
t.end();
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
test('CNHs inválidas', (t) => {
|
|
21
|
-
const invalid = [
|
|
22
|
-
'50195471143',
|
|
23
|
-
'58316474534',
|
|
24
|
-
'69044471146',
|
|
25
|
-
'46190476839',
|
|
26
|
-
'62472477637',
|
|
27
|
-
'00000000000',
|
|
28
|
-
'33333333333',
|
|
29
|
-
'88888888888',
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
invalid.forEach((cnh) => {
|
|
33
|
-
t.false(isCNH(cnh), `CNH ${cnh} deve ser inválida`);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
t.end();
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
test('CNH não informada', (t) => {
|
|
40
|
-
t.false(isCNH(''), 'CNH vazio deve retornar false');
|
|
41
|
-
t.end();
|
|
42
|
-
});
|
package/tests/is-cnpj.test.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
const test = require('tape');
|
|
2
|
-
const { isCNPJ } = require('../dist/documents');
|
|
3
|
-
|
|
4
|
-
test('CNPJs válidos', (t) => {
|
|
5
|
-
const valid = [
|
|
6
|
-
'11.222.333/0001-81',
|
|
7
|
-
'73.797.980/0001-79',
|
|
8
|
-
'06.946.762/0001-61',
|
|
9
|
-
'96.051.576/0001-57',
|
|
10
|
-
'55.585.709/0001-98',
|
|
11
|
-
'99360938000180',
|
|
12
|
-
'23693443000100',
|
|
13
|
-
'32432147000147',
|
|
14
|
-
'91951438000100',
|
|
15
|
-
];
|
|
16
|
-
|
|
17
|
-
valid.forEach((key) => {
|
|
18
|
-
t.true(isCNPJ(key), `CNPJ ${key} deve ser válido`);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
t.end();
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
test('CNPJs inválidos', (t) => {
|
|
25
|
-
const invalid = [
|
|
26
|
-
'53.797.980/0001-79',
|
|
27
|
-
'36.946.762/0001-61',
|
|
28
|
-
'26.051.576/0001-57',
|
|
29
|
-
'85.585.709/0001-98',
|
|
30
|
-
'39360938000180',
|
|
31
|
-
'93693443000100',
|
|
32
|
-
'12432147000147',
|
|
33
|
-
'61951438000100',
|
|
34
|
-
];
|
|
35
|
-
|
|
36
|
-
invalid.forEach((key) => {
|
|
37
|
-
t.false(isCNPJ(key), `CNPJ ${key} deve ser inválido`);
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
t.end();
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test('CNPJ não informado', (t) => {
|
|
44
|
-
t.false(isCNPJ(''), 'CNPJ vazio deve retornar false');
|
|
45
|
-
t.end();
|
|
46
|
-
});
|
package/tests/is-cpf.test.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
const test = require('tape');
|
|
2
|
-
const { isCPF } = require('../dist/documents');
|
|
3
|
-
|
|
4
|
-
test('CPFs válidos', (t) => {
|
|
5
|
-
const valid = [
|
|
6
|
-
'087.967.420-20',
|
|
7
|
-
'133.782.710-00',
|
|
8
|
-
'400.448.260-79',
|
|
9
|
-
'74172316085',
|
|
10
|
-
'15886489070',
|
|
11
|
-
'90889477086',
|
|
12
|
-
];
|
|
13
|
-
|
|
14
|
-
valid.forEach((key) => {
|
|
15
|
-
t.true(isCPF(key), `CPF ${key} deve ser válido`);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
t.end();
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
test('CPFs inválidos', (t) => {
|
|
22
|
-
const invalid = [
|
|
23
|
-
'287.967.420-20',
|
|
24
|
-
'333.782.710-00',
|
|
25
|
-
'200.448.260-79',
|
|
26
|
-
'24172316085',
|
|
27
|
-
'25886489070',
|
|
28
|
-
'20889477086',
|
|
29
|
-
];
|
|
30
|
-
|
|
31
|
-
invalid.forEach((key) => {
|
|
32
|
-
t.false(isCPF(key), `CPF ${key} deve ser inválido`);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
t.end();
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
test('CPF não informado', (t) => {
|
|
39
|
-
t.false(isCPF(''), 'CPF vazio deve retornar false');
|
|
40
|
-
t.end();
|
|
41
|
-
});
|
package/tests/is-pis.test.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
const test = require('tape');
|
|
2
|
-
const { isPIS } = require('../dist/documents');
|
|
3
|
-
|
|
4
|
-
test('PIS válidos', (t) => {
|
|
5
|
-
const valid = [
|
|
6
|
-
'712.82677.38-0',
|
|
7
|
-
'237.95126.95-5',
|
|
8
|
-
'500.12973.80-3',
|
|
9
|
-
'278.90141.14-4',
|
|
10
|
-
'268.27649.96-0',
|
|
11
|
-
'613.01862.91-7',
|
|
12
|
-
];
|
|
13
|
-
|
|
14
|
-
valid.forEach((key) => {
|
|
15
|
-
t.true(isPIS(key), `PIS ${key} deve ser válido`);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
t.end();
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
test('PIS inválidos', (t) => {
|
|
22
|
-
const invalid = [
|
|
23
|
-
'712.82677.38-2',
|
|
24
|
-
'237.95126.95-4',
|
|
25
|
-
'500.12973.80-1',
|
|
26
|
-
'278.90141.14-9',
|
|
27
|
-
'268.27649.96-2',
|
|
28
|
-
'613.01862.91-4',
|
|
29
|
-
];
|
|
30
|
-
|
|
31
|
-
invalid.forEach((key) => {
|
|
32
|
-
t.false(isPIS(key), `PIS ${key} deve ser inválido`);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
t.end();
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
test('PIS não informado', (t) => {
|
|
39
|
-
t.false(isPIS(''), 'PIS vazio deve retornar false');
|
|
40
|
-
t.end();
|
|
41
|
-
});
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
const test = require('tape');
|
|
2
|
-
const { isPostalCode } = require('../dist/documents');
|
|
3
|
-
|
|
4
|
-
test('Códigos Postais válidos', (t) => {
|
|
5
|
-
const valid = [
|
|
6
|
-
'PN718252423BR',
|
|
7
|
-
'PO925539762BR',
|
|
8
|
-
'JT194690698BR',
|
|
9
|
-
'SV143851674BR',
|
|
10
|
-
'RG727348650CN',
|
|
11
|
-
'RY747622885CN',
|
|
12
|
-
'RY728187035CN',
|
|
13
|
-
'RH940629235CN',
|
|
14
|
-
'RY686586175CN',
|
|
15
|
-
'RY648001205CN',
|
|
16
|
-
'UJ776469464CN',
|
|
17
|
-
'LZ667841882CN',
|
|
18
|
-
'RS737783818NL',
|
|
19
|
-
];
|
|
20
|
-
|
|
21
|
-
valid.forEach((key) => {
|
|
22
|
-
t.true(isPostalCode(key), `Código Postal ${key} deve ser válido`);
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
t.end();
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
test('Códigos Postais inválidos', (t) => {
|
|
29
|
-
const invalid = [
|
|
30
|
-
'PO925524762BR',
|
|
31
|
-
'JT194624698BR',
|
|
32
|
-
'SV143824674BR',
|
|
33
|
-
'RG727324650CN',
|
|
34
|
-
'RY747624885CN',
|
|
35
|
-
'RY728114035CN',
|
|
36
|
-
];
|
|
37
|
-
|
|
38
|
-
invalid.forEach((key) => {
|
|
39
|
-
t.false(isPostalCode(key), `Código Postal ${key} deve ser inválido`);
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
t.end();
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
test('Código Postal não informado', (t) => {
|
|
46
|
-
t.false(isPostalCode(''), 'Código Postal vazio deve retornar false');
|
|
47
|
-
t.end();
|
|
48
|
-
});
|
package/tests/is-renavam.test.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
const test = require('tape');
|
|
2
|
-
const { isRenavam } = require('../dist/documents');
|
|
3
|
-
|
|
4
|
-
test('Renavams válidas', (t) => {
|
|
5
|
-
const valid = [
|
|
6
|
-
'19525197703',
|
|
7
|
-
'33940389599',
|
|
8
|
-
'03607626105',
|
|
9
|
-
'64090416160',
|
|
10
|
-
'80499688374',
|
|
11
|
-
];
|
|
12
|
-
|
|
13
|
-
valid.forEach((key) => {
|
|
14
|
-
t.true(isRenavam(key), `Renavam ${key} deve ser válida`);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
t.end();
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
test('Renavams inválidas', (t) => {
|
|
21
|
-
const invalid = [
|
|
22
|
-
'19525227703',
|
|
23
|
-
'33940229599',
|
|
24
|
-
'03607226105',
|
|
25
|
-
'64090226160',
|
|
26
|
-
'80499228374',
|
|
27
|
-
];
|
|
28
|
-
|
|
29
|
-
invalid.forEach((key) => {
|
|
30
|
-
t.false(isRenavam(key), `Renavam ${key} deve ser inválida`);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
t.end();
|
|
34
|
-
});
|
package/tests/is-titulo.test.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
const test = require('tape');
|
|
2
|
-
const { isTitulo } = require('../dist/documents');
|
|
3
|
-
|
|
4
|
-
test('Títulos de eleitor válidos', (t) => {
|
|
5
|
-
const valid = [
|
|
6
|
-
'102385010671',
|
|
7
|
-
'836571371619',
|
|
8
|
-
'743650641660',
|
|
9
|
-
'153036161686',
|
|
10
|
-
'525028881694',
|
|
11
|
-
'026327681660',
|
|
12
|
-
'558657441635',
|
|
13
|
-
];
|
|
14
|
-
|
|
15
|
-
valid.forEach((key) => {
|
|
16
|
-
t.true(isTitulo(key), `Título de eleitor ${key} deve ser válido`);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
t.end();
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
test('Títulos de eleitor inválidos', (t) => {
|
|
23
|
-
const invalid = [
|
|
24
|
-
'836531371619',
|
|
25
|
-
'743620641660',
|
|
26
|
-
'153016161686',
|
|
27
|
-
'525078881694',
|
|
28
|
-
'026367681660',
|
|
29
|
-
'558647441635',
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
invalid.forEach((key) => {
|
|
33
|
-
t.false(isTitulo(key), `Título de eleitor ${key} deve ser inválido`);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
t.end();
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
test('Titulo não informado', (t) => {
|
|
40
|
-
t.false(isTitulo(''), 'Titulo vazio deve retornar false');
|
|
41
|
-
t.end();
|
|
42
|
-
});
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
const test = require('tape');
|
|
2
|
-
const { sumElementsByMultipliers } = require('../dist/lib/utils');
|
|
3
|
-
|
|
4
|
-
test('sumElementsByMultipliers - Tipo do retorno', (t) => {
|
|
5
|
-
const sum = sumElementsByMultipliers('1234', '9876');
|
|
6
|
-
|
|
7
|
-
t.equal(typeof sum, 'number', 'Deve retornar um número');
|
|
8
|
-
t.equal(sum, 70, 'Precisa ser igual a 70');
|
|
9
|
-
|
|
10
|
-
t.end();
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
test('sumElementsByMultipliers - Valores retornados', (t) => {
|
|
14
|
-
const valid = [
|
|
15
|
-
{ input: '1234', multipliers: '9876', expected: 70 },
|
|
16
|
-
{ input: '1234', multipliers: [9, 8, 7, 6], expected: 70 },
|
|
17
|
-
// cnpj
|
|
18
|
-
{ input: '112223330001', multipliers: [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2], expected: 102 },
|
|
19
|
-
{ input: '1122233300018', multipliers: '6543298765432', expected: 120 },
|
|
20
|
-
// cpf
|
|
21
|
-
{ input: '280012389', multipliers: [10, 9, 8, 7, 6, 5, 4, 3, 2], expected: 162 },
|
|
22
|
-
{ input: '2800123893', multipliers: [11, 10, 9, 8, 7, 6, 5, 4, 3, 2], expected: 201 },
|
|
23
|
-
// titulo
|
|
24
|
-
{ input: '10238501', multipliers: '23456789', expected: 117 },
|
|
25
|
-
{ input: '067', multipliers: '789', expected: 111 },
|
|
26
|
-
|
|
27
|
-
];
|
|
28
|
-
|
|
29
|
-
valid.forEach((item) => {
|
|
30
|
-
const sum = sumElementsByMultipliers(item.input, item.multipliers);
|
|
31
|
-
t.equal(sum, item.expected, `Precisa ser igual a ${item.expected}`);
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
t.end();
|
|
35
|
-
});
|
package/tests/sum-to-dv.test.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
const test = require('tape');
|
|
2
|
-
const { sumToDV } = require('../dist/lib/utils');
|
|
3
|
-
|
|
4
|
-
test('sumToDV', (t) => {
|
|
5
|
-
const valid = {
|
|
6
|
-
102: 8,
|
|
7
|
-
120: 1,
|
|
8
|
-
162: 3,
|
|
9
|
-
179: 8,
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
Object.keys(valid).forEach((key) => {
|
|
13
|
-
t.equal(sumToDV(key), valid[key], `A Soma ${key} deve resultar DV ${valid[key]}`);
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
t.end();
|
|
17
|
-
});
|