validation-br 1.4.5 → 1.5.1
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/.github/workflows/test.yml +6 -6
- package/.prettierrc.js +1 -1
- package/dist/cnh.d.ts +91 -91
- package/dist/cnh.js +138 -138
- package/dist/cnh.js.map +1 -1
- package/dist/cnh.test.d.ts +1 -1
- package/dist/cnpj.d.ts +87 -82
- package/dist/cnpj.js +150 -129
- package/dist/cnpj.js.map +1 -1
- package/dist/cnpj.test.d.ts +1 -1
- package/dist/cpf.d.ts +99 -99
- package/dist/cpf.js +146 -146
- package/dist/cpf.js.map +1 -1
- package/dist/cpf.test.d.ts +1 -1
- package/dist/data/ValidationBRError.d.ts +6 -6
- package/dist/data/ValidationBRError.js +9 -9
- package/dist/data/ValidationBRError.js.map +1 -1
- package/dist/index.d.ts +21 -21
- package/dist/index.js +41 -41
- package/dist/index.test.d.ts +1 -1
- package/dist/judicialProcess.d.ts +126 -126
- package/dist/judicialProcess.js +189 -189
- package/dist/judicialProcess.js.map +1 -1
- package/dist/judicialProcess.test.d.ts +1 -1
- package/dist/nup17.d.ts +102 -102
- package/dist/nup17.js +154 -154
- package/dist/nup17.js.map +1 -1
- package/dist/nup17.test.d.ts +1 -1
- package/dist/pisPasep.d.ts +81 -81
- package/dist/pisPasep.js +125 -125
- package/dist/pisPasep.js.map +1 -1
- package/dist/pisPasep.test.d.ts +1 -1
- package/dist/postalCode.d.ts +83 -83
- package/dist/postalCode.js +135 -135
- package/dist/postalCode.js.map +1 -1
- package/dist/postalCode.test.d.ts +1 -1
- package/dist/renavam.d.ts +75 -75
- package/dist/renavam.js +121 -121
- package/dist/renavam.js.map +1 -1
- package/dist/renavam.test.d.ts +1 -1
- package/dist/tituloEleitor.d.ts +93 -93
- package/dist/tituloEleitor.js +142 -142
- package/dist/tituloEleitor.js.map +1 -1
- package/dist/tituloEleitor.test.d.ts +1 -1
- package/dist/utils-applyMask.test.d.ts +1 -1
- package/dist/utils-checkRepeatedSequence.test.d.ts +1 -0
- package/dist/utils-clearValue.test.d.ts +1 -1
- package/dist/utils-fakeNumber.test.d.ts +1 -1
- package/dist/utils-insertAtPosition.test.d.ts +1 -1
- package/dist/utils-invalidListGenerator.test.d.ts +1 -1
- package/dist/utils-randomLetter.test.d.ts +1 -1
- package/dist/utils-removeFromPosition.test.d.ts +1 -1
- package/dist/utils-sumElementsByMultipliers.test.d.ts +1 -1
- package/dist/utils-sumToDV.test.d.ts +1 -1
- package/dist/utils.d.ts +131 -133
- package/dist/utils.js +188 -190
- package/dist/utils.js.map +1 -1
- package/docs/Nota.COCAD.SUARA.2024.05.49.CNPJ.Alfanumerico-1.pdf +0 -0
- package/{.eslintrc.js → eslint.config.js} +39 -39
- package/jest.config.js +1 -6
- package/package.json +5 -26
- package/readme.md +11 -2
- package/.eslintcache +0 -1
- package/.eslintignore +0 -2
|
@@ -13,7 +13,7 @@ jobs:
|
|
|
13
13
|
|
|
14
14
|
strategy:
|
|
15
15
|
matrix:
|
|
16
|
-
node-version: [
|
|
16
|
+
node-version: [18.x, 20.x, 22.x]
|
|
17
17
|
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
|
18
18
|
|
|
19
19
|
steps:
|
|
@@ -28,12 +28,12 @@ jobs:
|
|
|
28
28
|
|
|
29
29
|
# Install Node Modules
|
|
30
30
|
- name: Install Node Modules
|
|
31
|
-
run:
|
|
31
|
+
run: npm install
|
|
32
32
|
|
|
33
33
|
# Runs a set of commands using the runners shell
|
|
34
|
-
- name:
|
|
35
|
-
run:
|
|
34
|
+
- name: Build typescript code
|
|
35
|
+
run: npm run build
|
|
36
36
|
|
|
37
37
|
# Runs a set of commands using the runners shell
|
|
38
|
-
- name:
|
|
39
|
-
run:
|
|
38
|
+
- name: Runs Unit Tests
|
|
39
|
+
run: npm run test
|
package/.prettierrc.js
CHANGED
package/dist/cnh.d.ts
CHANGED
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* isCNH()
|
|
3
|
-
* Calcula se uma CNH é válida
|
|
4
|
-
*
|
|
5
|
-
* @doc
|
|
6
|
-
* CNH deve possuir 11 caracteres
|
|
7
|
-
*
|
|
8
|
-
* - Os caracteres 1 a 9 são números sequenciais.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* - Os caracteres 10 e 11 são dígitos verificadores.
|
|
12
|
-
*
|
|
13
|
-
* 1) Partes do número
|
|
14
|
-
* ____________________________ ______
|
|
15
|
-
* | Número | D V |
|
|
16
|
-
* | 5 8 3 1 6 7 9 4 5 3 4 |
|
|
17
|
-
* |____________________________|_____|
|
|
18
|
-
*
|
|
19
|
-
* 2) Cálculo do primeiro DV.
|
|
20
|
-
*
|
|
21
|
-
* - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.
|
|
22
|
-
*
|
|
23
|
-
* 5 8 3 1 6 7 9 4 5
|
|
24
|
-
* x x x x x x x x x
|
|
25
|
-
* 2 3 4 5 6 7 8 9 10
|
|
26
|
-
* = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294
|
|
27
|
-
*
|
|
28
|
-
* - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o
|
|
29
|
-
* resto for 10, o DV1 é 0.
|
|
30
|
-
*
|
|
31
|
-
* 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3
|
|
32
|
-
* DV1 = 3
|
|
33
|
-
*
|
|
34
|
-
* 3) Cálculo do segundo DV
|
|
35
|
-
*
|
|
36
|
-
* - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere
|
|
37
|
-
* que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será
|
|
38
|
-
* multiplicado por 2 e ficará no final.
|
|
39
|
-
*
|
|
40
|
-
* 5 8 3 1 6 7 9 4 5 3
|
|
41
|
-
* x x x x x x x x x x
|
|
42
|
-
* 3 4 5 6 7 8 9 10 11 2
|
|
43
|
-
* = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348
|
|
44
|
-
*
|
|
45
|
-
* 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.
|
|
46
|
-
* DV2 = 4
|
|
47
|
-
*
|
|
48
|
-
* - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o
|
|
49
|
-
* resto for 10, o DV2 é 0.
|
|
50
|
-
*
|
|
51
|
-
* Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972
|
|
52
|
-
*
|
|
53
|
-
* @param {String} value Título eleitoral
|
|
54
|
-
* @returns {Boolean}
|
|
55
|
-
*/
|
|
56
|
-
/**
|
|
57
|
-
* Calcula o Dígito Verificador de um RENAVAM informado
|
|
58
|
-
*
|
|
59
|
-
* @returns String Número fake de um cnh válido
|
|
60
|
-
*/
|
|
61
|
-
export declare const dv: (value: string | number) => string;
|
|
62
|
-
/**
|
|
63
|
-
* validateOrFail()
|
|
64
|
-
* Valida se um número é válido e
|
|
65
|
-
* retorna uma exceção se não estiver
|
|
66
|
-
*
|
|
67
|
-
* @param {String|Number} value Número a ser validado
|
|
68
|
-
* @returns {Boolean}
|
|
69
|
-
*/
|
|
70
|
-
export declare const validateOrFail: (value: string | number) => boolean;
|
|
71
|
-
/**
|
|
72
|
-
* validate()
|
|
73
|
-
* Valida se um número é válido
|
|
74
|
-
*
|
|
75
|
-
* @param {String|Number} value Número a ser validado
|
|
76
|
-
* @returns {Boolean}
|
|
77
|
-
*/
|
|
78
|
-
export declare const validate: (value: string | number) => boolean;
|
|
79
|
-
/**
|
|
80
|
-
* Aplica uma máscara a uma string
|
|
81
|
-
*
|
|
82
|
-
* @returns String string com a máscara aplicada
|
|
83
|
-
*/
|
|
84
|
-
export declare const mask: (value: string | number) => string;
|
|
85
|
-
/**
|
|
86
|
-
* Cria um número fake
|
|
87
|
-
*
|
|
88
|
-
* @returns String Número fake porém válido
|
|
89
|
-
*/
|
|
90
|
-
export declare const fake: (withMask?: boolean) => string;
|
|
91
|
-
export default validate;
|
|
1
|
+
/**
|
|
2
|
+
* isCNH()
|
|
3
|
+
* Calcula se uma CNH é válida
|
|
4
|
+
*
|
|
5
|
+
* @doc
|
|
6
|
+
* CNH deve possuir 11 caracteres
|
|
7
|
+
*
|
|
8
|
+
* - Os caracteres 1 a 9 são números sequenciais.
|
|
9
|
+
*
|
|
10
|
+
*
|
|
11
|
+
* - Os caracteres 10 e 11 são dígitos verificadores.
|
|
12
|
+
*
|
|
13
|
+
* 1) Partes do número
|
|
14
|
+
* ____________________________ ______
|
|
15
|
+
* | Número | D V |
|
|
16
|
+
* | 5 8 3 1 6 7 9 4 5 3 4 |
|
|
17
|
+
* |____________________________|_____|
|
|
18
|
+
*
|
|
19
|
+
* 2) Cálculo do primeiro DV.
|
|
20
|
+
*
|
|
21
|
+
* - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.
|
|
22
|
+
*
|
|
23
|
+
* 5 8 3 1 6 7 9 4 5
|
|
24
|
+
* x x x x x x x x x
|
|
25
|
+
* 2 3 4 5 6 7 8 9 10
|
|
26
|
+
* = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294
|
|
27
|
+
*
|
|
28
|
+
* - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o
|
|
29
|
+
* resto for 10, o DV1 é 0.
|
|
30
|
+
*
|
|
31
|
+
* 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3
|
|
32
|
+
* DV1 = 3
|
|
33
|
+
*
|
|
34
|
+
* 3) Cálculo do segundo DV
|
|
35
|
+
*
|
|
36
|
+
* - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere
|
|
37
|
+
* que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será
|
|
38
|
+
* multiplicado por 2 e ficará no final.
|
|
39
|
+
*
|
|
40
|
+
* 5 8 3 1 6 7 9 4 5 3
|
|
41
|
+
* x x x x x x x x x x
|
|
42
|
+
* 3 4 5 6 7 8 9 10 11 2
|
|
43
|
+
* = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348
|
|
44
|
+
*
|
|
45
|
+
* 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.
|
|
46
|
+
* DV2 = 4
|
|
47
|
+
*
|
|
48
|
+
* - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o
|
|
49
|
+
* resto for 10, o DV2 é 0.
|
|
50
|
+
*
|
|
51
|
+
* Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972
|
|
52
|
+
*
|
|
53
|
+
* @param {String} value Título eleitoral
|
|
54
|
+
* @returns {Boolean}
|
|
55
|
+
*/
|
|
56
|
+
/**
|
|
57
|
+
* Calcula o Dígito Verificador de um RENAVAM informado
|
|
58
|
+
*
|
|
59
|
+
* @returns String Número fake de um cnh válido
|
|
60
|
+
*/
|
|
61
|
+
export declare const dv: (value: string | number) => string;
|
|
62
|
+
/**
|
|
63
|
+
* validateOrFail()
|
|
64
|
+
* Valida se um número é válido e
|
|
65
|
+
* retorna uma exceção se não estiver
|
|
66
|
+
*
|
|
67
|
+
* @param {String|Number} value Número a ser validado
|
|
68
|
+
* @returns {Boolean}
|
|
69
|
+
*/
|
|
70
|
+
export declare const validateOrFail: (value: string | number) => boolean;
|
|
71
|
+
/**
|
|
72
|
+
* validate()
|
|
73
|
+
* Valida se um número é válido
|
|
74
|
+
*
|
|
75
|
+
* @param {String|Number} value Número a ser validado
|
|
76
|
+
* @returns {Boolean}
|
|
77
|
+
*/
|
|
78
|
+
export declare const validate: (value: string | number) => boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Aplica uma máscara a uma string
|
|
81
|
+
*
|
|
82
|
+
* @returns String string com a máscara aplicada
|
|
83
|
+
*/
|
|
84
|
+
export declare const mask: (value: string | number) => string;
|
|
85
|
+
/**
|
|
86
|
+
* Cria um número fake
|
|
87
|
+
*
|
|
88
|
+
* @returns String Número fake porém válido
|
|
89
|
+
*/
|
|
90
|
+
export declare const fake: (withMask?: boolean) => string;
|
|
91
|
+
export default validate;
|
package/dist/cnh.js
CHANGED
|
@@ -1,139 +1,139 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* isCNH()
|
|
4
|
-
* Calcula se uma CNH é válida
|
|
5
|
-
*
|
|
6
|
-
* @doc
|
|
7
|
-
* CNH deve possuir 11 caracteres
|
|
8
|
-
*
|
|
9
|
-
* - Os caracteres 1 a 9 são números sequenciais.
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* - Os caracteres 10 e 11 são dígitos verificadores.
|
|
13
|
-
*
|
|
14
|
-
* 1) Partes do número
|
|
15
|
-
* ____________________________ ______
|
|
16
|
-
* | Número | D V |
|
|
17
|
-
* | 5 8 3 1 6 7 9 4 5 3 4 |
|
|
18
|
-
* |____________________________|_____|
|
|
19
|
-
*
|
|
20
|
-
* 2) Cálculo do primeiro DV.
|
|
21
|
-
*
|
|
22
|
-
* - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.
|
|
23
|
-
*
|
|
24
|
-
* 5 8 3 1 6 7 9 4 5
|
|
25
|
-
* x x x x x x x x x
|
|
26
|
-
* 2 3 4 5 6 7 8 9 10
|
|
27
|
-
* = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294
|
|
28
|
-
*
|
|
29
|
-
* - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o
|
|
30
|
-
* resto for 10, o DV1 é 0.
|
|
31
|
-
*
|
|
32
|
-
* 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3
|
|
33
|
-
* DV1 = 3
|
|
34
|
-
*
|
|
35
|
-
* 3) Cálculo do segundo DV
|
|
36
|
-
*
|
|
37
|
-
* - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere
|
|
38
|
-
* que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será
|
|
39
|
-
* multiplicado por 2 e ficará no final.
|
|
40
|
-
*
|
|
41
|
-
* 5 8 3 1 6 7 9 4 5 3
|
|
42
|
-
* x x x x x x x x x x
|
|
43
|
-
* 3 4 5 6 7 8 9 10 11 2
|
|
44
|
-
* = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348
|
|
45
|
-
*
|
|
46
|
-
* 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.
|
|
47
|
-
* DV2 = 4
|
|
48
|
-
*
|
|
49
|
-
* - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o
|
|
50
|
-
* resto for 10, o DV2 é 0.
|
|
51
|
-
*
|
|
52
|
-
* Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972
|
|
53
|
-
*
|
|
54
|
-
* @param {String} value Título eleitoral
|
|
55
|
-
* @returns {Boolean}
|
|
56
|
-
*/
|
|
57
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
58
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
59
|
-
};
|
|
60
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
61
|
-
exports.fake = exports.mask = exports.validate = exports.validateOrFail = exports.dv = void 0;
|
|
62
|
-
const ValidationBRError_1 = __importDefault(require("./data/ValidationBRError"));
|
|
63
|
-
const utils_1 = require("./utils");
|
|
64
|
-
/**
|
|
65
|
-
* Calcula o Dígito Verificador de um RENAVAM informado
|
|
66
|
-
*
|
|
67
|
-
* @returns String Número fake de um cnh válido
|
|
68
|
-
*/
|
|
69
|
-
const dv = (value) => {
|
|
70
|
-
const cnh = (0, utils_1.clearValue)(value, 9, {
|
|
71
|
-
trimAtRight: true,
|
|
72
|
-
rejectEmpty: true,
|
|
73
|
-
});
|
|
74
|
-
const sum1 = (0, utils_1.sumElementsByMultipliers)(cnh.substring(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);
|
|
75
|
-
const dv1 = (0, utils_1.sumToDV)(sum1);
|
|
76
|
-
const sum2 = (0, utils_1.sumElementsByMultipliers)(cnh.substring(0, 9) + dv1, [3, 4, 5, 6, 7, 8, 9, 10, 11, 2]);
|
|
77
|
-
const dv2 = (0, utils_1.sumToDV)(sum2);
|
|
78
|
-
return `${dv1}${dv2}`;
|
|
79
|
-
};
|
|
80
|
-
exports.dv = dv;
|
|
81
|
-
/**
|
|
82
|
-
* validateOrFail()
|
|
83
|
-
* Valida se um número é válido e
|
|
84
|
-
* retorna uma exceção se não estiver
|
|
85
|
-
*
|
|
86
|
-
* @param {String|Number} value Número a ser validado
|
|
87
|
-
* @returns {Boolean}
|
|
88
|
-
*/
|
|
89
|
-
const validateOrFail = (value) => {
|
|
90
|
-
const cnh = (0, utils_1.clearValue)(value, 11, {
|
|
91
|
-
fillZerosAtLeft: true,
|
|
92
|
-
rejectEmpty: true,
|
|
93
|
-
rejectHigherLength: true,
|
|
94
|
-
rejectEqualSequence: true,
|
|
95
|
-
});
|
|
96
|
-
if ((0, exports.dv)(cnh) !== cnh.substring(9, 11)) {
|
|
97
|
-
throw ValidationBRError_1.default.INVALID_DV;
|
|
98
|
-
}
|
|
99
|
-
return true;
|
|
100
|
-
};
|
|
101
|
-
exports.validateOrFail = validateOrFail;
|
|
102
|
-
/**
|
|
103
|
-
* validate()
|
|
104
|
-
* Valida se um número é válido
|
|
105
|
-
*
|
|
106
|
-
* @param {String|Number} value Número a ser validado
|
|
107
|
-
* @returns {Boolean}
|
|
108
|
-
*/
|
|
109
|
-
const validate = (value) => {
|
|
110
|
-
try {
|
|
111
|
-
return (0, exports.validateOrFail)(value);
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
exports.validate = validate;
|
|
118
|
-
/**
|
|
119
|
-
* Aplica uma máscara a uma string
|
|
120
|
-
*
|
|
121
|
-
* @returns String string com a máscara aplicada
|
|
122
|
-
*/
|
|
123
|
-
const mask = (value) => (0, utils_1.applyMask)(value, '000000000-00');
|
|
124
|
-
exports.mask = mask;
|
|
125
|
-
/**
|
|
126
|
-
* Cria um número fake
|
|
127
|
-
*
|
|
128
|
-
* @returns String Número fake porém válido
|
|
129
|
-
*/
|
|
130
|
-
const fake = (withMask = false) => {
|
|
131
|
-
const value = (0, utils_1.fakeNumber)(9, true);
|
|
132
|
-
const cnh = `${value}${(0, exports.dv)(value)}`;
|
|
133
|
-
if (withMask)
|
|
134
|
-
return (0, exports.mask)(cnh);
|
|
135
|
-
return cnh;
|
|
136
|
-
};
|
|
137
|
-
exports.fake = fake;
|
|
138
|
-
exports.default = exports.validate;
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* isCNH()
|
|
4
|
+
* Calcula se uma CNH é válida
|
|
5
|
+
*
|
|
6
|
+
* @doc
|
|
7
|
+
* CNH deve possuir 11 caracteres
|
|
8
|
+
*
|
|
9
|
+
* - Os caracteres 1 a 9 são números sequenciais.
|
|
10
|
+
*
|
|
11
|
+
*
|
|
12
|
+
* - Os caracteres 10 e 11 são dígitos verificadores.
|
|
13
|
+
*
|
|
14
|
+
* 1) Partes do número
|
|
15
|
+
* ____________________________ ______
|
|
16
|
+
* | Número | D V |
|
|
17
|
+
* | 5 8 3 1 6 7 9 4 5 3 4 |
|
|
18
|
+
* |____________________________|_____|
|
|
19
|
+
*
|
|
20
|
+
* 2) Cálculo do primeiro DV.
|
|
21
|
+
*
|
|
22
|
+
* - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.
|
|
23
|
+
*
|
|
24
|
+
* 5 8 3 1 6 7 9 4 5
|
|
25
|
+
* x x x x x x x x x
|
|
26
|
+
* 2 3 4 5 6 7 8 9 10
|
|
27
|
+
* = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294
|
|
28
|
+
*
|
|
29
|
+
* - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o
|
|
30
|
+
* resto for 10, o DV1 é 0.
|
|
31
|
+
*
|
|
32
|
+
* 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3
|
|
33
|
+
* DV1 = 3
|
|
34
|
+
*
|
|
35
|
+
* 3) Cálculo do segundo DV
|
|
36
|
+
*
|
|
37
|
+
* - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere
|
|
38
|
+
* que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será
|
|
39
|
+
* multiplicado por 2 e ficará no final.
|
|
40
|
+
*
|
|
41
|
+
* 5 8 3 1 6 7 9 4 5 3
|
|
42
|
+
* x x x x x x x x x x
|
|
43
|
+
* 3 4 5 6 7 8 9 10 11 2
|
|
44
|
+
* = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348
|
|
45
|
+
*
|
|
46
|
+
* 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.
|
|
47
|
+
* DV2 = 4
|
|
48
|
+
*
|
|
49
|
+
* - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o
|
|
50
|
+
* resto for 10, o DV2 é 0.
|
|
51
|
+
*
|
|
52
|
+
* Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972
|
|
53
|
+
*
|
|
54
|
+
* @param {String} value Título eleitoral
|
|
55
|
+
* @returns {Boolean}
|
|
56
|
+
*/
|
|
57
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
58
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
59
|
+
};
|
|
60
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
61
|
+
exports.fake = exports.mask = exports.validate = exports.validateOrFail = exports.dv = void 0;
|
|
62
|
+
const ValidationBRError_1 = __importDefault(require("./data/ValidationBRError"));
|
|
63
|
+
const utils_1 = require("./utils");
|
|
64
|
+
/**
|
|
65
|
+
* Calcula o Dígito Verificador de um RENAVAM informado
|
|
66
|
+
*
|
|
67
|
+
* @returns String Número fake de um cnh válido
|
|
68
|
+
*/
|
|
69
|
+
const dv = (value) => {
|
|
70
|
+
const cnh = (0, utils_1.clearValue)(value, 9, {
|
|
71
|
+
trimAtRight: true,
|
|
72
|
+
rejectEmpty: true,
|
|
73
|
+
});
|
|
74
|
+
const sum1 = (0, utils_1.sumElementsByMultipliers)(cnh.substring(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);
|
|
75
|
+
const dv1 = (0, utils_1.sumToDV)(sum1);
|
|
76
|
+
const sum2 = (0, utils_1.sumElementsByMultipliers)(cnh.substring(0, 9) + dv1, [3, 4, 5, 6, 7, 8, 9, 10, 11, 2]);
|
|
77
|
+
const dv2 = (0, utils_1.sumToDV)(sum2);
|
|
78
|
+
return `${dv1}${dv2}`;
|
|
79
|
+
};
|
|
80
|
+
exports.dv = dv;
|
|
81
|
+
/**
|
|
82
|
+
* validateOrFail()
|
|
83
|
+
* Valida se um número é válido e
|
|
84
|
+
* retorna uma exceção se não estiver
|
|
85
|
+
*
|
|
86
|
+
* @param {String|Number} value Número a ser validado
|
|
87
|
+
* @returns {Boolean}
|
|
88
|
+
*/
|
|
89
|
+
const validateOrFail = (value) => {
|
|
90
|
+
const cnh = (0, utils_1.clearValue)(value, 11, {
|
|
91
|
+
fillZerosAtLeft: true,
|
|
92
|
+
rejectEmpty: true,
|
|
93
|
+
rejectHigherLength: true,
|
|
94
|
+
rejectEqualSequence: true,
|
|
95
|
+
});
|
|
96
|
+
if ((0, exports.dv)(cnh) !== cnh.substring(9, 11)) {
|
|
97
|
+
throw ValidationBRError_1.default.INVALID_DV;
|
|
98
|
+
}
|
|
99
|
+
return true;
|
|
100
|
+
};
|
|
101
|
+
exports.validateOrFail = validateOrFail;
|
|
102
|
+
/**
|
|
103
|
+
* validate()
|
|
104
|
+
* Valida se um número é válido
|
|
105
|
+
*
|
|
106
|
+
* @param {String|Number} value Número a ser validado
|
|
107
|
+
* @returns {Boolean}
|
|
108
|
+
*/
|
|
109
|
+
const validate = (value) => {
|
|
110
|
+
try {
|
|
111
|
+
return (0, exports.validateOrFail)(value);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
exports.validate = validate;
|
|
118
|
+
/**
|
|
119
|
+
* Aplica uma máscara a uma string
|
|
120
|
+
*
|
|
121
|
+
* @returns String string com a máscara aplicada
|
|
122
|
+
*/
|
|
123
|
+
const mask = (value) => (0, utils_1.applyMask)(value, '000000000-00');
|
|
124
|
+
exports.mask = mask;
|
|
125
|
+
/**
|
|
126
|
+
* Cria um número fake
|
|
127
|
+
*
|
|
128
|
+
* @returns String Número fake porém válido
|
|
129
|
+
*/
|
|
130
|
+
const fake = (withMask = false) => {
|
|
131
|
+
const value = (0, utils_1.fakeNumber)(9, true);
|
|
132
|
+
const cnh = `${value}${(0, exports.dv)(value)}`;
|
|
133
|
+
if (withMask)
|
|
134
|
+
return (0, exports.mask)(cnh);
|
|
135
|
+
return cnh;
|
|
136
|
+
};
|
|
137
|
+
exports.fake = fake;
|
|
138
|
+
exports.default = exports.validate;
|
|
139
139
|
//# sourceMappingURL=cnh.js.map
|
package/dist/cnh.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cnh.js","sourceRoot":"","sources":["../src/cnh.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;;;;;;AAEH,iFAAwD;AACxD,mCAA8F;AAE9F;;;;GAIG;AACI,MAAM,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,KAAK,EAAE,CAAC,EAAE;QAC/B,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,IAAA,gCAAwB,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IACxF,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAA;IAEzB,MAAM,IAAI,GAAG,IAAA,gCAAwB,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAClG,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAA;IAEzB,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,CAAA;AACvB,CAAC,CAAA;AAbY,QAAA,EAAE,MAad;AAED;;;;;;;GAOG;AACI,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,KAAK,EAAE,EAAE,EAAE;QAChC,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;QACxB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAA;IAEF,IAAI,IAAA,UAAE,EAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"cnh.js","sourceRoot":"","sources":["../src/cnh.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;;;;;;AAEH,iFAAwD;AACxD,mCAA8F;AAE9F;;;;GAIG;AACI,MAAM,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,KAAK,EAAE,CAAC,EAAE;QAC/B,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,IAAA,gCAAwB,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IACxF,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAA;IAEzB,MAAM,IAAI,GAAG,IAAA,gCAAwB,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAClG,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAA;IAEzB,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,CAAA;AACvB,CAAC,CAAA;AAbY,QAAA,EAAE,MAad;AAED;;;;;;;GAOG;AACI,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,KAAK,EAAE,EAAE,EAAE;QAChC,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;QACxB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAA;IAEF,IAAI,IAAA,UAAE,EAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACrC,MAAM,2BAAiB,CAAC,UAAU,CAAA;IACpC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAbY,QAAA,cAAc,kBAa1B;AAED;;;;;;GAMG;AACI,MAAM,QAAQ,GAAG,CAAC,KAAsB,EAAW,EAAE;IAC1D,IAAI,CAAC;QACH,OAAO,IAAA,sBAAc,EAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AANY,QAAA,QAAQ,YAMpB;AAED;;;;GAIG;AACI,MAAM,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,IAAA,iBAAS,EAAC,KAAK,EAAE,cAAc,CAAC,CAAA;AAA3E,QAAA,IAAI,QAAuE;AAExF;;;;GAIG;AACI,MAAM,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAEjC,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,IAAA,UAAE,EAAC,KAAK,CAAC,EAAE,CAAA;IAElC,IAAI,QAAQ;QAAE,OAAO,IAAA,YAAI,EAAC,GAAG,CAAC,CAAA;IAE9B,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AARY,QAAA,IAAI,QAQhB;AAED,kBAAe,gBAAQ,CAAA"}
|
package/dist/cnh.test.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|