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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Claudio Medeiros
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/documents/cnh.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _require = require('../lib/utils'),
|
|
4
|
-
sumElementsByMultipliers = _require.sumElementsByMultipliers,
|
|
5
|
-
sumToDV = _require.sumToDV,
|
|
6
|
-
invalidListGenerator = _require.invalidListGenerator;
|
|
7
3
|
/**
|
|
8
4
|
* isCNH()
|
|
9
5
|
* Calcula se uma CNH é válida
|
|
@@ -59,19 +55,100 @@ var _require = require('../lib/utils'),
|
|
|
59
55
|
* @param {String} value Título eleitoral
|
|
60
56
|
* @returns {Boolean}
|
|
61
57
|
*/
|
|
58
|
+
var _require = require('../lib/utils'),
|
|
59
|
+
sumElementsByMultipliers = _require.sumElementsByMultipliers,
|
|
60
|
+
sumToDV = _require.sumToDV,
|
|
61
|
+
invalidListGenerator = _require.invalidListGenerator,
|
|
62
|
+
clearValue = _require.clearValue,
|
|
63
|
+
applyMask = _require.applyMask,
|
|
64
|
+
fakeNumber = _require.fakeNumber;
|
|
65
|
+
/**
|
|
66
|
+
* Calcula o Dígito Verificador de um RENAVAM informado
|
|
67
|
+
*
|
|
68
|
+
* @returns String Número fake de um cnh válido
|
|
69
|
+
*/
|
|
62
70
|
|
|
63
71
|
|
|
64
|
-
var
|
|
72
|
+
var dv = function dv() {
|
|
65
73
|
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
66
|
-
|
|
67
|
-
var
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
74
|
+
if (!value) throw new Error('CNH não informado');
|
|
75
|
+
var cnh = clearValue(value, 9);
|
|
76
|
+
var invalidList = invalidListGenerator(9);
|
|
77
|
+
|
|
78
|
+
if (invalidList.includes(cnh)) {
|
|
79
|
+
throw new Error('CNH não pode ser uma sequência de números iguais');
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
var sum1 = sumElementsByMultipliers(cnh.substring(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);
|
|
71
83
|
var dv1 = sumToDV(sum1);
|
|
84
|
+
var sum2 = sumElementsByMultipliers(cnh.substring(0, 9) + dv1, [3, 4, 5, 6, 7, 8, 9, 10, 11, 2]);
|
|
72
85
|
var dv2 = sumToDV(sum2);
|
|
73
|
-
return "".concat(dv1).concat(dv2)
|
|
86
|
+
return "".concat(dv1).concat(dv2);
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Valida um número de cnh e retorna uma exceção caso seja inválido
|
|
90
|
+
*
|
|
91
|
+
* @returns String Número fake de um cnh válido
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
var validateOrFail = function validateOrFail() {
|
|
96
|
+
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
97
|
+
var cnh = clearValue(value, 11);
|
|
98
|
+
|
|
99
|
+
if (dv(cnh) !== cnh.substring(9, 11)) {
|
|
100
|
+
throw new Error('Dígito verificador inválido');
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return true;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Valida um número de cnh
|
|
107
|
+
*
|
|
108
|
+
* @returns String Valor a ser validado
|
|
109
|
+
*/
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
var validate = function validate() {
|
|
113
|
+
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
114
|
+
|
|
115
|
+
try {
|
|
116
|
+
return validateOrFail(value);
|
|
117
|
+
} catch (error) {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
74
120
|
};
|
|
121
|
+
/**
|
|
122
|
+
* Aplica uma máscara a uma string
|
|
123
|
+
*
|
|
124
|
+
* @returns String string com a máscara aplicada
|
|
125
|
+
*/
|
|
126
|
+
|
|
75
127
|
|
|
76
|
-
|
|
128
|
+
var mask = function mask() {
|
|
129
|
+
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
130
|
+
return applyMask(value, '000000000-00');
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Cria um número fake
|
|
134
|
+
*
|
|
135
|
+
* @returns String Número fake porém válido
|
|
136
|
+
*/
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
var fake = function fake() {
|
|
140
|
+
var withMask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
141
|
+
var value = fakeNumber(9, true);
|
|
142
|
+
var cnh = "".concat(value).concat(dv(value));
|
|
143
|
+
if (withMask) return mask(cnh);
|
|
144
|
+
return cnh;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
module.exports = {
|
|
148
|
+
dv: dv,
|
|
149
|
+
fake: fake,
|
|
150
|
+
mask: mask,
|
|
151
|
+
validate: validate,
|
|
152
|
+
validateOrFail: validateOrFail
|
|
153
|
+
};
|
|
77
154
|
//# sourceMappingURL=cnh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/cnh.js"],"names":["require","sumElementsByMultipliers","sumToDV","invalidListGenerator","
|
|
1
|
+
{"version":3,"sources":["../../src/documents/cnh.js"],"names":["require","sumElementsByMultipliers","sumToDV","invalidListGenerator","clearValue","applyMask","fakeNumber","dv","value","Error","cnh","invalidList","includes","sum1","substring","dv1","sum2","dv2","validateOrFail","validate","error","mask","fake","withMask","module","exports"],"mappings":"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","sourcesContent":["/**\n * isCNH()\n * Calcula se uma CNH é válida\n *\n * @doc\n * CNH deve possuir 11 caracteres\n *\n * - Os caracteres 1 a 9 são números sequenciais.\n *\n *\n * - Os caracteres 10 e 11 são dígitos verificadores.\n *\n * 1) Partes do número\n * ____________________________ ______\n * | Número | D V |\n * | 5 8 3 1 6 7 9 4 5 3 4 |\n * |____________________________|_____|\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.\n *\n * 5 8 3 1 6 7 9 4 5\n * x x x x x x x x x\n * 2 3 4 5 6 7 8 9 10\n * = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294\n *\n * - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o\n * resto for 10, o DV1 é 0.\n *\n * 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3\n * DV1 = 3\n *\n * 3) Cálculo do segundo DV\n *\n * - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere\n * que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será\n * multiplicado por 2 e ficará no final.\n *\n * 5 8 3 1 6 7 9 4 5 3\n * x x x x x x x x x x\n * 3 4 5 6 7 8 9 10 11 2\n * = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348\n *\n * 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.\n * DV2 = 4\n *\n * - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o\n * resto for 10, o DV2 é 0.\n *\n * Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\n\nconst {\n sumElementsByMultipliers, sumToDV, invalidListGenerator,\n clearValue, applyMask, fakeNumber,\n} = require('../lib/utils');\n\n/**\n * Calcula o Dígito Verificador de um RENAVAM informado\n *\n * @returns String Número fake de um cnh válido\n */\nconst dv = (value = '') => {\n if (!value) throw new Error('CNH não informado');\n\n const cnh = clearValue(value, 9);\n\n const invalidList = invalidListGenerator(9);\n if (invalidList.includes(cnh)) {\n throw new Error('CNH não pode ser uma sequência de números iguais');\n }\n\n const sum1 = sumElementsByMultipliers(cnh.substring(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const dv1 = sumToDV(sum1);\n\n const sum2 = sumElementsByMultipliers(\n cnh.substring(0, 9) + dv1,\n [3, 4, 5, 6, 7, 8, 9, 10, 11, 2],\n );\n const dv2 = sumToDV(sum2);\n\n return `${dv1}${dv2}`;\n};\n\n/**\n * Valida um número de cnh e retorna uma exceção caso seja inválido\n *\n * @returns String Número fake de um cnh válido\n */\nconst validateOrFail = (value = '') => {\n const cnh = clearValue(value, 11);\n\n if (dv(cnh) !== (cnh.substring(9, 11))) {\n throw new Error('Dígito verificador inválido');\n }\n\n return true;\n};\n\n/**\n * Valida um número de cnh\n *\n * @returns String Valor a ser validado\n */\nconst validate = (value = '') => {\n try {\n return validateOrFail(value);\n } catch (error) {\n return false;\n }\n};\n\n/**\n * Aplica uma máscara a uma string\n *\n * @returns String string com a máscara aplicada\n */\nconst mask = (value = '') => applyMask(value, '000000000-00');\n\n/**\n * Cria um número fake\n *\n * @returns String Número fake porém válido\n */\nconst fake = (withMask = false) => {\n const value = fakeNumber(9, true);\n\n const cnh = `${value}${dv(value)}`;\n\n if (withMask) return mask(cnh);\n\n return cnh;\n};\n\nmodule.exports = {\n dv, fake, mask, validate, validateOrFail,\n};\n"],"file":"cnh.js"}
|
package/dist/documents/cnpj.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _require = require('../lib/utils'),
|
|
4
|
-
invalidListGenerator = _require.invalidListGenerator,
|
|
5
|
-
sumElementsByMultipliers = _require.sumElementsByMultipliers,
|
|
6
|
-
sumToDV = _require.sumToDV;
|
|
7
3
|
/**
|
|
8
4
|
* isCNPJ()
|
|
9
5
|
* Calcula se um CNPJ é válido
|
|
@@ -55,21 +51,89 @@ var _require = require('../lib/utils'),
|
|
|
55
51
|
* @param {String} value Título eleitoral
|
|
56
52
|
* @returns {Boolean}
|
|
57
53
|
*/
|
|
54
|
+
var _require = require('../lib/utils'),
|
|
55
|
+
invalidListGenerator = _require.invalidListGenerator,
|
|
56
|
+
sumElementsByMultipliers = _require.sumElementsByMultipliers,
|
|
57
|
+
sumToDV = _require.sumToDV,
|
|
58
|
+
clearValue = _require.clearValue,
|
|
59
|
+
fakeNumber = _require.fakeNumber,
|
|
60
|
+
applyMask = _require.applyMask;
|
|
58
61
|
|
|
59
|
-
|
|
60
|
-
var isCNPJ = function isCNPJ() {
|
|
62
|
+
var dv = function dv() {
|
|
61
63
|
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
62
|
-
var cnpj = value
|
|
63
|
-
var blackList = invalidListGenerator(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
var cnpj = clearValue(value, 12);
|
|
65
|
+
var blackList = invalidListGenerator(12);
|
|
66
|
+
|
|
67
|
+
if (blackList.includes(cnpj)) {
|
|
68
|
+
throw new Error('CNPJ é obrigatório');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
var sum1 = sumElementsByMultipliers(cnpj.substring(0, 12), '543298765432');
|
|
67
72
|
var dv1 = sumToDV(sum1);
|
|
73
|
+
var sum2 = sumElementsByMultipliers(cnpj.substring(0, 12) + dv1, '6543298765432');
|
|
68
74
|
var dv2 = sumToDV(sum2);
|
|
69
|
-
|
|
70
|
-
|
|
75
|
+
return "".concat(dv1).concat(dv2);
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Aplica uma máscara ao número informado
|
|
79
|
+
*
|
|
80
|
+
* @param {String} value Número de Processo
|
|
81
|
+
* @returns {String} Valor com a máscara
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
var mask = function mask(value) {
|
|
86
|
+
return applyMask(value, '00.000.000/0000-00');
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
*
|
|
90
|
+
*
|
|
91
|
+
*/
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
var fake = function fake() {
|
|
95
|
+
var withMask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
96
|
+
var num = fakeNumber(12, true);
|
|
97
|
+
var cnpj = "".concat(num).concat(dv(num));
|
|
98
|
+
if (withMask) return mask(cnpj);
|
|
99
|
+
return cnpj;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* validate()
|
|
103
|
+
* Valida se um número de processo está correto
|
|
104
|
+
*
|
|
105
|
+
*/
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
var validateOrFail = function validateOrFail(value) {
|
|
109
|
+
var cnpj = clearValue(value, 14);
|
|
110
|
+
|
|
111
|
+
if (dv(cnpj) !== cnpj.substring(12, 14)) {
|
|
112
|
+
throw new Error('Dígito verificador inválido');
|
|
113
|
+
}
|
|
114
|
+
|
|
71
115
|
return true;
|
|
72
116
|
};
|
|
117
|
+
/**
|
|
118
|
+
* validate()
|
|
119
|
+
* Valida se um número de processo está correto
|
|
120
|
+
*
|
|
121
|
+
*/
|
|
73
122
|
|
|
74
|
-
|
|
123
|
+
|
|
124
|
+
var validate = function validate(value) {
|
|
125
|
+
try {
|
|
126
|
+
return validateOrFail(value);
|
|
127
|
+
} catch (error) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
module.exports = {
|
|
133
|
+
dv: dv,
|
|
134
|
+
fake: fake,
|
|
135
|
+
mask: mask,
|
|
136
|
+
validate: validate,
|
|
137
|
+
validateOrFail: validateOrFail
|
|
138
|
+
};
|
|
75
139
|
//# sourceMappingURL=cnpj.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/cnpj.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","
|
|
1
|
+
{"version":3,"sources":["../../src/documents/cnpj.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","clearValue","fakeNumber","applyMask","dv","value","cnpj","blackList","includes","Error","sum1","substring","dv1","sum2","dv2","mask","fake","withMask","num","validateOrFail","validate","error","module","exports"],"mappings":"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","sourcesContent":["/**\n * isCNPJ()\n * Calcula se um CNPJ é válido\n *\n * @doc\n * - CNPJ deve possuir 14 dígitos no formato 00.000.000/0000-00\n *\n * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal\n *\n * - Os caracteres 9 a 12 são a identificação das filiais da empresa.\n *\n * - Os caracteres 13 e 14 são os dígitos verificadores\n *\n * 1) Partes do número\n * _______________________________ _______________ _______\n * | Número | Filiais | DV |\n * | 1 1 . 2 2 2 . 3 3 3 / 0 0 0 1 - X Y |\n * |_______________________________|_______________|_______|\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 12 pelos números 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 1 1 2 2 2 3 3 3 0 0 0 1\n * x x x x x x x x x x x x\n * 5 4 3 2 9 8 7 6 5 4 3 2\n * = 5 +4 +6 +4 +18 +24 +21 +18 +0 +0 +0 +2 = 102\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 102 / 11 tem resto 8. 11 - 3 = 8. DV1 é 8.\n * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.\n *\n * 3) Cálculo do segundo DV.\n *\n * - Soma-se o produto das algarismos 1 a 13 (incluindo o DV1 calculado) pelos\n * números 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.\n *\n * 1 1 2 2 2 3 3 3 0 0 0 1 8\n * x x x x x x x x x x x x x\n * 6 5 4 3 2 9 8 7 6 5 4 3 2\n * = 6 +5 +8 +6 +4 +27 +24 +21 +0 +0 +0 +3 +16 = 120\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 120 / 11 tem resto 10. 11 - 10 = 1. DV2 é 1.\n * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.\n *\n * Fonte: http://www.macoratti.net/alg_cnpj.htm\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\n\nconst {\n invalidListGenerator, sumElementsByMultipliers, sumToDV,\n clearValue, fakeNumber, applyMask,\n} = require('../lib/utils');\n\nconst dv = (value = '') => {\n const cnpj = clearValue(value, 12);\n\n const blackList = invalidListGenerator(12);\n if (blackList.includes(cnpj)) {\n throw new Error('CNPJ é obrigatório');\n }\n\n const sum1 = sumElementsByMultipliers(cnpj.substring(0, 12), '543298765432');\n const dv1 = sumToDV(sum1);\n\n const sum2 = sumElementsByMultipliers(cnpj.substring(0, 12) + dv1, '6543298765432');\n const dv2 = sumToDV(sum2);\n\n return `${dv1}${dv2}`;\n};\n\n/**\n * Aplica uma máscara ao número informado\n *\n * @param {String} value Número de Processo\n * @returns {String} Valor com a máscara\n */\nconst mask = (value) => applyMask(value, '00.000.000/0000-00');\n\n/**\n *\n *\n */\nconst fake = (withMask = false) => {\n const num = fakeNumber(12, true);\n\n const cnpj = `${num}${dv(num)}`;\n\n if (withMask) return mask(cnpj);\n return cnpj;\n};\n\n/**\n * validate()\n * Valida se um número de processo está correto\n *\n */\nconst validateOrFail = (value) => {\n const cnpj = clearValue(value, 14);\n\n if (dv(cnpj) !== cnpj.substring(12, 14)) {\n throw new Error('Dígito verificador inválido');\n }\n\n return true;\n};\n\n/**\n * validate()\n * Valida se um número de processo está correto\n *\n */\nconst validate = (value) => {\n try {\n return validateOrFail(value);\n } catch (error) {\n return false;\n }\n};\n\nmodule.exports = {\n dv,\n fake,\n mask,\n validate,\n validateOrFail,\n};\n"],"file":"cnpj.js"}
|
package/dist/documents/cpf.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _require = require('../lib/utils'),
|
|
4
|
-
invalidListGenerator = _require.invalidListGenerator,
|
|
5
|
-
sumElementsByMultipliers = _require.sumElementsByMultipliers,
|
|
6
|
-
sumToDV = _require.sumToDV;
|
|
7
3
|
/**
|
|
8
4
|
* isCPF()
|
|
9
5
|
* Calcula se um CPF é válido
|
|
@@ -63,21 +59,103 @@ var _require = require('../lib/utils'),
|
|
|
63
59
|
* @param {String} value Título eleitoral
|
|
64
60
|
* @returns {Boolean}
|
|
65
61
|
*/
|
|
62
|
+
var _require = require('../lib/utils'),
|
|
63
|
+
invalidListGenerator = _require.invalidListGenerator,
|
|
64
|
+
sumElementsByMultipliers = _require.sumElementsByMultipliers,
|
|
65
|
+
sumToDV = _require.sumToDV,
|
|
66
|
+
clearValue = _require.clearValue,
|
|
67
|
+
fakeNumber = _require.fakeNumber,
|
|
68
|
+
applyMask = _require.applyMask;
|
|
69
|
+
/**
|
|
70
|
+
* dv()
|
|
71
|
+
* Calcula o dígito verificador de um CPF
|
|
72
|
+
*
|
|
73
|
+
* @param {Number|String} value
|
|
74
|
+
* @returns {String}
|
|
75
|
+
*/
|
|
66
76
|
|
|
67
77
|
|
|
68
|
-
var
|
|
78
|
+
var dv = function dv() {
|
|
69
79
|
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
70
|
-
|
|
71
|
-
var
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
80
|
+
if (!value) throw new Error('CPF não informado');
|
|
81
|
+
var cpf = clearValue(value, 9);
|
|
82
|
+
var invalidList = invalidListGenerator(9);
|
|
83
|
+
|
|
84
|
+
if (invalidList.includes(cpf)) {
|
|
85
|
+
throw new Error('CPF não pode ser uma sequência de números iguais');
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
var sum1 = sumElementsByMultipliers(cpf, [10, 9, 8, 7, 6, 5, 4, 3, 2]);
|
|
75
89
|
var dv1 = sumToDV(sum1);
|
|
90
|
+
var sum2 = sumElementsByMultipliers(cpf + dv1, [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]);
|
|
76
91
|
var dv2 = sumToDV(sum2);
|
|
77
|
-
|
|
78
|
-
|
|
92
|
+
return "".concat(dv1).concat(dv2);
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Aplica uma máscara ao número informado
|
|
96
|
+
*
|
|
97
|
+
* @param {String} value Número de Processo
|
|
98
|
+
* @returns {String} Valor com a máscara
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
var mask = function mask(value) {
|
|
103
|
+
return applyMask(value, '000.000.000-00');
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* fake()
|
|
107
|
+
* Gera um número válido
|
|
108
|
+
*
|
|
109
|
+
* @returns {String}
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
var fake = function fake() {
|
|
114
|
+
var withMask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
115
|
+
var num = fakeNumber(9, true);
|
|
116
|
+
var cpf = "".concat(num).concat(dv(num));
|
|
117
|
+
if (withMask) return mask(cpf);
|
|
118
|
+
return cpf;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* validateOrFail()
|
|
122
|
+
* Valida se um número de processo está correto e
|
|
123
|
+
* retorna uma exceção se não estiver
|
|
124
|
+
*
|
|
125
|
+
* @returns {Boolean}
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
var validateOrFail = function validateOrFail(value) {
|
|
130
|
+
var cpf = clearValue(value, 11);
|
|
131
|
+
|
|
132
|
+
if (dv(cpf) !== cpf.substring(9, 11)) {
|
|
133
|
+
throw new Error('Dígito verificador inválido');
|
|
134
|
+
}
|
|
135
|
+
|
|
79
136
|
return true;
|
|
80
137
|
};
|
|
138
|
+
/**
|
|
139
|
+
* validate()
|
|
140
|
+
* Valida se um número de processo está correto
|
|
141
|
+
*
|
|
142
|
+
* @returns {Boolean}
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
var validate = function validate(value) {
|
|
147
|
+
try {
|
|
148
|
+
return validateOrFail(value);
|
|
149
|
+
} catch (error) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
};
|
|
81
153
|
|
|
82
|
-
module.exports =
|
|
154
|
+
module.exports = {
|
|
155
|
+
dv: dv,
|
|
156
|
+
fake: fake,
|
|
157
|
+
mask: mask,
|
|
158
|
+
validate: validate,
|
|
159
|
+
validateOrFail: validateOrFail
|
|
160
|
+
};
|
|
83
161
|
//# sourceMappingURL=cpf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/cpf.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","
|
|
1
|
+
{"version":3,"sources":["../../src/documents/cpf.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","clearValue","fakeNumber","applyMask","dv","value","Error","cpf","invalidList","includes","sum1","dv1","sum2","dv2","mask","fake","withMask","num","validateOrFail","substring","validate","error","module","exports"],"mappings":"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","sourcesContent":["/**\n * isCPF()\n * Calcula se um CPF é válido\n *\n * @doc\n * CPF deve possuir 11 dígitos.\n *\n * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal\n *\n * - O caractere 9 refere-se à região fiscal emissora do documento\n * 1 – DF, GO, MS, MT e TO\n * 2 – AC, AM, AP, PA, RO e RR\n * 3 – CE, MA e PI\n * 4 – AL, PB, PE, RN\n * 5 – BA e SE\n * 6 – MG\n * 7 – ES e RJ\n * 8 – SP\n * 9 – PR e SC\n * 0 – RS\n *\n * - Os caracteres 10 e 11 são dígitos verificadores.\n *\n * 1) Partes do número\n * ------------------------------------------------\n * | Número | R | DV |\n * 2 8 0 . 0 1 2 . 3 8 9 - 3 8\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 9 pelos números 10, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 8 0 0 1 2 3 8 9\n * x x x x x x x x x\n * 10 9 8 7 6 5 4 3 2\n * = 20 +72 +0 +0 +6 +10 +12 +24 +18 = 162\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 162 / 11 tem resto 8. 11 - 8 = 3. DV1 é 3.\n * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.\n *\n * 3) Cálculo do segundo DV.\n *\n * - Soma-se o produto das algarismos 1 a 10 pelos números 11, 10, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 8 0 0 1 2 3 8 9 3\n * x x x x x x x x x x\n * 11 10 9 8 7 6 5 4 3 2\n * = 22 +80 +0 +0 +7 +12 +15 +32 +27 = 201\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 201 / 11 tem resto 3. 11 - 3 = 8. DV2 é 8.\n * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.\n *\n * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-cpf/\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\n\nconst {\n invalidListGenerator, sumElementsByMultipliers, sumToDV,\n clearValue, fakeNumber, applyMask,\n} = require('../lib/utils');\n\n/**\n * dv()\n * Calcula o dígito verificador de um CPF\n *\n * @param {Number|String} value\n * @returns {String}\n */\nconst dv = (value = '') => {\n if (!value) throw new Error('CPF não informado');\n\n const cpf = clearValue(value, 9);\n\n const invalidList = invalidListGenerator(9);\n if (invalidList.includes(cpf)) {\n throw new Error('CPF não pode ser uma sequência de números iguais');\n }\n\n const sum1 = sumElementsByMultipliers(cpf, [10, 9, 8, 7, 6, 5, 4, 3, 2]);\n const dv1 = sumToDV(sum1);\n\n const sum2 = sumElementsByMultipliers(cpf + dv1, [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]);\n const dv2 = sumToDV(sum2);\n\n return `${dv1}${dv2}`;\n};\n\n/**\n * Aplica uma máscara ao número informado\n *\n * @param {String} value Número de Processo\n * @returns {String} Valor com a máscara\n */\nconst mask = (value) => applyMask(value, '000.000.000-00');\n\n/**\n * fake()\n * Gera um número válido\n *\n * @returns {String}\n */\nconst fake = (withMask = false) => {\n const num = fakeNumber(9, true);\n\n const cpf = `${num}${dv(num)}`;\n\n if (withMask) return mask(cpf);\n return cpf;\n};\n\n/**\n * validateOrFail()\n * Valida se um número de processo está correto e\n * retorna uma exceção se não estiver\n *\n * @returns {Boolean}\n */\nconst validateOrFail = (value) => {\n const cpf = clearValue(value, 11);\n\n if (dv(cpf) !== cpf.substring(9, 11)) {\n throw new Error('Dígito verificador inválido');\n }\n\n return true;\n};\n\n/**\n * validate()\n * Valida se um número de processo está correto\n *\n * @returns {Boolean}\n */\nconst validate = (value) => {\n try {\n return validateOrFail(value);\n } catch (error) {\n return false;\n }\n};\n\nmodule.exports = {\n dv,\n fake,\n mask,\n validate,\n validateOrFail,\n};\n"],"file":"cpf.js"}
|
package/dist/documents/index.js
CHANGED
|
@@ -1,23 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var isCNH = require('./cnh').validate;
|
|
4
4
|
|
|
5
|
-
var isCNPJ = require('./cnpj');
|
|
5
|
+
var isCNPJ = require('./cnpj').validate;
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var isCPF = require('./cpf').validate;
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var isJudicialProcess = require('./judicial-process').validate;
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var isPIS = require('./pis-pasep').validate;
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var isPostalCode = require('./postal-code').validate;
|
|
14
|
+
|
|
15
|
+
var isRenavam = require('./renavam').validate;
|
|
16
|
+
|
|
17
|
+
var isTitulo = require('./titulo-eleitor').validate;
|
|
14
18
|
|
|
15
19
|
module.exports = {
|
|
16
|
-
|
|
20
|
+
isCNH: isCNH,
|
|
17
21
|
isCNPJ: isCNPJ,
|
|
18
|
-
|
|
22
|
+
isCPF: isCPF,
|
|
23
|
+
isJudicialProcess: isJudicialProcess,
|
|
24
|
+
isPIS: isPIS,
|
|
19
25
|
isPostalCode: isPostalCode,
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
isRenavam: isRenavam,
|
|
27
|
+
isTitulo: isTitulo
|
|
22
28
|
};
|
|
23
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/index.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../src/documents/index.js"],"names":["isCNH","require","validate","isCNPJ","isCPF","isJudicialProcess","isPIS","isPostalCode","isRenavam","isTitulo","module","exports"],"mappings":";;AAAA,IAAMA,KAAK,GAAGC,OAAO,CAAC,OAAD,CAAP,CAAiBC,QAA/B;;AACA,IAAMC,MAAM,GAAGF,OAAO,CAAC,QAAD,CAAP,CAAkBC,QAAjC;;AACA,IAAME,KAAK,GAAGH,OAAO,CAAC,OAAD,CAAP,CAAiBC,QAA/B;;AACA,IAAMG,iBAAiB,GAAGJ,OAAO,CAAC,oBAAD,CAAP,CAA8BC,QAAxD;;AACA,IAAMI,KAAK,GAAGL,OAAO,CAAC,aAAD,CAAP,CAAuBC,QAArC;;AACA,IAAMK,YAAY,GAAGN,OAAO,CAAC,eAAD,CAAP,CAAyBC,QAA9C;;AACA,IAAMM,SAAS,GAAGP,OAAO,CAAC,WAAD,CAAP,CAAqBC,QAAvC;;AACA,IAAMO,QAAQ,GAAGR,OAAO,CAAC,kBAAD,CAAP,CAA4BC,QAA7C;;AAEAQ,MAAM,CAACC,OAAP,GAAiB;AACfX,EAAAA,KAAK,EAALA,KADe;AAEfG,EAAAA,MAAM,EAANA,MAFe;AAGfC,EAAAA,KAAK,EAALA,KAHe;AAIfC,EAAAA,iBAAiB,EAAjBA,iBAJe;AAKfC,EAAAA,KAAK,EAALA,KALe;AAMfC,EAAAA,YAAY,EAAZA,YANe;AAOfC,EAAAA,SAAS,EAATA,SAPe;AAQfC,EAAAA,QAAQ,EAARA;AARe,CAAjB","sourcesContent":["const isCNH = require('./cnh').validate;\nconst isCNPJ = require('./cnpj').validate;\nconst isCPF = require('./cpf').validate;\nconst isJudicialProcess = require('./judicial-process').validate;\nconst isPIS = require('./pis-pasep').validate;\nconst isPostalCode = require('./postal-code').validate;\nconst isRenavam = require('./renavam').validate;\nconst isTitulo = require('./titulo-eleitor').validate;\n\nmodule.exports = {\n isCNH,\n isCNPJ,\n isCPF,\n isJudicialProcess,\n isPIS,\n isPostalCode,\n isRenavam,\n isTitulo,\n};\n"],"file":"index.js"}
|