validation-br 0.8.2 → 0.21.3

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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/dist/documents/cnh.js +89 -12
  3. package/dist/documents/cnh.js.map +1 -1
  4. package/dist/documents/cnpj.js +78 -14
  5. package/dist/documents/cnpj.js.map +1 -1
  6. package/dist/documents/cpf.js +91 -13
  7. package/dist/documents/cpf.js.map +1 -1
  8. package/dist/documents/index.js +16 -10
  9. package/dist/documents/index.js.map +1 -1
  10. package/dist/documents/judicial-process.js +177 -0
  11. package/dist/documents/judicial-process.js.map +1 -0
  12. package/dist/documents/pis-pasep.js +93 -24
  13. package/dist/documents/pis-pasep.js.map +1 -1
  14. package/dist/documents/postal-code.js +91 -12
  15. package/dist/documents/postal-code.js.map +1 -1
  16. package/dist/documents/renavam.js +97 -0
  17. package/dist/documents/renavam.js.map +1 -0
  18. package/dist/documents/titulo-eleitor.js +91 -10
  19. package/dist/documents/titulo-eleitor.js.map +1 -1
  20. package/dist/lib/utils.js +123 -7
  21. package/dist/lib/utils.js.map +1 -1
  22. package/index.js +2 -2
  23. package/package.json +48 -8
  24. package/readme.md +239 -86
  25. package/src/documents/cnh.js +0 -73
  26. package/src/documents/cnpj.js +0 -71
  27. package/src/documents/cpf.js +0 -80
  28. package/src/documents/index.js +0 -15
  29. package/src/documents/pis-pasep.js +0 -69
  30. package/src/documents/postal-code.js +0 -64
  31. package/src/documents/titulo-eleitor.js +0 -73
  32. package/src/lib/utils.js +0 -41
  33. package/tests/index.js +0 -13
  34. package/tests/invalid-list-generator.test.js +0 -25
  35. package/tests/is-cnh.test.js +0 -42
  36. package/tests/is-cnpj.test.js +0 -46
  37. package/tests/is-cpf.test.js +0 -41
  38. package/tests/is-pis.test.js +0 -41
  39. package/tests/is-postal-code.test.js +0 -48
  40. package/tests/is-renavam.test.js +0 -34
  41. package/tests/is-titulo.test.js +0 -42
  42. package/tests/sum-elements-by-multipliers.test.js +0 -35
  43. package/tests/sum-to-dv.test.js +0 -17
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _require = require('../lib/utils'),
4
- sumElementsByMultipliers = _require.sumElementsByMultipliers;
5
3
  /**
6
4
  * isTitulo()
7
5
  * Calcula se um título eleitoral é válido
@@ -55,20 +53,103 @@ var _require = require('../lib/utils'),
55
53
  * @param {String} value Título eleitoral
56
54
  * @returns {Boolean}
57
55
  */
56
+ var _require = require('../lib/utils'),
57
+ sumElementsByMultipliers = _require.sumElementsByMultipliers,
58
+ clearValue = _require.clearValue,
59
+ fakeNumber = _require.fakeNumber,
60
+ applyMask = _require.applyMask,
61
+ invalidListGenerator = _require.invalidListGenerator;
62
+ /**
63
+ * dv()
64
+ * Calcula o dígito verificador de um CPF
65
+ *
66
+ * @param {Number|String} value
67
+ * @returns {String}
68
+ */
58
69
 
59
70
 
60
- var isTitulo = function isTitulo() {
71
+ var dv = function dv() {
61
72
  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
62
- var titulo = value.replace(/[^\d]+/g, '');
63
- if (!titulo || titulo.length !== 12) return false;
64
- var sum1 = sumElementsByMultipliers(titulo.substr(0, 8), [2, 3, 4, 5, 6, 7, 8, 9]);
65
- var sum2 = sumElementsByMultipliers(titulo.substr(8, 3), [7, 8, 9]);
73
+ if (!value) throw new Error('CPF não informado');
74
+ var titulo = clearValue(value, 10);
75
+ var invalidList = invalidListGenerator(10);
76
+
77
+ if (invalidList.includes(titulo)) {
78
+ throw new Error('Título não pode ser uma sequência de números iguais');
79
+ }
80
+
81
+ var sum1 = sumElementsByMultipliers(titulo.substring(0, 8), [2, 3, 4, 5, 6, 7, 8, 9]);
66
82
  var dv1 = sum1 % 11 >= 10 ? 0 : sum1 % 11;
83
+ var sum2 = sumElementsByMultipliers(titulo.substring(8, 10) + dv1, [7, 8, 9]);
67
84
  var dv2 = sum2 % 11 >= 10 ? 0 : sum2 % 11;
68
- if (dv1 !== Number(titulo.charAt(10))) return false;
69
- if (dv2 !== Number(titulo.charAt(11))) return false;
85
+ return "".concat(dv1).concat(dv2);
86
+ };
87
+ /**
88
+ * Aplica uma máscara ao número informado
89
+ *
90
+ * @param {String} value Número de Processo
91
+ * @returns {String} Valor com a máscara
92
+ */
93
+
94
+
95
+ var mask = function mask(value) {
96
+ return applyMask(value, '0000.0000.0000');
97
+ };
98
+ /**
99
+ * fake()
100
+ * Gera um número válido
101
+ *
102
+ * @returns {String}
103
+ */
104
+
105
+
106
+ var fake = function fake() {
107
+ var withMask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
108
+ var num = fakeNumber(8, true);
109
+ var uf = String(parseInt(Math.random() * 27 + 1, 10)).padStart(2, '0');
110
+ var titulo = "".concat(num).concat(uf).concat(dv(num + uf));
111
+ if (withMask) return mask(titulo);
112
+ return titulo;
113
+ };
114
+ /**
115
+ * validateOrFail()
116
+ * Valida se um número de processo está correto e
117
+ * retorna uma exceção se não estiver
118
+ *
119
+ * @returns {Boolean}
120
+ */
121
+
122
+
123
+ var validateOrFail = function validateOrFail(value) {
124
+ var titulo = clearValue(value, 12);
125
+
126
+ if (dv(titulo) !== titulo.substring(10, 12)) {
127
+ throw new Error('Dígito verificador inválido');
128
+ }
129
+
70
130
  return true;
71
131
  };
132
+ /**
133
+ * validate()
134
+ * Valida se um número de processo está correto
135
+ *
136
+ * @returns {Boolean}
137
+ */
72
138
 
73
- module.exports = isTitulo;
139
+
140
+ var validate = function validate(value) {
141
+ try {
142
+ return validateOrFail(value);
143
+ } catch (error) {
144
+ return false;
145
+ }
146
+ };
147
+
148
+ module.exports = {
149
+ dv: dv,
150
+ fake: fake,
151
+ mask: mask,
152
+ validate: validate,
153
+ validateOrFail: validateOrFail
154
+ };
74
155
  //# sourceMappingURL=titulo-eleitor.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/documents/titulo-eleitor.js"],"names":["require","sumElementsByMultipliers","isTitulo","value","titulo","replace","length","sum1","substr","sum2","dv1","dv2","Number","charAt","module","exports"],"mappings":";;AAAA,eAAqCA,OAAO,CAAC,cAAD,CAA5C;AAAA,IAAQC,wBAAR,YAAQA,wBAAR;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AAC/B,MAAMC,MAAM,GAAGD,KAAK,CAACE,OAAN,CAAc,SAAd,EAAyB,EAAzB,CAAf;AAEA,MAAI,CAACD,MAAD,IAAWA,MAAM,CAACE,MAAP,KAAkB,EAAjC,EAAqC,OAAO,KAAP;AAErC,MAAMC,IAAI,GAAGN,wBAAwB,CAACG,MAAM,CAACI,MAAP,CAAc,CAAd,EAAiB,CAAjB,CAAD,EAAsB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,CAAtB,CAArC;AACA,MAAMC,IAAI,GAAGR,wBAAwB,CAACG,MAAM,CAACI,MAAP,CAAc,CAAd,EAAiB,CAAjB,CAAD,EAAsB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAAtB,CAArC;AAEA,MAAME,GAAG,GAAIH,IAAI,GAAG,EAAR,IAAe,EAAf,GAAoB,CAApB,GAAwBA,IAAI,GAAG,EAA3C;AACA,MAAMI,GAAG,GAAIF,IAAI,GAAG,EAAR,IAAe,EAAf,GAAoB,CAApB,GAAwBA,IAAI,GAAG,EAA3C;AAEA,MAAIC,GAAG,KAAKE,MAAM,CAACR,MAAM,CAACS,MAAP,CAAc,EAAd,CAAD,CAAlB,EAAuC,OAAO,KAAP;AACvC,MAAIF,GAAG,KAAKC,MAAM,CAACR,MAAM,CAACS,MAAP,CAAc,EAAd,CAAD,CAAlB,EAAuC,OAAO,KAAP;AAEvC,SAAO,IAAP;AACD,CAfD;;AAiBAC,MAAM,CAACC,OAAP,GAAiBb,QAAjB","sourcesContent":["const { sumElementsByMultipliers } = require('../lib/utils');\n\n/**\n * isTitulo()\n * Calcula se um título eleitoral é válido\n *\n * @doc\n * Título de eleitor deve possuir 12 dígitos.\n *\n * - Os caracteres 1 a 8 são números sequenciais.\n *\n * - Os caracteres 9 e 10 representam os estados da federação onde o título\n * foi emitido (01 = SP, 02 = MG, 03 = RJ, 04 = RS, 05 = BA, 06 = PR, 07 = CE, 08 = PE,\n * 09 = SC, 10 = GO, 11 = MA12 = PB, 13 = PA, 14 = ES, 15 = PI, 16 = RN, 17 = AL,\n * 18 = MT, 19 = MS, 20 = DF, 21 = SE, 22 = AM, 23 = RO, 24 = AC, 25 = AP, 26 = RR,\n * 27 = TO, 28 = Exterior(ZZ).\n *\n * - Os caracteres 11 e 12 são dígitos verificadores.\n *\n * 1) Partes do número\n * ------------------------------------------------\n * | Número Sequencial | UF | DV |\n * 1 0 2 3 8 5 0 1 0 6 7 1\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 8 pelos números 2, 3, 4, 5, 6, 7, 8 e 9.\n *\n * 1 0 2 3 8 5 0 1\n * x x x x x x x x\n * 2 3 4 5 6 7 8 9\n * = 2 + 0 + 8 +15 +48 +35 + 0 + 9 = 117\n *\n * - O somatório encontrado é dividido por 11. O DV1 é o resto da divisão. Se o\n * resto for 10, o DV1 é 0.\n *\n * 2.1) 117 / 11 tem resto igual a 7.\n *\n * 3) Cálculo do segundo DV\n *\n * - Soma-se o produto dos algarismos 9 a 11 (relativos aos 2 dígitos da UF e o novo\n * DV1 que acabou de ser calculado) e os multiplicam pelos números 7, 8 e 9. Se o\n * resto for 10, DV2 será 0.\n * 0 6 7\n * x x x\n * 7 8 9\n * = 0 +48 +63 = 111\n *\n * 3.1) 111 / 11 tem resto igual a 1.\n *\n * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\nconst isTitulo = (value = '') => {\n const titulo = value.replace(/[^\\d]+/g, '');\n\n if (!titulo || titulo.length !== 12) return false;\n\n const sum1 = sumElementsByMultipliers(titulo.substr(0, 8), [2, 3, 4, 5, 6, 7, 8, 9]);\n const sum2 = sumElementsByMultipliers(titulo.substr(8, 3), [7, 8, 9]);\n\n const dv1 = (sum1 % 11) >= 10 ? 0 : sum1 % 11;\n const dv2 = (sum2 % 11) >= 10 ? 0 : sum2 % 11;\n\n if (dv1 !== Number(titulo.charAt(10))) return false;\n if (dv2 !== Number(titulo.charAt(11))) return false;\n\n return true;\n};\n\nmodule.exports = isTitulo;\n"],"file":"titulo-eleitor.js"}
1
+ {"version":3,"sources":["../../src/documents/titulo-eleitor.js"],"names":["require","sumElementsByMultipliers","clearValue","fakeNumber","applyMask","invalidListGenerator","dv","value","Error","titulo","invalidList","includes","sum1","substring","dv1","sum2","dv2","mask","fake","withMask","num","uf","String","parseInt","Math","random","padStart","validateOrFail","validate","error","module","exports"],"mappings":"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","sourcesContent":["/**\n * isTitulo()\n * Calcula se um título eleitoral é válido\n *\n * @doc\n * Título de eleitor deve possuir 12 dígitos.\n *\n * - Os caracteres 1 a 8 são números sequenciais.\n *\n * - Os caracteres 9 e 10 representam os estados da federação onde o título\n * foi emitido (01 = SP, 02 = MG, 03 = RJ, 04 = RS, 05 = BA, 06 = PR, 07 = CE, 08 = PE,\n * 09 = SC, 10 = GO, 11 = MA12 = PB, 13 = PA, 14 = ES, 15 = PI, 16 = RN, 17 = AL,\n * 18 = MT, 19 = MS, 20 = DF, 21 = SE, 22 = AM, 23 = RO, 24 = AC, 25 = AP, 26 = RR,\n * 27 = TO, 28 = Exterior(ZZ).\n *\n * - Os caracteres 11 e 12 são dígitos verificadores.\n *\n * 1) Partes do número\n * ------------------------------------------------\n * | Número Sequencial | UF | DV |\n * 1 0 2 3 8 5 0 1 0 6 7 1\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 8 pelos números 2, 3, 4, 5, 6, 7, 8 e 9.\n *\n * 1 0 2 3 8 5 0 1\n * x x x x x x x x\n * 2 3 4 5 6 7 8 9\n * = 2 + 0 + 8 +15 +48 +35 + 0 + 9 = 117\n *\n * - O somatório encontrado é dividido por 11. O DV1 é o resto da divisão. Se o\n * resto for 10, o DV1 é 0.\n *\n * 2.1) 117 / 11 tem resto igual a 7.\n *\n * 3) Cálculo do segundo DV\n *\n * - Soma-se o produto dos algarismos 9 a 11 (relativos aos 2 dígitos da UF e o novo\n * DV1 que acabou de ser calculado) e os multiplicam pelos números 7, 8 e 9. Se o\n * resto for 10, DV2 será 0.\n * 0 6 7\n * x x x\n * 7 8 9\n * = 0 +48 +63 = 111\n *\n * 3.1) 111 / 11 tem resto igual a 1.\n *\n * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\n\nconst {\n sumElementsByMultipliers,\n clearValue, fakeNumber, applyMask,\n invalidListGenerator,\n} = require('../lib/utils');\n\n/**\n * dv()\n * Calcula o dígito verificador de um CPF\n *\n * @param {Number|String} value\n * @returns {String}\n */\nconst dv = (value = '') => {\n if (!value) throw new Error('CPF não informado');\n\n const titulo = clearValue(value, 10);\n\n const invalidList = invalidListGenerator(10);\n if (invalidList.includes(titulo)) {\n throw new Error('Título não pode ser uma sequência de números iguais');\n }\n\n const sum1 = sumElementsByMultipliers(titulo.substring(0, 8), [2, 3, 4, 5, 6, 7, 8, 9]);\n const dv1 = (sum1 % 11) >= 10 ? 0 : sum1 % 11;\n\n const sum2 = sumElementsByMultipliers(titulo.substring(8, 10) + dv1, [7, 8, 9]);\n const dv2 = (sum2 % 11) >= 10 ? 0 : sum2 % 11;\n\n return `${dv1}${dv2}`;\n};\n\n/**\n * Aplica uma máscara ao número informado\n *\n * @param {String} value Número de Processo\n * @returns {String} Valor com a máscara\n */\nconst mask = (value) => applyMask(value, '0000.0000.0000');\n\n/**\n * fake()\n * Gera um número válido\n *\n * @returns {String}\n */\nconst fake = (withMask = false) => {\n const num = fakeNumber(8, true);\n\n const uf = String(parseInt(Math.random() * 27 + 1, 10)).padStart(2, '0');\n\n const titulo = `${num}${uf}${dv(num + uf)}`;\n\n if (withMask) return mask(titulo);\n return titulo;\n};\n\n/**\n * validateOrFail()\n * Valida se um número de processo está correto e\n * retorna uma exceção se não estiver\n *\n * @returns {Boolean}\n */\nconst validateOrFail = (value) => {\n const titulo = clearValue(value, 12);\n\n if (dv(titulo) !== titulo.substring(10, 12)) {\n throw new Error('Dígito verificador inválido');\n }\n\n return true;\n};\n\n/**\n * validate()\n * Valida se um número de processo está correto\n *\n * @returns {Boolean}\n */\nconst validate = (value) => {\n try {\n return validateOrFail(value);\n } catch (error) {\n return false;\n }\n};\n\nmodule.exports = {\n dv,\n fake,\n mask,\n validate,\n validateOrFail,\n};\n"],"file":"titulo-eleitor.js"}
package/dist/lib/utils.js CHANGED
@@ -2,13 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.sumToDV = sumToDV;
9
- exports.invalidListGenerator = invalidListGenerator;
10
- exports.sumElementsByMultipliers = sumElementsByMultipliers;
11
-
12
5
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
6
 
14
7
  /**
@@ -57,4 +50,127 @@ function sumElementsByMultipliers(value, multiplier) {
57
50
  return accu + curr * Number(value.charAt(i));
58
51
  }, 0);
59
52
  }
53
+ /**
54
+ * fakeNumber()
55
+ * Cria um número aleatório com o número de caracteres
56
+ *
57
+ * @example
58
+ * fakeNumber(8, true) // -> 00083159
59
+ * fakeNumber(4) // -> 831
60
+ *
61
+ * @param {Integer} length
62
+ * @param {Boolean} forceLength Adiciona zeros à esquerda para ter os números de caractes exatos
63
+ * @returns {String}
64
+ */
65
+
66
+
67
+ function fakeNumber(length) {
68
+ var forceLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
69
+ var value = parseInt(Math.random() * Math.pow(10, length), 10);
70
+ if (forceLength) return String(value).padStart(length, '0');
71
+ return value;
72
+ }
73
+ /**
74
+ * Limpa um número informado, retirando caracteres diferentes de números,
75
+ * preenchendo com zeros à esquerda se for menor que o tamanho exato e
76
+ * removendo uma parte do número se for maior que tamanho definido.
77
+ *
78
+ * 1) Retira caracteres não-numéricos
79
+ * 2) Preenche com zeros à esquerda se 'value' for menor que 'length'
80
+ * 3) Remove caracteres à direita se 'value' for maior que 'length'
81
+ *
82
+ * @example
83
+ * clearValue(12345-6, 6) // -> 123456
84
+ * clearValue(12345678, 3) // -> 123
85
+ * clearValue(12345, 10) // -> 0000001234
86
+ *
87
+ * @param {Number|String} value
88
+ * @param {Number} length Tamanho exato. Se for null, só retira os caracteres não-numéricos
89
+ * @returns {String} Número com o tamanho exato
90
+ */
91
+
92
+
93
+ function clearValue(value) {
94
+ var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
95
+ var clearedValue = String(value).replace(/([^\d]+)/ig, '');
96
+ if (!length || clearedValue.length === length) return clearedValue;
97
+ if (clearedValue.length > length) return clearedValue.substring(0, length);
98
+ return clearedValue.padStart(length, '0');
99
+ }
100
+ /**
101
+ * insertAtPosition()
102
+ * Insere um conjunto de caracteres em um local específico de uma string
103
+ *
104
+ * @example
105
+ * insertAtPosition('AAABBB', 'C', 3) // -> AAACBBB
106
+ * insertAtPosition('000011122223445555', 99, 7) // -> 00001119922223445555
107
+ *
108
+ * @param {String|Number} value Valor original
109
+ * @param {String|Number} insertValue Valor que será inserido
110
+ * @param {String|Number} position Posição que receberá o novo valor
111
+ * @returns {String}
112
+ *
113
+ */
114
+
115
+
116
+ function insertAtPosition(value, insertValue, position) {
117
+ return "".concat(value.substring(0, position)).concat(insertValue).concat(value.substring(position));
118
+ }
119
+ /**
120
+ * removeFromPosition()
121
+ * Retira um conjunto de caracteres de um local específico de uma string
122
+ *
123
+ * @example
124
+ * removeFromPosition('00001119922223445555', 7,9) // -> 000011122223445555
125
+ * removeFromPosition('AAACBBB', 3,4) // -> AAABBB
126
+ *
127
+ * @param {String|Number} value Valor original
128
+ * @param {String|Number} startPosition
129
+ * @param {String|Number} endPosition
130
+ * @returns {String}
131
+ *
132
+ */
133
+
134
+
135
+ function removeFromPosition(value, startPosition, endPosition) {
136
+ return [value.slice(0, startPosition), value.slice(endPosition)].join('');
137
+ }
138
+ /**
139
+ * applyMask()
140
+ * Aplica uma máscara a uma string
141
+ *
142
+ * @example
143
+ * applyMask('59650000', '00.000-000') // -> 59.650-000
144
+ * applyMask('99877665544', '(00) 0 0000-0000') // -> (99) 8 7766-5544
145
+ *
146
+ * @param {String|Number} value Valor original
147
+ * @param {String} mask
148
+ * @returns {String}
149
+ *
150
+ */
151
+
152
+
153
+ function applyMask(value, mask) {
154
+ var maskLen = clearValue(mask).length;
155
+ var masked = clearValue(value, maskLen);
156
+ var specialChars = ['/', '-', '.', '(', ')', ' '];
157
+
158
+ for (var position = 0; position < mask.length; position += 1) {
159
+ var current = mask[position];
160
+ if (specialChars.includes(current)) masked = insertAtPosition(masked, current, position);
161
+ }
162
+
163
+ return masked;
164
+ }
165
+
166
+ module.exports = {
167
+ sumToDV: sumToDV,
168
+ invalidListGenerator: invalidListGenerator,
169
+ sumElementsByMultipliers: sumElementsByMultipliers,
170
+ fakeNumber: fakeNumber,
171
+ applyMask: applyMask,
172
+ clearValue: clearValue,
173
+ insertAtPosition: insertAtPosition,
174
+ removeFromPosition: removeFromPosition
175
+ };
60
176
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/utils.js"],"names":["sumToDV","sum","invalidListGenerator","size","Array","keys","map","f","String","repeat","sumElementsByMultipliers","value","multiplier","isArray","split","reduce","accu","curr","i","Number","charAt"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,OAAT,CAAiBC,GAAjB,EAAsB;AAC3B,SAAOA,GAAG,GAAG,EAAN,GAAW,CAAX,GAAe,CAAf,GAAmB,KAAMA,GAAG,GAAG,EAAtC;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,oBAAT,CAA8BC,IAA9B,EAAoC;AACzC,SAAO,iCAAIC,KAAK,CAAC,EAAD,CAAL,CAAUC,IAAV,EAAJ,EAAsBC,GAAtB,CAA0B,UAACC,CAAD;AAAA,WAAOC,MAAM,CAACD,CAAD,CAAN,CAAUE,MAAV,CAAiBN,IAAjB,CAAP;AAAA,GAA1B,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASO,wBAAT,CAAkCC,KAAlC,EAAyCC,UAAzC,EAAqD;AAC1D,SAAO,CAACR,KAAK,CAACS,OAAN,CAAcD,UAAd,IAA4BA,UAA5B,GAAyCA,UAAU,CAACE,KAAX,CAAiB,EAAjB,CAA1C,EACJC,MADI,CACG,UAACC,IAAD,EAAOC,IAAP,EAAaC,CAAb;AAAA,WAAmBF,IAAI,GAAIC,IAAI,GAAGE,MAAM,CAACR,KAAK,CAACS,MAAN,CAAaF,CAAb,CAAD,CAAxC;AAAA,GADH,EAC+D,CAD/D,CAAP;AAED","sourcesContent":["/**\n * Calcula o DV verificador a partir das regras do MOD11:\n * O valor da soma é dividido por 11. O resultado é o resto da divisão. Caso o resto seja\n * menor que 2, ou seja, o valor da divisão seja 10 ou 11, o resultado é 0.\n *\n * @param {Integer} sum Soma\n */\nexport function sumToDV(sum) {\n return sum % 11 < 2 ? 0 : 11 - (sum % 11);\n}\n\n/**\n * Cria uma lista de valores repetidos no tamanho do documento para eliminar\n * valores que já conhecemos como inválidos\n *\n * @example\n * invalidListGenerator(10, 11)\n * //-> [00000000000, 11111111111, ....., 99999999999]\n *\n * @param {Integer} length Número de itens do array\n * @param {Integer} size Tamanho da string gerada\n * @returns {Array} Lista de valores\n */\nexport function invalidListGenerator(size) {\n return [...Array(10).keys()].map((f) => String(f).repeat(size));\n}\n\n/**\n * Soma os elementos de uma string com os elementos de outra, ou de um array\n * @example\n * sumElementsByMultipliers('123', '987') //-> 46\n * sumElementsByMultipliers('123', [9, 8, 7]) //-> 46\n *\n * @param {String} value\n * @param {String|Array} multiplier\n * @returns {Integer} Somatório\n */\nexport function sumElementsByMultipliers(value, multiplier) {\n return (Array.isArray(multiplier) ? multiplier : multiplier.split(''))\n .reduce((accu, curr, i) => accu + (curr * Number(value.charAt(i))), 0);\n}\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../src/lib/utils.js"],"names":["sumToDV","sum","invalidListGenerator","size","Array","keys","map","f","String","repeat","sumElementsByMultipliers","value","multiplier","isArray","split","reduce","accu","curr","i","Number","charAt","fakeNumber","length","forceLength","parseInt","Math","random","padStart","clearValue","clearedValue","replace","substring","insertAtPosition","insertValue","position","removeFromPosition","startPosition","endPosition","slice","join","applyMask","mask","maskLen","masked","specialChars","current","includes","module","exports"],"mappings":"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","sourcesContent":["/**\n * Calcula o DV verificador a partir das regras do MOD11:\n * O valor da soma é dividido por 11. O resultado é o resto da divisão. Caso o resto seja\n * menor que 2, ou seja, o valor da divisão seja 10 ou 11, o resultado é 0.\n *\n * @param {Integer} sum Soma\n */\nfunction sumToDV(sum) {\n return sum % 11 < 2 ? 0 : 11 - (sum % 11);\n}\n\n/**\n * Cria uma lista de valores repetidos no tamanho do documento para eliminar\n * valores que já conhecemos como inválidos\n *\n * @example\n * invalidListGenerator(10, 11)\n * //-> [00000000000, 11111111111, ....., 99999999999]\n *\n * @param {Integer} length Número de itens do array\n * @param {Integer} size Tamanho da string gerada\n * @returns {Array} Lista de valores\n */\nfunction invalidListGenerator(size) {\n return [...Array(10).keys()].map((f) => String(f).repeat(size));\n}\n\n/**\n * Soma os elementos de uma string com os elementos de outra, ou de um array\n * @example\n * sumElementsByMultipliers('123', '987') //-> 46\n * sumElementsByMultipliers('123', [9, 8, 7]) //-> 46\n *\n * @param {String} value\n * @param {String|Array} multiplier\n * @returns {Integer} Somatório\n */\nfunction sumElementsByMultipliers(value, multiplier) {\n return (Array.isArray(multiplier) ? multiplier : multiplier.split(''))\n .reduce((accu, curr, i) => accu + (curr * Number(value.charAt(i))), 0);\n}\n\n/**\n * fakeNumber()\n * Cria um número aleatório com o número de caracteres\n *\n * @example\n * fakeNumber(8, true) // -> 00083159\n * fakeNumber(4) // -> 831\n *\n * @param {Integer} length\n * @param {Boolean} forceLength Adiciona zeros à esquerda para ter os números de caractes exatos\n * @returns {String}\n */\nfunction fakeNumber(length, forceLength = false) {\n const value = parseInt(Math.random() * (10 ** length), 10);\n\n if (forceLength) return String(value).padStart(length, '0');\n\n return value;\n}\n\n/**\n * Limpa um número informado, retirando caracteres diferentes de números,\n * preenchendo com zeros à esquerda se for menor que o tamanho exato e\n * removendo uma parte do número se for maior que tamanho definido.\n *\n * 1) Retira caracteres não-numéricos\n * 2) Preenche com zeros à esquerda se 'value' for menor que 'length'\n * 3) Remove caracteres à direita se 'value' for maior que 'length'\n *\n * @example\n * clearValue(12345-6, 6) // -> 123456\n * clearValue(12345678, 3) // -> 123\n * clearValue(12345, 10) // -> 0000001234\n *\n * @param {Number|String} value\n * @param {Number} length Tamanho exato. Se for null, só retira os caracteres não-numéricos\n * @returns {String} Número com o tamanho exato\n */\nfunction clearValue(value, length = null) {\n const clearedValue = String(value).replace(/([^\\d]+)/ig, '');\n\n if (!length || clearedValue.length === length) return clearedValue;\n\n if (clearedValue.length > length) return clearedValue.substring(0, length);\n return clearedValue.padStart(length, '0');\n}\n\n/**\n * insertAtPosition()\n * Insere um conjunto de caracteres em um local específico de uma string\n *\n * @example\n * insertAtPosition('AAABBB', 'C', 3) // -> AAACBBB\n * insertAtPosition('000011122223445555', 99, 7) // -> 00001119922223445555\n *\n * @param {String|Number} value Valor original\n * @param {String|Number} insertValue Valor que será inserido\n * @param {String|Number} position Posição que receberá o novo valor\n * @returns {String}\n *\n */\nfunction insertAtPosition(value, insertValue, position) {\n return `${value.substring(0, position)}${insertValue}${value.substring(position)}`;\n}\n\n/**\n * removeFromPosition()\n * Retira um conjunto de caracteres de um local específico de uma string\n *\n * @example\n * removeFromPosition('00001119922223445555', 7,9) // -> 000011122223445555\n * removeFromPosition('AAACBBB', 3,4) // -> AAABBB\n *\n * @param {String|Number} value Valor original\n * @param {String|Number} startPosition\n * @param {String|Number} endPosition\n * @returns {String}\n *\n */\nfunction removeFromPosition(value, startPosition, endPosition) {\n return [value.slice(0, startPosition), value.slice(endPosition)].join('');\n}\n\n/**\n * applyMask()\n * Aplica uma máscara a uma string\n *\n * @example\n * applyMask('59650000', '00.000-000') // -> 59.650-000\n * applyMask('99877665544', '(00) 0 0000-0000') // -> (99) 8 7766-5544\n *\n * @param {String|Number} value Valor original\n * @param {String} mask\n * @returns {String}\n *\n */\nfunction applyMask(value, mask) {\n const maskLen = clearValue(mask).length;\n let masked = clearValue(value, maskLen);\n const specialChars = ['/', '-', '.', '(', ')', ' '];\n\n for (let position = 0; position < mask.length; position += 1) {\n const current = mask[position];\n if (specialChars.includes(current)) masked = insertAtPosition(masked, current, position);\n }\n\n return masked;\n}\n\nmodule.exports = {\n sumToDV,\n invalidListGenerator,\n sumElementsByMultipliers,\n fakeNumber,\n applyMask,\n clearValue,\n insertAtPosition,\n removeFromPosition,\n};\n"],"file":"utils.js"}
package/index.js CHANGED
@@ -1,3 +1,3 @@
1
- const Brazilidation = require('./dist/documents');
1
+ const ValidationBR = require('./dist/documents');
2
2
 
3
- module.exports = Brazilidation;
3
+ module.exports = ValidationBR;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "validation-br",
3
- "description": "Brazilian personal documents validation - cpf, cnpj, titulo, pis/pasep, cnh",
4
- "version": "0.8.2",
3
+ "description": "Brazilian personal documents validation - cpf, cnpj, titulo, pis/pasep, cnh, renavam, processos judiciais, protocolo federal, código de rastreamento dos correios",
4
+ "version": "0.21.3",
5
5
  "scripts": {
6
6
  "test": "yarn build && cls && node tests | tap-spec",
7
7
  "build": "babel src --source-maps -d dist",
@@ -12,15 +12,13 @@
12
12
  "eslintConfig": {
13
13
  "extends": "airbnb"
14
14
  },
15
- "dependencies": {
16
- "@babel/runtime": "^7.15.3",
17
- "qrcode": "^1.4.4"
18
- },
15
+ "dependencies": {},
19
16
  "devDependencies": {
20
17
  "@babel/cli": "^7.14.8",
21
18
  "@babel/core": "^7.15.0",
22
19
  "@babel/plugin-transform-runtime": "^7.15.0",
23
20
  "@babel/preset-env": "^7.15.0",
21
+ "@babel/runtime": "^7.15.3",
24
22
  "babel-preset-minify": "^0.5.1",
25
23
  "core-js": "^3.16.2",
26
24
  "eslint": "^7.32.0",
@@ -41,15 +39,57 @@
41
39
  "homepage": "https://github.com/klawdyo/validation-br#readme",
42
40
  "keywords": [
43
41
  "validation-br",
44
- "brazilian",
45
42
  "validation",
46
43
  "personal documents",
44
+ "document",
45
+ "brazil",
46
+ "brasil",
47
+ "brazilian",
48
+ "brasileiro",
47
49
  "cpf",
48
50
  "cnpj",
49
51
  "pis",
50
52
  "pasep",
51
53
  "cnh",
52
- "titulo eleitor"
54
+ "titulo eleitor",
55
+ "eleitoral",
56
+ "titulo",
57
+ "renavam",
58
+ "processos",
59
+ "judiciais",
60
+ "judicial",
61
+ "justiça",
62
+ "protocolo",
63
+ "federal",
64
+ "fake",
65
+ "falso",
66
+ "mock",
67
+ "faker",
68
+ "mockup",
69
+ "mask",
70
+ "mascara",
71
+ "fake cpf",
72
+ "fake cnpj",
73
+ "fake cnh",
74
+ "fake pis",
75
+ "fake pasep",
76
+ "fake cadunico",
77
+ "fake renavam",
78
+ "fake titulo",
79
+ "fake titulo eleitor",
80
+ "fake titulo eleitoral",
81
+ "fake número processo",
82
+ "processo justiça",
83
+ "processo judicial",
84
+ "valida",
85
+ "validar",
86
+ "validação",
87
+ "valide",
88
+ "validate",
89
+ "format",
90
+ "formatar",
91
+ "formatador",
92
+ "formatter"
53
93
  ],
54
94
  "license": "MIT",
55
95
  "private": false