validation-br 1.6.3 → 1.6.5
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/dist/cnh.d.ts +1 -1
- package/dist/cnh.js +1 -1
- package/dist/cnpj.d.ts +1 -1
- package/dist/cnpj.js +1 -1
- package/{.publish/dist → dist/esm}/_exceptions/ValidationBRError.js +1 -3
- package/dist/esm/_exceptions/ValidationBRError.js.map +1 -0
- package/{.publish/dist/cnh.d.ts → dist/esm/cnh.js} +46 -7
- package/dist/esm/cnh.js.map +1 -0
- package/{.publish/dist → dist/esm}/cnpj.js +17 -29
- package/dist/esm/cnpj.js.map +1 -0
- package/{.publish/dist/cpf.d.ts → dist/esm/cpf.js} +45 -6
- package/dist/esm/cpf.js.map +1 -0
- package/dist/esm/index.js +33 -0
- package/dist/esm/index.js.map +1 -0
- package/{.publish/dist → dist/esm}/judicialProcess.js +25 -38
- package/dist/esm/judicialProcess.js.map +1 -0
- package/{.publish/dist → dist/esm}/nup17.js +24 -32
- package/dist/esm/nup17.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/phone.js +123 -0
- package/dist/esm/phone.js.map +1 -0
- package/{.publish/dist/pisPasep.d.ts → dist/esm/pisPasep.js} +46 -11
- package/dist/esm/pisPasep.js.map +1 -0
- package/{.publish/dist → dist/esm}/postalCode.js +18 -30
- package/dist/esm/postalCode.js.map +1 -0
- package/{.publish/dist → dist/esm}/renavam.js +22 -34
- package/dist/esm/renavam.js.map +1 -0
- package/{.publish/dist → dist/esm}/tituloEleitor.js +21 -33
- package/dist/esm/tituloEleitor.js.map +1 -0
- package/{.publish/dist → dist/esm}/utils.js +14 -28
- package/dist/esm/utils.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/nup17.js +6 -2
- package/dist/nup17.js.map +1 -1
- package/dist/phone.d.ts +71 -0
- package/dist/phone.js +134 -0
- package/dist/phone.js.map +1 -0
- package/dist/pisPasep.d.ts +4 -5
- package/dist/pisPasep.js +4 -5
- package/dist/pisPasep.js.map +1 -1
- package/dist/postalCode.d.ts +1 -1
- package/dist/postalCode.js +1 -1
- package/dist/renavam.d.ts +3 -3
- package/dist/renavam.js +3 -3
- package/dist/utils.js +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +26 -5
- package/readme.md +32 -0
- package/.prettierignore +0 -1
- package/.prettierrc.js +0 -7
- package/.publish/dist/_exceptions/ValidationBRError.d.ts +0 -7
- package/.publish/dist/_exceptions/ValidationBRError.js.map +0 -1
- package/.publish/dist/cnh.js +0 -149
- package/.publish/dist/cnh.js.map +0 -1
- package/.publish/dist/cnpj.d.ts +0 -121
- package/.publish/dist/cnpj.js.map +0 -1
- package/.publish/dist/cpf.js +0 -157
- package/.publish/dist/cpf.js.map +0 -1
- package/.publish/dist/index.d.ts +0 -21
- package/.publish/dist/index.js +0 -42
- package/.publish/dist/index.js.map +0 -1
- package/.publish/dist/judicialProcess.d.ts +0 -133
- package/.publish/dist/judicialProcess.js.map +0 -1
- package/.publish/dist/nup17.d.ts +0 -103
- package/.publish/dist/nup17.js.map +0 -1
- package/.publish/dist/pisPasep.js +0 -136
- package/.publish/dist/pisPasep.js.map +0 -1
- package/.publish/dist/postalCode.d.ts +0 -92
- package/.publish/dist/postalCode.js.map +0 -1
- package/.publish/dist/renavam.d.ts +0 -82
- package/.publish/dist/renavam.js.map +0 -1
- package/.publish/dist/tituloEleitor.d.ts +0 -100
- package/.publish/dist/tituloEleitor.js.map +0 -1
- package/.publish/dist/utils.d.ts +0 -131
- package/.publish/dist/utils.js.map +0 -1
- package/.publish/package-lock.json +0 -4372
- package/.publish/package.json +0 -112
- package/.publish/readme.md +0 -492
- package/eslint.config.js +0 -82
- package/jest.config.js +0 -11
- package/publish.sh +0 -31
- package/tsconfig.json +0 -25
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* isFederalProtocol()
|
|
4
3
|
* Calcula se é um número válido de protocolo do Governo Federal Brasileiro
|
|
@@ -60,13 +59,8 @@
|
|
|
60
59
|
* @param {String} value Título eleitoral
|
|
61
60
|
* @returns {Boolean}
|
|
62
61
|
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
};
|
|
66
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
67
|
-
exports.normalize = exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
|
|
68
|
-
const ValidationBRError_1 = __importDefault(require("./_exceptions/ValidationBRError"));
|
|
69
|
-
const utils_1 = require("./utils");
|
|
62
|
+
import ValidationBRError from './_exceptions/ValidationBRError.js';
|
|
63
|
+
import { sumElementsByMultipliers, clearValue, fakeNumber, applyMask } from './utils.js';
|
|
70
64
|
/**
|
|
71
65
|
* dv()
|
|
72
66
|
* Calcula o dígito verificador
|
|
@@ -74,24 +68,22 @@ const utils_1 = require("./utils");
|
|
|
74
68
|
* @param {String} value
|
|
75
69
|
* @returns {String}
|
|
76
70
|
*/
|
|
77
|
-
const dv = (value) => {
|
|
78
|
-
const nup =
|
|
71
|
+
export const dv = (value) => {
|
|
72
|
+
const nup = clearValue(value, 15, { rejectEmpty: true, trimAtRight: true });
|
|
79
73
|
const nupReverse = nup.split('').reverse().join('');
|
|
80
|
-
const sum1 =
|
|
74
|
+
const sum1 = sumElementsByMultipliers(nupReverse, [...Array(15)].map((_, i) => i + 2));
|
|
81
75
|
const dv1 = _specificSumToDV(sum1);
|
|
82
|
-
const sum2 =
|
|
76
|
+
const sum2 = sumElementsByMultipliers(dv1 + nupReverse, [...Array(16)].map((_, i) => i + 2));
|
|
83
77
|
const dv2 = _specificSumToDV(sum2);
|
|
84
78
|
return `${dv1}${dv2}`;
|
|
85
79
|
};
|
|
86
|
-
exports.dv = dv;
|
|
87
80
|
/**
|
|
88
81
|
* Aplica uma máscara ao número informado
|
|
89
82
|
*
|
|
90
83
|
* @param {String} value Número de Processo
|
|
91
84
|
* @returns {String} Valor com a máscara
|
|
92
85
|
*/
|
|
93
|
-
const mask = (value) =>
|
|
94
|
-
exports.mask = mask;
|
|
86
|
+
export const mask = (value) => applyMask(value, '00000.000000/0000-00');
|
|
95
87
|
/**
|
|
96
88
|
* fake()
|
|
97
89
|
* Gera um número válido
|
|
@@ -99,14 +91,17 @@ exports.mask = mask;
|
|
|
99
91
|
* @param {Boolean} withMask Define se o número deve ser gerado com ou sem máscara
|
|
100
92
|
* @returns {String}
|
|
101
93
|
*/
|
|
102
|
-
const fake = (withMask = false) => {
|
|
103
|
-
const
|
|
104
|
-
const
|
|
94
|
+
export const fake = (withMask = false) => {
|
|
95
|
+
const orgao = fakeNumber(5, true);
|
|
96
|
+
const sequencial = fakeNumber(6, true);
|
|
97
|
+
const currentYear = new Date().getFullYear();
|
|
98
|
+
const ano = String(Math.floor(Math.random() * (currentYear - 2020 + 1)) + 2020);
|
|
99
|
+
const num = `${orgao}${sequencial}${ano}`;
|
|
100
|
+
const nup = `${num}${dv(num)}`;
|
|
105
101
|
if (withMask)
|
|
106
|
-
return
|
|
102
|
+
return mask(nup);
|
|
107
103
|
return nup;
|
|
108
104
|
};
|
|
109
|
-
exports.fake = fake;
|
|
110
105
|
/**
|
|
111
106
|
* validateOrFail()
|
|
112
107
|
* Valida se um número é válido e
|
|
@@ -115,14 +110,13 @@ exports.fake = fake;
|
|
|
115
110
|
* @param {String} value Número a ser validado
|
|
116
111
|
* @returns {Boolean}
|
|
117
112
|
*/
|
|
118
|
-
const validateOrFail = (value) => {
|
|
119
|
-
const nup =
|
|
120
|
-
if (
|
|
121
|
-
throw
|
|
113
|
+
export const validateOrFail = (value) => {
|
|
114
|
+
const nup = normalize(value);
|
|
115
|
+
if (dv(nup) !== nup.substring(15, 17)) {
|
|
116
|
+
throw ValidationBRError.INVALID_DV;
|
|
122
117
|
}
|
|
123
118
|
return true;
|
|
124
119
|
};
|
|
125
|
-
exports.validateOrFail = validateOrFail;
|
|
126
120
|
/**
|
|
127
121
|
* validate()
|
|
128
122
|
* Valida se um número é válido
|
|
@@ -130,23 +124,21 @@ exports.validateOrFail = validateOrFail;
|
|
|
130
124
|
* @param {String} value Número a ser validado
|
|
131
125
|
* @returns {Boolean}
|
|
132
126
|
*/
|
|
133
|
-
const validate = (value) => {
|
|
127
|
+
export const validate = (value) => {
|
|
134
128
|
try {
|
|
135
|
-
return
|
|
129
|
+
return validateOrFail(value);
|
|
136
130
|
}
|
|
137
131
|
catch (error) {
|
|
138
132
|
return false;
|
|
139
133
|
}
|
|
140
134
|
};
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
return (0, utils_1.clearValue)(value, 17, {
|
|
135
|
+
export const normalize = (value) => {
|
|
136
|
+
return clearValue(value, 17, {
|
|
144
137
|
rejectEmpty: true,
|
|
145
138
|
rejectHigherLength: true,
|
|
146
139
|
});
|
|
147
140
|
};
|
|
148
|
-
|
|
149
|
-
exports.default = exports.validate;
|
|
141
|
+
export default validate;
|
|
150
142
|
function _specificSumToDV(sum) {
|
|
151
143
|
const rest = 11 - (sum % 11);
|
|
152
144
|
const exceptions = [
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nup17.js","sourceRoot":"","sources":["../src/nup17.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* isPhone()
|
|
3
|
+
* Calcula se um número de telefone brasileiro, fixo ou celular, é válido.
|
|
4
|
+
*
|
|
5
|
+
* @doc
|
|
6
|
+
* - O número pode ser informado com ou sem DDD e com ou sem máscara.
|
|
7
|
+
*
|
|
8
|
+
* - Após a retirada dos caracteres não-numéricos, o número deve possuir entre 8 e
|
|
9
|
+
* 11 dígitos.
|
|
10
|
+
*
|
|
11
|
+
* - Quando informado com DDD (10 ou 11 dígitos), os dois primeiros dígitos formam o
|
|
12
|
+
* DDD e não podem conter o algarismo 0.
|
|
13
|
+
*
|
|
14
|
+
* - O número local possui 8 dígitos para telefones fixos e 9 dígitos para celulares.
|
|
15
|
+
*
|
|
16
|
+
* - Telefone fixo: o primeiro dígito do número local deve estar entre 2 e 8.
|
|
17
|
+
*
|
|
18
|
+
* - Celular: o primeiro dígito do número local deve ser 9.
|
|
19
|
+
*
|
|
20
|
+
* 1) Partes do número
|
|
21
|
+
* ______ _____________________
|
|
22
|
+
* | DDD | Número |
|
|
23
|
+
* | 1 1 9 8 7 6 5 4 3 2 1 |
|
|
24
|
+
* |______|_____________________|
|
|
25
|
+
*
|
|
26
|
+
*
|
|
27
|
+
* @param {String|Number} value Número de telefone
|
|
28
|
+
* @returns {Boolean}
|
|
29
|
+
*/
|
|
30
|
+
import ValidationBRError from './_exceptions/ValidationBRError.js';
|
|
31
|
+
import { checkRepeatedSequence, fakeNumber, applyMask } from './utils.js';
|
|
32
|
+
/**
|
|
33
|
+
* fake()
|
|
34
|
+
* Gera um número válido
|
|
35
|
+
*
|
|
36
|
+
* @param {Boolean} withMask Define se o número deve ser gerado com máscara
|
|
37
|
+
* @returns {String}
|
|
38
|
+
*/
|
|
39
|
+
export const fake = (withMask = false) => {
|
|
40
|
+
const ddd = `${1 + Math.floor(Math.random() * 9)}${1 + Math.floor(Math.random() * 9)}`;
|
|
41
|
+
const phone = `${ddd}9${fakeNumber(8, true)}`;
|
|
42
|
+
if (withMask)
|
|
43
|
+
return mask(phone);
|
|
44
|
+
return phone;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* validateOrFail()
|
|
48
|
+
* Valida se um número é válido e
|
|
49
|
+
* retorna uma exceção se não estiver
|
|
50
|
+
*
|
|
51
|
+
* @param {String} value Número a ser validado
|
|
52
|
+
* @returns {Boolean}
|
|
53
|
+
*/
|
|
54
|
+
export const validateOrFail = (value) => {
|
|
55
|
+
const phone = String(value).replace(/[^0-9]/g, '');
|
|
56
|
+
if (!phone)
|
|
57
|
+
throw ValidationBRError.EMPTY_VALUE;
|
|
58
|
+
if (checkRepeatedSequence(phone)) {
|
|
59
|
+
throw ValidationBRError.REPEATED_SEQUENCE;
|
|
60
|
+
}
|
|
61
|
+
if (phone.length < 8 || phone.length > 11) {
|
|
62
|
+
throw ValidationBRError.INVALID_FORMAT;
|
|
63
|
+
}
|
|
64
|
+
if (phone.length > 9 && [0, 1].indexOf(phone.indexOf('0')) !== -1) {
|
|
65
|
+
throw ValidationBRError.INVALID_FORMAT;
|
|
66
|
+
}
|
|
67
|
+
const localNumber = phone.length > 9 ? phone.substring(2) : phone;
|
|
68
|
+
if (localNumber.length === 8) {
|
|
69
|
+
if ([2, 3, 4, 5, 6, 7, 8].indexOf(Number(localNumber[0])) === -1) {
|
|
70
|
+
throw ValidationBRError.INVALID_FORMAT;
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
if (localNumber[0] !== '9') {
|
|
75
|
+
throw ValidationBRError.INVALID_FORMAT;
|
|
76
|
+
}
|
|
77
|
+
return true;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* validate()
|
|
81
|
+
* Valida se um número é válido
|
|
82
|
+
*
|
|
83
|
+
* @param {String} value Número a ser validado
|
|
84
|
+
* @returns {Boolean}
|
|
85
|
+
*/
|
|
86
|
+
export const validate = (value) => {
|
|
87
|
+
try {
|
|
88
|
+
return validateOrFail(value);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* normalize()
|
|
96
|
+
* Retira a máscara do número, retornando apenas os dígitos
|
|
97
|
+
*
|
|
98
|
+
* @param {String} value Número de telefone
|
|
99
|
+
* @returns {String} Número sem máscara
|
|
100
|
+
*/
|
|
101
|
+
export const normalize = (value) => String(value).replace(/[^0-9]/g, '');
|
|
102
|
+
/**
|
|
103
|
+
* mask()
|
|
104
|
+
* Aplica a máscara correspondente ao tamanho do número
|
|
105
|
+
*
|
|
106
|
+
* @param {String} value Número de telefone
|
|
107
|
+
* @returns {String} Valor com a máscara
|
|
108
|
+
*/
|
|
109
|
+
export const mask = (value) => {
|
|
110
|
+
const phone = normalize(value);
|
|
111
|
+
const masks = {
|
|
112
|
+
8: '0000-0000',
|
|
113
|
+
9: '0 0000-0000',
|
|
114
|
+
10: '(00) 0000-0000',
|
|
115
|
+
11: '(00) 0 0000-0000',
|
|
116
|
+
};
|
|
117
|
+
const pattern = masks[phone.length];
|
|
118
|
+
if (!pattern)
|
|
119
|
+
return phone;
|
|
120
|
+
return applyMask(phone, pattern);
|
|
121
|
+
};
|
|
122
|
+
export default validate;
|
|
123
|
+
//# sourceMappingURL=phone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone.js","sourceRoot":"","sources":["../src/phone.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,17 +19,16 @@
|
|
|
19
19
|
*
|
|
20
20
|
* 2) Cálculo do DV.
|
|
21
21
|
*
|
|
22
|
-
* - Soma-se o produto
|
|
22
|
+
* - Soma-se o produto dos 10 algarismos pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
|
|
23
23
|
*
|
|
24
24
|
* 2 6 8 2 7 6 4 9 9 6
|
|
25
25
|
* x x x x x x x x x x
|
|
26
26
|
* 3 2 9 8 7 6 5 4 3 2
|
|
27
|
-
* = 6 +12 +72 +16 +49 +
|
|
27
|
+
* = 6 +12 +72 +16 +49 +36 +20 +36 +27 +12 = 286
|
|
28
28
|
*
|
|
29
29
|
* - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
|
|
30
|
-
*
|
|
31
|
-
* Obs.:
|
|
32
|
-
* Caso retorne 1, o resto será 0
|
|
30
|
+
* 286 / 11 tem resto 0. DV é 0.
|
|
31
|
+
* Obs.: Se o resto da divisão for 0 ou 1, o DV é 0.
|
|
33
32
|
*
|
|
34
33
|
*
|
|
35
34
|
*
|
|
@@ -39,6 +38,8 @@
|
|
|
39
38
|
* @param {String} value Objeto postal no formato 268.27649.96-0
|
|
40
39
|
* @returns {Boolean}
|
|
41
40
|
*/
|
|
41
|
+
import ValidationBRError from './_exceptions/ValidationBRError.js';
|
|
42
|
+
import { sumElementsByMultipliers, sumToDV, clearValue, fakeNumber, applyMask } from './utils.js';
|
|
42
43
|
/**
|
|
43
44
|
* dv()
|
|
44
45
|
* Calcula o dígito verificador
|
|
@@ -46,21 +47,34 @@
|
|
|
46
47
|
* @param {Number|String} value
|
|
47
48
|
* @returns {String}
|
|
48
49
|
*/
|
|
49
|
-
export
|
|
50
|
+
export const dv = (value) => {
|
|
51
|
+
const pis = clearValue(value, 10, {
|
|
52
|
+
trimAtRight: true,
|
|
53
|
+
rejectEmpty: true,
|
|
54
|
+
});
|
|
55
|
+
const sum = sumElementsByMultipliers(pis, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
|
|
56
|
+
return String(sumToDV(sum));
|
|
57
|
+
};
|
|
50
58
|
/**
|
|
51
59
|
* Aplica uma máscara ao número informado
|
|
52
60
|
*
|
|
53
61
|
* @param {String} value Número de Processo
|
|
54
62
|
* @returns {String} Valor com a máscara
|
|
55
63
|
*/
|
|
56
|
-
export
|
|
64
|
+
export const mask = (value) => applyMask(value, '000.00000.00-0');
|
|
57
65
|
/**
|
|
58
66
|
* fake()
|
|
59
67
|
* Gera um número válido
|
|
60
68
|
*
|
|
61
69
|
* @returns {String}
|
|
62
70
|
*/
|
|
63
|
-
export
|
|
71
|
+
export const fake = (withMask = false) => {
|
|
72
|
+
const num = fakeNumber(10, true);
|
|
73
|
+
const pis = `${num}${dv(num)}`;
|
|
74
|
+
if (withMask)
|
|
75
|
+
return mask(pis);
|
|
76
|
+
return pis;
|
|
77
|
+
};
|
|
64
78
|
/**
|
|
65
79
|
* validateOrFail()
|
|
66
80
|
* Valida se um número é válido e
|
|
@@ -69,7 +83,13 @@ export declare const fake: (withMask?: boolean) => string;
|
|
|
69
83
|
* @param {String|Number} value Número a ser validado
|
|
70
84
|
* @returns {Boolean}
|
|
71
85
|
*/
|
|
72
|
-
export
|
|
86
|
+
export const validateOrFail = (value) => {
|
|
87
|
+
const pis = normalize(value);
|
|
88
|
+
if (dv(pis) !== pis.substring(10, 11)) {
|
|
89
|
+
throw ValidationBRError.INVALID_DV;
|
|
90
|
+
}
|
|
91
|
+
return true;
|
|
92
|
+
};
|
|
73
93
|
/**
|
|
74
94
|
* validate()
|
|
75
95
|
* Valida se um número é válido
|
|
@@ -77,12 +97,27 @@ export declare const validateOrFail: (value: string | number) => boolean;
|
|
|
77
97
|
* @param {String|Number} value Número a ser validado
|
|
78
98
|
* @returns {Boolean}
|
|
79
99
|
*/
|
|
80
|
-
export
|
|
100
|
+
export const validate = (value) => {
|
|
101
|
+
try {
|
|
102
|
+
return validateOrFail(value);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
81
108
|
/**
|
|
82
109
|
* Retorna String sem máscara
|
|
83
110
|
*
|
|
84
111
|
* @param {String|Number} value Valor a remover máscara
|
|
85
112
|
* @returns {String}
|
|
86
113
|
*/
|
|
87
|
-
export
|
|
114
|
+
export const normalize = (value) => {
|
|
115
|
+
return clearValue(value, 11, {
|
|
116
|
+
fillZerosAtLeft: true,
|
|
117
|
+
rejectEmpty: true,
|
|
118
|
+
rejectHigherLength: true,
|
|
119
|
+
rejectEqualSequence: true,
|
|
120
|
+
});
|
|
121
|
+
};
|
|
88
122
|
export default validate;
|
|
123
|
+
//# sourceMappingURL=pisPasep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pisPasep.js","sourceRoot":"","sources":["../src/pisPasep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE/F;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE;QAChC,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,wBAAwB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1E,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAE/B,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QACtC,MAAM,iBAAiB,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAsB,EAAW,EAAE;IAC1D,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAsB,EAAU,EAAE;IAC1D,OAAO,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE;QAC3B,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;QACxB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* isPostalCode()
|
|
4
3
|
* Calcula se um código de rastreamento postal no formato JT194690698BR é válido.
|
|
@@ -27,7 +26,7 @@
|
|
|
27
26
|
* 1 9 4 6 9 0 6 9
|
|
28
27
|
* x x x x x x x x
|
|
29
28
|
* 8 6 4 2 3 5 9 7
|
|
30
|
-
* = 8 +54 +16 +12 +
|
|
29
|
+
* = 8 +54 +16 +12 +27 +0 +54 +63 = 234
|
|
31
30
|
*
|
|
32
31
|
* - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
|
|
33
32
|
* 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
|
|
@@ -44,13 +43,8 @@
|
|
|
44
43
|
* @param {String} value Objeto postal no formato JT194690698BR
|
|
45
44
|
* @returns {Boolean}
|
|
46
45
|
*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
};
|
|
50
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
-
exports.mask = exports.normalize = exports.validate = exports.validateOrFail = exports.fake = exports.dv = void 0;
|
|
52
|
-
const ValidationBRError_1 = __importDefault(require("./_exceptions/ValidationBRError"));
|
|
53
|
-
const utils_1 = require("./utils");
|
|
46
|
+
import ValidationBRError from './_exceptions/ValidationBRError.js';
|
|
47
|
+
import { sumElementsByMultipliers, clearValue, fakeNumber, randomLetter } from './utils.js';
|
|
54
48
|
/**
|
|
55
49
|
* dv()
|
|
56
50
|
* Calcula o dígito verificador
|
|
@@ -58,14 +52,14 @@ const utils_1 = require("./utils");
|
|
|
58
52
|
* @param {Number|String} value
|
|
59
53
|
* @returns {String}
|
|
60
54
|
*/
|
|
61
|
-
const dv = (value) => {
|
|
55
|
+
export const dv = (value) => {
|
|
62
56
|
if (!value)
|
|
63
|
-
throw
|
|
57
|
+
throw ValidationBRError.EMPTY_VALUE;
|
|
64
58
|
const postalCode = String(value)
|
|
65
59
|
.replace(/[^0-9]+/gi, '')
|
|
66
60
|
.padStart(8, '0')
|
|
67
61
|
.substring(0, 8);
|
|
68
|
-
const sum =
|
|
62
|
+
const sum = sumElementsByMultipliers(postalCode, [8, 6, 4, 2, 3, 5, 9, 7]);
|
|
69
63
|
const rest = sum % 11;
|
|
70
64
|
// const specificities = { 0: { dv: 5 }, 1: { dv: 0 } }
|
|
71
65
|
const specificities = [
|
|
@@ -76,19 +70,17 @@ const dv = (value) => {
|
|
|
76
70
|
const DV = specifity ? specifity.dv : 11 - rest;
|
|
77
71
|
return String(DV);
|
|
78
72
|
};
|
|
79
|
-
exports.dv = dv;
|
|
80
73
|
/**
|
|
81
74
|
* fake()
|
|
82
75
|
* Gera um número válido
|
|
83
76
|
*
|
|
84
77
|
* @returns {String}
|
|
85
78
|
*/
|
|
86
|
-
const fake = () => {
|
|
87
|
-
const num =
|
|
88
|
-
const postalCode = `${
|
|
79
|
+
export const fake = () => {
|
|
80
|
+
const num = fakeNumber(8, true);
|
|
81
|
+
const postalCode = `${randomLetter()}${randomLetter()}${num}${dv(num)}BR`;
|
|
89
82
|
return postalCode;
|
|
90
83
|
};
|
|
91
|
-
exports.fake = fake;
|
|
92
84
|
/**
|
|
93
85
|
* validateOrFail()
|
|
94
86
|
* Valida se um número é válido e
|
|
@@ -97,17 +89,16 @@ exports.fake = fake;
|
|
|
97
89
|
* @param {String} value Número a ser validado
|
|
98
90
|
* @returns {Boolean}
|
|
99
91
|
*/
|
|
100
|
-
const validateOrFail = (value) => {
|
|
92
|
+
export const validateOrFail = (value) => {
|
|
101
93
|
if (!/^[a-z]{2}([\d]{9})[a-z]{2}$/gi.test(String(value))) {
|
|
102
94
|
throw new Error('O número não está no formato "XX000000000XX"');
|
|
103
95
|
}
|
|
104
|
-
const postalCode =
|
|
105
|
-
if (
|
|
106
|
-
throw
|
|
96
|
+
const postalCode = clearValue(value.substring(2, 11), 9);
|
|
97
|
+
if (dv(value.substring(2, 11)) !== postalCode.substring(8, 9)) {
|
|
98
|
+
throw ValidationBRError.INVALID_DV;
|
|
107
99
|
}
|
|
108
100
|
return true;
|
|
109
101
|
};
|
|
110
|
-
exports.validateOrFail = validateOrFail;
|
|
111
102
|
/**
|
|
112
103
|
* validate()
|
|
113
104
|
* Valida se um número é válido
|
|
@@ -115,30 +106,27 @@ exports.validateOrFail = validateOrFail;
|
|
|
115
106
|
* @param {String} value Número a ser validado
|
|
116
107
|
* @returns {Boolean}
|
|
117
108
|
*/
|
|
118
|
-
const validate = (value) => {
|
|
109
|
+
export const validate = (value) => {
|
|
119
110
|
try {
|
|
120
|
-
return
|
|
111
|
+
return validateOrFail(value);
|
|
121
112
|
}
|
|
122
113
|
catch (error) {
|
|
123
114
|
return false;
|
|
124
115
|
}
|
|
125
116
|
};
|
|
126
|
-
exports.validate = validate;
|
|
127
117
|
/**
|
|
128
118
|
* Aplica uma máscara ao número informado
|
|
129
119
|
*
|
|
130
120
|
* @param {String} value Número de Processo
|
|
131
121
|
* @returns {String} Valor com a máscara
|
|
132
122
|
*/
|
|
133
|
-
const normalize = (value) => String(value).toLocaleUpperCase();
|
|
134
|
-
exports.normalize = normalize;
|
|
123
|
+
export const normalize = (value) => String(value).toLocaleUpperCase();
|
|
135
124
|
/**
|
|
136
125
|
* Alias para normalize(). PostalCode não possui máscara.
|
|
137
126
|
*
|
|
138
127
|
* @param {String} value Número de Processo
|
|
139
128
|
* @returns {String} Valor com a máscara
|
|
140
129
|
*/
|
|
141
|
-
const mask = (value) =>
|
|
142
|
-
|
|
143
|
-
exports.default = exports.validate;
|
|
130
|
+
export const mask = (value) => normalize(value);
|
|
131
|
+
export default validate;
|
|
144
132
|
//# sourceMappingURL=postalCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postalCode.js","sourceRoot":"","sources":["../src/postalCode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* RENAVAM
|
|
4
3
|
* Funções auxiliares para cálculo de máscaras, validação, dígito verificador e criaçãode
|
|
@@ -19,28 +18,23 @@
|
|
|
19
18
|
*
|
|
20
19
|
* 2) Cálculo do DV.
|
|
21
20
|
*
|
|
22
|
-
* - Soma-se o produto
|
|
21
|
+
* - Soma-se o produto dos 10 algarismos pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
|
|
23
22
|
*
|
|
24
23
|
* 2 6 8 2 7 6 4 9 9 6
|
|
25
24
|
* x x x x x x x x x x
|
|
26
25
|
* 3 2 9 8 7 6 5 4 3 2
|
|
27
|
-
* = 6 +12 +72 +16 +49 +
|
|
26
|
+
* = 6 +12 +72 +16 +49 +36 +20 +36 +27 +12 = 286
|
|
28
27
|
*
|
|
29
28
|
* - O somatório encontrado é multiplicado por 10 e ao resultado
|
|
30
29
|
* é aplicado o cálculo do MOD 11.
|
|
31
30
|
*
|
|
32
|
-
* (
|
|
31
|
+
* ( 286 * 10 ) / 11 tem resto 0. DV = 0. Caso o resto seja maior ou igual a
|
|
33
32
|
* 10, DV será 0.
|
|
34
33
|
*
|
|
35
34
|
*
|
|
36
35
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
40
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
-
exports.normalize = exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
|
|
42
|
-
const ValidationBRError_1 = __importDefault(require("./_exceptions/ValidationBRError"));
|
|
43
|
-
const utils_1 = require("./utils");
|
|
36
|
+
import ValidationBRError from './_exceptions/ValidationBRError.js';
|
|
37
|
+
import { sumElementsByMultipliers, clearValue, fakeNumber, applyMask } from './utils.js';
|
|
44
38
|
/**
|
|
45
39
|
* dv()
|
|
46
40
|
* Calcula o dígito verificador
|
|
@@ -48,39 +42,36 @@ const utils_1 = require("./utils");
|
|
|
48
42
|
* @param {Number|String} value
|
|
49
43
|
* @returns {String}
|
|
50
44
|
*/
|
|
51
|
-
const dv = (value) => {
|
|
52
|
-
const renavam =
|
|
45
|
+
export const dv = (value) => {
|
|
46
|
+
const renavam = clearValue(value, 10, {
|
|
53
47
|
fillZerosAtLeft: true,
|
|
54
48
|
trimAtRight: true,
|
|
55
49
|
rejectEmpty: true,
|
|
56
50
|
});
|
|
57
|
-
const sum1 =
|
|
51
|
+
const sum1 = sumElementsByMultipliers(renavam, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]) * 10;
|
|
58
52
|
const dv1 = sum1 % 11 >= 10 ? 0 : sum1 % 11;
|
|
59
53
|
return `${dv1}`;
|
|
60
54
|
};
|
|
61
|
-
exports.dv = dv;
|
|
62
55
|
/**
|
|
63
56
|
* Aplica uma máscara ao número informado
|
|
64
57
|
*
|
|
65
58
|
* @param {String} value Número de Processo
|
|
66
59
|
* @returns {String} Valor com a máscara
|
|
67
60
|
*/
|
|
68
|
-
const mask = (value) =>
|
|
69
|
-
exports.mask = mask;
|
|
61
|
+
export const mask = (value) => applyMask(value, '0000000000-0');
|
|
70
62
|
/**
|
|
71
63
|
* fake()
|
|
72
64
|
* Gera um número válido
|
|
73
65
|
*
|
|
74
66
|
* @returns {String}
|
|
75
67
|
*/
|
|
76
|
-
const fake = (withMask = false) => {
|
|
77
|
-
const value =
|
|
78
|
-
const renavam = `${value}${
|
|
68
|
+
export const fake = (withMask = false) => {
|
|
69
|
+
const value = fakeNumber(10, true);
|
|
70
|
+
const renavam = `${value}${dv(value)}`;
|
|
79
71
|
if (withMask)
|
|
80
|
-
return
|
|
72
|
+
return mask(renavam);
|
|
81
73
|
return renavam;
|
|
82
74
|
};
|
|
83
|
-
exports.fake = fake;
|
|
84
75
|
/**
|
|
85
76
|
* validateOrFail()
|
|
86
77
|
* Valida se um número é válido e
|
|
@@ -89,14 +80,13 @@ exports.fake = fake;
|
|
|
89
80
|
* @param {String|Number} value Número a ser validado
|
|
90
81
|
* @returns {Boolean}
|
|
91
82
|
*/
|
|
92
|
-
const validateOrFail = (value) => {
|
|
93
|
-
const renavam =
|
|
94
|
-
if (
|
|
95
|
-
throw
|
|
83
|
+
export const validateOrFail = (value) => {
|
|
84
|
+
const renavam = normalize(value);
|
|
85
|
+
if (dv(renavam) !== renavam.substring(10, 11)) {
|
|
86
|
+
throw ValidationBRError.INVALID_DV;
|
|
96
87
|
}
|
|
97
88
|
return true;
|
|
98
89
|
};
|
|
99
|
-
exports.validateOrFail = validateOrFail;
|
|
100
90
|
/**
|
|
101
91
|
* validate()
|
|
102
92
|
* Valida se um número é válido
|
|
@@ -104,29 +94,27 @@ exports.validateOrFail = validateOrFail;
|
|
|
104
94
|
* @param {String|Number} value Número a ser validado
|
|
105
95
|
* @returns {Boolean}
|
|
106
96
|
*/
|
|
107
|
-
const validate = (value) => {
|
|
97
|
+
export const validate = (value) => {
|
|
108
98
|
try {
|
|
109
|
-
return
|
|
99
|
+
return validateOrFail(value);
|
|
110
100
|
}
|
|
111
101
|
catch (error) {
|
|
112
102
|
return false;
|
|
113
103
|
}
|
|
114
104
|
};
|
|
115
|
-
exports.validate = validate;
|
|
116
105
|
/**
|
|
117
106
|
* Retorna String sem máscara
|
|
118
107
|
*
|
|
119
108
|
* @param {String|Number} value Valor a remover máscara
|
|
120
109
|
* @returns {String}
|
|
121
110
|
*/
|
|
122
|
-
const normalize = (value) => {
|
|
123
|
-
return
|
|
111
|
+
export const normalize = (value) => {
|
|
112
|
+
return clearValue(value, 11, {
|
|
124
113
|
fillZerosAtLeft: true,
|
|
125
114
|
rejectEmpty: true,
|
|
126
115
|
rejectHigherLength: true,
|
|
127
116
|
rejectEqualSequence: true,
|
|
128
117
|
});
|
|
129
118
|
};
|
|
130
|
-
|
|
131
|
-
exports.default = exports.validate;
|
|
119
|
+
export default validate;
|
|
132
120
|
//# sourceMappingURL=renavam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renavam.js","sourceRoot":"","sources":["../src/renavam.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE;QACpC,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,wBAAwB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACpF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IAE5C,OAAO,GAAG,GAAG,EAAE,CAAC;AAClB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAEzF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IAEvC,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IAEnC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEjC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAC9C,MAAM,iBAAiB,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAsB,EAAW,EAAE;IAC1D,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAsB,EAAU,EAAE;IAC1D,OAAO,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE;QAC3B,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;QACxB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|