validation-br 0.8.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.
Files changed (109) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc.js +76 -11
  3. package/.github/workflows/test.yml +39 -0
  4. package/.prettierignore +1 -0
  5. package/.prettierrc.js +7 -0
  6. package/dist/cnh.js +123 -0
  7. package/dist/cnh.js.map +1 -0
  8. package/dist/cnh.test.js +117 -0
  9. package/dist/cnh.test.js.map +1 -0
  10. package/dist/cnpj.js +112 -0
  11. package/dist/cnpj.js.map +1 -0
  12. package/dist/cnpj.test.js +141 -0
  13. package/dist/cnpj.test.js.map +1 -0
  14. package/dist/cpf.js +134 -0
  15. package/dist/cpf.js.map +1 -0
  16. package/dist/cpf.test.js +130 -0
  17. package/dist/cpf.test.js.map +1 -0
  18. package/dist/index.js +24 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/index.test.js +33 -0
  21. package/dist/index.test.js.map +1 -0
  22. package/dist/judicialProcess.js +153 -0
  23. package/dist/judicialProcess.js.map +1 -0
  24. package/dist/judicialProcess.test.js +123 -0
  25. package/dist/judicialProcess.test.js.map +1 -0
  26. package/dist/pisPasep.js +113 -0
  27. package/dist/pisPasep.js.map +1 -0
  28. package/dist/pisPasep.test.js +129 -0
  29. package/dist/pisPasep.test.js.map +1 -0
  30. package/dist/postalCode.js +150 -0
  31. package/dist/postalCode.js.map +1 -0
  32. package/dist/postalCode.test.js +135 -0
  33. package/dist/postalCode.test.js.map +1 -0
  34. package/dist/renavam.js +108 -0
  35. package/dist/renavam.js.map +1 -0
  36. package/dist/renavam.test.js +113 -0
  37. package/dist/renavam.test.js.map +1 -0
  38. package/dist/tituloEleitor.js +130 -0
  39. package/dist/tituloEleitor.js.map +1 -0
  40. package/dist/tituloEleitor.test.js +132 -0
  41. package/dist/tituloEleitor.test.js.map +1 -0
  42. package/dist/utils-applyMask.test.js +17 -0
  43. package/dist/utils-applyMask.test.js.map +1 -0
  44. package/dist/utils-clearValue.test.js +50 -0
  45. package/dist/utils-clearValue.test.js.map +1 -0
  46. package/dist/utils-fakeNumber.test.js +17 -0
  47. package/dist/utils-fakeNumber.test.js.map +1 -0
  48. package/dist/utils-insertAtPosition.test.js +16 -0
  49. package/dist/utils-insertAtPosition.test.js.map +1 -0
  50. package/dist/utils-invalidListGenerator.test.js +23 -0
  51. package/dist/utils-invalidListGenerator.test.js.map +1 -0
  52. package/dist/utils-removeFromPosition.test.js +16 -0
  53. package/dist/utils-removeFromPosition.test.js.map +1 -0
  54. package/dist/utils-sumElementsByMultipliers.test.js +32 -0
  55. package/dist/utils-sumElementsByMultipliers.test.js.map +1 -0
  56. package/dist/utils-sumToDV.test.js +16 -0
  57. package/dist/utils-sumToDV.test.js.map +1 -0
  58. package/dist/utils.js +167 -0
  59. package/dist/utils.js.map +1 -0
  60. package/jest.config.js +14 -0
  61. package/package.json +40 -48
  62. package/readme.md +243 -88
  63. package/src/cnh.test.ts +114 -0
  64. package/src/cnh.ts +140 -0
  65. package/src/cnpj.test.ts +136 -0
  66. package/{dist/documents/cnpj.js → src/cnpj.ts} +74 -21
  67. package/src/cpf.test.ts +125 -0
  68. package/src/cpf.ts +150 -0
  69. package/src/index.test.ts +35 -0
  70. package/src/index.ts +19 -0
  71. package/src/judicialProcess.test.ts +118 -0
  72. package/src/judicialProcess.ts +167 -0
  73. package/src/pisPasep.test.ts +124 -0
  74. package/src/pisPasep.ts +128 -0
  75. package/src/postalCode.test.ts +132 -0
  76. package/src/postalCode.ts +164 -0
  77. package/src/renavam.test.ts +110 -0
  78. package/src/renavam.ts +122 -0
  79. package/src/tituloEleitor.test.ts +129 -0
  80. package/src/tituloEleitor.ts +146 -0
  81. package/src/utils-applyMask.test.ts +17 -0
  82. package/src/utils-clearValue.test.ts +55 -0
  83. package/src/utils-fakeNumber.test.ts +19 -0
  84. package/src/utils-insertAtPosition.test.ts +15 -0
  85. package/src/utils-invalidListGenerator.test.ts +27 -0
  86. package/src/utils-removeFromPosition.test.ts +15 -0
  87. package/src/utils-sumElementsByMultipliers.test.ts +34 -0
  88. package/src/utils-sumToDV.test.ts +16 -0
  89. package/src/utils.ts +172 -0
  90. package/tsconfig.json +23 -0
  91. package/.babelrc +0 -15
  92. package/.prettierrc +0 -9
  93. package/dist/documents/cnh.js +0 -77
  94. package/dist/documents/cnh.js.map +0 -1
  95. package/dist/documents/cnpj.js.map +0 -1
  96. package/dist/documents/cpf.js +0 -83
  97. package/dist/documents/cpf.js.map +0 -1
  98. package/dist/documents/index.js +0 -23
  99. package/dist/documents/index.js.map +0 -1
  100. package/dist/documents/pis-pasep.js +0 -71
  101. package/dist/documents/pis-pasep.js.map +0 -1
  102. package/dist/documents/postal-code.js +0 -72
  103. package/dist/documents/postal-code.js.map +0 -1
  104. package/dist/documents/titulo-eleitor.js +0 -74
  105. package/dist/documents/titulo-eleitor.js.map +0 -1
  106. package/dist/lib/utils.js +0 -60
  107. package/dist/lib/utils.js.map +0 -1
  108. package/docs.md +0 -0
  109. package/index.js +0 -3
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.js ADDED
@@ -0,0 +1,123 @@
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;
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"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ // import { isCNH } from './cnh'
23
+ const cnh_1 = __importStar(require("./cnh"));
24
+ describe('CNH', () => {
25
+ test('isCNH() - Números válidos', () => {
26
+ const list = [
27
+ // como inteiro
28
+ 50195131143,
29
+ 58316794534,
30
+ 50195471165,
31
+ // como string
32
+ '69044271146',
33
+ '46190906839',
34
+ // com máscara
35
+ '624729276-37',
36
+ ];
37
+ list.forEach((cnh) => {
38
+ // t.true(isCNH(cnh), `CNH ${cnh} deve ser válida`)
39
+ expect(cnh_1.default(cnh)).toBeTruthy();
40
+ });
41
+ // t.end()
42
+ });
43
+ test('validate() - Números válidos', () => {
44
+ const list = [
45
+ // como inteiro
46
+ 50195131143,
47
+ 58316794534,
48
+ // como string
49
+ '69044271146',
50
+ '46190906839',
51
+ // com máscara
52
+ '624729276-37',
53
+ ];
54
+ list.forEach((cnh) => {
55
+ // t.true(isCNH(cnh), `CNH ${cnh} deve ser válida`)
56
+ expect(cnh_1.validate(cnh)).toBeTruthy();
57
+ });
58
+ });
59
+ test('validate() - Números inválidos', () => {
60
+ const list = ['50195471143', '58316474534', '69044471146', '33333333333', '88888888888'];
61
+ list.forEach((cnh) => {
62
+ expect(cnh_1.validate(cnh)).toBeFalsy();
63
+ });
64
+ });
65
+ test('validateOrFail() - Números inválidos', () => {
66
+ const list = ['50195471143', '58316474534', '69044471146', '33333333333', '88888888888'];
67
+ list.forEach((cnh) => {
68
+ expect(() => cnh_1.validateOrFail(cnh)).toThrow();
69
+ });
70
+ });
71
+ test('Parâmetro não informado', () => {
72
+ expect(cnh_1.default('')).toBeFalsy();
73
+ expect(cnh_1.validate('')).toBeFalsy();
74
+ expect(() => cnh_1.validateOrFail('')).toThrow();
75
+ expect(() => cnh_1.dv('')).toThrow();
76
+ });
77
+ test('fake() - Gera fakes sem máscara', () => {
78
+ for (let i = 0; i < 5; i += 1) {
79
+ const cnh = cnh_1.fake();
80
+ expect(cnh_1.validate(cnh)).toBeTruthy();
81
+ expect(cnh).toHaveLength(11);
82
+ }
83
+ });
84
+ test('fake() - Gera fakes com máscara', () => {
85
+ for (let i = 0; i < 5; i += 1) {
86
+ const cnh = cnh_1.fake(true);
87
+ expect(cnh_1.validate(cnh)).toBeTruthy();
88
+ expect(cnh).toHaveLength(12);
89
+ }
90
+ // t.end()
91
+ });
92
+ test('dv() - Verificando se o DV gerado está correto', () => {
93
+ const list = [
94
+ { num: '501954711', expected: '65' },
95
+ { num: 583164745, expected: '75' },
96
+ { num: 690444711, expected: '17' },
97
+ ];
98
+ list.forEach((item) => {
99
+ const calcDv = cnh_1.dv(item.num);
100
+ expect(calcDv).toBe(item.expected);
101
+ expect(typeof calcDv).toBe('string');
102
+ });
103
+ });
104
+ test('mask() - Testando se a máscara foi gerada corretamente', () => {
105
+ const list = [
106
+ { value: 50195471143, expected: '501954711-43' },
107
+ { value: 58316474534, expected: '583164745-34' },
108
+ { value: 69044471146, expected: '690444711-46' },
109
+ ];
110
+ list.forEach((item) => {
111
+ const masked = cnh_1.mask(item.value);
112
+ expect(masked).toBe(item.expected);
113
+ expect(masked).toHaveLength(12);
114
+ });
115
+ });
116
+ });
117
+ //# sourceMappingURL=cnh.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cnh.test.js","sourceRoot":"","sources":["../src/cnh.test.ts"],"names":[],"mappings":"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"}
package/dist/cnpj.js ADDED
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ /**
3
+ * isCNPJ()
4
+ * Calcula se um CNPJ é válido
5
+ *
6
+ * @doc
7
+ * - CNPJ deve possuir 14 dígitos no formato 00.000.000/0000-00
8
+ *
9
+ * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal
10
+ *
11
+ * - Os caracteres 9 a 12 são a identificação das filiais da empresa.
12
+ *
13
+ * - Os caracteres 13 e 14 são os dígitos verificadores
14
+ *
15
+ * 1) Partes do número
16
+ * _______________________________ _______________ _______
17
+ * | Número | Filiais | DV |
18
+ * | 1 1 . 2 2 2 . 3 3 3 / 0 0 0 1 - X Y |
19
+ * |_______________________________|_______________|_______|
20
+ *
21
+ * 2) Cálculo do primeiro DV.
22
+ *
23
+ * - Soma-se o produto das algarismos 1 a 12 pelos números 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
24
+ *
25
+ * 1 1 2 2 2 3 3 3 0 0 0 1
26
+ * x x x x x x x x x x x x
27
+ * 5 4 3 2 9 8 7 6 5 4 3 2
28
+ * = 5 +4 +6 +4 +18 +24 +21 +18 +0 +0 +0 +2 = 102
29
+ *
30
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
31
+ * 102 / 11 tem resto 8. 11 - 3 = 8. DV1 é 8.
32
+ * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.
33
+ *
34
+ * 3) Cálculo do segundo DV.
35
+ *
36
+ * - Soma-se o produto das algarismos 1 a 13 (incluindo o DV1 calculado) pelos
37
+ * números 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.
38
+ *
39
+ * 1 1 2 2 2 3 3 3 0 0 0 1 8
40
+ * x x x x x x x x x x x x x
41
+ * 6 5 4 3 2 9 8 7 6 5 4 3 2
42
+ * = 6 +5 +8 +6 +4 +27 +24 +21 +0 +0 +0 +3 +16 = 120
43
+ *
44
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
45
+ * 120 / 11 tem resto 10. 11 - 10 = 1. DV2 é 1.
46
+ * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.
47
+ *
48
+ * Fonte: http://www.macoratti.net/alg_cnpj.htm
49
+ *
50
+ * @param {String} value Título eleitoral
51
+ * @returns {Boolean}
52
+ */
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.validate = exports.validateOrFail = exports.fake = exports.mask = exports.dv = void 0;
55
+ const utils_1 = require("./utils");
56
+ exports.dv = (value) => {
57
+ const cnpj = utils_1.clearValue(value, 12);
58
+ const blackList = utils_1.invalidListGenerator(12);
59
+ if (blackList.includes(cnpj)) {
60
+ throw new Error('CNPJ é obrigatório');
61
+ }
62
+ const sum1 = utils_1.sumElementsByMultipliers(cnpj.substring(0, 12), '543298765432');
63
+ const dv1 = utils_1.sumToDV(sum1);
64
+ const sum2 = utils_1.sumElementsByMultipliers(cnpj.substring(0, 12) + dv1, '6543298765432');
65
+ const dv2 = utils_1.sumToDV(sum2);
66
+ return `${dv1}${dv2}`;
67
+ };
68
+ /**
69
+ * Aplica uma máscara ao número informado
70
+ *
71
+ * @param {String} value Número de Processo
72
+ * @returns {String} Valor com a máscara
73
+ */
74
+ exports.mask = (value) => utils_1.applyMask(value, '00.000.000/0000-00');
75
+ /**
76
+ *
77
+ *
78
+ */
79
+ exports.fake = (withMask = false) => {
80
+ const num = utils_1.fakeNumber(12, true);
81
+ const cnpj = `${num}${exports.dv(num)}`;
82
+ if (withMask)
83
+ return exports.mask(cnpj);
84
+ return cnpj;
85
+ };
86
+ /**
87
+ * validate()
88
+ * Valida se um número de processo está correto
89
+ *
90
+ */
91
+ exports.validateOrFail = (value) => {
92
+ const cnpj = utils_1.clearValue(value, 14);
93
+ if (exports.dv(cnpj) !== cnpj.substring(12, 14)) {
94
+ throw new Error('Dígito verificador inválido');
95
+ }
96
+ return true;
97
+ };
98
+ /**
99
+ * validate()
100
+ * Valida se um número de processo está correto
101
+ *
102
+ */
103
+ exports.validate = (value) => {
104
+ try {
105
+ return exports.validateOrFail(value);
106
+ }
107
+ catch (error) {
108
+ return false;
109
+ }
110
+ };
111
+ exports.default = exports.validate;
112
+ //# sourceMappingURL=cnpj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cnpj.js","sourceRoot":"","sources":["../src/cnpj.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;;;AAEH,mCAOgB;AAEH,QAAA,EAAE,GAAG,CAAC,KAAsB,EAAU,EAAE;IACnD,MAAM,IAAI,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAElC,MAAM,SAAS,GAAG,4BAAoB,CAAC,EAAE,CAAC,CAAA;IAC1C,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;KACtC;IAED,MAAM,IAAI,GAAG,gCAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,cAAc,CAAC,CAAA;IAC5E,MAAM,GAAG,GAAG,eAAO,CAAC,IAAI,CAAC,CAAA;IAEzB,MAAM,IAAI,GAAG,gCAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,eAAe,CAAC,CAAA;IACnF,MAAM,GAAG,GAAG,eAAO,CAAC,IAAI,CAAC,CAAA;IAEzB,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,CAAA;AACvB,CAAC,CAAA;AAED;;;;;GAKG;AACU,QAAA,IAAI,GAAG,CAAC,KAAsB,EAAU,EAAE,CAAC,iBAAS,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAA;AAE9F;;;GAGG;AACU,QAAA,IAAI,GAAG,CAAC,WAAoB,KAAK,EAAU,EAAE;IACxD,MAAM,GAAG,GAAG,kBAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAEhC,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,UAAE,CAAC,GAAG,CAAC,EAAE,CAAA;IAE/B,IAAI,QAAQ;QAAE,OAAO,YAAI,CAAC,IAAI,CAAC,CAAA;IAC/B,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;GAIG;AACU,QAAA,cAAc,GAAG,CAAC,KAAsB,EAAW,EAAE;IAChE,MAAM,IAAI,GAAG,kBAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAElC,IAAI,UAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;QACvC,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,kBAAe,gBAAQ,CAAA"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ // import { isCNPJ } from './cnpj'
23
+ const cnpj_1 = __importStar(require("./cnpj"));
24
+ describe('CNPJ', () => {
25
+ test('isCNPJ() - Números válidos', () => {
26
+ const list = [
27
+ // Com máscara
28
+ '11.222.333/0001-81',
29
+ '73.797.980/0001-79',
30
+ '06.946.762/0001-61',
31
+ '96.051.576/0001-57',
32
+ '55.585.709/0001-98',
33
+ // inteiro
34
+ 99360938000180,
35
+ 23693443000100,
36
+ // string
37
+ '32432147000147',
38
+ '91951438000100',
39
+ ];
40
+ list.forEach((cnpj) => {
41
+ expect(cnpj_1.default(cnpj)).toBeTruthy();
42
+ });
43
+ });
44
+ test('validate() - Números válidos', () => {
45
+ const list = [
46
+ // Com máscara
47
+ '11.222.333/0001-81',
48
+ '73.797.980/0001-79',
49
+ '06.946.762/0001-61',
50
+ '96.051.576/0001-57',
51
+ '55.585.709/0001-98',
52
+ // inteiro
53
+ 99360938000180,
54
+ 23693443000100,
55
+ // string
56
+ '32432147000147',
57
+ '91951438000100',
58
+ ];
59
+ list.forEach((cnpj) => {
60
+ expect(cnpj_1.validate(cnpj)).toBeTruthy();
61
+ });
62
+ });
63
+ test('validate() - Números inválidos', () => {
64
+ const list = [
65
+ '53.797.980/0001-79',
66
+ '36.946.762/0001-61',
67
+ '26.051.576/0001-57',
68
+ '85.585.709/0001-98',
69
+ '39360938000180',
70
+ '93693443000100',
71
+ '12432147000147',
72
+ '61951438000100',
73
+ '11111111111111',
74
+ ];
75
+ list.forEach((cnpj) => {
76
+ expect(cnpj_1.validate(cnpj)).toBeFalsy();
77
+ });
78
+ });
79
+ test('validateOrFail() - Números inválidos', () => {
80
+ const list = [
81
+ '53.797.980/0001-79',
82
+ '36.946.762/0001-61',
83
+ '26.051.576/0001-57',
84
+ '85.585.709/0001-98',
85
+ '39360938000180',
86
+ '93693443000100',
87
+ '12432147000147',
88
+ '61951438000100',
89
+ '11111111111111',
90
+ ];
91
+ list.forEach((cnpj) => {
92
+ expect(() => cnpj_1.validateOrFail(cnpj)).toThrow();
93
+ });
94
+ });
95
+ test('Parâmetro não informado', () => {
96
+ expect(cnpj_1.default('')).toBeFalsy();
97
+ expect(cnpj_1.validate('')).toBeFalsy();
98
+ expect(() => cnpj_1.validateOrFail('')).toThrow();
99
+ expect(() => cnpj_1.dv('')).toThrow();
100
+ });
101
+ test('fake() - Gera fakes sem máscara', () => {
102
+ for (let i = 0; i < 5; i += 1) {
103
+ const cnpj = cnpj_1.fake();
104
+ expect(cnpj_1.validate(cnpj)).toBeTruthy();
105
+ expect(cnpj).toHaveLength(14);
106
+ }
107
+ });
108
+ test('fake() - Gera fakes com máscara', () => {
109
+ for (let i = 0; i < 5; i += 1) {
110
+ const cnpj = cnpj_1.fake(true);
111
+ expect(cnpj_1.validate(cnpj)).toBeTruthy();
112
+ expect(cnpj).toHaveLength(18);
113
+ }
114
+ });
115
+ test('dv() - Verificando se o DV gerado está correto', () => {
116
+ const list = [
117
+ { num: '112223330001', expected: '81' },
118
+ { num: 993609380001, expected: '80' },
119
+ { num: '324321470001', expected: '47' },
120
+ ];
121
+ list.forEach((item) => {
122
+ const calcDv = cnpj_1.dv(item.num);
123
+ expect(calcDv).toBe(item.expected);
124
+ expect(typeof calcDv).toBe('string');
125
+ });
126
+ });
127
+ test('mask() - Testando se a máscara foi gerada corretamente', () => {
128
+ const list = [
129
+ { value: '11222333000181', expected: '11.222.333/0001-81' },
130
+ { value: 99360938000180, expected: '99.360.938/0001-80' },
131
+ { value: '32432147000147', expected: '32.432.147/0001-47' },
132
+ { value: 432147000147, expected: '00.432.147/0001-47' },
133
+ ];
134
+ list.forEach((item) => {
135
+ const masked = cnpj_1.mask(item.value);
136
+ expect(masked).toBe(item.expected);
137
+ expect(masked).toHaveLength(18);
138
+ });
139
+ });
140
+ });
141
+ //# sourceMappingURL=cnpj.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cnpj.test.js","sourceRoot":"","sources":["../src/cnpj.test.ts"],"names":[],"mappings":"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"}