@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.
- package/README.md +84 -0
- package/dist/credentials/NetvyApi.credentials.d.ts +9 -0
- package/dist/credentials/NetvyApi.credentials.d.ts.map +1 -0
- package/dist/credentials/NetvyApi.credentials.js +48 -0
- package/dist/credentials/NetvyApi.credentials.js.map +1 -0
- package/dist/nodes/Netvy/GenericFunctions.d.ts +70 -0
- package/dist/nodes/Netvy/GenericFunctions.d.ts.map +1 -0
- package/dist/nodes/Netvy/GenericFunctions.js +245 -0
- package/dist/nodes/Netvy/GenericFunctions.js.map +1 -0
- package/dist/nodes/Netvy/Netvy.node.d.ts +6 -0
- package/dist/nodes/Netvy/Netvy.node.d.ts.map +1 -0
- package/dist/nodes/Netvy/Netvy.node.js +2341 -0
- package/dist/nodes/Netvy/Netvy.node.js.map +1 -0
- package/dist/nodes/Netvy/resources/articulos.d.ts +3 -0
- package/dist/nodes/Netvy/resources/articulos.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/articulos.js +108 -0
- package/dist/nodes/Netvy/resources/articulos.js.map +1 -0
- package/dist/nodes/Netvy/resources/auth.d.ts +3 -0
- package/dist/nodes/Netvy/resources/auth.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/auth.js +117 -0
- package/dist/nodes/Netvy/resources/auth.js.map +1 -0
- package/dist/nodes/Netvy/resources/catalog.d.ts +3 -0
- package/dist/nodes/Netvy/resources/catalog.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/catalog.js +181 -0
- package/dist/nodes/Netvy/resources/catalog.js.map +1 -0
- package/dist/nodes/Netvy/resources/cuentasContables.d.ts +3 -0
- package/dist/nodes/Netvy/resources/cuentasContables.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/cuentasContables.js +22 -0
- package/dist/nodes/Netvy/resources/cuentasContables.js.map +1 -0
- package/dist/nodes/Netvy/resources/empresas.d.ts +3 -0
- package/dist/nodes/Netvy/resources/empresas.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/empresas.js +29 -0
- package/dist/nodes/Netvy/resources/empresas.js.map +1 -0
- package/dist/nodes/Netvy/resources/eventos.d.ts +3 -0
- package/dist/nodes/Netvy/resources/eventos.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/eventos.js +36 -0
- package/dist/nodes/Netvy/resources/eventos.js.map +1 -0
- package/dist/nodes/Netvy/resources/gd.d.ts +3 -0
- package/dist/nodes/Netvy/resources/gd.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/gd.js +373 -0
- package/dist/nodes/Netvy/resources/gd.js.map +1 -0
- package/dist/nodes/Netvy/resources/imputaciones.d.ts +3 -0
- package/dist/nodes/Netvy/resources/imputaciones.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/imputaciones.js +59 -0
- package/dist/nodes/Netvy/resources/imputaciones.js.map +1 -0
- package/dist/nodes/Netvy/resources/mesPowermill.d.ts +3 -0
- package/dist/nodes/Netvy/resources/mesPowermill.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/mesPowermill.js +60 -0
- package/dist/nodes/Netvy/resources/mesPowermill.js.map +1 -0
- package/dist/nodes/Netvy/resources/notas.d.ts +3 -0
- package/dist/nodes/Netvy/resources/notas.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/notas.js +143 -0
- package/dist/nodes/Netvy/resources/notas.js.map +1 -0
- package/dist/nodes/Netvy/resources/ofertas.d.ts +3 -0
- package/dist/nodes/Netvy/resources/ofertas.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/ofertas.js +47 -0
- package/dist/nodes/Netvy/resources/ofertas.js.map +1 -0
- package/dist/nodes/Netvy/resources/oportunidades.d.ts +3 -0
- package/dist/nodes/Netvy/resources/oportunidades.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/oportunidades.js +41 -0
- package/dist/nodes/Netvy/resources/oportunidades.js.map +1 -0
- package/dist/nodes/Netvy/resources/proveedoresInternal.d.ts +3 -0
- package/dist/nodes/Netvy/resources/proveedoresInternal.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/proveedoresInternal.js +19 -0
- package/dist/nodes/Netvy/resources/proveedoresInternal.js.map +1 -0
- package/dist/nodes/Netvy/resources/proyectosOfCostes.d.ts +3 -0
- package/dist/nodes/Netvy/resources/proyectosOfCostes.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/proyectosOfCostes.js +18 -0
- package/dist/nodes/Netvy/resources/proyectosOfCostes.js.map +1 -0
- package/dist/nodes/Netvy/resources/quickmodules.d.ts +8 -0
- package/dist/nodes/Netvy/resources/quickmodules.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/quickmodules.js +126 -0
- package/dist/nodes/Netvy/resources/quickmodules.js.map +1 -0
- package/dist/nodes/Netvy/resources/recepciones.d.ts +3 -0
- package/dist/nodes/Netvy/resources/recepciones.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/recepciones.js +34 -0
- package/dist/nodes/Netvy/resources/recepciones.js.map +1 -0
- package/dist/nodes/Netvy/resources/restmodules.d.ts +17 -0
- package/dist/nodes/Netvy/resources/restmodules.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/restmodules.js +149 -0
- package/dist/nodes/Netvy/resources/restmodules.js.map +1 -0
- package/dist/nodes/Netvy/resources/rutasCostes.d.ts +3 -0
- package/dist/nodes/Netvy/resources/rutasCostes.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/rutasCostes.js +18 -0
- package/dist/nodes/Netvy/resources/rutasCostes.js.map +1 -0
- package/dist/nodes/Netvy/resources/sincronizadorDb.d.ts +3 -0
- package/dist/nodes/Netvy/resources/sincronizadorDb.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/sincronizadorDb.js +54 -0
- package/dist/nodes/Netvy/resources/sincronizadorDb.js.map +1 -0
- package/dist/nodes/Netvy/resources/soportesCostes.d.ts +3 -0
- package/dist/nodes/Netvy/resources/soportesCostes.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/soportesCostes.js +21 -0
- package/dist/nodes/Netvy/resources/soportesCostes.js.map +1 -0
- package/dist/nodes/Netvy/resources/tarjetas.d.ts +3 -0
- package/dist/nodes/Netvy/resources/tarjetas.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/tarjetas.js +29 -0
- package/dist/nodes/Netvy/resources/tarjetas.js.map +1 -0
- package/dist/nodes/Netvy/resources/tickets.d.ts +3 -0
- package/dist/nodes/Netvy/resources/tickets.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/tickets.js +196 -0
- package/dist/nodes/Netvy/resources/tickets.js.map +1 -0
- package/dist/nodes/Netvy/resources/variablesPublicas.d.ts +3 -0
- package/dist/nodes/Netvy/resources/variablesPublicas.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/variablesPublicas.js +27 -0
- package/dist/nodes/Netvy/resources/variablesPublicas.js.map +1 -0
- package/dist/nodes/Netvy/resources/webhooks.d.ts +3 -0
- package/dist/nodes/Netvy/resources/webhooks.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/webhooks.js +31 -0
- package/dist/nodes/Netvy/resources/webhooks.js.map +1 -0
- package/dist/nodes/Netvy/resources/wmsRecalculos.d.ts +3 -0
- package/dist/nodes/Netvy/resources/wmsRecalculos.d.ts.map +1 -0
- package/dist/nodes/Netvy/resources/wmsRecalculos.js +37 -0
- package/dist/nodes/Netvy/resources/wmsRecalculos.js.map +1 -0
- package/dist/nodes/NetvyTrigger/NetvyTrigger.node.d.ts +6 -0
- package/dist/nodes/NetvyTrigger/NetvyTrigger.node.d.ts.map +1 -0
- package/dist/nodes/NetvyTrigger/NetvyTrigger.node.js +138 -0
- package/dist/nodes/NetvyTrigger/NetvyTrigger.node.js.map +1 -0
- package/dist/nodes/netvyIcon.png +0 -0
- 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"}
|