
# CepUtils

**CepUtils** é uma biblioteca Node.js para cálculo de distâncias entre CEPs e obtenção de dados de endereços a partir de CEPs no Brasil. A biblioteca usa a API da AwesomeAPI para obter informações de CEPs e o `geolib` para calcular a distância entre os locais com base nas coordenadas geográficas (latitude e longitude).

## Funcionalidades

- **Calcular distâncias entre CEPs**: Recebe vários CEPs e calcula a distância total percorrendo de um CEP a outro.
- **Obter dados de um CEP**: Retorna informações detalhadas de um CEP, incluindo endereço, bairro, cidade, estado, latitude e longitude.
- **Verificação de CEP válido**: Antes de buscar os dados do CEP, a função verifica se o CEP é válido.

## Instalação

Para instalar o `CepUtils`, basta usar o npm:

```bash
npm install ceputils
```

## Exemplo de Uso

### Calcular Distância

```javascript
const { calculateDistance } = require('ceputils');

async function main() {
  try {
    const distancia = await calculateDistance('01001000', '20040030', '30190001');
    console.log(`Distância total percorrendo os CEPs: ${distancia.toFixed(2)} km`);
  } catch (error) {
    console.error(error.message);
  }
}

main();
```

### Obter Dados de um CEP

```javascript
const { getCepData } = require('ceputils');

async function main() {
  try {
    const dadosCep = await getCepData('01001000');
    console.log(dadosCep);
  } catch (error) {
    console.error(error.message);
  }
}

main();
```

## API

### `getCepData(cep)`

Obtém os dados de um CEP fornecido.

#### Parâmetros

- `cep` (string): O CEP no formato 12345678.

#### Retorno

- Retorna um objeto com os dados do CEP, incluindo:
  - `cep` (string): O CEP formatado.
  - `address` (string): O endereço.
  - `district` (string): O bairro.
  - `city` (string): A cidade.
  - `state` (string): O estado.
  - `latitude` (float): A latitude.
  - `longitude` (float): A longitude.

### `calculateDistance(...ceps)`

Calcula a distância total entre uma sequência de CEPs.

#### Parâmetros

- `ceps` (string[]): Vários CEPs (ex: '01001000').

#### Retorno

- Retorna a distância total em quilômetros (float).

## Licença

Distribuído sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais informações.
