validation-br 1.6.3 → 1.6.5

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