validation-br 1.4.5 → 1.5.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.
Files changed (63) 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 -138
  5. package/dist/cnh.js.map +1 -1
  6. package/dist/cnh.test.d.ts +1 -1
  7. package/dist/cnpj.d.ts +114 -82
  8. package/dist/cnpj.js +179 -129
  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 -146
  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 -41
  20. package/dist/index.test.d.ts +1 -1
  21. package/dist/judicialProcess.d.ts +126 -126
  22. package/dist/judicialProcess.js +189 -189
  23. package/dist/judicialProcess.js.map +1 -1
  24. package/dist/judicialProcess.test.d.ts +1 -1
  25. package/dist/nup17.d.ts +102 -102
  26. package/dist/nup17.js +154 -154
  27. package/dist/nup17.js.map +1 -1
  28. package/dist/nup17.test.d.ts +1 -1
  29. package/dist/pisPasep.d.ts +81 -81
  30. package/dist/pisPasep.js +125 -125
  31. package/dist/pisPasep.js.map +1 -1
  32. package/dist/pisPasep.test.d.ts +1 -1
  33. package/dist/postalCode.d.ts +83 -83
  34. package/dist/postalCode.js +135 -135
  35. package/dist/postalCode.js.map +1 -1
  36. package/dist/postalCode.test.d.ts +1 -1
  37. package/dist/renavam.d.ts +75 -75
  38. package/dist/renavam.js +121 -121
  39. package/dist/renavam.js.map +1 -1
  40. package/dist/renavam.test.d.ts +1 -1
  41. package/dist/tituloEleitor.d.ts +93 -93
  42. package/dist/tituloEleitor.js +142 -142
  43. package/dist/tituloEleitor.js.map +1 -1
  44. package/dist/tituloEleitor.test.d.ts +1 -1
  45. package/dist/utils-applyMask.test.d.ts +1 -1
  46. package/dist/utils-checkRepeatedSequence.test.d.ts +1 -0
  47. package/dist/utils-clearValue.test.d.ts +1 -1
  48. package/dist/utils-fakeNumber.test.d.ts +1 -1
  49. package/dist/utils-insertAtPosition.test.d.ts +1 -1
  50. package/dist/utils-invalidListGenerator.test.d.ts +1 -1
  51. package/dist/utils-randomLetter.test.d.ts +1 -1
  52. package/dist/utils-removeFromPosition.test.d.ts +1 -1
  53. package/dist/utils-sumElementsByMultipliers.test.d.ts +1 -1
  54. package/dist/utils-sumToDV.test.d.ts +1 -1
  55. package/dist/utils.d.ts +131 -133
  56. package/dist/utils.js +189 -190
  57. package/dist/utils.js.map +1 -1
  58. package/{.eslintrc.js → eslint.config.js} +39 -39
  59. package/jest.config.js +1 -6
  60. package/package.json +5 -25
  61. package/readme.md +11 -2
  62. package/.eslintcache +0 -1
  63. package/.eslintignore +0 -2
package/dist/cnpj.d.ts CHANGED
@@ -1,82 +1,114 @@
1
- /**
2
- * isCNPJ()
3
- * Calcula se um CNPJ é válido
4
- *
5
- * @doc
6
- * - CNPJ deve possuir 14 dígitos no formato 00.000.000/0000-00
7
- *
8
- * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal
9
- *
10
- * - Os caracteres 9 a 12 são a identificação das filiais da empresa.
11
- *
12
- * - Os caracteres 13 e 14 são os dígitos verificadores
13
- *
14
- * 1) Partes do número
15
- * _______________________________ _______________ _______
16
- * | Número | Filiais | DV |
17
- * | 1 1 . 2 2 2 . 3 3 3 / 0 0 0 1 - X Y |
18
- * |_______________________________|_______________|_______|
19
- *
20
- * 2) Cálculo do primeiro DV.
21
- *
22
- * - Soma-se o produto das algarismos 1 a 12 pelos números 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
23
- *
24
- * 1 1 2 2 2 3 3 3 0 0 0 1
25
- * x x x x x x x x x x x x
26
- * 5 4 3 2 9 8 7 6 5 4 3 2
27
- * = 5 +4 +6 +4 +18 +24 +21 +18 +0 +0 +0 +2 = 102
28
- *
29
- * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
30
- * 102 / 11 tem resto 8. 11 - 3 = 8. DV1 é 8.
31
- * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.
32
- *
33
- * 3) Cálculo do segundo DV.
34
- *
35
- * - Soma-se o produto das algarismos 1 a 13 (incluindo o DV1 calculado) pelos
36
- * números 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.
37
- *
38
- * 1 1 2 2 2 3 3 3 0 0 0 1 8
39
- * x x x x x x x x x x x x x
40
- * 6 5 4 3 2 9 8 7 6 5 4 3 2
41
- * = 6 +5 +8 +6 +4 +27 +24 +21 +0 +0 +0 +3 +16 = 120
42
- *
43
- * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
44
- * 120 / 11 tem resto 10. 11 - 10 = 1. DV2 é 1.
45
- * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.
46
- *
47
- * Fonte: http://www.macoratti.net/alg_cnpj.htm
48
- *
49
- * @param {String} value Título eleitoral
50
- * @returns {Boolean}
51
- */
52
- export declare const dv: (value: string | number) => string;
53
- /**
54
- * Aplica uma máscara ao número informado
55
- *
56
- * @param {String} value Número de Processo
57
- * @returns {String} Valor com a máscara
58
- */
59
- export declare const mask: (value: string | number) => string;
60
- /**
61
- *
62
- *
63
- */
64
- export declare const fake: (withMask?: boolean) => string;
65
- /**
66
- * validateOrFail()
67
- * Valida se um número é válido e
68
- * retorna uma exceção se não estiver
69
- *
70
- * @param {String|Number} value Número a ser validado
71
- * @returns {Boolean}
72
- */
73
- export declare const validateOrFail: (value: string | number) => boolean;
74
- /**
75
- * validate()
76
- * Valida se um número é válido
77
- *
78
- * @param {String|Number} value Número a ser validado
79
- * @returns {Boolean}
80
- */
81
- export declare const validate: (value: string | number) => boolean;
82
- export default validate;
1
+ /**
2
+ * isCNPJ()
3
+ * Calcula se um CNPJ é válido
4
+ *
5
+ * A partir da Nota Técnica conjunta COCAD/SUARA/RFB nº 49 de 14 de maio de 2024, CNPJ passa
6
+ * a poder ser criado com letras e números, ao invés de apenas números. Esta alteração entra
7
+ * em vigor em 2026.
8
+ *
9
+ *
10
+ * @doc
11
+ * - CNPJ deve possuir 14 dígitos no formato AA.AAA.AAA/AAAA-NN, onde A representa letras
12
+ * ou números e N representa números (Nota Técnica conjunta COCAD/SUARA/RFB nº 49 de 14 de maio de 2024)
13
+ *
14
+ * - Os caracteres 1 a 8 são a identificação da empresa definida pela Receita Federal. Podem ser letras ou números
15
+ *
16
+ * - Os caracteres 9 a 12 são a identificação das filiais da empresa. Podendo ser letras ou números
17
+ *
18
+ * - Os caracteres 13 e 14 são os dígitos verificadores
19
+ *
20
+ * 1) Partes do número
21
+ * _______________________________ _______________ _______
22
+ * | Número | Filiais | DV |
23
+ * | 1 1 . 2 2 2 . 3 3 3 / 0 0 0 1 - X Y |
24
+ * |_______________________________|_______________|_______|
25
+ *
26
+ *
27
+ * 2.1) Conversão dos números para tabela ASCII
28
+ * Converte os caracteres do CNPJ em valores numéricos, mesmo que alguns deles
29
+ * sejam numéricos. A conversão será baseada na tabela ASCII
30
+ *
31
+ * Tabela ASCII
32
+ * 0 = 48 1 = 49 2 = 50 3 = 51 4 = 52
33
+ * 5 = 53 6 = 54 7 = 55 8 = 56 9 = 57
34
+ * A = 65 B = 66 C = 67 D = 68 E = 69
35
+ * F = 70 G = 71 H = 72 I = 73 J = 74
36
+ * K = 75 L = 76 M = 77 N = 78 O = 79
37
+ * P = 80 Q = 81 R = 82 S = 83 T = 84
38
+ * U = 85 V = 86 W = 87 X = 88 Y = 89
39
+ * Z = 90
40
+ *
41
+ * Ao converter cada dígito do CNPJ para o seu equivalente na tabela ASCII, subtraia de 48
42
+ * para obter o número que será multiplicado.
43
+ * Como o "0" é 48 e deve-se subtrair de 48, não mudanças nos números.
44
+ *
45
+ *
46
+ *
47
+ * 2) Cálculo do primeiro DV.
48
+ *
49
+ * - Soma-se o produto das algarismos 1 a 12 pelos números 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
50
+ *
51
+ * 1 1 2 2 2 3 3 3 0 0 0 1
52
+ * x x x x x x x x x x x x
53
+ * 5 4 3 2 9 8 7 6 5 4 3 2
54
+ * = 5 +4 +6 +4 +18 +24 +21 +18 +0 +0 +0 +2 = 102
55
+ *
56
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
57
+ * 102 / 11 tem resto 8. 11 - 3 = 8. DV1 é 8.
58
+ * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.
59
+ *
60
+ * 3) Cálculo do segundo DV.
61
+ *
62
+ * - Soma-se o produto das algarismos 1 a 13 (incluindo o DV1 calculado) pelos
63
+ * números 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.
64
+ *
65
+ * 1 1 2 2 2 3 3 3 0 0 0 1 8
66
+ * x x x x x x x x x x x x x
67
+ * 6 5 4 3 2 9 8 7 6 5 4 3 2
68
+ * = 6 +5 +8 +6 +4 +27 +24 +21 +0 +0 +0 +3 +16 = 120
69
+ *
70
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
71
+ * 120 / 11 tem resto 10. 11 - 10 = 1. DV2 é 1.
72
+ * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.
73
+ *
74
+ * Fonte: http://www.macoratti.net/alg_cnpj.htm
75
+ *
76
+ * @param {String} value Título eleitoral
77
+ * @returns {Boolean}
78
+ */
79
+ type FakeInput = {
80
+ withMask?: boolean;
81
+ alphanumeric?: boolean;
82
+ };
83
+ export declare function dv(value: string | number): string;
84
+ /**
85
+ * Aplica uma máscara ao número informado
86
+ *
87
+ * @param {String} value Número de Processo
88
+ * @returns {String} Valor com a máscara
89
+ */
90
+ export declare function mask(value: string | number): string;
91
+ /**
92
+ *
93
+ *
94
+ */
95
+ export declare function fake(options?: FakeInput): string;
96
+ export declare function fake(withMask?: boolean): string;
97
+ /**
98
+ * validateOrFail()
99
+ * Valida se um número é válido e
100
+ * retorna uma exceção se não estiver
101
+ *
102
+ * @param {String|Number} value Número a ser validado
103
+ * @returns {Boolean}
104
+ */
105
+ export declare function validateOrFail(value: string | number): boolean;
106
+ /**
107
+ * validate()
108
+ * Valida se um número é válido
109
+ *
110
+ * @param {String|Number} value Número a ser validado
111
+ * @returns {Boolean}
112
+ */
113
+ export declare function validate(value: string | number): boolean;
114
+ export default validate;
package/dist/cnpj.js CHANGED
@@ -1,130 +1,180 @@
1
- "use strict";
2
- /**
3
- * isCNPJ()
4
- * Calcula se um CNPJ é válido
5
- *
6
- * @doc
7
- * - CNPJ deve possuir 14 dígitos no formato 00.000.000/0000-00
8
- *
9
- * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal
10
- *
11
- * - Os caracteres 9 a 12 são a identificação das filiais da empresa.
12
- *
13
- * - Os caracteres 13 e 14 são os dígitos verificadores
14
- *
15
- * 1) Partes do número
16
- * _______________________________ _______________ _______
17
- * | Número | Filiais | DV |
18
- * | 1 1 . 2 2 2 . 3 3 3 / 0 0 0 1 - X Y |
19
- * |_______________________________|_______________|_______|
20
- *
21
- * 2) Cálculo do primeiro DV.
22
- *
23
- * - Soma-se o produto das algarismos 1 a 12 pelos números 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
24
- *
25
- * 1 1 2 2 2 3 3 3 0 0 0 1
26
- * x x x x x x x x x x x x
27
- * 5 4 3 2 9 8 7 6 5 4 3 2
28
- * = 5 +4 +6 +4 +18 +24 +21 +18 +0 +0 +0 +2 = 102
29
- *
30
- * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
31
- * 102 / 11 tem resto 8. 11 - 3 = 8. DV1 é 8.
32
- * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.
33
- *
34
- * 3) Cálculo do segundo DV.
35
- *
36
- * - Soma-se o produto das algarismos 1 a 13 (incluindo o DV1 calculado) pelos
37
- * números 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.
38
- *
39
- * 1 1 2 2 2 3 3 3 0 0 0 1 8
40
- * x x x x x x x x x x x x x
41
- * 6 5 4 3 2 9 8 7 6 5 4 3 2
42
- * = 6 +5 +8 +6 +4 +27 +24 +21 +0 +0 +0 +3 +16 = 120
43
- *
44
- * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
45
- * 120 / 11 tem resto 10. 11 - 10 = 1. DV2 é 1.
46
- * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.
47
- *
48
- * Fonte: http://www.macoratti.net/alg_cnpj.htm
49
- *
50
- * @param {String} value Título eleitoral
51
- * @returns {Boolean}
52
- */
53
- var __importDefault = (this && this.__importDefault) || function (mod) {
54
- return (mod && mod.__esModule) ? mod : { "default": mod };
55
- };
56
- Object.defineProperty(exports, "__esModule", { value: true });
57
- exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
58
- const ValidationBRError_1 = __importDefault(require("./data/ValidationBRError"));
59
- const utils_1 = require("./utils");
60
- const dv = (value) => {
61
- const cnpj = (0, utils_1.clearValue)(value, 12, {
62
- trimAtRight: true,
63
- rejectEmpty: true,
64
- });
65
- const sum1 = (0, utils_1.sumElementsByMultipliers)(cnpj.substring(0, 12), '543298765432');
66
- const dv1 = (0, utils_1.sumToDV)(sum1);
67
- const sum2 = (0, utils_1.sumElementsByMultipliers)(cnpj.substring(0, 12) + dv1, '6543298765432');
68
- const dv2 = (0, utils_1.sumToDV)(sum2);
69
- return `${dv1}${dv2}`;
70
- };
71
- exports.dv = dv;
72
- /**
73
- * Aplica uma máscara ao número informado
74
- *
75
- * @param {String} value Número de Processo
76
- * @returns {String} Valor com a máscara
77
- */
78
- const mask = (value) => (0, utils_1.applyMask)(value, '00.000.000/0000-00');
79
- exports.mask = mask;
80
- /**
81
- *
82
- *
83
- */
84
- const fake = (withMask = false) => {
85
- const num = (0, utils_1.fakeNumber)(12, true);
86
- const cnpj = `${num}${(0, exports.dv)(num)}`;
87
- if (withMask)
88
- return (0, exports.mask)(cnpj);
89
- return cnpj;
90
- };
91
- exports.fake = fake;
92
- /**
93
- * validateOrFail()
94
- * Valida se um número é válido e
95
- * retorna uma exceção se não estiver
96
- *
97
- * @param {String|Number} value Número a ser validado
98
- * @returns {Boolean}
99
- */
100
- const validateOrFail = (value) => {
101
- const cnpj = (0, utils_1.clearValue)(value, 14, {
102
- fillZerosAtLeft: true,
103
- rejectEmpty: true,
104
- rejectHigherLength: true,
105
- rejectEqualSequence: true,
106
- });
107
- if ((0, exports.dv)(cnpj) !== cnpj.substring(12, 14)) {
108
- throw ValidationBRError_1.default.INVALID_DV;
109
- }
110
- return true;
111
- };
112
- exports.validateOrFail = validateOrFail;
113
- /**
114
- * validate()
115
- * Valida se um número é válido
116
- *
117
- * @param {String|Number} value Número a ser validado
118
- * @returns {Boolean}
119
- */
120
- const validate = (value) => {
121
- try {
122
- return (0, exports.validateOrFail)(value);
123
- }
124
- catch (error) {
125
- return false;
126
- }
127
- };
128
- exports.validate = validate;
129
- exports.default = exports.validate;
1
+ "use strict";
2
+ /**
3
+ * isCNPJ()
4
+ * Calcula se um CNPJ é válido
5
+ *
6
+ * A partir da Nota Técnica conjunta COCAD/SUARA/RFB nº 49 de 14 de maio de 2024, CNPJ passa
7
+ * a poder ser criado com letras e números, ao invés de apenas números. Esta alteração entra
8
+ * em vigor em 2026.
9
+ *
10
+ *
11
+ * @doc
12
+ * - CNPJ deve possuir 14 dígitos no formato AA.AAA.AAA/AAAA-NN, onde A representa letras
13
+ * ou números e N representa números (Nota Técnica conjunta COCAD/SUARA/RFB nº 49 de 14 de maio de 2024)
14
+ *
15
+ * - Os caracteres 1 a 8 são a identificação da empresa definida pela Receita Federal. Podem ser letras ou números
16
+ *
17
+ * - Os caracteres 9 a 12 são a identificação das filiais da empresa. Podendo ser letras ou números
18
+ *
19
+ * - Os caracteres 13 e 14 são os dígitos verificadores
20
+ *
21
+ * 1) Partes do número
22
+ * _______________________________ _______________ _______
23
+ * | Número | Filiais | DV |
24
+ * | 1 1 . 2 2 2 . 3 3 3 / 0 0 0 1 - X Y |
25
+ * |_______________________________|_______________|_______|
26
+ *
27
+ *
28
+ * 2.1) Conversão dos números para tabela ASCII
29
+ * Converte os caracteres do CNPJ em valores numéricos, mesmo que alguns deles
30
+ * sejam numéricos. A conversão será baseada na tabela ASCII
31
+ *
32
+ * Tabela ASCII
33
+ * 0 = 48 1 = 49 2 = 50 3 = 51 4 = 52
34
+ * 5 = 53 6 = 54 7 = 55 8 = 56 9 = 57
35
+ * A = 65 B = 66 C = 67 D = 68 E = 69
36
+ * F = 70 G = 71 H = 72 I = 73 J = 74
37
+ * K = 75 L = 76 M = 77 N = 78 O = 79
38
+ * P = 80 Q = 81 R = 82 S = 83 T = 84
39
+ * U = 85 V = 86 W = 87 X = 88 Y = 89
40
+ * Z = 90
41
+ *
42
+ * Ao converter cada dígito do CNPJ para o seu equivalente na tabela ASCII, subtraia de 48
43
+ * para obter o número que será multiplicado.
44
+ * Como o "0" é 48 e deve-se subtrair de 48, não mudanças nos números.
45
+ *
46
+ *
47
+ *
48
+ * 2) Cálculo do primeiro DV.
49
+ *
50
+ * - Soma-se o produto das algarismos 1 a 12 pelos números 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
51
+ *
52
+ * 1 1 2 2 2 3 3 3 0 0 0 1
53
+ * x x x x x x x x x x x x
54
+ * 5 4 3 2 9 8 7 6 5 4 3 2
55
+ * = 5 +4 +6 +4 +18 +24 +21 +18 +0 +0 +0 +2 = 102
56
+ *
57
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
58
+ * 102 / 11 tem resto 8. 11 - 3 = 8. DV1 é 8.
59
+ * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.
60
+ *
61
+ * 3) Cálculo do segundo DV.
62
+ *
63
+ * - Soma-se o produto das algarismos 1 a 13 (incluindo o DV1 calculado) pelos
64
+ * números 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.
65
+ *
66
+ * 1 1 2 2 2 3 3 3 0 0 0 1 8
67
+ * x x x x x x x x x x x x x
68
+ * 6 5 4 3 2 9 8 7 6 5 4 3 2
69
+ * = 6 +5 +8 +6 +4 +27 +24 +21 +0 +0 +0 +3 +16 = 120
70
+ *
71
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
72
+ * 120 / 11 tem resto 10. 11 - 10 = 1. DV2 é 1.
73
+ * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.
74
+ *
75
+ * Fonte: http://www.macoratti.net/alg_cnpj.htm
76
+ *
77
+ * @param {String} value Título eleitoral
78
+ * @returns {Boolean}
79
+ */
80
+ var __importDefault = (this && this.__importDefault) || function (mod) {
81
+ return (mod && mod.__esModule) ? mod : { "default": mod };
82
+ };
83
+ Object.defineProperty(exports, "__esModule", { value: true });
84
+ exports.dv = dv;
85
+ exports.mask = mask;
86
+ exports.fake = fake;
87
+ exports.validateOrFail = validateOrFail;
88
+ exports.validate = validate;
89
+ const ValidationBRError_1 = __importDefault(require("./data/ValidationBRError"));
90
+ const utils_1 = require("./utils");
91
+ function dv(value) {
92
+ const cnpj = (0, utils_1.clearValue)(value, 12, {
93
+ trimAtRight: true,
94
+ rejectEmpty: true,
95
+ });
96
+ const dv1Factors = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
97
+ const dv1 = sumToDvWithAlpha(cnpj.substring(0, 12), dv1Factors);
98
+ const dv2Factors = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
99
+ const dv2 = sumToDvWithAlpha(cnpj.substring(0, 12) + dv1, dv2Factors);
100
+ return `${dv1}${dv2}`;
101
+ }
102
+ /**
103
+ * Aplica uma máscara ao número informado
104
+ *
105
+ * @param {String} value Número de Processo
106
+ * @returns {String} Valor com a máscara
107
+ */
108
+ function mask(value) {
109
+ return (0, utils_1.applyMask)(value, '00.000.000/0000-00');
110
+ }
111
+ function fake(input = false) {
112
+ const options = typeof input === 'boolean'
113
+ ? { withMask: input, alphanumeric: true }
114
+ : { withMask: false, alphanumeric: true, ...input };
115
+ const num = (0, utils_1.fakeNumber)(12, true, options.alphanumeric);
116
+ const cnpj = `${num}${dv(num)}`;
117
+ if (options.withMask)
118
+ return mask(cnpj);
119
+ return cnpj;
120
+ }
121
+ /**
122
+ * validateOrFail()
123
+ * Valida se um número é válido e
124
+ * retorna uma exceção se não estiver
125
+ *
126
+ * @param {String|Number} value Número a ser validado
127
+ * @returns {Boolean}
128
+ */
129
+ function validateOrFail(value) {
130
+ const cnpj = (0, utils_1.clearValue)(value, 14, {
131
+ fillZerosAtLeft: false,
132
+ rejectEmpty: true,
133
+ rejectHigherLength: true,
134
+ rejectEqualSequence: true,
135
+ });
136
+ if (dv(cnpj) !== cnpj.substring(12, 14)) {
137
+ throw ValidationBRError_1.default.INVALID_DV;
138
+ }
139
+ return true;
140
+ }
141
+ /**
142
+ * validate()
143
+ * Valida se um número é válido
144
+ *
145
+ * @param {String|Number} value Número a ser validado
146
+ * @returns {Boolean}
147
+ */
148
+ function validate(value) {
149
+ try {
150
+ return validateOrFail(value);
151
+ }
152
+ catch (error) {
153
+ return false;
154
+ }
155
+ }
156
+ exports.default = validate;
157
+ /**
158
+ *
159
+ * Converte o número para
160
+ *
161
+ *
162
+ */
163
+ function asciiTableConverter(character) {
164
+ if (/^\d$/.test(character))
165
+ return +character;
166
+ const ascii = character.toLocaleUpperCase().charCodeAt(0) - 48;
167
+ return ascii;
168
+ }
169
+ /**
170
+ *
171
+ *
172
+ *
173
+ */
174
+ function sumToDvWithAlpha(value, multiplier) {
175
+ const sum = [...value]
176
+ .map(character => asciiTableConverter(character))
177
+ .reduce((sum, asciiChar, index) => sum + asciiChar * multiplier[index], 0);
178
+ return (0, utils_1.sumToDV)(sum);
179
+ }
130
180
  //# sourceMappingURL=cnpj.js.map
package/dist/cnpj.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cnpj.js","sourceRoot":"","sources":["../src/cnpj.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;;;;;;AAEH,iFAAwD;AACxD,mCAA8F;AAEvF,MAAM,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,KAAK,EAAE,EAAE,EAAE;QACjC,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,IAAA,gCAAwB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,cAAc,CAAC,CAAA;IAC5E,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAA;IAEzB,MAAM,IAAI,GAAG,IAAA,gCAAwB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,eAAe,CAAC,CAAA;IACnF,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;;;;;GAKG;AACI,MAAM,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,IAAA,iBAAS,EAAC,KAAK,EAAE,oBAAoB,CAAC,CAAA;AAAjF,QAAA,IAAI,QAA6E;AAE9F;;;GAGG;AACI,MAAM,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAEhC,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,IAAA,UAAE,EAAC,GAAG,CAAC,EAAE,CAAA;IAE/B,IAAI,QAAQ;QAAE,OAAO,IAAA,YAAI,EAAC,IAAI,CAAC,CAAA;IAC/B,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAPY,QAAA,IAAI,QAOhB;AAED;;;;;;;GAOG;AACI,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,KAAK,EAAE,EAAE,EAAE;QACjC,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;QACxB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAA;IAEF,IAAI,IAAA,UAAE,EAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QACvC,MAAM,2BAAiB,CAAC,UAAU,CAAA;KACnC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAbY,QAAA,cAAc,kBAa1B;AAED;;;;;;GAMG;AACI,MAAM,QAAQ,GAAG,CAAC,KAAsB,EAAW,EAAE;IAC1D,IAAI;QACF,OAAO,IAAA,sBAAc,EAAC,KAAK,CAAC,CAAA;KAC7B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AANY,QAAA,QAAQ,YAMpB;AAED,kBAAe,gBAAQ,CAAA"}
1
+ {"version":3,"file":"cnpj.js","sourceRoot":"","sources":["../src/cnpj.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export {};
1
+ export {};