validation-br 1.4.4 → 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.
Files changed (65) hide show
  1. package/.github/workflows/test.yml +6 -6
  2. package/.prettierrc.js +1 -1
  3. package/dist/cnh.d.ts +91 -91
  4. package/dist/cnh.js +138 -133
  5. package/dist/cnh.js.map +1 -1
  6. package/dist/cnh.test.d.ts +1 -1
  7. package/dist/cnpj.d.ts +87 -82
  8. package/dist/cnpj.js +150 -124
  9. package/dist/cnpj.js.map +1 -1
  10. package/dist/cnpj.test.d.ts +1 -1
  11. package/dist/cpf.d.ts +99 -99
  12. package/dist/cpf.js +146 -141
  13. package/dist/cpf.js.map +1 -1
  14. package/dist/cpf.test.d.ts +1 -1
  15. package/dist/data/ValidationBRError.d.ts +6 -6
  16. package/dist/data/ValidationBRError.js +9 -9
  17. package/dist/data/ValidationBRError.js.map +1 -1
  18. package/dist/index.d.ts +21 -21
  19. package/dist/index.js +41 -32
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.test.d.ts +1 -1
  22. package/dist/judicialProcess.d.ts +126 -126
  23. package/dist/judicialProcess.js +189 -184
  24. package/dist/judicialProcess.js.map +1 -1
  25. package/dist/judicialProcess.test.d.ts +1 -1
  26. package/dist/nup17.d.ts +102 -102
  27. package/dist/nup17.js +154 -149
  28. package/dist/nup17.js.map +1 -1
  29. package/dist/nup17.test.d.ts +1 -1
  30. package/dist/pisPasep.d.ts +81 -81
  31. package/dist/pisPasep.js +125 -120
  32. package/dist/pisPasep.js.map +1 -1
  33. package/dist/pisPasep.test.d.ts +1 -1
  34. package/dist/postalCode.d.ts +83 -83
  35. package/dist/postalCode.js +135 -130
  36. package/dist/postalCode.js.map +1 -1
  37. package/dist/postalCode.test.d.ts +1 -1
  38. package/dist/renavam.d.ts +75 -75
  39. package/dist/renavam.js +121 -116
  40. package/dist/renavam.js.map +1 -1
  41. package/dist/renavam.test.d.ts +1 -1
  42. package/dist/tituloEleitor.d.ts +93 -93
  43. package/dist/tituloEleitor.js +142 -137
  44. package/dist/tituloEleitor.js.map +1 -1
  45. package/dist/tituloEleitor.test.d.ts +1 -1
  46. package/dist/utils-applyMask.test.d.ts +1 -1
  47. package/dist/utils-checkRepeatedSequence.test.d.ts +1 -0
  48. package/dist/utils-clearValue.test.d.ts +1 -1
  49. package/dist/utils-fakeNumber.test.d.ts +1 -1
  50. package/dist/utils-insertAtPosition.test.d.ts +1 -1
  51. package/dist/utils-invalidListGenerator.test.d.ts +1 -1
  52. package/dist/utils-randomLetter.test.d.ts +1 -1
  53. package/dist/utils-removeFromPosition.test.d.ts +1 -1
  54. package/dist/utils-sumElementsByMultipliers.test.d.ts +1 -1
  55. package/dist/utils-sumToDV.test.d.ts +1 -1
  56. package/dist/utils.d.ts +131 -133
  57. package/dist/utils.js +188 -190
  58. package/dist/utils.js.map +1 -1
  59. package/docs/Nota.COCAD.SUARA.2024.05.49.CNPJ.Alfanumerico-1.pdf +0 -0
  60. package/{.eslintrc.js → eslint.config.js} +39 -39
  61. package/jest.config.js +1 -6
  62. package/package.json +6 -27
  63. package/readme.md +42 -27
  64. package/.eslintcache +0 -1
  65. package/.eslintignore +0 -2
package/dist/nup17.d.ts CHANGED
@@ -1,102 +1,102 @@
1
- /**
2
- * isFederalProtocol()
3
- * Calcula se é um número válido de protocolo do Governo Federal Brasileiro
4
- *
5
- * @doc
6
- * O Número Unificado de Protocolo de processos do Governo Federal, também conhecido
7
- * como NUP17, deve ter 17 caracteres, incluindo o dígito verificador de 2 caracteres.
8
- *
9
- * 1) Partes do número
10
- *
11
- * - Os caracteres 1 a 5 são um código do órgão que gerou o protocolo.
12
- *
13
- * - Os caracteres 6 a 11 são o número sequencial do protocolo, sendo que
14
- * cada órgão emissor tem sua própria sequência e esta é reiniciada a cada ano.
15
- *
16
- * - Os caracteres 12 a 15 são referentes ao ano de protocolo
17
- *
18
- * - Os caracteres 16 a 17 são referentes ao Dígito Verificador
19
- *
20
- * 1.2) Exemplo
21
- * ---------------------------------------------------------------
22
- * | Código do órgão | Número Sequencial | Ano | D V
23
- * 2 3 0 3 7 . 0 0 1 4 6 2 / 2 0 2 1 - 6 5
24
- *
25
- * 2) Cálculo do primeiro DV.
26
- *
27
- * - Soma-se o produto das algarismos 1 a 15 pelos números
28
- * 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
29
- *
30
- * 2 3 0 3 7 0 0 1 4 6 2 2 0 2 1
31
- * x x x x x x x x x x x x x x x
32
- * 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2
33
- * = 32 +45 +0 +39 +84 +0 +0 +9 +32 +42 +12 +10 +0 +6 +2 = 313
34
- *
35
- * - O somatório encontrado é dividido por 11. O resto da divisão é subtraído de 11.
36
- * 313 / 11 tem resto 5. 11 - 5 = 6. DV1 é 6.
37
- * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0. Caso retorne 11, o DV
38
- * será 1. Ou seja, se for maior ou igual a 10, desconsidere a casa das dezenas
39
- *
40
- * 3) Cálculo do segundo DV.
41
- *
42
- * - Acrescenta o valor do DV1 ao número e faz o somatório dos produtos pelos números
43
- * 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
44
- *
45
- * 2 3 0 3 7 0 0 1 4 6 2 2 0 2 1 6
46
- * x x x x x x x x x x x x x x x x
47
- * 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2
48
- * = 34 +48 +0 +42 +91 +0 +0 +10 +36 +48 +14 +12 +0 +8 +3 +12 = 358
49
- *
50
- * - O somatório encontrado é dividido por 11. O resto da divisão é subtraído de 11.
51
- * 358 / 11 tem resto 6. 11 - 6 = 1. DV1 é 5.
52
- * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0. Caso retorne 11, o DV
53
- * será 1. Ou seja, se for maior ou igual a 10, desconsidere a casa das dezenas.
54
- *
55
- * = DV = 65
56
- *
57
- * Fonte: https://www.gov.br/compras/pt-br/acesso-a-informacao/legislacao/portarias/portaria-interministerial-no-11-de-25-de-novembro-de-2019
58
- *
59
- * @param {String} value Título eleitoral
60
- * @returns {Boolean}
61
- */
62
- /**
63
- * dv()
64
- * Calcula o dígito verificador
65
- *
66
- * @param {String} value
67
- * @returns {String}
68
- */
69
- export declare const dv: (value: string) => string;
70
- /**
71
- * Aplica uma máscara ao número informado
72
- *
73
- * @param {String} value Número de Processo
74
- * @returns {String} Valor com a máscara
75
- */
76
- export declare const mask: (value: string) => string;
77
- /**
78
- * fake()
79
- * Gera um número válido
80
- *
81
- * @param {Boolean} withMask Define se o número deve ser gerado com ou sem máscara
82
- * @returns {String}
83
- */
84
- export declare const fake: (withMask?: boolean) => string;
85
- /**
86
- * validateOrFail()
87
- * Valida se um número é válido e
88
- * retorna uma exceção se não estiver
89
- *
90
- * @param {String} value Número a ser validado
91
- * @returns {Boolean}
92
- */
93
- export declare const validateOrFail: (value: string) => boolean;
94
- /**
95
- * validate()
96
- * Valida se um número é válido
97
- *
98
- * @param {String} value Número a ser validado
99
- * @returns {Boolean}
100
- */
101
- export declare const validate: (value: string) => boolean;
102
- export default validate;
1
+ /**
2
+ * isFederalProtocol()
3
+ * Calcula se é um número válido de protocolo do Governo Federal Brasileiro
4
+ *
5
+ * @doc
6
+ * O Número Unificado de Protocolo de processos do Governo Federal, também conhecido
7
+ * como NUP17, deve ter 17 caracteres, incluindo o dígito verificador de 2 caracteres.
8
+ *
9
+ * 1) Partes do número
10
+ *
11
+ * - Os caracteres 1 a 5 são um código do órgão que gerou o protocolo.
12
+ *
13
+ * - Os caracteres 6 a 11 são o número sequencial do protocolo, sendo que
14
+ * cada órgão emissor tem sua própria sequência e esta é reiniciada a cada ano.
15
+ *
16
+ * - Os caracteres 12 a 15 são referentes ao ano de protocolo
17
+ *
18
+ * - Os caracteres 16 a 17 são referentes ao Dígito Verificador
19
+ *
20
+ * 1.2) Exemplo
21
+ * ---------------------------------------------------------------
22
+ * | Código do órgão | Número Sequencial | Ano | D V
23
+ * 2 3 0 3 7 . 0 0 1 4 6 2 / 2 0 2 1 - 6 5
24
+ *
25
+ * 2) Cálculo do primeiro DV.
26
+ *
27
+ * - Soma-se o produto das algarismos 1 a 15 pelos números
28
+ * 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
29
+ *
30
+ * 2 3 0 3 7 0 0 1 4 6 2 2 0 2 1
31
+ * x x x x x x x x x x x x x x x
32
+ * 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2
33
+ * = 32 +45 +0 +39 +84 +0 +0 +9 +32 +42 +12 +10 +0 +6 +2 = 313
34
+ *
35
+ * - O somatório encontrado é dividido por 11. O resto da divisão é subtraído de 11.
36
+ * 313 / 11 tem resto 5. 11 - 5 = 6. DV1 é 6.
37
+ * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0. Caso retorne 11, o DV
38
+ * será 1. Ou seja, se for maior ou igual a 10, desconsidere a casa das dezenas
39
+ *
40
+ * 3) Cálculo do segundo DV.
41
+ *
42
+ * - Acrescenta o valor do DV1 ao número e faz o somatório dos produtos pelos números
43
+ * 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
44
+ *
45
+ * 2 3 0 3 7 0 0 1 4 6 2 2 0 2 1 6
46
+ * x x x x x x x x x x x x x x x x
47
+ * 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2
48
+ * = 34 +48 +0 +42 +91 +0 +0 +10 +36 +48 +14 +12 +0 +8 +3 +12 = 358
49
+ *
50
+ * - O somatório encontrado é dividido por 11. O resto da divisão é subtraído de 11.
51
+ * 358 / 11 tem resto 6. 11 - 6 = 1. DV1 é 5.
52
+ * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0. Caso retorne 11, o DV
53
+ * será 1. Ou seja, se for maior ou igual a 10, desconsidere a casa das dezenas.
54
+ *
55
+ * = DV = 65
56
+ *
57
+ * Fonte: https://www.gov.br/compras/pt-br/acesso-a-informacao/legislacao/portarias/portaria-interministerial-no-11-de-25-de-novembro-de-2019
58
+ *
59
+ * @param {String} value Título eleitoral
60
+ * @returns {Boolean}
61
+ */
62
+ /**
63
+ * dv()
64
+ * Calcula o dígito verificador
65
+ *
66
+ * @param {String} value
67
+ * @returns {String}
68
+ */
69
+ export declare const dv: (value: string) => string;
70
+ /**
71
+ * Aplica uma máscara ao número informado
72
+ *
73
+ * @param {String} value Número de Processo
74
+ * @returns {String} Valor com a máscara
75
+ */
76
+ export declare const mask: (value: string) => string;
77
+ /**
78
+ * fake()
79
+ * Gera um número válido
80
+ *
81
+ * @param {Boolean} withMask Define se o número deve ser gerado com ou sem máscara
82
+ * @returns {String}
83
+ */
84
+ export declare const fake: (withMask?: boolean) => string;
85
+ /**
86
+ * validateOrFail()
87
+ * Valida se um número é válido e
88
+ * retorna uma exceção se não estiver
89
+ *
90
+ * @param {String} value Número a ser validado
91
+ * @returns {Boolean}
92
+ */
93
+ export declare const validateOrFail: (value: string) => boolean;
94
+ /**
95
+ * validate()
96
+ * Valida se um número é válido
97
+ *
98
+ * @param {String} value Número a ser validado
99
+ * @returns {Boolean}
100
+ */
101
+ export declare const validate: (value: string) => boolean;
102
+ export default validate;
package/dist/nup17.js CHANGED
@@ -1,150 +1,155 @@
1
- "use strict";
2
- /**
3
- * isFederalProtocol()
4
- * Calcula se é um número válido de protocolo do Governo Federal Brasileiro
5
- *
6
- * @doc
7
- * O Número Unificado de Protocolo de processos do Governo Federal, também conhecido
8
- * como NUP17, deve ter 17 caracteres, incluindo o dígito verificador de 2 caracteres.
9
- *
10
- * 1) Partes do número
11
- *
12
- * - Os caracteres 1 a 5 são um código do órgão que gerou o protocolo.
13
- *
14
- * - Os caracteres 6 a 11 são o número sequencial do protocolo, sendo que
15
- * cada órgão emissor tem sua própria sequência e esta é reiniciada a cada ano.
16
- *
17
- * - Os caracteres 12 a 15 são referentes ao ano de protocolo
18
- *
19
- * - Os caracteres 16 a 17 são referentes ao Dígito Verificador
20
- *
21
- * 1.2) Exemplo
22
- * ---------------------------------------------------------------
23
- * | Código do órgão | Número Sequencial | Ano | D V
24
- * 2 3 0 3 7 . 0 0 1 4 6 2 / 2 0 2 1 - 6 5
25
- *
26
- * 2) Cálculo do primeiro DV.
27
- *
28
- * - Soma-se o produto das algarismos 1 a 15 pelos números
29
- * 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
30
- *
31
- * 2 3 0 3 7 0 0 1 4 6 2 2 0 2 1
32
- * x x x x x x x x x x x x x x x
33
- * 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2
34
- * = 32 +45 +0 +39 +84 +0 +0 +9 +32 +42 +12 +10 +0 +6 +2 = 313
35
- *
36
- * - O somatório encontrado é dividido por 11. O resto da divisão é subtraído de 11.
37
- * 313 / 11 tem resto 5. 11 - 5 = 6. DV1 é 6.
38
- * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0. Caso retorne 11, o DV
39
- * será 1. Ou seja, se for maior ou igual a 10, desconsidere a casa das dezenas
40
- *
41
- * 3) Cálculo do segundo DV.
42
- *
43
- * - Acrescenta o valor do DV1 ao número e faz o somatório dos produtos pelos números
44
- * 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
45
- *
46
- * 2 3 0 3 7 0 0 1 4 6 2 2 0 2 1 6
47
- * x x x x x x x x x x x x x x x x
48
- * 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2
49
- * = 34 +48 +0 +42 +91 +0 +0 +10 +36 +48 +14 +12 +0 +8 +3 +12 = 358
50
- *
51
- * - O somatório encontrado é dividido por 11. O resto da divisão é subtraído de 11.
52
- * 358 / 11 tem resto 6. 11 - 6 = 1. DV1 é 5.
53
- * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0. Caso retorne 11, o DV
54
- * será 1. Ou seja, se for maior ou igual a 10, desconsidere a casa das dezenas.
55
- *
56
- * = DV = 65
57
- *
58
- * Fonte: https://www.gov.br/compras/pt-br/acesso-a-informacao/legislacao/portarias/portaria-interministerial-no-11-de-25-de-novembro-de-2019
59
- *
60
- * @param {String} value Título eleitoral
61
- * @returns {Boolean}
62
- */
63
- var __importDefault = (this && this.__importDefault) || function (mod) {
64
- return (mod && mod.__esModule) ? mod : { "default": mod };
65
- };
66
- Object.defineProperty(exports, "__esModule", { value: true });
67
- exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
68
- const ValidationBRError_1 = __importDefault(require("./data/ValidationBRError"));
69
- const utils_1 = require("./utils");
70
- /**
71
- * dv()
72
- * Calcula o dígito verificador
73
- *
74
- * @param {String} value
75
- * @returns {String}
76
- */
77
- exports.dv = (value) => {
78
- const nup = utils_1.clearValue(value, 15, { rejectEmpty: true, trimAtRight: true });
79
- const nupReverse = nup.split('').reverse().join('');
80
- const sum1 = utils_1.sumElementsByMultipliers(nupReverse, [...Array(15)].map((_, i) => i + 2));
81
- const dv1 = _specificSumToDV(sum1);
82
- const sum2 = utils_1.sumElementsByMultipliers(dv1 + nupReverse, [...Array(16)].map((_, i) => i + 2));
83
- const dv2 = _specificSumToDV(sum2);
84
- return `${dv1}${dv2}`;
85
- };
86
- /**
87
- * Aplica uma máscara ao número informado
88
- *
89
- * @param {String} value Número de Processo
90
- * @returns {String} Valor com a máscara
91
- */
92
- exports.mask = (value) => utils_1.applyMask(value, '00000.000000/0000-00');
93
- /**
94
- * fake()
95
- * Gera um número válido
96
- *
97
- * @param {Boolean} withMask Define se o número deve ser gerado com ou sem máscara
98
- * @returns {String}
99
- */
100
- exports.fake = (withMask = false) => {
101
- const num = utils_1.fakeNumber(15, true);
102
- const nup = `${num}${exports.dv(String(num))}`;
103
- if (withMask)
104
- return exports.mask(nup);
105
- return nup;
106
- };
107
- /**
108
- * validateOrFail()
109
- * Valida se um número é válido e
110
- * retorna uma exceção se não estiver
111
- *
112
- * @param {String} value Número a ser validado
113
- * @returns {Boolean}
114
- */
115
- exports.validateOrFail = (value) => {
116
- const nup = utils_1.clearValue(value, 17, {
117
- rejectEmpty: true,
118
- rejectHigherLength: true,
119
- });
120
- if (exports.dv(nup) !== nup.substring(15, 17)) {
121
- throw ValidationBRError_1.default.INVALID_DV;
122
- }
123
- return true;
124
- };
125
- /**
126
- * validate()
127
- * Valida se um número é válido
128
- *
129
- * @param {String} value Número a ser validado
130
- * @returns {Boolean}
131
- */
132
- exports.validate = (value) => {
133
- try {
134
- return exports.validateOrFail(value);
135
- }
136
- catch (error) {
137
- return false;
138
- }
139
- };
140
- exports.default = exports.validate;
141
- function _specificSumToDV(sum) {
142
- const rest = 11 - (sum % 11);
143
- const exceptions = [
144
- { rest: 11, dv: 1 },
145
- { rest: 10, dv: 0 },
146
- ];
147
- const inExceptions = exceptions.find((item) => item.rest === rest);
148
- return !inExceptions ? rest : inExceptions.dv;
149
- }
1
+ "use strict";
2
+ /**
3
+ * isFederalProtocol()
4
+ * Calcula se é um número válido de protocolo do Governo Federal Brasileiro
5
+ *
6
+ * @doc
7
+ * O Número Unificado de Protocolo de processos do Governo Federal, também conhecido
8
+ * como NUP17, deve ter 17 caracteres, incluindo o dígito verificador de 2 caracteres.
9
+ *
10
+ * 1) Partes do número
11
+ *
12
+ * - Os caracteres 1 a 5 são um código do órgão que gerou o protocolo.
13
+ *
14
+ * - Os caracteres 6 a 11 são o número sequencial do protocolo, sendo que
15
+ * cada órgão emissor tem sua própria sequência e esta é reiniciada a cada ano.
16
+ *
17
+ * - Os caracteres 12 a 15 são referentes ao ano de protocolo
18
+ *
19
+ * - Os caracteres 16 a 17 são referentes ao Dígito Verificador
20
+ *
21
+ * 1.2) Exemplo
22
+ * ---------------------------------------------------------------
23
+ * | Código do órgão | Número Sequencial | Ano | D V
24
+ * 2 3 0 3 7 . 0 0 1 4 6 2 / 2 0 2 1 - 6 5
25
+ *
26
+ * 2) Cálculo do primeiro DV.
27
+ *
28
+ * - Soma-se o produto das algarismos 1 a 15 pelos números
29
+ * 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
30
+ *
31
+ * 2 3 0 3 7 0 0 1 4 6 2 2 0 2 1
32
+ * x x x x x x x x x x x x x x x
33
+ * 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2
34
+ * = 32 +45 +0 +39 +84 +0 +0 +9 +32 +42 +12 +10 +0 +6 +2 = 313
35
+ *
36
+ * - O somatório encontrado é dividido por 11. O resto da divisão é subtraído de 11.
37
+ * 313 / 11 tem resto 5. 11 - 5 = 6. DV1 é 6.
38
+ * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0. Caso retorne 11, o DV
39
+ * será 1. Ou seja, se for maior ou igual a 10, desconsidere a casa das dezenas
40
+ *
41
+ * 3) Cálculo do segundo DV.
42
+ *
43
+ * - Acrescenta o valor do DV1 ao número e faz o somatório dos produtos pelos números
44
+ * 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
45
+ *
46
+ * 2 3 0 3 7 0 0 1 4 6 2 2 0 2 1 6
47
+ * x x x x x x x x x x x x x x x x
48
+ * 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2
49
+ * = 34 +48 +0 +42 +91 +0 +0 +10 +36 +48 +14 +12 +0 +8 +3 +12 = 358
50
+ *
51
+ * - O somatório encontrado é dividido por 11. O resto da divisão é subtraído de 11.
52
+ * 358 / 11 tem resto 6. 11 - 6 = 1. DV1 é 5.
53
+ * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0. Caso retorne 11, o DV
54
+ * será 1. Ou seja, se for maior ou igual a 10, desconsidere a casa das dezenas.
55
+ *
56
+ * = DV = 65
57
+ *
58
+ * Fonte: https://www.gov.br/compras/pt-br/acesso-a-informacao/legislacao/portarias/portaria-interministerial-no-11-de-25-de-novembro-de-2019
59
+ *
60
+ * @param {String} value Título eleitoral
61
+ * @returns {Boolean}
62
+ */
63
+ var __importDefault = (this && this.__importDefault) || function (mod) {
64
+ return (mod && mod.__esModule) ? mod : { "default": mod };
65
+ };
66
+ Object.defineProperty(exports, "__esModule", { value: true });
67
+ exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
68
+ const ValidationBRError_1 = __importDefault(require("./data/ValidationBRError"));
69
+ const utils_1 = require("./utils");
70
+ /**
71
+ * dv()
72
+ * Calcula o dígito verificador
73
+ *
74
+ * @param {String} value
75
+ * @returns {String}
76
+ */
77
+ const dv = (value) => {
78
+ const nup = (0, utils_1.clearValue)(value, 15, { rejectEmpty: true, trimAtRight: true });
79
+ const nupReverse = nup.split('').reverse().join('');
80
+ const sum1 = (0, utils_1.sumElementsByMultipliers)(nupReverse, [...Array(15)].map((_, i) => i + 2));
81
+ const dv1 = _specificSumToDV(sum1);
82
+ const sum2 = (0, utils_1.sumElementsByMultipliers)(dv1 + nupReverse, [...Array(16)].map((_, i) => i + 2));
83
+ const dv2 = _specificSumToDV(sum2);
84
+ return `${dv1}${dv2}`;
85
+ };
86
+ exports.dv = dv;
87
+ /**
88
+ * Aplica uma máscara ao número informado
89
+ *
90
+ * @param {String} value Número de Processo
91
+ * @returns {String} Valor com a máscara
92
+ */
93
+ const mask = (value) => (0, utils_1.applyMask)(value, '00000.000000/0000-00');
94
+ exports.mask = mask;
95
+ /**
96
+ * fake()
97
+ * Gera um número válido
98
+ *
99
+ * @param {Boolean} withMask Define se o número deve ser gerado com ou sem máscara
100
+ * @returns {String}
101
+ */
102
+ const fake = (withMask = false) => {
103
+ const num = (0, utils_1.fakeNumber)(15, true);
104
+ const nup = `${num}${(0, exports.dv)(String(num))}`;
105
+ if (withMask)
106
+ return (0, exports.mask)(nup);
107
+ return nup;
108
+ };
109
+ exports.fake = fake;
110
+ /**
111
+ * validateOrFail()
112
+ * Valida se um número é válido e
113
+ * retorna uma exceção se não estiver
114
+ *
115
+ * @param {String} value Número a ser validado
116
+ * @returns {Boolean}
117
+ */
118
+ const validateOrFail = (value) => {
119
+ const nup = (0, utils_1.clearValue)(value, 17, {
120
+ rejectEmpty: true,
121
+ rejectHigherLength: true,
122
+ });
123
+ if ((0, exports.dv)(nup) !== nup.substring(15, 17)) {
124
+ throw ValidationBRError_1.default.INVALID_DV;
125
+ }
126
+ return true;
127
+ };
128
+ exports.validateOrFail = validateOrFail;
129
+ /**
130
+ * validate()
131
+ * Valida se um número é válido
132
+ *
133
+ * @param {String} value Número a ser validado
134
+ * @returns {Boolean}
135
+ */
136
+ const validate = (value) => {
137
+ try {
138
+ return (0, exports.validateOrFail)(value);
139
+ }
140
+ catch (error) {
141
+ return false;
142
+ }
143
+ };
144
+ exports.validate = validate;
145
+ exports.default = exports.validate;
146
+ function _specificSumToDV(sum) {
147
+ const rest = 11 - (sum % 11);
148
+ const exceptions = [
149
+ { rest: 11, dv: 1 },
150
+ { rest: 10, dv: 0 },
151
+ ];
152
+ const inExceptions = exceptions.find((item) => item.rest === rest);
153
+ return !inExceptions ? rest : inExceptions.dv;
154
+ }
150
155
  //# sourceMappingURL=nup17.js.map
package/dist/nup17.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"nup17.js","sourceRoot":"","sources":["../src/nup17.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;;;;;;AAEH,iFAAwD;AACxD,mCAAqF;AAErF;;;;;;GAMG;AACU,QAAA,EAAE,GAAG,CAAC,KAAa,EAAU,EAAE;IAC1C,MAAM,GAAG,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3E,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEnD,MAAM,IAAI,GAAG,gCAAwB,CACnC,UAAU,EACV,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CACpC,CAAA;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAElC,MAAM,IAAI,GAAG,gCAAwB,CACnC,GAAG,GAAG,UAAU,EAChB,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CACpC,CAAA;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAElC,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,CAAA;AACvB,CAAC,CAAA;AAED;;;;;GAKG;AACU,QAAA,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,iBAAS,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAA;AAEvF;;;;;;GAMG;AACU,QAAA,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,GAAG,GAAG,kBAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAEhC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,UAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;IAEtC,IAAI,QAAQ;QAAE,OAAO,YAAI,CAAC,GAAG,CAAC,CAAA;IAC9B,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED;;;;;;;GAOG;AACU,QAAA,cAAc,GAAG,CAAC,KAAa,EAAW,EAAE;IACvD,MAAM,GAAG,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,EAAE;QAChC,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;KACzB,CAAC,CAAA;IAEF,IAAI,UAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QACrC,MAAM,2BAAiB,CAAC,UAAU,CAAA;KACnC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;;;GAMG;AACU,QAAA,QAAQ,GAAG,CAAC,KAAa,EAAW,EAAE;IACjD,IAAI;QACF,OAAO,sBAAc,CAAC,KAAK,CAAC,CAAA;KAC7B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AAED,kBAAe,gBAAQ,CAAA;AAEvB,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAA;IAC5B,MAAM,UAAU,GAAG;QACjB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;QACnB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;KACpB,CAAA;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAElE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAA;AAC/C,CAAC"}
1
+ {"version":3,"file":"nup17.js","sourceRoot":"","sources":["../src/nup17.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export {};
1
+ export {};