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
@@ -0,0 +1,16 @@
1
+ const { sumToDV } = require('./utils')
2
+
3
+ describe('sumToDV()', () => {
4
+ test('Os resultados devem ser os esperados', () => {
5
+ const list = [
6
+ { value: 102, expected: 8 },
7
+ { value: 120, expected: 1 },
8
+ { value: 162, expected: 3 },
9
+ { value: 179, expected: 8 },
10
+ ]
11
+
12
+ list.forEach((item) => {
13
+ expect(sumToDV(item.value)).toBe(item.expected)
14
+ })
15
+ })
16
+ })
package/src/utils.ts ADDED
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Calcula o DV verificador a partir das regras do MOD11:
3
+ * O valor da soma é dividido por 11. O resultado é o resto da divisão. Caso o resto seja
4
+ * menor que 2, ou seja, o valor da divisão seja 10 ou 11, o resultado é 0.
5
+ *
6
+ * @param {Integer} sum Soma
7
+ * @returns {Integer}
8
+ */
9
+ export function sumToDV(sum: number): number {
10
+ return sum % 11 < 2 ? 0 : 11 - (sum % 11)
11
+ }
12
+
13
+ /**
14
+ * Cria uma lista de valores repetidos no tamanho do documento para eliminar
15
+ * valores que já conhecemos como inválidos
16
+ *
17
+ * @example
18
+ * invalidListGenerator(10, 11)
19
+ * //-> [00000000000, 11111111111, ....., 99999999999]
20
+ *
21
+ * @param {Integer} length Número de itens do array
22
+ * @param {Integer} size Tamanho da string gerada
23
+ * @returns {Array} Lista de valores
24
+ */
25
+ export function invalidListGenerator(size: number): string[] {
26
+ return [...Array(10).keys()].map((f) => String(f).repeat(size))
27
+ }
28
+
29
+ /**
30
+ * Multiplica os elementos de uma string com os elementos de outra, ou de um array
31
+ * e soma o resultado ao final
32
+ *
33
+ * @example
34
+ * sumElementsByMultipliers('123', '987') //-> 46
35
+ * sumElementsByMultipliers('123', [9, 8, 7]) //-> 46
36
+ *
37
+ * @param {String} value
38
+ * @param {String|Array} multiplier
39
+ * @returns {Integer} Somatório
40
+ */
41
+ export function sumElementsByMultipliers(value: string, multiplier: string | number[]): number {
42
+ if (typeof multiplier === 'string') multiplier = multiplier.split('').map((n) => Number(n))
43
+
44
+ return multiplier.reduce(
45
+ (accu: number, curr: any, i: number) => accu + curr * Number(value.charAt(i)),
46
+ 0,
47
+ )
48
+ }
49
+
50
+ /**
51
+ * fakeNumber()
52
+ * Cria um número aleatório com o número de caracteres
53
+ *
54
+ * @example
55
+ * fakeNumber(8, true) // -> 00083159
56
+ * fakeNumber(4) // -> 831
57
+ *
58
+ * @param {Integer} length
59
+ * @param {Boolean} forceLength Adiciona zeros à esquerda para ter os números de caractes exatos
60
+ * @returns {String}
61
+ */
62
+ export function fakeNumber(length: number, forceLength: boolean = false): number | string {
63
+ const value = (Math.random() * 10 ** length).toFixed(0)
64
+
65
+ if (forceLength) return value.padStart(length, '0')
66
+
67
+ return +value
68
+ }
69
+
70
+ /**
71
+ * Limpa um número informado, retirando caracteres diferentes de números,
72
+ * preenchendo com zeros à esquerda se for menor que o tamanho exato e
73
+ * removendo uma parte do número se for maior que tamanho definido.
74
+ *
75
+ * 1) Retira caracteres não-numéricos
76
+ * 2) Preenche com zeros à esquerda se 'value' for menor que 'length'
77
+ * 3) Remove caracteres à direita se 'value' for maior que 'length'
78
+ *
79
+ * @example
80
+ * clearValue(12345-6, 6) // -> 123456
81
+ * clearValue(12345678, 3) // -> 123
82
+ * clearValue(12345, 10) // -> 0000001234
83
+ *
84
+ * @param {Number|String} value
85
+ * @param {Number} length Tamanho exato. Se for null, só retira os caracteres não-numéricos
86
+ * @returns {String} Número com o tamanho exato
87
+ */
88
+ export function clearValue(value: string | number, length: number | null = null): string {
89
+ const clearedValue = String(value).replace(/([^\d]+)/gi, '')
90
+
91
+ if (!length || clearedValue.length === length) return clearedValue
92
+
93
+ if (clearedValue.length > length) return clearedValue.substring(0, length)
94
+ return clearedValue.padStart(length, '0')
95
+ }
96
+
97
+ /**
98
+ * insertAtPosition()
99
+ * Insere um conjunto de caracteres em um local específico de uma string
100
+ *
101
+ * @example
102
+ * insertAtPosition('AAABBB', 'C', 3) // -> AAACBBB
103
+ * insertAtPosition('000011122223445555', 99, 7) // -> 00001119922223445555
104
+ *
105
+ * @param {String|Number} value Valor original
106
+ * @param {String|Number} insertValue Valor que será inserido
107
+ * @param {String|Number} position Posição que receberá o novo valor
108
+ * @returns {String}
109
+ *
110
+ */
111
+ export function insertAtPosition(value: string, insertValue: string, position: number): string {
112
+ return `${value.substring(0, position)}${insertValue}${value.substring(position)}`
113
+ }
114
+
115
+ /**
116
+ * removeFromPosition()
117
+ * Retira um conjunto de caracteres de um local específico de uma string
118
+ *
119
+ * @example
120
+ * removeFromPosition('00001119922223445555', 7,9) // -> 000011122223445555
121
+ * removeFromPosition('AAACBBB', 3,4) // -> AAABBB
122
+ *
123
+ * @param {String|Number} value Valor original
124
+ * @param {String|Number} startPosition
125
+ * @param {String|Number} endPosition
126
+ * @returns {String}
127
+ *
128
+ */
129
+ export function removeFromPosition(
130
+ value: string,
131
+ startPosition: number,
132
+ endPosition: number,
133
+ ): string {
134
+ return [value.slice(0, startPosition), value.slice(endPosition)].join('')
135
+ }
136
+
137
+ /**
138
+ * applyMask()
139
+ * Aplica uma máscara a uma string
140
+ *
141
+ * @example
142
+ * applyMask('59650000', '00.000-000') // -> 59.650-000
143
+ * applyMask('99877665544', '(00) 0 0000-0000') // -> (99) 8 7766-5544
144
+ *
145
+ * @param {String|Number} value Valor original
146
+ * @param {String} mask
147
+ * @returns {String}
148
+ *
149
+ */
150
+ export function applyMask(value: string | number, mask: string): string {
151
+ const maskLen = clearValue(mask).length
152
+ let masked = clearValue(value, maskLen)
153
+ const specialChars = ['/', '-', '.', '(', ')', ' ']
154
+
155
+ for (let position = 0; position < mask.length; position += 1) {
156
+ const current = mask[position]
157
+ if (specialChars.includes(current)) masked = insertAtPosition(masked, current, position)
158
+ }
159
+
160
+ return masked
161
+ }
162
+
163
+ // module.exports = {
164
+ // sumToDV,
165
+ // invalidListGenerator,
166
+ // sumElementsByMultipliers,
167
+ // fakeNumber,
168
+ // applyMask,
169
+ // clearValue,
170
+ // insertAtPosition,
171
+ // removeFromPosition,
172
+ // }
package/tsconfig.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": "src",
4
+ "module": "commonjs",
5
+ "esModuleInterop": true,
6
+ "target": "es6",
7
+ "moduleResolution": "node",
8
+ "sourceMap": true,
9
+ "outDir": "./dist",
10
+ "noImplicitAny": true,
11
+ "noImplicitReturns": true,
12
+ "noImplicitThis": true,
13
+ "strict": true,
14
+ "allowJs": true,
15
+ "types": ["node", "jest"],
16
+ "typeRoots": ["node_modules/@types", "index.d.ts"],
17
+ "lib": ["es6"],
18
+ "paths": {
19
+ "*": ["node_modules/*"]
20
+ }
21
+ },
22
+ "include": ["./src/**/*"]
23
+ }
package/.babelrc DELETED
@@ -1,15 +0,0 @@
1
- {
2
- "presets": [
3
- [
4
- "@babel/preset-env",
5
- {
6
- "targets": {
7
- "chrome": "58",
8
- "ie": "11"
9
- }
10
- },
11
- "minify"
12
- ]
13
- ],
14
- "plugins": ["@babel/plugin-transform-runtime"]
15
- }
package/.prettierrc DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "semi": true,
3
- "arrowParens": "always",
4
- "bracketSpacing": true,
5
- "endOfLine": "lf",
6
- "singleQuote": true,
7
- "trailingComma": "es5",
8
- "useTabs": false
9
- }
@@ -1,77 +0,0 @@
1
- "use strict";
2
-
3
- var _require = require('../lib/utils'),
4
- sumElementsByMultipliers = _require.sumElementsByMultipliers,
5
- sumToDV = _require.sumToDV,
6
- invalidListGenerator = _require.invalidListGenerator;
7
- /**
8
- * isCNH()
9
- * Calcula se uma CNH é válida
10
- *
11
- * @doc
12
- * CNH deve possuir 11 caracteres
13
- *
14
- * - Os caracteres 1 a 9 são números sequenciais.
15
- *
16
- *
17
- * - Os caracteres 10 e 11 são dígitos verificadores.
18
- *
19
- * 1) Partes do número
20
- * ____________________________ ______
21
- * | Número | D V |
22
- * | 5 8 3 1 6 7 9 4 5 3 4 |
23
- * |____________________________|_____|
24
- *
25
- * 2) Cálculo do primeiro DV.
26
- *
27
- * - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.
28
- *
29
- * 5 8 3 1 6 7 9 4 5
30
- * x x x x x x x x x
31
- * 2 3 4 5 6 7 8 9 10
32
- * = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294
33
- *
34
- * - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o
35
- * resto for 10, o DV1 é 0.
36
- *
37
- * 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3
38
- * DV1 = 3
39
- *
40
- * 3) Cálculo do segundo DV
41
- *
42
- * - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere
43
- * que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será
44
- * multiplicado por 2 e ficará no final.
45
- *
46
- * 5 8 3 1 6 7 9 4 5 3
47
- * x x x x x x x x x x
48
- * 3 4 5 6 7 8 9 10 11 2
49
- * = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348
50
- *
51
- * 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.
52
- * DV2 = 4
53
- *
54
- * - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o
55
- * resto for 10, o DV2 é 0.
56
- *
57
- * Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972
58
- *
59
- * @param {String} value Título eleitoral
60
- * @returns {Boolean}
61
- */
62
-
63
-
64
- var isCNH = function isCNH() {
65
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
66
- var cnh = value.replace(/[^\d]+/g, '');
67
- var invalidList = invalidListGenerator(11);
68
- if (!cnh || invalidList.includes(cnh) || cnh.length !== 11) return false;
69
- var sum1 = sumElementsByMultipliers(cnh.substr(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);
70
- var sum2 = sumElementsByMultipliers(cnh.substr(0, 10), [3, 4, 5, 6, 7, 8, 9, 10, 11, 2]);
71
- var dv1 = sumToDV(sum1);
72
- var dv2 = sumToDV(sum2);
73
- return "".concat(dv1).concat(dv2) === cnh.substr(9, 2);
74
- };
75
-
76
- module.exports = isCNH;
77
- //# sourceMappingURL=cnh.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/documents/cnh.js"],"names":["require","sumElementsByMultipliers","sumToDV","invalidListGenerator","isCNH","value","cnh","replace","invalidList","includes","length","sum1","substr","sum2","dv1","dv2","module","exports"],"mappings":";;AAAA,eAAoEA,OAAO,CAAC,cAAD,CAA3E;AAAA,IAAQC,wBAAR,YAAQA,wBAAR;AAAA,IAAkCC,OAAlC,YAAkCA,OAAlC;AAAA,IAA2CC,oBAA3C,YAA2CA,oBAA3C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,KAAK,GAAG,SAARA,KAAQ,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AAC5B,MAAMC,GAAG,GAAGD,KAAK,CAACE,OAAN,CAAc,SAAd,EAAyB,EAAzB,CAAZ;AAEA,MAAMC,WAAW,GAAGL,oBAAoB,CAAC,EAAD,CAAxC;AACA,MAAI,CAACG,GAAD,IAAQE,WAAW,CAACC,QAAZ,CAAqBH,GAArB,CAAR,IAAqCA,GAAG,CAACI,MAAJ,KAAe,EAAxD,EAA4D,OAAO,KAAP;AAE5D,MAAMC,IAAI,GAAGV,wBAAwB,CAACK,GAAG,CAACM,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAD,EAAmB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,EAAzB,CAAnB,CAArC;AACA,MAAMC,IAAI,GAAGZ,wBAAwB,CAACK,GAAG,CAACM,MAAJ,CAAW,CAAX,EAAc,EAAd,CAAD,EAAoB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,EAAtB,EAA0B,EAA1B,EAA8B,CAA9B,CAApB,CAArC;AAEA,MAAME,GAAG,GAAGZ,OAAO,CAACS,IAAD,CAAnB;AACA,MAAMI,GAAG,GAAGb,OAAO,CAACW,IAAD,CAAnB;AAEA,SAAO,UAAGC,GAAH,SAASC,GAAT,MAAmBT,GAAG,CAACM,MAAJ,CAAW,CAAX,EAAc,CAAd,CAA1B;AACD,CAbD;;AAeAI,MAAM,CAACC,OAAP,GAAiBb,KAAjB","sourcesContent":["const { sumElementsByMultipliers, sumToDV, invalidListGenerator } = require('../lib/utils');\n\n/**\n * isCNH()\n * Calcula se uma CNH é válida\n *\n * @doc\n * CNH deve possuir 11 caracteres\n *\n * - Os caracteres 1 a 9 são números sequenciais.\n *\n *\n * - Os caracteres 10 e 11 são dígitos verificadores.\n *\n * 1) Partes do número\n * ____________________________ ______\n * | Número | D V |\n * | 5 8 3 1 6 7 9 4 5 3 4 |\n * |____________________________|_____|\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 9 pelos números 2, 3, 4, 5, 6, 7, 8, 9, 10.\n *\n * 5 8 3 1 6 7 9 4 5\n * x x x x x x x x x\n * 2 3 4 5 6 7 8 9 10\n * = 10 +24 +12 +5 +36 +49 +72 +36 +50 = 294\n *\n * - O somatório encontrado é dividido por 11. O DV1 é 11 subtraído do resto da divisão. Se o\n * resto for 10, o DV1 é 0.\n *\n * 2.1) 294 / 11 tem resto igual a 8. 11-7 = 3\n * DV1 = 3\n *\n * 3) Cálculo do segundo DV\n *\n * - Soma-se o produto das algarismos 1 a 9 juntamente com o 10 caractere\n * que é o DV1, pelos números 3, 4, 5, 6, 7, 8, 9, 10, 11, 2. O DV1 será\n * multiplicado por 2 e ficará no final.\n *\n * 5 8 3 1 6 7 9 4 5 3\n * x x x x x x x x x x\n * 3 4 5 6 7 8 9 10 11 2\n * = 10 +24 +12 +5 +36 +49 +72 +36 +50 +6 = 348\n *\n * 3.1) 348 / 11 tem resto igual a 7. 11 - 7 = 4.\n * DV2 = 4\n *\n * - O somatório encontrado é dividido por 11. O DV2 é 11 subtraído do resto da divisão. Se o\n * resto for 10, o DV2 é 0.\n *\n * Fonte: https://www.devmedia.com.br/forum/validacao-de-cnh/372972\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\nconst isCNH = (value = '') => {\n const cnh = value.replace(/[^\\d]+/g, '');\n\n const invalidList = invalidListGenerator(11);\n if (!cnh || invalidList.includes(cnh) || cnh.length !== 11) return false;\n\n const sum1 = sumElementsByMultipliers(cnh.substr(0, 9), [2, 3, 4, 5, 6, 7, 8, 9, 10]);\n const sum2 = sumElementsByMultipliers(cnh.substr(0, 10), [3, 4, 5, 6, 7, 8, 9, 10, 11, 2]);\n\n const dv1 = sumToDV(sum1);\n const dv2 = sumToDV(sum2);\n\n return `${dv1}${dv2}` === cnh.substr(9, 2);\n};\n\nmodule.exports = isCNH;\n"],"file":"cnh.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/documents/cnpj.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","isCNPJ","value","cnpj","replace","blackList","length","includes","sum1","substr","sum2","dv1","dv2","Number","charAt","module","exports"],"mappings":";;AAAA,eAAoEA,OAAO,CAAC,cAAD,CAA3E;AAAA,IAAQC,oBAAR,YAAQA,oBAAR;AAAA,IAA8BC,wBAA9B,YAA8BA,wBAA9B;AAAA,IAAwDC,OAAxD,YAAwDA,OAAxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,MAAM,GAAG,SAATA,MAAS,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AAC7B,MAAMC,IAAI,GAAGD,KAAK,CAACE,OAAN,CAAc,SAAd,EAAyB,EAAzB,CAAb;AAEA,MAAMC,SAAS,GAAGP,oBAAoB,CAAC,EAAD,CAAtC;AACA,MAAI,CAACK,IAAD,IAASA,IAAI,CAACG,MAAL,KAAgB,EAAzB,IAA+BD,SAAS,CAACE,QAAV,CAAmBJ,IAAnB,CAAnC,EAA6D,OAAO,KAAP;AAE7D,MAAMK,IAAI,GAAGT,wBAAwB,CAACI,IAAI,CAACM,MAAL,CAAY,CAAZ,EAAe,EAAf,CAAD,EAAqB,cAArB,CAArC;AACA,MAAMC,IAAI,GAAGX,wBAAwB,CAACI,IAAI,CAACM,MAAL,CAAY,CAAZ,EAAe,EAAf,CAAD,EAAqB,eAArB,CAArC;AAEA,MAAME,GAAG,GAAGX,OAAO,CAACQ,IAAD,CAAnB;AACA,MAAMI,GAAG,GAAGZ,OAAO,CAACU,IAAD,CAAnB;AAEA,MAAIC,GAAG,KAAKE,MAAM,CAACV,IAAI,CAACW,MAAL,CAAY,EAAZ,CAAD,CAAlB,EAAqC,OAAO,KAAP;AACrC,MAAIF,GAAG,KAAKC,MAAM,CAACV,IAAI,CAACW,MAAL,CAAY,EAAZ,CAAD,CAAlB,EAAqC,OAAO,KAAP;AAErC,SAAO,IAAP;AACD,CAhBD;;AAkBAC,MAAM,CAACC,OAAP,GAAiBf,MAAjB","sourcesContent":["const { invalidListGenerator, sumElementsByMultipliers, sumToDV } = require('../lib/utils');\n/**\n * isCNPJ()\n * Calcula se um CNPJ é válido\n *\n * @doc\n * - CNPJ deve possuir 14 dígitos no formato 00.000.000/0000-00\n *\n * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal\n *\n * - Os caracteres 9 a 12 são a identificação das filiais da empresa.\n *\n * - Os caracteres 13 e 14 são os dígitos verificadores\n *\n * 1) Partes do número\n * _______________________________ _______________ _______\n * | Número | Filiais | DV |\n * | 1 1 . 2 2 2 . 3 3 3 / 0 0 0 1 - X Y |\n * |_______________________________|_______________|_______|\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 12 pelos números 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 1 1 2 2 2 3 3 3 0 0 0 1\n * x x x x x x x x x x x x\n * 5 4 3 2 9 8 7 6 5 4 3 2\n * = 5 +4 +6 +4 +18 +24 +21 +18 +0 +0 +0 +2 = 102\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 102 / 11 tem resto 8. 11 - 3 = 8. DV1 é 8.\n * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.\n *\n * 3) Cálculo do segundo DV.\n *\n * - Soma-se o produto das algarismos 1 a 13 (incluindo o DV1 calculado) pelos\n * números 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.\n *\n * 1 1 2 2 2 3 3 3 0 0 0 1 8\n * x x x x x x x x x x x x x\n * 6 5 4 3 2 9 8 7 6 5 4 3 2\n * = 6 +5 +8 +6 +4 +27 +24 +21 +0 +0 +0 +3 +16 = 120\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 120 / 11 tem resto 10. 11 - 10 = 1. DV2 é 1.\n * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.\n *\n * Fonte: http://www.macoratti.net/alg_cnpj.htm\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\nconst isCNPJ = (value = '') => {\n const cnpj = value.replace(/[^\\d]+/g, '');\n\n const blackList = invalidListGenerator(14);\n if (!cnpj || cnpj.length !== 14 || blackList.includes(cnpj)) return false;\n\n const sum1 = sumElementsByMultipliers(cnpj.substr(0, 12), '543298765432');\n const sum2 = sumElementsByMultipliers(cnpj.substr(0, 13), '6543298765432');\n\n const dv1 = sumToDV(sum1);\n const dv2 = sumToDV(sum2);\n\n if (dv1 !== Number(cnpj.charAt(12))) return false;\n if (dv2 !== Number(cnpj.charAt(13))) return false;\n\n return true;\n};\n\nmodule.exports = isCNPJ;\n"],"file":"cnpj.js"}
@@ -1,83 +0,0 @@
1
- "use strict";
2
-
3
- var _require = require('../lib/utils'),
4
- invalidListGenerator = _require.invalidListGenerator,
5
- sumElementsByMultipliers = _require.sumElementsByMultipliers,
6
- sumToDV = _require.sumToDV;
7
- /**
8
- * isCPF()
9
- * Calcula se um CPF é válido
10
- *
11
- * @doc
12
- * CPF deve possuir 11 dígitos.
13
- *
14
- * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal
15
- *
16
- * - O caractere 9 refere-se à região fiscal emissora do documento
17
- * 1 – DF, GO, MS, MT e TO
18
- * 2 – AC, AM, AP, PA, RO e RR
19
- * 3 – CE, MA e PI
20
- * 4 – AL, PB, PE, RN
21
- * 5 – BA e SE
22
- * 6 – MG
23
- * 7 – ES e RJ
24
- * 8 – SP
25
- * 9 – PR e SC
26
- * 0 – RS
27
- *
28
- * - Os caracteres 10 e 11 são dígitos verificadores.
29
- *
30
- * 1) Partes do número
31
- * ------------------------------------------------
32
- * | Número | R | DV |
33
- * 2 8 0 . 0 1 2 . 3 8 9 - 3 8
34
- *
35
- * 2) Cálculo do primeiro DV.
36
- *
37
- * - Soma-se o produto das algarismos 1 a 9 pelos números 10, 9, 8, 7, 6, 5, 4, 3, 2
38
- *
39
- * 2 8 0 0 1 2 3 8 9
40
- * x x x x x x x x x
41
- * 10 9 8 7 6 5 4 3 2
42
- * = 20 +72 +0 +0 +6 +10 +12 +24 +18 = 162
43
- *
44
- * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
45
- * 162 / 11 tem resto 8. 11 - 8 = 3. DV1 é 3.
46
- * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.
47
- *
48
- * 3) Cálculo do segundo DV.
49
- *
50
- * - Soma-se o produto das algarismos 1 a 10 pelos números 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
51
- *
52
- * 2 8 0 0 1 2 3 8 9 3
53
- * x x x x x x x x x x
54
- * 11 10 9 8 7 6 5 4 3 2
55
- * = 22 +80 +0 +0 +7 +12 +15 +32 +27 = 201
56
- *
57
- * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
58
- * 201 / 11 tem resto 3. 11 - 3 = 8. DV2 é 8.
59
- * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.
60
- *
61
- * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-cpf/
62
- *
63
- * @param {String} value Título eleitoral
64
- * @returns {Boolean}
65
- */
66
-
67
-
68
- var isCPF = function isCPF() {
69
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
70
- var cpf = value.replace(/[^\d]+/g, '');
71
- var blackList = invalidListGenerator(11);
72
- if (!cpf || cpf.length !== 11 || blackList.includes(cpf)) return false;
73
- var sum1 = sumElementsByMultipliers(cpf.substr(0, 9), [10, 9, 8, 7, 6, 5, 4, 3, 2]);
74
- var sum2 = sumElementsByMultipliers(cpf.substr(0, 10), [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]);
75
- var dv1 = sumToDV(sum1);
76
- var dv2 = sumToDV(sum2);
77
- if (dv1 !== Number(cpf.charAt(9))) return false;
78
- if (dv2 !== Number(cpf.charAt(10))) return false;
79
- return true;
80
- };
81
-
82
- module.exports = isCPF;
83
- //# sourceMappingURL=cpf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/documents/cpf.js"],"names":["require","invalidListGenerator","sumElementsByMultipliers","sumToDV","isCPF","value","cpf","replace","blackList","length","includes","sum1","substr","sum2","dv1","dv2","Number","charAt","module","exports"],"mappings":";;AAAA,eAAoEA,OAAO,CAAC,cAAD,CAA3E;AAAA,IAAQC,oBAAR,YAAQA,oBAAR;AAAA,IAA8BC,wBAA9B,YAA8BA,wBAA9B;AAAA,IAAwDC,OAAxD,YAAwDA,OAAxD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,KAAK,GAAG,SAARA,KAAQ,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AAC5B,MAAMC,GAAG,GAAGD,KAAK,CAACE,OAAN,CAAc,SAAd,EAAyB,EAAzB,CAAZ;AAEA,MAAMC,SAAS,GAAGP,oBAAoB,CAAC,EAAD,CAAtC;AACA,MAAI,CAACK,GAAD,IAAQA,GAAG,CAACG,MAAJ,KAAe,EAAvB,IAA6BD,SAAS,CAACE,QAAV,CAAmBJ,GAAnB,CAAjC,EAA0D,OAAO,KAAP;AAE1D,MAAMK,IAAI,GAAGT,wBAAwB,CAACI,GAAG,CAACM,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAD,EAAmB,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,CAAX,EAAc,CAAd,EAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAAnB,CAArC;AACA,MAAMC,IAAI,GAAGX,wBAAwB,CAACI,GAAG,CAACM,MAAJ,CAAW,CAAX,EAAc,EAAd,CAAD,EAAoB,CAAC,EAAD,EAAK,EAAL,EAAS,CAAT,EAAY,CAAZ,EAAe,CAAf,EAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB,EAA2B,CAA3B,EAA8B,CAA9B,CAApB,CAArC;AAEA,MAAME,GAAG,GAAGX,OAAO,CAACQ,IAAD,CAAnB;AACA,MAAMI,GAAG,GAAGZ,OAAO,CAACU,IAAD,CAAnB;AAEA,MAAIC,GAAG,KAAKE,MAAM,CAACV,GAAG,CAACW,MAAJ,CAAW,CAAX,CAAD,CAAlB,EAAmC,OAAO,KAAP;AACnC,MAAIF,GAAG,KAAKC,MAAM,CAACV,GAAG,CAACW,MAAJ,CAAW,EAAX,CAAD,CAAlB,EAAoC,OAAO,KAAP;AAEpC,SAAO,IAAP;AACD,CAhBD;;AAkBAC,MAAM,CAACC,OAAP,GAAiBf,KAAjB","sourcesContent":["const { invalidListGenerator, sumElementsByMultipliers, sumToDV } = require('../lib/utils');\n\n/**\n * isCPF()\n * Calcula se um CPF é válido\n *\n * @doc\n * CPF deve possuir 11 dígitos.\n *\n * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal\n *\n * - O caractere 9 refere-se à região fiscal emissora do documento\n * 1 – DF, GO, MS, MT e TO\n * 2 – AC, AM, AP, PA, RO e RR\n * 3 – CE, MA e PI\n * 4 – AL, PB, PE, RN\n * 5 – BA e SE\n * 6 – MG\n * 7 – ES e RJ\n * 8 – SP\n * 9 – PR e SC\n * 0 – RS\n *\n * - Os caracteres 10 e 11 são dígitos verificadores.\n *\n * 1) Partes do número\n * ------------------------------------------------\n * | Número | R | DV |\n * 2 8 0 . 0 1 2 . 3 8 9 - 3 8\n *\n * 2) Cálculo do primeiro DV.\n *\n * - Soma-se o produto das algarismos 1 a 9 pelos números 10, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 8 0 0 1 2 3 8 9\n * x x x x x x x x x\n * 10 9 8 7 6 5 4 3 2\n * = 20 +72 +0 +0 +6 +10 +12 +24 +18 = 162\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 162 / 11 tem resto 8. 11 - 8 = 3. DV1 é 3.\n * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.\n *\n * 3) Cálculo do segundo DV.\n *\n * - Soma-se o produto das algarismos 1 a 10 pelos números 11, 10, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 8 0 0 1 2 3 8 9 3\n * x x x x x x x x x x\n * 11 10 9 8 7 6 5 4 3 2\n * = 22 +80 +0 +0 +7 +12 +15 +32 +27 = 201\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 201 / 11 tem resto 3. 11 - 3 = 8. DV2 é 8.\n * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.\n *\n * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-cpf/\n *\n * @param {String} value Título eleitoral\n * @returns {Boolean}\n */\nconst isCPF = (value = '') => {\n const cpf = value.replace(/[^\\d]+/g, '');\n\n const blackList = invalidListGenerator(11);\n if (!cpf || cpf.length !== 11 || blackList.includes(cpf)) return false;\n\n const sum1 = sumElementsByMultipliers(cpf.substr(0, 9), [10, 9, 8, 7, 6, 5, 4, 3, 2]);\n const sum2 = sumElementsByMultipliers(cpf.substr(0, 10), [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]);\n\n const dv1 = sumToDV(sum1);\n const dv2 = sumToDV(sum2);\n\n if (dv1 !== Number(cpf.charAt(9))) return false;\n if (dv2 !== Number(cpf.charAt(10))) return false;\n\n return true;\n};\n\nmodule.exports = isCPF;\n"],"file":"cpf.js"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- var isCPF = require('./cpf');
4
-
5
- var isCNPJ = require('./cnpj');
6
-
7
- var isTitulo = require('./titulo-eleitor');
8
-
9
- var isPostalCode = require('./postal-code');
10
-
11
- var isCNH = require('./cnh');
12
-
13
- var isPIS = require('./pis-pasep');
14
-
15
- module.exports = {
16
- isCPF: isCPF,
17
- isCNPJ: isCNPJ,
18
- isTitulo: isTitulo,
19
- isPostalCode: isPostalCode,
20
- isCNH: isCNH,
21
- isPIS: isPIS
22
- };
23
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/documents/index.js"],"names":["isCPF","require","isCNPJ","isTitulo","isPostalCode","isCNH","isPIS","module","exports"],"mappings":";;AAAA,IAAMA,KAAK,GAAGC,OAAO,CAAC,OAAD,CAArB;;AACA,IAAMC,MAAM,GAAGD,OAAO,CAAC,QAAD,CAAtB;;AACA,IAAME,QAAQ,GAAGF,OAAO,CAAC,kBAAD,CAAxB;;AACA,IAAMG,YAAY,GAAGH,OAAO,CAAC,eAAD,CAA5B;;AACA,IAAMI,KAAK,GAAGJ,OAAO,CAAC,OAAD,CAArB;;AACA,IAAMK,KAAK,GAAGL,OAAO,CAAC,aAAD,CAArB;;AAEAM,MAAM,CAACC,OAAP,GAAiB;AACfR,EAAAA,KAAK,EAALA,KADe;AAEfE,EAAAA,MAAM,EAANA,MAFe;AAGfC,EAAAA,QAAQ,EAARA,QAHe;AAIfC,EAAAA,YAAY,EAAZA,YAJe;AAKfC,EAAAA,KAAK,EAALA,KALe;AAMfC,EAAAA,KAAK,EAALA;AANe,CAAjB","sourcesContent":["const isCPF = require('./cpf');\nconst isCNPJ = require('./cnpj');\nconst isTitulo = require('./titulo-eleitor');\nconst isPostalCode = require('./postal-code');\nconst isCNH = require('./cnh');\nconst isPIS = require('./pis-pasep');\n\nmodule.exports = {\n isCPF,\n isCNPJ,\n isTitulo,\n isPostalCode,\n isCNH,\n isPIS,\n};\n"],"file":"index.js"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- var _require = require('../../dist/lib/utils'),
4
- sumElementsByMultipliers = _require.sumElementsByMultipliers,
5
- sumToDV = _require.sumToDV; // const { sumElementsByMultipliers, sumToDV } = require('../lib/utils');
6
-
7
- /**
8
- * isPIS()
9
- * Calcula se um código de PIS/PASEP/NIS/NIT no formato 268.27649.96-0 é válido. Não
10
- * valida o formato, portanto, 26827649960 é equivalente a 268.27649.96-0 para efeitos
11
- * desta validação.
12
- *
13
- * @doc
14
- * - O número de PIS deve possuir 11 caracteres
15
- *
16
- * - Os caracteres de 1 a 10 são a numeração documento
17
- *
18
- * - O caractere 11 é o dígito verificador.
19
- *
20
- * 1) Partes do número
21
- * _______________________________________________
22
- * | Número | D V |
23
- * | 2 6 8 . 2 7 6 4 9 . 9 6 - 0 |
24
- * |_________________________________________|_____|
25
- *
26
- * 2) Cálculo do DV.
27
- *
28
- * - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
29
- *
30
- * 2 6 8 2 7 6 4 9 9 6
31
- * x x x x x x x x x x
32
- * 3 2 9 8 7 6 5 4 3 2
33
- * = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 234
34
- *
35
- * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
36
- * 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
37
- * Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
38
- * Caso retorne 1, o resto será 0
39
- *
40
- *
41
- *
42
- *
43
- * Fonte: http://www.macoratti.net/alg_pis.htm
44
- *
45
- * @param {String} value Objeto postal no formato 268.27649.96-0
46
- * @returns {Boolean}
47
- */
48
-
49
-
50
- var isPIS = function isPIS() {
51
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
52
- var pis = value.replace(/[^\d]+/g, '');
53
- if (!pis || pis.length !== 11) return false;
54
- var sum = sumElementsByMultipliers(pis.substr(0, 10), [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
55
- var dv = sumToDV(sum); // console.log({
56
- // pis,
57
- // sum,
58
- // dvOriginal: pis.charAt(10),
59
- // dvCalculado: dv,
60
- // });
61
-
62
- return dv === Number(pis.charAt(10));
63
- }; // console.log(isPIS());
64
- // console.log(isPIS('11111111111'));
65
- // console.log(isPIS('26827649960'));
66
- // console.log(isPIS('712.82677.38-0'));
67
- // console.log(isPIS('237.95126.95-5'));
68
-
69
-
70
- module.exports = isPIS;
71
- //# sourceMappingURL=pis-pasep.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/documents/pis-pasep.js"],"names":["require","sumElementsByMultipliers","sumToDV","isPIS","value","pis","replace","length","sum","substr","dv","Number","charAt","module","exports"],"mappings":";;AAAA,eAA8CA,OAAO,CAAC,sBAAD,CAArD;AAAA,IAAQC,wBAAR,YAAQA,wBAAR;AAAA,IAAkCC,OAAlC,YAAkCA,OAAlC,C,CACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,KAAK,GAAG,SAARA,KAAQ,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AAC5B,MAAMC,GAAG,GAAGD,KAAK,CAACE,OAAN,CAAc,SAAd,EAAyB,EAAzB,CAAZ;AAEA,MAAI,CAACD,GAAD,IAAQA,GAAG,CAACE,MAAJ,KAAe,EAA3B,EAA+B,OAAO,KAAP;AAE/B,MAAMC,GAAG,GAAGP,wBAAwB,CAACI,GAAG,CAACI,MAAJ,CAAW,CAAX,EAAc,EAAd,CAAD,EAAoB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,CAA5B,CAApB,CAApC;AACA,MAAMC,EAAE,GAAGR,OAAO,CAACM,GAAD,CAAlB,CAN4B,CAQ5B;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAOE,EAAE,KAAKC,MAAM,CAACN,GAAG,CAACO,MAAJ,CAAW,EAAX,CAAD,CAApB;AACD,CAhBD,C,CAkBA;AACA;AACA;AACA;AACA;;;AAEAC,MAAM,CAACC,OAAP,GAAiBX,KAAjB","sourcesContent":["const { sumElementsByMultipliers, sumToDV } = require('../../dist/lib/utils');\n// const { sumElementsByMultipliers, sumToDV } = require('../lib/utils');\n\n/**\n * isPIS()\n * Calcula se um código de PIS/PASEP/NIS/NIT no formato 268.27649.96-0 é válido. Não\n * valida o formato, portanto, 26827649960 é equivalente a 268.27649.96-0 para efeitos\n * desta validação.\n *\n * @doc\n * - O número de PIS deve possuir 11 caracteres\n *\n * - Os caracteres de 1 a 10 são a numeração documento\n *\n * - O caractere 11 é o dígito verificador.\n *\n * 1) Partes do número\n * _______________________________________________\n * | Número | D V |\n * | 2 6 8 . 2 7 6 4 9 . 9 6 - 0 |\n * |_________________________________________|_____|\n *\n * 2) Cálculo do DV.\n *\n * - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2\n *\n * 2 6 8 2 7 6 4 9 9 6\n * x x x x x x x x x x\n * 3 2 9 8 7 6 5 4 3 2\n * = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 234\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.\n * Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.\n * Caso retorne 1, o resto será 0\n *\n *\n *\n *\n * Fonte: http://www.macoratti.net/alg_pis.htm\n *\n * @param {String} value Objeto postal no formato 268.27649.96-0\n * @returns {Boolean}\n */\nconst isPIS = (value = '') => {\n const pis = value.replace(/[^\\d]+/g, '');\n\n if (!pis || pis.length !== 11) return false;\n\n const sum = sumElementsByMultipliers(pis.substr(0, 10), [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);\n const dv = sumToDV(sum);\n\n // console.log({\n // pis,\n // sum,\n // dvOriginal: pis.charAt(10),\n // dvCalculado: dv,\n // });\n\n return dv === Number(pis.charAt(10));\n};\n\n// console.log(isPIS());\n// console.log(isPIS('11111111111'));\n// console.log(isPIS('26827649960'));\n// console.log(isPIS('712.82677.38-0'));\n// console.log(isPIS('237.95126.95-5'));\n\nmodule.exports = isPIS;\n"],"file":"pis-pasep.js"}
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- // const { sumElementsByMultipliers } = require('../../dist/lib/utils');
4
- var _require = require('../lib/utils'),
5
- sumElementsByMultipliers = _require.sumElementsByMultipliers;
6
- /**
7
- * isPostalCode()
8
- * Calcula se um código de rastreamento postal no formato JT194690698BR é válido.
9
- *
10
- * @doc
11
- * - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.
12
- *
13
- * - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.
14
- *
15
- * - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.
16
- *
17
- * - O caractere 11 é o dígito verificador.
18
- *
19
- * - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.
20
- *
21
- * 1) Partes do número
22
- * ______ ___________________________ ______ _______
23
- * | Tipo | Número | DV | País |
24
- * | J T 1 9 4 6 9 0 6 9 8 B R |
25
- * |______|___________________________|______|_______|
26
- *
27
- * 2) Cálculo do DV.
28
- *
29
- * - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7
30
- *
31
- * 1 9 4 6 9 0 6 9
32
- * x x x x x x x x
33
- * 8 6 4 2 3 5 9 7
34
- * = 8 +54 +16 +12 +18 +0 +54 +63 = 234
35
- *
36
- * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
37
- * 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
38
- * Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
39
- * Caso retorne 1, o resto será 0
40
- *
41
- *
42
- *
43
- *
44
- * Fonte:
45
- *
46
- * @param {String} value Objeto postal no formato JT194690698BR
47
- * @returns {Boolean}
48
- */
49
-
50
-
51
- var isPostalCode = function isPostalCode() {
52
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
53
- var match = value.match(/^[a-z]{2}([\d]{9})[a-z]{2}$/ig, '');
54
- if (!match) return false;
55
- var postalCode = match[0].replace(/[^\d]+/g, '');
56
- var sum = sumElementsByMultipliers(postalCode.substr(0, 8), [8, 6, 4, 2, 3, 5, 9, 7]);
57
- var rest = sum % 11;
58
- var specificities = {
59
- 0: {
60
- dv: 5
61
- },
62
- 1: {
63
- dv: 0
64
- }
65
- };
66
- var dv = specificities[rest] ? specificities[rest].dv : 11 - rest;
67
- if (dv !== Number(postalCode.charAt(8))) return false;
68
- return true;
69
- };
70
-
71
- module.exports = isPostalCode;
72
- //# sourceMappingURL=postal-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/documents/postal-code.js"],"names":["require","sumElementsByMultipliers","isPostalCode","value","match","postalCode","replace","sum","substr","rest","specificities","dv","Number","charAt","module","exports"],"mappings":";;AAAA;AACA,eAAqCA,OAAO,CAAC,cAAD,CAA5C;AAAA,IAAQC,wBAAR,YAAQA,wBAAR;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,YAAY,GAAG,SAAfA,YAAe,GAAgB;AAAA,MAAfC,KAAe,uEAAP,EAAO;AACnC,MAAMC,KAAK,GAAGD,KAAK,CAACC,KAAN,CAAY,+BAAZ,EAA6C,EAA7C,CAAd;AACA,MAAI,CAACA,KAAL,EAAY,OAAO,KAAP;AAEZ,MAAMC,UAAU,GAAGD,KAAK,CAAC,CAAD,CAAL,CAASE,OAAT,CAAiB,SAAjB,EAA4B,EAA5B,CAAnB;AAEA,MAAMC,GAAG,GAAGN,wBAAwB,CAACI,UAAU,CAACG,MAAX,CAAkB,CAAlB,EAAqB,CAArB,CAAD,EAA0B,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,CAA1B,CAApC;AAEA,MAAMC,IAAI,GAAGF,GAAG,GAAG,EAAnB;AACA,MAAMG,aAAa,GAAG;AAAE,OAAG;AAAEC,MAAAA,EAAE,EAAE;AAAN,KAAL;AAAgB,OAAG;AAAEA,MAAAA,EAAE,EAAE;AAAN;AAAnB,GAAtB;AACA,MAAMA,EAAE,GAAGD,aAAa,CAACD,IAAD,CAAb,GAAsBC,aAAa,CAACD,IAAD,CAAb,CAAoBE,EAA1C,GAA+C,KAAKF,IAA/D;AAEA,MAAIE,EAAE,KAAKC,MAAM,CAACP,UAAU,CAACQ,MAAX,CAAkB,CAAlB,CAAD,CAAjB,EAAyC,OAAO,KAAP;AAEzC,SAAO,IAAP;AACD,CAfD;;AAiBAC,MAAM,CAACC,OAAP,GAAiBb,YAAjB","sourcesContent":["// const { sumElementsByMultipliers } = require('../../dist/lib/utils');\nconst { sumElementsByMultipliers } = require('../lib/utils');\n\n/**\n * isPostalCode()\n * Calcula se um código de rastreamento postal no formato JT194690698BR é válido.\n *\n * @doc\n * - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.\n *\n * - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.\n *\n * - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.\n *\n * - O caractere 11 é o dígito verificador.\n *\n * - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.\n *\n * 1) Partes do número\n * ______ ___________________________ ______ _______\n * | Tipo | Número | DV | País |\n * | J T 1 9 4 6 9 0 6 9 8 B R |\n * |______|___________________________|______|_______|\n *\n * 2) Cálculo do DV.\n *\n * - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7\n *\n * 1 9 4 6 9 0 6 9\n * x x x x x x x x\n * 8 6 4 2 3 5 9 7\n * = 8 +54 +16 +12 +18 +0 +54 +63 = 234\n *\n * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11\n * 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.\n * Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.\n * Caso retorne 1, o resto será 0\n *\n *\n *\n *\n * Fonte:\n *\n * @param {String} value Objeto postal no formato JT194690698BR\n * @returns {Boolean}\n */\nconst isPostalCode = (value = '') => {\n const match = value.match(/^[a-z]{2}([\\d]{9})[a-z]{2}$/ig, '');\n if (!match) return false;\n\n const postalCode = match[0].replace(/[^\\d]+/g, '');\n\n const sum = sumElementsByMultipliers(postalCode.substr(0, 8), [8, 6, 4, 2, 3, 5, 9, 7]);\n\n const rest = sum % 11;\n const specificities = { 0: { dv: 5 }, 1: { dv: 0 } };\n const dv = specificities[rest] ? specificities[rest].dv : 11 - rest;\n\n if (dv !== Number(postalCode.charAt(8))) return false;\n\n return true;\n};\n\nmodule.exports = isPostalCode;\n"],"file":"postal-code.js"}