# npu-validator-library

A `npu-validator-library` é uma biblioteca em TypeScript para validação de números CNJ (Código Nacional de Processo Judicial). Ela permite verificar se um número CNJ é válido, garantindo que ele esteja no formato correto e realizando cálculos de dígitos verificadores.

## Instalação

Para instalar a biblioteca em seu projeto, use o npm:

```bash
npm install npu-validator-library
```

## Como Usar

### 1. Importando a biblioteca

No seu código TypeScript ou JavaScript, importe a função de validação CNJValidator:

```typescript
import { CNJValidator } from 'npu-validator-library';
```

### 2. Validando um Número CNJ

A biblioteca fornece a função validate() que recebe um número CNJ como parâmetro e retorna um objeto indicando se o número é válido ou não.

Exemplo de uso:

```typescript
const resultado = CNJValidator.validate('0000000-00.0000.0.00.0000');

if (resultado.valid) {
    console.log('Número CNJ válido:', resultado.processo);
} else {
    console.error('Erro:', resultado.error);
}
```

### Parâmetros da Função validate()

numeroCNJ: string: O número CNJ a ser validado. O número pode conter caracteres como pontos (.), hífens (-) e underlines (_), que serão automaticamente removidos antes da validação.

### Retorno

A função retorna um objeto do tipo ValidationResult, que pode ter a seguinte estrutura:

```typescript
interface ValidationResult {
  valid: boolean; // Indica se o número CNJ é válido ou não
  error?: string; // Mensagem de erro caso o número não seja válido
  processo?: {
    numeroCNJ: string; // Número CNJ completo
    numeroIdentificador: string; // Número identificador (primeiros 7 dígitos)
    digitoVerificador: string; // Dígito verificador (2 dígitos)
    anoProcesso: string; // Ano do processo (4 dígitos)
    codigoJustica: string; // Código da Justiça (1 dígito)
    tribunal: string; // Tribunal (2 dígitos)
    comarca: string; // Comarca (4 dígitos)
  };
}
```

### Exemplo de Resultado

Se o número CNJ for válido:

```typescript
{
  "valid": true,
  "processo": {
    "numeroCNJ": "00000000000000000000",
    "numeroIdentificador": "0000000",
    "digitoVerificador": "00",
    "anoProcesso": "0000",
    "codigoJustica": "0",
    "tribunal": "00",
    "comarca": "0000"
  }
}
```

Se o número CNJ não for válido:

```typescript
{
  "valid": false,
  "error": "Erro! O número CNJ informado não é válido."
}
```

## Dependências

- TypeScript: A biblioteca é escrita em TypeScript e exige um ambiente com suporte ao TypeScript.
- Node.js: A biblioteca funciona em qualquer ambiente Node.js moderno.