validation-br 0.21.1 → 1.0.0-c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/.eslintcache +1 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc.js +76 -11
  4. package/.github/workflows/test.yml +39 -0
  5. package/.prettierignore +1 -0
  6. package/.prettierrc.js +7 -0
  7. package/dist/{documents/cnh.js → cnh.js} +122 -153
  8. package/dist/cnh.js.map +1 -0
  9. package/dist/{documents/cnpj.js → cnpj.js} +111 -138
  10. package/dist/cnpj.js.map +1 -0
  11. package/dist/{documents/cpf.js → cpf.js} +133 -160
  12. package/dist/cpf.js.map +1 -0
  13. package/dist/index.js +24 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/judicialProcess.js +153 -0
  16. package/dist/judicialProcess.js.map +1 -0
  17. package/dist/{documents/pis-pasep.js → pisPasep.js} +113 -140
  18. package/dist/pisPasep.js.map +1 -0
  19. package/dist/postalCode.js +150 -0
  20. package/dist/postalCode.js.map +1 -0
  21. package/dist/renavam.js +108 -0
  22. package/dist/renavam.js.map +1 -0
  23. package/dist/{documents/titulo-eleitor.js → tituloEleitor.js} +130 -155
  24. package/dist/tituloEleitor.js.map +1 -0
  25. package/dist/{lib/utils.js → utils.js} +166 -175
  26. package/dist/utils.js.map +1 -0
  27. package/jest.config.js +14 -0
  28. package/package.json +77 -30
  29. package/readme.md +120 -114
  30. package/tsconfig.json +23 -0
  31. package/.babelrc +0 -15
  32. package/.prettierrc +0 -9
  33. package/LICENSE +0 -21
  34. package/dist/documents/cnh.js.map +0 -1
  35. package/dist/documents/cnpj.js.map +0 -1
  36. package/dist/documents/cpf.js.map +0 -1
  37. package/dist/documents/index.js +0 -29
  38. package/dist/documents/index.js.map +0 -1
  39. package/dist/documents/judicial-process.js +0 -177
  40. package/dist/documents/judicial-process.js.map +0 -1
  41. package/dist/documents/pis-pasep.js.map +0 -1
  42. package/dist/documents/postal-code.js +0 -151
  43. package/dist/documents/postal-code.js.map +0 -1
  44. package/dist/documents/renavam.js +0 -97
  45. package/dist/documents/renavam.js.map +0 -1
  46. package/dist/documents/titulo-eleitor.js.map +0 -1
  47. package/dist/lib/utils.js.map +0 -1
  48. package/docs.md +0 -0
  49. package/index.js +0 -3
package/.eslintcache ADDED
@@ -0,0 +1 @@
1
+ [{"D:\\Desenvolvimento\\Javascript\\Validation-BR\\boilerplate-jest-eslint-ts\\.eslintrc.js":"1"},{"size":2512,"mtime":1641739367275,"results":"2","hashOfConfig":"3"},{"filePath":"4","messages":"5","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1mhu42l","D:\\Desenvolvimento\\Javascript\\Validation-BR\\boilerplate-jest-eslint-ts\\.eslintrc.js",[]]
package/.eslintignore ADDED
@@ -0,0 +1,2 @@
1
+ dist
2
+ node_modules
package/.eslintrc.js CHANGED
@@ -1,17 +1,82 @@
1
1
  module.exports = {
2
+ root: true,
3
+ extends: ['airbnb-base', 'prettier'],
4
+ parser: '@typescript-eslint/parser',
5
+ parserOptions: {
6
+ ecmaVersion: 2018,
7
+ sourceType: 'module',
8
+ },
2
9
  env: {
3
- browser: true,
4
- commonjs: true,
5
- es2021: true,
10
+ node: true,
11
+ jest: true,
6
12
  },
7
- extends: [
8
- 'airbnb-base',
9
- ],
10
- parserOptions: {
11
- ecmaVersion: 12,
13
+ settings: {
14
+ 'import/resolver': {
15
+ node: {
16
+ extensions: ['.js', '.ts'],
17
+ },
18
+ },
12
19
  },
13
20
  rules: {
14
- 'no-console': 0,
21
+ '@typescript-eslint/no-unused-vars': ['error', { varsIgnorePattern: '^_', args: 'none' }],
22
+ 'array-callback-return': 'off',
23
+ 'arrow-body-style': 'off',
24
+ curly: ['error', 'multi-line', 'consistent'],
25
+ 'class-methods-use-this': 'off',
26
+ 'consistent-return': 'warn',
27
+ 'default-case': 'off',
28
+ 'import/extensions': ['error', 'never'],
29
+ 'import/first': 'warn',
30
+ 'import/no-named-as-default': 'warn',
31
+ 'import/no-named-as-default-member': 'warn',
32
+ 'import/no-unresolved': 'warn',
33
+ 'import/prefer-default-export': 'off',
34
+ 'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }],
35
+ 'max-classes-per-file': 'off',
36
+ 'max-len': ['error', 120, 2, { ignoreUrls: true, ignoreTemplateLiterals: true }],
37
+ 'newline-per-chained-call': 'warn',
38
+ 'no-await-in-loop': 'off',
39
+ 'no-confusing-arrow': 'off',
40
+ 'no-console': 'off',
41
+ 'no-continue': 'off',
42
+ 'no-else-return': ['error', { allowElseIf: true }],
43
+ 'no-loop-func': 'off',
44
+ 'no-mixed-operators': 'off',
45
+ 'no-nested-ternary': 'off',
46
+ 'no-only-tests/no-only-tests': 'error',
47
+ 'no-param-reassign': 'off',
48
+ 'no-plusplus': 'off',
49
+ 'no-prototype-builtins': 'off',
50
+ 'no-restricted-syntax': 'off',
51
+ 'no-return-assign': 'warn',
52
+ 'no-sequences': 'warn',
53
+ 'no-shadow': 'off',
54
+ 'no-underscore-dangle': 'off',
55
+ 'no-unexpected-multiline': 'off',
56
+ 'no-unused-vars': 'off',
57
+ 'no-use-before-define': ['warn', { functions: false, classes: false }],
58
+ 'prefer-destructuring': 'off',
59
+ semi: ['error', 'never'],
60
+ 'sort-imports': 'off',
61
+ 'no-unused-expressions': 'off',
62
+ quotes: ['error', 'single', { avoidEscape: true }],
63
+ '@typescript-eslint/ban-types': 'error',
15
64
  },
16
- ignorePatterns: ['**/dist/*.js'],
17
- };
65
+ overrides: [
66
+ {
67
+ files: ['*.ts'],
68
+ rules: {
69
+ 'no-dupe-class-members': 'off',
70
+ 'no-undef': 'off',
71
+ '@typescript-eslint/explicit-function-return-type': 'error',
72
+ },
73
+ },
74
+ {
75
+ files: ['*.d.ts'],
76
+ rules: {
77
+ 'no-useless-constructor': 'off', // crashes on constructor declaration in .d.ts files
78
+ },
79
+ },
80
+ ],
81
+ plugins: ['no-only-tests', '@typescript-eslint'],
82
+ }
@@ -0,0 +1,39 @@
1
+ name: Tests
2
+
3
+ # on: [push]
4
+ on:
5
+ push:
6
+ branches: [main]
7
+ pull_request:
8
+ branches: [main]
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+
14
+ strategy:
15
+ matrix:
16
+ node-version: [12.x, 14.x, 16.x]
17
+ # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
18
+
19
+ steps:
20
+ # Checks-out the repository under $GITHUB_WORKSPACE
21
+ - uses: actions/checkout@v2
22
+
23
+ # Install Node Js
24
+ - name: Use Node.js ${{ matrix.node-version }}
25
+ uses: actions/setup-node@v2
26
+ with:
27
+ node-version: ${{ matrix.node-version }}
28
+
29
+ # Install Node Modules
30
+ - name: Install Node Modules
31
+ run: yarn install --frozen-lockfile
32
+
33
+ # Runs a set of commands using the runners shell
34
+ - name: Runs Unit Tests
35
+ run: yarn test
36
+
37
+ # Runs a set of commands using the runners shell
38
+ - name: Build typescript code
39
+ run: yarn build
@@ -0,0 +1 @@
1
+ dist/
package/.prettierrc.js ADDED
@@ -0,0 +1,7 @@
1
+ module.exports = {
2
+ semi: false,
3
+ trailingComma: 'all',
4
+ singleQuote: true,
5
+ printWidth: 100,
6
+ tabWidth: 2,
7
+ }
@@ -1,154 +1,123 @@
1
- "use strict";
2
-
3
- /**
4
- * isCNH()
5
- * Calcula se uma CNH é válida
6
- *
7
- * @doc
8
- * CNH deve possuir 11 caracteres
9
- *
10
- * - Os caracteres 1 a 9 são números sequenciais.
11
- *
12
- *
13
- * - Os caracteres 10 e 11 são dígitos verificadores.
14
- *
15
- * 1) Partes do número
16
- * ____________________________ ______
17
- * | Número | D V |
18
- * | 5 8 3 1 6 7 9 4 5 3 4 |
19
- * |____________________________|_____|
20
- *
21
- * 2) Cálculo do primeiro DV.
22
- *
23
- * - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.
24
- *
25
- * 5 8 3 1 6 7 9 4 5
26
- * x x x x x x x x x
27
- * 2 3 4 5 6 7 8 9 10
28
- * = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294
29
- *
30
- * - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o
31
- * resto for 10, o DV1 é 0.
32
- *
33
- * 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3
34
- * DV1 = 3
35
- *
36
- * 3) Cálculo do segundo DV
37
- *
38
- * - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere
39
- * que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será
40
- * multiplicado por 2 e ficará no final.
41
- *
42
- * 5 8 3 1 6 7 9 4 5 3
43
- * x x x x x x x x x x
44
- * 3 4 5 6 7 8 9 10 11 2
45
- * = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348
46
- *
47
- * 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.
48
- * DV2 = 4
49
- *
50
- * - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o
51
- * resto for 10, o DV2 é 0.
52
- *
53
- * Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972
54
- *
55
- * @param {String} value Título eleitoral
56
- * @returns {Boolean}
57
- */
58
- var _require = require('../lib/utils'),
59
- sumElementsByMultipliers = _require.sumElementsByMultipliers,
60
- sumToDV = _require.sumToDV,
61
- invalidListGenerator = _require.invalidListGenerator,
62
- clearValue = _require.clearValue,
63
- applyMask = _require.applyMask,
64
- fakeNumber = _require.fakeNumber;
65
- /**
66
- * Calcula o Dígito Verificador de um RENAVAM informado
67
- *
68
- * @returns String Número fake de um cnh válido
69
- */
70
-
71
-
72
- var dv = function dv() {
73
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
74
- if (!value) throw new Error('CNH não informado');
75
- var cnh = clearValue(value, 9);
76
- var invalidList = invalidListGenerator(9);
77
-
78
- if (invalidList.includes(cnh)) {
79
- throw new Error('CNH não pode ser uma sequência de números iguais');
80
- }
81
-
82
- var sum1 = sumElementsByMultipliers(cnh.substring(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);
83
- var dv1 = sumToDV(sum1);
84
- var sum2 = sumElementsByMultipliers(cnh.substring(0, 9) + dv1, [3, 4, 5, 6, 7, 8, 9, 10, 11, 2]);
85
- var dv2 = sumToDV(sum2);
86
- return "".concat(dv1).concat(dv2);
87
- };
88
- /**
89
- * Valida um número de cnh e retorna uma exceção caso seja inválido
90
- *
91
- * @returns String Número fake de um cnh válido
92
- */
93
-
94
-
95
- var validateOrFail = function validateOrFail() {
96
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
97
- var cnh = clearValue(value, 11);
98
-
99
- if (dv(cnh) !== cnh.substring(9, 11)) {
100
- throw new Error('Dígito verificador inválido');
101
- }
102
-
103
- return true;
104
- };
105
- /**
106
- * Valida um número de cnh
107
- *
108
- * @returns String Valor a ser validado
109
- */
110
-
111
-
112
- var validate = function validate() {
113
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
114
-
115
- try {
116
- return validateOrFail(value);
117
- } catch (error) {
118
- return false;
119
- }
120
- };
121
- /**
122
- * Aplica uma máscara a uma string
123
- *
124
- * @returns String string com a máscara aplicada
125
- */
126
-
127
-
128
- var mask = function mask() {
129
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
130
- return applyMask(value, '000000000-00');
131
- };
132
- /**
133
- * Cria um número fake
134
- *
135
- * @returns String Número fake porém válido
136
- */
137
-
138
-
139
- var fake = function fake() {
140
- var withMask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
141
- var value = fakeNumber(9, true);
142
- var cnh = "".concat(value).concat(dv(value));
143
- if (withMask) return mask(cnh);
144
- return cnh;
145
- };
146
-
147
- module.exports = {
148
- dv: dv,
149
- fake: fake,
150
- mask: mask,
151
- validate: validate,
152
- validateOrFail: validateOrFail
153
- };
1
+ "use strict";
2
+ /**
3
+ * isCNH()
4
+ * Calcula se uma CNH é válida
5
+ *
6
+ * @doc
7
+ * CNH deve possuir 11 caracteres
8
+ *
9
+ * - Os caracteres 1 a 9 são números sequenciais.
10
+ *
11
+ *
12
+ * - Os caracteres 10 e 11 são dígitos verificadores.
13
+ *
14
+ * 1) Partes do número
15
+ * ____________________________ ______
16
+ * | Número | D V |
17
+ * | 5 8 3 1 6 7 9 4 5 3 4 |
18
+ * |____________________________|_____|
19
+ *
20
+ * 2) Cálculo do primeiro DV.
21
+ *
22
+ * - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.
23
+ *
24
+ * 5 8 3 1 6 7 9 4 5
25
+ * x x x x x x x x x
26
+ * 2 3 4 5 6 7 8 9 10
27
+ * = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294
28
+ *
29
+ * - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o
30
+ * resto for 10, o DV1 é 0.
31
+ *
32
+ * 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3
33
+ * DV1 = 3
34
+ *
35
+ * 3) Cálculo do segundo DV
36
+ *
37
+ * - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere
38
+ * que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será
39
+ * multiplicado por 2 e ficará no final.
40
+ *
41
+ * 5 8 3 1 6 7 9 4 5 3
42
+ * x x x x x x x x x x
43
+ * 3 4 5 6 7 8 9 10 11 2
44
+ * = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348
45
+ *
46
+ * 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.
47
+ * DV2 = 4
48
+ *
49
+ * - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o
50
+ * resto for 10, o DV2 é 0.
51
+ *
52
+ * Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972
53
+ *
54
+ * @param {String} value Título eleitoral
55
+ * @returns {Boolean}
56
+ */
57
+ Object.defineProperty(exports, "__esModule", { value: true });
58
+ exports.fake = exports.mask = exports.validate = exports.validateOrFail = exports.dv = void 0;
59
+ const utils_1 = require("./utils");
60
+ /**
61
+ * Calcula o Dígito Verificador de um RENAVAM informado
62
+ *
63
+ * @returns String Número fake de um cnh válido
64
+ */
65
+ exports.dv = (value) => {
66
+ if (!value)
67
+ throw new Error('CNH não informado');
68
+ const cnh = utils_1.clearValue(value, 9);
69
+ const invalidList = utils_1.invalidListGenerator(9);
70
+ if (invalidList.includes(cnh)) {
71
+ throw new Error('CNH não pode ser uma sequência de números iguais');
72
+ }
73
+ const sum1 = utils_1.sumElementsByMultipliers(cnh.substring(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);
74
+ const dv1 = utils_1.sumToDV(sum1);
75
+ const sum2 = utils_1.sumElementsByMultipliers(cnh.substring(0, 9) + dv1, [3, 4, 5, 6, 7, 8, 9, 10, 11, 2]);
76
+ const dv2 = utils_1.sumToDV(sum2);
77
+ return `${dv1}${dv2}`;
78
+ };
79
+ /**
80
+ * Valida um número de cnh e retorna uma exceção caso seja inválido
81
+ *
82
+ * @returns String Número fake de um cnh válido
83
+ */
84
+ exports.validateOrFail = (value) => {
85
+ const cnh = utils_1.clearValue(value, 11);
86
+ if (exports.dv(cnh) !== cnh.substring(9, 11)) {
87
+ throw new Error('Dígito verificador inválido');
88
+ }
89
+ return true;
90
+ };
91
+ /**
92
+ * Valida um número de cnh
93
+ *
94
+ * @returns String Valor a ser validado
95
+ */
96
+ exports.validate = (value) => {
97
+ try {
98
+ return exports.validateOrFail(value);
99
+ }
100
+ catch (error) {
101
+ return false;
102
+ }
103
+ };
104
+ /**
105
+ * Aplica uma máscara a uma string
106
+ *
107
+ * @returns String string com a máscara aplicada
108
+ */
109
+ exports.mask = (value) => utils_1.applyMask(value, '000000000-00');
110
+ /**
111
+ * Cria um número fake
112
+ *
113
+ * @returns String Número fake porém válido
114
+ */
115
+ exports.fake = (withMask = false) => {
116
+ const value = utils_1.fakeNumber(9, true);
117
+ const cnh = `${value}${exports.dv(value)}`;
118
+ if (withMask)
119
+ return exports.mask(cnh);
120
+ return cnh;
121
+ };
122
+ exports.default = exports.validate;
154
123
  //# sourceMappingURL=cnh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cnh.js","sourceRoot":"","sources":["../src/cnh.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;;;AAEH,mCAOgB;AAEhB;;;;GAIG;AACU,QAAA,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAEhD,MAAM,GAAG,GAAG,kBAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAEhC,MAAM,WAAW,GAAG,4BAAoB,CAAC,CAAC,CAAC,CAAA;IAC3C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;KACpE;IAED,MAAM,IAAI,GAAG,gCAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IACxF,MAAM,GAAG,GAAG,eAAO,CAAC,IAAI,CAAC,CAAA;IAEzB,MAAM,IAAI,GAAG,gCAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAClG,MAAM,GAAG,GAAG,eAAO,CAAC,IAAI,CAAC,CAAA;IAEzB,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,CAAA;AACvB,CAAC,CAAA;AAED;;;;GAIG;AACU,QAAA,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,GAAG,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAEjC,IAAI,UAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;KAC/C;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;GAIG;AACU,QAAA,QAAQ,GAAG,CAAC,KAAsB,EAAW,EAAE;IAC1D,IAAI;QACF,OAAO,sBAAc,CAAC,KAAK,CAAC,CAAA;KAC7B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AAED;;;;GAIG;AACU,QAAA,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,iBAAS,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;AAExF;;;;GAIG;AACU,QAAA,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,KAAK,GAAG,kBAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAEjC,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,UAAE,CAAC,KAAK,CAAC,EAAE,CAAA;IAElC,IAAI,QAAQ;QAAE,OAAO,YAAI,CAAC,GAAG,CAAC,CAAA;IAE9B,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,kBAAe,gBAAQ,CAAA"}