validation-br 0.21.3 → 1.2.0-rc1

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 (84) hide show
  1. package/.eslintcache +1 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc.js +76 -11
  4. package/.github/workflows/test.yml +39 -0
  5. package/.prettierignore +1 -0
  6. package/.prettierrc.js +7 -0
  7. package/dist/cnh.d.ts +91 -0
  8. package/dist/cnh.js +128 -0
  9. package/dist/cnh.js.map +1 -0
  10. package/dist/cnh.test.d.ts +1 -0
  11. package/dist/cnpj.d.ts +82 -0
  12. package/dist/{documents/cnpj.js → cnpj.js} +116 -138
  13. package/dist/cnpj.js.map +1 -0
  14. package/dist/cnpj.test.d.ts +1 -0
  15. package/dist/cpf.d.ts +99 -0
  16. package/dist/{documents/cpf.js → cpf.js} +135 -160
  17. package/dist/cpf.js.map +1 -0
  18. package/dist/cpf.test.d.ts +1 -0
  19. package/dist/index.d.ts +12 -0
  20. package/dist/index.js +26 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/index.test.d.ts +1 -0
  23. package/dist/judicialProcess.d.ts +114 -0
  24. package/dist/judicialProcess.js +160 -0
  25. package/dist/judicialProcess.js.map +1 -0
  26. package/dist/judicialProcess.test.d.ts +1 -0
  27. package/dist/nup17.d.ts +102 -0
  28. package/dist/nup17.js +145 -0
  29. package/dist/nup17.js.map +1 -0
  30. package/dist/nup17.test.d.ts +1 -0
  31. package/dist/pisPasep.d.ts +81 -0
  32. package/dist/{documents/pis-pasep.js → pisPasep.js} +115 -140
  33. package/dist/pisPasep.js.map +1 -0
  34. package/dist/pisPasep.test.d.ts +1 -0
  35. package/dist/postalCode.d.ts +83 -0
  36. package/dist/postalCode.js +152 -0
  37. package/dist/postalCode.js.map +1 -0
  38. package/dist/postalCode.test.d.ts +1 -0
  39. package/dist/renavam.d.ts +75 -0
  40. package/dist/renavam.js +110 -0
  41. package/dist/renavam.js.map +1 -0
  42. package/dist/renavam.test.d.ts +1 -0
  43. package/dist/tituloEleitor.d.ts +93 -0
  44. package/dist/{documents/titulo-eleitor.js → tituloEleitor.js} +132 -155
  45. package/dist/tituloEleitor.js.map +1 -0
  46. package/dist/tituloEleitor.test.d.ts +1 -0
  47. package/dist/utils-applyMask.test.d.ts +1 -0
  48. package/dist/utils-clearValue.test.d.ts +1 -0
  49. package/dist/utils-fakeNumber.test.d.ts +1 -0
  50. package/dist/utils-insertAtPosition.test.d.ts +1 -0
  51. package/dist/utils-invalidListGenerator.test.d.ts +1 -0
  52. package/dist/utils-removeFromPosition.test.d.ts +1 -0
  53. package/dist/utils-sumElementsByMultipliers.test.d.ts +1 -0
  54. package/dist/utils-sumToDV.test.d.ts +1 -0
  55. package/dist/utils.d.ts +111 -0
  56. package/dist/{lib/utils.js → utils.js} +166 -175
  57. package/dist/utils.js.map +1 -0
  58. package/dist/vuelidate.d.ts +36 -0
  59. package/dist/vuelidate.js +31 -0
  60. package/dist/vuelidate.js.map +1 -0
  61. package/jest.config.js +14 -0
  62. package/package.json +44 -27
  63. package/readme.md +170 -111
  64. package/tsconfig.json +24 -0
  65. package/.babelrc +0 -15
  66. package/.prettierrc +0 -9
  67. package/LICENSE +0 -21
  68. package/dist/documents/cnh.js +0 -154
  69. package/dist/documents/cnh.js.map +0 -1
  70. package/dist/documents/cnpj.js.map +0 -1
  71. package/dist/documents/cpf.js.map +0 -1
  72. package/dist/documents/index.js +0 -29
  73. package/dist/documents/index.js.map +0 -1
  74. package/dist/documents/judicial-process.js +0 -177
  75. package/dist/documents/judicial-process.js.map +0 -1
  76. package/dist/documents/pis-pasep.js.map +0 -1
  77. package/dist/documents/postal-code.js +0 -151
  78. package/dist/documents/postal-code.js.map +0 -1
  79. package/dist/documents/renavam.js +0 -97
  80. package/dist/documents/renavam.js.map +0 -1
  81. package/dist/documents/titulo-eleitor.js.map +0 -1
  82. package/dist/lib/utils.js.map +0 -1
  83. package/docs.md +0 -0
  84. package/index.js +0 -3
@@ -0,0 +1,83 @@
1
+ /**
2
+ * isPostalCode()
3
+ * Calcula se um código de rastreamento postal no formato JT194690698BR é válido.
4
+ *
5
+ * @doc
6
+ * - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.
7
+ *
8
+ * - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.
9
+ *
10
+ * - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.
11
+ *
12
+ * - O caractere 11 é o dígito verificador.
13
+ *
14
+ * - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.
15
+ *
16
+ * 1) Partes do número
17
+ * ______ ___________________________ ______ _______
18
+ * | Tipo | Número | DV | País |
19
+ * | J T 1 9 4 6 9 0 6 9 8 B R |
20
+ * |______|___________________________|______|_______|
21
+ *
22
+ * 2) Cálculo do DV.
23
+ *
24
+ * - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7
25
+ *
26
+ * 1 9 4 6 9 0 6 9
27
+ * x x x x x x x x
28
+ * 8 6 4 2 3 5 9 7
29
+ * = 8 +54 +16 +12 +18 +0 +54 +63 = 234
30
+ *
31
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
32
+ * 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
33
+ * Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
34
+ * Caso retorne 1, o resto será 0
35
+ *
36
+ *
37
+ *
38
+ *
39
+ * Fonte:
40
+ *
41
+ * @param {String} value Objeto postal no formato JT194690698BR
42
+ * @returns {Boolean}
43
+ */
44
+ /**
45
+ * dv()
46
+ * Calcula o dígito verificador
47
+ *
48
+ * @param {Number|String} value
49
+ * @returns {String}
50
+ */
51
+ export declare const dv: (value: string | number) => string;
52
+ /**
53
+ * Aplica uma máscara ao número informado
54
+ *
55
+ * @param {String} value Número de Processo
56
+ * @returns {String} Valor com a máscara
57
+ */
58
+ export declare const mask: (value: string | number) => string;
59
+ /**
60
+ * fake()
61
+ * Gera um número válido
62
+ *
63
+ * @returns {String}
64
+ */
65
+ export declare const fake: (withMask?: boolean) => string;
66
+ /**
67
+ * validateOrFail()
68
+ * Valida se um número é válido e
69
+ * retorna uma exceção se não estiver
70
+ *
71
+ * @param {String} value Número a ser validado
72
+ * @returns {Boolean}
73
+ */
74
+ export declare const validateOrFail: (value: string) => boolean;
75
+ /**
76
+ * validate()
77
+ * Valida se um número é válido
78
+ *
79
+ * @param {String} value Número a ser validado
80
+ * @returns {Boolean}
81
+ */
82
+ export declare const validate: (value: string) => boolean;
83
+ export default validate;
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ /**
3
+ * isPostalCode()
4
+ * Calcula se um código de rastreamento postal no formato JT194690698BR é válido.
5
+ *
6
+ * @doc
7
+ * - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.
8
+ *
9
+ * - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.
10
+ *
11
+ * - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.
12
+ *
13
+ * - O caractere 11 é o dígito verificador.
14
+ *
15
+ * - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.
16
+ *
17
+ * 1) Partes do número
18
+ * ______ ___________________________ ______ _______
19
+ * | Tipo | Número | DV | País |
20
+ * | J T 1 9 4 6 9 0 6 9 8 B R |
21
+ * |______|___________________________|______|_______|
22
+ *
23
+ * 2) Cálculo do DV.
24
+ *
25
+ * - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7
26
+ *
27
+ * 1 9 4 6 9 0 6 9
28
+ * x x x x x x x x
29
+ * 8 6 4 2 3 5 9 7
30
+ * = 8 +54 +16 +12 +18 +0 +54 +63 = 234
31
+ *
32
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
33
+ * 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
34
+ * Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
35
+ * Caso retorne 1, o resto será 0
36
+ *
37
+ *
38
+ *
39
+ *
40
+ * Fonte:
41
+ *
42
+ * @param {String} value Objeto postal no formato JT194690698BR
43
+ * @returns {Boolean}
44
+ */
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
47
+ const utils_1 = require("./utils");
48
+ /**
49
+ * dv()
50
+ * Calcula o dígito verificador
51
+ *
52
+ * @param {Number|String} value
53
+ * @returns {String}
54
+ */
55
+ exports.dv = (value) => {
56
+ if (!value)
57
+ throw new Error('PIS não informado');
58
+ const postalCode = utils_1.clearValue(value, 8);
59
+ const sum = utils_1.sumElementsByMultipliers(postalCode, [8, 6, 4, 2, 3, 5, 9, 7]);
60
+ const rest = sum % 11;
61
+ // const specificities = { 0: { dv: 5 }, 1: { dv: 0 } }
62
+ const specificities = [
63
+ { rest: 0, dv: 5 },
64
+ { rest: 1, dv: 0 },
65
+ ];
66
+ const specifity = specificities.find((item) => item.rest === rest);
67
+ const DV = specifity ? specifity.dv : 11 - rest;
68
+ return String(DV);
69
+ };
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
+ exports.mask = (value) => String(value).toLocaleUpperCase();
77
+ /**
78
+ * fake()
79
+ * Gera um número válido
80
+ *
81
+ * @returns {String}
82
+ */
83
+ exports.fake = (withMask = false) => {
84
+ const num = utils_1.fakeNumber(8, true);
85
+ const randLetter = () => [
86
+ 'A',
87
+ 'B',
88
+ 'C',
89
+ 'D',
90
+ 'E',
91
+ 'F',
92
+ 'G',
93
+ 'H',
94
+ 'I',
95
+ 'J',
96
+ 'K',
97
+ 'L',
98
+ 'M',
99
+ 'N',
100
+ 'O',
101
+ 'P',
102
+ 'Q',
103
+ 'R',
104
+ 'S',
105
+ 'T',
106
+ 'U',
107
+ 'V',
108
+ 'W',
109
+ 'X',
110
+ 'Y',
111
+ 'Z',
112
+ ][+(Math.random() * 25).toFixed(0)];
113
+ const postalCode = `${randLetter()}${randLetter()}${num}${exports.dv(num)}BR`;
114
+ if (withMask)
115
+ return exports.mask(postalCode);
116
+ return postalCode;
117
+ };
118
+ /**
119
+ * validateOrFail()
120
+ * Valida se um número é válido e
121
+ * retorna uma exceção se não estiver
122
+ *
123
+ * @param {String} value Número a ser validado
124
+ * @returns {Boolean}
125
+ */
126
+ exports.validateOrFail = (value) => {
127
+ const postalCode = utils_1.clearValue(value, 9);
128
+ if (!/^[a-z]{2}([\d]{9})[a-z]{2}$/gi.test(String(value))) {
129
+ throw new Error('O número não está no formato "XX000000000XX"');
130
+ }
131
+ if (exports.dv(value) !== postalCode.substring(8, 9)) {
132
+ throw new Error('Dígito verificador inválido');
133
+ }
134
+ return true;
135
+ };
136
+ /**
137
+ * validate()
138
+ * Valida se um número é válido
139
+ *
140
+ * @param {String} value Número a ser validado
141
+ * @returns {Boolean}
142
+ */
143
+ exports.validate = (value) => {
144
+ try {
145
+ return exports.validateOrFail(value);
146
+ }
147
+ catch (error) {
148
+ return false;
149
+ }
150
+ };
151
+ exports.default = exports.validate;
152
+ //# sourceMappingURL=postalCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postalCode.js","sourceRoot":"","sources":["../src/postalCode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,75 @@
1
+ /**
2
+ * RENAVAM
3
+ * Funções auxiliares para cálculo de máscaras, validação, dígito verificador e criaçãode
4
+ * números fake.
5
+ *
6
+ * @doc
7
+ * - O número de RENAVAM deve possuir 11 caracteres
8
+ *
9
+ * - Os caracteres de 1 a 10 são a numeração documento
10
+ *
11
+ * - O caractere 11 é o dígito verificador.
12
+ *
13
+ * 1) Partes do número
14
+ * _______________________________________________
15
+ * | Número | D V |
16
+ * | 2 6 8 2 7 6 4 9 9 6 - 0 |
17
+ * |_________________________________________|_____|
18
+ *
19
+ * 2) Cálculo do DV.
20
+ *
21
+ * - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
22
+ *
23
+ * 2 6 8 2 7 6 4 9 9 6
24
+ * x x x x x x x x x x
25
+ * 3 2 9 8 7 6 5 4 3 2
26
+ * = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 234
27
+ *
28
+ * - O somatório encontrado é multiplicado por 10 e ao resultado
29
+ * é aplicado o cálculo do MOD 11.
30
+ *
31
+ * ( 234 * 10 ) / 11 tem resto 8. DV = 8. Caso o resto seja maior ou igual a
32
+ * 10, DV será 0.
33
+ *
34
+ *
35
+ */
36
+ /**
37
+ * dv()
38
+ * Calcula o dígito verificador
39
+ *
40
+ * @param {Number|String} value
41
+ * @returns {String}
42
+ */
43
+ export declare const dv: (value: string | number) => string;
44
+ /**
45
+ * Aplica uma máscara ao número informado
46
+ *
47
+ * @param {String} value Número de Processo
48
+ * @returns {String} Valor com a máscara
49
+ */
50
+ export declare const mask: (value: string | number) => string;
51
+ /**
52
+ * fake()
53
+ * Gera um número válido
54
+ *
55
+ * @returns {String}
56
+ */
57
+ export declare const fake: (withMask?: boolean) => string;
58
+ /**
59
+ * validateOrFail()
60
+ * Valida se um número é válido e
61
+ * retorna uma exceção se não estiver
62
+ *
63
+ * @param {String|Number} value Número a ser validado
64
+ * @returns {Boolean}
65
+ */
66
+ export declare const validateOrFail: (value: string | number) => boolean;
67
+ /**
68
+ * validate()
69
+ * Valida se um número é válido
70
+ *
71
+ * @param {String|Number} value Número a ser validado
72
+ * @returns {Boolean}
73
+ */
74
+ export declare const validate: (value: string | number) => boolean;
75
+ export default validate;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ /**
3
+ * RENAVAM
4
+ * Funções auxiliares para cálculo de máscaras, validação, dígito verificador e criaçãode
5
+ * números fake.
6
+ *
7
+ * @doc
8
+ * - O número de RENAVAM deve possuir 11 caracteres
9
+ *
10
+ * - Os caracteres de 1 a 10 são a numeração documento
11
+ *
12
+ * - O caractere 11 é o dígito verificador.
13
+ *
14
+ * 1) Partes do número
15
+ * _______________________________________________
16
+ * | Número | D V |
17
+ * | 2 6 8 2 7 6 4 9 9 6 - 0 |
18
+ * |_________________________________________|_____|
19
+ *
20
+ * 2) Cálculo do DV.
21
+ *
22
+ * - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
23
+ *
24
+ * 2 6 8 2 7 6 4 9 9 6
25
+ * x x x x x x x x x x
26
+ * 3 2 9 8 7 6 5 4 3 2
27
+ * = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 234
28
+ *
29
+ * - O somatório encontrado é multiplicado por 10 e ao resultado
30
+ * é aplicado o cálculo do MOD 11.
31
+ *
32
+ * ( 234 * 10 ) / 11 tem resto 8. DV = 8. Caso o resto seja maior ou igual a
33
+ * 10, DV será 0.
34
+ *
35
+ *
36
+ */
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
39
+ const utils_1 = require("./utils");
40
+ /**
41
+ * dv()
42
+ * Calcula o dígito verificador
43
+ *
44
+ * @param {Number|String} value
45
+ * @returns {String}
46
+ */
47
+ exports.dv = (value) => {
48
+ if (!value)
49
+ throw new Error('Renavam não informado');
50
+ const renavam = utils_1.clearValue(value, 10); // só 10 para remover o DV
51
+ const invalidList = utils_1.invalidListGenerator(10);
52
+ if (invalidList.includes(renavam)) {
53
+ throw new Error('RENAVAM não pode ser uma sequência de números iguais');
54
+ }
55
+ const sum1 = utils_1.sumElementsByMultipliers(renavam, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]) * 10;
56
+ const dv1 = sum1 % 11 >= 10 ? 0 : sum1 % 11;
57
+ return `${dv1}`;
58
+ };
59
+ /**
60
+ * Aplica uma máscara ao número informado
61
+ *
62
+ * @param {String} value Número de Processo
63
+ * @returns {String} Valor com a máscara
64
+ */
65
+ exports.mask = (value) => utils_1.applyMask(value, '0000000000-0');
66
+ /**
67
+ * fake()
68
+ * Gera um número válido
69
+ *
70
+ * @returns {String}
71
+ */
72
+ exports.fake = (withMask = false) => {
73
+ const value = utils_1.fakeNumber(10, true);
74
+ const renavam = `${value}${exports.dv(value)}`;
75
+ if (withMask)
76
+ return exports.mask(renavam);
77
+ return renavam;
78
+ };
79
+ /**
80
+ * validateOrFail()
81
+ * Valida se um número é válido e
82
+ * retorna uma exceção se não estiver
83
+ *
84
+ * @param {String|Number} value Número a ser validado
85
+ * @returns {Boolean}
86
+ */
87
+ exports.validateOrFail = (value) => {
88
+ const renavam = utils_1.clearValue(value, 11);
89
+ if (exports.dv(renavam) !== renavam.substring(10, 11)) {
90
+ throw new Error('Dígito verificador inválido');
91
+ }
92
+ return true;
93
+ };
94
+ /**
95
+ * validate()
96
+ * Valida se um número é válido
97
+ *
98
+ * @param {String|Number} value Número a ser validado
99
+ * @returns {Boolean}
100
+ */
101
+ exports.validate = (value) => {
102
+ try {
103
+ return exports.validateOrFail(value);
104
+ }
105
+ catch (error) {
106
+ return false;
107
+ }
108
+ };
109
+ exports.default = exports.validate;
110
+ //# sourceMappingURL=renavam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renavam.js","sourceRoot":"","sources":["../src/renavam.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;;;AAEH,mCAMgB;AAEhB;;;;;;GAMG;AACU,QAAA,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAEpD,MAAM,OAAO,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA,CAAC,0BAA0B;IAEhE,MAAM,WAAW,GAAG,4BAAoB,CAAC,EAAE,CAAC,CAAA;IAC5C,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;KACxE;IAED,MAAM,IAAI,GAAG,gCAAwB,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,CAAA;IACnF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IAC3C,OAAO,GAAG,GAAG,EAAE,CAAA;AACjB,CAAC,CAAA;AAED;;;;;GAKG;AACU,QAAA,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,iBAAS,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;AAExF;;;;;GAKG;AACU,QAAA,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,KAAK,GAAG,kBAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAElC,MAAM,OAAO,GAAG,GAAG,KAAK,GAAG,UAAE,CAAC,KAAK,CAAC,EAAE,CAAA;IAEtC,IAAI,QAAQ;QAAE,OAAO,YAAI,CAAC,OAAO,CAAC,CAAA;IAElC,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED;;;;;;;GAOG;AACU,QAAA,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,OAAO,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAErC,IAAI,UAAE,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QAC7C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;KAC/C;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;;;GAMG;AACU,QAAA,QAAQ,GAAG,CAAC,KAAsB,EAAW,EAAE;IAC1D,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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,93 @@
1
+ /**
2
+ * isTitulo()
3
+ * Calcula se um título eleitoral é válido
4
+ *
5
+ * @doc
6
+ * Título de eleitor deve possuir 12 dígitos.
7
+ *
8
+ * - Os caracteres 1 a 8 são números sequenciais.
9
+ *
10
+ * - Os caracteres 9 e 10 representam os estados da federação onde o título
11
+ * foi emitido (01 = SP, 02 = MG, 03 = RJ, 04 = RS, 05 = BA, 06 = PR, 07 = CE, 08 = PE,
12
+ * 09 = SC, 10 = GO, 11 = MA12 = PB, 13 = PA, 14 = ES, 15 = PI, 16 = RN, 17 = AL,
13
+ * 18 = MT, 19 = MS, 20 = DF, 21 = SE, 22 = AM, 23 = RO, 24 = AC, 25 = AP, 26 = RR,
14
+ * 27 = TO, 28 = Exterior(ZZ).
15
+ *
16
+ * - Os caracteres 11 e 12 são dígitos verificadores.
17
+ *
18
+ * 1) Partes do número
19
+ * ------------------------------------------------
20
+ * | Número Sequencial | UF | DV |
21
+ * 1 0 2 3 8 5 0 1 0 6 7 1
22
+ *
23
+ * 2) Cálculo do primeiro DV.
24
+ *
25
+ * - Soma-se o produto das algarismos 1 a 8 pelos números 2, 3, 4, 5, 6, 7, 8 e 9.
26
+ *
27
+ * 1 0 2 3 8 5 0 1
28
+ * x x x x x x x x
29
+ * 2 3 4 5 6 7 8 9
30
+ * = 2 + 0 + 8 +15 +48 +35 + 0 + 9 = 117
31
+ *
32
+ * - O somatório encontrado é dividido por 11. O DV1 é o resto da divisão. Se o
33
+ * resto for 10, o DV1 é 0.
34
+ *
35
+ * 2.1) 117 / 11 tem resto igual a 7.
36
+ *
37
+ * 3) Cálculo do segundo DV
38
+ *
39
+ * - Soma-se o produto dos algarismos 9 a 11 (relativos aos 2 dígitos da UF e o novo
40
+ * DV1 que acabou de ser calculado) e os multiplicam pelos números 7, 8 e 9. Se o
41
+ * resto for 10, DV2 será 0.
42
+ * 0 6 7
43
+ * x x x
44
+ * 7 8 9
45
+ * = 0 +48 +63 = 111
46
+ *
47
+ * 3.1) 111 / 11 tem resto igual a 1.
48
+ *
49
+ * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/
50
+ *
51
+ * @param {String} value Título eleitoral
52
+ * @returns {Boolean}
53
+ */
54
+ /**
55
+ * dv()
56
+ * Calcula o dígito verificador
57
+ *
58
+ * @param {Number|String} value
59
+ * @returns {String}
60
+ */
61
+ export declare const dv: (value: string | number) => string;
62
+ /**
63
+ * Aplica uma máscara ao número informado
64
+ *
65
+ * @param {String} value Número de Processo
66
+ * @returns {String} Valor com a máscara
67
+ */
68
+ export declare const mask: (value: string | number) => string;
69
+ /**
70
+ * fake()
71
+ * Gera um número válido
72
+ *
73
+ * @returns {String}
74
+ */
75
+ export declare const fake: (withMask?: boolean) => string;
76
+ /**
77
+ * validateOrFail()
78
+ * Valida se um número é válido e
79
+ * retorna uma exceção se não estiver
80
+ *
81
+ * @param {String|Number} value Número a ser validado
82
+ * @returns {Boolean}
83
+ */
84
+ export declare const validateOrFail: (value: string | number) => boolean;
85
+ /**
86
+ * validate()
87
+ * Valida se um número é válido
88
+ *
89
+ * @param {String|Number} value Número a ser validado
90
+ * @returns {Boolean}
91
+ */
92
+ export declare const validate: (value: string | number) => boolean;
93
+ export default validate;