@artrsousa/cpf-cnpj-validator 1.0.0
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.
- package/README.md +204 -0
- package/dist/cnpj/alphanumeric.d.ts +80 -0
- package/dist/cnpj/alphanumeric.d.ts.map +1 -0
- package/dist/cnpj/alphanumeric.js +150 -0
- package/dist/cnpj/index.d.ts +39 -0
- package/dist/cnpj/index.d.ts.map +1 -0
- package/dist/cnpj/index.js +104 -0
- package/dist/constants.d.ts +7 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +6 -0
- package/dist/cpf/index.d.ts +33 -0
- package/dist/cpf/index.d.ts.map +1 -0
- package/dist/cpf/index.js +89 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/package.json +38 -0
package/README.md
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# cpf-cnpj-validator
|
|
2
|
+
|
|
3
|
+
Biblioteca leve e tipada para **validação, geração e formatação** de **CPF** e **CNPJ** válidos (Brasil), utilizando o algoritmo oficial de dígitos verificadores da Receita Federal.
|
|
4
|
+
|
|
5
|
+
## Características
|
|
6
|
+
|
|
7
|
+
* Validação de CPF numérico
|
|
8
|
+
* Validação de CNPJ numérico
|
|
9
|
+
* Suporte a CNPJ alfanumérico (formato futuro da Receita Federal)
|
|
10
|
+
* Escrita em TypeScript
|
|
11
|
+
* ESM-only (Node.js 18+)
|
|
12
|
+
* Sem dependências externas
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Instalação
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install cpf-cnpj-validator
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Uso
|
|
25
|
+
|
|
26
|
+
A biblioteca é ESM-only (`"type": "module"`).
|
|
27
|
+
Utilize `import` em Node.js 18+ ou bundlers modernos (Vite, Webpack, etc).
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Uso com JavaScript (ES Modules)
|
|
32
|
+
|
|
33
|
+
```javascript
|
|
34
|
+
import { cpf, cnpj } from 'cpf-cnpj-validator';
|
|
35
|
+
|
|
36
|
+
// CPF
|
|
37
|
+
cpf.isValid('313.402.809-30');
|
|
38
|
+
cpf.isValid('31340280930');
|
|
39
|
+
|
|
40
|
+
cpf.generate();
|
|
41
|
+
cpf.generate({ formatted: false });
|
|
42
|
+
|
|
43
|
+
cpf.format('31340280930');
|
|
44
|
+
|
|
45
|
+
// CNPJ numérico
|
|
46
|
+
cnpj.isValid('11.222.333/0001-81');
|
|
47
|
+
cnpj.isValid('11222333000181');
|
|
48
|
+
|
|
49
|
+
cnpj.generate();
|
|
50
|
+
cnpj.generate({ formatted: false });
|
|
51
|
+
|
|
52
|
+
cnpj.format('11222333000181');
|
|
53
|
+
|
|
54
|
+
// CNPJ alfanumérico
|
|
55
|
+
cnpj.generate({ type: 'alphanumeric' });
|
|
56
|
+
cnpj.generate({ type: 'alphanumeric', formatted: false });
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Uso com TypeScript
|
|
62
|
+
|
|
63
|
+
A biblioteca inclui definições de tipos (`.d.ts`).
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
import {
|
|
67
|
+
cpf,
|
|
68
|
+
cnpj,
|
|
69
|
+
type CPF,
|
|
70
|
+
type CNPJ,
|
|
71
|
+
type CpfGenerateOptions,
|
|
72
|
+
type CnpjGenerateOptions
|
|
73
|
+
} from 'cpf-cnpj-validator';
|
|
74
|
+
|
|
75
|
+
const cpfValue: string = '313.402.809-30';
|
|
76
|
+
|
|
77
|
+
if (cpf.isValid(cpfValue)) {
|
|
78
|
+
const formatted: string | null = cpf.format(cpfValue);
|
|
79
|
+
console.log(formatted);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const options: CnpjGenerateOptions = {
|
|
83
|
+
type: 'alphanumeric',
|
|
84
|
+
formatted: true,
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const novoCnpj: string = cnpj.generate(options);
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Tipos Exportados
|
|
93
|
+
|
|
94
|
+
| Tipo | Descrição |
|
|
95
|
+
| --------------------- | ----------------------------- |
|
|
96
|
+
| `CPF` | Interface da API de CPF |
|
|
97
|
+
| `CNPJ` | Interface da API de CNPJ |
|
|
98
|
+
| `CpfGenerateOptions` | Opções para `cpf.generate()` |
|
|
99
|
+
| `CnpjGenerateOptions` | Opções para `cnpj.generate()` |
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
# API
|
|
104
|
+
|
|
105
|
+
## CPF
|
|
106
|
+
|
|
107
|
+
### `cpf.isValid(value: string): boolean`
|
|
108
|
+
|
|
109
|
+
Valida um CPF.
|
|
110
|
+
|
|
111
|
+
* Aceita com ou sem formatação
|
|
112
|
+
* Rejeita sequências repetidas (ex: `111.111.111-11`)
|
|
113
|
+
* Valida os dígitos verificadores
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### `cpf.generate(options?: CpfGenerateOptions): string`
|
|
118
|
+
|
|
119
|
+
Gera um CPF válido aleatoriamente.
|
|
120
|
+
|
|
121
|
+
| Opção | Tipo | Padrão |
|
|
122
|
+
| ----------- | --------- | ------ |
|
|
123
|
+
| `formatted` | `boolean` | `true` |
|
|
124
|
+
|
|
125
|
+
Exemplo:
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
cpf.generate();
|
|
129
|
+
cpf.generate({ formatted: false });
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### `cpf.format(value: string): string | null`
|
|
135
|
+
|
|
136
|
+
Formata para o padrão:
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
000.000.000-00
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Retorna `null` caso não possua 11 dígitos válidos.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## CNPJ
|
|
147
|
+
|
|
148
|
+
### `cnpj.isValid(value: string): boolean`
|
|
149
|
+
|
|
150
|
+
Valida CNPJ numérico.
|
|
151
|
+
|
|
152
|
+
* Aceita com ou sem formatação
|
|
153
|
+
* Rejeita sequências repetidas
|
|
154
|
+
* Valida os dígitos verificadores
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### `cnpj.generate(options?: CnpjGenerateOptions): string`
|
|
159
|
+
|
|
160
|
+
Gera um CNPJ válido.
|
|
161
|
+
|
|
162
|
+
| Opção | Tipo | Padrão |
|
|
163
|
+
| ----------- | ----------------------------- | ----------- |
|
|
164
|
+
| `type` | `'numeric' \| 'alphanumeric'` | `'numeric'` |
|
|
165
|
+
| `formatted` | `boolean` | `true` |
|
|
166
|
+
|
|
167
|
+
Exemplo:
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
cnpj.generate();
|
|
171
|
+
|
|
172
|
+
cnpj.generate({
|
|
173
|
+
type: 'alphanumeric',
|
|
174
|
+
formatted: false
|
|
175
|
+
});
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
### `cnpj.format(value: string): string | null`
|
|
181
|
+
|
|
182
|
+
Formata para o padrão:
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
00.000.000/0000-00
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
* Funciona para CNPJ numérico
|
|
189
|
+
* Funciona para CNPJ alfanumérico
|
|
190
|
+
* Retorna `null` se não possuir 14 caracteres
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Requisitos
|
|
195
|
+
|
|
196
|
+
* Node.js 18+
|
|
197
|
+
* Ambiente com suporte a ES Modules
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Licença
|
|
202
|
+
|
|
203
|
+
MIT
|
|
204
|
+
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converte uma letra em seu valor numérico conforme tabela da Receita Federal (A=17 até Z=42).
|
|
3
|
+
*
|
|
4
|
+
* Usado no cálculo dos dígitos verificadores do CNPJ alfanumérico.
|
|
5
|
+
*
|
|
6
|
+
* @param letter - Uma letra maiúscula (A–Z)
|
|
7
|
+
* @returns Valor numérico de 17 (A) a 42 (Z), ou 0 se inválido
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* convertLetterToNumber('A') // 17
|
|
11
|
+
* convertLetterToNumber('Z') // 42
|
|
12
|
+
*/
|
|
13
|
+
export declare function convertLetterToNumber(letter: string): number;
|
|
14
|
+
/**
|
|
15
|
+
* Converte um CNPJ alfanumérico em array de números para cálculo dos dígitos verificadores.
|
|
16
|
+
*
|
|
17
|
+
* Letras A–Z são mapeadas para 17–42 conforme tabela da Receita Federal;
|
|
18
|
+
* dígitos 0–9 permanecem como números.
|
|
19
|
+
*
|
|
20
|
+
* @param value - CNPJ alfanumérico (ex.: "AB123CDE000142")
|
|
21
|
+
* @returns Array de números onde letras foram convertidas (17–42) e dígitos mantidos
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* convertCnpjToNumbers("AB12") // [17, 18, 1, 2]
|
|
25
|
+
*/
|
|
26
|
+
export declare function convertCnpjToNumbers(value: string): number[];
|
|
27
|
+
/**
|
|
28
|
+
* Gera a base alfanumérica do CNPJ (12 caracteres aleatórios: dígitos 0–9 ou letras A–Z).
|
|
29
|
+
*
|
|
30
|
+
* Cada posição tem 50% de chance de ser dígito e 50% de ser letra.
|
|
31
|
+
*
|
|
32
|
+
* @returns Array com 12 caracteres (números ou letras) que será usada para calcular os dígitos verificadores
|
|
33
|
+
*/
|
|
34
|
+
export declare function generateBaseAlphanumeric(): (number | string)[];
|
|
35
|
+
/**
|
|
36
|
+
* Calcula os dois dígitos verificadores do CNPJ alfanumérico.
|
|
37
|
+
*
|
|
38
|
+
* O primeiro dígito é calculado sobre a base de 12 caracteres; o segundo,
|
|
39
|
+
* sobre a base mais o primeiro dígito.
|
|
40
|
+
*
|
|
41
|
+
* @param baseCNPJ - Array com os 12 caracteres da base (números ou letras)
|
|
42
|
+
* @returns Tupla [primeiro_dígito, segundo_dígito]
|
|
43
|
+
*/
|
|
44
|
+
export declare function calculateCheckDigits(baseCNPJ: (number | string)[]): [number, number];
|
|
45
|
+
/**
|
|
46
|
+
* Gera um CNPJ alfanumérico válido (14 caracteres, sem formatação).
|
|
47
|
+
*
|
|
48
|
+
* A base (12 caracteres) combina letras A–Z e dígitos 0–9 aleatoriamente.
|
|
49
|
+
* Os dois últimos caracteres são os dígitos verificadores calculados pelo algoritmo mod 11.
|
|
50
|
+
*
|
|
51
|
+
* @returns String com 14 caracteres (letras e números), sem formatação
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* generateAlphanumeric() // ex: "AB123CDE000142"
|
|
55
|
+
*/
|
|
56
|
+
export declare function generateAlphanumeric(): string;
|
|
57
|
+
/**
|
|
58
|
+
* Valida um CNPJ alfanumérico verificando se os dígitos verificadores estão corretos.
|
|
59
|
+
*
|
|
60
|
+
* Remove formatação (. / -) antes de validar. O valor deve ter exatamente 14 caracteres
|
|
61
|
+
* (letras e dígitos) e os dois últimos devem corresponder ao cálculo mod 11 da base.
|
|
62
|
+
*
|
|
63
|
+
* @param value - CNPJ alfanumérico com ou sem formatação (ex.: "AB.123.CDE/0001-42")
|
|
64
|
+
* @returns `true` se o CNPJ alfanumérico for válido
|
|
65
|
+
*/
|
|
66
|
+
export declare function validateAlphanumeric(value: string): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Formata CNPJ alfanumérico no padrão oficial: XX.XXX.XXX/XXXX-XX.
|
|
69
|
+
*
|
|
70
|
+
* Remove formatação (. / -) antes de aplicar a máscara.
|
|
71
|
+
* Funciona igual ao CNPJ numérico, mas aceita letras nas posições da base.
|
|
72
|
+
*
|
|
73
|
+
* @param value - CNPJ alfanumérico com ou sem formatação (ex.: "AB123CDE000142")
|
|
74
|
+
* @returns String no formato XX.XXX.XXX/XXXX-XX, ou `null` se não houver 14 caracteres
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* formatAlphanumeric('AB123CDE000142') // "AB.123.CDE/0001-42"
|
|
78
|
+
*/
|
|
79
|
+
export declare function formatAlphanumeric(value: string): string | null;
|
|
80
|
+
//# sourceMappingURL=alphanumeric.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alphanumeric.d.ts","sourceRoot":"","sources":["../../src/cnpj/alphanumeric.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAO5D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAI5D;AASD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAU9D;AA0BD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAC5B,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAK7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAU3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO/D"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { ALPHABET, CNPJ_LENGTH } from '../constants.js';
|
|
2
|
+
/**
|
|
3
|
+
* Converte uma letra em seu valor numérico conforme tabela da Receita Federal (A=17 até Z=42).
|
|
4
|
+
*
|
|
5
|
+
* Usado no cálculo dos dígitos verificadores do CNPJ alfanumérico.
|
|
6
|
+
*
|
|
7
|
+
* @param letter - Uma letra maiúscula (A–Z)
|
|
8
|
+
* @returns Valor numérico de 17 (A) a 42 (Z), ou 0 se inválido
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* convertLetterToNumber('A') // 17
|
|
12
|
+
* convertLetterToNumber('Z') // 42
|
|
13
|
+
*/
|
|
14
|
+
export function convertLetterToNumber(letter) {
|
|
15
|
+
const letterMap = {
|
|
16
|
+
A: 17, B: 18, C: 19, D: 20, E: 21, F: 22, G: 23, H: 24, I: 25,
|
|
17
|
+
J: 26, K: 27, L: 28, M: 29, N: 30, O: 31, P: 32, Q: 33, R: 34,
|
|
18
|
+
S: 35, T: 36, U: 37, V: 38, W: 39, X: 40, Y: 41, Z: 42,
|
|
19
|
+
};
|
|
20
|
+
return letterMap[letter] ?? 0;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Converte um CNPJ alfanumérico em array de números para cálculo dos dígitos verificadores.
|
|
24
|
+
*
|
|
25
|
+
* Letras A–Z são mapeadas para 17–42 conforme tabela da Receita Federal;
|
|
26
|
+
* dígitos 0–9 permanecem como números.
|
|
27
|
+
*
|
|
28
|
+
* @param value - CNPJ alfanumérico (ex.: "AB123CDE000142")
|
|
29
|
+
* @returns Array de números onde letras foram convertidas (17–42) e dígitos mantidos
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* convertCnpjToNumbers("AB12") // [17, 18, 1, 2]
|
|
33
|
+
*/
|
|
34
|
+
export function convertCnpjToNumbers(value) {
|
|
35
|
+
return Array.from(value).map((char) => isNaN(Number(char)) ? convertLetterToNumber(char) : Number(char));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Remove formatação (. / -) de um CNPJ alfanumérico.
|
|
39
|
+
*/
|
|
40
|
+
function stripFormatting(value) {
|
|
41
|
+
return value.replace(/[.\/\-]/g, '');
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Gera a base alfanumérica do CNPJ (12 caracteres aleatórios: dígitos 0–9 ou letras A–Z).
|
|
45
|
+
*
|
|
46
|
+
* Cada posição tem 50% de chance de ser dígito e 50% de ser letra.
|
|
47
|
+
*
|
|
48
|
+
* @returns Array com 12 caracteres (números ou letras) que será usada para calcular os dígitos verificadores
|
|
49
|
+
*/
|
|
50
|
+
export function generateBaseAlphanumeric() {
|
|
51
|
+
const base = [];
|
|
52
|
+
for (let i = 0; i < 12; i++) {
|
|
53
|
+
if (Math.random() < 0.5) {
|
|
54
|
+
base.push(Math.floor(Math.random() * 10));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
base.push(ALPHABET.charAt(Math.floor(Math.random() * ALPHABET.length)));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return base;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Calcula um dígito verificador para a base usando pesos 2–9 (da direita para esquerda).
|
|
64
|
+
*
|
|
65
|
+
* Algoritmo mod 11 conforme especificação do CNPJ alfanumérico da Receita Federal.
|
|
66
|
+
*
|
|
67
|
+
* @param digits - Array com a base (12 caracteres numéricos ou letras convertidas)
|
|
68
|
+
* @returns Dígito verificador (0–9)
|
|
69
|
+
*/
|
|
70
|
+
function calculateCheckDigit(digits) {
|
|
71
|
+
let sum = 0;
|
|
72
|
+
let weight = 2;
|
|
73
|
+
for (let i = digits.length - 1; i >= 0; i--) {
|
|
74
|
+
const digit = digits[i];
|
|
75
|
+
const numericValue = typeof digit === 'string' ? convertLetterToNumber(digit) : digit;
|
|
76
|
+
sum += numericValue * weight;
|
|
77
|
+
weight = weight === 9 ? 2 : weight + 1;
|
|
78
|
+
}
|
|
79
|
+
const rest = sum % 11;
|
|
80
|
+
return rest < 2 ? 0 : 11 - rest;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Calcula os dois dígitos verificadores do CNPJ alfanumérico.
|
|
84
|
+
*
|
|
85
|
+
* O primeiro dígito é calculado sobre a base de 12 caracteres; o segundo,
|
|
86
|
+
* sobre a base mais o primeiro dígito.
|
|
87
|
+
*
|
|
88
|
+
* @param baseCNPJ - Array com os 12 caracteres da base (números ou letras)
|
|
89
|
+
* @returns Tupla [primeiro_dígito, segundo_dígito]
|
|
90
|
+
*/
|
|
91
|
+
export function calculateCheckDigits(baseCNPJ) {
|
|
92
|
+
const firstDigit = calculateCheckDigit(baseCNPJ);
|
|
93
|
+
const secondDigit = calculateCheckDigit([...baseCNPJ, firstDigit]);
|
|
94
|
+
return [firstDigit, secondDigit];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Gera um CNPJ alfanumérico válido (14 caracteres, sem formatação).
|
|
98
|
+
*
|
|
99
|
+
* A base (12 caracteres) combina letras A–Z e dígitos 0–9 aleatoriamente.
|
|
100
|
+
* Os dois últimos caracteres são os dígitos verificadores calculados pelo algoritmo mod 11.
|
|
101
|
+
*
|
|
102
|
+
* @returns String com 14 caracteres (letras e números), sem formatação
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* generateAlphanumeric() // ex: "AB123CDE000142"
|
|
106
|
+
*/
|
|
107
|
+
export function generateAlphanumeric() {
|
|
108
|
+
const base = generateBaseAlphanumeric();
|
|
109
|
+
const [d1, d2] = calculateCheckDigits(base);
|
|
110
|
+
const chars = base.map((c) => String(c));
|
|
111
|
+
return [...chars, String(d1), String(d2)].join('');
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Valida um CNPJ alfanumérico verificando se os dígitos verificadores estão corretos.
|
|
115
|
+
*
|
|
116
|
+
* Remove formatação (. / -) antes de validar. O valor deve ter exatamente 14 caracteres
|
|
117
|
+
* (letras e dígitos) e os dois últimos devem corresponder ao cálculo mod 11 da base.
|
|
118
|
+
*
|
|
119
|
+
* @param value - CNPJ alfanumérico com ou sem formatação (ex.: "AB.123.CDE/0001-42")
|
|
120
|
+
* @returns `true` se o CNPJ alfanumérico for válido
|
|
121
|
+
*/
|
|
122
|
+
export function validateAlphanumeric(value) {
|
|
123
|
+
const raw = stripFormatting(value);
|
|
124
|
+
if (raw.length !== CNPJ_LENGTH)
|
|
125
|
+
return false;
|
|
126
|
+
const base = raw.slice(0, 12);
|
|
127
|
+
const digits = convertCnpjToNumbers(base);
|
|
128
|
+
const [dv1, dv2] = calculateCheckDigits(digits);
|
|
129
|
+
const originalDv = parseInt(raw.slice(-2), 10);
|
|
130
|
+
const calculatedDv = dv1 * 10 + dv2;
|
|
131
|
+
return originalDv === calculatedDv;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Formata CNPJ alfanumérico no padrão oficial: XX.XXX.XXX/XXXX-XX.
|
|
135
|
+
*
|
|
136
|
+
* Remove formatação (. / -) antes de aplicar a máscara.
|
|
137
|
+
* Funciona igual ao CNPJ numérico, mas aceita letras nas posições da base.
|
|
138
|
+
*
|
|
139
|
+
* @param value - CNPJ alfanumérico com ou sem formatação (ex.: "AB123CDE000142")
|
|
140
|
+
* @returns String no formato XX.XXX.XXX/XXXX-XX, ou `null` se não houver 14 caracteres
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* formatAlphanumeric('AB123CDE000142') // "AB.123.CDE/0001-42"
|
|
144
|
+
*/
|
|
145
|
+
export function formatAlphanumeric(value) {
|
|
146
|
+
const raw = stripFormatting(value);
|
|
147
|
+
if (raw.length !== CNPJ_LENGTH)
|
|
148
|
+
return null;
|
|
149
|
+
return raw.replace(/^(.{2})(.{3})(.{3})(.{4})(.{2})$/, '$1.$2.$3/$4-$5');
|
|
150
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** Opções para geração de CNPJ. */
|
|
2
|
+
export type CnpjGenerateOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* Tipo de CNPJ a gerar:
|
|
5
|
+
* - `'numeric'` (padrão): apenas dígitos 0–9
|
|
6
|
+
* - `'alphanumeric'`: letras A–Z e dígitos (formato futuro da Receita Federal)
|
|
7
|
+
*/
|
|
8
|
+
type?: 'numeric' | 'alphanumeric';
|
|
9
|
+
/** Se `true` (padrão), retorna formatado como 00.000.000/0000-00; se `false`, retorna apenas os 14 caracteres. */
|
|
10
|
+
formatted?: boolean;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* API para validação, geração e formatação de CNPJ (Cadastro Nacional da Pessoa Jurídica).
|
|
14
|
+
*
|
|
15
|
+
* Suporta CNPJ numérico (padrão atual) e alfanumérico (formato futuro da Receita Federal).
|
|
16
|
+
* Todas as funções aceitam CNPJ com ou sem formatação.
|
|
17
|
+
*/
|
|
18
|
+
export interface CNPJ {
|
|
19
|
+
/**
|
|
20
|
+
* Verifica se o CNPJ é válido (14 caracteres, dígitos verificadores corretos, não sequência repetida).
|
|
21
|
+
* @param value - CNPJ com ou sem máscara (numérico ou alfanumérico)
|
|
22
|
+
* @returns `true` se válido
|
|
23
|
+
*/
|
|
24
|
+
isValid(value: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Gera um CNPJ válido aleatoriamente (numérico ou alfanumérico).
|
|
27
|
+
* @param options - `type` ('numeric' | 'alphanumeric'), `formatted` (default: true)
|
|
28
|
+
* @returns CNPJ válido
|
|
29
|
+
*/
|
|
30
|
+
generate(options?: CnpjGenerateOptions): string;
|
|
31
|
+
/**
|
|
32
|
+
* Formata o CNPJ no padrão 00.000.000/0000-00.
|
|
33
|
+
* @param value - CNPJ com ou sem formatação
|
|
34
|
+
* @returns String formatada ou `null` se não houver 14 caracteres
|
|
35
|
+
*/
|
|
36
|
+
format(value: string): string | null;
|
|
37
|
+
}
|
|
38
|
+
export declare const cnpj: CNPJ;
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cnpj/index.ts"],"names":[],"mappings":"AAoDA,mCAAmC;AACnC,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;IAClC,kHAAkH;IAClH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AA0DF;;;;;GAKG;AACH,MAAM,WAAW,IAAI;IACnB;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAChD;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,eAAO,MAAM,IAAI,EAAE,IAIlB,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { generateAlphanumeric, formatAlphanumeric, } from './alphanumeric.js';
|
|
2
|
+
function onlyDigits(str) {
|
|
3
|
+
return String(str).replace(/\D/g, '');
|
|
4
|
+
}
|
|
5
|
+
function cnpjFirstDigit(digits) {
|
|
6
|
+
const weights = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
|
|
7
|
+
const sum = digits.reduce((acc, d, i) => acc + d * weights[i], 0);
|
|
8
|
+
const rest = sum % 11;
|
|
9
|
+
return rest < 2 ? 0 : 11 - rest;
|
|
10
|
+
}
|
|
11
|
+
function cnpjSecondDigit(digits) {
|
|
12
|
+
const weights = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
|
|
13
|
+
const sum = digits.reduce((acc, d, i) => acc + d * weights[i], 0);
|
|
14
|
+
const rest = sum % 11;
|
|
15
|
+
return rest < 2 ? 0 : 11 - rest;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Verifica se um CNPJ numérico é válido conforme algoritmo oficial da Receita Federal.
|
|
19
|
+
*
|
|
20
|
+
* Realiza a validação dos dois dígitos verificadores calculados com pesos
|
|
21
|
+
* mod 11. Rejeita CNPJs inválidos como sequências repetidas (11.111.111/1111-11,
|
|
22
|
+
* 00.000.000/0000-00, etc.). Aceita o valor com ou sem máscara (pontos, barra e traço).
|
|
23
|
+
*
|
|
24
|
+
* Nota: Esta função valida apenas CNPJs numéricos. CNPJs alfanuméricos usam outro algoritmo
|
|
25
|
+
* e são gerados com `generate({ type: 'alphanumeric' })`.
|
|
26
|
+
*
|
|
27
|
+
* @param value - CNPJ numérico em qualquer formato (ex.: "11.222.333/0001-81" ou "11222333000181")
|
|
28
|
+
* @returns `true` se o CNPJ tiver 14 dígitos, dígitos verificadores corretos e não for sequência repetida
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* isValid('11.222.333/0001-81') // true
|
|
32
|
+
* isValid('11222333000181') // true
|
|
33
|
+
* isValid('11.111.111/1111-11') // false (sequência inválida)
|
|
34
|
+
* isValid('12345') // false (incompleto)
|
|
35
|
+
*/
|
|
36
|
+
function isValid(value) {
|
|
37
|
+
const digits = onlyDigits(value).split('').map(Number);
|
|
38
|
+
if (digits.length !== 14)
|
|
39
|
+
return false;
|
|
40
|
+
if (new Set(digits).size === 1)
|
|
41
|
+
return false;
|
|
42
|
+
const base = digits.slice(0, 12);
|
|
43
|
+
const d1 = cnpjFirstDigit(base);
|
|
44
|
+
const d2 = cnpjSecondDigit([...base, d1]);
|
|
45
|
+
return digits[12] === d1 && digits[13] === d2;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Gera um CNPJ válido aleatoriamente, com dígitos verificadores calculados corretamente.
|
|
49
|
+
*
|
|
50
|
+
* Para `type: 'numeric'`, a base (12 primeiros dígitos) é sorteada; os dois últimos
|
|
51
|
+
* são calculados pelo algoritmo mod 11. Para `type: 'alphanumeric'`, usa letras A–Z
|
|
52
|
+
* e dígitos conforme especificação futura da Receita Federal.
|
|
53
|
+
*
|
|
54
|
+
* @param options - Opções de geração
|
|
55
|
+
* @param options.type - `'numeric'` (padrão) ou `'alphanumeric'`
|
|
56
|
+
* @param options.formatted - Se `true` (padrão), retorna formatado; se `false`, retorna sem formatação
|
|
57
|
+
* @returns CNPJ válido, com ou sem formatação conforme as opções
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* generate() // ex: "11.222.333/0001-81"
|
|
61
|
+
* generate({ formatted: false }) // ex: "11222333000181"
|
|
62
|
+
* generate({ type: 'alphanumeric' }) // ex: "AB.123.CDE/0001-42"
|
|
63
|
+
* generate({ type: 'alphanumeric', formatted: false }) // ex: "AB123CDE000142"
|
|
64
|
+
*/
|
|
65
|
+
function generate(options) {
|
|
66
|
+
const { type = 'numeric', formatted = true } = options ?? {};
|
|
67
|
+
let raw;
|
|
68
|
+
if (type === 'alphanumeric') {
|
|
69
|
+
raw = generateAlphanumeric();
|
|
70
|
+
return formatted ? (formatAlphanumeric(raw) ?? raw) : raw;
|
|
71
|
+
}
|
|
72
|
+
const base = Array.from({ length: 12 }, () => Math.floor(Math.random() * 10));
|
|
73
|
+
const d1 = cnpjFirstDigit(base);
|
|
74
|
+
const d2 = cnpjSecondDigit([...base, d1]);
|
|
75
|
+
raw = [...base, d1, d2].join('');
|
|
76
|
+
return formatted ? (format(raw) ?? raw) : raw;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Formata o CNPJ no padrão oficial brasileiro: 00.000.000/0000-00.
|
|
80
|
+
*
|
|
81
|
+
* Remove caracteres de formatação (. / -) antes de formatar.
|
|
82
|
+
* Funciona tanto para CNPJ numérico quanto alfanumérico.
|
|
83
|
+
* Se o valor não tiver exatamente 14 caracteres, retorna `null`.
|
|
84
|
+
*
|
|
85
|
+
* @param value - CNPJ com ou sem formatação (pontos, barra, traço são ignorados)
|
|
86
|
+
* @returns String no formato 00.000.000/0000-00, ou `null` se não houver 14 caracteres
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* format('11222333000181') // "11.222.333/0001-81"
|
|
90
|
+
* format('11.222.333/0001-81') // "11.222.333/0001-81"
|
|
91
|
+
* format('AB123CDE000142') // "AB.123.CDE/0001-42"
|
|
92
|
+
* format('123') // null
|
|
93
|
+
*/
|
|
94
|
+
function format(value) {
|
|
95
|
+
const digits = onlyDigits(value);
|
|
96
|
+
if (digits.length !== 14)
|
|
97
|
+
return null;
|
|
98
|
+
return digits.replace(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/, '$1.$2.$3/$4-$5');
|
|
99
|
+
}
|
|
100
|
+
export const cnpj = {
|
|
101
|
+
isValid,
|
|
102
|
+
generate,
|
|
103
|
+
format,
|
|
104
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Alfabeto utilizado para geração de CNPJ alfanumérico (letras A–Z conforme Receita Federal). */
|
|
2
|
+
export declare const ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
3
|
+
/** Quantidade de caracteres de um CNPJ (numérico ou alfanumérico), incluindo dígitos verificadores. */
|
|
4
|
+
export declare const CNPJ_LENGTH = 14;
|
|
5
|
+
/** Quantidade de dígitos de um CPF (9 base + 2 verificadores). */
|
|
6
|
+
export declare const CPF_LENGTH = 11;
|
|
7
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,eAAO,MAAM,QAAQ,+BAA+B,CAAC;AAErD,uGAAuG;AACvG,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,kEAAkE;AAClE,eAAO,MAAM,UAAU,KAAK,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Alfabeto utilizado para geração de CNPJ alfanumérico (letras A–Z conforme Receita Federal). */
|
|
2
|
+
export const ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
3
|
+
/** Quantidade de caracteres de um CNPJ (numérico ou alfanumérico), incluindo dígitos verificadores. */
|
|
4
|
+
export const CNPJ_LENGTH = 14;
|
|
5
|
+
/** Quantidade de dígitos de um CPF (9 base + 2 verificadores). */
|
|
6
|
+
export const CPF_LENGTH = 11;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Opções para geração de CPF. */
|
|
2
|
+
export type CpfGenerateOptions = {
|
|
3
|
+
/** Se `true` (padrão), retorna formatado como 000.000.000-00; se `false`, retorna apenas os 11 dígitos. */
|
|
4
|
+
formatted?: boolean;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* API para validação, geração e formatação de CPF (Cadastro de Pessoa Física).
|
|
8
|
+
*
|
|
9
|
+
* Todas as funções aceitam CPF com ou sem formatação. O algoritmo de validação
|
|
10
|
+
* segue a especificação oficial da Receita Federal (dígitos verificadores mod 11).
|
|
11
|
+
*/
|
|
12
|
+
export interface CPF {
|
|
13
|
+
/**
|
|
14
|
+
* Verifica se o CPF é válido (11 dígitos, dígitos verificadores corretos, não sequência repetida).
|
|
15
|
+
* @param value - CPF com ou sem máscara
|
|
16
|
+
* @returns `true` se válido
|
|
17
|
+
*/
|
|
18
|
+
isValid(value: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Gera um CPF válido aleatoriamente.
|
|
21
|
+
* @param options - `formatted` (default: true) — retorna formatado ou apenas dígitos
|
|
22
|
+
* @returns CPF válido
|
|
23
|
+
*/
|
|
24
|
+
generate(options?: CpfGenerateOptions): string;
|
|
25
|
+
/**
|
|
26
|
+
* Formata o CPF no padrão 000.000.000-00.
|
|
27
|
+
* @param value - CPF com ou sem formatação
|
|
28
|
+
* @returns String formatada ou `null` se não houver 11 dígitos
|
|
29
|
+
*/
|
|
30
|
+
format(value: string): string | null;
|
|
31
|
+
}
|
|
32
|
+
export declare const cpf: CPF;
|
|
33
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cpf/index.ts"],"names":[],"mappings":"AA4CA,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,2GAA2G;IAC3G,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AA6CF;;;;;GAKG;AACH,MAAM,WAAW,GAAG;IAClB;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAC/C;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,eAAO,MAAM,GAAG,EAAE,GAIjB,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
function onlyDigits(str) {
|
|
2
|
+
return String(str).replace(/\D/g, '');
|
|
3
|
+
}
|
|
4
|
+
function cpfFirstDigit(digits) {
|
|
5
|
+
const weights = [10, 9, 8, 7, 6, 5, 4, 3, 2];
|
|
6
|
+
const sum = digits.reduce((acc, d, i) => acc + d * weights[i], 0);
|
|
7
|
+
const rest = sum % 11;
|
|
8
|
+
return rest < 2 ? 0 : 11 - rest;
|
|
9
|
+
}
|
|
10
|
+
function cpfSecondDigit(digits) {
|
|
11
|
+
const weights = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2];
|
|
12
|
+
const sum = digits.reduce((acc, d, i) => acc + d * weights[i], 0);
|
|
13
|
+
const rest = sum % 11;
|
|
14
|
+
return rest < 2 ? 0 : 11 - rest;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Verifica se um CPF é válido conforme algoritmo oficial da Receita Federal.
|
|
18
|
+
*
|
|
19
|
+
* Realiza a validação dos dois dígitos verificadores calculados com pesos
|
|
20
|
+
* mod 11. Rejeita CPFs inválidos como sequências repetidas (111.111.111-11,
|
|
21
|
+
* 000.000.000-00, etc.). Aceita o valor com ou sem máscara (pontos e traço).
|
|
22
|
+
*
|
|
23
|
+
* @param value - CPF em qualquer formato (ex.: "313.402.809-30" ou "31340280930")
|
|
24
|
+
* @returns `true` se o CPF tiver 11 dígitos, dígitos verificadores corretos e não for sequência repetida
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* isValid('313.402.809-30') // true
|
|
28
|
+
* isValid('31340280930') // true
|
|
29
|
+
* isValid('111.111.111-11') // false (sequência inválida)
|
|
30
|
+
* isValid('123') // false (incompleto)
|
|
31
|
+
*/
|
|
32
|
+
function isValid(value) {
|
|
33
|
+
const digits = onlyDigits(value).split('').map(Number);
|
|
34
|
+
if (digits.length !== 11)
|
|
35
|
+
return false;
|
|
36
|
+
if (new Set(digits).size === 1)
|
|
37
|
+
return false;
|
|
38
|
+
const base = digits.slice(0, 9);
|
|
39
|
+
const d1 = cpfFirstDigit(base);
|
|
40
|
+
const d2 = cpfSecondDigit([...base, d1]);
|
|
41
|
+
return digits[9] === d1 && digits[10] === d2;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Gera um CPF válido aleatoriamente, com dígitos verificadores calculados corretamente.
|
|
45
|
+
*
|
|
46
|
+
* A base (9 primeiros dígitos) é sorteada; os dois últimos são calculados pelo
|
|
47
|
+
* algoritmo mod 11. O resultado nunca será sequência repetida.
|
|
48
|
+
*
|
|
49
|
+
* @param options - Opções de geração
|
|
50
|
+
* @param options.formatted - Se `true` (padrão), retorna no padrão 000.000.000-00; se `false`, retorna apenas os 11 dígitos
|
|
51
|
+
* @returns CPF válido, com ou sem formatação conforme as opções
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* generate() // ex: "313.402.809-30"
|
|
55
|
+
* generate({ formatted: false }) // ex: "31340280930"
|
|
56
|
+
*/
|
|
57
|
+
function generate(options) {
|
|
58
|
+
const { formatted = true } = options ?? {};
|
|
59
|
+
const base = Array.from({ length: 9 }, () => Math.floor(Math.random() * 10));
|
|
60
|
+
const d1 = cpfFirstDigit(base);
|
|
61
|
+
const d2 = cpfSecondDigit([...base, d1]);
|
|
62
|
+
const raw = [...base, d1, d2].join('');
|
|
63
|
+
return formatted ? (format(raw) ?? raw) : raw;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Formata o CPF no padrão oficial brasileiro: 000.000.000-00.
|
|
67
|
+
*
|
|
68
|
+
* Remove qualquer caractere que não seja dígito antes de formatar.
|
|
69
|
+
* Se o valor não tiver exatamente 11 dígitos, retorna `null`.
|
|
70
|
+
*
|
|
71
|
+
* @param value - CPF com ou sem formatação (pontos, traço, espaços são ignorados)
|
|
72
|
+
* @returns String no formato 000.000.000-00, ou `null` se não houver 11 dígitos
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* format('31340280930') // "313.402.809-30"
|
|
76
|
+
* format('313.402.809-30') // "313.402.809-30"
|
|
77
|
+
* format('123') // null
|
|
78
|
+
*/
|
|
79
|
+
function format(value) {
|
|
80
|
+
const digits = onlyDigits(value);
|
|
81
|
+
if (digits.length !== 11)
|
|
82
|
+
return null;
|
|
83
|
+
return digits.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/, '$1.$2.$3-$4');
|
|
84
|
+
}
|
|
85
|
+
export const cpf = {
|
|
86
|
+
isValid,
|
|
87
|
+
generate,
|
|
88
|
+
format,
|
|
89
|
+
};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Biblioteca para validação, geração e formatação de CPF e CNPJ (Brasil).
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
export { cpf, type CPF, type CpfGenerateOptions } from './cpf/index.js';
|
|
7
|
+
export { cnpj, type CNPJ, type CnpjGenerateOptions } from './cnpj/index.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@artrsousa/cpf-cnpj-validator",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Valida e gera CPF e CNPJ válidos (Brasil)",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"default": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"README.md"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc",
|
|
21
|
+
"test": "npm run build && node --test test/cpf.test.js test/cnpj.test.js"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"cpf",
|
|
25
|
+
"cnpj",
|
|
26
|
+
"brasil",
|
|
27
|
+
"validator",
|
|
28
|
+
"generator",
|
|
29
|
+
"cadastro",
|
|
30
|
+
"pessoa física",
|
|
31
|
+
"pessoa jurídica"
|
|
32
|
+
],
|
|
33
|
+
"author": "",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"typescript": "^5.7.2"
|
|
37
|
+
}
|
|
38
|
+
}
|