# rap-conector-client

> Biblioteca desenvolvida para Node.Js para integração com a API do Conector RAP

Latest version **0.26.1** (published 2025-10-09) · LGPL license · 0 weekly downloads

## Install

```sh
npm install rap-conector-client
pnpm add rap-conector-client
yarn add rap-conector-client
bun add rap-conector-client
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.26.1 |
| Published | 2025-10-09 |
| First published | 2021-04-08 |
| Weekly downloads | 0 |
| License | LGPL |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >= 6.0.0 |
| Dependencies | 3 |
| Unpacked size | 157.5 KB |
| Known vulnerabilities | 0 (+23 in 1 direct dependencies) |
| Install scripts | no |
| Author | Ledger Tec |
| Maintainers | ledgertec |
| Keywords | client, conector, ledger |

## Links

- npm: https://www.npmjs.com/package/rap-conector-client
- Repository: https://gitlab.ledgertec.com.br/rap/clients-conector/node-conector-client
- Homepage: https://gitlab.ledgertec.com.br/rap/clients-conector/node-conector-client/-/blob/master/README.md
- Issues: https://gitlab.ledgertec.com.br/rap/clients-conector/node-conector-client/-/issues
- npm.io page: https://npm.io/package/rap-conector-client

## Dependencies (3)

- [axios](https://npm.io/package/axios.md) ^0.21.4
- [signale](https://npm.io/package/signale.md) ^1.4.0
- [form-data](https://npm.io/package/form-data.md) ^3.0.0

## Alternatives

- [launchdarkly-js-client-sdk](https://npm.io/package/launchdarkly-js-client-sdk.md) — 2.5M weekly downloads
- [@elastic/elasticsearch](https://npm.io/package/@elastic/elasticsearch.md) — 2.1M weekly downloads
- [@c8y/client](https://npm.io/package/@c8y/client.md) — 15.3K weekly downloads
- [@signaldb/maverickjs](https://npm.io/package/@signaldb/maverickjs.md) — 1.7K weekly downloads
- [@bbc/http-transport-cache](https://npm.io/package/@bbc/http-transport-cache.md) — 1.2K weekly downloads

## Recent versions

- 0.26.1 (latest) — 2025-10-09
- 0.25.0 — 2025-04-04
- 0.24.12 — 2024-12-20
- 0.24.9 — 2024-09-16
- 0.24.0 — 2024-09-02
- 0.23.0 — 2024-01-16
- 0.21.0 — 2023-03-24
- 0.20.0 — 2022-12-13
- 0.19.0 — 2022-11-23
- 0.18.0 — 2022-09-29
- 0.17.0 — 2022-08-19
- 0.16.0 — 2022-08-04
- 0.15.0 — 2022-06-10
- 0.14.1 — 2022-02-15
- 0.14.0 — 2022-02-14
- … 5 more at https://npm.io/package/rap-conector-client/versions

## README

# rap-conector-client
Esse repositório contém o código fonte do cliente Node para o RAP Conector.

![version](https://img.shields.io/badge/version-v0.26.1-blue)
![conector](https://img.shields.io/badge/conector-v0.26.1-orange)
![license](https://img.shields.io/badge/license-LGPL-red)
![node](https://img.shields.io/badge/node-%3E%3D%206.0.0-brightgreen)

## Sumário
- [Instalação](#instalação)
  - [Tabela de Compatibilidade](#tabela-de-compatibilidade)
- [Utilização](#utilização)
- [Tipos](#tipos)
- [Conector Externo](#conector-externo)
- [Exemplos](#exemplos)
  - [Autenticação](#autenticação)
  - [Estados de Retry](#estados-de-retry)
  - [Tipos de Retry Signature](#tipos-de-retry-signature)
- [Tratamento de Erro](#tratamento-de-erro)
  - [Códigos de Erro](#códigos-de-erro)
- [Licença](#licença)
- [Geração de Nova Versão](#geração-de-nova-versão)


<h3>
<p align="center">
  <a href="https://ledgertec.com.br/docs/libs/node-conector-client/0.26.1/classes/ConectorClient.ConectorClient-1.html"><span style="margin:0px 10px">🔗</span>Documentação Rap Conector Client</a>
</p>
</h3>

## Instalação

```bash
npm install rap-conector-client
```

### Tabela de Compatibilidade

A versão do cliente que deve ser utilizada depende da versão do RAP Conector a ser acessado. O esquema de versionamento segue o formato **vX.Y.Z**, onde:
- **X.Y.Z** é referente à versão do RAP Conector. Por exemplo, caso esteja utilizando o RAP Conector v0.26.0, **X.Y.Z** na versão do cliente deve ser 0.26.1.
- **Obs.:** Caso essa versão não exista no cliente, deve-se utilizar a versão anterior mais próxima.

Por exemplo:

| Versão do RAP Conector | Versão do cliente que deve ser utilizada |
|------------------------|------------------------------------------|
| v0.26.0                | v0.26.1                                  |
| v0.25.0                | v0.25.0                                  |
| v0.24.12               | v0.24.12                                 |
| v0.24.9                | v0.24.9                                  |
| v0.24.0                | v0.24.0                                  |
| v0.23.0                | v0.23.0                                  |
| v0.21.0                | v0.21.0                                  |
| v0.20.0                | v0.20.0                                  |
| v0.19.0                | v0.19.0                                  |
| v0.18.0                | v0.18.0                                  |
| v0.17.0                | v0.17.0                                  |
| v0.16.0                | v0.16.0                                  |
| v0.15.0                | v0.15.0                                  |
| v0.14.1                | v0.14.1                                  |
| v0.14.0                | v0.14.0                                  |
| v0.13.0                | v0.13.0                                  |
| v0.12.0                | v0.12.0                                  |
| v0.11.3                | v0.11.3                                  |
| v0.11.2                | v0.11.2                                  |
| v0.11.1                | v0.11.1                                  |

## Utilização

CommonJS
```js
const ConectorClient = require('rap-conector-client');

const Conector = ConectorClient.Create({
  url: 'myUrl',
  client_id: 'aaaa-bbbb-cccc',
  debug: true
});

Conector.healthCheck()
  .then(console.log)
  .catch((error)=>console.log(error));
```

ES6
```js
import { Create as ConectorClient } from 'rap-conector-client';

const Conector = ConectorClient({
  url: 'myUrl',
  client_id: 'aaaa-bbbb-cccc',
  debug: true
});

Conector.healthCheck()
  .then(console.log)
  .catch((error)=>console.log(error));
```

## Tipos

É possível importar os tipos através do objecto `TYPES`

```js
import { Create as ConectorClient, TYPES } from 'rap-conector-client';

console.log(TYPES.DocumentTypes) // GroupTypes, RevokeReason, etc.
```

## Conector externo

CommonJS
```js
const ConectorClient = require('rap-conector-client');

const Conector = ConectorClient.CreateExternal({
  url: 'myUrl',
  client_id: 'aaaa-bbbb-cccc',
  debug: true
});

Conector.healthCheck()
  .then(console.log)
  .catch((error)=>console.log(error));
```

ES6
```js
import { CreateExternal as ConectorClient } from 'rap-conector-client';

const Conector = ConectorClient({
  url: 'myUrl',
  client_id: 'aaaa-bbbb-cccc',
  debug: true
});

Conector.healthCheck()
  .then(console.log)
  .catch((error)=>console.log(error));
```

## Exemplos


### Autenticação

Utilizando promises

```js
const ConectorClient = require('rap-conector-client');

const Conector = ConectorClient.Create({
  url: 'http://localhost:8040',
  client_id: 'aaa-bbb-ccc-ddd',
});


Conector.auth({ 
  email: 'example@test.com',
  password: '123456'
}).then((userData) => {
    console.log(userData); //accessToken, name...

    Conector.getDocument({
      docId: 5
    })
      .then(console.log)
      .catch((error) => console.log(error));

})
  .catch((error) => console.log(error));
```

Utilizando async/await

```js
const ConectorClient = require('rap-conector-client');

const Conector = ConectorClient.Create({
  url: 'http://localhost:8040',
  client_id: 'aaa-bbb-ccc-ddd',
});

async function myAsyncFunction(){
  try{
    // Se não deseja receber os dados de usuário basta retirar o const userData:
    // Exemplo: await Conector.auth({email: "", password: ""})
    
    const userData = await Conector.auth({ 
      email: 'example@test.com',
      password: '123456'
    })
    console.log(userData);

    const document = await Conector.getDocument({
      docId: 5
    });
    console.log(document);
  }catch(error){
    console.log(error);
  }
}

myAsyncFunction();
```


#### Estados de retry

| processCode |       Rota       | Descrição                                                                                                          |
| ----------- | :--------------: | ------------------------------------------------------------------------------------------------------------------ |
|     500     |restart-processing| Reinicia o processamento de um documento que ainda não esteja no estado de registro válido ou que esteja em erro.  |
|     501     |retry-generation  | Tenta reexecutar o processo de geração do documento que ainda não esteja registrado ou em um estado de erro.       |
|     504     |retry-registration| Tenta reexecutar o processo de registro de um documento assinado que ainda não esteja registrado ou em erro.       |
|     505     |retry-registration| Tenta reexecutar o processo de registro de um documento assinado que ainda não esteja registrado ou em erro.       |
|     506     |retry-revocation  | Tenta reexecutar o processo de revogação de um documento assinado que já esteja registrado ou em um estado de erro.|
|     507     |retry-restamping  | Tenta reexecutar o processo de recarimbamento de um documento assinado que já esteja registrado ou em erro.        |

#### Tipos de retry signature
|      type      |        Rota        | Descrição                                                                                                     |
| -------------- | :----------------: | ------------------------------------------------------------------------------------------------------------- |
|    SIGNATURE   | restry-signature   | Tenta reexecutar o processamento da última assinatura do documento que ainda não esteja registrado ou em erro.|
|    SIGNATURES  | restart-signatures | Tenta reexecutar todo processo de assinaturas do documento que ainda não esteja registrado ou em erro.        |

## Tratamento de erro

Utilizando promises

```js
Conector
  .getDocuments(options)
  .then(console.log)
  .catch((error)=>console.log(error));
```

Utilizando async/await

```js
try{
  const documents = await Conector.getDocuments();
  //do something
}catch(error){
  console.log(error);
}
```

Retorno

```js
{error: true, message: "error message", code: "integer"}
```

### Códigos de erro

| Código        | Descrição           | 
| ------------- | :-------------: | 
| 400 |  Credenciais de autenticação inválidas |
| 401 |  Credenciais de autenticação inválidas |
| 404 |  Objeto não encontrado no conector |
| 422 |  Não foi possível processar os dados da requisição |
| 500 |  Ocorreu um erro inesperado no servidor |
| 501 |  Erro na validação interna da client, por exemplo: docId não informado |
## Licença 

Licenciado sob a GNU LGPL-3.0-ou-posterior

## Geração de Nova Versão
Passos para Gerar uma Nova Versão

**1. Gerar o Build da Biblioteca**

   Execute o comando para gerar o build da biblioteca:
   ```
   npm run dist
   ```

**2. Fazer um Commit com as Alterações**

   Após gerar o build, faça um commit informando as alterações. Utilize mensagens de commit descritivas, como:
   ```
   git add .
   git commit -m "feat: conector {version} compatibility"
   ```

**3. Gerar a Nova Documentação**

  Execute o comando para gerar a documentação estática:
  ```
  npm run docs
  ```

**4. Atualizar a Versão da Biblioteca no README**

  Atualize a versão da biblioteca no README.md, substituindo as referências à versão antiga pela nova. Inclua quaisquer novas alterações ou documentações necessárias.

**5. Criar uma nova Release**

  Para alterar a versão da biblioteca e fazer o commit das alterações de documentação, execute:
  ```
  npm run release:minor
  ```
  Isso irá atualizar a versão e criar um commit com as mudanças.

**6. Criar uma Tag para a nova Release**
  
  Crie uma tag associada ao último commit, usando o hash e o número da nova versão, execute:
  ```
  git tag <nome-da-tag> <hash-do-commit>
  git push origin <nome-da-tag>
  ```

---
_Source: https://npm.io/package/rap-conector-client · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
