validation-br 1.4.2 → 1.4.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.
package/dist/nup17.js CHANGED
@@ -60,8 +60,12 @@
60
60
  * @param {String} value Título eleitoral
61
61
  * @returns {Boolean}
62
62
  */
63
+ var __importDefault = (this && this.__importDefault) || function (mod) {
64
+ return (mod && mod.__esModule) ? mod : { "default": mod };
65
+ };
63
66
  Object.defineProperty(exports, "__esModule", { value: true });
64
67
  exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
68
+ const ValidationBRError_1 = __importDefault(require("./data/ValidationBRError"));
65
69
  const utils_1 = require("./utils");
66
70
  /**
67
71
  * dv()
@@ -70,33 +74,24 @@ const utils_1 = require("./utils");
70
74
  * @param {String} value
71
75
  * @returns {String}
72
76
  */
73
- exports.dv = (value) => {
74
- if (!value)
75
- throw new Error('Número do protocolo é obrigatório');
76
- const nup = utils_1.clearValue(value, 15); // não pega os 2 últimos dígitos
77
+ const dv = (value) => {
78
+ const nup = (0, utils_1.clearValue)(value, 15, { rejectEmpty: true, trimAtRight: true });
77
79
  const nupReverse = nup.split('').reverse().join('');
78
- const sumToDV = (sum) => {
79
- const rest = 11 - (sum % 11);
80
- const exceptions = [
81
- { rest: 11, dv: 1 },
82
- { rest: 10, dv: 0 },
83
- ];
84
- const inExceptions = exceptions.find((item) => item.rest === rest);
85
- return !inExceptions ? rest : inExceptions.dv;
86
- };
87
- const sum1 = utils_1.sumElementsByMultipliers(nupReverse, [...Array(15)].map((_, i) => i + 2));
88
- const dv1 = sumToDV(sum1);
89
- const sum2 = utils_1.sumElementsByMultipliers(dv1 + nupReverse, [...Array(16)].map((_, i) => i + 2));
90
- const dv2 = sumToDV(sum2);
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);
91
84
  return `${dv1}${dv2}`;
92
85
  };
86
+ exports.dv = dv;
93
87
  /**
94
88
  * Aplica uma máscara ao número informado
95
89
  *
96
90
  * @param {String} value Número de Processo
97
91
  * @returns {String} Valor com a máscara
98
92
  */
99
- exports.mask = (value) => utils_1.applyMask(value, '00000.000000/0000-00');
93
+ const mask = (value) => (0, utils_1.applyMask)(value, '00000.000000/0000-00');
94
+ exports.mask = mask;
100
95
  /**
101
96
  * fake()
102
97
  * Gera um número válido
@@ -104,13 +99,14 @@ exports.mask = (value) => utils_1.applyMask(value, '00000.000000/0000-00');
104
99
  * @param {Boolean} withMask Define se o número deve ser gerado com ou sem máscara
105
100
  * @returns {String}
106
101
  */
107
- exports.fake = (withMask = false) => {
108
- const num = utils_1.fakeNumber(15, true);
109
- const nup = `${num}${exports.dv(String(num))}`;
102
+ const fake = (withMask = false) => {
103
+ const num = (0, utils_1.fakeNumber)(15, true);
104
+ const nup = `${num}${(0, exports.dv)(String(num))}`;
110
105
  if (withMask)
111
- return exports.mask(nup);
106
+ return (0, exports.mask)(nup);
112
107
  return nup;
113
108
  };
109
+ exports.fake = fake;
114
110
  /**
115
111
  * validateOrFail()
116
112
  * Valida se um número é válido e
@@ -119,13 +115,17 @@ exports.fake = (withMask = false) => {
119
115
  * @param {String} value Número a ser validado
120
116
  * @returns {Boolean}
121
117
  */
122
- exports.validateOrFail = (value) => {
123
- const nup = utils_1.clearValue(value, 17);
124
- if (exports.dv(nup) !== nup.substr(-2, 2)) {
125
- throw new Error('Dígito verificador inválido');
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;
126
125
  }
127
126
  return true;
128
127
  };
128
+ exports.validateOrFail = validateOrFail;
129
129
  /**
130
130
  * validate()
131
131
  * Valida se um número é válido
@@ -133,13 +133,23 @@ exports.validateOrFail = (value) => {
133
133
  * @param {String} value Número a ser validado
134
134
  * @returns {Boolean}
135
135
  */
136
- exports.validate = (value) => {
136
+ const validate = (value) => {
137
137
  try {
138
- return exports.validateOrFail(value);
138
+ return (0, exports.validateOrFail)(value);
139
139
  }
140
140
  catch (error) {
141
141
  return false;
142
142
  }
143
143
  };
144
+ exports.validate = validate;
144
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
+ }
145
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":"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"}
1
+ {"version":3,"file":"nup17.js","sourceRoot":"","sources":["../src/nup17.ts"],"names":[],"mappings":"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"}
package/dist/pisPasep.js CHANGED
@@ -40,8 +40,12 @@
40
40
  * @param {String} value Objeto postal no formato 268.27649.96-0
41
41
  * @returns {Boolean}
42
42
  */
43
+ var __importDefault = (this && this.__importDefault) || function (mod) {
44
+ return (mod && mod.__esModule) ? mod : { "default": mod };
45
+ };
43
46
  Object.defineProperty(exports, "__esModule", { value: true });
44
47
  exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
48
+ const ValidationBRError_1 = __importDefault(require("./data/ValidationBRError"));
45
49
  const utils_1 = require("./utils");
46
50
  /**
47
51
  * dv()
@@ -50,37 +54,37 @@ const utils_1 = require("./utils");
50
54
  * @param {Number|String} value
51
55
  * @returns {String}
52
56
  */
53
- exports.dv = (value) => {
54
- if (!value)
55
- throw new Error('PIS não informado');
56
- const pis = utils_1.clearValue(value, 10);
57
- const invalidList = utils_1.invalidListGenerator(10);
58
- if (invalidList.includes(pis)) {
59
- throw new Error('PIS não pode ser uma sequência de números iguais');
60
- }
61
- const sum = utils_1.sumElementsByMultipliers(pis, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
62
- return String(utils_1.sumToDV(sum));
57
+ const dv = (value) => {
58
+ const pis = (0, utils_1.clearValue)(value, 10, {
59
+ trimAtRight: true,
60
+ rejectEmpty: true,
61
+ });
62
+ const sum = (0, utils_1.sumElementsByMultipliers)(pis, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
63
+ return String((0, utils_1.sumToDV)(sum));
63
64
  };
65
+ exports.dv = dv;
64
66
  /**
65
67
  * Aplica uma máscara ao número informado
66
68
  *
67
69
  * @param {String} value Número de Processo
68
70
  * @returns {String} Valor com a máscara
69
71
  */
70
- exports.mask = (value) => utils_1.applyMask(value, '000.00000.00-0');
72
+ const mask = (value) => (0, utils_1.applyMask)(value, '000.00000.00-0');
73
+ exports.mask = mask;
71
74
  /**
72
75
  * fake()
73
76
  * Gera um número válido
74
77
  *
75
78
  * @returns {String}
76
79
  */
77
- exports.fake = (withMask = false) => {
78
- const num = utils_1.fakeNumber(10, true);
79
- const pis = `${num}${exports.dv(num)}`;
80
+ const fake = (withMask = false) => {
81
+ const num = (0, utils_1.fakeNumber)(10, true);
82
+ const pis = `${num}${(0, exports.dv)(num)}`;
80
83
  if (withMask)
81
- return exports.mask(pis);
84
+ return (0, exports.mask)(pis);
82
85
  return pis;
83
86
  };
87
+ exports.fake = fake;
84
88
  /**
85
89
  * validateOrFail()
86
90
  * Valida se um número é válido e
@@ -89,13 +93,19 @@ exports.fake = (withMask = false) => {
89
93
  * @param {String|Number} value Número a ser validado
90
94
  * @returns {Boolean}
91
95
  */
92
- exports.validateOrFail = (value) => {
93
- const pis = utils_1.clearValue(value, 11);
94
- if (exports.dv(pis) !== pis.substring(10, 11)) {
95
- throw new Error('Dígito verificador inválido');
96
+ const validateOrFail = (value) => {
97
+ const pis = (0, utils_1.clearValue)(value, 11, {
98
+ fillZerosAtLeft: true,
99
+ rejectEmpty: true,
100
+ rejectHigherLength: true,
101
+ rejectEqualSequence: true,
102
+ });
103
+ if ((0, exports.dv)(pis) !== pis.substring(10, 11)) {
104
+ throw ValidationBRError_1.default.INVALID_DV;
96
105
  }
97
106
  return true;
98
107
  };
108
+ exports.validateOrFail = validateOrFail;
99
109
  /**
100
110
  * validate()
101
111
  * Valida se um número é válido
@@ -103,13 +113,14 @@ exports.validateOrFail = (value) => {
103
113
  * @param {String|Number} value Número a ser validado
104
114
  * @returns {Boolean}
105
115
  */
106
- exports.validate = (value) => {
116
+ const validate = (value) => {
107
117
  try {
108
- return exports.validateOrFail(value);
118
+ return (0, exports.validateOrFail)(value);
109
119
  }
110
120
  catch (error) {
111
121
  return false;
112
122
  }
113
123
  };
124
+ exports.validate = validate;
114
125
  exports.default = exports.validate;
115
126
  //# sourceMappingURL=pisPasep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pisPasep.js","sourceRoot":"","sources":["../src/pisPasep.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;;;AAEH,mCAOgB;AAEhB;;;;;;GAMG;AACU,QAAA,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAEhD,MAAM,GAAG,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAEjC,MAAM,WAAW,GAAG,4BAAoB,CAAC,EAAE,CAAC,CAAA;IAC5C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;KACpE;IAED,MAAM,GAAG,GAAG,gCAAwB,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,CAAA;IAEzE,OAAO,MAAM,CAAC,eAAO,CAAC,GAAG,CAAC,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED;;;;;GAKG;AACU,QAAA,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,iBAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;AAE1F;;;;;GAKG;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,GAAG,CAAC,EAAE,CAAA;IAE9B,IAAI,QAAQ;QAAE,OAAO,YAAI,CAAC,GAAG,CAAC,CAAA;IAC9B,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED;;;;;;;GAOG;AACU,QAAA,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,GAAG,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAEjC,IAAI,UAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QACrC,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"}
1
+ {"version":3,"file":"pisPasep.js","sourceRoot":"","sources":["../src/pisPasep.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;;;;;;AAEH,iFAAwD;AACxD,mCAA8F;AAE9F;;;;;;GAMG;AACI,MAAM,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,KAAK,EAAE,EAAE,EAAE;QAChC,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,IAAA,gCAAwB,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAEzE,OAAO,MAAM,CAAC,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC,CAAA;AAC7B,CAAC,CAAA;AATY,QAAA,EAAE,MASd;AAED;;;;;GAKG;AACI,MAAM,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,IAAA,iBAAS,EAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;AAA7E,QAAA,IAAI,QAAyE;AAE1F;;;;;GAKG;AACI,MAAM,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAEhC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,IAAA,UAAE,EAAC,GAAG,CAAC,EAAE,CAAA;IAE9B,IAAI,QAAQ;QAAE,OAAO,IAAA,YAAI,EAAC,GAAG,CAAC,CAAA;IAC9B,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAPY,QAAA,IAAI,QAOhB;AAED;;;;;;;GAOG;AACI,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,KAAK,EAAE,EAAE,EAAE;QAChC,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;QACxB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAA;IAEF,IAAI,IAAA,UAAE,EAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QACrC,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"}
@@ -42,8 +42,12 @@
42
42
  * @param {String} value Objeto postal no formato JT194690698BR
43
43
  * @returns {Boolean}
44
44
  */
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
45
48
  Object.defineProperty(exports, "__esModule", { value: true });
46
49
  exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
50
+ const ValidationBRError_1 = __importDefault(require("./data/ValidationBRError"));
47
51
  const utils_1 = require("./utils");
48
52
  /**
49
53
  * dv()
@@ -52,14 +56,14 @@ const utils_1 = require("./utils");
52
56
  * @param {Number|String} value
53
57
  * @returns {String}
54
58
  */
55
- exports.dv = (value) => {
59
+ const dv = (value) => {
56
60
  if (!value)
57
- throw new Error('Código de Rastreamento não informado');
61
+ throw ValidationBRError_1.default.EMPTY_VALUE;
58
62
  const postalCode = String(value)
59
63
  .replace(/[^0-9]+/gi, '')
60
64
  .padStart(8, '0')
61
65
  .substring(0, 8);
62
- const sum = utils_1.sumElementsByMultipliers(postalCode, [8, 6, 4, 2, 3, 5, 9, 7]);
66
+ const sum = (0, utils_1.sumElementsByMultipliers)(postalCode, [8, 6, 4, 2, 3, 5, 9, 7]);
63
67
  const rest = sum % 11;
64
68
  // const specificities = { 0: { dv: 5 }, 1: { dv: 0 } }
65
69
  const specificities = [
@@ -70,26 +74,29 @@ exports.dv = (value) => {
70
74
  const DV = specifity ? specifity.dv : 11 - rest;
71
75
  return String(DV);
72
76
  };
77
+ exports.dv = dv;
73
78
  /**
74
79
  * Aplica uma máscara ao número informado
75
80
  *
76
81
  * @param {String} value Número de Processo
77
82
  * @returns {String} Valor com a máscara
78
83
  */
79
- exports.mask = (value) => String(value).toLocaleUpperCase();
84
+ const mask = (value) => String(value).toLocaleUpperCase();
85
+ exports.mask = mask;
80
86
  /**
81
87
  * fake()
82
88
  * Gera um número válido
83
89
  *
84
90
  * @returns {String}
85
91
  */
86
- exports.fake = (withMask = false) => {
87
- const num = utils_1.fakeNumber(8, true);
88
- const postalCode = `${utils_1.randomLetter()}${utils_1.randomLetter()}${num}${exports.dv(num)}BR`;
92
+ const fake = (withMask = false) => {
93
+ const num = (0, utils_1.fakeNumber)(8, true);
94
+ const postalCode = `${(0, utils_1.randomLetter)()}${(0, utils_1.randomLetter)()}${num}${(0, exports.dv)(num)}BR`;
89
95
  if (withMask)
90
- return exports.mask(postalCode);
96
+ return (0, exports.mask)(postalCode);
91
97
  return postalCode;
92
98
  };
99
+ exports.fake = fake;
93
100
  /**
94
101
  * validateOrFail()
95
102
  * Valida se um número é válido e
@@ -98,16 +105,17 @@ exports.fake = (withMask = false) => {
98
105
  * @param {String} value Número a ser validado
99
106
  * @returns {Boolean}
100
107
  */
101
- exports.validateOrFail = (value) => {
108
+ const validateOrFail = (value) => {
102
109
  if (!/^[a-z]{2}([\d]{9})[a-z]{2}$/gi.test(String(value))) {
103
110
  throw new Error('O número não está no formato "XX000000000XX"');
104
111
  }
105
- const postalCode = utils_1.clearValue(value.substring(2, 11), 9);
106
- if (exports.dv(value.substring(2, 11)) !== postalCode.substring(8, 9)) {
107
- throw new Error('Dígito verificador inválido');
112
+ const postalCode = (0, utils_1.clearValue)(value.substring(2, 11), 9);
113
+ if ((0, exports.dv)(value.substring(2, 11)) !== postalCode.substring(8, 9)) {
114
+ throw ValidationBRError_1.default.INVALID_DV;
108
115
  }
109
116
  return true;
110
117
  };
118
+ exports.validateOrFail = validateOrFail;
111
119
  /**
112
120
  * validate()
113
121
  * Valida se um número é válido
@@ -115,13 +123,14 @@ exports.validateOrFail = (value) => {
115
123
  * @param {String} value Número a ser validado
116
124
  * @returns {Boolean}
117
125
  */
118
- exports.validate = (value) => {
126
+ const validate = (value) => {
119
127
  try {
120
- return exports.validateOrFail(value);
128
+ return (0, exports.validateOrFail)(value);
121
129
  }
122
130
  catch (error) {
123
131
  return false;
124
132
  }
125
133
  };
134
+ exports.validate = validate;
126
135
  exports.default = exports.validate;
127
136
  //# sourceMappingURL=postalCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postalCode.js","sourceRoot":"","sources":["../src/postalCode.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;;;AAEH,mCAAwF;AAExF;;;;;;GAMG;AACU,QAAA,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IAEnE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;SAC7B,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;SAChB,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAElB,MAAM,GAAG,GAAG,gCAAwB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAE1E,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE,CAAA;IACrB,uDAAuD;IAEvD,MAAM,aAAa,GAAG;QACpB,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QAClB,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;KACnB,CAAA;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAElE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAA;IAE/C,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;AACnB,CAAC,CAAA;AAED;;;;;GAKG;AACU,QAAA,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,CAAA;AAEzF;;;;;GAKG;AACU,QAAA,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,GAAG,GAAG,kBAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAE/B,MAAM,UAAU,GAAG,GAAG,oBAAY,EAAE,GAAG,oBAAY,EAAE,GAAG,GAAG,GAAG,UAAE,CAAC,GAAG,CAAC,IAAI,CAAA;IAEzE,IAAI,QAAQ;QAAE,OAAO,YAAI,CAAC,UAAU,CAAC,CAAA;IACrC,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED;;;;;;;GAOG;AACU,QAAA,cAAc,GAAG,CAAC,KAAa,EAAW,EAAE;IACvD,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;QACxD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;KAChE;IAED,MAAM,UAAU,GAAG,kBAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAExD,IAAI,UAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC7D,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;KAC/C;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"}
1
+ {"version":3,"file":"postalCode.js","sourceRoot":"","sources":["../src/postalCode.ts"],"names":[],"mappings":"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"}
package/dist/renavam.js CHANGED
@@ -34,8 +34,12 @@
34
34
  *
35
35
  *
36
36
  */
37
+ var __importDefault = (this && this.__importDefault) || function (mod) {
38
+ return (mod && mod.__esModule) ? mod : { "default": mod };
39
+ };
37
40
  Object.defineProperty(exports, "__esModule", { value: true });
38
41
  exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
42
+ const ValidationBRError_1 = __importDefault(require("./data/ValidationBRError"));
39
43
  const utils_1 = require("./utils");
40
44
  /**
41
45
  * dv()
@@ -44,38 +48,39 @@ const utils_1 = require("./utils");
44
48
  * @param {Number|String} value
45
49
  * @returns {String}
46
50
  */
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;
51
+ const dv = (value) => {
52
+ const renavam = (0, utils_1.clearValue)(value, 10, {
53
+ fillZerosAtLeft: true,
54
+ trimAtRight: true,
55
+ rejectEmpty: true,
56
+ });
57
+ const sum1 = (0, utils_1.sumElementsByMultipliers)(renavam, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]) * 10;
56
58
  const dv1 = sum1 % 11 >= 10 ? 0 : sum1 % 11;
57
59
  return `${dv1}`;
58
60
  };
61
+ exports.dv = dv;
59
62
  /**
60
63
  * Aplica uma máscara ao número informado
61
64
  *
62
65
  * @param {String} value Número de Processo
63
66
  * @returns {String} Valor com a máscara
64
67
  */
65
- exports.mask = (value) => utils_1.applyMask(value, '0000000000-0');
68
+ const mask = (value) => (0, utils_1.applyMask)(value, '0000000000-0');
69
+ exports.mask = mask;
66
70
  /**
67
71
  * fake()
68
72
  * Gera um número válido
69
73
  *
70
74
  * @returns {String}
71
75
  */
72
- exports.fake = (withMask = false) => {
73
- const value = utils_1.fakeNumber(10, true);
74
- const renavam = `${value}${exports.dv(value)}`;
76
+ const fake = (withMask = false) => {
77
+ const value = (0, utils_1.fakeNumber)(10, true);
78
+ const renavam = `${value}${(0, exports.dv)(value)}`;
75
79
  if (withMask)
76
- return exports.mask(renavam);
80
+ return (0, exports.mask)(renavam);
77
81
  return renavam;
78
82
  };
83
+ exports.fake = fake;
79
84
  /**
80
85
  * validateOrFail()
81
86
  * Valida se um número é válido e
@@ -84,13 +89,19 @@ exports.fake = (withMask = false) => {
84
89
  * @param {String|Number} value Número a ser validado
85
90
  * @returns {Boolean}
86
91
  */
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');
92
+ const validateOrFail = (value) => {
93
+ const renavam = (0, utils_1.clearValue)(value, 11, {
94
+ fillZerosAtLeft: true,
95
+ rejectEmpty: true,
96
+ rejectHigherLength: true,
97
+ rejectEqualSequence: true,
98
+ });
99
+ if ((0, exports.dv)(renavam) !== renavam.substring(10, 11)) {
100
+ throw ValidationBRError_1.default.INVALID_DV;
91
101
  }
92
102
  return true;
93
103
  };
104
+ exports.validateOrFail = validateOrFail;
94
105
  /**
95
106
  * validate()
96
107
  * Valida se um número é válido
@@ -98,13 +109,14 @@ exports.validateOrFail = (value) => {
98
109
  * @param {String|Number} value Número a ser validado
99
110
  * @returns {Boolean}
100
111
  */
101
- exports.validate = (value) => {
112
+ const validate = (value) => {
102
113
  try {
103
- return exports.validateOrFail(value);
114
+ return (0, exports.validateOrFail)(value);
104
115
  }
105
116
  catch (error) {
106
117
  return false;
107
118
  }
108
119
  };
120
+ exports.validate = validate;
109
121
  exports.default = exports.validate;
110
122
  //# sourceMappingURL=renavam.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"renavam.js","sourceRoot":"","sources":["../src/renavam.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;;;;;;AAEH,iFAAwD;AACxD,mCAAqF;AAErF;;;;;;GAMG;AACI,MAAM,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,KAAK,EAAE,EAAE,EAAE;QACpC,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,IAAA,gCAAwB,EAAC,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;IAE3C,OAAO,GAAG,GAAG,EAAE,CAAA;AACjB,CAAC,CAAA;AAXY,QAAA,EAAE,MAWd;AAED;;;;;GAKG;AACI,MAAM,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,IAAA,iBAAS,EAAC,KAAK,EAAE,cAAc,CAAC,CAAA;AAA3E,QAAA,IAAI,QAAuE;AAExF;;;;;GAKG;AACI,MAAM,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAElC,MAAM,OAAO,GAAG,GAAG,KAAK,GAAG,IAAA,UAAE,EAAC,KAAK,CAAC,EAAE,CAAA;IAEtC,IAAI,QAAQ;QAAE,OAAO,IAAA,YAAI,EAAC,OAAO,CAAC,CAAA;IAElC,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AARY,QAAA,IAAI,QAQhB;AAED;;;;;;;GAOG;AACI,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,KAAK,EAAE,EAAE,EAAE;QACpC,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;QACxB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAA;IAEF,IAAI,IAAA,UAAE,EAAC,OAAO,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QAC7C,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"}
@@ -52,8 +52,12 @@
52
52
  * @param {String} value Título eleitoral
53
53
  * @returns {Boolean}
54
54
  */
55
+ var __importDefault = (this && this.__importDefault) || function (mod) {
56
+ return (mod && mod.__esModule) ? mod : { "default": mod };
57
+ };
55
58
  Object.defineProperty(exports, "__esModule", { value: true });
56
59
  exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
60
+ const ValidationBRError_1 = __importDefault(require("./data/ValidationBRError"));
57
61
  const utils_1 = require("./utils");
58
62
  /**
59
63
  * dv()
@@ -62,42 +66,42 @@ const utils_1 = require("./utils");
62
66
  * @param {Number|String} value
63
67
  * @returns {String}
64
68
  */
65
- exports.dv = (value) => {
66
- if (!value)
67
- throw new Error('CPF não informado');
68
- const titulo = utils_1.clearValue(value, 10);
69
- const invalidList = utils_1.invalidListGenerator(10);
70
- if (invalidList.includes(titulo)) {
71
- throw new Error('Título não pode ser uma sequência de números iguais');
72
- }
73
- const sum1 = utils_1.sumElementsByMultipliers(titulo.substring(0, 8), [2, 3, 4, 5, 6, 7, 8, 9]);
69
+ const dv = (value) => {
70
+ const titulo = (0, utils_1.clearValue)(value, 10, {
71
+ fillZerosAtLeft: true,
72
+ trimAtRight: true,
73
+ rejectEmpty: true,
74
+ });
75
+ const sum1 = (0, utils_1.sumElementsByMultipliers)(titulo.substring(0, 8), [2, 3, 4, 5, 6, 7, 8, 9]);
74
76
  const dv1 = sum1 % 11 >= 10 ? 0 : sum1 % 11;
75
- const sum2 = utils_1.sumElementsByMultipliers(titulo.substring(8, 10) + dv1, [7, 8, 9]);
77
+ const sum2 = (0, utils_1.sumElementsByMultipliers)(titulo.substring(8, 10) + dv1, [7, 8, 9]);
76
78
  const dv2 = sum2 % 11 >= 10 ? 0 : sum2 % 11;
77
79
  return `${dv1}${dv2}`;
78
80
  };
81
+ exports.dv = dv;
79
82
  /**
80
83
  * Aplica uma máscara ao número informado
81
84
  *
82
85
  * @param {String} value Número de Processo
83
86
  * @returns {String} Valor com a máscara
84
87
  */
85
- exports.mask = (value) => utils_1.applyMask(value, '0000.0000.0000');
86
- // const mask = (value) => applyMask(value, '0000.0000.0000');
88
+ const mask = (value) => (0, utils_1.applyMask)(value, '0000.0000.0000');
89
+ exports.mask = mask;
87
90
  /**
88
91
  * fake()
89
92
  * Gera um número válido
90
93
  *
91
94
  * @returns {String}
92
95
  */
93
- exports.fake = (withMask = false) => {
94
- const num = utils_1.fakeNumber(8, true);
96
+ const fake = (withMask = false) => {
97
+ const num = (0, utils_1.fakeNumber)(8, true);
95
98
  const uf = (Math.random() * 27 + 1).toFixed(0).padStart(2, '0');
96
- const titulo = `${num}${uf}${exports.dv(num + uf)}`;
99
+ const titulo = `${num}${uf}${(0, exports.dv)(num + uf)}`;
97
100
  if (withMask)
98
- return exports.mask(titulo);
101
+ return (0, exports.mask)(titulo);
99
102
  return titulo;
100
103
  };
104
+ exports.fake = fake;
101
105
  /**
102
106
  * validateOrFail()
103
107
  * Valida se um número é válido e
@@ -106,13 +110,19 @@ exports.fake = (withMask = false) => {
106
110
  * @param {String|Number} value Número a ser validado
107
111
  * @returns {Boolean}
108
112
  */
109
- exports.validateOrFail = (value) => {
110
- const titulo = utils_1.clearValue(value, 12);
111
- if (exports.dv(titulo) !== titulo.substring(10, 12)) {
112
- throw new Error('Dígito verificador inválido');
113
+ const validateOrFail = (value) => {
114
+ const titulo = (0, utils_1.clearValue)(value, 12, {
115
+ fillZerosAtLeft: true,
116
+ rejectEmpty: true,
117
+ rejectHigherLength: true,
118
+ rejectEqualSequence: true,
119
+ });
120
+ if ((0, exports.dv)(titulo) !== titulo.substring(10, 12)) {
121
+ throw ValidationBRError_1.default.INVALID_DV;
113
122
  }
114
123
  return true;
115
124
  };
125
+ exports.validateOrFail = validateOrFail;
116
126
  /**
117
127
  * validate()
118
128
  * Valida se um número é válido
@@ -120,13 +130,14 @@ exports.validateOrFail = (value) => {
120
130
  * @param {String|Number} value Número a ser validado
121
131
  * @returns {Boolean}
122
132
  */
123
- exports.validate = (value) => {
133
+ const validate = (value) => {
124
134
  try {
125
- return exports.validateOrFail(value);
135
+ return (0, exports.validateOrFail)(value);
126
136
  }
127
137
  catch (error) {
128
138
  return false;
129
139
  }
130
140
  };
141
+ exports.validate = validate;
131
142
  exports.default = exports.validate;
132
143
  //# sourceMappingURL=tituloEleitor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tituloEleitor.js","sourceRoot":"","sources":["../src/tituloEleitor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;;;AAEH,mCAMgB;AAEhB;;;;;;GAMG;AACU,QAAA,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAEhD,MAAM,MAAM,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAEpC,MAAM,WAAW,GAAG,4BAAoB,CAAC,EAAE,CAAC,CAAA;IAC5C,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;KACvE;IAED,MAAM,IAAI,GAAG,gCAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACvF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IAE3C,MAAM,IAAI,GAAG,gCAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC/E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IAE3C,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,CAAA;AACvB,CAAC,CAAA;AAED;;;;;GAKG;AACU,QAAA,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,iBAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;AAC1F,8DAA8D;AAE9D;;;;;GAKG;AACU,QAAA,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,GAAG,GAAG,kBAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAE/B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAE/D,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,UAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAA;IAE3C,IAAI,QAAQ;QAAE,OAAO,YAAI,CAAC,MAAM,CAAC,CAAA;IACjC,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;;;;;GAOG;AACU,QAAA,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,MAAM,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAEpC,IAAI,UAAE,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QAC3C,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"}
1
+ {"version":3,"file":"tituloEleitor.js","sourceRoot":"","sources":["../src/tituloEleitor.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -64,7 +64,7 @@ export declare function fakeNumber(length: number, forceLength?: boolean): numbe
64
64
  * @param {Number} length Tamanho exato. Se for null, só retira os caracteres não-numéricos
65
65
  * @returns {String} Número com o tamanho exato
66
66
  */
67
- export declare function clearValue(value: string | number, length?: number | null): string;
67
+ export declare function clearValue(value: string | number, length?: number | null, options?: ClearValueOptions): string;
68
68
  /**
69
69
  * insertAtPosition()
70
70
  * Insere um conjunto de caracteres em um local específico de uma string
@@ -120,3 +120,14 @@ export declare function applyMask(value: string | number, mask: string): string;
120
120
  * @returns {String}
121
121
  */
122
122
  export declare function randomLetter(): string;
123
+ /**
124
+ * Opções do clearValue
125
+ */
126
+ interface ClearValueOptions {
127
+ fillZerosAtLeft?: boolean;
128
+ trimAtRight?: boolean;
129
+ rejectEmpty?: boolean;
130
+ rejectHigherLength?: boolean;
131
+ rejectEqualSequence?: boolean;
132
+ }
133
+ export {};