validation-br 1.2.0-rc3 → 1.4.0
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/.eslintcache +1 -1
- package/dist/index.d.ts +13 -4
- package/dist/index.js +29 -21
- package/dist/index.js.map +1 -1
- package/dist/postalCode.js +8 -33
- package/dist/postalCode.js.map +1 -1
- package/dist/utils-randomLetter.test.d.ts +1 -0
- package/dist/utils.d.ts +11 -0
- package/dist/utils.js +18 -15
- package/dist/utils.js.map +1 -1
- package/package.json +19 -3
- package/readme.md +229 -12
- package/dist/vuelidate.d.ts +0 -36
- package/dist/vuelidate.js +0 -31
- package/dist/vuelidate.js.map +0 -1
package/.eslintcache
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"D:\\Desenvolvimento\\Javascript\\Validation-BR\\boilerplate-jest-eslint-ts\\.eslintrc.js":"1","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\cnh.ts":"2","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\cnpj.ts":"3","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\cpf.ts":"4","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\judicialProcess.ts":"5","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\pisPasep.ts":"6","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\postalCode.ts":"7","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\renavam.ts":"8","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\tituloEleitor.ts":"9","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\index.ts":"10","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\nup17.test.ts":"11","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\nup17.ts":"12","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\utils.ts":"13","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\judicialProcess.test.ts":"14"},{"size":2512,"mtime":1641739367275,"results":"
|
|
1
|
+
[{"D:\\Desenvolvimento\\Javascript\\Validation-BR\\boilerplate-jest-eslint-ts\\.eslintrc.js":"1","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\cnh.ts":"2","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\cnpj.ts":"3","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\cpf.ts":"4","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\judicialProcess.ts":"5","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\pisPasep.ts":"6","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\postalCode.ts":"7","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\renavam.ts":"8","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\tituloEleitor.ts":"9","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\index.ts":"10","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\nup17.test.ts":"11","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\nup17.ts":"12","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\utils.ts":"13","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\judicialProcess.test.ts":"14","D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\utils-randomLetter.test.ts":"15"},{"size":2512,"mtime":1641739367275,"results":"16","hashOfConfig":"17"},{"size":3670,"mtime":1641857909477,"results":"18","hashOfConfig":"19"},{"size":3665,"mtime":1641857909477,"results":"20","hashOfConfig":"19"},{"size":3860,"mtime":1641857909479,"results":"21","hashOfConfig":"19"},{"size":5663,"mtime":1641858240139,"results":"22","hashOfConfig":"19"},{"size":3185,"mtime":1641857909611,"results":"23","hashOfConfig":"19"},{"size":3625,"mtime":1642529307638,"results":"24","hashOfConfig":"19"},{"size":3038,"mtime":1641857909470,"results":"25","hashOfConfig":"19"},{"size":3933,"mtime":1641857909467,"results":"26","hashOfConfig":"19"},{"size":1291,"mtime":1641924995098,"results":"27","hashOfConfig":"19"},{"size":3279,"mtime":1641854975529,"results":"28","hashOfConfig":"19"},{"size":4949,"mtime":1641857909475,"results":"29","hashOfConfig":"19"},{"size":5373,"mtime":1642529564093,"results":"30","hashOfConfig":"19"},{"size":3469,"mtime":1641858290806,"results":"31","hashOfConfig":"19"},{"size":316,"mtime":1642529055968,"results":"32","hashOfConfig":"19"},{"filePath":"33","messages":"34","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1mhu42l",{"filePath":"35","messages":"36","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1oacsom",{"filePath":"37","messages":"38","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"39","messages":"40","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"41","messages":"42","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"43","messages":"44","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"45","messages":"46","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"47","messages":"48","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"49","messages":"50","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"51","messages":"52","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"53","messages":"54","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"55","messages":"56","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"57","messages":"58","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"59","messages":"60","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"61","messages":"62","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"D:\\Desenvolvimento\\Javascript\\Validation-BR\\boilerplate-jest-eslint-ts\\.eslintrc.js",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\cnh.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\cnpj.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\cpf.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\judicialProcess.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\pisPasep.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\postalCode.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\renavam.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\tituloEleitor.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\index.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\nup17.test.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\nup17.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\utils.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\judicialProcess.test.ts",[],"D:\\Desenvolvimento\\Javascript\\Validation-BR\\Lib\\src\\utils-randomLetter.test.ts",[]]
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
|
+
export declare const isCNH: (value: string | number) => boolean;
|
|
2
|
+
export declare const isCNPJ: (value: string | number) => boolean;
|
|
3
|
+
export declare const isCPF: (value: string | number) => boolean;
|
|
4
|
+
export declare const isJudicialProcess: (value: string) => boolean;
|
|
5
|
+
export declare const isPIS: (value: string) => boolean;
|
|
6
|
+
export declare const isPostalCode: (value: string | number) => boolean;
|
|
7
|
+
export declare const isRenavam: (value: string) => boolean;
|
|
8
|
+
export declare const isTituloEleitor: (value: string | number) => boolean;
|
|
9
|
+
export declare const isNUP17: (value: string | number) => boolean;
|
|
1
10
|
declare const _default: {
|
|
2
11
|
isCNH: (value: string | number) => boolean;
|
|
3
12
|
isCNPJ: (value: string | number) => boolean;
|
|
4
13
|
isCPF: (value: string | number) => boolean;
|
|
5
14
|
isJudicialProcess: (value: string) => boolean;
|
|
6
|
-
isPIS: (value: string
|
|
7
|
-
isPostalCode: (value: string) => boolean;
|
|
8
|
-
isRenavam: (value: string
|
|
15
|
+
isPIS: (value: string) => boolean;
|
|
16
|
+
isPostalCode: (value: string | number) => boolean;
|
|
17
|
+
isRenavam: (value: string) => boolean;
|
|
9
18
|
isTituloEleitor: (value: string | number) => boolean;
|
|
10
|
-
isNUP17: (value: string) => boolean;
|
|
19
|
+
isNUP17: (value: string | number) => boolean;
|
|
11
20
|
};
|
|
12
21
|
export default _default;
|
package/dist/index.js
CHANGED
|
@@ -1,26 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
3
|
+
exports.isNUP17 = exports.isTituloEleitor = exports.isRenavam = exports.isPostalCode = exports.isPIS = exports.isJudicialProcess = exports.isCPF = exports.isCNPJ = exports.isCNH = void 0;
|
|
4
|
+
const cnh_1 = require("./cnh");
|
|
5
|
+
const cnpj_1 = require("./cnpj");
|
|
6
|
+
const cpf_1 = require("./cpf");
|
|
7
|
+
const judicialProcess_1 = require("./judicialProcess");
|
|
8
|
+
const nup17_1 = require("./nup17");
|
|
9
|
+
const pisPasep_1 = require("./pisPasep");
|
|
10
|
+
const postalCode_1 = require("./postalCode");
|
|
11
|
+
const renavam_1 = require("./renavam");
|
|
12
|
+
const tituloEleitor_1 = require("./tituloEleitor");
|
|
13
|
+
// export const isCNH = import('./cnh')
|
|
14
|
+
exports.isCNH = (value) => cnh_1.validate(value);
|
|
15
|
+
exports.isCNPJ = (value) => cnpj_1.validate(value);
|
|
16
|
+
exports.isCPF = (value) => cpf_1.validate(value);
|
|
17
|
+
exports.isJudicialProcess = (value) => judicialProcess_1.validate(value);
|
|
18
|
+
exports.isPIS = (value) => nup17_1.validate(value);
|
|
19
|
+
exports.isPostalCode = (value) => pisPasep_1.validate(value);
|
|
20
|
+
exports.isRenavam = (value) => postalCode_1.validate(value);
|
|
21
|
+
exports.isTituloEleitor = (value) => renavam_1.validate(value);
|
|
22
|
+
exports.isNUP17 = (value) => tituloEleitor_1.validate(value);
|
|
15
23
|
exports.default = {
|
|
16
|
-
isCNH:
|
|
17
|
-
isCNPJ:
|
|
18
|
-
isCPF:
|
|
19
|
-
isJudicialProcess:
|
|
20
|
-
isPIS:
|
|
21
|
-
isPostalCode:
|
|
22
|
-
isRenavam:
|
|
23
|
-
isTituloEleitor:
|
|
24
|
-
isNUP17:
|
|
24
|
+
isCNH: exports.isCNH,
|
|
25
|
+
isCNPJ: exports.isCNPJ,
|
|
26
|
+
isCPF: exports.isCPF,
|
|
27
|
+
isJudicialProcess: exports.isJudicialProcess,
|
|
28
|
+
isPIS: exports.isPIS,
|
|
29
|
+
isPostalCode: exports.isPostalCode,
|
|
30
|
+
isRenavam: exports.isRenavam,
|
|
31
|
+
isTituloEleitor: exports.isTituloEleitor,
|
|
32
|
+
isNUP17: exports.isNUP17,
|
|
25
33
|
};
|
|
26
34
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAAuC;AACvC,iCAAyC;AACzC,+BAAuC;AACvC,uDAA+D;AAC/D,mCAA2C;AAC3C,yCAAiD;AACjD,6CAAqD;AACrD,uCAA+C;AAC/C,mDAA2D;AAE3D,uCAAuC;AAC1B,QAAA,KAAK,GAAG,CAAC,KAAsB,EAAW,EAAE,CAAC,cAAG,CAAC,KAAK,CAAC,CAAA;AACvD,QAAA,MAAM,GAAG,CAAC,KAAsB,EAAW,EAAE,CAAC,eAAI,CAAC,KAAK,CAAC,CAAA;AACzD,QAAA,KAAK,GAAG,CAAC,KAAsB,EAAW,EAAE,CAAC,cAAG,CAAC,KAAK,CAAC,CAAA;AACvD,QAAA,iBAAiB,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,0BAAe,CAAC,KAAK,CAAC,CAAA;AACtE,QAAA,KAAK,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,gBAAK,CAAC,KAAK,CAAC,CAAA;AAChD,QAAA,YAAY,GAAG,CAAC,KAAsB,EAAW,EAAE,CAAC,mBAAQ,CAAC,KAAK,CAAC,CAAA;AACnE,QAAA,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,qBAAU,CAAC,KAAK,CAAC,CAAA;AACzD,QAAA,eAAe,GAAG,CAAC,KAAsB,EAAW,EAAE,CAAC,kBAAO,CAAC,KAAK,CAAC,CAAA;AACrE,QAAA,OAAO,GAAG,CAAC,KAAsB,EAAW,EAAE,CAAC,wBAAa,CAAC,KAAK,CAAC,CAAA;AAEhF,kBAAe;IACb,KAAK,EAAL,aAAK;IACL,MAAM,EAAN,cAAM;IACN,KAAK,EAAL,aAAK;IACL,iBAAiB,EAAjB,yBAAiB;IACjB,KAAK,EAAL,aAAK;IACL,YAAY,EAAZ,oBAAY;IACZ,SAAS,EAAT,iBAAS;IACT,eAAe,EAAf,uBAAe;IACf,OAAO,EAAP,eAAO;CACR,CAAA"}
|
package/dist/postalCode.js
CHANGED
|
@@ -54,8 +54,11 @@ const utils_1 = require("./utils");
|
|
|
54
54
|
*/
|
|
55
55
|
exports.dv = (value) => {
|
|
56
56
|
if (!value)
|
|
57
|
-
throw new Error('
|
|
58
|
-
const postalCode =
|
|
57
|
+
throw new Error('Código de Rastreamento não informado');
|
|
58
|
+
const postalCode = String(value)
|
|
59
|
+
.replace(/[^0-9]+/gi, '')
|
|
60
|
+
.padStart(8, '0')
|
|
61
|
+
.substring(0, 8);
|
|
59
62
|
const sum = utils_1.sumElementsByMultipliers(postalCode, [8, 6, 4, 2, 3, 5, 9, 7]);
|
|
60
63
|
const rest = sum % 11;
|
|
61
64
|
// const specificities = { 0: { dv: 5 }, 1: { dv: 0 } }
|
|
@@ -82,35 +85,7 @@ exports.mask = (value) => String(value).toLocaleUpperCase();
|
|
|
82
85
|
*/
|
|
83
86
|
exports.fake = (withMask = false) => {
|
|
84
87
|
const num = utils_1.fakeNumber(8, true);
|
|
85
|
-
const
|
|
86
|
-
'A',
|
|
87
|
-
'B',
|
|
88
|
-
'C',
|
|
89
|
-
'D',
|
|
90
|
-
'E',
|
|
91
|
-
'F',
|
|
92
|
-
'G',
|
|
93
|
-
'H',
|
|
94
|
-
'I',
|
|
95
|
-
'J',
|
|
96
|
-
'K',
|
|
97
|
-
'L',
|
|
98
|
-
'M',
|
|
99
|
-
'N',
|
|
100
|
-
'O',
|
|
101
|
-
'P',
|
|
102
|
-
'Q',
|
|
103
|
-
'R',
|
|
104
|
-
'S',
|
|
105
|
-
'T',
|
|
106
|
-
'U',
|
|
107
|
-
'V',
|
|
108
|
-
'W',
|
|
109
|
-
'X',
|
|
110
|
-
'Y',
|
|
111
|
-
'Z',
|
|
112
|
-
][+(Math.random() * 25).toFixed(0)];
|
|
113
|
-
const postalCode = `${randLetter()}${randLetter()}${num}${exports.dv(num)}BR`;
|
|
88
|
+
const postalCode = `${utils_1.randomLetter()}${utils_1.randomLetter()}${num}${exports.dv(num)}BR`;
|
|
114
89
|
if (withMask)
|
|
115
90
|
return exports.mask(postalCode);
|
|
116
91
|
return postalCode;
|
|
@@ -124,11 +99,11 @@ exports.fake = (withMask = false) => {
|
|
|
124
99
|
* @returns {Boolean}
|
|
125
100
|
*/
|
|
126
101
|
exports.validateOrFail = (value) => {
|
|
127
|
-
const postalCode = utils_1.clearValue(value, 9);
|
|
128
102
|
if (!/^[a-z]{2}([\d]{9})[a-z]{2}$/gi.test(String(value))) {
|
|
129
103
|
throw new Error('O número não está no formato "XX000000000XX"');
|
|
130
104
|
}
|
|
131
|
-
|
|
105
|
+
const postalCode = utils_1.clearValue(value.substring(2, 11), 9);
|
|
106
|
+
if (exports.dv(value.substring(2, 11)) !== postalCode.substring(8, 9)) {
|
|
132
107
|
throw new Error('Dígito verificador inválido');
|
|
133
108
|
}
|
|
134
109
|
return true;
|
package/dist/postalCode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postalCode.js","sourceRoot":"","sources":["../src/postalCode.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;;;AAEH,
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare const randomLetter: any;
|
package/dist/utils.d.ts
CHANGED
|
@@ -109,3 +109,14 @@ export declare function removeFromPosition(value: string, startPosition: number,
|
|
|
109
109
|
*
|
|
110
110
|
*/
|
|
111
111
|
export declare function applyMask(value: string | number, mask: string): string;
|
|
112
|
+
/**
|
|
113
|
+
* randomLetter()
|
|
114
|
+
* Pega uma letra maiúscula aleatoriamente
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* randomLetter() // -> A
|
|
118
|
+
* randomLetter() // -> S
|
|
119
|
+
*
|
|
120
|
+
* @returns {String}
|
|
121
|
+
*/
|
|
122
|
+
export declare function randomLetter(): string;
|
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.applyMask = exports.removeFromPosition = exports.insertAtPosition = exports.clearValue = exports.fakeNumber = exports.sumElementsByMultipliers = exports.invalidListGenerator = exports.sumToDV = void 0;
|
|
3
|
+
exports.randomLetter = exports.applyMask = exports.removeFromPosition = exports.insertAtPosition = exports.clearValue = exports.fakeNumber = exports.sumElementsByMultipliers = exports.invalidListGenerator = exports.sumToDV = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Calcula o DV verificador a partir das regras do MOD11:
|
|
6
6
|
* O valor da soma é dividido por 11. O resultado é o resto da divisão. Caso o resto seja
|
|
@@ -85,12 +85,10 @@ exports.fakeNumber = fakeNumber;
|
|
|
85
85
|
* @returns {String} Número com o tamanho exato
|
|
86
86
|
*/
|
|
87
87
|
function clearValue(value, length = null) {
|
|
88
|
-
const clearedValue = String(value).replace(/([
|
|
88
|
+
const clearedValue = String(value).replace(/([/.-]+)/gi, '');
|
|
89
89
|
if (!length || clearedValue.length === length)
|
|
90
90
|
return clearedValue;
|
|
91
|
-
|
|
92
|
-
return clearedValue.substring(0, length);
|
|
93
|
-
return clearedValue.padStart(length, '0');
|
|
91
|
+
return clearedValue.padStart(length, '0').substring(0, length);
|
|
94
92
|
}
|
|
95
93
|
exports.clearValue = clearValue;
|
|
96
94
|
/**
|
|
@@ -154,14 +152,19 @@ function applyMask(value, mask) {
|
|
|
154
152
|
return masked;
|
|
155
153
|
}
|
|
156
154
|
exports.applyMask = applyMask;
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
//
|
|
163
|
-
//
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
155
|
+
/**
|
|
156
|
+
* randomLetter()
|
|
157
|
+
* Pega uma letra maiúscula aleatoriamente
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* randomLetter() // -> A
|
|
161
|
+
* randomLetter() // -> S
|
|
162
|
+
*
|
|
163
|
+
* @returns {String}
|
|
164
|
+
*/
|
|
165
|
+
function randomLetter() {
|
|
166
|
+
const idx = Math.floor(1 + Math.random() * 26);
|
|
167
|
+
return String.fromCharCode(idx + 64);
|
|
168
|
+
}
|
|
169
|
+
exports.randomLetter = randomLetter;
|
|
167
170
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,SAAgB,OAAO,CAAC,GAAW;IACjC,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAA;AAC3C,CAAC;AAFD,0BAEC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AACjE,CAAC;AAFD,oDAEC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,wBAAwB,CAAC,KAAa,EAAE,UAA6B;IACnF,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAE3F,OAAO,UAAU,CAAC,MAAM,CACtB,CAAC,IAAY,EAAE,IAAS,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC7E,CAAC,CACF,CAAA;AACH,CAAC;AAPD,4DAOC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,UAAU,CAAC,MAAc,EAAE,cAAuB,KAAK;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAA,EAAE,EAAI,MAAM,CAAA,CAAC,CAAA;IAEtD,IAAI,WAAW;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE3D,OAAO,CAAC,KAAK,CAAA;AACf,CAAC;AAND,gCAMC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,UAAU,CAAC,KAAsB,EAAE,SAAwB,IAAI;IAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAE5D,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,YAAY,CAAA;IAElE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,SAAgB,OAAO,CAAC,GAAW;IACjC,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAA;AAC3C,CAAC;AAFD,0BAEC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AACjE,CAAC;AAFD,oDAEC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,wBAAwB,CAAC,KAAa,EAAE,UAA6B;IACnF,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAE3F,OAAO,UAAU,CAAC,MAAM,CACtB,CAAC,IAAY,EAAE,IAAS,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC7E,CAAC,CACF,CAAA;AACH,CAAC;AAPD,4DAOC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,UAAU,CAAC,MAAc,EAAE,cAAuB,KAAK;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAA,EAAE,EAAI,MAAM,CAAA,CAAC,CAAA;IAEtD,IAAI,WAAW;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE3D,OAAO,CAAC,KAAK,CAAA;AACf,CAAC;AAND,gCAMC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,UAAU,CAAC,KAAsB,EAAE,SAAwB,IAAI;IAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAE5D,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,YAAY,CAAA;IAElE,OAAO,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAChE,CAAC;AAND,gCAMC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,gBAAgB,CAAC,KAAa,EAAE,WAAmB,EAAE,QAAgB;IACnF,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAA;AACpF,CAAC;AAFD,4CAEC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,kBAAkB,CAChC,KAAa,EACb,aAAqB,EACrB,WAAmB;IAEnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC3E,CAAC;AAND,gDAMC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,SAAS,CAAC,KAAsB,EAAE,IAAY;IAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;IACvC,IAAI,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACvC,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAEnD,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,EAAE;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9B,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;KACzF;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAXD,8BAWC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAC9C,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,EAAE,CAAC,CAAA;AACtC,CAAC;AAHD,oCAGC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "validation-br",
|
|
3
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": "1.
|
|
4
|
+
"version": "1.4.0",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "./dist/types.d.ts",
|
|
7
7
|
"author": "Cláudio Medeiros <klawdyo@gmail.com>",
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
"test:watch": "jest --watch",
|
|
13
13
|
"test:coverage": "jest --collectCoverageFrom=src/**/*.ts --coverage",
|
|
14
14
|
"lint:list": "eslint */**/*.js --fix",
|
|
15
|
-
"format": "prettier --write \"./**/*.{js,ts,json}\""
|
|
15
|
+
"format": "prettier --write \"./**/*.{js,ts,json}\"",
|
|
16
|
+
"prepublish": "yarn build"
|
|
16
17
|
},
|
|
17
18
|
"husky": {
|
|
18
19
|
"hooks": {
|
|
@@ -105,6 +106,21 @@
|
|
|
105
106
|
"format",
|
|
106
107
|
"formatar",
|
|
107
108
|
"formatador",
|
|
108
|
-
"formatter"
|
|
109
|
+
"formatter",
|
|
110
|
+
"nest",
|
|
111
|
+
"nestjs",
|
|
112
|
+
"yup",
|
|
113
|
+
"next",
|
|
114
|
+
"nextjs",
|
|
115
|
+
"typeorm",
|
|
116
|
+
"class-validator",
|
|
117
|
+
"vuelidate",
|
|
118
|
+
"vue",
|
|
119
|
+
"vue3",
|
|
120
|
+
"indicative",
|
|
121
|
+
"adonis",
|
|
122
|
+
"adonisjs",
|
|
123
|
+
"adonis4",
|
|
124
|
+
"adonisjs4"
|
|
109
125
|
]
|
|
110
126
|
}
|
package/readme.md
CHANGED
|
@@ -38,11 +38,11 @@ Importando os submódulos, é possível criar máscaras, números fake para test
|
|
|
38
38
|
|
|
39
39
|
```js
|
|
40
40
|
// ES6
|
|
41
|
-
import { dv, fake, mask, validate } from 'validation-br/cpf'
|
|
41
|
+
import { dv, fake, mask, validate } from 'validation-br/dist/cpf'
|
|
42
42
|
|
|
43
43
|
// Modules
|
|
44
|
-
const cpf = require('validation-br/cpf')
|
|
45
|
-
const { dv, fake, mask, validate } = require('validation-br/cpf')
|
|
44
|
+
const cpf = require('validation-br/dist/cpf')
|
|
45
|
+
const { dv, fake, mask, validate } = require('validation-br/dist/cpf')
|
|
46
46
|
|
|
47
47
|
// Calculo do dígito verificador de um CPF. Os métodos aceitam inteiros e strings, inclusive com máscaras.
|
|
48
48
|
cpf.dv(906259666) // -> '51'
|
|
@@ -66,6 +66,8 @@ cpf.validateOrFail('01234567890') // -> true
|
|
|
66
66
|
|
|
67
67
|
## Tabela de Conteúdo
|
|
68
68
|
|
|
69
|
+
### Funções de Validação
|
|
70
|
+
|
|
69
71
|
- [isCNH](#isCNH-value-) - Validação do CNH
|
|
70
72
|
- [isCPF](#isCPF-value-) - Validação do CPF
|
|
71
73
|
- [isCNPJ](#isCNPJ-value-) - Validação do CNPJ
|
|
@@ -77,6 +79,13 @@ cpf.validateOrFail('01234567890') // -> true
|
|
|
77
79
|
- [isRenavam](#isRenavam-value-) - Validação de RENAVAM
|
|
78
80
|
- [isTituloEleitor](#isTituloEleitor-value-) - Validação do Título de Eleitor
|
|
79
81
|
|
|
82
|
+
### Usando em outras bibliotecas de validação
|
|
83
|
+
|
|
84
|
+
- [Vuelidate](#vuelidate) - Usado para validação de estado no vuejs
|
|
85
|
+
- [Class-Validator](#class-validator) - Usado em nest, typeorm E mais uma infinidade de frameworks
|
|
86
|
+
- [Yup](#yup) - Yup é usado para validar estado em aplicações react.
|
|
87
|
+
- [Indicative](#indicative) - Indicative é a biblioteca padrão de validação usada no Adonis.
|
|
88
|
+
|
|
80
89
|
### isCNH( `value` )
|
|
81
90
|
|
|
82
91
|
Valida o documento da carteira nacional de habilitação.
|
|
@@ -86,7 +95,7 @@ Valida o documento da carteira nacional de habilitação.
|
|
|
86
95
|
import { isCNH } from 'validation-br'
|
|
87
96
|
// ou
|
|
88
97
|
// Importação do submódulo
|
|
89
|
-
import cnh from 'validation-br/cnh'
|
|
98
|
+
import cnh from 'validation-br/dist/cnh'
|
|
90
99
|
|
|
91
100
|
// Valida
|
|
92
101
|
isCNH('69044271146') //-> true
|
|
@@ -115,7 +124,7 @@ Valida um CNPJ
|
|
|
115
124
|
import { isCNPJ } from 'validation-br'
|
|
116
125
|
// ou
|
|
117
126
|
// Importação do submódulo
|
|
118
|
-
import cnpj from 'validation-br/cnpj'
|
|
127
|
+
import cnpj from 'validation-br/dist/cnpj'
|
|
119
128
|
|
|
120
129
|
// Valida
|
|
121
130
|
isCNPJ('73.797.980/0001-79') //-> true
|
|
@@ -144,7 +153,7 @@ Valida um CPF
|
|
|
144
153
|
import { isCPF } from 'validation-br'
|
|
145
154
|
// ou
|
|
146
155
|
// Importação do submódulo
|
|
147
|
-
import cpf from 'validation-br/cpf'
|
|
156
|
+
import cpf from 'validation-br/dist/cpf'
|
|
148
157
|
|
|
149
158
|
// Valida
|
|
150
159
|
isCPF('01234567890') //-> true
|
|
@@ -193,7 +202,7 @@ O número é composto por 6 partes:
|
|
|
193
202
|
import { isJudicialProcess } from 'validation-br'
|
|
194
203
|
// ou
|
|
195
204
|
// Importação do submódulo
|
|
196
|
-
import judicialProcess from 'validation-br/judicialProcess'
|
|
205
|
+
import judicialProcess from 'validation-br/dist/judicialProcess'
|
|
197
206
|
|
|
198
207
|
// Valida
|
|
199
208
|
isJudicialProcess('20802520125150049') //-> true
|
|
@@ -228,7 +237,7 @@ Válida um Número Unificado de Protocolo de 17 dígitos. Esta numeração é us
|
|
|
228
237
|
import { isNUP17 } from 'validation-br'
|
|
229
238
|
// ou
|
|
230
239
|
// Importação do submódulo
|
|
231
|
-
import nup from 'validation-br/nup17'
|
|
240
|
+
import nup from 'validation-br/dist/nup17'
|
|
232
241
|
|
|
233
242
|
// Valida
|
|
234
243
|
isNUP17('23037001462202165') //-> true
|
|
@@ -257,7 +266,7 @@ Valida códigos PIS, PASEP, NIS e NIT, que usam o mesmo algoritmo. Aceita númer
|
|
|
257
266
|
import { isPIS } from 'validation-br'
|
|
258
267
|
// ou
|
|
259
268
|
// Importação do submódulo
|
|
260
|
-
import pis from 'validation-br/
|
|
269
|
+
import pis from 'validation-br/dist/pisPasep'
|
|
261
270
|
|
|
262
271
|
// Valida
|
|
263
272
|
isPIS('71282677380') //-> true
|
|
@@ -291,7 +300,7 @@ Valida um código de rastreamento de objetos postais no formato XX00000000DYY, o
|
|
|
291
300
|
import { isPostalCode } from 'validation-br'
|
|
292
301
|
// ou
|
|
293
302
|
// Importação do submódulo
|
|
294
|
-
import postalCode from 'validation-br/postalCode'
|
|
303
|
+
import postalCode from 'validation-br/dist/postalCode'
|
|
295
304
|
|
|
296
305
|
// Valida
|
|
297
306
|
isPostalCode('PN718252423BR') //-> true
|
|
@@ -321,7 +330,7 @@ Valida o número de um RENAVAM de 11 dígitos
|
|
|
321
330
|
import { isRenavam } from 'validation-br'
|
|
322
331
|
// ou
|
|
323
332
|
// Importação do submódulo
|
|
324
|
-
import renavam from 'validation-br/renavam'
|
|
333
|
+
import renavam from 'validation-br/dist/renavam'
|
|
325
334
|
|
|
326
335
|
// Valida
|
|
327
336
|
isRenavam('14283256656') //-> true
|
|
@@ -350,7 +359,7 @@ Valida um título eleitoral
|
|
|
350
359
|
import { isTituloEleitor } from 'validation-br'
|
|
351
360
|
// ou
|
|
352
361
|
// Importação do submódulo
|
|
353
|
-
import titulo from 'validation-br/tituloEleitor'
|
|
362
|
+
import titulo from 'validation-br/dist/tituloEleitor'
|
|
354
363
|
|
|
355
364
|
// Valida
|
|
356
365
|
isTituloEleitor('743650641660') //-> true
|
|
@@ -370,6 +379,214 @@ titulo.mask('525028881694') // -> 5250.2888.1694
|
|
|
370
379
|
titulo.dv('5250288816') // -> '94'
|
|
371
380
|
```
|
|
372
381
|
|
|
382
|
+
# Usando com outras bibliotecas de validação
|
|
383
|
+
|
|
384
|
+
## Vuelidate
|
|
385
|
+
|
|
386
|
+
<details>
|
|
387
|
+
<summary>Mostrar exemplos do vuelidate</summary>
|
|
388
|
+
|
|
389
|
+
```js
|
|
390
|
+
// Importação
|
|
391
|
+
import { validation as isCPF } from 'validation-br/dist/cpf'
|
|
392
|
+
|
|
393
|
+
const fnCpf = helpers.withMessage('CPF inválido', isCPF)
|
|
394
|
+
|
|
395
|
+
// ou
|
|
396
|
+
|
|
397
|
+
const fnCpf = { $validator: isCPF, $message: 'CPF inválido' }
|
|
398
|
+
|
|
399
|
+
// Definição das regras do vuelidate
|
|
400
|
+
import { required, minLength } from '@vuelidate/validators'
|
|
401
|
+
|
|
402
|
+
const rules = {
|
|
403
|
+
cpf: { fnCpf },
|
|
404
|
+
}
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
**Saiba mais**
|
|
408
|
+
|
|
409
|
+
- [Vuelidate](https://vuelidate-next.netlify.app/)
|
|
410
|
+
|
|
411
|
+
</details>
|
|
412
|
+
|
|
413
|
+
## class-validator
|
|
414
|
+
|
|
415
|
+
<details>
|
|
416
|
+
<summary>Mostrar exemplos do class-validator</summary>
|
|
417
|
+
|
|
418
|
+
Adiciona os decorators ao class-validator.
|
|
419
|
+
|
|
420
|
+
Crie um arquivo iscpf.decorator.ts e adicione em seu diretório de validadores, exemplo:
|
|
421
|
+
`src/validators/iscpf.decorator.ts` ou em qualquer outro diretório a seu critério.
|
|
422
|
+
|
|
423
|
+
```js
|
|
424
|
+
// src/validators/iscpf.decorator.ts
|
|
425
|
+
import {
|
|
426
|
+
registerDecorator,
|
|
427
|
+
ValidationOptions,
|
|
428
|
+
ValidatorConstraint,
|
|
429
|
+
ValidatorConstraintInterface,
|
|
430
|
+
ValidationArguments,
|
|
431
|
+
} from 'class-validator'
|
|
432
|
+
|
|
433
|
+
// Importa o isCPF do validation-br
|
|
434
|
+
import { isCPF } from 'validation-br'
|
|
435
|
+
|
|
436
|
+
@ValidatorConstraint({ async: false })
|
|
437
|
+
export class IsCpfConstraint implements ValidatorConstraintInterface {
|
|
438
|
+
validate(cpf: any, args: ValidationArguments) {
|
|
439
|
+
return isCPF(cpf)
|
|
440
|
+
}
|
|
441
|
+
defaultMessage() {
|
|
442
|
+
return 'CPF inválido'
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
// Registra o decorator
|
|
447
|
+
export function IsCpf(validationOptions?: ValidationOptions) {
|
|
448
|
+
return function (object: any, propertyName: string) {
|
|
449
|
+
registerDecorator({
|
|
450
|
+
target: object.constructor,
|
|
451
|
+
propertyName: propertyName,
|
|
452
|
+
options: validationOptions,
|
|
453
|
+
constraints: [],
|
|
454
|
+
validator: IsCpfConstraint,
|
|
455
|
+
})
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
Forma de uso no DTO
|
|
461
|
+
|
|
462
|
+
```ts
|
|
463
|
+
import { IsCpf } from '../../validators/iscpf.decorator'
|
|
464
|
+
|
|
465
|
+
export class CreateUserDto {
|
|
466
|
+
@IsString()
|
|
467
|
+
@IsNotEmpty()
|
|
468
|
+
@IsCpf()
|
|
469
|
+
cpf: string
|
|
470
|
+
}
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
**Saiba mais**
|
|
474
|
+
|
|
475
|
+
- [NestJS](https://nestjs.com)
|
|
476
|
+
- [class-validator](https://github.com/typestack/class-validator)
|
|
477
|
+
- [TypeORM](https://typeorm.io/)
|
|
478
|
+
</details>
|
|
479
|
+
|
|
480
|
+
## YUP
|
|
481
|
+
|
|
482
|
+
<details>
|
|
483
|
+
<summary>Mostrar exemplos do Yup</summary>
|
|
484
|
+
|
|
485
|
+
Aplica uma validação usando o Yup.
|
|
486
|
+
|
|
487
|
+
Crie um arquivo `validation-br.ts` em seu diretório de bibliotecas auxiliares, exemplo ´/src/lib/validation-br.ts´
|
|
488
|
+
|
|
489
|
+
```js
|
|
490
|
+
// Importe o Yup
|
|
491
|
+
import * as yup from 'yup'
|
|
492
|
+
|
|
493
|
+
// Importe o validateOrFail do submódulo de CPF do validation-br
|
|
494
|
+
import { validateOrFail } from 'validation-br/dist/cpf'
|
|
495
|
+
|
|
496
|
+
// Crie seu método personalizado chamado cpf()
|
|
497
|
+
function cpf(message) {
|
|
498
|
+
return this.test('cpf', message, function (value) {
|
|
499
|
+
const { path, createError } = this
|
|
500
|
+
|
|
501
|
+
try {
|
|
502
|
+
const valid = validateOrFail(value)
|
|
503
|
+
return true
|
|
504
|
+
} catch (error) {
|
|
505
|
+
// Cria um erro se cair no catch
|
|
506
|
+
return createError({
|
|
507
|
+
path,
|
|
508
|
+
// Exibe a mensagem do catch
|
|
509
|
+
message: message ?? error.message,
|
|
510
|
+
})
|
|
511
|
+
}
|
|
512
|
+
})
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
// Adiciona seu método cpf() ao grupo de strings do yup
|
|
516
|
+
yup.addMethod(yup.string, 'cpf', cpf)
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
### Como usar
|
|
520
|
+
|
|
521
|
+
cpf() já está disponível para uso dentro do Yup
|
|
522
|
+
|
|
523
|
+
```js
|
|
524
|
+
const validationSchema = yup.object().shape({
|
|
525
|
+
cpf: yup.string().required().cpf(),
|
|
526
|
+
})
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
**Saiba mais**
|
|
530
|
+
|
|
531
|
+
- [Yup](https://github.com/jquense/yup)
|
|
532
|
+
|
|
533
|
+
</details>
|
|
534
|
+
|
|
535
|
+
## Indicative
|
|
536
|
+
|
|
537
|
+
<details>
|
|
538
|
+
<summary>Mostrar exemplos do AdonisJS (Indicative)</summary>
|
|
539
|
+
|
|
540
|
+
[AdonisJS 4](https://legacy.adonisjs.com/docs/4.1/installation) usa [indicative](https://indicative-v5.adonisjs.com/) para realizar suas validações.
|
|
541
|
+
|
|
542
|
+
Crie um arquivo `validation_br.js` em seu diretório de validações customizadas, exemplo ´/app/Validators/extend/validation_br.js´.
|
|
543
|
+
|
|
544
|
+
```js
|
|
545
|
+
const { isCPF } = require('validation-br')
|
|
546
|
+
|
|
547
|
+
///app/Validators/extend/validation_br.js
|
|
548
|
+
const _cpf = async (payload, fieldName, message, arguments, get) => {
|
|
549
|
+
// Pega o valor do campo
|
|
550
|
+
const cpf = get(payload, fieldName)
|
|
551
|
+
// Pulando caso esteja vazio
|
|
552
|
+
if (!cpf) return
|
|
553
|
+
|
|
554
|
+
if (!isCPF(cpf)) {
|
|
555
|
+
throw message
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
const Validator = use('Validator')
|
|
560
|
+
Validator.extend('cpf', _cpf)
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
### Como usar
|
|
564
|
+
|
|
565
|
+
Agora é necessário importar o arquivo na página que avalia as suas regras de validação do seu endpoint.
|
|
566
|
+
|
|
567
|
+
```js
|
|
568
|
+
|
|
569
|
+
// Importa o arquivo com as validações customizadas
|
|
570
|
+
require('../extend/validation_br')
|
|
571
|
+
|
|
572
|
+
// Inclui a regra criada para o campo cpf
|
|
573
|
+
get rules() {
|
|
574
|
+
return {
|
|
575
|
+
cpf: [
|
|
576
|
+
rule('required'),
|
|
577
|
+
rule('cpf'),
|
|
578
|
+
]
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
**Saiba mais**
|
|
584
|
+
|
|
585
|
+
- [Adonis 4](https://legacy.adonisjs.com/docs/4.1/installation)
|
|
586
|
+
- [Indicative](https://indicative-v5.adonisjs.com/)
|
|
587
|
+
|
|
588
|
+
</details>
|
|
589
|
+
|
|
373
590
|
# Testes
|
|
374
591
|
|
|
375
592
|

|
package/dist/vuelidate.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
export declare const cnh: {
|
|
2
|
-
$validator: (value: string | number) => boolean;
|
|
3
|
-
$message: string;
|
|
4
|
-
};
|
|
5
|
-
export declare const cpf: {
|
|
6
|
-
$validator: (value: string | number) => boolean;
|
|
7
|
-
$message: string;
|
|
8
|
-
};
|
|
9
|
-
export declare const cnpj: {
|
|
10
|
-
$validator: (value: string | number) => boolean;
|
|
11
|
-
$message: string;
|
|
12
|
-
};
|
|
13
|
-
export declare const renavam: {
|
|
14
|
-
$validator: (value: string | number) => boolean;
|
|
15
|
-
$message: string;
|
|
16
|
-
};
|
|
17
|
-
export declare const judicialProcess: {
|
|
18
|
-
$validator: (value: string) => boolean;
|
|
19
|
-
$message: string;
|
|
20
|
-
};
|
|
21
|
-
export declare const nup17: {
|
|
22
|
-
$validator: (value: string) => boolean;
|
|
23
|
-
$message: string;
|
|
24
|
-
};
|
|
25
|
-
export declare const postalCode: {
|
|
26
|
-
$validator: (value: string) => boolean;
|
|
27
|
-
$message: string;
|
|
28
|
-
};
|
|
29
|
-
export declare const tituloEleitor: {
|
|
30
|
-
$validator: (value: string | number) => boolean;
|
|
31
|
-
$message: string;
|
|
32
|
-
};
|
|
33
|
-
export declare const pisPasep: {
|
|
34
|
-
$validator: (value: string | number) => boolean;
|
|
35
|
-
$message: string;
|
|
36
|
-
};
|
package/dist/vuelidate.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.pisPasep = exports.tituloEleitor = exports.postalCode = exports.nup17 = exports.judicialProcess = exports.renavam = exports.cnpj = exports.cpf = exports.cnh = void 0;
|
|
4
|
-
const cnh_1 = require("./cnh");
|
|
5
|
-
const cpf_1 = require("./cpf");
|
|
6
|
-
const cnpj_1 = require("./cnpj");
|
|
7
|
-
const renavam_1 = require("./renavam");
|
|
8
|
-
const judicialProcess_1 = require("./judicialProcess");
|
|
9
|
-
const nup17_1 = require("./nup17");
|
|
10
|
-
const postalCode_1 = require("./postalCode");
|
|
11
|
-
const tituloEleitor_1 = require("./tituloEleitor");
|
|
12
|
-
const pisPasep_1 = require("./pisPasep");
|
|
13
|
-
exports.cnh = { $validator: cnh_1.validateOrFail, $message: 'CNH inválido' };
|
|
14
|
-
exports.cpf = { $validator: cpf_1.validateOrFail, $message: 'CNPJ inválido' };
|
|
15
|
-
exports.cnpj = { $validator: cnpj_1.validateOrFail, $message: 'CPF inválido' };
|
|
16
|
-
exports.renavam = { $validator: renavam_1.validateOrFail, $message: 'Renavam inválido' };
|
|
17
|
-
exports.judicialProcess = {
|
|
18
|
-
$validator: judicialProcess_1.validateOrFail,
|
|
19
|
-
$message: 'JudicialProcess inválido',
|
|
20
|
-
};
|
|
21
|
-
exports.nup17 = { $validator: nup17_1.validateOrFail, $message: 'NUP17 inválido' };
|
|
22
|
-
exports.postalCode = {
|
|
23
|
-
$validator: postalCode_1.validateOrFail,
|
|
24
|
-
$message: 'PostalCode inválido',
|
|
25
|
-
};
|
|
26
|
-
exports.tituloEleitor = {
|
|
27
|
-
$validator: tituloEleitor_1.validateOrFail,
|
|
28
|
-
$message: 'TituloEleitor inválido',
|
|
29
|
-
};
|
|
30
|
-
exports.pisPasep = { $validator: pisPasep_1.validateOrFail, $message: 'PIS inválido' };
|
|
31
|
-
//# sourceMappingURL=vuelidate.js.map
|
package/dist/vuelidate.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vuelidate.js","sourceRoot":"","sources":["../src/vuelidate.ts"],"names":[],"mappings":";;;AAAA,+BAA+C;AAC/C,+BAAgD;AAChD,iCAAgD;AAChD,uCAAuD;AACvD,uDAAuE;AACvE,mCAAmD;AACnD,6CAA6D;AAC7D,mDAAmE;AACnE,yCAAoD;AAEvC,QAAA,GAAG,GAAG,EAAE,UAAU,EAAE,oBAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;AACrD,QAAA,GAAG,GAAG,EAAE,UAAU,EAAE,oBAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;AACvD,QAAA,IAAI,GAAG,EAAE,UAAU,EAAE,qBAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;AACtD,QAAA,OAAO,GAAG,EAAE,UAAU,EAAE,wBAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;AACjE,QAAA,eAAe,GAAG;IAC7B,UAAU,EAAE,gCAAiB;IAC7B,QAAQ,EAAE,0BAA0B;CACrC,CAAA;AACY,QAAA,KAAK,GAAG,EAAE,UAAU,EAAE,sBAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;AAC3D,QAAA,UAAU,GAAG;IACxB,UAAU,EAAE,2BAAY;IACxB,QAAQ,EAAE,qBAAqB;CAChC,CAAA;AACY,QAAA,aAAa,GAAG;IAC3B,UAAU,EAAE,8BAAe;IAC3B,QAAQ,EAAE,wBAAwB;CACnC,CAAA;AACY,QAAA,QAAQ,GAAG,EAAE,UAAU,EAAE,yBAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAA"}
|