ixc-orm 1.4.4 → 1.5.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/CHANGELOG.md ADDED
@@ -0,0 +1,24 @@
1
+ # 🔄 CHANGELOG
2
+ - [v1.5.0 - 16 de agosto de 2025](#v150)
3
+ - [v1.4.4 - 15 de agosto de 2025](#v144)
4
+ - [v1.4.3 - 15 de agosto de 2025](#v143)
5
+ - [v1.4.1 - 14 de agosto de 2025](#v141)
6
+
7
+ ## 🚀 Novidades
8
+
9
+ ### v1.5.0
10
+ * **Melhoria:** A chamada de recursos da API agora pode ser feita de forma mais simplificada, através da função `RecursoIXC`:
11
+ * Basta importar assim: `import { RecursoIXC } from 'ixc-orm'`;
12
+ * E chamar assim: `await RecursoIXC('get_boleto', { id_fatura: 25484 })`.
13
+
14
+ ### v1.4.4
15
+ * **Melhoria:** Foi adicionado um método `find()` a classe `IXCClient`, para encontrar um registro pelo seu `id` de uma forma mais simplificada.
16
+
17
+ ### v1.4.3
18
+ * **Melhoria:** Os métodos `get()`, `post()` e `put()` da classe `IXCClient`, a partir de agora sempre retornarão um objeto `IXCResponse`, indepedente da requisição falhar ou não.
19
+
20
+ ### v1.4.1
21
+ * **Correção:** Resolvido o bug de leitura das variáveis de ambiente no arquivo .env da pasta raiz do projeto.
22
+ * **Melhoria:** Foram adicionados 3 dos 44 recursos da API do IXC: `get_boleto`, `liberacao_temporaria` e `desbloqueio_confianca`. (Futuramente novos recursos serão adicionados)
23
+
24
+ > Consulte todos os recursos disponíveis: [Doc. API IXCSoft](https://wikiapiprovedor.ixcsoft.com.br/)
package/README.md CHANGED
@@ -1,25 +1,12 @@
1
1
  # IXC-ORM [![npm](https://img.shields.io/npm/dt/ixc-orm.svg)](https://www.npmjs.com/package/ixc-orm)
2
2
 
3
- Este ORM simples visa facilitar o consumo de dados da API oficial do IXCsoft.\
4
- Esta biblioteca não faz parte das bibliotecas oficiais da IXCsoft e foi desenvolvida de forma independente e sem fins lucrativos.
3
+ Este ORM visa facilitar o consumo de dados da API oficial do [IXC Provedor](https://ixcsoft.com/ixc-provedor).\
4
+ Esta biblioteca não faz parte das bibliotecas oficiais da [IXCsoft](https://ixcsoft.com/) e foi desenvolvida de forma independente e sem fins lucrativos.
5
5
 
6
6
 
7
- ## 🚀 Novidades
8
-
9
- ### v1.4.4 - 15 de agosto de 2025
10
- * **Melhorado:** Foi adicionado um método `find()` a classe `IXCClient`, para encontrar um registro pelo seu `id` de uma forma mais simples.
11
-
12
- ### v1.4.3 - 15 de agosto de 2025
13
- * **Melhorado:** Os métodos `get()`, `post()` e `put()` da classe `IXCClient`, a partir de agora sempre retornarão um objeto `IXCResponse`, indepedente da requisição falhar ou não.
14
-
15
- ### v1.4.1 - 14 de agosto de 2025
16
- * **Corrigido:** Resolvido o bug de leitura das variáveis de ambiente no arquivo .env na pasta raiz.
17
- * **Novo:** Foram adicionados 3 dos 44 recursos da API do IXC: `get_boleto`, `liberacao_temporaria` e `desbloqueio_confianca`. (Futuramente novos recursos serão adicionados)
18
-
19
- > Consulte todos os recursos disponíveis: [Doc. API IXCSoft](https://wikiapiprovedor.ixcsoft.com.br/)
20
-
21
7
 
22
8
  ## Instalação
9
+
23
10
  ```bash
24
11
  npm install ixc-orm
25
12
  ```
@@ -29,15 +16,15 @@ yarn add ixc-orm
29
16
  ```
30
17
 
31
18
 
19
+
32
20
  ## Usando a biblioteca
33
21
 
34
- > As classes que representarão as tabelas dentro do banco de dados do seu servidor IXC, deverão herdar da classe `IXCClient`.
22
+ > As classes que representarão as tabelas dentro do banco de dados do seu servidor IXC, deverão herdar da classe `IXCClient`, como no exemplo a seguir:
35
23
 
36
24
  ```typescript
37
25
  import { IXCClient } 'ixc-orm';
38
26
 
39
27
  class Contrato extends IXCClient {
40
-
41
28
  constructor() {
42
29
  super('cliente_contrato');
43
30
  }
@@ -53,17 +40,49 @@ const contratos = await contrato
53
40
  .where(['id_cliente', 240])
54
41
  .where(['data_ativacao', '>=', '2024-09-24 00:45:00'])
55
42
  .orderBy('data_ativacao', 'desc')
56
- .get();
43
+ .get()
44
+ ```
45
+
46
+ Ou quando você já possui o ID do registro que procura, a opção mais simples será utilizar o método `find()`. Este método também está implementado na classe `IXCClient`
47
+
48
+ ```typescript
49
+ const contrato = new Contrato();
50
+
51
+ const id_contrato = 4574;
52
+
53
+ const contratos = await contrato.find(id_contrato)
57
54
  ```
58
55
 
59
56
 
57
+
58
+ ## Recursos da API do IXC Provedor
59
+
60
+ Existem alguns `endpoints` que a API do IXC disponibiliza, a fim de "encurtar o caminho" para chegar até algumas informações. Como por exemplo, obter o arquivo PDF de uma fatura.\
61
+ Você não precisará se preocupar em criar uma classe `Boleto` que herde da classe `IXCClient`, por exemplo,\
62
+ nem encadear chamadas `where`. Basta seguir o exemplo abaixo:
63
+
64
+ ```typescript
65
+ import { RecursoIXC } from 'ixc-orm';
66
+
67
+ const id_fatura = 45852;
68
+
69
+ const response = await RecursoIXC('get_boleto', { id_fatura })
70
+ ```
71
+
72
+ > Dos recursos disponibilizados pela API do **IXC Provedor**, esta biblioteca já implementou os seguintes recursos:\
73
+ > `get_boleto`, `desbloqueio_confianca` e `cliente_contrato_btn_lib_temp_24722`.\
74
+ > Obs: Os nomes dos recursos estão de acordo com a API do **IXC Provedor** a fim de facilitar o estudo de sua documentação oficial.
75
+
76
+
77
+
60
78
  ## Variáveis de Ambiente
61
79
 
62
80
  Para configurar a comunicação da biblioteca com seu servidor IXC, é necessário adicionar as seguintes variáveis de ambiente a um arquivo `.env`, que esteja localizado no diretório raiz do seu projeto.
63
81
 
64
- `IXC_HOST`
65
-
66
- `IXC_TOKEN`
82
+ > **IXC_HOST** A url do seu servidor IXC\
83
+ > **IXC_TOKEN** Um token de API gerado dentro do próprio **IXC Provedor**
67
84
 
68
- > **IXC_HOST** A url do seu servidor IXC, no formato: `https://seudominio.com.br/webservice/v1`\
69
- > **IXC_TOKEN** Um token de API gerado dentro do seu sistema IXCsoft.
85
+ ```ini
86
+ IXC_HOST="https://dominiodoservidorixc.com.br/webservice/v1"
87
+ IXC_TOKEN="8:k4n8wk1946j7mimthei869cq1zz2u940f2gqobqg081y2oefl80mzhtq2wud3gqp"
88
+ ```
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import IXCClient from './IXCClient';
2
- import recursos from './recursos';
2
+ import RecursoIXC from './recursos';
3
3
  import { IXCOperator, IXCOptions, IXCQuery, IXCRequest, IXCRequestMethods, IXCResponse, IXCSortOrder } from './types';
4
- export { IXCClient, IXCOperator, IXCOptions, IXCQuery, IXCRequest, IXCRequestMethods, IXCResponse, IXCSortOrder, recursos };
4
+ export { IXCClient, IXCOperator, IXCOptions, IXCQuery, IXCRequest, IXCRequestMethods, IXCResponse, IXCSortOrder, RecursoIXC };
package/dist/index.js CHANGED
@@ -3,20 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.recursos = exports.IXCSortOrder = exports.IXCRequestMethods = exports.IXCOperator = exports.IXCClient = void 0;
6
+ exports.RecursoIXC = exports.IXCSortOrder = exports.IXCRequestMethods = exports.IXCOperator = exports.IXCClient = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const dotenv_1 = __importDefault(require("dotenv"));
9
9
  const IXCClient_1 = __importDefault(require("./IXCClient"));
10
10
  exports.IXCClient = IXCClient_1.default;
11
11
  const recursos_1 = __importDefault(require("./recursos"));
12
- exports.recursos = recursos_1.default;
12
+ exports.RecursoIXC = recursos_1.default;
13
13
  const types_1 = require("./types");
14
14
  Object.defineProperty(exports, "IXCOperator", { enumerable: true, get: function () { return types_1.IXCOperator; } });
15
15
  Object.defineProperty(exports, "IXCRequestMethods", { enumerable: true, get: function () { return types_1.IXCRequestMethods; } });
16
16
  Object.defineProperty(exports, "IXCSortOrder", { enumerable: true, get: function () { return types_1.IXCSortOrder; } });
17
17
  const root = (__dirname.includes('\\node_modules\\'))
18
- ? path_1.default.join(__dirname, `../../../.env`)
19
- : path_1.default.join(__dirname, `../../.env`);
18
+ ? path_1.default.join(__dirname, '../../../.env')
19
+ : path_1.default.join(__dirname, '../../.env');
20
20
  const env = dotenv_1.default.config({ path: root });
21
21
  if (env.error) {
22
22
  console.error(env.error);
@@ -1,6 +1,4 @@
1
1
  import { IXCResponse } from '../types';
2
- declare function execute(id_contrato: string | number): Promise<IXCResponse>;
3
- declare const _default: {
4
- readonly execute: typeof execute;
5
- };
6
- export default _default;
2
+ export default function cliente_contrato(args: {
3
+ id_contrato?: string | number;
4
+ }): Promise<IXCResponse>;
@@ -12,14 +12,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.default = cliente_contrato;
15
16
  const recurso_1 = __importDefault(require("./recurso"));
16
17
  const src = 'cliente_contrato_btn_lib_temp_24722';
17
- function execute(id_contrato) {
18
+ function cliente_contrato(args) {
18
19
  return __awaiter(this, void 0, void 0, function* () {
20
+ const { id_contrato } = args;
19
21
  return yield (0, recurso_1.default)({
20
22
  src,
21
- data: { id_contrato }
23
+ data: {
24
+ id_contrato
25
+ }
22
26
  });
23
27
  });
24
28
  }
25
- exports.default = { execute };
@@ -1,6 +1,4 @@
1
1
  import { IXCResponse } from '../types';
2
- declare function execute(id_contrato: string | number): Promise<IXCResponse>;
3
- declare const _default: {
4
- readonly execute: typeof execute;
5
- };
6
- export default _default;
2
+ export default function desbloqueio_confianca(args: {
3
+ id_contrato?: string | number;
4
+ }): Promise<IXCResponse>;
@@ -12,14 +12,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.default = desbloqueio_confianca;
15
16
  const recurso_1 = __importDefault(require("./recurso"));
16
17
  const src = 'desbloqueio_confianca';
17
- function execute(id_contrato) {
18
+ function desbloqueio_confianca(args) {
18
19
  return __awaiter(this, void 0, void 0, function* () {
20
+ const { id_contrato } = args;
19
21
  return yield (0, recurso_1.default)({
20
22
  src,
21
- data: { id_contrato }
23
+ data: {
24
+ id_contrato
25
+ }
22
26
  });
23
27
  });
24
28
  }
25
- exports.default = { execute };
@@ -1,6 +1,4 @@
1
1
  import { IXCRecursoResponse, IXCResponse } from '../types';
2
- declare function execute(id_fatura: string | number): Promise<IXCResponse | IXCRecursoResponse>;
3
- declare const _default: {
4
- readonly execute: typeof execute;
5
- };
6
- export default _default;
2
+ export default function get_boleto(args: {
3
+ id_fatura?: string | number;
4
+ }): Promise<IXCResponse | IXCRecursoResponse>;
@@ -9,13 +9,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.default = get_boleto;
12
13
  const request_1 = require("../request");
13
14
  const response_1 = require("../response");
14
15
  const SRC = 'get_boleto';
15
- function execute(id_fatura) {
16
+ function get_boleto(args) {
16
17
  return __awaiter(this, void 0, void 0, function* () {
17
18
  const axios = (0, request_1.createAxiosInstance)('PUT');
18
19
  try {
20
+ const { id_fatura } = args;
19
21
  const response = yield axios.get(SRC, {
20
22
  data: {
21
23
  boletos: id_fatura,
@@ -38,4 +40,3 @@ function execute(id_fatura) {
38
40
  return (0, response_1.createResponse)({ error: true });
39
41
  });
40
42
  }
41
- exports.default = { execute };
@@ -1,12 +1,19 @@
1
- declare const _default: {
2
- readonly desbloqueio_confianca: {
3
- readonly execute: (id_contrato: string | number) => Promise<import("..").IXCResponse>;
4
- };
5
- readonly get_boleto: {
6
- readonly execute: (id_fatura: string | number) => Promise<import("..").IXCResponse | import("../types").IXCRecursoResponse>;
7
- };
8
- readonly liberacao_temporaria: {
9
- readonly execute: (id_contrato: string | number) => Promise<import("..").IXCResponse>;
10
- };
1
+ import cliente_contrato from './cliente_contrato_btn_lib_temp_24722';
2
+ import desbloqueio_confianca from './desbloqueio_confianca';
3
+ import get_boleto from './get_boleto';
4
+ declare const recursos: {
5
+ cliente_contrato: typeof cliente_contrato;
6
+ desbloqueio_confianca: typeof desbloqueio_confianca;
7
+ get_boleto: typeof get_boleto;
11
8
  };
12
- export default _default;
9
+ type Recursos = typeof recursos;
10
+ /**
11
+ * Uma função que simplifica a execução de recursos específicos da API do IXC\
12
+ * Para encontrar todos os recursos, acesse: {@link https://wikiapiprovedor.ixcsoft.com.br/}
13
+ *
14
+ * @param recurso O nome do recurso a ser executado
15
+ * @param args Os argumentos que devem ser passado para o manipulador do recurso
16
+ * @returns Promise<IXCResponse | IXCRecursoResponse>
17
+ */
18
+ export default function RecursoIXC<T extends keyof Recursos>(recurso: T, args: Parameters<Recursos[T]>[0]): Promise<import("..").IXCResponse | import("../types").IXCRecursoResponse>;
19
+ export {};
@@ -1,13 +1,37 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
5
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.default = RecursoIXC;
6
16
  const cliente_contrato_btn_lib_temp_24722_1 = __importDefault(require("./cliente_contrato_btn_lib_temp_24722"));
7
17
  const desbloqueio_confianca_1 = __importDefault(require("./desbloqueio_confianca"));
8
18
  const get_boleto_1 = __importDefault(require("./get_boleto"));
9
- exports.default = {
19
+ const recursos = {
20
+ cliente_contrato: cliente_contrato_btn_lib_temp_24722_1.default,
10
21
  desbloqueio_confianca: desbloqueio_confianca_1.default,
11
- get_boleto: get_boleto_1.default,
12
- liberacao_temporaria: cliente_contrato_btn_lib_temp_24722_1.default,
22
+ get_boleto: get_boleto_1.default
13
23
  };
24
+ /**
25
+ * Uma função que simplifica a execução de recursos específicos da API do IXC\
26
+ * Para encontrar todos os recursos, acesse: {@link https://wikiapiprovedor.ixcsoft.com.br/}
27
+ *
28
+ * @param recurso O nome do recurso a ser executado
29
+ * @param args Os argumentos que devem ser passado para o manipulador do recurso
30
+ * @returns Promise<IXCResponse | IXCRecursoResponse>
31
+ */
32
+ function RecursoIXC(recurso, args) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const handler = recursos[recurso];
35
+ return yield handler(args);
36
+ });
37
+ }
@@ -1 +1 @@
1
- {"root":["../src/ixcclient.ts","../src/index.ts","../src/request.ts","../src/response.ts","../src/types.ts","../src/recursos/cliente_contrato_btn_lib_temp_24722.ts","../src/recursos/desbloqueio_confianca.ts","../src/recursos/get_boleto.ts","../src/recursos/index.ts","../src/recursos/recurso.ts","../src/recursos/types.ts"],"version":"5.6.2"}
1
+ {"root":["../src/ixcclient.ts","../src/index.ts","../src/request.ts","../src/response.ts","../src/types.ts","../src/recursos/cliente_contrato_btn_lib_temp_24722.ts","../src/recursos/desbloqueio_confianca.ts","../src/recursos/get_boleto.ts","../src/recursos/index.ts","../src/recursos/recurso.ts"],"version":"5.9.2"}
package/dist/types.d.ts CHANGED
@@ -49,6 +49,7 @@ export interface IXCResponse {
49
49
  }>;
50
50
  }
51
51
  export interface IXCRecursoResponse {
52
- error?: boolean | object;
53
52
  data: any;
53
+ error?: boolean | object;
54
+ message?: string;
54
55
  }
package/dist/types.js CHANGED
@@ -20,3 +20,8 @@ exports.IXCRequestMethods = {
20
20
  PUT: 'PUT',
21
21
  DELETE: 'DELETE'
22
22
  };
23
+ ;
24
+ ;
25
+ ;
26
+ ;
27
+ ;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ixc-orm",
3
- "version": "1.4.4",
3
+ "version": "1.5.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",
@@ -28,13 +28,13 @@
28
28
  "url": "https://github.com/SousaFelipe/ixc-orm/issues"
29
29
  },
30
30
  "dependencies": {
31
- "axios": "^1.10.0",
32
- "dotenv": "^17.1.0"
31
+ "axios": "^1.11.0",
32
+ "dotenv": "^17.2.1"
33
33
  },
34
34
  "devDependencies": {
35
- "@types/node": "^24.0.12",
35
+ "@types/node": "^24.3.0",
36
36
  "nodemon": "^3.1.10",
37
37
  "ts-node": "^10.9.2",
38
- "typescript": "^5.6.2"
38
+ "typescript": "^5.9.2"
39
39
  }
40
40
  }
@@ -1,26 +0,0 @@
1
- export interface Boleto {
2
- /**
3
- * @property id da fatura
4
- */
5
- boletos: string | number;
6
- /**
7
- * @property // 'S'->SIM e 'N'->NÃO para cálculo de júro
8
- */
9
- juro: 'S' | 'N';
10
- /**
11
- * @property // 'S'->SIM e 'N'->NÃO para cálculo de multa
12
- */
13
- multa: 'S' | 'N';
14
- /**
15
- * @property // 'S'->SIM e 'N'->NÃO para atualizar o boleto
16
- */
17
- atualiza_boleto: 'S' | 'N';
18
- /**
19
- * @property // tipo de método que será executado
20
- */
21
- tipo_boleto: 'arquivo';
22
- /**
23
- * @property // 'S'->SIM e 'N'->NÃO para retornar o boleto em base64
24
- */
25
- base64: 'S' | 'N';
26
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });