validation-br 0.21.3 → 1.2.0-rc1

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 (84) 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/cnh.d.ts +91 -0
  8. package/dist/cnh.js +128 -0
  9. package/dist/cnh.js.map +1 -0
  10. package/dist/cnh.test.d.ts +1 -0
  11. package/dist/cnpj.d.ts +82 -0
  12. package/dist/{documents/cnpj.js → cnpj.js} +116 -138
  13. package/dist/cnpj.js.map +1 -0
  14. package/dist/cnpj.test.d.ts +1 -0
  15. package/dist/cpf.d.ts +99 -0
  16. package/dist/{documents/cpf.js → cpf.js} +135 -160
  17. package/dist/cpf.js.map +1 -0
  18. package/dist/cpf.test.d.ts +1 -0
  19. package/dist/index.d.ts +12 -0
  20. package/dist/index.js +26 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/index.test.d.ts +1 -0
  23. package/dist/judicialProcess.d.ts +114 -0
  24. package/dist/judicialProcess.js +160 -0
  25. package/dist/judicialProcess.js.map +1 -0
  26. package/dist/judicialProcess.test.d.ts +1 -0
  27. package/dist/nup17.d.ts +102 -0
  28. package/dist/nup17.js +145 -0
  29. package/dist/nup17.js.map +1 -0
  30. package/dist/nup17.test.d.ts +1 -0
  31. package/dist/pisPasep.d.ts +81 -0
  32. package/dist/{documents/pis-pasep.js → pisPasep.js} +115 -140
  33. package/dist/pisPasep.js.map +1 -0
  34. package/dist/pisPasep.test.d.ts +1 -0
  35. package/dist/postalCode.d.ts +83 -0
  36. package/dist/postalCode.js +152 -0
  37. package/dist/postalCode.js.map +1 -0
  38. package/dist/postalCode.test.d.ts +1 -0
  39. package/dist/renavam.d.ts +75 -0
  40. package/dist/renavam.js +110 -0
  41. package/dist/renavam.js.map +1 -0
  42. package/dist/renavam.test.d.ts +1 -0
  43. package/dist/tituloEleitor.d.ts +93 -0
  44. package/dist/{documents/titulo-eleitor.js → tituloEleitor.js} +132 -155
  45. package/dist/tituloEleitor.js.map +1 -0
  46. package/dist/tituloEleitor.test.d.ts +1 -0
  47. package/dist/utils-applyMask.test.d.ts +1 -0
  48. package/dist/utils-clearValue.test.d.ts +1 -0
  49. package/dist/utils-fakeNumber.test.d.ts +1 -0
  50. package/dist/utils-insertAtPosition.test.d.ts +1 -0
  51. package/dist/utils-invalidListGenerator.test.d.ts +1 -0
  52. package/dist/utils-removeFromPosition.test.d.ts +1 -0
  53. package/dist/utils-sumElementsByMultipliers.test.d.ts +1 -0
  54. package/dist/utils-sumToDV.test.d.ts +1 -0
  55. package/dist/utils.d.ts +111 -0
  56. package/dist/{lib/utils.js → utils.js} +166 -175
  57. package/dist/utils.js.map +1 -0
  58. package/dist/vuelidate.d.ts +36 -0
  59. package/dist/vuelidate.js +31 -0
  60. package/dist/vuelidate.js.map +1 -0
  61. package/jest.config.js +14 -0
  62. package/package.json +44 -27
  63. package/readme.md +170 -111
  64. package/tsconfig.json +24 -0
  65. package/.babelrc +0 -15
  66. package/.prettierrc +0 -9
  67. package/LICENSE +0 -21
  68. package/dist/documents/cnh.js +0 -154
  69. package/dist/documents/cnh.js.map +0 -1
  70. package/dist/documents/cnpj.js.map +0 -1
  71. package/dist/documents/cpf.js.map +0 -1
  72. package/dist/documents/index.js +0 -29
  73. package/dist/documents/index.js.map +0 -1
  74. package/dist/documents/judicial-process.js +0 -177
  75. package/dist/documents/judicial-process.js.map +0 -1
  76. package/dist/documents/pis-pasep.js.map +0 -1
  77. package/dist/documents/postal-code.js +0 -151
  78. package/dist/documents/postal-code.js.map +0 -1
  79. package/dist/documents/renavam.js +0 -97
  80. package/dist/documents/renavam.js.map +0 -1
  81. package/dist/documents/titulo-eleitor.js.map +0 -1
  82. package/dist/lib/utils.js.map +0 -1
  83. package/docs.md +0 -0
  84. package/index.js +0 -3
package/.eslintcache ADDED
@@ -0,0 +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":"15","hashOfConfig":"16"},{"size":3670,"mtime":1641857909477,"results":"17","hashOfConfig":"18"},{"size":3665,"mtime":1641857909477,"results":"19","hashOfConfig":"18"},{"size":3860,"mtime":1641857909479,"results":"20","hashOfConfig":"18"},{"size":5663,"mtime":1641858240139,"results":"21","hashOfConfig":"18"},{"size":3185,"mtime":1641857909611,"results":"22","hashOfConfig":"18"},{"size":3855,"mtime":1641857909469,"results":"23","hashOfConfig":"18"},{"size":3038,"mtime":1641857909470,"results":"24","hashOfConfig":"18"},{"size":3933,"mtime":1641857909467,"results":"25","hashOfConfig":"18"},{"size":448,"mtime":1641854975529,"results":"26","hashOfConfig":"18"},{"size":3279,"mtime":1641854975529,"results":"27","hashOfConfig":"18"},{"size":4949,"mtime":1641857909475,"results":"28","hashOfConfig":"18"},{"size":5334,"mtime":1641858202329,"results":"29","hashOfConfig":"18"},{"size":3469,"mtime":1641858290806,"results":"30","hashOfConfig":"18"},{"filePath":"31","messages":"32","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1mhu42l",{"filePath":"33","messages":"34","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1oacsom",{"filePath":"35","messages":"36","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"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},"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",[]]
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
+ }
package/dist/cnh.d.ts ADDED
@@ -0,0 +1,91 @@
1
+ /**
2
+ * isCNH()
3
+ * Calcula se uma CNH é válida
4
+ *
5
+ * @doc
6
+ * CNH deve possuir 11 caracteres
7
+ *
8
+ * - Os caracteres 1 a 9 são números sequenciais.
9
+ *
10
+ *
11
+ * - Os caracteres 10 e 11 são dígitos verificadores.
12
+ *
13
+ * 1) Partes do número
14
+ * ____________________________ ______
15
+ * | Número | D V |
16
+ * | 5 8 3 1 6 7 9 4 5 3 4 |
17
+ * |____________________________|_____|
18
+ *
19
+ * 2) Cálculo do primeiro DV.
20
+ *
21
+ * - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.
22
+ *
23
+ * 5 8 3 1 6 7 9 4 5
24
+ * x x x x x x x x x
25
+ * 2 3 4 5 6 7 8 9 10
26
+ * = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294
27
+ *
28
+ * - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o
29
+ * resto for 10, o DV1 é 0.
30
+ *
31
+ * 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3
32
+ * DV1 = 3
33
+ *
34
+ * 3) Cálculo do segundo DV
35
+ *
36
+ * - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere
37
+ * que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será
38
+ * multiplicado por 2 e ficará no final.
39
+ *
40
+ * 5 8 3 1 6 7 9 4 5 3
41
+ * x x x x x x x x x x
42
+ * 3 4 5 6 7 8 9 10 11 2
43
+ * = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348
44
+ *
45
+ * 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.
46
+ * DV2 = 4
47
+ *
48
+ * - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o
49
+ * resto for 10, o DV2 é 0.
50
+ *
51
+ * Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972
52
+ *
53
+ * @param {String} value Título eleitoral
54
+ * @returns {Boolean}
55
+ */
56
+ /**
57
+ * Calcula o Dígito Verificador de um RENAVAM informado
58
+ *
59
+ * @returns String Número fake de um cnh válido
60
+ */
61
+ export declare const dv: (value: string | number) => string;
62
+ /**
63
+ * validateOrFail()
64
+ * Valida se um número é válido e
65
+ * retorna uma exceção se não estiver
66
+ *
67
+ * @param {String|Number} value Número a ser validado
68
+ * @returns {Boolean}
69
+ */
70
+ export declare const validateOrFail: (value: string | number) => boolean;
71
+ /**
72
+ * validate()
73
+ * Valida se um número é válido
74
+ *
75
+ * @param {String|Number} value Número a ser validado
76
+ * @returns {Boolean}
77
+ */
78
+ export declare const validate: (value: string | number) => boolean;
79
+ /**
80
+ * Aplica uma máscara a uma string
81
+ *
82
+ * @returns String string com a máscara aplicada
83
+ */
84
+ export declare const mask: (value: string | number) => string;
85
+ /**
86
+ * Cria um número fake
87
+ *
88
+ * @returns String Número fake porém válido
89
+ */
90
+ export declare const fake: (withMask?: boolean) => string;
91
+ export default validate;
package/dist/cnh.js ADDED
@@ -0,0 +1,128 @@
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
+ * validateOrFail()
81
+ * Valida se um número é válido e
82
+ * retorna uma exceção se não estiver
83
+ *
84
+ * @param {String|Number} value Número a ser validado
85
+ * @returns {Boolean}
86
+ */
87
+ exports.validateOrFail = (value) => {
88
+ const cnh = utils_1.clearValue(value, 11);
89
+ if (exports.dv(cnh) !== cnh.substring(9, 11)) {
90
+ throw new Error('Dígito verificador inválido');
91
+ }
92
+ return true;
93
+ };
94
+ /**
95
+ * validate()
96
+ * Valida se um número é válido
97
+ *
98
+ * @param {String|Number} value Número a ser validado
99
+ * @returns {Boolean}
100
+ */
101
+ exports.validate = (value) => {
102
+ try {
103
+ return exports.validateOrFail(value);
104
+ }
105
+ catch (error) {
106
+ return false;
107
+ }
108
+ };
109
+ /**
110
+ * Aplica uma máscara a uma string
111
+ *
112
+ * @returns String string com a máscara aplicada
113
+ */
114
+ exports.mask = (value) => utils_1.applyMask(value, '000000000-00');
115
+ /**
116
+ * Cria um número fake
117
+ *
118
+ * @returns String Número fake porém válido
119
+ */
120
+ exports.fake = (withMask = false) => {
121
+ const value = utils_1.fakeNumber(9, true);
122
+ const cnh = `${value}${exports.dv(value)}`;
123
+ if (withMask)
124
+ return exports.mask(cnh);
125
+ return cnh;
126
+ };
127
+ exports.default = exports.validate;
128
+ //# 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;;;;;;;GAOG;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;;;;;;GAMG;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"}
@@ -0,0 +1 @@
1
+ export {};
package/dist/cnpj.d.ts ADDED
@@ -0,0 +1,82 @@
1
+ /**
2
+ * isCNPJ()
3
+ * Calcula se um CNPJ é válido
4
+ *
5
+ * @doc
6
+ * - CNPJ deve possuir 14 dígitos no formato 00.000.000/0000-00
7
+ *
8
+ * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal
9
+ *
10
+ * - Os caracteres 9 a 12 são a identificação das filiais da empresa.
11
+ *
12
+ * - Os caracteres 13 e 14 são os dígitos verificadores
13
+ *
14
+ * 1) Partes do número
15
+ * _______________________________ _______________ _______
16
+ * | Número | Filiais | DV |
17
+ * | 1 1 . 2 2 2 . 3 3 3 / 0 0 0 1 - X Y |
18
+ * |_______________________________|_______________|_______|
19
+ *
20
+ * 2) Cálculo do primeiro DV.
21
+ *
22
+ * - Soma-se o produto das algarismos 1 a 12 pelos números 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
23
+ *
24
+ * 1 1 2 2 2 3 3 3 0 0 0 1
25
+ * x x x x x x x x x x x x
26
+ * 5 4 3 2 9 8 7 6 5 4 3 2
27
+ * = 5 +4 +6 +4 +18 +24 +21 +18 +0 +0 +0 +2 = 102
28
+ *
29
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
30
+ * 102 / 11 tem resto 8. 11 - 3 = 8. DV1 é 8.
31
+ * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.
32
+ *
33
+ * 3) Cálculo do segundo DV.
34
+ *
35
+ * - Soma-se o produto das algarismos 1 a 13 (incluindo o DV1 calculado) pelos
36
+ * números 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.
37
+ *
38
+ * 1 1 2 2 2 3 3 3 0 0 0 1 8
39
+ * x x x x x x x x x x x x x
40
+ * 6 5 4 3 2 9 8 7 6 5 4 3 2
41
+ * = 6 +5 +8 +6 +4 +27 +24 +21 +0 +0 +0 +3 +16 = 120
42
+ *
43
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
44
+ * 120 / 11 tem resto 10. 11 - 10 = 1. DV2 é 1.
45
+ * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.
46
+ *
47
+ * Fonte: http://www.macoratti.net/alg_cnpj.htm
48
+ *
49
+ * @param {String} value Título eleitoral
50
+ * @returns {Boolean}
51
+ */
52
+ export declare const dv: (value: string | number) => string;
53
+ /**
54
+ * Aplica uma máscara ao número informado
55
+ *
56
+ * @param {String} value Número de Processo
57
+ * @returns {String} Valor com a máscara
58
+ */
59
+ export declare const mask: (value: string | number) => string;
60
+ /**
61
+ *
62
+ *
63
+ */
64
+ export declare const fake: (withMask?: boolean) => string;
65
+ /**
66
+ * validateOrFail()
67
+ * Valida se um número é válido e
68
+ * retorna uma exceção se não estiver
69
+ *
70
+ * @param {String|Number} value Número a ser validado
71
+ * @returns {Boolean}
72
+ */
73
+ export declare const validateOrFail: (value: string | number) => boolean;
74
+ /**
75
+ * validate()
76
+ * Valida se um número é válido
77
+ *
78
+ * @param {String|Number} value Número a ser validado
79
+ * @returns {Boolean}
80
+ */
81
+ export declare const validate: (value: string | number) => boolean;
82
+ export default validate;