validation-br 0.21.3 → 1.0.0-b
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/.eslintignore +2 -0
- package/.eslintrc.js +76 -11
- package/.github/workflows/test.yml +39 -0
- package/.prettierignore +1 -0
- package/.prettierrc.js +7 -0
- package/dist/cnh.js +123 -0
- package/dist/cnh.js.map +1 -0
- package/dist/cnh.test.js +117 -0
- package/dist/cnh.test.js.map +1 -0
- package/dist/cnpj.js +112 -0
- package/dist/cnpj.js.map +1 -0
- package/dist/cnpj.test.js +141 -0
- package/dist/cnpj.test.js.map +1 -0
- package/dist/cpf.js +134 -0
- package/dist/cpf.js.map +1 -0
- package/dist/cpf.test.js +130 -0
- package/dist/cpf.test.js.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.js +33 -0
- package/dist/index.test.js.map +1 -0
- package/dist/judicialProcess.js +153 -0
- package/dist/judicialProcess.js.map +1 -0
- package/dist/judicialProcess.test.js +123 -0
- package/dist/judicialProcess.test.js.map +1 -0
- package/dist/pisPasep.js +113 -0
- package/dist/pisPasep.js.map +1 -0
- package/dist/pisPasep.test.js +129 -0
- package/dist/pisPasep.test.js.map +1 -0
- package/dist/postalCode.js +150 -0
- package/dist/postalCode.js.map +1 -0
- package/dist/postalCode.test.js +135 -0
- package/dist/postalCode.test.js.map +1 -0
- package/dist/renavam.js +108 -0
- package/dist/renavam.js.map +1 -0
- package/dist/renavam.test.js +113 -0
- package/dist/renavam.test.js.map +1 -0
- package/dist/tituloEleitor.js +130 -0
- package/dist/tituloEleitor.js.map +1 -0
- package/dist/tituloEleitor.test.js +132 -0
- package/dist/tituloEleitor.test.js.map +1 -0
- package/dist/utils-applyMask.test.js +17 -0
- package/dist/utils-applyMask.test.js.map +1 -0
- package/dist/utils-clearValue.test.js +50 -0
- package/dist/utils-clearValue.test.js.map +1 -0
- package/dist/utils-fakeNumber.test.js +17 -0
- package/dist/utils-fakeNumber.test.js.map +1 -0
- package/dist/utils-insertAtPosition.test.js +16 -0
- package/dist/utils-insertAtPosition.test.js.map +1 -0
- package/dist/utils-invalidListGenerator.test.js +23 -0
- package/dist/utils-invalidListGenerator.test.js.map +1 -0
- package/dist/utils-removeFromPosition.test.js +16 -0
- package/dist/utils-removeFromPosition.test.js.map +1 -0
- package/dist/utils-sumElementsByMultipliers.test.js +32 -0
- package/dist/utils-sumElementsByMultipliers.test.js.map +1 -0
- package/dist/utils-sumToDV.test.js +16 -0
- package/dist/utils-sumToDV.test.js.map +1 -0
- package/dist/utils.js +167 -0
- package/dist/utils.js.map +1 -0
- package/jest.config.js +14 -0
- package/package.json +41 -89
- package/readme.md +108 -106
- package/src/cnh.test.ts +114 -0
- package/{dist/documents/cnh.js → src/cnh.ts} +45 -59
- package/src/cnpj.test.ts +136 -0
- package/{dist/documents/cnpj.js → src/cnpj.ts} +41 -52
- package/src/cpf.test.ts +125 -0
- package/{dist/documents/cpf.js → src/cpf.ts} +44 -55
- package/src/index.test.ts +35 -0
- package/src/index.ts +19 -0
- package/src/judicialProcess.test.ts +118 -0
- package/src/judicialProcess.ts +167 -0
- package/src/pisPasep.test.ts +124 -0
- package/{dist/documents/pis-pasep.js → src/pisPasep.ts} +40 -52
- package/src/postalCode.test.ts +132 -0
- package/{dist/documents/postal-code.js → src/postalCode.ts} +77 -64
- package/src/renavam.test.ts +110 -0
- package/src/renavam.ts +122 -0
- package/src/tituloEleitor.test.ts +129 -0
- package/{dist/documents/titulo-eleitor.js → src/tituloEleitor.ts} +47 -56
- package/src/utils-applyMask.test.ts +17 -0
- package/src/utils-clearValue.test.ts +55 -0
- package/src/utils-fakeNumber.test.ts +19 -0
- package/src/utils-insertAtPosition.test.ts +15 -0
- package/src/utils-invalidListGenerator.test.ts +27 -0
- package/src/utils-removeFromPosition.test.ts +15 -0
- package/src/utils-sumElementsByMultipliers.test.ts +34 -0
- package/src/utils-sumToDV.test.ts +16 -0
- package/{dist/lib/utils.js → src/utils.ts} +57 -61
- package/tsconfig.json +23 -0
- package/.babelrc +0 -15
- package/.prettierrc +0 -9
- package/LICENSE +0 -21
- package/dist/documents/cnh.js.map +0 -1
- package/dist/documents/cnpj.js.map +0 -1
- package/dist/documents/cpf.js.map +0 -1
- package/dist/documents/index.js +0 -29
- package/dist/documents/index.js.map +0 -1
- package/dist/documents/judicial-process.js +0 -177
- package/dist/documents/judicial-process.js.map +0 -1
- package/dist/documents/pis-pasep.js.map +0 -1
- package/dist/documents/postal-code.js.map +0 -1
- package/dist/documents/renavam.js +0 -97
- package/dist/documents/renavam.js.map +0 -1
- package/dist/documents/titulo-eleitor.js.map +0 -1
- package/dist/lib/utils.js.map +0 -1
- package/docs.md +0 -0
- package/index.js +0 -3
package/src/cnpj.test.ts
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// import { isCNPJ } from './cnpj'
|
|
2
|
+
import isCNPJ, { dv, fake, mask, validate, validateOrFail } from './cnpj'
|
|
3
|
+
|
|
4
|
+
describe('CNPJ', () => {
|
|
5
|
+
test('isCNPJ() - Números válidos', () => {
|
|
6
|
+
const list = [
|
|
7
|
+
// Com máscara
|
|
8
|
+
'11.222.333/0001-81',
|
|
9
|
+
'73.797.980/0001-79',
|
|
10
|
+
'06.946.762/0001-61',
|
|
11
|
+
'96.051.576/0001-57',
|
|
12
|
+
'55.585.709/0001-98',
|
|
13
|
+
// inteiro
|
|
14
|
+
99360938000180,
|
|
15
|
+
23693443000100,
|
|
16
|
+
// string
|
|
17
|
+
'32432147000147',
|
|
18
|
+
'91951438000100',
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
list.forEach((cnpj) => {
|
|
22
|
+
expect(isCNPJ(cnpj)).toBeTruthy()
|
|
23
|
+
})
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
test('validate() - Números válidos', () => {
|
|
27
|
+
const list = [
|
|
28
|
+
// Com máscara
|
|
29
|
+
'11.222.333/0001-81',
|
|
30
|
+
'73.797.980/0001-79',
|
|
31
|
+
'06.946.762/0001-61',
|
|
32
|
+
'96.051.576/0001-57',
|
|
33
|
+
'55.585.709/0001-98',
|
|
34
|
+
// inteiro
|
|
35
|
+
99360938000180,
|
|
36
|
+
23693443000100,
|
|
37
|
+
// string
|
|
38
|
+
'32432147000147',
|
|
39
|
+
'91951438000100',
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
list.forEach((cnpj) => {
|
|
43
|
+
expect(validate(cnpj)).toBeTruthy()
|
|
44
|
+
})
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
test('validate() - Números inválidos', () => {
|
|
48
|
+
const list = [
|
|
49
|
+
'53.797.980/0001-79',
|
|
50
|
+
'36.946.762/0001-61',
|
|
51
|
+
'26.051.576/0001-57',
|
|
52
|
+
'85.585.709/0001-98',
|
|
53
|
+
'39360938000180',
|
|
54
|
+
'93693443000100',
|
|
55
|
+
'12432147000147',
|
|
56
|
+
'61951438000100',
|
|
57
|
+
'11111111111111',
|
|
58
|
+
]
|
|
59
|
+
|
|
60
|
+
list.forEach((cnpj) => {
|
|
61
|
+
expect(validate(cnpj)).toBeFalsy()
|
|
62
|
+
})
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
test('validateOrFail() - Números inválidos', () => {
|
|
66
|
+
const list = [
|
|
67
|
+
'53.797.980/0001-79',
|
|
68
|
+
'36.946.762/0001-61',
|
|
69
|
+
'26.051.576/0001-57',
|
|
70
|
+
'85.585.709/0001-98',
|
|
71
|
+
'39360938000180',
|
|
72
|
+
'93693443000100',
|
|
73
|
+
'12432147000147',
|
|
74
|
+
'61951438000100',
|
|
75
|
+
'11111111111111',
|
|
76
|
+
]
|
|
77
|
+
|
|
78
|
+
list.forEach((cnpj) => {
|
|
79
|
+
expect(() => validateOrFail(cnpj)).toThrow()
|
|
80
|
+
})
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
test('Parâmetro não informado', () => {
|
|
84
|
+
expect(isCNPJ('')).toBeFalsy()
|
|
85
|
+
expect(validate('')).toBeFalsy()
|
|
86
|
+
expect(() => validateOrFail('')).toThrow()
|
|
87
|
+
expect(() => dv('')).toThrow()
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
test('fake() - Gera fakes sem máscara', () => {
|
|
91
|
+
for (let i = 0; i < 5; i += 1) {
|
|
92
|
+
const cnpj = fake()
|
|
93
|
+
expect(validate(cnpj)).toBeTruthy()
|
|
94
|
+
expect(cnpj).toHaveLength(14)
|
|
95
|
+
}
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
test('fake() - Gera fakes com máscara', () => {
|
|
99
|
+
for (let i = 0; i < 5; i += 1) {
|
|
100
|
+
const cnpj = fake(true)
|
|
101
|
+
expect(validate(cnpj)).toBeTruthy()
|
|
102
|
+
expect(cnpj).toHaveLength(18)
|
|
103
|
+
}
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
test('dv() - Verificando se o DV gerado está correto', () => {
|
|
107
|
+
const list = [
|
|
108
|
+
{ num: '112223330001', expected: '81' },
|
|
109
|
+
{ num: 993609380001, expected: '80' },
|
|
110
|
+
{ num: '324321470001', expected: '47' },
|
|
111
|
+
]
|
|
112
|
+
|
|
113
|
+
list.forEach((item) => {
|
|
114
|
+
const calcDv = dv(item.num)
|
|
115
|
+
|
|
116
|
+
expect(calcDv).toBe(item.expected)
|
|
117
|
+
expect(typeof calcDv).toBe('string')
|
|
118
|
+
})
|
|
119
|
+
})
|
|
120
|
+
|
|
121
|
+
test('mask() - Testando se a máscara foi gerada corretamente', () => {
|
|
122
|
+
const list = [
|
|
123
|
+
{ value: '11222333000181', expected: '11.222.333/0001-81' },
|
|
124
|
+
{ value: 99360938000180, expected: '99.360.938/0001-80' },
|
|
125
|
+
{ value: '32432147000147', expected: '32.432.147/0001-47' },
|
|
126
|
+
{ value: 432147000147, expected: '00.432.147/0001-47' },
|
|
127
|
+
]
|
|
128
|
+
|
|
129
|
+
list.forEach((item) => {
|
|
130
|
+
const masked = mask(item.value)
|
|
131
|
+
|
|
132
|
+
expect(masked).toBe(item.expected)
|
|
133
|
+
expect(masked).toHaveLength(18)
|
|
134
|
+
})
|
|
135
|
+
})
|
|
136
|
+
})
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* isCNPJ()
|
|
5
3
|
* Calcula se um CNPJ é válido
|
|
@@ -51,89 +49,80 @@
|
|
|
51
49
|
* @param {String} value Título eleitoral
|
|
52
50
|
* @returns {Boolean}
|
|
53
51
|
*/
|
|
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;
|
|
61
52
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
53
|
+
import {
|
|
54
|
+
invalidListGenerator,
|
|
55
|
+
sumElementsByMultipliers,
|
|
56
|
+
sumToDV,
|
|
57
|
+
clearValue,
|
|
58
|
+
fakeNumber,
|
|
59
|
+
applyMask,
|
|
60
|
+
} from './utils'
|
|
61
|
+
|
|
62
|
+
export const dv = (value: string | number): string => {
|
|
63
|
+
const cnpj = clearValue(value, 12)
|
|
66
64
|
|
|
65
|
+
const blackList = invalidListGenerator(12)
|
|
67
66
|
if (blackList.includes(cnpj)) {
|
|
68
|
-
throw new Error('CNPJ é obrigatório')
|
|
67
|
+
throw new Error('CNPJ é obrigatório')
|
|
69
68
|
}
|
|
70
69
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
70
|
+
const sum1 = sumElementsByMultipliers(cnpj.substring(0, 12), '543298765432')
|
|
71
|
+
const dv1 = sumToDV(sum1)
|
|
72
|
+
|
|
73
|
+
const sum2 = sumElementsByMultipliers(cnpj.substring(0, 12) + dv1, '6543298765432')
|
|
74
|
+
const dv2 = sumToDV(sum2)
|
|
75
|
+
|
|
76
|
+
return `${dv1}${dv2}`
|
|
77
|
+
}
|
|
78
|
+
|
|
77
79
|
/**
|
|
78
80
|
* Aplica uma máscara ao número informado
|
|
79
81
|
*
|
|
80
82
|
* @param {String} value Número de Processo
|
|
81
83
|
* @returns {String} Valor com a máscara
|
|
82
84
|
*/
|
|
85
|
+
export const mask = (value: string | number): string => applyMask(value, '00.000.000/0000-00')
|
|
83
86
|
|
|
84
|
-
|
|
85
|
-
var mask = function mask(value) {
|
|
86
|
-
return applyMask(value, '00.000.000/0000-00');
|
|
87
|
-
};
|
|
88
87
|
/**
|
|
89
88
|
*
|
|
90
89
|
*
|
|
91
90
|
*/
|
|
91
|
+
export const fake = (withMask: boolean = false): string => {
|
|
92
|
+
const num = fakeNumber(12, true)
|
|
92
93
|
|
|
94
|
+
const cnpj = `${num}${dv(num)}`
|
|
95
|
+
|
|
96
|
+
if (withMask) return mask(cnpj)
|
|
97
|
+
return cnpj
|
|
98
|
+
}
|
|
93
99
|
|
|
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
100
|
/**
|
|
102
101
|
* validate()
|
|
103
102
|
* Valida se um número de processo está correto
|
|
104
103
|
*
|
|
105
104
|
*/
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
var validateOrFail = function validateOrFail(value) {
|
|
109
|
-
var cnpj = clearValue(value, 14);
|
|
105
|
+
export const validateOrFail = (value: string | number): boolean => {
|
|
106
|
+
const cnpj = clearValue(value, 14)
|
|
110
107
|
|
|
111
108
|
if (dv(cnpj) !== cnpj.substring(12, 14)) {
|
|
112
|
-
throw new Error('Dígito verificador inválido')
|
|
109
|
+
throw new Error('Dígito verificador inválido')
|
|
113
110
|
}
|
|
114
111
|
|
|
115
|
-
return true
|
|
116
|
-
}
|
|
112
|
+
return true
|
|
113
|
+
}
|
|
114
|
+
|
|
117
115
|
/**
|
|
118
116
|
* validate()
|
|
119
117
|
* Valida se um número de processo está correto
|
|
120
118
|
*
|
|
121
119
|
*/
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
var validate = function validate(value) {
|
|
120
|
+
export const validate = (value: string | number): boolean => {
|
|
125
121
|
try {
|
|
126
|
-
return validateOrFail(value)
|
|
122
|
+
return validateOrFail(value)
|
|
127
123
|
} catch (error) {
|
|
128
|
-
return false
|
|
124
|
+
return false
|
|
129
125
|
}
|
|
130
|
-
}
|
|
126
|
+
}
|
|
131
127
|
|
|
132
|
-
|
|
133
|
-
dv: dv,
|
|
134
|
-
fake: fake,
|
|
135
|
-
mask: mask,
|
|
136
|
-
validate: validate,
|
|
137
|
-
validateOrFail: validateOrFail
|
|
138
|
-
};
|
|
139
|
-
//# sourceMappingURL=cnpj.js.map
|
|
128
|
+
export default validate
|
package/src/cpf.test.ts
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import isCPF, { dv, fake, mask, validate, validateOrFail } from './cpf'
|
|
2
|
+
|
|
3
|
+
describe('CPF', () => {
|
|
4
|
+
test('isCPF() - Números válidos', () => {
|
|
5
|
+
const list = [
|
|
6
|
+
// masked
|
|
7
|
+
'133.782.710-00',
|
|
8
|
+
'400.448.260-79',
|
|
9
|
+
// integer
|
|
10
|
+
8796742020, // começa com zero
|
|
11
|
+
74172316085,
|
|
12
|
+
// string
|
|
13
|
+
'15886489070',
|
|
14
|
+
'90889477086',
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
list.forEach((cpf) => {
|
|
18
|
+
expect(isCPF(cpf)).toBeTruthy()
|
|
19
|
+
})
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
test('validate() - Números válidos', () => {
|
|
23
|
+
const list = [
|
|
24
|
+
// masked
|
|
25
|
+
'133.782.710-00',
|
|
26
|
+
'400.448.260-79',
|
|
27
|
+
// integer
|
|
28
|
+
8796742020, // começa com zero
|
|
29
|
+
74172316085,
|
|
30
|
+
// string
|
|
31
|
+
'15886489070',
|
|
32
|
+
'90889477086',
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
list.forEach((cpf) => {
|
|
36
|
+
expect(validate(cpf)).toBeTruthy()
|
|
37
|
+
})
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
test('validate() - Números inválidos', () => {
|
|
41
|
+
const list = [
|
|
42
|
+
'287.967.420-20',
|
|
43
|
+
'333.782.710-00',
|
|
44
|
+
'200.448.260-79',
|
|
45
|
+
'24172316085',
|
|
46
|
+
'25886489070',
|
|
47
|
+
'20889477086',
|
|
48
|
+
'11111111111',
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
list.forEach((cpf) => {
|
|
52
|
+
expect(validate(cpf)).toBeFalsy()
|
|
53
|
+
})
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
test('validateOrFail() - Números inválidos', () => {
|
|
57
|
+
const list = [
|
|
58
|
+
'287.967.420-20',
|
|
59
|
+
'333.782.710-00',
|
|
60
|
+
'200.448.260-79',
|
|
61
|
+
'24172316085',
|
|
62
|
+
'25886489070',
|
|
63
|
+
'20889477086',
|
|
64
|
+
'11111111111',
|
|
65
|
+
]
|
|
66
|
+
|
|
67
|
+
list.forEach((cpf) => {
|
|
68
|
+
expect(() => validateOrFail(cpf)).toThrow()
|
|
69
|
+
})
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
test('Parâmetro não informado', () => {
|
|
73
|
+
expect(isCPF('')).toBeFalsy()
|
|
74
|
+
expect(validate('')).toBeFalsy()
|
|
75
|
+
expect(() => validateOrFail('')).toThrow()
|
|
76
|
+
expect(() => dv('')).toThrow()
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
test('fake() - Gera fakes sem máscara', () => {
|
|
80
|
+
for (let i = 0; i < 5; i += 1) {
|
|
81
|
+
const cpf = fake()
|
|
82
|
+
expect(validate(cpf)).toBeTruthy()
|
|
83
|
+
expect(cpf).toHaveLength(11)
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
test('fake() - Gera fakes com máscara', () => {
|
|
88
|
+
for (let i = 0; i < 5; i += 1) {
|
|
89
|
+
const cpf = fake(true)
|
|
90
|
+
expect(validate(cpf)).toBeTruthy()
|
|
91
|
+
expect(cpf).toHaveLength(14)
|
|
92
|
+
}
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
test('dv() - Verificando se o DV gerado está correto', () => {
|
|
96
|
+
const list = [
|
|
97
|
+
{ num: '741723160', expected: '85' },
|
|
98
|
+
{ num: 158864890, expected: '70' },
|
|
99
|
+
{ num: '908894770', expected: '86' },
|
|
100
|
+
]
|
|
101
|
+
|
|
102
|
+
list.forEach((item) => {
|
|
103
|
+
const calcDv = dv(item.num)
|
|
104
|
+
|
|
105
|
+
expect(calcDv).toBe(item.expected)
|
|
106
|
+
expect(typeof calcDv).toBe('string')
|
|
107
|
+
})
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
test('mask() - Testando se a máscara foi gerada corretamente', () => {
|
|
111
|
+
const list = [
|
|
112
|
+
{ num: '74172316085', expected: '741.723.160-85' },
|
|
113
|
+
{ num: 15886489070, expected: '158.864.890-70' },
|
|
114
|
+
{ num: '90889477086', expected: '908.894.770-86' },
|
|
115
|
+
{ num: 889477086, expected: '008.894.770-86' },
|
|
116
|
+
]
|
|
117
|
+
|
|
118
|
+
list.forEach((item) => {
|
|
119
|
+
const masked = mask(item.num)
|
|
120
|
+
|
|
121
|
+
expect(masked).toBe(item.expected)
|
|
122
|
+
expect(masked).toHaveLength(14)
|
|
123
|
+
})
|
|
124
|
+
})
|
|
125
|
+
})
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* isCPF()
|
|
5
3
|
* Calcula se um CPF é válido
|
|
@@ -59,13 +57,16 @@
|
|
|
59
57
|
* @param {String} value Título eleitoral
|
|
60
58
|
* @returns {Boolean}
|
|
61
59
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
|
|
61
|
+
import {
|
|
62
|
+
invalidListGenerator,
|
|
63
|
+
sumElementsByMultipliers,
|
|
64
|
+
sumToDV,
|
|
65
|
+
clearValue,
|
|
66
|
+
fakeNumber,
|
|
67
|
+
applyMask,
|
|
68
|
+
} from './utils'
|
|
69
|
+
|
|
69
70
|
/**
|
|
70
71
|
* dv()
|
|
71
72
|
* Calcula o dígito verificador de um CPF
|
|
@@ -73,50 +74,48 @@ var _require = require('../lib/utils'),
|
|
|
73
74
|
* @param {Number|String} value
|
|
74
75
|
* @returns {String}
|
|
75
76
|
*/
|
|
77
|
+
export const dv = (value: string | number): string => {
|
|
78
|
+
if (!value) throw new Error('CPF não informado')
|
|
76
79
|
|
|
80
|
+
const cpf = clearValue(value, 9)
|
|
77
81
|
|
|
78
|
-
|
|
79
|
-
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
80
|
-
if (!value) throw new Error('CPF não informado');
|
|
81
|
-
var cpf = clearValue(value, 9);
|
|
82
|
-
var invalidList = invalidListGenerator(9);
|
|
83
|
-
|
|
82
|
+
const invalidList = invalidListGenerator(9)
|
|
84
83
|
if (invalidList.includes(cpf)) {
|
|
85
|
-
throw new Error('CPF não pode ser uma sequência de números iguais')
|
|
84
|
+
throw new Error('CPF não pode ser uma sequência de números iguais')
|
|
86
85
|
}
|
|
87
86
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
const sum1 = sumElementsByMultipliers(cpf, [10, 9, 8, 7, 6, 5, 4, 3, 2])
|
|
88
|
+
const dv1 = sumToDV(sum1)
|
|
89
|
+
|
|
90
|
+
const sum2 = sumElementsByMultipliers(cpf + dv1, [11, 10, 9, 8, 7, 6, 5, 4, 3, 2])
|
|
91
|
+
const dv2 = sumToDV(sum2)
|
|
92
|
+
|
|
93
|
+
return `${dv1}${dv2}`
|
|
94
|
+
}
|
|
95
|
+
|
|
94
96
|
/**
|
|
95
97
|
* Aplica uma máscara ao número informado
|
|
96
98
|
*
|
|
97
99
|
* @param {String} value Número de Processo
|
|
98
100
|
* @returns {String} Valor com a máscara
|
|
99
101
|
*/
|
|
102
|
+
export const mask = (value: string | number): string => applyMask(value, '000.000.000-00')
|
|
100
103
|
|
|
101
|
-
|
|
102
|
-
var mask = function mask(value) {
|
|
103
|
-
return applyMask(value, '000.000.000-00');
|
|
104
|
-
};
|
|
105
104
|
/**
|
|
106
105
|
* fake()
|
|
107
106
|
* Gera um número válido
|
|
108
107
|
*
|
|
109
108
|
* @returns {String}
|
|
110
109
|
*/
|
|
110
|
+
export const fake = (withMask: boolean = false): string => {
|
|
111
|
+
const num = fakeNumber(9, true)
|
|
111
112
|
|
|
113
|
+
const cpf = `${num}${dv(num)}`
|
|
114
|
+
|
|
115
|
+
if (withMask) return mask(cpf)
|
|
116
|
+
return cpf
|
|
117
|
+
}
|
|
112
118
|
|
|
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
119
|
/**
|
|
121
120
|
* validateOrFail()
|
|
122
121
|
* Valida se um número de processo está correto e
|
|
@@ -124,38 +123,28 @@ var fake = function fake() {
|
|
|
124
123
|
*
|
|
125
124
|
* @returns {Boolean}
|
|
126
125
|
*/
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
var validateOrFail = function validateOrFail(value) {
|
|
130
|
-
var cpf = clearValue(value, 11);
|
|
126
|
+
export const validateOrFail = (value: string | number): boolean => {
|
|
127
|
+
const cpf = clearValue(value, 11)
|
|
131
128
|
|
|
132
129
|
if (dv(cpf) !== cpf.substring(9, 11)) {
|
|
133
|
-
throw new Error('Dígito verificador inválido')
|
|
130
|
+
throw new Error('Dígito verificador inválido')
|
|
134
131
|
}
|
|
135
132
|
|
|
136
|
-
return true
|
|
137
|
-
}
|
|
133
|
+
return true
|
|
134
|
+
}
|
|
135
|
+
|
|
138
136
|
/**
|
|
139
137
|
* validate()
|
|
140
138
|
* Valida se um número de processo está correto
|
|
141
139
|
*
|
|
142
140
|
* @returns {Boolean}
|
|
143
141
|
*/
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
var validate = function validate(value) {
|
|
142
|
+
export const validate = (value: string | number): boolean => {
|
|
147
143
|
try {
|
|
148
|
-
return validateOrFail(value)
|
|
144
|
+
return validateOrFail(value)
|
|
149
145
|
} catch (error) {
|
|
150
|
-
return false
|
|
146
|
+
return false
|
|
151
147
|
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
dv: dv,
|
|
156
|
-
fake: fake,
|
|
157
|
-
mask: mask,
|
|
158
|
-
validate: validate,
|
|
159
|
-
validateOrFail: validateOrFail
|
|
160
|
-
};
|
|
161
|
-
//# sourceMappingURL=cpf.js.map
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export default validate
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import ValidateBR from './index'
|
|
2
|
+
|
|
3
|
+
describe('ValidateBR', () => {
|
|
4
|
+
test('Deve importar isCNH', () => {
|
|
5
|
+
expect(ValidateBR.isCNH).toBeDefined()
|
|
6
|
+
})
|
|
7
|
+
|
|
8
|
+
test('Deve importar isCNPJ', () => {
|
|
9
|
+
expect(ValidateBR.isCNPJ).toBeDefined()
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
test('Deve importar isCPF', () => {
|
|
13
|
+
expect(ValidateBR.isCPF).toBeDefined()
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
test('Deve importar isJudicialProcess', () => {
|
|
17
|
+
expect(ValidateBR.isJudicialProcess).toBeDefined()
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
test('Deve importar isPIS', () => {
|
|
21
|
+
expect(ValidateBR.isPIS).toBeDefined()
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
test('Deve importar isPostalCode', () => {
|
|
25
|
+
expect(ValidateBR.isPostalCode).toBeDefined()
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
test('Deve importar isRenavam', () => {
|
|
29
|
+
expect(ValidateBR.isRenavam).toBeDefined()
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
test('Deve importar isTituloEleitor', () => {
|
|
33
|
+
expect(ValidateBR.isTituloEleitor).toBeDefined()
|
|
34
|
+
})
|
|
35
|
+
})
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import isCNH from './cnh'
|
|
2
|
+
import isCNPJ from './cnpj'
|
|
3
|
+
import isCPF from './cpf'
|
|
4
|
+
import isJudicialProcess from './judicialProcess'
|
|
5
|
+
import isPIS from './pisPasep'
|
|
6
|
+
import isPostalCode from './postalCode'
|
|
7
|
+
import isRenavam from './renavam'
|
|
8
|
+
import isTituloEleitor from './tituloEleitor'
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
isCNH,
|
|
12
|
+
isCNPJ,
|
|
13
|
+
isCPF,
|
|
14
|
+
isJudicialProcess,
|
|
15
|
+
isPIS,
|
|
16
|
+
isPostalCode,
|
|
17
|
+
isRenavam,
|
|
18
|
+
isTituloEleitor,
|
|
19
|
+
}
|