ixc-orm 1.2.0 → 1.4.2

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/README.md CHANGED
@@ -1,9 +1,19 @@
1
1
  # IXC-ORM
2
2
 
3
- Este ORM simples, visa facilitar o consumo de dados da API oficial do IXCsoft.\
3
+ Este ORM simples visa facilitar o consumo de dados da API oficial do IXCsoft.\
4
4
  Esta biblioteca não faz parte das bibliotecas oficiais da IXCsoft e foi desenvolvida de forma independente e sem fins lucrativos.
5
5
 
6
6
 
7
+ ## 🚀 Novidades
8
+
9
+ ### v1.4.1 - 14 de agosto de 2025
10
+
11
+ * **Corrigido:** Resolvido o bug de leitura das variáveis de ambiente no arquivo .env na pasta raiz.
12
+ * **Novo:** Foram adicionados 3 dos 44 recursos da API do IXC: `get_boleto`, `liberacao_temporaria` e `desbloqueio_confianca`. (Futuramente novos recursos serão adicionados)
13
+
14
+ > Consulte todos os recursos disponíveis: [Doc. API IXCSoft](https://wikiapiprovedor.ixcsoft.com.br/)
15
+
16
+
7
17
  ## Instalação
8
18
  ```bash
9
19
  npm install ixc-orm
@@ -50,5 +60,5 @@ Para configurar a comunicação da biblioteca com seu servidor IXC, é necessár
50
60
 
51
61
  `IXC_TOKEN`
52
62
 
53
- > **IXC_HOST** deve conter a url do seu servidor IXC, no formato: `https://seudominio.com.br/webservice/v1`\
54
- > **IXC_TOKEN** deve conter um token de API gerado dentro do seu sistema IXCsoft.
63
+ > **IXC_HOST** A url do seu servidor IXC, no formato: `https://seudominio.com.br/webservice/v1`\
64
+ > **IXC_TOKEN** Um token de API gerado dentro do seu sistema IXCsoft.
package/dist/IXCClient.js CHANGED
@@ -48,7 +48,7 @@ class IXCClient {
48
48
  */
49
49
  where(whereClauses) {
50
50
  if (whereClauses.length > 3) {
51
- throw new Error(`> O array de cláusulas não pode conter mais de 3 elementos.`);
51
+ throw new Error(`> As cláusulas não podem conter mais de 3 elementos.`);
52
52
  }
53
53
  const [alwaysColumn, operatorOrValue, valueOrUndefined] = whereClauses;
54
54
  const availableOperators = Object.keys(types_1.IXCOperator);
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import IXCClient from './IXCClient';
2
+ import recursos from './recursos';
2
3
  import { IXCOperator, IXCOptions, IXCQuery, IXCRequest, IXCRequestMethods, IXCResponse, IXCSortOrder } from './types';
3
- export { IXCClient, IXCOperator, IXCOptions, IXCQuery, IXCRequest, IXCRequestMethods, IXCResponse, IXCSortOrder };
4
+ export { IXCClient, IXCOperator, IXCOptions, IXCQuery, IXCRequest, IXCRequestMethods, IXCResponse, IXCSortOrder, recursos };
package/dist/index.js CHANGED
@@ -3,18 +3,21 @@ 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.IXCSortOrder = exports.IXCRequestMethods = exports.IXCOperator = exports.IXCClient = void 0;
6
+ exports.recursos = 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
+ const recursos_1 = __importDefault(require("./recursos"));
12
+ exports.recursos = recursos_1.default;
11
13
  const types_1 = require("./types");
12
14
  Object.defineProperty(exports, "IXCOperator", { enumerable: true, get: function () { return types_1.IXCOperator; } });
13
15
  Object.defineProperty(exports, "IXCRequestMethods", { enumerable: true, get: function () { return types_1.IXCRequestMethods; } });
14
16
  Object.defineProperty(exports, "IXCSortOrder", { enumerable: true, get: function () { return types_1.IXCSortOrder; } });
15
- const env = dotenv_1.default.config({
16
- path: path_1.default.join(__dirname, `../.env`)
17
- });
17
+ const root = (__dirname.includes('\\node_modules\\'))
18
+ ? path_1.default.join(__dirname, `../../../.env`)
19
+ : path_1.default.join(__dirname, `../../.env`);
20
+ const env = dotenv_1.default.config({ path: root });
18
21
  if (env.error) {
19
22
  console.error(env.error);
20
23
  process.exit(-1);
@@ -0,0 +1,6 @@
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;
@@ -0,0 +1,25 @@
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
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const recurso_1 = __importDefault(require("./recurso"));
16
+ const src = 'cliente_contrato_btn_lib_temp_24722';
17
+ function execute(id_contrato) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ return yield (0, recurso_1.default)({
20
+ src,
21
+ data: { id_contrato }
22
+ });
23
+ });
24
+ }
25
+ exports.default = { execute };
@@ -0,0 +1,6 @@
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;
@@ -0,0 +1,25 @@
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
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const recurso_1 = __importDefault(require("./recurso"));
16
+ const src = 'desbloqueio_confianca';
17
+ function execute(id_contrato) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ return yield (0, recurso_1.default)({
20
+ src,
21
+ data: { id_contrato }
22
+ });
23
+ });
24
+ }
25
+ exports.default = { execute };
@@ -0,0 +1,6 @@
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;
@@ -0,0 +1,41 @@
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
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const request_1 = require("../request");
13
+ const response_1 = require("../response");
14
+ const SRC = 'get_boleto';
15
+ function execute(id_fatura) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ const axios = (0, request_1.createAxiosInstance)('PUT');
18
+ try {
19
+ const response = yield axios.get(SRC, {
20
+ data: {
21
+ boletos: id_fatura,
22
+ juro: 'S',
23
+ multa: 'S',
24
+ atualiza_boleto: 'S',
25
+ tipo_boleto: 'arquivo',
26
+ base64: 'S'
27
+ }
28
+ });
29
+ if (response.status === 200) {
30
+ return {
31
+ data: response.data
32
+ };
33
+ }
34
+ }
35
+ catch (error) {
36
+ console.error(`Erro ao executar recurso: ${SRC}\n`, error);
37
+ }
38
+ return (0, response_1.createResponse)({ error: true });
39
+ });
40
+ }
41
+ exports.default = { execute };
@@ -0,0 +1,12 @@
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
+ };
11
+ };
12
+ export default _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const cliente_contrato_btn_lib_temp_24722_1 = __importDefault(require("./cliente_contrato_btn_lib_temp_24722"));
7
+ const desbloqueio_confianca_1 = __importDefault(require("./desbloqueio_confianca"));
8
+ const get_boleto_1 = __importDefault(require("./get_boleto"));
9
+ exports.default = {
10
+ desbloqueio_confianca: desbloqueio_confianca_1.default,
11
+ get_boleto: get_boleto_1.default,
12
+ liberacao_temporaria: cliente_contrato_btn_lib_temp_24722_1.default,
13
+ };
@@ -0,0 +1,7 @@
1
+ import { IXCResponse } from '../types';
2
+ export default function recurso({ src, data }: {
3
+ src: string;
4
+ data: {
5
+ [key: string]: any;
6
+ };
7
+ }): Promise<IXCResponse>;
@@ -0,0 +1,38 @@
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
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.default = recurso;
13
+ const request_1 = require("../request");
14
+ const response_1 = require("../response");
15
+ function recurso(_a) {
16
+ return __awaiter(this, arguments, void 0, function* ({ src, data }) {
17
+ const axios = (0, request_1.createAxiosInstance)('PUT');
18
+ try {
19
+ const response = yield axios.get(src, { data });
20
+ if (response.status === 200) {
21
+ const { data } = response;
22
+ if ((data === null || data === void 0 ? void 0 : data.type) === 'success' || (data === null || data === void 0 ? void 0 : data.tipo) === 'sucesso') {
23
+ return (0, response_1.createResponse)({
24
+ message: data.message || data.mensagem,
25
+ });
26
+ }
27
+ return (0, response_1.createResponse)({
28
+ error: true,
29
+ message: data.message || data.mensagem
30
+ });
31
+ }
32
+ }
33
+ catch (error) {
34
+ console.error(`Erro ao executar recurso: ${src}\n`, error);
35
+ }
36
+ return (0, response_1.createResponse)({ error: true });
37
+ });
38
+ }
@@ -0,0 +1,26 @@
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
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/request.d.ts CHANGED
@@ -2,14 +2,14 @@ import { AxiosInstance, AxiosRequestConfig } from 'axios';
2
2
  import { IXCOptions, IXCQuery, IXCRequest, IXCRequestMethods } from './types';
3
3
  /**
4
4
  *
5
- * @param method GET | POST | PUT
5
+ * @param method GET | POST | PUT | DELETE
6
6
  * @returns A instância de um objeto do tipo AxiosInstance, pré-configurado com os cabeçalhos necessários
7
7
  */
8
8
  export declare function createAxiosInstance(method?: keyof typeof IXCRequestMethods): AxiosInstance;
9
9
  /**
10
10
  *
11
11
  * @param table Nome da tabela do IXC onde será feita a busca, atualização, inserção ou remoção
12
- * @param params Parâmetros da busca (desconciderado quando a ação é a de inserir novos registros)
12
+ * @param params Parâmetros da busca (desconsiderados quando a ação for a de inserir novos registros)
13
13
  * @param options Parâmetros de formatação dos dados da responsta (página, ítens por página e ordenação)
14
14
  * @returns
15
15
  */
package/dist/request.js CHANGED
@@ -8,7 +8,7 @@ exports.createRequestPayload = createRequestPayload;
8
8
  const axios_1 = __importDefault(require("axios"));
9
9
  /**
10
10
  *
11
- * @param method GET | POST | PUT
11
+ * @param method GET | POST | PUT | DELETE
12
12
  * @returns A instância de um objeto do tipo AxiosInstance, pré-configurado com os cabeçalhos necessários
13
13
  */
14
14
  function createAxiosInstance(method = 'GET') {
@@ -27,7 +27,7 @@ function createAxiosInstance(method = 'GET') {
27
27
  /**
28
28
  *
29
29
  * @param table Nome da tabela do IXC onde será feita a busca, atualização, inserção ou remoção
30
- * @param params Parâmetros da busca (desconciderado quando a ação é a de inserir novos registros)
30
+ * @param params Parâmetros da busca (desconsiderados quando a ação for a de inserir novos registros)
31
31
  * @param options Parâmetros de formatação dos dados da responsta (página, ítens por página e ordenação)
32
32
  * @returns
33
33
  */
@@ -0,0 +1,4 @@
1
+ import { IXCResponse } from './types';
2
+ export declare function createResponse(data: {
3
+ [key: string]: any;
4
+ }): IXCResponse;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createResponse = createResponse;
4
+ function createResponse(data) {
5
+ var _a, _b, _c, _d;
6
+ return {
7
+ error: data.error || false,
8
+ message: data.message || '',
9
+ id: (_a = data.id) !== null && _a !== void 0 ? _a : 0,
10
+ page: (_b = data.page) !== null && _b !== void 0 ? _b : 0,
11
+ total: (_c = data.total) !== null && _c !== void 0 ? _c : 0,
12
+ registros: (_d = data.registros) !== null && _d !== void 0 ? _d : []
13
+ };
14
+ }
@@ -1 +1 @@
1
- {"root":["../src/ixcclient.ts","../src/index.ts","../src/request.ts","../src/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","../src/recursos/types.ts"],"version":"5.6.2"}
package/dist/types.d.ts CHANGED
@@ -48,3 +48,7 @@ export interface IXCResponse {
48
48
  [key: string]: any;
49
49
  }>;
50
50
  }
51
+ export interface IXCRecursoResponse {
52
+ error?: boolean | object;
53
+ data: any;
54
+ }
package/package.json CHANGED
@@ -1,40 +1,40 @@
1
- {
2
- "name": "ixc-orm",
3
- "version": "1.2.0",
4
- "main": "dist/index.js",
5
- "types": "dist/index.d.ts",
6
- "license": "MIT",
7
- "description": "ORM para consumo de dados da API oficial do IXCsoft",
8
- "scripts": {
9
- "declare": "tsc --declaration",
10
- "build": "tsc --build",
11
- "dev": "nodemon --watch \"src//\" --exec \"ts-node src/index.ts\" -e ts"
12
- },
13
- "repository": {
14
- "type": "git",
15
- "url": "git+https://github.com/SousaFelipe/ixc-orm.git"
16
- },
17
- "keywords": [
18
- "IXCSoft API",
19
- "IXCsoft",
20
- "IXC API"
21
- ],
22
- "author": {
23
- "name": "Felipe Sousa",
24
- "email": "flpssdocarmo@gmail.com",
25
- "url": "https://github.com/SousaFelipe"
26
- },
27
- "bugs": {
28
- "url": "https://github.com/SousaFelipe/ixc-orm/issues"
29
- },
30
- "dependencies": {
31
- "axios": "^1.7.7",
32
- "dotenv": "^16.4.5"
33
- },
34
- "devDependencies": {
35
- "@types/node": "^22.5.5",
36
- "nodemon": "^3.1.5",
37
- "ts-node": "^10.9.2",
38
- "typescript": "^5.6.2"
39
- }
40
- }
1
+ {
2
+ "name": "ixc-orm",
3
+ "version": "1.4.2",
4
+ "main": "dist/index.js",
5
+ "types": "dist/index.d.ts",
6
+ "license": "MIT",
7
+ "description": "ORM para consumo de dados da API oficial do IXCsoft",
8
+ "scripts": {
9
+ "declare": "tsc --declaration",
10
+ "build": "tsc --build",
11
+ "dev": "nodemon --watch \"src//\" --exec \"ts-node src/index.ts\" -e ts"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/SousaFelipe/ixc-orm.git"
16
+ },
17
+ "keywords": [
18
+ "IXCSoft API",
19
+ "IXCsoft",
20
+ "IXC API"
21
+ ],
22
+ "author": {
23
+ "name": "Felipe Sousa",
24
+ "email": "flpssdocarmo@gmail.com",
25
+ "url": "https://github.com/SousaFelipe"
26
+ },
27
+ "bugs": {
28
+ "url": "https://github.com/SousaFelipe/ixc-orm/issues"
29
+ },
30
+ "dependencies": {
31
+ "axios": "^1.10.0",
32
+ "dotenv": "^17.1.0"
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^24.0.12",
36
+ "nodemon": "^3.1.10",
37
+ "ts-node": "^10.9.2",
38
+ "typescript": "^5.6.2"
39
+ }
40
+ }
package/tsconfig.json CHANGED
@@ -4,6 +4,7 @@
4
4
  "module": "commonjs",
5
5
  "outDir": "./dist",
6
6
  "strict": true,
7
+ "declaration": true,
7
8
  "noUnusedLocals": true,
8
9
  "noUnusedParameters": true,
9
10
  "noImplicitReturns": true,