validation-br 1.6.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_exceptions/ValidationBRError.d.ts +7 -0
- package/dist/_exceptions/ValidationBRError.js +11 -0
- package/dist/_exceptions/ValidationBRError.js.map +1 -0
- package/dist/cnh.d.ts +98 -0
- package/dist/cnh.js +149 -0
- package/dist/cnh.js.map +1 -0
- package/dist/cnpj.d.ts +121 -0
- package/dist/cnpj.js +191 -0
- package/dist/cnpj.js.map +1 -0
- package/dist/cpf.d.ts +106 -0
- package/dist/cpf.js +157 -0
- package/dist/cpf.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/judicialProcess.d.ts +133 -0
- package/dist/judicialProcess.js +200 -0
- package/dist/judicialProcess.js.map +1 -0
- package/dist/nup17.d.ts +103 -0
- package/dist/nup17.js +159 -0
- package/dist/nup17.js.map +1 -0
- package/dist/package-lock.json +4372 -0
- package/dist/package.json +117 -0
- package/dist/pisPasep.d.ts +88 -0
- package/dist/pisPasep.js +136 -0
- package/dist/pisPasep.js.map +1 -0
- package/dist/postalCode.d.ts +92 -0
- package/dist/postalCode.js +144 -0
- package/dist/postalCode.js.map +1 -0
- package/dist/readme.md +492 -0
- package/dist/renavam.d.ts +82 -0
- package/dist/renavam.js +132 -0
- package/dist/renavam.js.map +1 -0
- package/dist/tituloEleitor.d.ts +100 -0
- package/dist/tituloEleitor.js +157 -0
- package/dist/tituloEleitor.js.map +1 -0
- package/dist/utils.d.ts +131 -0
- package/dist/utils.js +190 -0
- package/dist/utils.js.map +1 -0
- package/package.json +14 -3
- package/readme.md +1 -1
- package/.prettierignore +0 -1
- package/.prettierrc.js +0 -7
- package/dist/test/cnh.test.d.ts +0 -1
- package/dist/test/cnh.test.js +0 -116
- package/dist/test/cnh.test.js.map +0 -1
- package/dist/test/cnpj.test.d.ts +0 -1
- package/dist/test/cnpj.test.js +0 -181
- package/dist/test/cnpj.test.js.map +0 -1
- package/dist/test/cpf.test.d.ts +0 -1
- package/dist/test/cpf.test.js +0 -136
- package/dist/test/cpf.test.js.map +0 -1
- package/dist/test/index.test.d.ts +0 -1
- package/dist/test/index.test.js +0 -83
- package/dist/test/index.test.js.map +0 -1
- package/dist/test/judicialProcess.test.d.ts +0 -1
- package/dist/test/judicialProcess.test.js +0 -124
- package/dist/test/judicialProcess.test.js.map +0 -1
- package/dist/test/nup17.test.d.ts +0 -1
- package/dist/test/nup17.test.js +0 -133
- package/dist/test/nup17.test.js.map +0 -1
- package/dist/test/pisPasep.test.d.ts +0 -1
- package/dist/test/pisPasep.test.js +0 -135
- package/dist/test/pisPasep.test.js.map +0 -1
- package/dist/test/postalCode.test.d.ts +0 -1
- package/dist/test/postalCode.test.js +0 -123
- package/dist/test/postalCode.test.js.map +0 -1
- package/dist/test/renavam.test.d.ts +0 -1
- package/dist/test/renavam.test.js +0 -91
- package/dist/test/renavam.test.js.map +0 -1
- package/dist/test/tituloEleitor.test.d.ts +0 -1
- package/dist/test/tituloEleitor.test.js +0 -118
- package/dist/test/tituloEleitor.test.js.map +0 -1
- package/dist/test/utils-applyMask.test.d.ts +0 -1
- package/dist/test/utils-applyMask.test.js +0 -15
- package/dist/test/utils-applyMask.test.js.map +0 -1
- package/dist/test/utils-checkRepeatedSequence.test.d.ts +0 -1
- package/dist/test/utils-checkRepeatedSequence.test.js +0 -18
- package/dist/test/utils-checkRepeatedSequence.test.js.map +0 -1
- package/dist/test/utils-clearValue.test.d.ts +0 -1
- package/dist/test/utils-clearValue.test.js +0 -59
- package/dist/test/utils-clearValue.test.js.map +0 -1
- package/dist/test/utils-fakeNumber.test.d.ts +0 -1
- package/dist/test/utils-fakeNumber.test.js +0 -24
- package/dist/test/utils-fakeNumber.test.js.map +0 -1
- package/dist/test/utils-insertAtPosition.test.d.ts +0 -1
- package/dist/test/utils-insertAtPosition.test.js +0 -16
- package/dist/test/utils-insertAtPosition.test.js.map +0 -1
- package/dist/test/utils-randomLetter.test.d.ts +0 -1
- package/dist/test/utils-randomLetter.test.js +0 -11
- package/dist/test/utils-randomLetter.test.js.map +0 -1
- package/dist/test/utils-removeFromPosition.test.d.ts +0 -1
- package/dist/test/utils-removeFromPosition.test.js +0 -12
- package/dist/test/utils-removeFromPosition.test.js.map +0 -1
- package/dist/test/utils-sumElementsByMultipliers.test.d.ts +0 -1
- package/dist/test/utils-sumElementsByMultipliers.test.js +0 -23
- package/dist/test/utils-sumElementsByMultipliers.test.js.map +0 -1
- package/dist/test/utils-sumToDV.test.d.ts +0 -1
- package/dist/test/utils-sumToDV.test.js +0 -14
- package/dist/test/utils-sumToDV.test.js.map +0 -1
- package/eslint.config.js +0 -82
- package/jest.config.js +0 -11
- package/test/cnh.test.ts +0 -113
- package/test/cnpj.test.ts +0 -179
- package/test/cpf.test.ts +0 -124
- package/test/index.test.ts +0 -85
- package/test/judicialProcess.test.ts +0 -120
- package/test/nup17.test.ts +0 -127
- package/test/pisPasep.test.ts +0 -126
- package/test/postalCode.test.ts +0 -114
- package/test/renavam.test.ts +0 -77
- package/test/tituloEleitor.test.ts +0 -110
- package/test/utils-applyMask.test.ts +0 -13
- package/test/utils-checkRepeatedSequence.test.ts +0 -17
- package/test/utils-clearValue.test.ts +0 -69
- package/test/utils-fakeNumber.test.ts +0 -28
- package/test/utils-insertAtPosition.test.ts +0 -15
- package/test/utils-randomLetter.test.ts +0 -9
- package/test/utils-removeFromPosition.test.ts +0 -10
- package/test/utils-sumElementsByMultipliers.test.ts +0 -24
- package/test/utils-sumToDV.test.ts +0 -12
- package/tsconfig.json +0 -25
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "validation-br",
|
|
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.6.0-d",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"package.json",
|
|
10
|
+
"package-lock.json",
|
|
11
|
+
"readme.md"
|
|
12
|
+
],
|
|
13
|
+
|
|
14
|
+
"author": "Cláudio Medeiros <klawdyo@gmail.com>",
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "./publish.sh",
|
|
18
|
+
"builds": "rm dist -r && tsc && rm -r dist/test && mv dist/src/* dist && rm dist/src -r && cp package*.json readme.md dist",
|
|
19
|
+
"publish": "npm publish",
|
|
20
|
+
"test": "jest",
|
|
21
|
+
"test:watch": "jest --watch",
|
|
22
|
+
"test:coverage": "jest --collectCoverageFrom=src/**/*.ts --coverage",
|
|
23
|
+
"format": "prettier --write \"./**/*.{js,ts,json}\"",
|
|
24
|
+
"prepublish": "npm run build"
|
|
25
|
+
|
|
26
|
+
},
|
|
27
|
+
"lint-staged": {
|
|
28
|
+
"*.{js,ts}": [
|
|
29
|
+
"prettier --write",
|
|
30
|
+
"eslint --cache --fix"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/jest": "^27.4.0",
|
|
35
|
+
"@types/node": "^14.14.2",
|
|
36
|
+
"jest": "^29.7.0",
|
|
37
|
+
"ts-jest": "^29.2.5",
|
|
38
|
+
"ts-node": "^9.0.0",
|
|
39
|
+
"typescript": "^5.6.2"
|
|
40
|
+
},
|
|
41
|
+
"repository": {
|
|
42
|
+
"url": "git+https://github.com/klawdyo/validation-br.git"
|
|
43
|
+
},
|
|
44
|
+
"bugs": {
|
|
45
|
+
"url": "https://github.com/klawdyo/validation-br/issues"
|
|
46
|
+
},
|
|
47
|
+
"homepage": "https://github.com/klawdyo/validation-br#readme",
|
|
48
|
+
"keywords": [
|
|
49
|
+
"validation-br",
|
|
50
|
+
"validation",
|
|
51
|
+
"personal documents",
|
|
52
|
+
"document",
|
|
53
|
+
"brazil",
|
|
54
|
+
"brasil",
|
|
55
|
+
"brazilian",
|
|
56
|
+
"brasileiro",
|
|
57
|
+
"cpf",
|
|
58
|
+
"cnpj",
|
|
59
|
+
"pis",
|
|
60
|
+
"pasep",
|
|
61
|
+
"cnh",
|
|
62
|
+
"titulo eleitor",
|
|
63
|
+
"eleitoral",
|
|
64
|
+
"titulo",
|
|
65
|
+
"renavam",
|
|
66
|
+
"processos",
|
|
67
|
+
"judiciais",
|
|
68
|
+
"judicial",
|
|
69
|
+
"justiça",
|
|
70
|
+
"protocolo",
|
|
71
|
+
"federal",
|
|
72
|
+
"fake",
|
|
73
|
+
"falso",
|
|
74
|
+
"mock",
|
|
75
|
+
"faker",
|
|
76
|
+
"mockup",
|
|
77
|
+
"mask",
|
|
78
|
+
"mascara",
|
|
79
|
+
"fake cpf",
|
|
80
|
+
"fake cnpj",
|
|
81
|
+
"fake cnh",
|
|
82
|
+
"fake pis",
|
|
83
|
+
"fake pasep",
|
|
84
|
+
"fake cadunico",
|
|
85
|
+
"fake renavam",
|
|
86
|
+
"fake titulo",
|
|
87
|
+
"fake titulo eleitor",
|
|
88
|
+
"fake titulo eleitoral",
|
|
89
|
+
"fake número processo",
|
|
90
|
+
"processo justiça",
|
|
91
|
+
"processo judicial",
|
|
92
|
+
"valida",
|
|
93
|
+
"validar",
|
|
94
|
+
"validação",
|
|
95
|
+
"valide",
|
|
96
|
+
"validate",
|
|
97
|
+
"format",
|
|
98
|
+
"formatar",
|
|
99
|
+
"formatador",
|
|
100
|
+
"formatter",
|
|
101
|
+
"nest",
|
|
102
|
+
"nestjs",
|
|
103
|
+
"yup",
|
|
104
|
+
"next",
|
|
105
|
+
"nextjs",
|
|
106
|
+
"typeorm",
|
|
107
|
+
"class-validator",
|
|
108
|
+
"vuelidate",
|
|
109
|
+
"vue",
|
|
110
|
+
"vue3",
|
|
111
|
+
"indicative",
|
|
112
|
+
"adonis",
|
|
113
|
+
"adonisjs",
|
|
114
|
+
"adonis4",
|
|
115
|
+
"adonisjs4"
|
|
116
|
+
]
|
|
117
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* isPIS()
|
|
3
|
+
* Calcula se um código de PIS/PASEP/NIS/NIT no formato 268.27649.96-0 é válido. Não
|
|
4
|
+
* valida o formato, portanto, 26827649960 é equivalente a 268.27649.96-0 para efeitos
|
|
5
|
+
* desta validação.
|
|
6
|
+
*
|
|
7
|
+
* @doc
|
|
8
|
+
* - O número de PIS deve possuir 11 caracteres
|
|
9
|
+
*
|
|
10
|
+
* - Os caracteres de 1 a 10 são a numeração documento
|
|
11
|
+
*
|
|
12
|
+
* - O caractere 11 é o dígito verificador.
|
|
13
|
+
*
|
|
14
|
+
* 1) Partes do número
|
|
15
|
+
* _______________________________________________
|
|
16
|
+
* | Número | D V |
|
|
17
|
+
* | 2 6 8 . 2 7 6 4 9 . 9 6 - 0 |
|
|
18
|
+
* |_________________________________________|_____|
|
|
19
|
+
*
|
|
20
|
+
* 2) Cálculo do DV.
|
|
21
|
+
*
|
|
22
|
+
* - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
|
|
23
|
+
*
|
|
24
|
+
* 2 6 8 2 7 6 4 9 9 6
|
|
25
|
+
* x x x x x x x x x x
|
|
26
|
+
* 3 2 9 8 7 6 5 4 3 2
|
|
27
|
+
* = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 234
|
|
28
|
+
*
|
|
29
|
+
* - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
|
|
30
|
+
* 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
|
|
31
|
+
* Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
|
|
32
|
+
* Caso retorne 1, o resto será 0
|
|
33
|
+
*
|
|
34
|
+
*
|
|
35
|
+
*
|
|
36
|
+
*
|
|
37
|
+
* Fonte: http://www.macoratti.net/alg_pis.htm
|
|
38
|
+
*
|
|
39
|
+
* @param {String} value Objeto postal no formato 268.27649.96-0
|
|
40
|
+
* @returns {Boolean}
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* dv()
|
|
44
|
+
* Calcula o dígito verificador
|
|
45
|
+
*
|
|
46
|
+
* @param {Number|String} value
|
|
47
|
+
* @returns {String}
|
|
48
|
+
*/
|
|
49
|
+
export declare const dv: (value: string | number) => string;
|
|
50
|
+
/**
|
|
51
|
+
* Aplica uma máscara ao número informado
|
|
52
|
+
*
|
|
53
|
+
* @param {String} value Número de Processo
|
|
54
|
+
* @returns {String} Valor com a máscara
|
|
55
|
+
*/
|
|
56
|
+
export declare const mask: (value: string | number) => string;
|
|
57
|
+
/**
|
|
58
|
+
* fake()
|
|
59
|
+
* Gera um número válido
|
|
60
|
+
*
|
|
61
|
+
* @returns {String}
|
|
62
|
+
*/
|
|
63
|
+
export declare const fake: (withMask?: boolean) => string;
|
|
64
|
+
/**
|
|
65
|
+
* validateOrFail()
|
|
66
|
+
* Valida se um número é válido e
|
|
67
|
+
* retorna uma exceção se não estiver
|
|
68
|
+
*
|
|
69
|
+
* @param {String|Number} value Número a ser validado
|
|
70
|
+
* @returns {Boolean}
|
|
71
|
+
*/
|
|
72
|
+
export declare const validateOrFail: (value: string | number) => boolean;
|
|
73
|
+
/**
|
|
74
|
+
* validate()
|
|
75
|
+
* Valida se um número é válido
|
|
76
|
+
*
|
|
77
|
+
* @param {String|Number} value Número a ser validado
|
|
78
|
+
* @returns {Boolean}
|
|
79
|
+
*/
|
|
80
|
+
export declare const validate: (value: string | number) => boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Retorna String sem máscara
|
|
83
|
+
*
|
|
84
|
+
* @param {String|Number} value Valor a remover máscara
|
|
85
|
+
* @returns {String}
|
|
86
|
+
*/
|
|
87
|
+
export declare const normalize: (value: string | number) => string;
|
|
88
|
+
export default validate;
|
package/dist/pisPasep.js
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* isPIS()
|
|
4
|
+
* Calcula se um código de PIS/PASEP/NIS/NIT no formato 268.27649.96-0 é válido. Não
|
|
5
|
+
* valida o formato, portanto, 26827649960 é equivalente a 268.27649.96-0 para efeitos
|
|
6
|
+
* desta validação.
|
|
7
|
+
*
|
|
8
|
+
* @doc
|
|
9
|
+
* - O número de PIS deve possuir 11 caracteres
|
|
10
|
+
*
|
|
11
|
+
* - Os caracteres de 1 a 10 são a numeração documento
|
|
12
|
+
*
|
|
13
|
+
* - O caractere 11 é o dígito verificador.
|
|
14
|
+
*
|
|
15
|
+
* 1) Partes do número
|
|
16
|
+
* _______________________________________________
|
|
17
|
+
* | Número | D V |
|
|
18
|
+
* | 2 6 8 . 2 7 6 4 9 . 9 6 - 0 |
|
|
19
|
+
* |_________________________________________|_____|
|
|
20
|
+
*
|
|
21
|
+
* 2) Cálculo do DV.
|
|
22
|
+
*
|
|
23
|
+
* - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
|
|
24
|
+
*
|
|
25
|
+
* 2 6 8 2 7 6 4 9 9 6
|
|
26
|
+
* x x x x x x x x x x
|
|
27
|
+
* 3 2 9 8 7 6 5 4 3 2
|
|
28
|
+
* = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 234
|
|
29
|
+
*
|
|
30
|
+
* - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
|
|
31
|
+
* 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
|
|
32
|
+
* Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
|
|
33
|
+
* Caso retorne 1, o resto será 0
|
|
34
|
+
*
|
|
35
|
+
*
|
|
36
|
+
*
|
|
37
|
+
*
|
|
38
|
+
* Fonte: http://www.macoratti.net/alg_pis.htm
|
|
39
|
+
*
|
|
40
|
+
* @param {String} value Objeto postal no formato 268.27649.96-0
|
|
41
|
+
* @returns {Boolean}
|
|
42
|
+
*/
|
|
43
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
44
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
45
|
+
};
|
|
46
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
+
exports.normalize = exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
|
|
48
|
+
const ValidationBRError_1 = __importDefault(require("./_exceptions/ValidationBRError"));
|
|
49
|
+
const utils_1 = require("./utils");
|
|
50
|
+
/**
|
|
51
|
+
* dv()
|
|
52
|
+
* Calcula o dígito verificador
|
|
53
|
+
*
|
|
54
|
+
* @param {Number|String} value
|
|
55
|
+
* @returns {String}
|
|
56
|
+
*/
|
|
57
|
+
const dv = (value) => {
|
|
58
|
+
const pis = (0, utils_1.clearValue)(value, 10, {
|
|
59
|
+
trimAtRight: true,
|
|
60
|
+
rejectEmpty: true,
|
|
61
|
+
});
|
|
62
|
+
const sum = (0, utils_1.sumElementsByMultipliers)(pis, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
|
|
63
|
+
return String((0, utils_1.sumToDV)(sum));
|
|
64
|
+
};
|
|
65
|
+
exports.dv = dv;
|
|
66
|
+
/**
|
|
67
|
+
* Aplica uma máscara ao número informado
|
|
68
|
+
*
|
|
69
|
+
* @param {String} value Número de Processo
|
|
70
|
+
* @returns {String} Valor com a máscara
|
|
71
|
+
*/
|
|
72
|
+
const mask = (value) => (0, utils_1.applyMask)(value, '000.00000.00-0');
|
|
73
|
+
exports.mask = mask;
|
|
74
|
+
/**
|
|
75
|
+
* fake()
|
|
76
|
+
* Gera um número válido
|
|
77
|
+
*
|
|
78
|
+
* @returns {String}
|
|
79
|
+
*/
|
|
80
|
+
const fake = (withMask = false) => {
|
|
81
|
+
const num = (0, utils_1.fakeNumber)(10, true);
|
|
82
|
+
const pis = `${num}${(0, exports.dv)(num)}`;
|
|
83
|
+
if (withMask)
|
|
84
|
+
return (0, exports.mask)(pis);
|
|
85
|
+
return pis;
|
|
86
|
+
};
|
|
87
|
+
exports.fake = fake;
|
|
88
|
+
/**
|
|
89
|
+
* validateOrFail()
|
|
90
|
+
* Valida se um número é válido e
|
|
91
|
+
* retorna uma exceção se não estiver
|
|
92
|
+
*
|
|
93
|
+
* @param {String|Number} value Número a ser validado
|
|
94
|
+
* @returns {Boolean}
|
|
95
|
+
*/
|
|
96
|
+
const validateOrFail = (value) => {
|
|
97
|
+
const pis = (0, exports.normalize)(value);
|
|
98
|
+
if ((0, exports.dv)(pis) !== pis.substring(10, 11)) {
|
|
99
|
+
throw ValidationBRError_1.default.INVALID_DV;
|
|
100
|
+
}
|
|
101
|
+
return true;
|
|
102
|
+
};
|
|
103
|
+
exports.validateOrFail = validateOrFail;
|
|
104
|
+
/**
|
|
105
|
+
* validate()
|
|
106
|
+
* Valida se um número é válido
|
|
107
|
+
*
|
|
108
|
+
* @param {String|Number} value Número a ser validado
|
|
109
|
+
* @returns {Boolean}
|
|
110
|
+
*/
|
|
111
|
+
const validate = (value) => {
|
|
112
|
+
try {
|
|
113
|
+
return (0, exports.validateOrFail)(value);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
exports.validate = validate;
|
|
120
|
+
/**
|
|
121
|
+
* Retorna String sem máscara
|
|
122
|
+
*
|
|
123
|
+
* @param {String|Number} value Valor a remover máscara
|
|
124
|
+
* @returns {String}
|
|
125
|
+
*/
|
|
126
|
+
const normalize = (value) => {
|
|
127
|
+
return (0, utils_1.clearValue)(value, 11, {
|
|
128
|
+
fillZerosAtLeft: true,
|
|
129
|
+
rejectEmpty: true,
|
|
130
|
+
rejectHigherLength: true,
|
|
131
|
+
rejectEqualSequence: true,
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
exports.normalize = normalize;
|
|
135
|
+
exports.default = exports.validate;
|
|
136
|
+
//# sourceMappingURL=pisPasep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pisPasep.js","sourceRoot":"","sources":["../../src/pisPasep.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;;;;;;AAEH,wFAAgE;AAChE,mCAA+F;AAE/F;;;;;;GAMG;AACI,MAAM,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,KAAK,EAAE,EAAE,EAAE;QAChC,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAA,gCAAwB,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1E,OAAO,MAAM,CAAC,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC;AATW,QAAA,EAAE,MASb;AAEF;;;;;GAKG;AACI,MAAM,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,IAAA,iBAAS,EAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAA9E,QAAA,IAAI,QAA0E;AAE3F;;;;;GAKG;AACI,MAAM,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,IAAA,UAAE,EAAC,GAAG,CAAC,EAAE,CAAC;IAE/B,IAAI,QAAQ;QAAE,OAAO,IAAA,YAAI,EAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAPW,QAAA,IAAI,QAOf;AAEF;;;;;;;GAOG;AACI,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,GAAG,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,IAAA,UAAE,EAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QACtC,MAAM,2BAAiB,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB;AAEF;;;;;;GAMG;AACI,MAAM,QAAQ,GAAG,CAAC,KAAsB,EAAW,EAAE;IAC1D,IAAI,CAAC;QACH,OAAO,IAAA,sBAAc,EAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AANW,QAAA,QAAQ,YAMnB;AAEF;;;;;GAKG;AACI,MAAM,SAAS,GAAG,CAAC,KAAsB,EAAU,EAAE;IAC1D,OAAO,IAAA,kBAAU,EAAC,KAAK,EAAE,EAAE,EAAE;QAC3B,eAAe,EAAE,IAAI;QACrB,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,IAAI;QACxB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC;AAPW,QAAA,SAAS,aAOpB;AAEF,kBAAe,gBAAQ,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* isPostalCode()
|
|
3
|
+
* Calcula se um código de rastreamento postal no formato JT194690698BR é válido.
|
|
4
|
+
*
|
|
5
|
+
* @doc
|
|
6
|
+
* - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.
|
|
7
|
+
*
|
|
8
|
+
* - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.
|
|
9
|
+
*
|
|
10
|
+
* - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.
|
|
11
|
+
*
|
|
12
|
+
* - O caractere 11 é o dígito verificador.
|
|
13
|
+
*
|
|
14
|
+
* - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.
|
|
15
|
+
*
|
|
16
|
+
* 1) Partes do número
|
|
17
|
+
* ______ ___________________________ ______ _______
|
|
18
|
+
* | Tipo | Número | DV | País |
|
|
19
|
+
* | J T 1 9 4 6 9 0 6 9 8 B R |
|
|
20
|
+
* |______|___________________________|______|_______|
|
|
21
|
+
*
|
|
22
|
+
* 2) Cálculo do DV.
|
|
23
|
+
*
|
|
24
|
+
* - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7
|
|
25
|
+
*
|
|
26
|
+
* 1 9 4 6 9 0 6 9
|
|
27
|
+
* x x x x x x x x
|
|
28
|
+
* 8 6 4 2 3 5 9 7
|
|
29
|
+
* = 8 +54 +16 +12 +18 +0 +54 +63 = 234
|
|
30
|
+
*
|
|
31
|
+
* - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
|
|
32
|
+
* 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
|
|
33
|
+
*
|
|
34
|
+
* Especificidades:
|
|
35
|
+
* - Caso o cálculo de DV1 retorne 0, o resultado será 5.
|
|
36
|
+
* - Caso retorne 1, o resto será 0
|
|
37
|
+
*
|
|
38
|
+
*
|
|
39
|
+
*
|
|
40
|
+
*
|
|
41
|
+
* Fonte:
|
|
42
|
+
*
|
|
43
|
+
* @param {String} value Objeto postal no formato JT194690698BR
|
|
44
|
+
* @returns {Boolean}
|
|
45
|
+
*/
|
|
46
|
+
/**
|
|
47
|
+
* dv()
|
|
48
|
+
* Calcula o dígito verificador
|
|
49
|
+
*
|
|
50
|
+
* @param {Number|String} value
|
|
51
|
+
* @returns {String}
|
|
52
|
+
*/
|
|
53
|
+
export declare const dv: (value: string | number) => string;
|
|
54
|
+
/**
|
|
55
|
+
* fake()
|
|
56
|
+
* Gera um número válido
|
|
57
|
+
*
|
|
58
|
+
* @returns {String}
|
|
59
|
+
*/
|
|
60
|
+
export declare const fake: () => string;
|
|
61
|
+
/**
|
|
62
|
+
* validateOrFail()
|
|
63
|
+
* Valida se um número é válido e
|
|
64
|
+
* retorna uma exceção se não estiver
|
|
65
|
+
*
|
|
66
|
+
* @param {String} value Número a ser validado
|
|
67
|
+
* @returns {Boolean}
|
|
68
|
+
*/
|
|
69
|
+
export declare const validateOrFail: (value: string) => boolean;
|
|
70
|
+
/**
|
|
71
|
+
* validate()
|
|
72
|
+
* Valida se um número é válido
|
|
73
|
+
*
|
|
74
|
+
* @param {String} value Número a ser validado
|
|
75
|
+
* @returns {Boolean}
|
|
76
|
+
*/
|
|
77
|
+
export declare const validate: (value: string) => boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Aplica uma máscara ao número informado
|
|
80
|
+
*
|
|
81
|
+
* @param {String} value Número de Processo
|
|
82
|
+
* @returns {String} Valor com a máscara
|
|
83
|
+
*/
|
|
84
|
+
export declare const normalize: (value: string | number) => string;
|
|
85
|
+
/**
|
|
86
|
+
* Alias para normalize(). PostalCode não possui máscara.
|
|
87
|
+
*
|
|
88
|
+
* @param {String} value Número de Processo
|
|
89
|
+
* @returns {String} Valor com a máscara
|
|
90
|
+
*/
|
|
91
|
+
export declare const mask: (value: string | number) => string;
|
|
92
|
+
export default validate;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* isPostalCode()
|
|
4
|
+
* Calcula se um código de rastreamento postal no formato JT194690698BR é válido.
|
|
5
|
+
*
|
|
6
|
+
* @doc
|
|
7
|
+
* - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.
|
|
8
|
+
*
|
|
9
|
+
* - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.
|
|
10
|
+
*
|
|
11
|
+
* - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.
|
|
12
|
+
*
|
|
13
|
+
* - O caractere 11 é o dígito verificador.
|
|
14
|
+
*
|
|
15
|
+
* - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.
|
|
16
|
+
*
|
|
17
|
+
* 1) Partes do número
|
|
18
|
+
* ______ ___________________________ ______ _______
|
|
19
|
+
* | Tipo | Número | DV | País |
|
|
20
|
+
* | J T 1 9 4 6 9 0 6 9 8 B R |
|
|
21
|
+
* |______|___________________________|______|_______|
|
|
22
|
+
*
|
|
23
|
+
* 2) Cálculo do DV.
|
|
24
|
+
*
|
|
25
|
+
* - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7
|
|
26
|
+
*
|
|
27
|
+
* 1 9 4 6 9 0 6 9
|
|
28
|
+
* x x x x x x x x
|
|
29
|
+
* 8 6 4 2 3 5 9 7
|
|
30
|
+
* = 8 +54 +16 +12 +18 +0 +54 +63 = 234
|
|
31
|
+
*
|
|
32
|
+
* - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
|
|
33
|
+
* 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
|
|
34
|
+
*
|
|
35
|
+
* Especificidades:
|
|
36
|
+
* - Caso o cálculo de DV1 retorne 0, o resultado será 5.
|
|
37
|
+
* - Caso retorne 1, o resto será 0
|
|
38
|
+
*
|
|
39
|
+
*
|
|
40
|
+
*
|
|
41
|
+
*
|
|
42
|
+
* Fonte:
|
|
43
|
+
*
|
|
44
|
+
* @param {String} value Objeto postal no formato JT194690698BR
|
|
45
|
+
* @returns {Boolean}
|
|
46
|
+
*/
|
|
47
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
48
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
49
|
+
};
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.mask = exports.normalize = exports.validate = exports.validateOrFail = exports.fake = exports.dv = void 0;
|
|
52
|
+
const ValidationBRError_1 = __importDefault(require("./_exceptions/ValidationBRError"));
|
|
53
|
+
const utils_1 = require("./utils");
|
|
54
|
+
/**
|
|
55
|
+
* dv()
|
|
56
|
+
* Calcula o dígito verificador
|
|
57
|
+
*
|
|
58
|
+
* @param {Number|String} value
|
|
59
|
+
* @returns {String}
|
|
60
|
+
*/
|
|
61
|
+
const dv = (value) => {
|
|
62
|
+
if (!value)
|
|
63
|
+
throw ValidationBRError_1.default.EMPTY_VALUE;
|
|
64
|
+
const postalCode = String(value)
|
|
65
|
+
.replace(/[^0-9]+/gi, '')
|
|
66
|
+
.padStart(8, '0')
|
|
67
|
+
.substring(0, 8);
|
|
68
|
+
const sum = (0, utils_1.sumElementsByMultipliers)(postalCode, [8, 6, 4, 2, 3, 5, 9, 7]);
|
|
69
|
+
const rest = sum % 11;
|
|
70
|
+
// const specificities = { 0: { dv: 5 }, 1: { dv: 0 } }
|
|
71
|
+
const specificities = [
|
|
72
|
+
{ rest: 0, dv: 5 },
|
|
73
|
+
{ rest: 1, dv: 0 },
|
|
74
|
+
];
|
|
75
|
+
const specifity = specificities.find((item) => item.rest === rest);
|
|
76
|
+
const DV = specifity ? specifity.dv : 11 - rest;
|
|
77
|
+
return String(DV);
|
|
78
|
+
};
|
|
79
|
+
exports.dv = dv;
|
|
80
|
+
/**
|
|
81
|
+
* fake()
|
|
82
|
+
* Gera um número válido
|
|
83
|
+
*
|
|
84
|
+
* @returns {String}
|
|
85
|
+
*/
|
|
86
|
+
const fake = () => {
|
|
87
|
+
const num = (0, utils_1.fakeNumber)(8, true);
|
|
88
|
+
const postalCode = `${(0, utils_1.randomLetter)()}${(0, utils_1.randomLetter)()}${num}${(0, exports.dv)(num)}BR`;
|
|
89
|
+
return postalCode;
|
|
90
|
+
};
|
|
91
|
+
exports.fake = fake;
|
|
92
|
+
/**
|
|
93
|
+
* validateOrFail()
|
|
94
|
+
* Valida se um número é válido e
|
|
95
|
+
* retorna uma exceção se não estiver
|
|
96
|
+
*
|
|
97
|
+
* @param {String} value Número a ser validado
|
|
98
|
+
* @returns {Boolean}
|
|
99
|
+
*/
|
|
100
|
+
const validateOrFail = (value) => {
|
|
101
|
+
if (!/^[a-z]{2}([\d]{9})[a-z]{2}$/gi.test(String(value))) {
|
|
102
|
+
throw new Error('O número não está no formato "XX000000000XX"');
|
|
103
|
+
}
|
|
104
|
+
const postalCode = (0, utils_1.clearValue)(value.substring(2, 11), 9);
|
|
105
|
+
if ((0, exports.dv)(value.substring(2, 11)) !== postalCode.substring(8, 9)) {
|
|
106
|
+
throw ValidationBRError_1.default.INVALID_DV;
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
};
|
|
110
|
+
exports.validateOrFail = validateOrFail;
|
|
111
|
+
/**
|
|
112
|
+
* validate()
|
|
113
|
+
* Valida se um número é válido
|
|
114
|
+
*
|
|
115
|
+
* @param {String} value Número a ser validado
|
|
116
|
+
* @returns {Boolean}
|
|
117
|
+
*/
|
|
118
|
+
const validate = (value) => {
|
|
119
|
+
try {
|
|
120
|
+
return (0, exports.validateOrFail)(value);
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
exports.validate = validate;
|
|
127
|
+
/**
|
|
128
|
+
* Aplica uma máscara ao número informado
|
|
129
|
+
*
|
|
130
|
+
* @param {String} value Número de Processo
|
|
131
|
+
* @returns {String} Valor com a máscara
|
|
132
|
+
*/
|
|
133
|
+
const normalize = (value) => String(value).toLocaleUpperCase();
|
|
134
|
+
exports.normalize = normalize;
|
|
135
|
+
/**
|
|
136
|
+
* Alias para normalize(). PostalCode não possui máscara.
|
|
137
|
+
*
|
|
138
|
+
* @param {String} value Número de Processo
|
|
139
|
+
* @returns {String} Valor com a máscara
|
|
140
|
+
*/
|
|
141
|
+
const mask = (value) => (0, exports.normalize)(value);
|
|
142
|
+
exports.mask = mask;
|
|
143
|
+
exports.default = exports.validate;
|
|
144
|
+
//# sourceMappingURL=postalCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postalCode.js","sourceRoot":"","sources":["../../src/postalCode.ts"],"names":[],"mappings":"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"}
|