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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 Claudio Medeiros
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,9 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _require = require('../lib/utils'),
4
- sumElementsByMultipliers = _require.sumElementsByMultipliers,
5
- sumToDV = _require.sumToDV,
6
- invalidListGenerator = _require.invalidListGenerator;
7
3
  /**
8
4
  * isCNH()
9
5
  * Calcula se uma CNH é válida
@@ -59,19 +55,100 @@ var _require = require('../lib/utils'),
59
55
  * @param {String} value Título eleitoral
60
56
  * @returns {Boolean}
61
57
  */
58
+ var _require = require('../lib/utils'),
59
+ sumElementsByMultipliers = _require.sumElementsByMultipliers,
60
+ sumToDV = _require.sumToDV,
61
+ invalidListGenerator = _require.invalidListGenerator,
62
+ clearValue = _require.clearValue,
63
+ applyMask = _require.applyMask,
64
+ fakeNumber = _require.fakeNumber;
65
+ /**
66
+ * Calcula o Dígito Verificador de um RENAVAM informado
67
+ *
68
+ * @returns String Número fake de um cnh válido
69
+ */
62
70
 
63
71
 
64
- var isCNH = function isCNH() {
72
+ var dv = function dv() {
65
73
  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
66
- var cnh = value.replace(/[^\d]+/g, '');
67
- var invalidList = invalidListGenerator(11);
68
- if (!cnh || invalidList.includes(cnh) || cnh.length !== 11) return false;
69
- var sum1 = sumElementsByMultipliers(cnh.substr(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);
70
- var sum2 = sumElementsByMultipliers(cnh.substr(0, 10), [3, 4, 5, 6, 7, 8, 9, 10, 11, 2]);
74
+ if (!value) throw new Error('CNH não informado');
75
+ var cnh = clearValue(value, 9);
76
+ var invalidList = invalidListGenerator(9);
77
+
78
+ if (invalidList.includes(cnh)) {
79
+ throw new Error('CNH não pode ser uma sequência de números iguais');
80
+ }
81
+
82
+ var sum1 = sumElementsByMultipliers(cnh.substring(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);
71
83
  var dv1 = sumToDV(sum1);
84
+ var sum2 = sumElementsByMultipliers(cnh.substring(0, 9) + dv1, [3, 4, 5, 6, 7, 8, 9, 10, 11, 2]);
72
85
  var dv2 = sumToDV(sum2);
73
- return "".concat(dv1).concat(dv2) === cnh.substr(9, 2);
86
+ return "".concat(dv1).concat(dv2);
87
+ };
88
+ /**
89
+ * Valida um número de cnh e retorna uma exceção caso seja inválido
90
+ *
91
+ * @returns String Número fake de um cnh válido
92
+ */
93
+
94
+
95
+ var validateOrFail = function validateOrFail() {
96
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
97
+ var cnh = clearValue(value, 11);
98
+
99
+ if (dv(cnh) !== cnh.substring(9, 11)) {
100
+ throw new Error('Dígito verificador inválido');
101
+ }
102
+
103
+ return true;
104
+ };
105
+ /**
106
+ * Valida um número de cnh
107
+ *
108
+ * @returns String Valor a ser validado
109
+ */
110
+
111
+
112
+ var validate = function validate() {
113
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
114
+
115
+ try {
116
+ return validateOrFail(value);
117
+ } catch (error) {
118
+ return false;
119
+ }
74
120
  };
121
+ /**
122
+ * Aplica uma máscara a uma string
123
+ *
124
+ * @returns String string com a máscara aplicada
125
+ */
126
+
75
127
 
76
- module.exports = isCNH;
128
+ var mask = function mask() {
129
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
130
+ return applyMask(value, '000000000-00');
131
+ };
132
+ /**
133
+ * Cria um número fake
134
+ *
135
+ * @returns String Número fake porém válido
136
+ */
137
+
138
+
139
+ var fake = function fake() {
140
+ var withMask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
141
+ var value = fakeNumber(9, true);
142
+ var cnh = "".concat(value).concat(dv(value));
143
+ if (withMask) return mask(cnh);
144
+ return cnh;
145
+ };
146
+
147
+ module.exports = {
148
+ dv: dv,
149
+ fake: fake,
150
+ mask: mask,
151
+ validate: validate,
152
+ validateOrFail: validateOrFail
153
+ };
77
154
  //# sourceMappingURL=cnh.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/documents/cnh.js"],"names":["require","sumElementsByMultipliers","sumToDV","invalidListGenerator","isCNH","value","cnh","replace","invalidList","includes","length","sum1","substr","sum2","dv1","dv2","module","exports"],"mappings":";;AAAA,eAAoEA,OAAO,CAAC,cAAD,CAA3E;AAAA,IAAQC,wBAAR,YAAQA,wBAAR;AAAA,IAAkCC,OAAlC,YAAkCA,OAAlC;AAAA,IAA2CC,oBAA3C,YAA2CA,oBAA3C;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;AACA;;;AACA,IAAMC,KAAK,GAAG,SAARA,KAAQ,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AAC5B,MAAMC,GAAG,GAAGD,KAAK,CAACE,OAAN,CAAc,SAAd,EAAyB,EAAzB,CAAZ;AAEA,MAAMC,WAAW,GAAGL,oBAAoB,CAAC,EAAD,CAAxC;AACA,MAAI,CAACG,GAAD,IAAQE,WAAW,CAACC,QAAZ,CAAqBH,GAArB,CAAR,IAAqCA,GAAG,CAACI,MAAJ,KAAe,EAAxD,EAA4D,OAAO,KAAP;AAE5D,MAAMC,IAAI,GAAGV,wBAAwB,CAACK,GAAG,CAACM,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAD,EAAmB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,EAAzB,CAAnB,CAArC;AACA,MAAMC,IAAI,GAAGZ,wBAAwB,CAACK,GAAG,CAACM,MAAJ,CAAW,CAAX,EAAc,EAAd,CAAD,EAAoB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,EAAtB,EAA0B,EAA1B,EAA8B,CAA9B,CAApB,CAArC;AAEA,MAAME,GAAG,GAAGZ,OAAO,CAACS,IAAD,CAAnB;AACA,MAAMI,GAAG,GAAGb,OAAO,CAACW,IAAD,CAAnB;AAEA,SAAO,UAAGC,GAAH,SAASC,GAAT,MAAmBT,GAAG,CAACM,MAAJ,CAAW,CAAX,EAAc,CAAd,CAA1B;AACD,CAbD;;AAeAI,MAAM,CAACC,OAAP,GAAiBb,KAAjB","sourcesContent":["const { sumElementsByMultipliers, sumToDV, invalidListGenerator } = require('../lib/utils');\n\n/**\n * isCNH()\n * Calcula se uma CNH é válida\n *\n * @doc\n * CNH deve possuir 11 caracteres\n *\n * - Os caracteres 1 a 9 são números sequenciais.\n *\n *\n * - Os caracteres 10 e 11 são dígitos verificadores.\n *\n * 1) Partes do número\n * ____________________________ ______\n * | Número | D V |\n * | 5 8 3 1 6 7 9 4 5 3 4 |\n * |____________________________|_____|\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.\n *\n * 5 8 3 1 6 7 9 4 5\n * x x x x x x x x x\n * 2 3 4 5 6 7 8 9 10\n * = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294\n *\n * - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o\n * resto for 10, o DV1 é 0.\n *\n * 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3\n * DV1 = 3\n *\n * 3) Cálculo do segundo DV\n *\n * - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere\n * que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será\n * multiplicado por 2 e ficará no final.\n *\n * 5 8 3 1 6 7 9 4 5 3\n * x x x x x x x x x x\n * 3 4 5 6 7 8 9 10 11 2\n * = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348\n *\n * 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.\n * DV2 = 4\n *\n * - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o\n * resto for 10, o DV2 é 0.\n *\n * Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\nconst isCNH = (value = '') => {\n const cnh = value.replace(/[^\\d]+/g, '');\n\n const invalidList = invalidListGenerator(11);\n if (!cnh || invalidList.includes(cnh) || cnh.length !== 11) return false;\n\n const sum1 = sumElementsByMultipliers(cnh.substr(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const sum2 = sumElementsByMultipliers(cnh.substr(0, 10), [3, 4, 5, 6, 7, 8, 9, 10, 11, 2]);\n\n const dv1 = sumToDV(sum1);\n const dv2 = sumToDV(sum2);\n\n return `${dv1}${dv2}` === cnh.substr(9, 2);\n};\n\nmodule.exports = isCNH;\n"],"file":"cnh.js"}
1
+ {"version":3,"sources":["../../src/documents/cnh.js"],"names":["require","sumElementsByMultipliers","sumToDV","invalidListGenerator","clearValue","applyMask","fakeNumber","dv","value","Error","cnh","invalidList","includes","sum1","substring","dv1","sum2","dv2","validateOrFail","validate","error","mask","fake","withMask","module","exports"],"mappings":"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","sourcesContent":["/**\n * isCNH()\n * Calcula se uma CNH é válida\n *\n * @doc\n * CNH deve possuir 11 caracteres\n *\n * - Os caracteres 1 a 9 são números sequenciais.\n *\n *\n * - Os caracteres 10 e 11 são dígitos verificadores.\n *\n * 1) Partes do número\n * ____________________________ ______\n * | Número | D V |\n * | 5 8 3 1 6 7 9 4 5 3 4 |\n * |____________________________|_____|\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.\n *\n * 5 8 3 1 6 7 9 4 5\n * x x x x x x x x x\n * 2 3 4 5 6 7 8 9 10\n * = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294\n *\n * - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o\n * resto for 10, o DV1 é 0.\n *\n * 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3\n * DV1 = 3\n *\n * 3) Cálculo do segundo DV\n *\n * - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere\n * que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será\n * multiplicado por 2 e ficará no final.\n *\n * 5 8 3 1 6 7 9 4 5 3\n * x x x x x x x x x x\n * 3 4 5 6 7 8 9 10 11 2\n * = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348\n *\n * 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.\n * DV2 = 4\n *\n * - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o\n * resto for 10, o DV2 é 0.\n *\n * Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\n\nconst {\n sumElementsByMultipliers, sumToDV, invalidListGenerator,\n clearValue, applyMask, fakeNumber,\n} = require('../lib/utils');\n\n/**\n * Calcula o Dígito Verificador de um RENAVAM informado\n *\n * @returns String Número fake de um cnh válido\n */\nconst dv = (value = '') => {\n if (!value) throw new Error('CNH não informado');\n\n const cnh = clearValue(value, 9);\n\n const invalidList = invalidListGenerator(9);\n if (invalidList.includes(cnh)) {\n throw new Error('CNH não pode ser uma sequência de números iguais');\n }\n\n const sum1 = sumElementsByMultipliers(cnh.substring(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const dv1 = sumToDV(sum1);\n\n const sum2 = sumElementsByMultipliers(\n cnh.substring(0, 9) + dv1,\n [3, 4, 5, 6, 7, 8, 9, 10, 11, 2],\n );\n const dv2 = sumToDV(sum2);\n\n return `${dv1}${dv2}`;\n};\n\n/**\n * Valida um número de cnh e retorna uma exceção caso seja inválido\n *\n * @returns String Número fake de um cnh válido\n */\nconst validateOrFail = (value = '') => {\n const cnh = clearValue(value, 11);\n\n if (dv(cnh) !== (cnh.substring(9, 11))) {\n throw new Error('Dígito verificador inválido');\n }\n\n return true;\n};\n\n/**\n * Valida um número de cnh\n *\n * @returns String Valor a ser validado\n */\nconst validate = (value = '') => {\n try {\n return validateOrFail(value);\n } catch (error) {\n return false;\n }\n};\n\n/**\n * Aplica uma máscara a uma string\n *\n * @returns String string com a máscara aplicada\n */\nconst mask = (value = '') => applyMask(value, '000000000-00');\n\n/**\n * Cria um número fake\n *\n * @returns String Número fake porém válido\n */\nconst fake = (withMask = false) => {\n const value = fakeNumber(9, true);\n\n const cnh = `${value}${dv(value)}`;\n\n if (withMask) return mask(cnh);\n\n return cnh;\n};\n\nmodule.exports = {\n dv, fake, mask, validate, validateOrFail,\n};\n"],"file":"cnh.js"}
@@ -1,9 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _require = require('../lib/utils'),
4
- invalidListGenerator = _require.invalidListGenerator,
5
- sumElementsByMultipliers = _require.sumElementsByMultipliers,
6
- sumToDV = _require.sumToDV;
7
3
  /**
8
4
  * isCNPJ()
9
5
  * Calcula se um CNPJ é válido
@@ -55,21 +51,89 @@ var _require = require('../lib/utils'),
55
51
  * @param {String} value Título eleitoral
56
52
  * @returns {Boolean}
57
53
  */
54
+ var _require = require('../lib/utils'),
55
+ invalidListGenerator = _require.invalidListGenerator,
56
+ sumElementsByMultipliers = _require.sumElementsByMultipliers,
57
+ sumToDV = _require.sumToDV,
58
+ clearValue = _require.clearValue,
59
+ fakeNumber = _require.fakeNumber,
60
+ applyMask = _require.applyMask;
58
61
 
59
-
60
- var isCNPJ = function isCNPJ() {
62
+ var dv = function dv() {
61
63
  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
62
- var cnpj = value.replace(/[^\d]+/g, '');
63
- var blackList = invalidListGenerator(14);
64
- if (!cnpj || cnpj.length !== 14 || blackList.includes(cnpj)) return false;
65
- var sum1 = sumElementsByMultipliers(cnpj.substr(0, 12), '543298765432');
66
- var sum2 = sumElementsByMultipliers(cnpj.substr(0, 13), '6543298765432');
64
+ var cnpj = clearValue(value, 12);
65
+ var blackList = invalidListGenerator(12);
66
+
67
+ if (blackList.includes(cnpj)) {
68
+ throw new Error('CNPJ é obrigatório');
69
+ }
70
+
71
+ var sum1 = sumElementsByMultipliers(cnpj.substring(0, 12), '543298765432');
67
72
  var dv1 = sumToDV(sum1);
73
+ var sum2 = sumElementsByMultipliers(cnpj.substring(0, 12) + dv1, '6543298765432');
68
74
  var dv2 = sumToDV(sum2);
69
- if (dv1 !== Number(cnpj.charAt(12))) return false;
70
- if (dv2 !== Number(cnpj.charAt(13))) return false;
75
+ return "".concat(dv1).concat(dv2);
76
+ };
77
+ /**
78
+ * Aplica uma máscara ao número informado
79
+ *
80
+ * @param {String} value Número de Processo
81
+ * @returns {String} Valor com a máscara
82
+ */
83
+
84
+
85
+ var mask = function mask(value) {
86
+ return applyMask(value, '00.000.000/0000-00');
87
+ };
88
+ /**
89
+ *
90
+ *
91
+ */
92
+
93
+
94
+ var fake = function fake() {
95
+ var withMask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
96
+ var num = fakeNumber(12, true);
97
+ var cnpj = "".concat(num).concat(dv(num));
98
+ if (withMask) return mask(cnpj);
99
+ return cnpj;
100
+ };
101
+ /**
102
+ * validate()
103
+ * Valida se um número de processo está correto
104
+ *
105
+ */
106
+
107
+
108
+ var validateOrFail = function validateOrFail(value) {
109
+ var cnpj = clearValue(value, 14);
110
+
111
+ if (dv(cnpj) !== cnpj.substring(12, 14)) {
112
+ throw new Error('Dígito verificador inválido');
113
+ }
114
+
71
115
  return true;
72
116
  };
117
+ /**
118
+ * validate()
119
+ * Valida se um número de processo está correto
120
+ *
121
+ */
73
122
 
74
- module.exports = isCNPJ;
123
+
124
+ var validate = function validate(value) {
125
+ try {
126
+ return validateOrFail(value);
127
+ } catch (error) {
128
+ return false;
129
+ }
130
+ };
131
+
132
+ module.exports = {
133
+ dv: dv,
134
+ fake: fake,
135
+ mask: mask,
136
+ validate: validate,
137
+ validateOrFail: validateOrFail
138
+ };
75
139
  //# sourceMappingURL=cnpj.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/documents/cnpj.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","isCNPJ","value","cnpj","replace","blackList","length","includes","sum1","substr","sum2","dv1","dv2","Number","charAt","module","exports"],"mappings":";;AAAA,eAAoEA,OAAO,CAAC,cAAD,CAA3E;AAAA,IAAQC,oBAAR,YAAQA,oBAAR;AAAA,IAA8BC,wBAA9B,YAA8BA,wBAA9B;AAAA,IAAwDC,OAAxD,YAAwDA,OAAxD;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,MAAM,GAAG,SAATA,MAAS,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AAC7B,MAAMC,IAAI,GAAGD,KAAK,CAACE,OAAN,CAAc,SAAd,EAAyB,EAAzB,CAAb;AAEA,MAAMC,SAAS,GAAGP,oBAAoB,CAAC,EAAD,CAAtC;AACA,MAAI,CAACK,IAAD,IAASA,IAAI,CAACG,MAAL,KAAgB,EAAzB,IAA+BD,SAAS,CAACE,QAAV,CAAmBJ,IAAnB,CAAnC,EAA6D,OAAO,KAAP;AAE7D,MAAMK,IAAI,GAAGT,wBAAwB,CAACI,IAAI,CAACM,MAAL,CAAY,CAAZ,EAAe,EAAf,CAAD,EAAqB,cAArB,CAArC;AACA,MAAMC,IAAI,GAAGX,wBAAwB,CAACI,IAAI,CAACM,MAAL,CAAY,CAAZ,EAAe,EAAf,CAAD,EAAqB,eAArB,CAArC;AAEA,MAAME,GAAG,GAAGX,OAAO,CAACQ,IAAD,CAAnB;AACA,MAAMI,GAAG,GAAGZ,OAAO,CAACU,IAAD,CAAnB;AAEA,MAAIC,GAAG,KAAKE,MAAM,CAACV,IAAI,CAACW,MAAL,CAAY,EAAZ,CAAD,CAAlB,EAAqC,OAAO,KAAP;AACrC,MAAIF,GAAG,KAAKC,MAAM,CAACV,IAAI,CAACW,MAAL,CAAY,EAAZ,CAAD,CAAlB,EAAqC,OAAO,KAAP;AAErC,SAAO,IAAP;AACD,CAhBD;;AAkBAC,MAAM,CAACC,OAAP,GAAiBf,MAAjB","sourcesContent":["const { invalidListGenerator, sumElementsByMultipliers, sumToDV } = require('../lib/utils');\n/**\n * isCNPJ()\n * Calcula se um CNPJ é válido\n *\n * @doc\n * - CNPJ deve possuir 14 dígitos no formato 00.000.000/0000-00\n *\n * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal\n *\n * - Os caracteres 9 a 12 são a identificação das filiais da empresa.\n *\n * - Os caracteres 13 e 14 são os dígitos verificadores\n *\n * 1) Partes do número\n * _______________________________ _______________ _______\n * | Número | Filiais | DV |\n * | 1 1 . 2 2 2 . 3 3 3 / 0 0 0 1 - X Y |\n * |_______________________________|_______________|_______|\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 12 pelos números 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 1 1 2 2 2 3 3 3 0 0 0 1\n * x x x x x x x x x x x x\n * 5 4 3 2 9 8 7 6 5 4 3 2\n * = 5 +4 +6 +4 +18 +24 +21 +18 +0 +0 +0 +2 = 102\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 102 / 11 tem resto 8. 11 - 3 = 8. DV1 é 8.\n * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.\n *\n * 3) Cálculo do segundo DV.\n *\n * - Soma-se o produto das algarismos 1 a 13 (incluindo o DV1 calculado) pelos\n * números 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.\n *\n * 1 1 2 2 2 3 3 3 0 0 0 1 8\n * x x x x x x x x x x x x x\n * 6 5 4 3 2 9 8 7 6 5 4 3 2\n * = 6 +5 +8 +6 +4 +27 +24 +21 +0 +0 +0 +3 +16 = 120\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 120 / 11 tem resto 10. 11 - 10 = 1. DV2 é 1.\n * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.\n *\n * Fonte: http://www.macoratti.net/alg_cnpj.htm\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\nconst isCNPJ = (value = '') => {\n const cnpj = value.replace(/[^\\d]+/g, '');\n\n const blackList = invalidListGenerator(14);\n if (!cnpj || cnpj.length !== 14 || blackList.includes(cnpj)) return false;\n\n const sum1 = sumElementsByMultipliers(cnpj.substr(0, 12), '543298765432');\n const sum2 = sumElementsByMultipliers(cnpj.substr(0, 13), '6543298765432');\n\n const dv1 = sumToDV(sum1);\n const dv2 = sumToDV(sum2);\n\n if (dv1 !== Number(cnpj.charAt(12))) return false;\n if (dv2 !== Number(cnpj.charAt(13))) return false;\n\n return true;\n};\n\nmodule.exports = isCNPJ;\n"],"file":"cnpj.js"}
1
+ {"version":3,"sources":["../../src/documents/cnpj.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","clearValue","fakeNumber","applyMask","dv","value","cnpj","blackList","includes","Error","sum1","substring","dv1","sum2","dv2","mask","fake","withMask","num","validateOrFail","validate","error","module","exports"],"mappings":";;AAAA;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;AAEA,eAGIA,OAAO,CAAC,cAAD,CAHX;AAAA,IACEC,oBADF,YACEA,oBADF;AAAA,IACwBC,wBADxB,YACwBA,wBADxB;AAAA,IACkDC,OADlD,YACkDA,OADlD;AAAA,IAEEC,UAFF,YAEEA,UAFF;AAAA,IAEcC,UAFd,YAEcA,UAFd;AAAA,IAE0BC,SAF1B,YAE0BA,SAF1B;;AAKA,IAAMC,EAAE,GAAG,SAALA,EAAK,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AACzB,MAAMC,IAAI,GAAGL,UAAU,CAACI,KAAD,EAAQ,EAAR,CAAvB;AAEA,MAAME,SAAS,GAAGT,oBAAoB,CAAC,EAAD,CAAtC;;AACA,MAAIS,SAAS,CAACC,QAAV,CAAmBF,IAAnB,CAAJ,EAA8B;AAC5B,UAAM,IAAIG,KAAJ,CAAU,oBAAV,CAAN;AACD;;AAED,MAAMC,IAAI,GAAGX,wBAAwB,CAACO,IAAI,CAACK,SAAL,CAAe,CAAf,EAAkB,EAAlB,CAAD,EAAwB,cAAxB,CAArC;AACA,MAAMC,GAAG,GAAGZ,OAAO,CAACU,IAAD,CAAnB;AAEA,MAAMG,IAAI,GAAGd,wBAAwB,CAACO,IAAI,CAACK,SAAL,CAAe,CAAf,EAAkB,EAAlB,IAAwBC,GAAzB,EAA8B,eAA9B,CAArC;AACA,MAAME,GAAG,GAAGd,OAAO,CAACa,IAAD,CAAnB;AAEA,mBAAUD,GAAV,SAAgBE,GAAhB;AACD,CAfD;AAiBA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAACV,KAAD;AAAA,SAAWF,SAAS,CAACE,KAAD,EAAQ,oBAAR,CAApB;AAAA,CAAb;AAEA;AACA;AACA;AACA;;;AACA,IAAMW,IAAI,GAAG,SAAPA,IAAO,GAAsB;AAAA,MAArBC,QAAqB,uEAAV,KAAU;AACjC,MAAMC,GAAG,GAAGhB,UAAU,CAAC,EAAD,EAAK,IAAL,CAAtB;AAEA,MAAMI,IAAI,aAAMY,GAAN,SAAYd,EAAE,CAACc,GAAD,CAAd,CAAV;AAEA,MAAID,QAAJ,EAAc,OAAOF,IAAI,CAACT,IAAD,CAAX;AACd,SAAOA,IAAP;AACD,CAPD;AASA;AACA;AACA;AACA;AACA;;;AACA,IAAMa,cAAc,GAAG,SAAjBA,cAAiB,CAACd,KAAD,EAAW;AAChC,MAAMC,IAAI,GAAGL,UAAU,CAACI,KAAD,EAAQ,EAAR,CAAvB;;AAEA,MAAID,EAAE,CAACE,IAAD,CAAF,KAAaA,IAAI,CAACK,SAAL,CAAe,EAAf,EAAmB,EAAnB,CAAjB,EAAyC;AACvC,UAAM,IAAIF,KAAJ,CAAU,6BAAV,CAAN;AACD;;AAED,SAAO,IAAP;AACD,CARD;AAUA;AACA;AACA;AACA;AACA;;;AACA,IAAMW,QAAQ,GAAG,SAAXA,QAAW,CAACf,KAAD,EAAW;AAC1B,MAAI;AACF,WAAOc,cAAc,CAACd,KAAD,CAArB;AACD,GAFD,CAEE,OAAOgB,KAAP,EAAc;AACd,WAAO,KAAP;AACD;AACF,CAND;;AAQAC,MAAM,CAACC,OAAP,GAAiB;AACfnB,EAAAA,EAAE,EAAFA,EADe;AAEfY,EAAAA,IAAI,EAAJA,IAFe;AAGfD,EAAAA,IAAI,EAAJA,IAHe;AAIfK,EAAAA,QAAQ,EAARA,QAJe;AAKfD,EAAAA,cAAc,EAAdA;AALe,CAAjB","sourcesContent":["/**\n * isCNPJ()\n * Calcula se um CNPJ é válido\n *\n * @doc\n * - CNPJ deve possuir 14 dígitos no formato 00.000.000/0000-00\n *\n * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal\n *\n * - Os caracteres 9 a 12 são a identificação das filiais da empresa.\n *\n * - Os caracteres 13 e 14 são os dígitos verificadores\n *\n * 1) Partes do número\n * _______________________________ _______________ _______\n * | Número | Filiais | DV |\n * | 1 1 . 2 2 2 . 3 3 3 / 0 0 0 1 - X Y |\n * |_______________________________|_______________|_______|\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 12 pelos números 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 1 1 2 2 2 3 3 3 0 0 0 1\n * x x x x x x x x x x x x\n * 5 4 3 2 9 8 7 6 5 4 3 2\n * = 5 +4 +6 +4 +18 +24 +21 +18 +0 +0 +0 +2 = 102\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 102 / 11 tem resto 8. 11 - 3 = 8. DV1 é 8.\n * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.\n *\n * 3) Cálculo do segundo DV.\n *\n * - Soma-se o produto das algarismos 1 a 13 (incluindo o DV1 calculado) pelos\n * números 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.\n *\n * 1 1 2 2 2 3 3 3 0 0 0 1 8\n * x x x x x x x x x x x x x\n * 6 5 4 3 2 9 8 7 6 5 4 3 2\n * = 6 +5 +8 +6 +4 +27 +24 +21 +0 +0 +0 +3 +16 = 120\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 120 / 11 tem resto 10. 11 - 10 = 1. DV2 é 1.\n * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.\n *\n * Fonte: http://www.macoratti.net/alg_cnpj.htm\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\n\nconst {\n invalidListGenerator, sumElementsByMultipliers, sumToDV,\n clearValue, fakeNumber, applyMask,\n} = require('../lib/utils');\n\nconst dv = (value = '') => {\n const cnpj = clearValue(value, 12);\n\n const blackList = invalidListGenerator(12);\n if (blackList.includes(cnpj)) {\n throw new Error('CNPJ é obrigatório');\n }\n\n const sum1 = sumElementsByMultipliers(cnpj.substring(0, 12), '543298765432');\n const dv1 = sumToDV(sum1);\n\n const sum2 = sumElementsByMultipliers(cnpj.substring(0, 12) + dv1, '6543298765432');\n const dv2 = sumToDV(sum2);\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, '00.000.000/0000-00');\n\n/**\n *\n *\n */\nconst fake = (withMask = false) => {\n const num = fakeNumber(12, true);\n\n const cnpj = `${num}${dv(num)}`;\n\n if (withMask) return mask(cnpj);\n return cnpj;\n};\n\n/**\n * validate()\n * Valida se um número de processo está correto\n *\n */\nconst validateOrFail = (value) => {\n const cnpj = clearValue(value, 14);\n\n if (dv(cnpj) !== cnpj.substring(12, 14)) {\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 */\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":"cnpj.js"}
@@ -1,9 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _require = require('../lib/utils'),
4
- invalidListGenerator = _require.invalidListGenerator,
5
- sumElementsByMultipliers = _require.sumElementsByMultipliers,
6
- sumToDV = _require.sumToDV;
7
3
  /**
8
4
  * isCPF()
9
5
  * Calcula se um CPF é válido
@@ -63,21 +59,103 @@ var _require = require('../lib/utils'),
63
59
  * @param {String} value Título eleitoral
64
60
  * @returns {Boolean}
65
61
  */
62
+ var _require = require('../lib/utils'),
63
+ invalidListGenerator = _require.invalidListGenerator,
64
+ sumElementsByMultipliers = _require.sumElementsByMultipliers,
65
+ sumToDV = _require.sumToDV,
66
+ clearValue = _require.clearValue,
67
+ fakeNumber = _require.fakeNumber,
68
+ applyMask = _require.applyMask;
69
+ /**
70
+ * dv()
71
+ * Calcula o dígito verificador de um CPF
72
+ *
73
+ * @param {Number|String} value
74
+ * @returns {String}
75
+ */
66
76
 
67
77
 
68
- var isCPF = function isCPF() {
78
+ var dv = function dv() {
69
79
  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
70
- var cpf = value.replace(/[^\d]+/g, '');
71
- var blackList = invalidListGenerator(11);
72
- if (!cpf || cpf.length !== 11 || blackList.includes(cpf)) return false;
73
- var sum1 = sumElementsByMultipliers(cpf.substr(0, 9), [10, 9, 8, 7, 6, 5, 4, 3, 2]);
74
- var sum2 = sumElementsByMultipliers(cpf.substr(0, 10), [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]);
80
+ if (!value) throw new Error('CPF não informado');
81
+ var cpf = clearValue(value, 9);
82
+ var invalidList = invalidListGenerator(9);
83
+
84
+ if (invalidList.includes(cpf)) {
85
+ throw new Error('CPF não pode ser uma sequência de números iguais');
86
+ }
87
+
88
+ var sum1 = sumElementsByMultipliers(cpf, [10, 9, 8, 7, 6, 5, 4, 3, 2]);
75
89
  var dv1 = sumToDV(sum1);
90
+ var sum2 = sumElementsByMultipliers(cpf + dv1, [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]);
76
91
  var dv2 = sumToDV(sum2);
77
- if (dv1 !== Number(cpf.charAt(9))) return false;
78
- if (dv2 !== Number(cpf.charAt(10))) return false;
92
+ return "".concat(dv1).concat(dv2);
93
+ };
94
+ /**
95
+ * Aplica uma máscara ao número informado
96
+ *
97
+ * @param {String} value Número de Processo
98
+ * @returns {String} Valor com a máscara
99
+ */
100
+
101
+
102
+ var mask = function mask(value) {
103
+ return applyMask(value, '000.000.000-00');
104
+ };
105
+ /**
106
+ * fake()
107
+ * Gera um número válido
108
+ *
109
+ * @returns {String}
110
+ */
111
+
112
+
113
+ var fake = function fake() {
114
+ var withMask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
115
+ var num = fakeNumber(9, true);
116
+ var cpf = "".concat(num).concat(dv(num));
117
+ if (withMask) return mask(cpf);
118
+ return cpf;
119
+ };
120
+ /**
121
+ * validateOrFail()
122
+ * Valida se um número de processo está correto e
123
+ * retorna uma exceção se não estiver
124
+ *
125
+ * @returns {Boolean}
126
+ */
127
+
128
+
129
+ var validateOrFail = function validateOrFail(value) {
130
+ var cpf = clearValue(value, 11);
131
+
132
+ if (dv(cpf) !== cpf.substring(9, 11)) {
133
+ throw new Error('Dígito verificador inválido');
134
+ }
135
+
79
136
  return true;
80
137
  };
138
+ /**
139
+ * validate()
140
+ * Valida se um número de processo está correto
141
+ *
142
+ * @returns {Boolean}
143
+ */
144
+
145
+
146
+ var validate = function validate(value) {
147
+ try {
148
+ return validateOrFail(value);
149
+ } catch (error) {
150
+ return false;
151
+ }
152
+ };
81
153
 
82
- module.exports = isCPF;
154
+ module.exports = {
155
+ dv: dv,
156
+ fake: fake,
157
+ mask: mask,
158
+ validate: validate,
159
+ validateOrFail: validateOrFail
160
+ };
83
161
  //# sourceMappingURL=cpf.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/documents/cpf.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","isCPF","value","cpf","replace","blackList","length","includes","sum1","substr","sum2","dv1","dv2","Number","charAt","module","exports"],"mappings":";;AAAA,eAAoEA,OAAO,CAAC,cAAD,CAA3E;AAAA,IAAQC,oBAAR,YAAQA,oBAAR;AAAA,IAA8BC,wBAA9B,YAA8BA,wBAA9B;AAAA,IAAwDC,OAAxD,YAAwDA,OAAxD;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;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,KAAK,GAAG,SAARA,KAAQ,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AAC5B,MAAMC,GAAG,GAAGD,KAAK,CAACE,OAAN,CAAc,SAAd,EAAyB,EAAzB,CAAZ;AAEA,MAAMC,SAAS,GAAGP,oBAAoB,CAAC,EAAD,CAAtC;AACA,MAAI,CAACK,GAAD,IAAQA,GAAG,CAACG,MAAJ,KAAe,EAAvB,IAA6BD,SAAS,CAACE,QAAV,CAAmBJ,GAAnB,CAAjC,EAA0D,OAAO,KAAP;AAE1D,MAAMK,IAAI,GAAGT,wBAAwB,CAACI,GAAG,CAACM,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAD,EAAmB,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,CAAX,EAAc,CAAd,EAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAAnB,CAArC;AACA,MAAMC,IAAI,GAAGX,wBAAwB,CAACI,GAAG,CAACM,MAAJ,CAAW,CAAX,EAAc,EAAd,CAAD,EAAoB,CAAC,EAAD,EAAK,EAAL,EAAS,CAAT,EAAY,CAAZ,EAAe,CAAf,EAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB,EAA2B,CAA3B,EAA8B,CAA9B,CAApB,CAArC;AAEA,MAAME,GAAG,GAAGX,OAAO,CAACQ,IAAD,CAAnB;AACA,MAAMI,GAAG,GAAGZ,OAAO,CAACU,IAAD,CAAnB;AAEA,MAAIC,GAAG,KAAKE,MAAM,CAACV,GAAG,CAACW,MAAJ,CAAW,CAAX,CAAD,CAAlB,EAAmC,OAAO,KAAP;AACnC,MAAIF,GAAG,KAAKC,MAAM,CAACV,GAAG,CAACW,MAAJ,CAAW,EAAX,CAAD,CAAlB,EAAoC,OAAO,KAAP;AAEpC,SAAO,IAAP;AACD,CAhBD;;AAkBAC,MAAM,CAACC,OAAP,GAAiBf,KAAjB","sourcesContent":["const { invalidListGenerator, sumElementsByMultipliers, sumToDV } = require('../lib/utils');\n\n/**\n * isCPF()\n * Calcula se um CPF é válido\n *\n * @doc\n * CPF deve possuir 11 dígitos.\n *\n * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal\n *\n * - O caractere 9 refere-se à região fiscal emissora do documento\n * 1 – DF, GO, MS, MT e TO\n * 2 – AC, AM, AP, PA, RO e RR\n * 3 – CE, MA e PI\n * 4 – AL, PB, PE, RN\n * 5 – BA e SE\n * 6 – MG\n * 7 – ES e RJ\n * 8 – SP\n * 9 – PR e SC\n * 0 – RS\n *\n * - Os caracteres 10 e 11 são dígitos verificadores.\n *\n * 1) Partes do número\n * ------------------------------------------------\n * | Número | R | DV |\n * 2 8 0 . 0 1 2 . 3 8 9 - 3 8\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 9 pelos números 10, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 8 0 0 1 2 3 8 9\n * x x x x x x x x x\n * 10 9 8 7 6 5 4 3 2\n * = 20 +72 +0 +0 +6 +10 +12 +24 +18 = 162\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 162 / 11 tem resto 8. 11 - 8 = 3. DV1 é 3.\n * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.\n *\n * 3) Cálculo do segundo DV.\n *\n * - Soma-se o produto das algarismos 1 a 10 pelos números 11, 10, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 8 0 0 1 2 3 8 9 3\n * x x x x x x x x x x\n * 11 10 9 8 7 6 5 4 3 2\n * = 22 +80 +0 +0 +7 +12 +15 +32 +27 = 201\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 201 / 11 tem resto 3. 11 - 3 = 8. DV2 é 8.\n * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.\n *\n * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-cpf/\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\nconst isCPF = (value = '') => {\n const cpf = value.replace(/[^\\d]+/g, '');\n\n const blackList = invalidListGenerator(11);\n if (!cpf || cpf.length !== 11 || blackList.includes(cpf)) return false;\n\n const sum1 = sumElementsByMultipliers(cpf.substr(0, 9), [10, 9, 8, 7, 6, 5, 4, 3, 2]);\n const sum2 = sumElementsByMultipliers(cpf.substr(0, 10), [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]);\n\n const dv1 = sumToDV(sum1);\n const dv2 = sumToDV(sum2);\n\n if (dv1 !== Number(cpf.charAt(9))) return false;\n if (dv2 !== Number(cpf.charAt(10))) return false;\n\n return true;\n};\n\nmodule.exports = isCPF;\n"],"file":"cpf.js"}
1
+ {"version":3,"sources":["../../src/documents/cpf.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","clearValue","fakeNumber","applyMask","dv","value","Error","cpf","invalidList","includes","sum1","dv1","sum2","dv2","mask","fake","withMask","num","validateOrFail","substring","validate","error","module","exports"],"mappings":"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","sourcesContent":["/**\n * isCPF()\n * Calcula se um CPF é válido\n *\n * @doc\n * CPF deve possuir 11 dígitos.\n *\n * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal\n *\n * - O caractere 9 refere-se à região fiscal emissora do documento\n * 1 – DF, GO, MS, MT e TO\n * 2 – AC, AM, AP, PA, RO e RR\n * 3 – CE, MA e PI\n * 4 – AL, PB, PE, RN\n * 5 – BA e SE\n * 6 – MG\n * 7 – ES e RJ\n * 8 – SP\n * 9 – PR e SC\n * 0 – RS\n *\n * - Os caracteres 10 e 11 são dígitos verificadores.\n *\n * 1) Partes do número\n * ------------------------------------------------\n * | Número | R | DV |\n * 2 8 0 . 0 1 2 . 3 8 9 - 3 8\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 9 pelos números 10, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 8 0 0 1 2 3 8 9\n * x x x x x x x x x\n * 10 9 8 7 6 5 4 3 2\n * = 20 +72 +0 +0 +6 +10 +12 +24 +18 = 162\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 162 / 11 tem resto 8. 11 - 8 = 3. DV1 é 3.\n * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.\n *\n * 3) Cálculo do segundo DV.\n *\n * - Soma-se o produto das algarismos 1 a 10 pelos números 11, 10, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 8 0 0 1 2 3 8 9 3\n * x x x x x x x x x x\n * 11 10 9 8 7 6 5 4 3 2\n * = 22 +80 +0 +0 +7 +12 +15 +32 +27 = 201\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 201 / 11 tem resto 3. 11 - 3 = 8. DV2 é 8.\n * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.\n *\n * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-cpf/\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\n\nconst {\n invalidListGenerator, sumElementsByMultipliers, sumToDV,\n clearValue, fakeNumber, applyMask,\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 cpf = clearValue(value, 9);\n\n const invalidList = invalidListGenerator(9);\n if (invalidList.includes(cpf)) {\n throw new Error('CPF não pode ser uma sequência de números iguais');\n }\n\n const sum1 = sumElementsByMultipliers(cpf, [10, 9, 8, 7, 6, 5, 4, 3, 2]);\n const dv1 = sumToDV(sum1);\n\n const sum2 = sumElementsByMultipliers(cpf + dv1, [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]);\n const dv2 = sumToDV(sum2);\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, '000.000.000-00');\n\n/**\n * fake()\n * Gera um número válido\n *\n * @returns {String}\n */\nconst fake = (withMask = false) => {\n const num = fakeNumber(9, true);\n\n const cpf = `${num}${dv(num)}`;\n\n if (withMask) return mask(cpf);\n return cpf;\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 cpf = clearValue(value, 11);\n\n if (dv(cpf) !== cpf.substring(9, 11)) {\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":"cpf.js"}
@@ -1,23 +1,29 @@
1
1
  "use strict";
2
2
 
3
- var isCPF = require('./cpf');
3
+ var isCNH = require('./cnh').validate;
4
4
 
5
- var isCNPJ = require('./cnpj');
5
+ var isCNPJ = require('./cnpj').validate;
6
6
 
7
- var isTitulo = require('./titulo-eleitor');
7
+ var isCPF = require('./cpf').validate;
8
8
 
9
- var isPostalCode = require('./postal-code');
9
+ var isJudicialProcess = require('./judicial-process').validate;
10
10
 
11
- var isCNH = require('./cnh');
11
+ var isPIS = require('./pis-pasep').validate;
12
12
 
13
- var isPIS = require('./pis-pasep');
13
+ var isPostalCode = require('./postal-code').validate;
14
+
15
+ var isRenavam = require('./renavam').validate;
16
+
17
+ var isTitulo = require('./titulo-eleitor').validate;
14
18
 
15
19
  module.exports = {
16
- isCPF: isCPF,
20
+ isCNH: isCNH,
17
21
  isCNPJ: isCNPJ,
18
- isTitulo: isTitulo,
22
+ isCPF: isCPF,
23
+ isJudicialProcess: isJudicialProcess,
24
+ isPIS: isPIS,
19
25
  isPostalCode: isPostalCode,
20
- isCNH: isCNH,
21
- isPIS: isPIS
26
+ isRenavam: isRenavam,
27
+ isTitulo: isTitulo
22
28
  };
23
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/documents/index.js"],"names":["isCPF","require","isCNPJ","isTitulo","isPostalCode","isCNH","isPIS","module","exports"],"mappings":";;AAAA,IAAMA,KAAK,GAAGC,OAAO,CAAC,OAAD,CAArB;;AACA,IAAMC,MAAM,GAAGD,OAAO,CAAC,QAAD,CAAtB;;AACA,IAAME,QAAQ,GAAGF,OAAO,CAAC,kBAAD,CAAxB;;AACA,IAAMG,YAAY,GAAGH,OAAO,CAAC,eAAD,CAA5B;;AACA,IAAMI,KAAK,GAAGJ,OAAO,CAAC,OAAD,CAArB;;AACA,IAAMK,KAAK,GAAGL,OAAO,CAAC,aAAD,CAArB;;AAEAM,MAAM,CAACC,OAAP,GAAiB;AACfR,EAAAA,KAAK,EAALA,KADe;AAEfE,EAAAA,MAAM,EAANA,MAFe;AAGfC,EAAAA,QAAQ,EAARA,QAHe;AAIfC,EAAAA,YAAY,EAAZA,YAJe;AAKfC,EAAAA,KAAK,EAALA,KALe;AAMfC,EAAAA,KAAK,EAALA;AANe,CAAjB","sourcesContent":["const isCPF = require('./cpf');\nconst isCNPJ = require('./cnpj');\nconst isTitulo = require('./titulo-eleitor');\nconst isPostalCode = require('./postal-code');\nconst isCNH = require('./cnh');\nconst isPIS = require('./pis-pasep');\n\nmodule.exports = {\n isCPF,\n isCNPJ,\n isTitulo,\n isPostalCode,\n isCNH,\n isPIS,\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/documents/index.js"],"names":["isCNH","require","validate","isCNPJ","isCPF","isJudicialProcess","isPIS","isPostalCode","isRenavam","isTitulo","module","exports"],"mappings":";;AAAA,IAAMA,KAAK,GAAGC,OAAO,CAAC,OAAD,CAAP,CAAiBC,QAA/B;;AACA,IAAMC,MAAM,GAAGF,OAAO,CAAC,QAAD,CAAP,CAAkBC,QAAjC;;AACA,IAAME,KAAK,GAAGH,OAAO,CAAC,OAAD,CAAP,CAAiBC,QAA/B;;AACA,IAAMG,iBAAiB,GAAGJ,OAAO,CAAC,oBAAD,CAAP,CAA8BC,QAAxD;;AACA,IAAMI,KAAK,GAAGL,OAAO,CAAC,aAAD,CAAP,CAAuBC,QAArC;;AACA,IAAMK,YAAY,GAAGN,OAAO,CAAC,eAAD,CAAP,CAAyBC,QAA9C;;AACA,IAAMM,SAAS,GAAGP,OAAO,CAAC,WAAD,CAAP,CAAqBC,QAAvC;;AACA,IAAMO,QAAQ,GAAGR,OAAO,CAAC,kBAAD,CAAP,CAA4BC,QAA7C;;AAEAQ,MAAM,CAACC,OAAP,GAAiB;AACfX,EAAAA,KAAK,EAALA,KADe;AAEfG,EAAAA,MAAM,EAANA,MAFe;AAGfC,EAAAA,KAAK,EAALA,KAHe;AAIfC,EAAAA,iBAAiB,EAAjBA,iBAJe;AAKfC,EAAAA,KAAK,EAALA,KALe;AAMfC,EAAAA,YAAY,EAAZA,YANe;AAOfC,EAAAA,SAAS,EAATA,SAPe;AAQfC,EAAAA,QAAQ,EAARA;AARe,CAAjB","sourcesContent":["const isCNH = require('./cnh').validate;\nconst isCNPJ = require('./cnpj').validate;\nconst isCPF = require('./cpf').validate;\nconst isJudicialProcess = require('./judicial-process').validate;\nconst isPIS = require('./pis-pasep').validate;\nconst isPostalCode = require('./postal-code').validate;\nconst isRenavam = require('./renavam').validate;\nconst isTitulo = require('./titulo-eleitor').validate;\n\nmodule.exports = {\n isCNH,\n isCNPJ,\n isCPF,\n isJudicialProcess,\n isPIS,\n isPostalCode,\n isRenavam,\n isTitulo,\n};\n"],"file":"index.js"}