validation-br 1.6.2-d → 1.6.3

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 (139) hide show
  1. package/.prettierignore +1 -0
  2. package/.prettierrc.js +7 -0
  3. package/.publish/package-lock.json +4372 -0
  4. package/.publish/package.json +112 -0
  5. package/.publish/readme.md +492 -0
  6. package/dist/_exceptions/ValidationBRError.d.ts +7 -0
  7. package/dist/_exceptions/ValidationBRError.js +11 -0
  8. package/dist/_exceptions/ValidationBRError.js.map +1 -0
  9. package/dist/cnh.d.ts +98 -0
  10. package/dist/cnh.js +149 -0
  11. package/dist/cnh.js.map +1 -0
  12. package/dist/cnpj.d.ts +121 -0
  13. package/dist/cnpj.js +193 -0
  14. package/dist/cnpj.js.map +1 -0
  15. package/dist/cpf.d.ts +106 -0
  16. package/dist/cpf.js +157 -0
  17. package/dist/cpf.js.map +1 -0
  18. package/dist/index.d.ts +21 -0
  19. package/dist/index.js +42 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/judicialProcess.d.ts +133 -0
  22. package/dist/judicialProcess.js +200 -0
  23. package/dist/judicialProcess.js.map +1 -0
  24. package/dist/nup17.d.ts +103 -0
  25. package/dist/nup17.js +159 -0
  26. package/dist/nup17.js.map +1 -0
  27. package/dist/pisPasep.d.ts +88 -0
  28. package/dist/pisPasep.js +136 -0
  29. package/dist/pisPasep.js.map +1 -0
  30. package/dist/postalCode.d.ts +92 -0
  31. package/dist/postalCode.js +144 -0
  32. package/dist/postalCode.js.map +1 -0
  33. package/dist/renavam.d.ts +82 -0
  34. package/dist/renavam.js +132 -0
  35. package/dist/renavam.js.map +1 -0
  36. package/dist/tituloEleitor.d.ts +100 -0
  37. package/dist/tituloEleitor.js +157 -0
  38. package/dist/tituloEleitor.js.map +1 -0
  39. package/dist/utils.d.ts +131 -0
  40. package/dist/utils.js +190 -0
  41. package/dist/utils.js.map +1 -0
  42. package/eslint.config.js +82 -0
  43. package/jest.config.js +11 -0
  44. package/package.json +7 -9
  45. package/publish.sh +31 -0
  46. package/tsconfig.json +25 -0
  47. package/dist/test/cnh.test.d.ts +0 -1
  48. package/dist/test/cnh.test.js +0 -126
  49. package/dist/test/cnh.test.js.map +0 -1
  50. package/dist/test/cnpj.test.d.ts +0 -1
  51. package/dist/test/cnpj.test.js +0 -191
  52. package/dist/test/cnpj.test.js.map +0 -1
  53. package/dist/test/cpf.test.d.ts +0 -1
  54. package/dist/test/cpf.test.js +0 -146
  55. package/dist/test/cpf.test.js.map +0 -1
  56. package/dist/test/index.test.d.ts +0 -1
  57. package/dist/test/index.test.js +0 -93
  58. package/dist/test/index.test.js.map +0 -1
  59. package/dist/test/judicialProcess.test.d.ts +0 -1
  60. package/dist/test/judicialProcess.test.js +0 -134
  61. package/dist/test/judicialProcess.test.js.map +0 -1
  62. package/dist/test/nup17.test.d.ts +0 -1
  63. package/dist/test/nup17.test.js +0 -143
  64. package/dist/test/nup17.test.js.map +0 -1
  65. package/dist/test/pisPasep.test.d.ts +0 -1
  66. package/dist/test/pisPasep.test.js +0 -145
  67. package/dist/test/pisPasep.test.js.map +0 -1
  68. package/dist/test/postalCode.test.d.ts +0 -1
  69. package/dist/test/postalCode.test.js +0 -133
  70. package/dist/test/postalCode.test.js.map +0 -1
  71. package/dist/test/renavam.test.d.ts +0 -1
  72. package/dist/test/renavam.test.js +0 -101
  73. package/dist/test/renavam.test.js.map +0 -1
  74. package/dist/test/tituloEleitor.test.d.ts +0 -1
  75. package/dist/test/tituloEleitor.test.js +0 -128
  76. package/dist/test/tituloEleitor.test.js.map +0 -1
  77. package/dist/test/utils-applyMask.test.d.ts +0 -1
  78. package/dist/test/utils-applyMask.test.js +0 -15
  79. package/dist/test/utils-applyMask.test.js.map +0 -1
  80. package/dist/test/utils-checkRepeatedSequence.test.d.ts +0 -1
  81. package/dist/test/utils-checkRepeatedSequence.test.js +0 -18
  82. package/dist/test/utils-checkRepeatedSequence.test.js.map +0 -1
  83. package/dist/test/utils-clearValue.test.d.ts +0 -1
  84. package/dist/test/utils-clearValue.test.js +0 -59
  85. package/dist/test/utils-clearValue.test.js.map +0 -1
  86. package/dist/test/utils-fakeNumber.test.d.ts +0 -1
  87. package/dist/test/utils-fakeNumber.test.js +0 -24
  88. package/dist/test/utils-fakeNumber.test.js.map +0 -1
  89. package/dist/test/utils-insertAtPosition.test.d.ts +0 -1
  90. package/dist/test/utils-insertAtPosition.test.js +0 -16
  91. package/dist/test/utils-insertAtPosition.test.js.map +0 -1
  92. package/dist/test/utils-randomLetter.test.d.ts +0 -1
  93. package/dist/test/utils-randomLetter.test.js +0 -11
  94. package/dist/test/utils-randomLetter.test.js.map +0 -1
  95. package/dist/test/utils-removeFromPosition.test.d.ts +0 -1
  96. package/dist/test/utils-removeFromPosition.test.js +0 -12
  97. package/dist/test/utils-removeFromPosition.test.js.map +0 -1
  98. package/dist/test/utils-sumElementsByMultipliers.test.d.ts +0 -1
  99. package/dist/test/utils-sumElementsByMultipliers.test.js +0 -23
  100. package/dist/test/utils-sumElementsByMultipliers.test.js.map +0 -1
  101. package/dist/test/utils-sumToDV.test.d.ts +0 -1
  102. package/dist/test/utils-sumToDV.test.js +0 -14
  103. package/dist/test/utils-sumToDV.test.js.map +0 -1
  104. /package/{dist/src → .publish/dist}/_exceptions/ValidationBRError.d.ts +0 -0
  105. /package/{dist/src → .publish/dist}/_exceptions/ValidationBRError.js +0 -0
  106. /package/{dist/src → .publish/dist}/_exceptions/ValidationBRError.js.map +0 -0
  107. /package/{dist/src → .publish/dist}/cnh.d.ts +0 -0
  108. /package/{dist/src → .publish/dist}/cnh.js +0 -0
  109. /package/{dist/src → .publish/dist}/cnh.js.map +0 -0
  110. /package/{dist/src → .publish/dist}/cnpj.d.ts +0 -0
  111. /package/{dist/src → .publish/dist}/cnpj.js +0 -0
  112. /package/{dist/src → .publish/dist}/cnpj.js.map +0 -0
  113. /package/{dist/src → .publish/dist}/cpf.d.ts +0 -0
  114. /package/{dist/src → .publish/dist}/cpf.js +0 -0
  115. /package/{dist/src → .publish/dist}/cpf.js.map +0 -0
  116. /package/{dist/src → .publish/dist}/index.d.ts +0 -0
  117. /package/{dist/src → .publish/dist}/index.js +0 -0
  118. /package/{dist/src → .publish/dist}/index.js.map +0 -0
  119. /package/{dist/src → .publish/dist}/judicialProcess.d.ts +0 -0
  120. /package/{dist/src → .publish/dist}/judicialProcess.js +0 -0
  121. /package/{dist/src → .publish/dist}/judicialProcess.js.map +0 -0
  122. /package/{dist/src → .publish/dist}/nup17.d.ts +0 -0
  123. /package/{dist/src → .publish/dist}/nup17.js +0 -0
  124. /package/{dist/src → .publish/dist}/nup17.js.map +0 -0
  125. /package/{dist/src → .publish/dist}/pisPasep.d.ts +0 -0
  126. /package/{dist/src → .publish/dist}/pisPasep.js +0 -0
  127. /package/{dist/src → .publish/dist}/pisPasep.js.map +0 -0
  128. /package/{dist/src → .publish/dist}/postalCode.d.ts +0 -0
  129. /package/{dist/src → .publish/dist}/postalCode.js +0 -0
  130. /package/{dist/src → .publish/dist}/postalCode.js.map +0 -0
  131. /package/{dist/src → .publish/dist}/renavam.d.ts +0 -0
  132. /package/{dist/src → .publish/dist}/renavam.js +0 -0
  133. /package/{dist/src → .publish/dist}/renavam.js.map +0 -0
  134. /package/{dist/src → .publish/dist}/tituloEleitor.d.ts +0 -0
  135. /package/{dist/src → .publish/dist}/tituloEleitor.js +0 -0
  136. /package/{dist/src → .publish/dist}/tituloEleitor.js.map +0 -0
  137. /package/{dist/src → .publish/dist}/utils.d.ts +0 -0
  138. /package/{dist/src → .publish/dist}/utils.js +0 -0
  139. /package/{dist/src → .publish/dist}/utils.js.map +0 -0
package/dist/utils.js ADDED
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.sumToDV = sumToDV;
7
+ exports.checkRepeatedSequence = checkRepeatedSequence;
8
+ exports.sumElementsByMultipliers = sumElementsByMultipliers;
9
+ exports.fakeNumber = fakeNumber;
10
+ exports.clearValue = clearValue;
11
+ exports.insertAtPosition = insertAtPosition;
12
+ exports.removeFromPosition = removeFromPosition;
13
+ exports.applyMask = applyMask;
14
+ exports.randomLetter = randomLetter;
15
+ const ValidationBRError_1 = __importDefault(require("./_exceptions/ValidationBRError"));
16
+ /**
17
+ * Calcula o DV verificador a partir das regras do MOD11:
18
+ * O valor da soma é dividido por 11. O resultado é o resto da divisão. Caso o resto seja
19
+ * menor que 2, ou seja, o valor da divisão seja 10 ou 11, o resultado é 0.
20
+ *
21
+ * @param {Integer} sum Soma
22
+ * @returns {Integer}
23
+ */
24
+ function sumToDV(sum) {
25
+ return sum % 11 < 2 ? 0 : 11 - (sum % 11);
26
+ }
27
+ /**
28
+ * Checa se o número repassado possui todos os digitos iguais
29
+ *
30
+ * @example
31
+ * checkRepeatedSequence(12345678)
32
+ * // -> false
33
+ * checkRepeatedSequence(11111111)
34
+ * // -> true
35
+ *
36
+ */
37
+ function checkRepeatedSequence(value) {
38
+ return [...value].every(digit => digit === value[0]);
39
+ }
40
+ /**
41
+ * Multiplica os elementos de uma string com os elementos de outra, ou de um array
42
+ * e soma o resultado ao final
43
+ *
44
+ * @example
45
+ * sumElementsByMultipliers('123', '987') //-> 46
46
+ * sumElementsByMultipliers('123', [9, 8, 7]) //-> 46
47
+ *
48
+ * @param {String} value
49
+ * @param {String|Array} multiplier
50
+ * @returns {Integer} Somatório
51
+ */
52
+ function sumElementsByMultipliers(value, multiplier) {
53
+ return multiplier.reduce((accu, curr, i) => accu + curr * Number(value[i]), 0);
54
+ }
55
+ /**
56
+ * fakeNumber()
57
+ * Cria um número aleatório com o número de caracteres
58
+ *
59
+ * @example
60
+ * fakeNumber(8, true) // -> 00083159
61
+ * fakeNumber(4) // -> 831
62
+ *
63
+ * @param {Integer} length
64
+ * @param {Boolean} forceLength Adiciona zeros à esquerda para ter os números de caractes exatos
65
+ * @returns {String}
66
+ */
67
+ function fakeNumber(length, forceLength = false, isAlpha = false) {
68
+ let value;
69
+ if (isAlpha)
70
+ value = Math.round(Math.random() * 36 ** length).toString(36).toLocaleUpperCase();
71
+ else
72
+ value = Math.floor(Math.random() * 10 ** length).toString();
73
+ if (forceLength)
74
+ return String(value).padStart(length, '0');
75
+ return String(value);
76
+ }
77
+ /**
78
+ * Limpa um número informado, retirando caracteres diferentes de números,
79
+ * preenchendo com zeros à esquerda se for menor que o tamanho exato e
80
+ * removendo uma parte do número se for maior que tamanho definido.
81
+ *
82
+ * 1) Retira caracteres não-numéricos
83
+ * 2) Preenche com zeros à esquerda se 'value' for menor que 'length'
84
+ * 3) Remove caracteres à direita se 'value' for maior que 'length'
85
+ *
86
+ * @example
87
+ * clearValue(12345-6, 6) // -> 123456
88
+ * clearValue(12345678, 3) // -> 123
89
+ * clearValue(12345, 10) // -> 0000001234
90
+ *
91
+ * @param {Number|String} value
92
+ * @param {Number} length Tamanho exato. Se for null, só retira os caracteres não-numéricos
93
+ * @returns {String} Número com o tamanho exato
94
+ */
95
+ function clearValue(value, length = null, options) {
96
+ let clearedValue = String(value).replace(/([/.-\s]+)/gi, '');
97
+ if (options) {
98
+ const shouldRejectEmpty = options.rejectEmpty === true && clearedValue.length === 0;
99
+ if (shouldRejectEmpty) {
100
+ throw ValidationBRError_1.default.EMPTY_VALUE;
101
+ }
102
+ const shouldRejectHigherLength = options.rejectHigherLength === true && length && clearedValue.length > length;
103
+ if (shouldRejectHigherLength) {
104
+ throw ValidationBRError_1.default.MAX_LEN_EXCEDEED;
105
+ }
106
+ const shouldRejectEqualSequence = options.rejectEqualSequence === true && length;
107
+ if (shouldRejectEqualSequence) {
108
+ if (checkRepeatedSequence(clearedValue))
109
+ throw ValidationBRError_1.default.REPEATED_SEQUENCE;
110
+ }
111
+ if (length && options.fillZerosAtLeft)
112
+ clearedValue = clearedValue.padStart(length, '0');
113
+ if (length && options.trimAtRight)
114
+ clearedValue = clearedValue.substring(0, length);
115
+ }
116
+ return clearedValue;
117
+ }
118
+ /**
119
+ * insertAtPosition()
120
+ * Insere um conjunto de caracteres em um local específico de uma string
121
+ *
122
+ * @example
123
+ * insertAtPosition('AAABBB', 'C', 3) // -> AAACBBB
124
+ * insertAtPosition('000011122223445555', 99, 7) // -> 00001119922223445555
125
+ *
126
+ * @param {String|Number} value Valor original
127
+ * @param {String|Number} insertValue Valor que será inserido
128
+ * @param {String|Number} position Posição que receberá o novo valor
129
+ * @returns {String}
130
+ *
131
+ */
132
+ function insertAtPosition(value, insertValue, position) {
133
+ return `${value.substring(0, position)}${insertValue}${value.substring(position)}`;
134
+ }
135
+ /**
136
+ * removeFromPosition()
137
+ * Retira um conjunto de caracteres de um local específico de uma string
138
+ *
139
+ * @example
140
+ * removeFromPosition('00001119922223445555', 7,9) // -> 000011122223445555
141
+ * removeFromPosition('AAACBBB', 3,4) // -> AAABBB
142
+ *
143
+ * @param {String|Number} value Valor original
144
+ * @param {String|Number} startPosition
145
+ * @param {String|Number} endPosition
146
+ * @returns {String}
147
+ *
148
+ */
149
+ function removeFromPosition(value, startPosition, endPosition) {
150
+ return [value.slice(0, startPosition), value.slice(endPosition)].join('');
151
+ }
152
+ /**
153
+ * applyMask()
154
+ * Aplica uma máscara a uma string
155
+ *
156
+ * @example
157
+ * applyMask('59650000', '00.000-000') // -> 59.650-000
158
+ * applyMask('99877665544', '(00) 0 0000-0000') // -> (99) 8 7766-5544
159
+ *
160
+ * @param {String|Number} value Valor original
161
+ * @param {String} mask
162
+ * @returns {String}
163
+ *
164
+ */
165
+ function applyMask(value, mask) {
166
+ const maskLen = clearValue(mask).length;
167
+ let masked = clearValue(value, maskLen, { fillZerosAtLeft: true, trimAtRight: true });
168
+ const specialChars = ['/', '-', '.', '(', ')', ' '];
169
+ for (let position = 0; position < mask.length; position += 1) {
170
+ const current = mask[position];
171
+ if (specialChars.includes(current))
172
+ masked = insertAtPosition(masked, current, position);
173
+ }
174
+ return masked;
175
+ }
176
+ /**
177
+ * randomLetter()
178
+ * Pega uma letra maiúscula aleatoriamente
179
+ *
180
+ * @example
181
+ * randomLetter() // -> A
182
+ * randomLetter() // -> S
183
+ *
184
+ * @returns {String}
185
+ */
186
+ function randomLetter() {
187
+ const idx = Math.floor(1 + Math.random() * 26);
188
+ return String.fromCharCode(idx + 64);
189
+ }
190
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ module.exports = {
2
+ // root: true,
3
+ // extends: ['airbnb-base', 'prettier'],
4
+ // parserOptions: {
5
+ // ecmaVersion: 2018,
6
+ // sourceType: 'module',
7
+ // },
8
+ // env: {
9
+ // node: true,
10
+ // jest: true,
11
+ // },
12
+ settings: {
13
+ 'import/resolver': {
14
+ node: {
15
+ extensions: ['.js', '.ts'],
16
+ },
17
+ },
18
+ },
19
+ rules: {
20
+ // '@typescript-eslint/no-unused-vars': ['error', { varsIgnorePattern: '^_', args: 'none' }],
21
+ 'array-callback-return': 'off',
22
+ 'arrow-body-style': 'off',
23
+ curly: ['error', 'multi-line', 'consistent'],
24
+ 'class-methods-use-this': 'off',
25
+ 'consistent-return': 'warn',
26
+ 'default-case': 'off',
27
+ // 'import/extensions': ['error', 'never'],
28
+ // 'import/first': 'warn',
29
+ // 'import/no-named-as-default': 'warn',
30
+ // 'import/no-named-as-default-member': 'warn',
31
+ // 'import/no-unresolved': 'warn',
32
+ // 'import/prefer-default-export': 'off',
33
+ 'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }],
34
+ 'max-classes-per-file': 'off',
35
+ 'max-len': ['error', 120, 2, { ignoreUrls: true, ignoreTemplateLiterals: true }],
36
+ 'newline-per-chained-call': 'warn',
37
+ 'no-await-in-loop': 'off',
38
+ 'no-confusing-arrow': 'off',
39
+ 'no-console': 'off',
40
+ 'no-continue': 'off',
41
+ 'no-else-return': ['error', { allowElseIf: true }],
42
+ 'no-loop-func': 'off',
43
+ 'no-mixed-operators': 'off',
44
+ 'no-nested-ternary': 'off',
45
+ // 'no-only-tests/no-only-tests': 'error',
46
+ 'no-param-reassign': 'off',
47
+ 'no-plusplus': 'off',
48
+ 'no-prototype-builtins': 'off',
49
+ 'no-restricted-syntax': 'off',
50
+ 'no-return-assign': 'warn',
51
+ 'no-sequences': 'warn',
52
+ 'no-shadow': 'off',
53
+ 'no-underscore-dangle': 'off',
54
+ 'no-unexpected-multiline': 'off',
55
+ 'no-unused-vars': 'off',
56
+ 'no-use-before-define': ['warn', { functions: false, classes: false }],
57
+ 'prefer-destructuring': 'off',
58
+ semi: ['error', 'always'],
59
+ 'sort-imports': 'off',
60
+ 'no-unused-expressions': 'off',
61
+ quotes: ['error', 'single', { avoidEscape: true }],
62
+ // '@typescript-eslint/ban-types': 'error',
63
+ },
64
+ // overrides: [
65
+ // {
66
+ // files: ['*.ts'],
67
+ // rules: {
68
+ // 'no-dupe-class-members': 'off',
69
+ // 'no-undef': 'off',
70
+ // '@typescript-eslint/explicit-function-return-type': 'error',
71
+ // },
72
+ // },
73
+ // {
74
+ // files: ['*.d.ts'],
75
+ // rules: {
76
+ // 'no-useless-constructor': 'off', // crashes on constructor declaration in .d.ts files
77
+ // },
78
+ // },
79
+ // ],
80
+ // plugins: ['no-only-tests', '@typescript-eslint'],
81
+ ignores: ['dist/*', '/node_modules/**'],
82
+ };
package/jest.config.js ADDED
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ moduleFileExtensions: ['ts', 'js'],
3
+ transform: {
4
+ '^.+\\.(ts|tsx)$': ['ts-jest', { /* ts-jest config goes here in Jest */ }],
5
+ },
6
+ testRegex: '(/test/.*\\.(test|spec))\\.(jsx?|tsx?)$',
7
+ testEnvironment: 'node',
8
+ coverageDirectory: './coverage/',
9
+ collectCoverage: true,
10
+ coverageProvider: 'v8',
11
+ }
package/package.json CHANGED
@@ -1,21 +1,19 @@
1
1
  {
2
2
  "name": "validation-br",
3
3
  "description": "Brazilian personal documents validation - cpf, cnpj, titulo, pis/pasep, cnh, renavam, processos judiciais, protocolo federal, código de rastreamento dos correios",
4
- "version": "1.6.2-d",
4
+ "version": "1.6.3",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
- "files": [
8
- "dist",
9
- "package.json",
10
- "package-lock.json",
11
- "readme.md"
12
- ],
7
+
8
+ "publishConfig": {
9
+ "directory": ".publish"
10
+ },
13
11
 
14
12
  "author": "Cláudio Medeiros <klawdyo@gmail.com>",
15
13
  "license": "MIT",
16
14
  "scripts": {
17
- "build": "echo 'Executa o build' && rm -r ./dist && tsc",
18
- "prepublish": "./publish.sh",
15
+ "build": "tsc",
16
+ "prepublishOnly": "./publish.sh",
19
17
  "test": "jest",
20
18
  "test:watch": "jest --watch",
21
19
  "test:coverage": "jest --collectCoverageFrom=src/**/*.ts --coverage",
package/publish.sh ADDED
@@ -0,0 +1,31 @@
1
+ #!/bin/bash
2
+
3
+ echo 'Inicia execução do publish'
4
+
5
+ rm -r ./.publish
6
+ mkdir -p ./.publish/dist
7
+
8
+
9
+ # Remove o dist originalmente para não deixar lixo
10
+ # echo 'Remove o ./dist para não deixar lixo'
11
+ # rm dist -r
12
+
13
+ # Executa o build do typescript
14
+ # echo 'Executa o build do typescript'
15
+ tsc
16
+
17
+
18
+ # Remove os testes copiadps pelo build
19
+ # rm -r dist/test
20
+
21
+ # Move o conteúdo do dist/src para dentro de dist
22
+ cp package*.json ./.publish/
23
+ cp readme.md ./.publish/
24
+ cp -r dist/src/* ./.publish/dist/
25
+
26
+ # Remove o dist/src
27
+ # rm dist/src -r
28
+ # rm dist/test -r
29
+
30
+ # Copia package.json, package-lock.json, readme.md para dentro de dist
31
+ # cp package*.json readme.md dist
package/tsconfig.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": "src",
4
+ "module": "commonjs",
5
+ "esModuleInterop": true,
6
+ "target": "ES2018",
7
+ "moduleResolution": "node",
8
+ "sourceMap": true,
9
+ "outDir": "./dist",
10
+ "declaration": true,
11
+ "noImplicitAny": true,
12
+ "noImplicitReturns": true,
13
+ "noImplicitThis": true,
14
+ "strict": true,
15
+ "allowJs": false,
16
+ "types": ["node", "jest"],
17
+ "typeRoots": ["node_modules/@types", "index.d.ts"],
18
+ "lib": ["ES2022"],
19
+ "paths": {
20
+ "*": ["node_modules/*"]
21
+ }
22
+ },
23
+ "exclude": ["./tsconfig.json"],
24
+ "include": ["./src/**/*", "./test/**/*"]
25
+ }
@@ -1 +0,0 @@
1
- export {};
@@ -1,126 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const cnh_1 = __importStar(require("../src/cnh"));
37
- const _cnh = __importStar(require("../src/cnh"));
38
- describe('CNH', () => {
39
- test.each([
40
- // como inteiro
41
- 50195131143,
42
- 58316794534,
43
- 50195471165,
44
- // como string
45
- '69044271146',
46
- '46190906839',
47
- // com máscara
48
- '624729276-37',
49
- ])('isCNH() - Números válidos', (item) => {
50
- expect((0, cnh_1.default)(item)).toBeTruthy();
51
- expect(_cnh.validate(item)).toBeTruthy();
52
- });
53
- test.each([
54
- // como inteiro
55
- 50195131143,
56
- 58316794534,
57
- // como string
58
- '69044271146',
59
- '46190906839',
60
- // com máscara
61
- '624729276-37',
62
- ])('validate() - Números válidos', (item) => {
63
- // t.true(isCNH(cnh), `CNH ${cnh} deve ser válida`)
64
- expect((0, cnh_1.validate)(item)).toBeTruthy();
65
- });
66
- test.each([
67
- //
68
- '50195471143',
69
- '58316474534',
70
- '69044471146',
71
- '33333333333',
72
- '88888888888'
73
- ])('validate() - Números inválidos', (item) => {
74
- expect((0, cnh_1.validate)(item)).toBeFalsy();
75
- });
76
- test.each(['50195471143', '58316474534', '69044471146', '33333333333', '88888888888'])('validateOrFail() - Números inválidos', (item) => {
77
- expect(() => (0, cnh_1.validateOrFail)(item)).toThrow();
78
- });
79
- test('Parâmetro não informado', () => {
80
- expect((0, cnh_1.default)('')).toBeFalsy();
81
- expect((0, cnh_1.validate)('')).toBeFalsy();
82
- expect(() => (0, cnh_1.validateOrFail)('')).toThrow();
83
- expect(() => (0, cnh_1.dv)('')).toThrow();
84
- });
85
- test.each([...Array(5)])('fake() - Gera fakes sem máscara', () => {
86
- const cnh = (0, cnh_1.fake)();
87
- expect((0, cnh_1.validate)(cnh)).toBeTruthy();
88
- expect(cnh).toHaveLength(11);
89
- });
90
- test.each([...Array(5)])('fake() - Gera fakes com máscara', () => {
91
- const cnh = (0, cnh_1.fake)(true);
92
- expect((0, cnh_1.validate)(cnh)).toBeTruthy();
93
- expect(cnh).toHaveLength(12);
94
- });
95
- test.each([
96
- { value: '501954711', expected: '65' },
97
- { value: 583164745, expected: '75' },
98
- { value: 690444711, expected: '17' },
99
- ])('dv() - Verificando se o DV gerado está correto', (item) => {
100
- const calcDv = (0, cnh_1.dv)(item.value);
101
- expect(calcDv).toBe(item.expected);
102
- expect(typeof calcDv).toBe('string');
103
- });
104
- test.each([
105
- { value: 50195471143, expected: '501954711-43' },
106
- { value: 58316474534, expected: '583164745-34' },
107
- { value: 69044471146, expected: '690444711-46' },
108
- ])('mask() - Testando se a máscara foi gerada corretamente', (item) => {
109
- const masked = (0, cnh_1.mask)(item.value);
110
- expect(masked).toBe(item.expected);
111
- expect(masked).toHaveLength(12);
112
- });
113
- test.each([
114
- { value: '501954711-43', expected: '50195471143' },
115
- { value: '583164745-34', expected: '58316474534' },
116
- { value: '690444711-46', expected: '69044471146' },
117
- { value: '50195471143', expected: '50195471143' },
118
- { value: '58316474534', expected: '58316474534' },
119
- { value: '69044471146', expected: '69044471146' },
120
- ])('normalize() - Testando se remove a máscara corretamente', (item) => {
121
- const normalized = (0, cnh_1.normalize)(item.value);
122
- expect(normalized).toBe(item.expected);
123
- expect(normalized).toHaveLength(11);
124
- });
125
- });
126
- //# sourceMappingURL=cnh.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cnh.test.js","sourceRoot":"","sources":["../../test/cnh.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};