ixc-orm 1.10.4 → 1.10.6

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/CHANGELOG.md CHANGED
@@ -1,4 +1,6 @@
1
1
  # 🔄 CHANGELOG
2
+ - [v1.10.6 - 23 de dezembro de 2025](#v1106)
3
+ - [v1.10.5 - 20 de dezembro de 2025](#v1105)
2
4
  - [v1.10.4 - 20 de novembro de 2025](#v1104)
3
5
  - [v1.9.0 - 09 de outubro de 2025](#v190)
4
6
  - [v1.8.0 - 18 de outubro de 2025](#v180)
@@ -10,13 +12,20 @@
10
12
  - [v1.4.3 - 15 de agosto de 2025](#v143)
11
13
  - [v1.4.1 - 14 de agosto de 2025](#v141)
12
14
 
15
+
13
16
  ## 🚀 Novidades
14
17
 
18
+ ### v1.10.6
19
+ * **Correção:** Removido o bug que ocorria ao tentar utilizar o recurso `liberacaoTemporaria({ id_contrato })` sem que as antigas variáveis de ambiente estivessem definidas.
20
+
21
+ ### v1.10.5
22
+ * **Correção:** Removida a utilização da biblioteca nativa DOMParser, que quebrava ao tentar extrair a mensagem de erro de uma resposta do IXC Provedor.
23
+
15
24
  ### v1.10.4
16
- * **Melhoria:** O recurso `Recurso.getArquivoBoleto()`, que obtém um arquivo PDF de um boleto, passou a utilizar o 'RequestEmitter' da API para executar a requisição. A resposta desse recurso será uma Promise contendo a instância de um objeto do tipo `IxcResponse`.
25
+ * **Melhoria:** O recurso `Recurso.getArquivoBoleto()`, que obtém um arquivo PDF de um boleto, passou a utilizar o 'RequestEmitter' da API para executar a requisição. A resposta desse recurso será uma Promise contendo a instância de um objeto do tipo <a href="https://github.com/SousaFelipe/ixc-orm/blob/main/src/IxcResponse.ts">IxcResponse</a>.
17
26
 
18
27
  ### v1.9.0
19
- * **Melhoria:** Novo recurso para remoção de MAC de um PPPoE, através do recurso `radusuarios_25452`, que é disponibilizado pela própria API do IXC Provedor. Para utilizar o recurso, invocar o método assícrono `Recurso.limparMAC({ id_login: number });`. O método irá retornar a instãncia de um <a href="https://github.com/SousaFelipe/ixc-orm/blob/main/src/IxcResponse.ts">IxcResponse</a>.
28
+ * **Melhoria:** Novo recurso para remoção de MAC de um PPPoE, através do recurso `radusuarios_25452`, que é disponibilizado pela própria API do IXC Provedor. Para utilizar o recurso, invocar o método assícrono `Recurso.limparMAC({ id_login: number });`. O método irá retornar a instância de um <a href="https://github.com/SousaFelipe/ixc-orm/blob/main/src/IxcResponse.ts">IxcResponse</a>.
20
29
 
21
30
  ### v1.8.0
22
31
  * **Melhoria:** O processo de carregamento do ambiente consegue detectar se as variáveis já foram carregas por um container Docker e interrompe o carregamento através do `.env`, evitando que a aplicação encerre o processo com erro..
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <div align="center">
2
-
2
+
3
3
  # IXC-ORM
4
4
 
5
5
  ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)
@@ -30,13 +30,10 @@ yarn add ixc-orm
30
30
 
31
31
  ## Como utilizar
32
32
 
33
- Para configurar a comunicação da biblioteca com seu servidor IXC Provedor, é necessário adicionar as seguintes variáveis de ambiente a um arquivo `.env`, que esteja localizado no diretório raiz do seu projeto.
34
-
35
- > [!NOTE]\
36
- > Versão 1.10.4 `stable`
33
+ Para configurar a comunicação da biblioteca com o seu IXC Provedor, será necessário adicionar as seguintes variáveis de ambiente a um arquivo `.env`, que esteja localizado no diretório raiz do seu projeto.
37
34
 
38
35
  - **IXC_ACCESS_TOKEN** Um token de API gerado dentro do IXC Provedor.
39
- - **IXC_SERVER_DOMAIN** O domínio do seu servidor IXC Provedor.
36
+ - **IXC_SERVER_DOMAIN** O domínio do seu IXC Provedor.
40
37
 
41
38
  ```ini
42
39
  IXC_ACCESS_TOKEN=conteúdo-do-token-gerado-dentro-do-ixc
@@ -48,8 +45,10 @@ Você também poderá configurar para que o Docker carregue as variáveis, ao in
48
45
  ```yaml
49
46
  services:
50
47
  sua-aplicacao:
51
- build: .
52
- image: sua-imagem-docker
48
+ build:
49
+ context: .
50
+ dockerfile: Dockerfile
51
+ image: sua-imagem-docker:0.0.0
53
52
  environment:
54
53
  - IXC_ACCESS_TOKEN=${IXC_ACCESS_TOKEN}
55
54
  - IXC_SERVER_DOMAIN=${IXC_SERVER_DOMAIN}
@@ -57,10 +56,7 @@ services:
57
56
  ```
58
57
 
59
58
 
60
- As classes que representarão os diferentes tipos de registros no seu **IXC Provedor**, deverão herdar da classe `IxcOrm` (nova versão), como no exemplo a seguir:
61
-
62
- > [!NOTE]\
63
- > Versão 1.10.4 `stable`
59
+ As classes que representarão os diferentes tipos de registros no seu **IXC Provedor**, deverão herdar da classe `IxcOrm`, como no exemplo a seguir:
64
60
 
65
61
  ```typescript
66
62
  import { IxcOrm } from 'ixc-orm';
@@ -73,10 +69,7 @@ class Contrato extends IxcOrm {
73
69
  ```
74
70
 
75
71
 
76
- Após instanciar um objeto com o tipo que você criou (`Contrato, como no exemplo a cima`), você poderá acessar os métodos de construção da query de busca.
77
-
78
- > [!NOTE]\
79
- > Versão 1.10.4 `stable`
72
+ Após instanciar um objeto com o tipo criado (**Contrato**, como no exemplo a cima), você poderá acessar os métodos de construção da query de busca, da seguinte forma:
80
73
 
81
74
  ```typescript
82
75
  import { IxcResponse, Sort } from 'ixc-orm';
@@ -95,7 +88,7 @@ const contratos = response.registros();
95
88
 
96
89
  ## Recursos da API do IXC Provedor
97
90
 
98
- Existem alguns `endpoints` que a API do IXC Provedor disponibiliza, a fim de "encurtar o caminho" para chegar até algumas informações. Como por exemplo, obter o arquivo PDF de uma fatura. Para isso, você não precisará se preocupar em criar uma classe `Boleto` que herde da classe `IxcOrm`, por exemplo, nem encadear chamadas de filtros. Basta fazer como no exemplo a seguir:
91
+ Existem alguns `endpoints` que a API do IXC Provedor disponibiliza, a fim de "encurtar o caminho" para chegar até algumas informações ou executar determinadas ações. Como por exemplo, obter o arquivo PDF de uma fatura! Para isso, você não precisará se preocupar em criar uma classe `Boleto` que herde da classe `IxcOrm`, por exemplo, nem encadear chamadas de filtros. Basta fazer como no exemplo a seguir:
99
92
 
100
93
  ```typescript
101
94
  import { Recurso } from 'ixc-orm';
@@ -104,16 +97,23 @@ const id_contrato = 45852;
104
97
  const response = await Recurso.desbloqueioDeConfianca({ id_contrato });
105
98
  ```
106
99
 
107
- > Dos recursos disponibilizados pela API do **IXC Provedor**, essa biblioteca já possui as implementações de:\
108
- > `cliente_contrato_ativar_cliente`, `cliente_contrato_btn_lib_temp_24722`, `desbloqueio_confianca`, `get_boleto` e `radusuarios_25452`.\
109
- > Obs: Os nomes dos recursos estão de acordo com a API do **IXC Provedor** a fim de facilitar o estudo através da sua própria documentação oficial.
100
+
101
+ ### Recursos disponíveis:
102
+
103
+ | Método da biblioteca | Recurso IXC | Descrição
104
+ | :---------- | :--------- | :---------- |
105
+ | ativaContrato({ id_contrato }) | cliente_contrato_ativar_cliente | Ativa um contrato que esteja com o status de `pré-contrato` |
106
+ | desbloqueioDeConfianca({ id_contrato }) | desbloqueio_confianca | Solicita liberação de um cliente que já tenha sido desbloqueado |
107
+ | getArquivoBoleto({ id_fatura }) | get_boleto | Obtém uma string base64 com o conteúdo do PDF da fatura de um cliente |
108
+ | limparMAC({ id_login }) | radusuarios_25452 | Remove o endereço de MAC do login de um cliente |
109
+ | liberacaoTemporaria({ id_contrato }) | cliente_contrato_btn_lib_temp_24722 | Desbloqueia, por 72 horas, o contrato de um cliente bloqueado |
110
110
 
111
111
 
112
112
  # Contribuições
113
113
 
114
114
  Contribuições são sempre bem-vindas!\
115
- Se você conhece uma maneira melhor de fazer algo, por favor, me avise!
116
- Caso contrário, é sempre melhor fazer um PR na branch main.
115
+ Se você conhece uma maneira melhor de fazer algo, por favor, me avise!\
116
+ Ou sinta-se a vontade para criar um novo PR!
117
117
 
118
118
  At.te,\
119
119
  <b>Felipe S. Carmo</b>.
@@ -119,13 +119,13 @@ class IxcResponse {
119
119
  }
120
120
  }
121
121
  createDataFromHtml() {
122
- const parser = new DOMParser();
123
- const document = parser.parseFromString(this.text, 'text/html');
122
+ const match = this.text.match(/>(.*?)<\/div>/);
123
+ const message = match ? match[1] : undefined;
124
124
  return {
125
125
  type: 'error',
126
126
  page: 0,
127
127
  total: 0,
128
- message: document.body.textContent
128
+ message
129
129
  };
130
130
  }
131
131
  }
@@ -1,4 +1,4 @@
1
- import { IXCResponse } from '../types';
1
+ import IxcResponse from '../IxcResponse';
2
2
  export default function cliente_contrato(args: {
3
3
  id_contrato?: string | number;
4
- }): Promise<IXCResponse>;
4
+ }): Promise<IxcResponse>;
@@ -13,16 +13,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.default = cliente_contrato;
16
- const recurso_1 = __importDefault(require("./recurso"));
16
+ const RequestEmitter_1 = __importDefault(require("../api/RequestEmitter"));
17
17
  const src = 'cliente_contrato_btn_lib_temp_24722';
18
18
  function cliente_contrato(args) {
19
19
  return __awaiter(this, void 0, void 0, function* () {
20
20
  const { id_contrato } = args;
21
- return yield (0, recurso_1.default)({
22
- src,
23
- data: {
24
- id_contrato
25
- }
21
+ const requestEmitter = new RequestEmitter_1.default(src);
22
+ requestEmitter.setupQuery({
23
+ id: id_contrato
26
24
  });
25
+ return yield requestEmitter.sendRequestToResource();
27
26
  });
28
27
  }
@@ -1,3 +1,4 @@
1
+ import cliente_contrato_ativar_cliente from './cliente_contrato_ativar_cliente';
1
2
  import cliente_contrato_btn_lib_temp_24722 from './cliente_contrato_btn_lib_temp_24722';
2
3
  import desbloqueio_confianca from './desbloqueio_confianca';
3
4
  import get_boleto from './get_boleto';
@@ -6,7 +7,6 @@ import radusuarios_25452 from './radusuarios_25452';
6
7
  * @deprecated Acesse os recursos através da constante {@link Recurso}
7
8
  */
8
9
  declare const recursos: {
9
- cliente_contrato: typeof cliente_contrato_btn_lib_temp_24722;
10
10
  desbloqueio_confianca: typeof desbloqueio_confianca;
11
11
  get_boleto: typeof get_boleto;
12
12
  };
@@ -16,6 +16,16 @@ type Recursos = typeof recursos;
16
16
  * **ATENÇÃO** --- Nem todos os recursos da API do IXC foram implementados por esta biblioteca
17
17
  */
18
18
  export declare const Recurso: {
19
+ /**
20
+ * Ativa o contrato de um cliente que esteja com o status de "pré-contrato". Este recurso não
21
+ * é capaz de ativar contratos que tenha sido desativados, ou estejam bloqueados.
22
+ *
23
+ * @description Corresponde ao recurso `cliente_contrato_ativar_cliente`
24
+ *
25
+ * @param id_contrato O ID do contrato que se deseja ativar
26
+ * @returns Um objeto **IxcResponse** contendo a resposta enviada pelo IXC
27
+ */
28
+ ativaContrato: typeof cliente_contrato_ativar_cliente;
19
29
  /**
20
30
  * Solicita ao IXC que desbloqueie o contrato de um cliente bloqueado, que já solicitou
21
31
  * a liberação temporária dentro de um período de 30 dias. Este recurso só funciona, caso
@@ -33,7 +43,7 @@ export declare const Recurso: {
33
43
  * @description Corresponde ao recurso `get_boleto`
34
44
  *
35
45
  * @param id_fatura O ID da fatura
36
- * @returns Um **IXCResponse**, caso a requisição falhe, ou um **IXCRecursoResponse**
46
+ * @returns Um **IxcResponse**, caso a requisição falhe, ou um **IXCRecursoResponse**
37
47
  * contendo o conteúdo do boleto, caso a requisição seja bem-sucedida
38
48
  */
39
49
  getArquivoBoleto: typeof get_boleto;
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.Recurso = void 0;
16
16
  exports.default = RecursoIXC;
17
+ const cliente_contrato_ativar_cliente_1 = __importDefault(require("./cliente_contrato_ativar_cliente"));
17
18
  const cliente_contrato_btn_lib_temp_24722_1 = __importDefault(require("./cliente_contrato_btn_lib_temp_24722"));
18
19
  const desbloqueio_confianca_1 = __importDefault(require("./desbloqueio_confianca"));
19
20
  const get_boleto_1 = __importDefault(require("./get_boleto"));
@@ -22,7 +23,6 @@ const radusuarios_25452_1 = __importDefault(require("./radusuarios_25452"));
22
23
  * @deprecated Acesse os recursos através da constante {@link Recurso}
23
24
  */
24
25
  const recursos = {
25
- cliente_contrato: cliente_contrato_btn_lib_temp_24722_1.default,
26
26
  desbloqueio_confianca: desbloqueio_confianca_1.default,
27
27
  get_boleto: get_boleto_1.default
28
28
  };
@@ -31,6 +31,16 @@ const recursos = {
31
31
  * **ATENÇÃO** --- Nem todos os recursos da API do IXC foram implementados por esta biblioteca
32
32
  */
33
33
  exports.Recurso = {
34
+ /**
35
+ * Ativa o contrato de um cliente que esteja com o status de "pré-contrato". Este recurso não
36
+ * é capaz de ativar contratos que tenha sido desativados, ou estejam bloqueados.
37
+ *
38
+ * @description Corresponde ao recurso `cliente_contrato_ativar_cliente`
39
+ *
40
+ * @param id_contrato O ID do contrato que se deseja ativar
41
+ * @returns Um objeto **IxcResponse** contendo a resposta enviada pelo IXC
42
+ */
43
+ ativaContrato: cliente_contrato_ativar_cliente_1.default,
34
44
  /**
35
45
  * Solicita ao IXC que desbloqueie o contrato de um cliente bloqueado, que já solicitou
36
46
  * a liberação temporária dentro de um período de 30 dias. Este recurso só funciona, caso
@@ -48,7 +58,7 @@ exports.Recurso = {
48
58
  * @description Corresponde ao recurso `get_boleto`
49
59
  *
50
60
  * @param id_fatura O ID da fatura
51
- * @returns Um **IXCResponse**, caso a requisição falhe, ou um **IXCRecursoResponse**
61
+ * @returns Um **IxcResponse**, caso a requisição falhe, ou um **IXCRecursoResponse**
52
62
  * contendo o conteúdo do boleto, caso a requisição seja bem-sucedida
53
63
  */
54
64
  getArquivoBoleto: get_boleto_1.default,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ixc-orm",
3
- "version": "1.10.4",
3
+ "version": "1.10.6",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",
@@ -40,7 +40,6 @@
40
40
  "@jest/globals": "^30.2.0",
41
41
  "@testing-library/jest-dom": "^6.9.1",
42
42
  "@types/jest": "^30.0.0",
43
- "@types/jsdom": "^27.0.0",
44
43
  "@types/node": "^24.10.1",
45
44
  "babel-jest": "^30.2.0",
46
45
  "jest": "^30.2.0",