@onyxsoft/n8n-nodes-netvy 1.6.1

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.
Files changed (119) hide show
  1. package/README.md +84 -0
  2. package/dist/credentials/NetvyApi.credentials.d.ts +9 -0
  3. package/dist/credentials/NetvyApi.credentials.d.ts.map +1 -0
  4. package/dist/credentials/NetvyApi.credentials.js +48 -0
  5. package/dist/credentials/NetvyApi.credentials.js.map +1 -0
  6. package/dist/nodes/Netvy/GenericFunctions.d.ts +70 -0
  7. package/dist/nodes/Netvy/GenericFunctions.d.ts.map +1 -0
  8. package/dist/nodes/Netvy/GenericFunctions.js +245 -0
  9. package/dist/nodes/Netvy/GenericFunctions.js.map +1 -0
  10. package/dist/nodes/Netvy/Netvy.node.d.ts +6 -0
  11. package/dist/nodes/Netvy/Netvy.node.d.ts.map +1 -0
  12. package/dist/nodes/Netvy/Netvy.node.js +2341 -0
  13. package/dist/nodes/Netvy/Netvy.node.js.map +1 -0
  14. package/dist/nodes/Netvy/resources/articulos.d.ts +3 -0
  15. package/dist/nodes/Netvy/resources/articulos.d.ts.map +1 -0
  16. package/dist/nodes/Netvy/resources/articulos.js +108 -0
  17. package/dist/nodes/Netvy/resources/articulos.js.map +1 -0
  18. package/dist/nodes/Netvy/resources/auth.d.ts +3 -0
  19. package/dist/nodes/Netvy/resources/auth.d.ts.map +1 -0
  20. package/dist/nodes/Netvy/resources/auth.js +117 -0
  21. package/dist/nodes/Netvy/resources/auth.js.map +1 -0
  22. package/dist/nodes/Netvy/resources/catalog.d.ts +3 -0
  23. package/dist/nodes/Netvy/resources/catalog.d.ts.map +1 -0
  24. package/dist/nodes/Netvy/resources/catalog.js +181 -0
  25. package/dist/nodes/Netvy/resources/catalog.js.map +1 -0
  26. package/dist/nodes/Netvy/resources/cuentasContables.d.ts +3 -0
  27. package/dist/nodes/Netvy/resources/cuentasContables.d.ts.map +1 -0
  28. package/dist/nodes/Netvy/resources/cuentasContables.js +22 -0
  29. package/dist/nodes/Netvy/resources/cuentasContables.js.map +1 -0
  30. package/dist/nodes/Netvy/resources/empresas.d.ts +3 -0
  31. package/dist/nodes/Netvy/resources/empresas.d.ts.map +1 -0
  32. package/dist/nodes/Netvy/resources/empresas.js +29 -0
  33. package/dist/nodes/Netvy/resources/empresas.js.map +1 -0
  34. package/dist/nodes/Netvy/resources/eventos.d.ts +3 -0
  35. package/dist/nodes/Netvy/resources/eventos.d.ts.map +1 -0
  36. package/dist/nodes/Netvy/resources/eventos.js +36 -0
  37. package/dist/nodes/Netvy/resources/eventos.js.map +1 -0
  38. package/dist/nodes/Netvy/resources/gd.d.ts +3 -0
  39. package/dist/nodes/Netvy/resources/gd.d.ts.map +1 -0
  40. package/dist/nodes/Netvy/resources/gd.js +373 -0
  41. package/dist/nodes/Netvy/resources/gd.js.map +1 -0
  42. package/dist/nodes/Netvy/resources/imputaciones.d.ts +3 -0
  43. package/dist/nodes/Netvy/resources/imputaciones.d.ts.map +1 -0
  44. package/dist/nodes/Netvy/resources/imputaciones.js +59 -0
  45. package/dist/nodes/Netvy/resources/imputaciones.js.map +1 -0
  46. package/dist/nodes/Netvy/resources/mesPowermill.d.ts +3 -0
  47. package/dist/nodes/Netvy/resources/mesPowermill.d.ts.map +1 -0
  48. package/dist/nodes/Netvy/resources/mesPowermill.js +60 -0
  49. package/dist/nodes/Netvy/resources/mesPowermill.js.map +1 -0
  50. package/dist/nodes/Netvy/resources/notas.d.ts +3 -0
  51. package/dist/nodes/Netvy/resources/notas.d.ts.map +1 -0
  52. package/dist/nodes/Netvy/resources/notas.js +143 -0
  53. package/dist/nodes/Netvy/resources/notas.js.map +1 -0
  54. package/dist/nodes/Netvy/resources/ofertas.d.ts +3 -0
  55. package/dist/nodes/Netvy/resources/ofertas.d.ts.map +1 -0
  56. package/dist/nodes/Netvy/resources/ofertas.js +47 -0
  57. package/dist/nodes/Netvy/resources/ofertas.js.map +1 -0
  58. package/dist/nodes/Netvy/resources/oportunidades.d.ts +3 -0
  59. package/dist/nodes/Netvy/resources/oportunidades.d.ts.map +1 -0
  60. package/dist/nodes/Netvy/resources/oportunidades.js +41 -0
  61. package/dist/nodes/Netvy/resources/oportunidades.js.map +1 -0
  62. package/dist/nodes/Netvy/resources/proveedoresInternal.d.ts +3 -0
  63. package/dist/nodes/Netvy/resources/proveedoresInternal.d.ts.map +1 -0
  64. package/dist/nodes/Netvy/resources/proveedoresInternal.js +19 -0
  65. package/dist/nodes/Netvy/resources/proveedoresInternal.js.map +1 -0
  66. package/dist/nodes/Netvy/resources/proyectosOfCostes.d.ts +3 -0
  67. package/dist/nodes/Netvy/resources/proyectosOfCostes.d.ts.map +1 -0
  68. package/dist/nodes/Netvy/resources/proyectosOfCostes.js +18 -0
  69. package/dist/nodes/Netvy/resources/proyectosOfCostes.js.map +1 -0
  70. package/dist/nodes/Netvy/resources/quickmodules.d.ts +8 -0
  71. package/dist/nodes/Netvy/resources/quickmodules.d.ts.map +1 -0
  72. package/dist/nodes/Netvy/resources/quickmodules.js +126 -0
  73. package/dist/nodes/Netvy/resources/quickmodules.js.map +1 -0
  74. package/dist/nodes/Netvy/resources/recepciones.d.ts +3 -0
  75. package/dist/nodes/Netvy/resources/recepciones.d.ts.map +1 -0
  76. package/dist/nodes/Netvy/resources/recepciones.js +34 -0
  77. package/dist/nodes/Netvy/resources/recepciones.js.map +1 -0
  78. package/dist/nodes/Netvy/resources/restmodules.d.ts +17 -0
  79. package/dist/nodes/Netvy/resources/restmodules.d.ts.map +1 -0
  80. package/dist/nodes/Netvy/resources/restmodules.js +149 -0
  81. package/dist/nodes/Netvy/resources/restmodules.js.map +1 -0
  82. package/dist/nodes/Netvy/resources/rutasCostes.d.ts +3 -0
  83. package/dist/nodes/Netvy/resources/rutasCostes.d.ts.map +1 -0
  84. package/dist/nodes/Netvy/resources/rutasCostes.js +18 -0
  85. package/dist/nodes/Netvy/resources/rutasCostes.js.map +1 -0
  86. package/dist/nodes/Netvy/resources/sincronizadorDb.d.ts +3 -0
  87. package/dist/nodes/Netvy/resources/sincronizadorDb.d.ts.map +1 -0
  88. package/dist/nodes/Netvy/resources/sincronizadorDb.js +54 -0
  89. package/dist/nodes/Netvy/resources/sincronizadorDb.js.map +1 -0
  90. package/dist/nodes/Netvy/resources/soportesCostes.d.ts +3 -0
  91. package/dist/nodes/Netvy/resources/soportesCostes.d.ts.map +1 -0
  92. package/dist/nodes/Netvy/resources/soportesCostes.js +21 -0
  93. package/dist/nodes/Netvy/resources/soportesCostes.js.map +1 -0
  94. package/dist/nodes/Netvy/resources/tarjetas.d.ts +3 -0
  95. package/dist/nodes/Netvy/resources/tarjetas.d.ts.map +1 -0
  96. package/dist/nodes/Netvy/resources/tarjetas.js +29 -0
  97. package/dist/nodes/Netvy/resources/tarjetas.js.map +1 -0
  98. package/dist/nodes/Netvy/resources/tickets.d.ts +3 -0
  99. package/dist/nodes/Netvy/resources/tickets.d.ts.map +1 -0
  100. package/dist/nodes/Netvy/resources/tickets.js +196 -0
  101. package/dist/nodes/Netvy/resources/tickets.js.map +1 -0
  102. package/dist/nodes/Netvy/resources/variablesPublicas.d.ts +3 -0
  103. package/dist/nodes/Netvy/resources/variablesPublicas.d.ts.map +1 -0
  104. package/dist/nodes/Netvy/resources/variablesPublicas.js +27 -0
  105. package/dist/nodes/Netvy/resources/variablesPublicas.js.map +1 -0
  106. package/dist/nodes/Netvy/resources/webhooks.d.ts +3 -0
  107. package/dist/nodes/Netvy/resources/webhooks.d.ts.map +1 -0
  108. package/dist/nodes/Netvy/resources/webhooks.js +31 -0
  109. package/dist/nodes/Netvy/resources/webhooks.js.map +1 -0
  110. package/dist/nodes/Netvy/resources/wmsRecalculos.d.ts +3 -0
  111. package/dist/nodes/Netvy/resources/wmsRecalculos.d.ts.map +1 -0
  112. package/dist/nodes/Netvy/resources/wmsRecalculos.js +37 -0
  113. package/dist/nodes/Netvy/resources/wmsRecalculos.js.map +1 -0
  114. package/dist/nodes/NetvyTrigger/NetvyTrigger.node.d.ts +6 -0
  115. package/dist/nodes/NetvyTrigger/NetvyTrigger.node.d.ts.map +1 -0
  116. package/dist/nodes/NetvyTrigger/NetvyTrigger.node.js +138 -0
  117. package/dist/nodes/NetvyTrigger/NetvyTrigger.node.js.map +1 -0
  118. package/dist/nodes/netvyIcon.png +0 -0
  119. package/package.json +58 -0
package/README.md ADDED
@@ -0,0 +1,84 @@
1
+ # Netvy Custom Nodes for n8n
2
+
3
+ Custom nodes for integrating the Netvy ERP API with n8n. **Source of truth**: `openapi/` (144 specs OpenAPI 3.2.0).
4
+
5
+ ## Included Nodes
6
+
7
+ ### 1. Netvy (API Unificada)
8
+ Resource-based node. Current resources:
9
+
10
+ | Recurso | Operaciones | Spec |
11
+ |---------|------------|------|
12
+ | **Auth** | Sign In, Refresh Token, Me, Sign Out, Change Active Company | `openapi/auth.yaml` v1.3.0 |
13
+ | **Artículos WMS** | Listar, Obtener, Crear, Modificar, Eliminar, Reactivar, Consultar Precio, Subir Imagen, Ajuste Masivo | `openapi/articulos-wms.yaml` v1.0.0 |
14
+
15
+ Authentication modes: **Credentials** (n8n credential) or **From Input Item** (legacy webhook compat).
16
+
17
+ ### 2. Netvy Trigger
18
+ Webhook trigger that receives POST events from Netvy. Optional login verification on receive.
19
+
20
+ ### Roadmap
21
+ - Iteración 2: Tickets CRM + GD + Catálogos
22
+ - Iteración 3: CRM (ofertas, oportunidades, tarjetas, calls)
23
+ - Iteración 4: WMS completo + MES + Kanban
24
+ - Full plan: see [PLAN.md](./PLAN.md)
25
+
26
+ ## Quick Install (Docker Self-Hosted)
27
+
28
+ ```bash
29
+ # 1. Copy .tgz to the n8n container
30
+ docker cp n8n-nodes-netvy-1.1.1.tgz <container>:/tmp/
31
+
32
+ # 2. Install inside the container
33
+ docker exec -it <container> sh -c "cd ~/.n8n/nodes && npm install /tmp/n8n-nodes-netvy-1.1.1.tgz"
34
+
35
+ # 3. Set env var (if not already set)
36
+ # N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/nodes
37
+
38
+ # 4. Restart
39
+ docker restart <container>
40
+ ```
41
+
42
+ ### Custom Dockerfile
43
+
44
+ ```dockerfile
45
+ FROM n8nio/n8n:latest
46
+ USER root
47
+ RUN mkdir -p /home/node/.n8n/nodes
48
+ COPY n8n-nodes-netvy-1.1.1.tgz /tmp/
49
+ RUN cd /home/node/.n8n/nodes && npm install /tmp/n8n-nodes-netvy-1.1.1.tgz
50
+ ENV N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/nodes
51
+ USER node
52
+ ```
53
+
54
+ ## Development
55
+
56
+ ```bash
57
+ npm install # Install dependencies
58
+ npm run build # Build (tsc + icons)
59
+ npm pack # Create .tgz for distribution
60
+ npm run dev # Watch mode
61
+ ```
62
+
63
+ ### Project Structure
64
+
65
+ ```
66
+ n8n-nodes-netvy/
67
+ ├── openapi/ # 144 OpenAPI specs (canonical source)
68
+ ├── credentials/
69
+ │ └── NetvyApi.credentials.ts
70
+ ├── nodes/
71
+ │ ├── Netvy/
72
+ │ │ ├── Netvy.node.ts # Unified node
73
+ │ │ ├── GenericFunctions.ts # Auth + HTTP helpers
74
+ │ │ └── resources/
75
+ │ │ ├── auth.ts
76
+ │ │ └── articulos.ts
77
+ │ └── NetvyTrigger/
78
+ │ └── NetvyTrigger.node.ts
79
+ ├── index.ts
80
+ ├── package.json
81
+ ├── tsconfig.json
82
+ ├── PLAN.md
83
+ └── README.md
84
+ ```
@@ -0,0 +1,9 @@
1
+ import type { ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class NetvyApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ icon: "file:../nodes/netvyIcon.png";
7
+ properties: INodeProperties[];
8
+ }
9
+ //# sourceMappingURL=NetvyApi.credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetvyApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/NetvyApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAErE,qBAAa,QAAS,YAAW,eAAe;IAC/C,IAAI,SAAc;IAClB,WAAW,SAAe;IAC1B,gBAAgB,SAAM;IACtB,IAAI,EAAG,6BAA6B,CAAU;IAC9C,UAAU,EAAE,eAAe,EAAE,CAqC3B;CACF"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NetvyApi = void 0;
4
+ class NetvyApi {
5
+ name = 'netvyApi';
6
+ displayName = 'Netvy API';
7
+ documentationUrl = '';
8
+ icon = 'file:../nodes/netvyIcon.png';
9
+ properties = [
10
+ {
11
+ displayName: 'Host',
12
+ name: 'host',
13
+ type: 'string',
14
+ default: 'https://coapi.netvy.net',
15
+ required: true,
16
+ description: 'URL base de la API de Netvy (ej. https://coapi.netvy.net)',
17
+ },
18
+ {
19
+ displayName: 'Usuario',
20
+ name: 'usuario',
21
+ type: 'string',
22
+ default: '',
23
+ required: true,
24
+ description: 'Nombre de usuario para autenticación (campo "usuario" en /auth/signin)',
25
+ },
26
+ {
27
+ displayName: 'Contraseña',
28
+ name: 'contrasena',
29
+ type: 'string',
30
+ typeOptions: {
31
+ password: true,
32
+ },
33
+ default: '',
34
+ required: true,
35
+ description: 'Contraseña para autenticación (campo "contrasena" en /auth/signin)',
36
+ },
37
+ {
38
+ displayName: 'Licencia',
39
+ name: 'license',
40
+ type: 'string',
41
+ default: '',
42
+ required: false,
43
+ description: 'Licencia opcional. Si se proporciona, se envía en el body del signin. Útil para entornos multi-tenant.',
44
+ },
45
+ ];
46
+ }
47
+ exports.NetvyApi = NetvyApi;
48
+ //# sourceMappingURL=NetvyApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetvyApi.credentials.js","sourceRoot":"","sources":["../../credentials/NetvyApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAQ;IACpB,IAAI,GAAG,UAAU,CAAC;IAClB,WAAW,GAAG,WAAW,CAAC;IAC1B,gBAAgB,GAAG,EAAE,CAAC;IACtB,IAAI,GAAG,6BAAsC,CAAC;IAC9C,UAAU,GAAsB;QAC/B;YACC,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,yBAAyB;YAClC,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,2DAA2D;SACxE;QACD;YACC,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,wEAAwE;SACrF;QACD;YACC,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE;gBACZ,QAAQ,EAAE,IAAI;aACd;YACD,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,oEAAoE;SACjF;QACD;YACC,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,KAAK;YACf,WAAW,EACV,wGAAwG;SACzG;KACD,CAAC;CACF;AA3CD,4BA2CC"}
@@ -0,0 +1,70 @@
1
+ import type { IExecuteFunctions, IHookFunctions, ILoadOptionsFunctions, IWebhookFunctions, IDataObject, IHttpRequestMethods } from 'n8n-workflow';
2
+ export interface NetvyCredentials {
3
+ host: string;
4
+ usuario: string;
5
+ contrasena: string;
6
+ license?: string;
7
+ recordarme?: boolean;
8
+ cerrarSesionMasAntigua?: boolean;
9
+ empresaActivaID?: string;
10
+ }
11
+ interface SignInResponse {
12
+ tokenAcceso: string;
13
+ tokenRenovacion: string;
14
+ usuario: NetvyUser;
15
+ sesion: NetvySession;
16
+ empresaActiva: CompanyItem;
17
+ empresas: CompanyItem[];
18
+ customerID: string;
19
+ ultimaEmpresa?: CompanyItem | null;
20
+ }
21
+ interface NetvyUser {
22
+ usuarioID: string;
23
+ nombreAcceso: string;
24
+ nombre: string;
25
+ apellidos: string;
26
+ nombreCompleto: string;
27
+ correoElectronico: string;
28
+ telefono: string;
29
+ }
30
+ interface NetvySession {
31
+ sesionID: string;
32
+ fechaHoraInicio: string;
33
+ }
34
+ interface CompanyItem {
35
+ empresaID: string;
36
+ nombre: string;
37
+ codigo: string;
38
+ }
39
+ /**
40
+ * Autentica contra /api/v1/auth/signin usando JWT (OpenAPI auth.yaml v1.3.0).
41
+ * Retorna la respuesta completa con tokenAcceso, tokenRenovacion, etc.
42
+ */
43
+ export declare function netvySignIn(this: IExecuteFunctions | IHookFunctions | ILoadOptionsFunctions | IWebhookFunctions, credentials: NetvyCredentials, extraBody?: IDataObject): Promise<SignInResponse>;
44
+ /**
45
+ * Obtiene un tokenAcceso válido, usando caché o haciendo signin nuevo.
46
+ * El token se cachea por workflow (staticData global).
47
+ */
48
+ export declare function netvyGetToken(this: IExecuteFunctions | IHookFunctions | ILoadOptionsFunctions | IWebhookFunctions, credentials: NetvyCredentials): Promise<string>;
49
+ /**
50
+ * Petición autenticada a la API Netvy.
51
+ * Auto-refresca el token si recibe 401.
52
+ */
53
+ export declare function netvyApiRequest(this: IExecuteFunctions | IHookFunctions | ILoadOptionsFunctions | IWebhookFunctions, method: IHttpRequestMethods, endpoint: string, credentials: NetvyCredentials, body?: IDataObject | IDataObject[], qs?: IDataObject, headers?: IDataObject, option?: IDataObject): Promise<any>;
54
+ /**
55
+ * Descarga binaria (para archivos).
56
+ */
57
+ export declare function netvyApiRequestBinary(this: IExecuteFunctions, method: IHttpRequestMethods, endpoint: string, credentials: NetvyCredentials, qs?: IDataObject): Promise<{
58
+ data: Buffer;
59
+ headers: IDataObject;
60
+ }>;
61
+ /**
62
+ * Subida multipart/form-data (para imágenes de artículos, GD, etc.).
63
+ */
64
+ export declare function netvyApiRequestUpload(this: IExecuteFunctions, endpoint: string, credentials: NetvyCredentials, fileBuffer: Buffer, fileName: string, fieldName: string, extraFields?: IDataObject, extraHeaders?: IDataObject): Promise<any>;
65
+ /**
66
+ * Resuelve credenciales desde el nodo o desde el item de entrada (modo "input").
67
+ */
68
+ export declare function netvyGetCredentials(this: IExecuteFunctions, itemIndex: number): Promise<NetvyCredentials>;
69
+ export {};
70
+ //# sourceMappingURL=GenericFunctions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericFunctions.d.ts","sourceRoot":"","sources":["../../../nodes/Netvy/GenericFunctions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.netvySignIn = netvySignIn;
37
+ exports.netvyGetToken = netvyGetToken;
38
+ exports.netvyApiRequest = netvyApiRequest;
39
+ exports.netvyApiRequestBinary = netvyApiRequestBinary;
40
+ exports.netvyApiRequestUpload = netvyApiRequestUpload;
41
+ exports.netvyGetCredentials = netvyGetCredentials;
42
+ const n8n_workflow_1 = require("n8n-workflow");
43
+ // ── Login (JWT) ────────────────────────────────────────────────────
44
+ /**
45
+ * Autentica contra /api/v1/auth/signin usando JWT (OpenAPI auth.yaml v1.3.0).
46
+ * Retorna la respuesta completa con tokenAcceso, tokenRenovacion, etc.
47
+ */
48
+ async function netvySignIn(credentials, extraBody) {
49
+ const body = {
50
+ usuario: credentials.usuario,
51
+ contrasena: credentials.contrasena,
52
+ ...extraBody,
53
+ };
54
+ if (credentials.license) {
55
+ body.licencia = credentials.license;
56
+ }
57
+ if (credentials.recordarme) {
58
+ body.recordarme = true;
59
+ }
60
+ if (credentials.cerrarSesionMasAntigua) {
61
+ body.cerrarSesionMasAntigua = true;
62
+ }
63
+ const options = {
64
+ method: 'POST',
65
+ url: `${credentials.host}/api/v1/auth/signin`,
66
+ headers: { 'Content-Type': 'application/json' },
67
+ body,
68
+ json: true,
69
+ };
70
+ try {
71
+ return (await this.helpers.httpRequest(options));
72
+ }
73
+ catch (error) {
74
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), error, {
75
+ message: 'Error al iniciar sesión en Netvy',
76
+ description: 'Verifica usuario, contraseña y licencia.',
77
+ });
78
+ }
79
+ }
80
+ // ── Token cache ────────────────────────────────────────────────────
81
+ /**
82
+ * Obtiene un tokenAcceso válido, usando caché o haciendo signin nuevo.
83
+ * El token se cachea por workflow (staticData global).
84
+ */
85
+ async function netvyGetToken(credentials) {
86
+ const cacheKey = `${credentials.host}|${credentials.usuario}|${credentials.license ?? ''}`;
87
+ const staticData = this.getWorkflowStaticData('global');
88
+ if (!staticData.netvyTokenCache) {
89
+ staticData.netvyTokenCache = {};
90
+ }
91
+ const tokenCache = staticData.netvyTokenCache;
92
+ const cached = tokenCache[cacheKey];
93
+ // Usar cache si no expiró (margen de 60s)
94
+ if (cached?.signInResponse?.tokenAcceso && cached.expiresAt && Date.now() < cached.expiresAt - 60_000) {
95
+ return cached.signInResponse.tokenAcceso;
96
+ }
97
+ // Signin nuevo
98
+ const signInResponse = await netvySignIn.call(this, credentials);
99
+ // Guardar en cache (estimar expiración con iat del JWT o 30 min por defecto)
100
+ let expiresAt = Date.now() + 30 * 60 * 1000;
101
+ try {
102
+ const payload = JSON.parse(Buffer.from(signInResponse.tokenAcceso.split('.')[1], 'base64').toString());
103
+ if (payload.exp) {
104
+ expiresAt = payload.exp * 1000;
105
+ }
106
+ }
107
+ catch {
108
+ // fallback a 30 min
109
+ }
110
+ tokenCache[cacheKey] = {
111
+ signInResponse,
112
+ expiresAt,
113
+ empresaActivaID: signInResponse.empresaActiva?.empresaID,
114
+ };
115
+ return signInResponse.tokenAcceso;
116
+ }
117
+ // ── HTTP helpers ───────────────────────────────────────────────────
118
+ /**
119
+ * Petición autenticada a la API Netvy.
120
+ * Auto-refresca el token si recibe 401.
121
+ */
122
+ async function netvyApiRequest(method, endpoint, credentials, body, qs, headers, option = {}) {
123
+ let token = await netvyGetToken.call(this, credentials);
124
+ const options = {
125
+ method,
126
+ url: endpoint.startsWith('http') ? endpoint : `${credentials.host}${endpoint}`,
127
+ headers: {
128
+ Authorization: `Bearer ${token}`,
129
+ ...headers,
130
+ },
131
+ qs,
132
+ body,
133
+ json: true,
134
+ ...option,
135
+ };
136
+ try {
137
+ return await this.helpers.httpRequest(options);
138
+ }
139
+ catch (error) {
140
+ if (error.statusCode === 401 || error.response?.statusCode === 401) {
141
+ // Limpiar cache y reintentar
142
+ const cacheKey = `${credentials.host}|${credentials.usuario}|${credentials.license ?? ''}`;
143
+ const staticData = this.getWorkflowStaticData('global');
144
+ if (staticData.netvyTokenCache) {
145
+ delete staticData.netvyTokenCache[cacheKey];
146
+ }
147
+ token = await netvyGetToken.call(this, credentials);
148
+ options.headers = {
149
+ ...options.headers,
150
+ Authorization: `Bearer ${token}`,
151
+ };
152
+ try {
153
+ return await this.helpers.httpRequest(options);
154
+ }
155
+ catch (retryError) {
156
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), retryError, {
157
+ message: 'Error de autenticación tras refrescar token',
158
+ description: 'Verifica las credenciales.',
159
+ });
160
+ }
161
+ }
162
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), error);
163
+ }
164
+ }
165
+ /**
166
+ * Descarga binaria (para archivos).
167
+ */
168
+ async function netvyApiRequestBinary(method, endpoint, credentials, qs) {
169
+ const response = await netvyApiRequest.call(this, method, endpoint, credentials, undefined, qs, {}, {
170
+ encoding: 'arraybuffer',
171
+ returnFullResponse: true,
172
+ });
173
+ return {
174
+ data: Buffer.from(response.body),
175
+ headers: response.headers,
176
+ };
177
+ }
178
+ /**
179
+ * Subida multipart/form-data (para imágenes de artículos, GD, etc.).
180
+ */
181
+ async function netvyApiRequestUpload(endpoint, credentials, fileBuffer, fileName, fieldName, extraFields, extraHeaders) {
182
+ const token = await netvyGetToken.call(this, credentials);
183
+ const FormDataClass = (await Promise.resolve().then(() => __importStar(require('form-data')))).default;
184
+ const form = new FormDataClass();
185
+ form.append(fieldName, fileBuffer, { filename: fileName });
186
+ if (extraFields) {
187
+ for (const [key, value] of Object.entries(extraFields)) {
188
+ form.append(key, String(value));
189
+ }
190
+ }
191
+ const options = {
192
+ method: 'POST',
193
+ url: endpoint.startsWith('http') ? endpoint : `${credentials.host}${endpoint}`,
194
+ headers: {
195
+ Authorization: `Bearer ${token}`,
196
+ ...extraHeaders,
197
+ ...form.getHeaders(),
198
+ },
199
+ body: form,
200
+ };
201
+ try {
202
+ return await this.helpers.httpRequest(options);
203
+ }
204
+ catch (error) {
205
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), error);
206
+ }
207
+ }
208
+ /**
209
+ * Resuelve credenciales desde el nodo o desde el item de entrada (modo "input").
210
+ */
211
+ async function netvyGetCredentials(itemIndex) {
212
+ const authentication = this.getNodeParameter('authentication', itemIndex);
213
+ const recordarme = this.getNodeParameter('recordarme', itemIndex, true);
214
+ const cerrarSesionMasAntigua = this.getNodeParameter('cerrarSesionMasAntigua', itemIndex, false);
215
+ if (authentication === 'input') {
216
+ const host = this.getNodeParameter('host', itemIndex);
217
+ const license = this.getNodeParameter('license', itemIndex, '') || undefined;
218
+ const inputData = this.getInputData();
219
+ const item = inputData[itemIndex]?.json;
220
+ return {
221
+ host,
222
+ usuario: (item.user ?? item.usuario ?? ''),
223
+ contrasena: (item.passw ?? item.pass ?? item.contrasena ?? ''),
224
+ license,
225
+ recordarme,
226
+ cerrarSesionMasAntigua,
227
+ };
228
+ }
229
+ // Modo credential (por defecto)
230
+ const creds = (await this.getCredentials('netvyApi'));
231
+ const cacheKey = `${creds.host}|${creds.usuario}|${creds.license ?? ''}`;
232
+ const staticData = this.getWorkflowStaticData('global');
233
+ const tokenCache = (staticData.netvyTokenCache ?? {});
234
+ const cached = tokenCache[cacheKey];
235
+ return {
236
+ host: creds.host,
237
+ usuario: creds.usuario,
238
+ contrasena: creds.contrasena,
239
+ license: creds.license || undefined,
240
+ recordarme,
241
+ cerrarSesionMasAntigua,
242
+ empresaActivaID: cached?.empresaActivaID,
243
+ };
244
+ }
245
+ //# sourceMappingURL=GenericFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Netvy/GenericFunctions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class Netvy implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
6
+ //# sourceMappingURL=Netvy.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Netvy.node.d.ts","sourceRoot":"","sources":["../../../nodes/Netvy/Netvy.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EAEjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACpB,MAAM,cAAc,CAAC;AAoCtB,qBAAa,KAAM,YAAW,SAAS;IACtC,WAAW,EAAE,oBAAoB,CA4K/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA68CvE"}