validation-br 0.21.2 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.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/{documents/cnh.js → cnh.js} +122 -153
- package/dist/cnh.js.map +1 -0
- package/dist/{documents/cnpj.js → cnpj.js} +111 -138
- package/dist/cnpj.js.map +1 -0
- package/dist/{documents/cpf.js → cpf.js} +133 -160
- package/dist/cpf.js.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/judicialProcess.js +153 -0
- package/dist/judicialProcess.js.map +1 -0
- package/dist/{documents/pis-pasep.js → pisPasep.js} +113 -140
- package/dist/pisPasep.js.map +1 -0
- package/dist/postalCode.js +150 -0
- package/dist/postalCode.js.map +1 -0
- package/dist/renavam.js +108 -0
- package/dist/renavam.js.map +1 -0
- package/dist/{documents/titulo-eleitor.js → tituloEleitor.js} +130 -155
- package/dist/tituloEleitor.js.map +1 -0
- package/dist/{lib/utils.js → utils.js} +166 -175
- package/dist/utils.js.map +1 -0
- package/jest.config.js +14 -0
- package/package.json +60 -31
- package/readme.md +170 -111
- package/tsconfig.json +23 -0
- package/.babelrc +0 -15
- package/.prettierrc +0 -9
- package/LICENSE +0 -21
- 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
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* judicialProcess
|
|
5
|
-
* Valida, mascara e cria números de processos judiciais
|
|
6
|
-
*
|
|
7
|
-
* @link
|
|
8
|
-
* https://juslaboris.tst.jus.br/bitstream/handle/20.500.12178/30318/2008_res0065_cnj_rep01.pdf?sequence=2
|
|
9
|
-
* http://ghiorzi.org/DVnew.htm#f
|
|
10
|
-
*
|
|
11
|
-
* @doc
|
|
12
|
-
* Os números de processos judiciais são usados a partir de 2010 para unificar a
|
|
13
|
-
* numeração de processos no Brasil e são usados em todos os tribunais.
|
|
14
|
-
*
|
|
15
|
-
* O número do processo, sem os caracteres especiais, devem possuir até 20 números
|
|
16
|
-
* e deve seguir o padrão abaixo:
|
|
17
|
-
*
|
|
18
|
-
* 1) Partes do número
|
|
19
|
-
* 0002080-25.2012.5.15.0049
|
|
20
|
-
* NNNNNNN-DD.AAAA.J.TR.OOOO
|
|
21
|
-
* |______|__|____|_|__|____|
|
|
22
|
-
* | | | | | |----> Unidade de origem do processo com 4 caracteres
|
|
23
|
-
* | | | | |--------> TR=Tribunal do segmento do poder judiciário com 2 caracteres
|
|
24
|
-
* | | | |----------> J=Órgão do poder Judiciário com 1 caractere
|
|
25
|
-
* | | |-------------> Ano do ajuizamento do processo com 4 caracteres
|
|
26
|
-
* | |-----------------> Dígito verificador com 2 caracteres
|
|
27
|
-
* |----------------------> Número sequencial do Processo, por unidade de
|
|
28
|
-
* origem, reiniciado anualmente com 7 caracteres
|
|
29
|
-
*
|
|
30
|
-
* Órgãos do Poder Judiciário
|
|
31
|
-
* 1 - Supremo Tribunal Federal
|
|
32
|
-
* 2 - Conselho Nacional de Justiça
|
|
33
|
-
* 3 - Superior Tribunal de Justiça
|
|
34
|
-
* 4 - Justiça Federal
|
|
35
|
-
* 5 - Justiça do Trabalho
|
|
36
|
-
* 6 - Justiça Eleitoral
|
|
37
|
-
* 7 - Justiça Militar da União
|
|
38
|
-
* 8 - Justiça dos Estados e do Distrito Federal e Territórios
|
|
39
|
-
* 9 - Justiça Militar Estadual
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* 2) Dígito Verificador
|
|
43
|
-
*
|
|
44
|
-
* O algoritmo usado para o cálculo do DV chama-se Módulo 97 de Base 10 (ISO 7064).
|
|
45
|
-
*
|
|
46
|
-
* Nota: O número do processo possui 20 caracteres e ultrapassa o tamanho máximo
|
|
47
|
-
* do inteiro em javascript, impedindo que façamos o cálculo diretamente, desta
|
|
48
|
-
* forma, será nacessária uma fatoração para que o resultado seja o correto.
|
|
49
|
-
*
|
|
50
|
-
* 2.1) Cálculo do DV
|
|
51
|
-
* - Caso o DV seja conhecido, ele precisa ser removido do número e colocado
|
|
52
|
-
* como "00" ao final. Caso não esteja incluso no número, adicione '00' ao final.
|
|
53
|
-
*
|
|
54
|
-
* Ex.: O processo "00020802520125150049", cujo dv é "25", será calculado como
|
|
55
|
-
* "000208020125150049" e receberá "00" ao final. O número usado para o cálculo
|
|
56
|
-
* do DV será "00020802012515004900"
|
|
57
|
-
*
|
|
58
|
-
* 2.2) Etapas de Cálculo
|
|
59
|
-
*
|
|
60
|
-
* 00020802012515004900
|
|
61
|
-
* ↓↓
|
|
62
|
-
* DV ao final como "00"
|
|
63
|
-
*
|
|
64
|
-
* - Aplicamos o MOD 97 aos caracteres de 0 a 7 para calcular a primeira parte
|
|
65
|
-
* part1 = 0002080 % 97 = 43
|
|
66
|
-
*
|
|
67
|
-
* - Concatenamos part1 ao ano, órgão do poder judiciário e tribunal e aplicamos o MOD 97
|
|
68
|
-
* para obtermos o valor da part2
|
|
69
|
-
* part2 = ( part1 +''+ 2012 +''+ 5 +''+ 15 ) % 97 = 26
|
|
70
|
-
*
|
|
71
|
-
* - Concatemos part2 ao código do órgão de origem e ao "00" do final e aplicamos
|
|
72
|
-
* o MOD 97 ao resultado
|
|
73
|
-
* part3 = ( part2 + '0049' + '00') % 97 = 73
|
|
74
|
-
*
|
|
75
|
-
* - Subtraímos o resultado de 98
|
|
76
|
-
* dv = 98 - 73 = 25
|
|
77
|
-
*
|
|
78
|
-
* O Dígito verificador é 25 e deve ser aplicado após o 7º caractere do número do processo
|
|
79
|
-
*
|
|
80
|
-
* Fonte: https://juslaboris.tst.jus.br/bitstream/handle/20.500.12178/30318/2008_res0065_cnj_rep01.pdf?sequence=2
|
|
81
|
-
*/
|
|
82
|
-
var _require = require('../lib/utils'),
|
|
83
|
-
clearValue = _require.clearValue,
|
|
84
|
-
fakeNumber = _require.fakeNumber,
|
|
85
|
-
insertAtPosition = _require.insertAtPosition,
|
|
86
|
-
applyMask = _require.applyMask,
|
|
87
|
-
removeFromPosition = _require.removeFromPosition;
|
|
88
|
-
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
var dv = function dv(value) {
|
|
95
|
-
if (!value) throw new Error('Número do processo é obrigatório');
|
|
96
|
-
if (typeof value !== 'string') throw new Error('Número do processo precisa ser string');
|
|
97
|
-
var judicialProcess = clearValue(value, 18);
|
|
98
|
-
var number = judicialProcess.substring(0, 7);
|
|
99
|
-
var yearAndCourt = judicialProcess.substring(7, 14);
|
|
100
|
-
var origin = judicialProcess.substring(14, 18);
|
|
101
|
-
return String(98 - "".concat("".concat(number % 97).concat(yearAndCourt) % 97).concat(origin, "00") % 97).padStart(2, '0');
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* Aplica uma máscara ao número informado
|
|
105
|
-
*
|
|
106
|
-
* @param {String} value Número de Processo
|
|
107
|
-
* @returns {String} Valor com a máscara
|
|
108
|
-
*/
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
var mask = function mask(value) {
|
|
112
|
-
return applyMask(value, '0000000-00.0000.0.00.0000');
|
|
113
|
-
};
|
|
114
|
-
/**
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
var fake = function fake() {
|
|
121
|
-
var withMask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
122
|
-
// const judicialProcess = fakeNumber(14, true);
|
|
123
|
-
var num = fakeNumber(7, true);
|
|
124
|
-
var year = new Date().getFullYear() - fakeNumber(1);
|
|
125
|
-
var courte1 = fakeNumber(1, true);
|
|
126
|
-
var courte = (courte1 === '0' ? '1' : courte1) + fakeNumber(2, true);
|
|
127
|
-
var origin = fakeNumber(4, true);
|
|
128
|
-
var judicialProcess = "".concat(num).concat(year).concat(courte).concat(origin);
|
|
129
|
-
var digits = dv(judicialProcess);
|
|
130
|
-
var finalNumber = insertAtPosition(judicialProcess, digits, 7);
|
|
131
|
-
if (withMask) return mask(finalNumber);
|
|
132
|
-
return finalNumber;
|
|
133
|
-
};
|
|
134
|
-
/**
|
|
135
|
-
* validate()
|
|
136
|
-
* Valida se um número de processo está correto
|
|
137
|
-
*
|
|
138
|
-
*/
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
var validateOrFail = function validateOrFail(value) {
|
|
142
|
-
var judicialProcess = clearValue(value, 20);
|
|
143
|
-
var processWithoutDV = removeFromPosition(judicialProcess, 7, 9);
|
|
144
|
-
|
|
145
|
-
if (processWithoutDV.substring(11, 12) === '0') {
|
|
146
|
-
throw new Error('Código do Órgão Judiciário não pode ser "0"');
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
if (dv(processWithoutDV) !== judicialProcess.substring(7, 9)) {
|
|
150
|
-
throw new Error('Dígito verificador inválido');
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return true;
|
|
154
|
-
};
|
|
155
|
-
/**
|
|
156
|
-
* validate()
|
|
157
|
-
* Valida se um número de processo está correto
|
|
158
|
-
*
|
|
159
|
-
*/
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
var validate = function validate(value) {
|
|
163
|
-
try {
|
|
164
|
-
return validateOrFail(value);
|
|
165
|
-
} catch (error) {
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
module.exports = {
|
|
171
|
-
dv: dv,
|
|
172
|
-
fake: fake,
|
|
173
|
-
mask: mask,
|
|
174
|
-
validate: validate,
|
|
175
|
-
validateOrFail: validateOrFail
|
|
176
|
-
};
|
|
177
|
-
//# sourceMappingURL=judicial-process.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/judicial-process.js"],"names":["require","clearValue","fakeNumber","insertAtPosition","applyMask","removeFromPosition","dv","value","Error","judicialProcess","number","substring","yearAndCourt","origin","String","padStart","mask","fake","withMask","num","year","Date","getFullYear","courte1","courte","digits","finalNumber","validateOrFail","processWithoutDV","validate","error","module","exports"],"mappings":"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","sourcesContent":["/**\n * judicialProcess\n * Valida, mascara e cria números de processos judiciais\n *\n * @link\n * https://juslaboris.tst.jus.br/bitstream/handle/20.500.12178/30318/2008_res0065_cnj_rep01.pdf?sequence=2\n * http://ghiorzi.org/DVnew.htm#f\n *\n * @doc\n * Os números de processos judiciais são usados a partir de 2010 para unificar a\n * numeração de processos no Brasil e são usados em todos os tribunais.\n *\n * O número do processo, sem os caracteres especiais, devem possuir até 20 números\n * e deve seguir o padrão abaixo:\n *\n * 1) Partes do número\n * 0002080-25.2012.5.15.0049\n * NNNNNNN-DD.AAAA.J.TR.OOOO\n * |______|__|____|_|__|____|\n * | | | | | |----> Unidade de origem do processo com 4 caracteres\n * | | | | |--------> TR=Tribunal do segmento do poder judiciário com 2 caracteres\n * | | | |----------> J=Órgão do poder Judiciário com 1 caractere\n * | | |-------------> Ano do ajuizamento do processo com 4 caracteres\n * | |-----------------> Dígito verificador com 2 caracteres\n * |----------------------> Número sequencial do Processo, por unidade de\n * origem, reiniciado anualmente com 7 caracteres\n *\n * Órgãos do Poder Judiciário\n * 1 - Supremo Tribunal Federal\n * 2 - Conselho Nacional de Justiça\n * 3 - Superior Tribunal de Justiça\n * 4 - Justiça Federal\n * 5 - Justiça do Trabalho\n * 6 - Justiça Eleitoral\n * 7 - Justiça Militar da União\n * 8 - Justiça dos Estados e do Distrito Federal e Territórios\n * 9 - Justiça Militar Estadual\n *\n *\n * 2) Dígito Verificador\n *\n * O algoritmo usado para o cálculo do DV chama-se Módulo 97 de Base 10 (ISO 7064).\n *\n * Nota: O número do processo possui 20 caracteres e ultrapassa o tamanho máximo\n * do inteiro em javascript, impedindo que façamos o cálculo diretamente, desta\n * forma, será nacessária uma fatoração para que o resultado seja o correto.\n *\n * 2.1) Cálculo do DV\n * - Caso o DV seja conhecido, ele precisa ser removido do número e colocado\n * como \"00\" ao final. Caso não esteja incluso no número, adicione '00' ao final.\n *\n * Ex.: O processo \"00020802520125150049\", cujo dv é \"25\", será calculado como\n * \"000208020125150049\" e receberá \"00\" ao final. O número usado para o cálculo\n * do DV será \"00020802012515004900\"\n *\n * 2.2) Etapas de Cálculo\n *\n * 00020802012515004900\n * ↓↓\n * DV ao final como \"00\"\n *\n * - Aplicamos o MOD 97 aos caracteres de 0 a 7 para calcular a primeira parte\n * part1 = 0002080 % 97 = 43\n *\n * - Concatenamos part1 ao ano, órgão do poder judiciário e tribunal e aplicamos o MOD 97\n * para obtermos o valor da part2\n * part2 = ( part1 +''+ 2012 +''+ 5 +''+ 15 ) % 97 = 26\n *\n * - Concatemos part2 ao código do órgão de origem e ao \"00\" do final e aplicamos\n * o MOD 97 ao resultado\n * part3 = ( part2 + '0049' + '00') % 97 = 73\n *\n * - Subtraímos o resultado de 98\n * dv = 98 - 73 = 25\n *\n * O Dígito verificador é 25 e deve ser aplicado após o 7º caractere do número do processo\n *\n * Fonte: https://juslaboris.tst.jus.br/bitstream/handle/20.500.12178/30318/2008_res0065_cnj_rep01.pdf?sequence=2\n */\n\nconst {\n clearValue, fakeNumber, insertAtPosition, applyMask, removeFromPosition,\n} = require('../lib/utils');\n\n/**\n *\n *\n */\nconst dv = (value) => {\n if (!value) throw new Error('Número do processo é obrigatório');\n if (typeof value !== 'string') throw new Error('Número do processo precisa ser string');\n\n const judicialProcess = clearValue(value, 18);\n\n const number = judicialProcess.substring(0, 7);\n const yearAndCourt = judicialProcess.substring(7, 14);\n const origin = judicialProcess.substring(14, 18);\n\n return String(98 - ((`${(`${number % 97}${yearAndCourt}`) % 97}${origin}00`) % 97)).padStart(2, '0');\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, '0000000-00.0000.0.00.0000');\n\n/**\n *\n *\n */\nconst fake = (withMask = false) => {\n // const judicialProcess = fakeNumber(14, true);\n const num = fakeNumber(7, true);\n const year = (new Date()).getFullYear() - fakeNumber(1);\n const courte1 = fakeNumber(1, true);\n const courte = (courte1 === '0' ? '1' : courte1) + fakeNumber(2, true);\n const origin = fakeNumber(4, true);\n\n const judicialProcess = `${num}${year}${courte}${origin}`;\n const digits = dv(judicialProcess);\n\n const finalNumber = insertAtPosition(judicialProcess, digits, 7);\n\n if (withMask) return mask(finalNumber);\n return finalNumber;\n};\n\n/**\n * validate()\n * Valida se um número de processo está correto\n *\n */\nconst validateOrFail = (value) => {\n const judicialProcess = clearValue(value, 20);\n const processWithoutDV = removeFromPosition(judicialProcess, 7, 9);\n\n if (processWithoutDV.substring(11, 12) === '0') {\n throw new Error('Código do Órgão Judiciário não pode ser \"0\"');\n }\n\n if (dv(processWithoutDV) !== judicialProcess.substring(7, 9)) {\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":"judicial-process.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/pis-pasep.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","clearValue","fakeNumber","applyMask","dv","value","Error","pis","invalidList","includes","sum","String","mask","fake","withMask","num","validateOrFail","substring","validate","error","module","exports"],"mappings":"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","sourcesContent":["/**\n * isPIS()\n * Calcula se um código de PIS/PASEP/NIS/NIT no formato 268.27649.96-0 é válido. Não\n * valida o formato, portanto, 26827649960 é equivalente a 268.27649.96-0 para efeitos\n * desta validação.\n *\n * @doc\n * - O número de PIS deve possuir 11 caracteres\n *\n * - Os caracteres de 1 a 10 são a numeração documento\n *\n * - O caractere 11 é o dígito verificador.\n *\n * 1) Partes do número\n * _______________________________________________\n * | Número | D V |\n * | 2 6 8 . 2 7 6 4 9 . 9 6 - 0 |\n * |_________________________________________|_____|\n *\n * 2) Cálculo do DV.\n *\n * - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 6 8 2 7 6 4 9 9 6\n * x x x x x x x x x x\n * 3 2 9 8 7 6 5 4 3 2\n * = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 234\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.\n * Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.\n * Caso retorne 1, o resto será 0\n *\n *\n *\n *\n * Fonte: http://www.macoratti.net/alg_pis.htm\n *\n * @param {String} value Objeto postal no formato 268.27649.96-0\n * @returns {Boolean}\n */\n\nconst {\n invalidListGenerator,\n sumElementsByMultipliers, sumToDV,\n clearValue, fakeNumber, applyMask,\n} = require('../lib/utils');\n\n/**\n * dv()\n * Calcula o dígito verificador de um PIS\n *\n * @param {Number|String} value\n * @returns {String}\n */\nconst dv = (value = '') => {\n if (!value) throw new Error('PIS não informado');\n\n const pis = clearValue(value, 10);\n\n const invalidList = invalidListGenerator(10);\n if (invalidList.includes(pis)) {\n throw new Error('PIS não pode ser uma sequência de números iguais');\n }\n\n const sum = sumElementsByMultipliers(pis, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);\n\n return String(sumToDV(sum));\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.00000.00-0');\n\n/**\n * fake()\n * Gera um número válido\n *\n * @returns {String}\n */\nconst fake = (withMask = false) => {\n const num = fakeNumber(10, true);\n\n const pis = `${num}${dv(num)}`;\n\n if (withMask) return mask(pis);\n return pis;\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 pis = clearValue(value, 11);\n\n if (dv(pis) !== pis.substring(10, 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":"pis-pasep.js"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* isPostalCode()
|
|
5
|
-
* Calcula se um código de rastreamento postal no formato JT194690698BR é válido.
|
|
6
|
-
*
|
|
7
|
-
* @doc
|
|
8
|
-
* - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.
|
|
9
|
-
*
|
|
10
|
-
* - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.
|
|
11
|
-
*
|
|
12
|
-
* - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.
|
|
13
|
-
*
|
|
14
|
-
* - O caractere 11 é o dígito verificador.
|
|
15
|
-
*
|
|
16
|
-
* - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.
|
|
17
|
-
*
|
|
18
|
-
* 1) Partes do número
|
|
19
|
-
* ______ ___________________________ ______ _______
|
|
20
|
-
* | Tipo | Número | DV | País |
|
|
21
|
-
* | J T 1 9 4 6 9 0 6 9 8 B R |
|
|
22
|
-
* |______|___________________________|______|_______|
|
|
23
|
-
*
|
|
24
|
-
* 2) Cálculo do DV.
|
|
25
|
-
*
|
|
26
|
-
* - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7
|
|
27
|
-
*
|
|
28
|
-
* 1 9 4 6 9 0 6 9
|
|
29
|
-
* x x x x x x x x
|
|
30
|
-
* 8 6 4 2 3 5 9 7
|
|
31
|
-
* = 8 +54 +16 +12 +18 +0 +54 +63 = 234
|
|
32
|
-
*
|
|
33
|
-
* - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
|
|
34
|
-
* 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
|
|
35
|
-
* Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
|
|
36
|
-
* Caso retorne 1, o resto será 0
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* Fonte:
|
|
42
|
-
*
|
|
43
|
-
* @param {String} value Objeto postal no formato JT194690698BR
|
|
44
|
-
* @returns {Boolean}
|
|
45
|
-
*/
|
|
46
|
-
var _require = require('../lib/utils'),
|
|
47
|
-
sumElementsByMultipliers = _require.sumElementsByMultipliers,
|
|
48
|
-
clearValue = _require.clearValue,
|
|
49
|
-
fakeNumber = _require.fakeNumber;
|
|
50
|
-
/**
|
|
51
|
-
* dv()
|
|
52
|
-
* Calcula o dígito verificador de um Objeto Postal
|
|
53
|
-
*
|
|
54
|
-
* @param {Number|String} value
|
|
55
|
-
* @returns {String}
|
|
56
|
-
*/
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
var dv = function dv(value) {
|
|
60
|
-
if (!value) throw new Error('PIS não informado');
|
|
61
|
-
var postalCode = clearValue(value, 8);
|
|
62
|
-
var sum = sumElementsByMultipliers(postalCode, [8, 6, 4, 2, 3, 5, 9, 7]);
|
|
63
|
-
var rest = sum % 11;
|
|
64
|
-
var specificities = {
|
|
65
|
-
0: {
|
|
66
|
-
dv: 5
|
|
67
|
-
},
|
|
68
|
-
1: {
|
|
69
|
-
dv: 0
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
var DV = specificities[rest] ? specificities[rest].dv : 11 - rest;
|
|
73
|
-
return String(DV);
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* Aplica uma máscara ao número informado
|
|
77
|
-
*
|
|
78
|
-
* @param {String} value Número de Processo
|
|
79
|
-
* @returns {String} Valor com a máscara
|
|
80
|
-
*/
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
var mask = function mask(value) {
|
|
84
|
-
return String(value).toLocaleUpperCase();
|
|
85
|
-
};
|
|
86
|
-
/**
|
|
87
|
-
* fake()
|
|
88
|
-
* Gera um número válido
|
|
89
|
-
*
|
|
90
|
-
* @returns {String}
|
|
91
|
-
*/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
var fake = function fake() {
|
|
95
|
-
var withMask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
96
|
-
var num = fakeNumber(8, true);
|
|
97
|
-
|
|
98
|
-
var randLetter = function randLetter() {
|
|
99
|
-
return ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'][parseInt(Math.random() * 26, 10)];
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
var postalCode = "".concat(randLetter()).concat(randLetter()).concat(num).concat(dv(num), "BR");
|
|
103
|
-
if (withMask) return mask(postalCode);
|
|
104
|
-
return postalCode;
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* validateOrFail()
|
|
108
|
-
* Valida se um número de processo está correto e
|
|
109
|
-
* retorna uma exceção se não estiver
|
|
110
|
-
*
|
|
111
|
-
* @returns {Boolean}
|
|
112
|
-
*/
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
var validateOrFail = function validateOrFail(value) {
|
|
116
|
-
var postalCode = clearValue(value, 9);
|
|
117
|
-
|
|
118
|
-
if (!/^[a-z]{2}([\d]{9})[a-z]{2}$/ig.test(value)) {
|
|
119
|
-
throw new Error('O número não está no formato "XX000000000XX"');
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (dv(value) !== postalCode.substring(8, 9)) {
|
|
123
|
-
throw new Error('Dígito verificador inválido');
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return true;
|
|
127
|
-
};
|
|
128
|
-
/**
|
|
129
|
-
* validate()
|
|
130
|
-
* Valida se um número de processo está correto
|
|
131
|
-
*
|
|
132
|
-
* @returns {Boolean}
|
|
133
|
-
*/
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
var validate = function validate(value) {
|
|
137
|
-
try {
|
|
138
|
-
return validateOrFail(value);
|
|
139
|
-
} catch (error) {
|
|
140
|
-
return false;
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
module.exports = {
|
|
145
|
-
dv: dv,
|
|
146
|
-
fake: fake,
|
|
147
|
-
mask: mask,
|
|
148
|
-
validate: validate,
|
|
149
|
-
validateOrFail: validateOrFail
|
|
150
|
-
};
|
|
151
|
-
//# sourceMappingURL=postal-code.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/postal-code.js"],"names":["require","sumElementsByMultipliers","clearValue","fakeNumber","dv","value","Error","postalCode","sum","rest","specificities","DV","String","mask","toLocaleUpperCase","fake","withMask","num","randLetter","parseInt","Math","random","validateOrFail","test","substring","validate","error","module","exports"],"mappings":"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","sourcesContent":["/**\n * isPostalCode()\n * Calcula se um código de rastreamento postal no formato JT194690698BR é válido.\n *\n * @doc\n * - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.\n *\n * - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.\n *\n * - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.\n *\n * - O caractere 11 é o dígito verificador.\n *\n * - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.\n *\n * 1) Partes do número\n * ______ ___________________________ ______ _______\n * | Tipo | Número | DV | País |\n * | J T 1 9 4 6 9 0 6 9 8 B R |\n * |______|___________________________|______|_______|\n *\n * 2) Cálculo do DV.\n *\n * - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7\n *\n * 1 9 4 6 9 0 6 9\n * x x x x x x x x\n * 8 6 4 2 3 5 9 7\n * = 8 +54 +16 +12 +18 +0 +54 +63 = 234\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.\n * Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.\n * Caso retorne 1, o resto será 0\n *\n *\n *\n *\n * Fonte:\n *\n * @param {String} value Objeto postal no formato JT194690698BR\n * @returns {Boolean}\n */\n\nconst {\n sumElementsByMultipliers,\n clearValue, fakeNumber,\n} = require('../lib/utils');\n\n/**\n * dv()\n * Calcula o dígito verificador de um Objeto Postal\n *\n * @param {Number|String} value\n * @returns {String}\n */\nconst dv = (value) => {\n if (!value) throw new Error('PIS não informado');\n\n const postalCode = clearValue(value, 8);\n\n const sum = sumElementsByMultipliers(postalCode, [8, 6, 4, 2, 3, 5, 9, 7]);\n\n const rest = sum % 11;\n const specificities = { 0: { dv: 5 }, 1: { dv: 0 } };\n const DV = specificities[rest] ? specificities[rest].dv : 11 - rest;\n\n return String(DV);\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) => String(value).toLocaleUpperCase();\n\n/**\n * fake()\n * Gera um número válido\n *\n * @returns {String}\n */\nconst fake = (withMask = false) => {\n const num = fakeNumber(8, true);\n\n const randLetter = () => ([\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ][parseInt(Math.random() * 26, 10)]);\n\n const postalCode = `${randLetter()}${randLetter()}${num}${dv(num)}BR`;\n\n if (withMask) return mask(postalCode);\n return postalCode;\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 postalCode = clearValue(value, 9);\n\n if (!/^[a-z]{2}([\\d]{9})[a-z]{2}$/ig.test(value)) {\n throw new Error('O número não está no formato \"XX000000000XX\"');\n }\n\n if (dv(value) !== postalCode.substring(8, 9)) {\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":"postal-code.js"}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.fake = exports.mask = exports.validate = exports.validateOrFail = exports.dv = void 0;
|
|
7
|
-
|
|
8
|
-
var _require = require('../lib/utils'),
|
|
9
|
-
sumElementsByMultipliers = _require.sumElementsByMultipliers,
|
|
10
|
-
fakeNumber = _require.fakeNumber,
|
|
11
|
-
applyMask = _require.applyMask,
|
|
12
|
-
clearValue = _require.clearValue;
|
|
13
|
-
/**
|
|
14
|
-
* Calcula o Dígito Verificador de um RENAVAM informado
|
|
15
|
-
*
|
|
16
|
-
* @returns String Número fake de um renavam válido
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var dv = function dv() {
|
|
21
|
-
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
22
|
-
if (!value) throw new Error('Renavam não informado');
|
|
23
|
-
var renavam = clearValue(value, 10); // só 10 para remover o DV
|
|
24
|
-
|
|
25
|
-
var sum1 = sumElementsByMultipliers(renavam, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]) * 10;
|
|
26
|
-
var dv1 = sum1 % 11 >= 10 ? 0 : sum1 % 11;
|
|
27
|
-
return dv1;
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* Valida um número de renavam e retorna uma exceção caso seja inválido
|
|
31
|
-
*
|
|
32
|
-
* @returns String Número fake de um renavam válido
|
|
33
|
-
*/
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
exports.dv = dv;
|
|
37
|
-
|
|
38
|
-
var validateOrFail = function validateOrFail() {
|
|
39
|
-
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
40
|
-
var renavam = clearValue(value, 11);
|
|
41
|
-
|
|
42
|
-
if (dv(renavam) !== +renavam.substring(10, 11)) {
|
|
43
|
-
throw new Error('Dígito verificador inválido');
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return true;
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* Valida um número de renavam
|
|
50
|
-
*
|
|
51
|
-
* @returns String Valor a ser validado
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
exports.validateOrFail = validateOrFail;
|
|
56
|
-
|
|
57
|
-
var validate = function validate() {
|
|
58
|
-
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
59
|
-
|
|
60
|
-
try {
|
|
61
|
-
return validateOrFail(value);
|
|
62
|
-
} catch (error) {
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* Aplica uma máscara a uma string
|
|
68
|
-
*
|
|
69
|
-
* @returns String string com a máscara aplicada
|
|
70
|
-
*/
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
exports.validate = validate;
|
|
74
|
-
|
|
75
|
-
var mask = function mask() {
|
|
76
|
-
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
77
|
-
return applyMask(value, '0000000000-0');
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* Cria um número fake
|
|
81
|
-
*
|
|
82
|
-
* @returns String Número fake porém válido
|
|
83
|
-
*/
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
exports.mask = mask;
|
|
87
|
-
|
|
88
|
-
var fake = function fake() {
|
|
89
|
-
var withMask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
90
|
-
var value = fakeNumber(10, true);
|
|
91
|
-
var renavam = "".concat(value).concat(dv(value));
|
|
92
|
-
if (withMask) return mask(renavam);
|
|
93
|
-
return renavam;
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
exports.fake = fake;
|
|
97
|
-
//# sourceMappingURL=renavam.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/renavam.js"],"names":["require","sumElementsByMultipliers","fakeNumber","applyMask","clearValue","dv","value","Error","renavam","sum1","dv1","validateOrFail","substring","validate","error","mask","fake","withMask"],"mappings":";;;;;;;AAAA,eAEIA,OAAO,CAAC,cAAD,CAFX;AAAA,IACEC,wBADF,YACEA,wBADF;AAAA,IAC4BC,UAD5B,YAC4BA,UAD5B;AAAA,IACwCC,SADxC,YACwCA,SADxC;AAAA,IACmDC,UADnD,YACmDA,UADnD;AAIA;AACA;AACA;AACA;AACA;;;AACO,IAAMC,EAAE,GAAG,SAALA,EAAK,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AAChC,MAAI,CAACA,KAAL,EAAY,MAAM,IAAIC,KAAJ,CAAU,uBAAV,CAAN;AAEZ,MAAMC,OAAO,GAAGJ,UAAU,CAACE,KAAD,EAAQ,EAAR,CAA1B,CAHgC,CAGO;;AAEvC,MAAMG,IAAI,GAAGR,wBAAwB,CAACO,OAAD,EAAU,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,CAA5B,CAAV,CAAxB,GAAoE,EAAjF;AACA,MAAME,GAAG,GAAID,IAAI,GAAG,EAAR,IAAe,EAAf,GAAoB,CAApB,GAAwBA,IAAI,GAAG,EAA3C;AACA,SAAOC,GAAP;AACD,CARM;AAUP;AACA;AACA;AACA;AACA;;;;;AACO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAgB;AAAA,MAAfL,KAAe,uEAAP,EAAO;AAC5C,MAAME,OAAO,GAAGJ,UAAU,CAACE,KAAD,EAAQ,EAAR,CAA1B;;AAEA,MAAID,EAAE,CAACG,OAAD,CAAF,KAAgB,CAAEA,OAAO,CAACI,SAAR,CAAkB,EAAlB,EAAsB,EAAtB,CAAtB,EAAkD;AAChD,UAAM,IAAIL,KAAJ,CAAU,6BAAV,CAAN;AACD;;AAED,SAAO,IAAP;AACD,CARM;AAUP;AACA;AACA;AACA;AACA;;;;;AACO,IAAMM,QAAQ,GAAG,SAAXA,QAAW,GAAgB;AAAA,MAAfP,KAAe,uEAAP,EAAO;;AACtC,MAAI;AACF,WAAOK,cAAc,CAACL,KAAD,CAArB;AACD,GAFD,CAEE,OAAOQ,KAAP,EAAc;AACd,WAAO,KAAP;AACD;AACF,CANM;AAQP;AACA;AACA;AACA;AACA;;;;;AACO,IAAMC,IAAI,GAAG,SAAPA,IAAO;AAAA,MAACT,KAAD,uEAAS,EAAT;AAAA,SAAgBH,SAAS,CAACG,KAAD,EAAQ,cAAR,CAAzB;AAAA,CAAb;AAEP;AACA;AACA;AACA;AACA;;;;;AACO,IAAMU,IAAI,GAAG,SAAPA,IAAO,GAAsB;AAAA,MAArBC,QAAqB,uEAAV,KAAU;AACxC,MAAMX,KAAK,GAAGJ,UAAU,CAAC,EAAD,EAAK,IAAL,CAAxB;AAEA,MAAMM,OAAO,aAAMF,KAAN,SAAcD,EAAE,CAACC,KAAD,CAAhB,CAAb;AAEA,MAAIW,QAAJ,EAAc,OAAOF,IAAI,CAACP,OAAD,CAAX;AAEd,SAAOA,OAAP;AACD,CARM","sourcesContent":["const {\n sumElementsByMultipliers, fakeNumber, applyMask, clearValue,\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 renavam válido\n */\nexport const dv = (value = '') => {\n if (!value) throw new Error('Renavam não informado');\n\n const renavam = clearValue(value, 10); // só 10 para remover o DV\n\n const sum1 = sumElementsByMultipliers(renavam, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]) * 10;\n const dv1 = (sum1 % 11) >= 10 ? 0 : sum1 % 11;\n return dv1;\n};\n\n/**\n * Valida um número de renavam e retorna uma exceção caso seja inválido\n *\n * @returns String Número fake de um renavam válido\n */\nexport const validateOrFail = (value = '') => {\n const renavam = clearValue(value, 11);\n\n if (dv(renavam) !== +(renavam.substring(10, 11))) {\n throw new Error('Dígito verificador inválido');\n }\n\n return true;\n};\n\n/**\n * Valida um número de renavam\n *\n * @returns String Valor a ser validado\n */\nexport const 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 */\nexport const mask = (value = '') => applyMask(value, '0000000000-0');\n\n/**\n * Cria um número fake\n *\n * @returns String Número fake porém válido\n */\nexport const fake = (withMask = false) => {\n const value = fakeNumber(10, true);\n\n const renavam = `${value}${dv(value)}`;\n\n if (withMask) return mask(renavam);\n\n return renavam;\n};\n"],"file":"renavam.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/documents/titulo-eleitor.js"],"names":["require","sumElementsByMultipliers","clearValue","fakeNumber","applyMask","invalidListGenerator","dv","value","Error","titulo","invalidList","includes","sum1","substring","dv1","sum2","dv2","mask","fake","withMask","num","uf","String","parseInt","Math","random","padStart","validateOrFail","validate","error","module","exports"],"mappings":"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","sourcesContent":["/**\n * isTitulo()\n * Calcula se um título eleitoral é válido\n *\n * @doc\n * Título de eleitor deve possuir 12 dígitos.\n *\n * - Os caracteres 1 a 8 são números sequenciais.\n *\n * - Os caracteres 9 e 10 representam os estados da federação onde o título\n * foi emitido (01 = SP, 02 = MG, 03 = RJ, 04 = RS, 05 = BA, 06 = PR, 07 = CE, 08 = PE,\n * 09 = SC, 10 = GO, 11 = MA12 = PB, 13 = PA, 14 = ES, 15 = PI, 16 = RN, 17 = AL,\n * 18 = MT, 19 = MS, 20 = DF, 21 = SE, 22 = AM, 23 = RO, 24 = AC, 25 = AP, 26 = RR,\n * 27 = TO, 28 = Exterior(ZZ).\n *\n * - Os caracteres 11 e 12 são dígitos verificadores.\n *\n * 1) Partes do número\n * ------------------------------------------------\n * | Número Sequencial | UF | DV |\n * 1 0 2 3 8 5 0 1 0 6 7 1\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 8 pelos números 2, 3, 4, 5, 6, 7, 8 e 9.\n *\n * 1 0 2 3 8 5 0 1\n * x x x x x x x x\n * 2 3 4 5 6 7 8 9\n * = 2 + 0 + 8 +15 +48 +35 + 0 + 9 = 117\n *\n * - O somatório encontrado é dividido por 11. O DV1 é o resto da divisão. Se o\n * resto for 10, o DV1 é 0.\n *\n * 2.1) 117 / 11 tem resto igual a 7.\n *\n * 3) Cálculo do segundo DV\n *\n * - Soma-se o produto dos algarismos 9 a 11 (relativos aos 2 dígitos da UF e o novo\n * DV1 que acabou de ser calculado) e os multiplicam pelos números 7, 8 e 9. Se o\n * resto for 10, DV2 será 0.\n * 0 6 7\n * x x x\n * 7 8 9\n * = 0 +48 +63 = 111\n *\n * 3.1) 111 / 11 tem resto igual a 1.\n *\n * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\n\nconst {\n sumElementsByMultipliers,\n clearValue, fakeNumber, applyMask,\n invalidListGenerator,\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 titulo = clearValue(value, 10);\n\n const invalidList = invalidListGenerator(10);\n if (invalidList.includes(titulo)) {\n throw new Error('Título não pode ser uma sequência de números iguais');\n }\n\n const sum1 = sumElementsByMultipliers(titulo.substring(0, 8), [2, 3, 4, 5, 6, 7, 8, 9]);\n const dv1 = (sum1 % 11) >= 10 ? 0 : sum1 % 11;\n\n const sum2 = sumElementsByMultipliers(titulo.substring(8, 10) + dv1, [7, 8, 9]);\n const dv2 = (sum2 % 11) >= 10 ? 0 : sum2 % 11;\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, '0000.0000.0000');\n\n/**\n * fake()\n * Gera um número válido\n *\n * @returns {String}\n */\nconst fake = (withMask = false) => {\n const num = fakeNumber(8, true);\n\n const uf = String(parseInt(Math.random() * 27 + 1, 10)).padStart(2, '0');\n\n const titulo = `${num}${uf}${dv(num + uf)}`;\n\n if (withMask) return mask(titulo);\n return titulo;\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 titulo = clearValue(value, 12);\n\n if (dv(titulo) !== titulo.substring(10, 12)) {\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":"titulo-eleitor.js"}
|
package/dist/lib/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/utils.js"],"names":["sumToDV","sum","invalidListGenerator","size","Array","keys","map","f","String","repeat","sumElementsByMultipliers","value","multiplier","isArray","split","reduce","accu","curr","i","Number","charAt","fakeNumber","length","forceLength","parseInt","Math","random","padStart","clearValue","clearedValue","replace","substring","insertAtPosition","insertValue","position","removeFromPosition","startPosition","endPosition","slice","join","applyMask","mask","maskLen","masked","specialChars","current","includes","module","exports"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAT,CAAiBC,GAAjB,EAAsB;AACpB,SAAOA,GAAG,GAAG,EAAN,GAAW,CAAX,GAAe,CAAf,GAAmB,KAAMA,GAAG,GAAG,EAAtC;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,oBAAT,CAA8BC,IAA9B,EAAoC;AAClC,SAAO,iCAAIC,KAAK,CAAC,EAAD,CAAL,CAAUC,IAAV,EAAJ,EAAsBC,GAAtB,CAA0B,UAACC,CAAD;AAAA,WAAOC,MAAM,CAACD,CAAD,CAAN,CAAUE,MAAV,CAAiBN,IAAjB,CAAP;AAAA,GAA1B,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASO,wBAAT,CAAkCC,KAAlC,EAAyCC,UAAzC,EAAqD;AACnD,SAAO,CAACR,KAAK,CAACS,OAAN,CAAcD,UAAd,IAA4BA,UAA5B,GAAyCA,UAAU,CAACE,KAAX,CAAiB,EAAjB,CAA1C,EACJC,MADI,CACG,UAACC,IAAD,EAAOC,IAAP,EAAaC,CAAb;AAAA,WAAmBF,IAAI,GAAIC,IAAI,GAAGE,MAAM,CAACR,KAAK,CAACS,MAAN,CAAaF,CAAb,CAAD,CAAxC;AAAA,GADH,EAC+D,CAD/D,CAAP;AAED;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,UAAT,CAAoBC,MAApB,EAAiD;AAAA,MAArBC,WAAqB,uEAAP,KAAO;AAC/C,MAAMZ,KAAK,GAAGa,QAAQ,CAACC,IAAI,CAACC,MAAL,cAAiB,EAAjB,EAAuBJ,MAAvB,CAAD,EAAiC,EAAjC,CAAtB;AAEA,MAAIC,WAAJ,EAAiB,OAAOf,MAAM,CAACG,KAAD,CAAN,CAAcgB,QAAd,CAAuBL,MAAvB,EAA+B,GAA/B,CAAP;AAEjB,SAAOX,KAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiB,UAAT,CAAoBjB,KAApB,EAA0C;AAAA,MAAfW,MAAe,uEAAN,IAAM;AACxC,MAAMO,YAAY,GAAGrB,MAAM,CAACG,KAAD,CAAN,CAAcmB,OAAd,CAAsB,YAAtB,EAAoC,EAApC,CAArB;AAEA,MAAI,CAACR,MAAD,IAAWO,YAAY,CAACP,MAAb,KAAwBA,MAAvC,EAA+C,OAAOO,YAAP;AAE/C,MAAIA,YAAY,CAACP,MAAb,GAAsBA,MAA1B,EAAkC,OAAOO,YAAY,CAACE,SAAb,CAAuB,CAAvB,EAA0BT,MAA1B,CAAP;AAClC,SAAOO,YAAY,CAACF,QAAb,CAAsBL,MAAtB,EAA8B,GAA9B,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASU,gBAAT,CAA0BrB,KAA1B,EAAiCsB,WAAjC,EAA8CC,QAA9C,EAAwD;AACtD,mBAAUvB,KAAK,CAACoB,SAAN,CAAgB,CAAhB,EAAmBG,QAAnB,CAAV,SAAyCD,WAAzC,SAAuDtB,KAAK,CAACoB,SAAN,CAAgBG,QAAhB,CAAvD;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,kBAAT,CAA4BxB,KAA5B,EAAmCyB,aAAnC,EAAkDC,WAAlD,EAA+D;AAC7D,SAAO,CAAC1B,KAAK,CAAC2B,KAAN,CAAY,CAAZ,EAAeF,aAAf,CAAD,EAAgCzB,KAAK,CAAC2B,KAAN,CAAYD,WAAZ,CAAhC,EAA0DE,IAA1D,CAA+D,EAA/D,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,SAAT,CAAmB7B,KAAnB,EAA0B8B,IAA1B,EAAgC;AAC9B,MAAMC,OAAO,GAAGd,UAAU,CAACa,IAAD,CAAV,CAAiBnB,MAAjC;AACA,MAAIqB,MAAM,GAAGf,UAAU,CAACjB,KAAD,EAAQ+B,OAAR,CAAvB;AACA,MAAME,YAAY,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,CAArB;;AAEA,OAAK,IAAIV,QAAQ,GAAG,CAApB,EAAuBA,QAAQ,GAAGO,IAAI,CAACnB,MAAvC,EAA+CY,QAAQ,IAAI,CAA3D,EAA8D;AAC5D,QAAMW,OAAO,GAAGJ,IAAI,CAACP,QAAD,CAApB;AACA,QAAIU,YAAY,CAACE,QAAb,CAAsBD,OAAtB,CAAJ,EAAoCF,MAAM,GAAGX,gBAAgB,CAACW,MAAD,EAASE,OAAT,EAAkBX,QAAlB,CAAzB;AACrC;;AAED,SAAOS,MAAP;AACD;;AAEDI,MAAM,CAACC,OAAP,GAAiB;AACfhD,EAAAA,OAAO,EAAPA,OADe;AAEfE,EAAAA,oBAAoB,EAApBA,oBAFe;AAGfQ,EAAAA,wBAAwB,EAAxBA,wBAHe;AAIfW,EAAAA,UAAU,EAAVA,UAJe;AAKfmB,EAAAA,SAAS,EAATA,SALe;AAMfZ,EAAAA,UAAU,EAAVA,UANe;AAOfI,EAAAA,gBAAgB,EAAhBA,gBAPe;AAQfG,EAAAA,kBAAkB,EAAlBA;AARe,CAAjB","sourcesContent":["/**\n * Calcula o DV verificador a partir das regras do MOD11:\n * O valor da soma é dividido por 11. O resultado é o resto da divisão. Caso o resto seja\n * menor que 2, ou seja, o valor da divisão seja 10 ou 11, o resultado é 0.\n *\n * @param {Integer} sum Soma\n */\nfunction sumToDV(sum) {\n return sum % 11 < 2 ? 0 : 11 - (sum % 11);\n}\n\n/**\n * Cria uma lista de valores repetidos no tamanho do documento para eliminar\n * valores que já conhecemos como inválidos\n *\n * @example\n * invalidListGenerator(10, 11)\n * //-> [00000000000, 11111111111, ....., 99999999999]\n *\n * @param {Integer} length Número de itens do array\n * @param {Integer} size Tamanho da string gerada\n * @returns {Array} Lista de valores\n */\nfunction invalidListGenerator(size) {\n return [...Array(10).keys()].map((f) => String(f).repeat(size));\n}\n\n/**\n * Soma os elementos de uma string com os elementos de outra, ou de um array\n * @example\n * sumElementsByMultipliers('123', '987') //-> 46\n * sumElementsByMultipliers('123', [9, 8, 7]) //-> 46\n *\n * @param {String} value\n * @param {String|Array} multiplier\n * @returns {Integer} Somatório\n */\nfunction sumElementsByMultipliers(value, multiplier) {\n return (Array.isArray(multiplier) ? multiplier : multiplier.split(''))\n .reduce((accu, curr, i) => accu + (curr * Number(value.charAt(i))), 0);\n}\n\n/**\n * fakeNumber()\n * Cria um número aleatório com o número de caracteres\n *\n * @example\n * fakeNumber(8, true) // -> 00083159\n * fakeNumber(4) // -> 831\n *\n * @param {Integer} length\n * @param {Boolean} forceLength Adiciona zeros à esquerda para ter os números de caractes exatos\n * @returns {String}\n */\nfunction fakeNumber(length, forceLength = false) {\n const value = parseInt(Math.random() * (10 ** length), 10);\n\n if (forceLength) return String(value).padStart(length, '0');\n\n return value;\n}\n\n/**\n * Limpa um número informado, retirando caracteres diferentes de números,\n * preenchendo com zeros à esquerda se for menor que o tamanho exato e\n * removendo uma parte do número se for maior que tamanho definido.\n *\n * 1) Retira caracteres não-numéricos\n * 2) Preenche com zeros à esquerda se 'value' for menor que 'length'\n * 3) Remove caracteres à direita se 'value' for maior que 'length'\n *\n * @example\n * clearValue(12345-6, 6) // -> 123456\n * clearValue(12345678, 3) // -> 123\n * clearValue(12345, 10) // -> 0000001234\n *\n * @param {Number|String} value\n * @param {Number} length Tamanho exato. Se for null, só retira os caracteres não-numéricos\n * @returns {String} Número com o tamanho exato\n */\nfunction clearValue(value, length = null) {\n const clearedValue = String(value).replace(/([^\\d]+)/ig, '');\n\n if (!length || clearedValue.length === length) return clearedValue;\n\n if (clearedValue.length > length) return clearedValue.substring(0, length);\n return clearedValue.padStart(length, '0');\n}\n\n/**\n * insertAtPosition()\n * Insere um conjunto de caracteres em um local específico de uma string\n *\n * @example\n * insertAtPosition('AAABBB', 'C', 3) // -> AAACBBB\n * insertAtPosition('000011122223445555', 99, 7) // -> 00001119922223445555\n *\n * @param {String|Number} value Valor original\n * @param {String|Number} insertValue Valor que será inserido\n * @param {String|Number} position Posição que receberá o novo valor\n * @returns {String}\n *\n */\nfunction insertAtPosition(value, insertValue, position) {\n return `${value.substring(0, position)}${insertValue}${value.substring(position)}`;\n}\n\n/**\n * removeFromPosition()\n * Retira um conjunto de caracteres de um local específico de uma string\n *\n * @example\n * removeFromPosition('00001119922223445555', 7,9) // -> 000011122223445555\n * removeFromPosition('AAACBBB', 3,4) // -> AAABBB\n *\n * @param {String|Number} value Valor original\n * @param {String|Number} startPosition\n * @param {String|Number} endPosition\n * @returns {String}\n *\n */\nfunction removeFromPosition(value, startPosition, endPosition) {\n return [value.slice(0, startPosition), value.slice(endPosition)].join('');\n}\n\n/**\n * applyMask()\n * Aplica uma máscara a uma string\n *\n * @example\n * applyMask('59650000', '00.000-000') // -> 59.650-000\n * applyMask('99877665544', '(00) 0 0000-0000') // -> (99) 8 7766-5544\n *\n * @param {String|Number} value Valor original\n * @param {String} mask\n * @returns {String}\n *\n */\nfunction applyMask(value, mask) {\n const maskLen = clearValue(mask).length;\n let masked = clearValue(value, maskLen);\n const specialChars = ['/', '-', '.', '(', ')', ' '];\n\n for (let position = 0; position < mask.length; position += 1) {\n const current = mask[position];\n if (specialChars.includes(current)) masked = insertAtPosition(masked, current, position);\n }\n\n return masked;\n}\n\nmodule.exports = {\n sumToDV,\n invalidListGenerator,\n sumElementsByMultipliers,\n fakeNumber,\n applyMask,\n clearValue,\n insertAtPosition,\n removeFromPosition,\n};\n"],"file":"utils.js"}
|
package/docs.md
DELETED
|
File without changes
|
package/index.js
DELETED