@ramiidv/arca-agro 0.2.0 → 0.4.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 +119 -0
- package/README.md +239 -183
- package/dist/arca-agro.d.ts +27 -143
- package/dist/arca-agro.d.ts.map +1 -1
- package/dist/arca-agro.js +28 -277
- package/dist/arca-agro.js.map +1 -1
- package/dist/constants.d.ts +34 -8
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +34 -11
- package/dist/constants.js.map +1 -1
- package/dist/context.d.ts +16 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +2 -0
- package/dist/context.js.map +1 -0
- package/dist/cpe-client.d.ts +97 -52
- package/dist/cpe-client.d.ts.map +1 -1
- package/dist/cpe-client.js +238 -229
- package/dist/cpe-client.js.map +1 -1
- package/dist/cpe-schemas.d.ts +74 -0
- package/dist/cpe-schemas.d.ts.map +1 -0
- package/dist/cpe-schemas.js +510 -0
- package/dist/cpe-schemas.js.map +1 -0
- package/dist/cpe-types.d.ts +599 -0
- package/dist/cpe-types.d.ts.map +1 -0
- package/dist/cpe-types.js +2 -0
- package/dist/cpe-types.js.map +1 -0
- package/dist/errors.d.ts +33 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +47 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +10 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -13
- package/dist/index.js.map +1 -1
- package/dist/lpg-client.d.ts +66 -44
- package/dist/lpg-client.d.ts.map +1 -1
- package/dist/lpg-client.js +216 -176
- package/dist/lpg-client.js.map +1 -1
- package/dist/lpg-schemas.d.ts +48 -0
- package/dist/lpg-schemas.d.ts.map +1 -0
- package/dist/lpg-schemas.js +477 -0
- package/dist/lpg-schemas.js.map +1 -0
- package/dist/lpg-types.d.ts +470 -0
- package/dist/lpg-types.d.ts.map +1 -0
- package/dist/lpg-types.js +2 -0
- package/dist/lpg-types.js.map +1 -0
- package/dist/schema.d.ts +6 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +15 -0
- package/dist/schema.js.map +1 -0
- package/dist/types.d.ts +28 -455
- package/dist/types.d.ts.map +1 -1
- package/dist/validation.d.ts +22 -43
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +31 -134
- package/dist/validation.js.map +1 -1
- package/llms.txt +78 -159
- package/package.json +18 -22
- package/dist/ctg-client.d.ts +0 -56
- package/dist/ctg-client.d.ts.map +0 -1
- package/dist/ctg-client.js +0 -214
- package/dist/ctg-client.js.map +0 -1
package/dist/arca-agro.d.ts
CHANGED
|
@@ -1,163 +1,47 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ArcaSdkBase } from '@ramiidv/arca-common';
|
|
2
|
+
import type { CallOptions } from '@ramiidv/arca-common';
|
|
2
3
|
import { CpeClient } from './cpe-client.js';
|
|
3
|
-
import { CtgClient } from './ctg-client.js';
|
|
4
4
|
import { LpgClient } from './lpg-client.js';
|
|
5
|
-
import
|
|
5
|
+
import { WSAA_SERVICES } from './constants.js';
|
|
6
|
+
import type { AgroServiceStatus, ArcaAgroConfig } from './types.js';
|
|
7
|
+
type AgroService = keyof typeof WSAA_SERVICES;
|
|
6
8
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
+
* Cliente de los servicios agropecuarios de ARCA: WSCPE (Carta de Porte
|
|
10
|
+
* Electrónica) y WSLPG (Liquidación Primaria de Granos), con autenticación
|
|
11
|
+
* WSAA automática.
|
|
9
12
|
*
|
|
10
13
|
* @example
|
|
11
14
|
* ```ts
|
|
12
15
|
* const agro = new ArcaAgro({
|
|
13
|
-
* cuit:
|
|
16
|
+
* cuit: '20-12345678-6',
|
|
14
17
|
* cert: fs.readFileSync('cert.pem', 'utf-8'),
|
|
15
18
|
* key: fs.readFileSync('key.pem', 'utf-8'),
|
|
16
|
-
* production: false,
|
|
17
19
|
* });
|
|
18
|
-
*
|
|
19
|
-
* // Carta de Porte
|
|
20
|
+
* const nroOrden = await agro.cpe.siguienteNroOrden(1, TIPO_CPE.AUTOMOTOR);
|
|
20
21
|
* const cpe = await agro.cpe.autorizarCPEAutomotor({ ... });
|
|
21
|
-
*
|
|
22
|
-
* // CTG
|
|
23
|
-
* const ctg = await agro.ctg.solicitarCTGInicial({ ... });
|
|
24
|
-
*
|
|
25
|
-
* // Liquidaciones
|
|
26
|
-
* const liq = await agro.lpg.liquidacionAutorizar({ ... });
|
|
22
|
+
* const liq = await agro.lpg.liquidacionAutorizar({ liquidacion: { ... } });
|
|
27
23
|
* ```
|
|
28
24
|
*/
|
|
29
|
-
export declare class ArcaAgro {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
private readonly production;
|
|
36
|
-
private readonly emitter;
|
|
37
|
-
private readonly onEventCb?;
|
|
38
|
-
/** Acceso a los servicios de Carta de Porte Electrónica (WSCPE). */
|
|
39
|
-
readonly cpe: ArcaAgroCpe;
|
|
40
|
-
/** Acceso a los servicios de Código de Trazabilidad de Granos (WSCTG). */
|
|
41
|
-
readonly ctg: ArcaAgroCtg;
|
|
42
|
-
/** Acceso a los servicios de Liquidación Primaria de Granos (WSLPG). */
|
|
43
|
-
readonly lpg: ArcaAgroLpg;
|
|
25
|
+
export declare class ArcaAgro extends ArcaSdkBase<AgroService> {
|
|
26
|
+
/** WSCPE: Carta de Porte Electrónica (automotor y ferroviaria). */
|
|
27
|
+
readonly cpe: CpeClient;
|
|
28
|
+
/** WSLPG: Liquidación Primaria de Granos y certificaciones. */
|
|
29
|
+
readonly lpg: LpgClient;
|
|
30
|
+
/** @throws ArcaValidationError si el CUIT es inválido. */
|
|
44
31
|
constructor(config: ArcaAgroConfig);
|
|
45
32
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* @example
|
|
49
|
-
* ```ts
|
|
50
|
-
* agro.on('request:end', (e) => console.log(`${e.method} took ${e.durationMs}ms`));
|
|
51
|
-
* agro.on('auth:login', (e) => console.log(`Login ${e.service} in ${e.durationMs}ms`));
|
|
52
|
-
* ```
|
|
33
|
+
* Estado de los servidores de WSCPE y WSLPG (`dummy`, sin autenticación).
|
|
34
|
+
* Una falla de un servicio no impide conocer el estado del otro.
|
|
53
35
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
getCtgClient(): CtgClient;
|
|
63
|
-
/** @internal */
|
|
64
|
-
getLpgClient(): LpgClient;
|
|
65
|
-
/** Verifica el estado de los servidores de los 3 servicios agro. */
|
|
66
|
-
serverStatus(): Promise<{
|
|
67
|
-
cpe: ServerStatus;
|
|
68
|
-
ctg: ServerStatus;
|
|
69
|
-
lpg: ServerStatus;
|
|
36
|
+
status(opts?: CallOptions): Promise<{
|
|
37
|
+
cpe: AgroServiceStatus;
|
|
38
|
+
lpg: AgroServiceStatus;
|
|
39
|
+
}>;
|
|
40
|
+
/** @deprecated Usá `status()` (mismo resultado). */
|
|
41
|
+
serverStatus(opts?: CallOptions): Promise<{
|
|
42
|
+
cpe: AgroServiceStatus;
|
|
43
|
+
lpg: AgroServiceStatus;
|
|
70
44
|
}>;
|
|
71
|
-
/** Invalida los tickets de acceso cacheados para todos los servicios agro. */
|
|
72
|
-
clearAuthCache(): void;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Namespace con métodos de Carta de Porte Electrónica (WSCPE).
|
|
76
|
-
* Se accede a través de `agro.cpe.*`.
|
|
77
|
-
*/
|
|
78
|
-
declare class ArcaAgroCpe {
|
|
79
|
-
private readonly agro;
|
|
80
|
-
constructor(agro: ArcaAgro);
|
|
81
|
-
private auth;
|
|
82
|
-
private client;
|
|
83
|
-
/** Autoriza una CPE para transporte automotor. */
|
|
84
|
-
autorizarCPEAutomotor(cpe: CartaPorteAutomotor): Promise<CartaPorteResult>;
|
|
85
|
-
/** Confirma el arribo de una CPE en destino. */
|
|
86
|
-
confirmadoArriboCPE(params: ConfirmadoArriboCPEParams): Promise<CartaPorteResult>;
|
|
87
|
-
/** Rechaza una CPE. */
|
|
88
|
-
rechazoCPE(params: RechazoAnulacionCPEParams): Promise<CartaPorteResult>;
|
|
89
|
-
/** Anula una CPE. */
|
|
90
|
-
anularCPE(params: RechazoAnulacionCPEParams): Promise<CartaPorteResult>;
|
|
91
|
-
/** Edita campos de una CPE previamente autorizada. */
|
|
92
|
-
editarCPE(params: EditarCPEParams): Promise<CartaPorteResult>;
|
|
93
|
-
/** Informa una contingencia sobre una CPE. */
|
|
94
|
-
informarContingencia(params: ContingenciaCPEParams): Promise<CartaPorteResult>;
|
|
95
|
-
/** Consulta CPEs según criterios de búsqueda. */
|
|
96
|
-
consultarCPE(params: ConsultaCPEParams): Promise<CartaPorteResult[]>;
|
|
97
|
-
/** Consulta CPEs por destino. */
|
|
98
|
-
consultarCPEPorDestino(params: ConsultaCPEPorDestinoParams): Promise<CartaPorteResult[]>;
|
|
99
|
-
/** Consulta el último número de orden utilizado para una sucursal. */
|
|
100
|
-
consultarUltNroOrden(sucursal: number): Promise<number>;
|
|
101
|
-
/** Obtiene el siguiente número de orden (último + 1). */
|
|
102
|
-
siguienteNroOrden(sucursal: number): Promise<number>;
|
|
103
|
-
/** Obtiene la constancia PDF de una CPE en base64. */
|
|
104
|
-
consultarConstanciaCPEPDF(nroCTG: number): Promise<string>;
|
|
105
|
-
/** Verifica el estado de los servidores del WSCPE. */
|
|
106
|
-
dummy(): Promise<ServerStatus>;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Namespace con métodos de Código de Trazabilidad de Granos (WSCTG).
|
|
110
|
-
* Se accede a través de `agro.ctg.*`.
|
|
111
|
-
*/
|
|
112
|
-
declare class ArcaAgroCtg {
|
|
113
|
-
private readonly agro;
|
|
114
|
-
constructor(agro: ArcaAgro);
|
|
115
|
-
private auth;
|
|
116
|
-
private client;
|
|
117
|
-
/** Solicita un CTG inicial para el transporte de granos. */
|
|
118
|
-
solicitarCTGInicial(solicitud: SolicitudCTG): Promise<CTGResult>;
|
|
119
|
-
/** Confirma el arribo de un CTG en destino. */
|
|
120
|
-
confirmarArribo(params: ConfirmarArriboCTGParams): Promise<CTGResult>;
|
|
121
|
-
/** Rechaza un CTG. */
|
|
122
|
-
rechazarCTG(params: RechazoCTGParams): Promise<CTGResult>;
|
|
123
|
-
/** Anula un CTG. */
|
|
124
|
-
anularCTG(params: AnulacionCTGParams): Promise<CTGResult>;
|
|
125
|
-
/** Consulta CTGs según criterios de búsqueda. */
|
|
126
|
-
consultarCTG(params: ConsultaCTGParams): Promise<CTGResult[]>;
|
|
127
|
-
/** Consulta CTGs y retorna el resultado en formato Excel (base64). */
|
|
128
|
-
consultarCTGExcel(params: ConsultaCTGParams): Promise<string>;
|
|
129
|
-
/** Obtiene la constancia PDF de un CTG en base64. */
|
|
130
|
-
consultarConstanciaCTGPDF(nroCTG: number): Promise<string>;
|
|
131
|
-
/** Obtiene los CTGs activos (pendientes). */
|
|
132
|
-
obtenerCTGActivos(): Promise<CTGActivosResult>;
|
|
133
|
-
/** Verifica el estado de los servidores del WSCTG. */
|
|
134
|
-
dummy(): Promise<ServerStatus>;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Namespace con métodos de Liquidación Primaria de Granos (WSLPG).
|
|
138
|
-
* Se accede a través de `agro.lpg.*`.
|
|
139
|
-
*/
|
|
140
|
-
declare class ArcaAgroLpg {
|
|
141
|
-
private readonly agro;
|
|
142
|
-
constructor(agro: ArcaAgro);
|
|
143
|
-
private auth;
|
|
144
|
-
private client;
|
|
145
|
-
/** Autoriza una liquidación primaria de granos. */
|
|
146
|
-
liquidacionAutorizar(liquidacion: Liquidacion): Promise<LiquidacionResult>;
|
|
147
|
-
/** Consulta liquidaciones previamente autorizadas. */
|
|
148
|
-
liquidacionConsultar(params: ConsultaLiquidacionParams): Promise<LiquidacionResult[]>;
|
|
149
|
-
/** Anula una liquidación previamente autorizada. */
|
|
150
|
-
liquidacionAnular(ptoEmision: number, nroOrden: number): Promise<LiquidacionResult>;
|
|
151
|
-
/** Ajusta una liquidación mediante ajuste unificado. */
|
|
152
|
-
liquidacionAjustarUnificado(params: AjusteUnificadoParams): Promise<LiquidacionResult>;
|
|
153
|
-
/** Autoriza una certificación de granos. */
|
|
154
|
-
certificacionAutorizar(certificacion: Certificacion): Promise<CertificacionResult>;
|
|
155
|
-
/** Anula una certificación previamente autorizada. */
|
|
156
|
-
certificacionAnular(tipoCertificacion: number, nroCertificacion: number): Promise<CertificacionResult>;
|
|
157
|
-
/** Consulta parámetros del WSLPG (tipos de grano, grados, puertos, etc.). */
|
|
158
|
-
consultarParametros(tipoParametro: string, params?: LpgParameterQueryParams): Promise<Record<string, unknown>[]>;
|
|
159
|
-
/** Verifica el estado de los servidores del WSLPG. */
|
|
160
|
-
dummy(): Promise<ServerStatus>;
|
|
161
45
|
}
|
|
162
46
|
export {};
|
|
163
47
|
//# sourceMappingURL=arca-agro.d.ts.map
|
package/dist/arca-agro.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arca-agro.d.ts","sourceRoot":"","sources":["../src/arca-agro.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"arca-agro.d.ts","sourceRoot":"","sources":["../src/arca-agro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAY,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAgC,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpE,KAAK,WAAW,GAAG,MAAM,OAAO,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,QAAS,SAAQ,WAAW,CAAC,WAAW,CAAC;IACpD,mEAAmE;IACnE,SAAgB,GAAG,EAAE,SAAS,CAAC;IAC/B,+DAA+D;IAC/D,SAAgB,GAAG,EAAE,SAAS,CAAC;IAE/B,0DAA0D;gBAC9C,MAAM,EAAE,cAAc;IAalC;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,iBAAiB,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAA;KAAE,CAAC;IAIvF,oDAAoD;IACpD,YAAY,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,iBAAiB,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAA;KAAE,CAAC;CAG9F"}
|
package/dist/arca-agro.js
CHANGED
|
@@ -1,301 +1,52 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { WsaaClient } from '@ramiidv/arca-common';
|
|
1
|
+
import { ArcaSdkBase, statusOf } from '@ramiidv/arca-common';
|
|
3
2
|
import { CpeClient } from './cpe-client.js';
|
|
4
|
-
import { CtgClient } from './ctg-client.js';
|
|
5
3
|
import { LpgClient } from './lpg-client.js';
|
|
6
|
-
import { WSAA_SERVICES } from './constants.js';
|
|
7
|
-
import { validateCPE, validateCTG, validateLiquidacion } from './validation.js';
|
|
4
|
+
import { CPE_ENDPOINTS, LPG_ENDPOINTS, WSAA_SERVICES } from './constants.js';
|
|
8
5
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* Cliente de los servicios agropecuarios de ARCA: WSCPE (Carta de Porte
|
|
7
|
+
* Electrónica) y WSLPG (Liquidación Primaria de Granos), con autenticación
|
|
8
|
+
* WSAA automática.
|
|
11
9
|
*
|
|
12
10
|
* @example
|
|
13
11
|
* ```ts
|
|
14
12
|
* const agro = new ArcaAgro({
|
|
15
|
-
* cuit:
|
|
13
|
+
* cuit: '20-12345678-6',
|
|
16
14
|
* cert: fs.readFileSync('cert.pem', 'utf-8'),
|
|
17
15
|
* key: fs.readFileSync('key.pem', 'utf-8'),
|
|
18
|
-
* production: false,
|
|
19
16
|
* });
|
|
20
|
-
*
|
|
21
|
-
* // Carta de Porte
|
|
17
|
+
* const nroOrden = await agro.cpe.siguienteNroOrden(1, TIPO_CPE.AUTOMOTOR);
|
|
22
18
|
* const cpe = await agro.cpe.autorizarCPEAutomotor({ ... });
|
|
23
|
-
*
|
|
24
|
-
* // CTG
|
|
25
|
-
* const ctg = await agro.ctg.solicitarCTGInicial({ ... });
|
|
26
|
-
*
|
|
27
|
-
* // Liquidaciones
|
|
28
|
-
* const liq = await agro.lpg.liquidacionAutorizar({ ... });
|
|
19
|
+
* const liq = await agro.lpg.liquidacionAutorizar({ liquidacion: { ... } });
|
|
29
20
|
* ```
|
|
30
21
|
*/
|
|
31
|
-
export class ArcaAgro {
|
|
32
|
-
|
|
33
|
-
cpeClient;
|
|
34
|
-
ctgClient;
|
|
35
|
-
lpgClient;
|
|
36
|
-
cuit;
|
|
37
|
-
production;
|
|
38
|
-
emitter = new EventEmitter();
|
|
39
|
-
onEventCb;
|
|
40
|
-
/** Acceso a los servicios de Carta de Porte Electrónica (WSCPE). */
|
|
22
|
+
export class ArcaAgro extends ArcaSdkBase {
|
|
23
|
+
/** WSCPE: Carta de Porte Electrónica (automotor y ferroviaria). */
|
|
41
24
|
cpe;
|
|
42
|
-
/**
|
|
43
|
-
ctg;
|
|
44
|
-
/** Acceso a los servicios de Liquidación Primaria de Granos (WSLPG). */
|
|
25
|
+
/** WSLPG: Liquidación Primaria de Granos y certificaciones. */
|
|
45
26
|
lpg;
|
|
27
|
+
/** @throws ArcaValidationError si el CUIT es inválido. */
|
|
46
28
|
constructor(config) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
this.onEventCb?.(event);
|
|
55
|
-
this.emitter.emit(event.type, event);
|
|
56
|
-
};
|
|
57
|
-
const clientOpts = { timeoutMs, retries, retryDelayMs, onEvent: emit };
|
|
58
|
-
this.wsaa = new WsaaClient({
|
|
59
|
-
cert: config.cert,
|
|
60
|
-
key: config.key,
|
|
61
|
-
production: this.production,
|
|
62
|
-
tokenTTLMinutes: config.tokenTTLMinutes ?? 720,
|
|
63
|
-
timeout: timeoutMs,
|
|
64
|
-
retries,
|
|
65
|
-
retryDelayMs,
|
|
66
|
-
onEvent: emit,
|
|
29
|
+
super(config, WSAA_SERVICES);
|
|
30
|
+
const context = (service, endpoint) => ({
|
|
31
|
+
endpoint,
|
|
32
|
+
cuit: this.cuit,
|
|
33
|
+
transport: this.transport,
|
|
34
|
+
getTicket: (opts) => this.ticket(service, opts),
|
|
35
|
+
callOptions: (opts) => this.callOptions(opts),
|
|
67
36
|
});
|
|
68
|
-
this.
|
|
69
|
-
this.
|
|
70
|
-
this.lpgClient = new LpgClient(this.production, clientOpts);
|
|
71
|
-
this.cpe = new ArcaAgroCpe(this);
|
|
72
|
-
this.ctg = new ArcaAgroCtg(this);
|
|
73
|
-
this.lpg = new ArcaAgroLpg(this);
|
|
37
|
+
this.cpe = new CpeClient(context('cpe', this.endpoint(CPE_ENDPOINTS, config.endpoints?.cpe)));
|
|
38
|
+
this.lpg = new LpgClient(context('lpg', this.endpoint(LPG_ENDPOINTS, config.endpoints?.lpg)));
|
|
74
39
|
}
|
|
75
|
-
// ============================================================
|
|
76
|
-
// Eventos
|
|
77
|
-
// ============================================================
|
|
78
40
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* ```ts
|
|
83
|
-
* agro.on('request:end', (e) => console.log(`${e.method} took ${e.durationMs}ms`));
|
|
84
|
-
* agro.on('auth:login', (e) => console.log(`Login ${e.service} in ${e.durationMs}ms`));
|
|
85
|
-
* ```
|
|
41
|
+
* Estado de los servidores de WSCPE y WSLPG (`dummy`, sin autenticación).
|
|
42
|
+
* Una falla de un servicio no impide conocer el estado del otro.
|
|
86
43
|
*/
|
|
87
|
-
|
|
88
|
-
this.
|
|
89
|
-
return this;
|
|
90
|
-
}
|
|
91
|
-
/** Desuscribirse de un evento. */
|
|
92
|
-
off(event, handler) {
|
|
93
|
-
this.emitter.off(event, handler);
|
|
94
|
-
return this;
|
|
95
|
-
}
|
|
96
|
-
// ============================================================
|
|
97
|
-
// Auth helpers (internal)
|
|
98
|
-
// ============================================================
|
|
99
|
-
/** @internal */
|
|
100
|
-
async getAuth(service) {
|
|
101
|
-
const ticket = await this.wsaa.getAccessTicket(service);
|
|
102
|
-
return {
|
|
103
|
-
Token: ticket.token,
|
|
104
|
-
Sign: ticket.sign,
|
|
105
|
-
Cuit: this.cuit,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
/** @internal */
|
|
109
|
-
getCpeClient() { return this.cpeClient; }
|
|
110
|
-
/** @internal */
|
|
111
|
-
getCtgClient() { return this.ctgClient; }
|
|
112
|
-
/** @internal */
|
|
113
|
-
getLpgClient() { return this.lpgClient; }
|
|
114
|
-
// ============================================================
|
|
115
|
-
// Estado de servicios
|
|
116
|
-
// ============================================================
|
|
117
|
-
/** Verifica el estado de los servidores de los 3 servicios agro. */
|
|
118
|
-
async serverStatus() {
|
|
119
|
-
const [cpe, ctg, lpg] = await Promise.all([
|
|
120
|
-
this.cpeClient.dummy(),
|
|
121
|
-
this.ctgClient.dummy(),
|
|
122
|
-
this.lpgClient.dummy(),
|
|
123
|
-
]);
|
|
124
|
-
return { cpe, ctg, lpg };
|
|
125
|
-
}
|
|
126
|
-
// ============================================================
|
|
127
|
-
// Cache
|
|
128
|
-
// ============================================================
|
|
129
|
-
/** Invalida los tickets de acceso cacheados para todos los servicios agro. */
|
|
130
|
-
clearAuthCache() {
|
|
131
|
-
this.wsaa.clearTicket(WSAA_SERVICES.cpe);
|
|
132
|
-
this.wsaa.clearTicket(WSAA_SERVICES.ctg);
|
|
133
|
-
this.wsaa.clearTicket(WSAA_SERVICES.lpg);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
// ============================================================
|
|
137
|
-
// Namespace: CPE
|
|
138
|
-
// ============================================================
|
|
139
|
-
/**
|
|
140
|
-
* Namespace con métodos de Carta de Porte Electrónica (WSCPE).
|
|
141
|
-
* Se accede a través de `agro.cpe.*`.
|
|
142
|
-
*/
|
|
143
|
-
class ArcaAgroCpe {
|
|
144
|
-
agro;
|
|
145
|
-
constructor(agro) {
|
|
146
|
-
this.agro = agro;
|
|
147
|
-
}
|
|
148
|
-
auth() { return this.agro.getAuth(WSAA_SERVICES.cpe); }
|
|
149
|
-
client() { return this.agro.getCpeClient(); }
|
|
150
|
-
/** Autoriza una CPE para transporte automotor. */
|
|
151
|
-
async autorizarCPEAutomotor(cpe) {
|
|
152
|
-
validateCPE(cpe);
|
|
153
|
-
return this.client().autorizarCPEAutomotor(await this.auth(), cpe);
|
|
154
|
-
}
|
|
155
|
-
/** Confirma el arribo de una CPE en destino. */
|
|
156
|
-
async confirmadoArriboCPE(params) {
|
|
157
|
-
return this.client().confirmadoArriboCPE(await this.auth(), params);
|
|
158
|
-
}
|
|
159
|
-
/** Rechaza una CPE. */
|
|
160
|
-
async rechazoCPE(params) {
|
|
161
|
-
return this.client().rechazoCPE(await this.auth(), params);
|
|
162
|
-
}
|
|
163
|
-
/** Anula una CPE. */
|
|
164
|
-
async anularCPE(params) {
|
|
165
|
-
return this.client().anularCPE(await this.auth(), params);
|
|
166
|
-
}
|
|
167
|
-
/** Edita campos de una CPE previamente autorizada. */
|
|
168
|
-
async editarCPE(params) {
|
|
169
|
-
return this.client().editarCPE(await this.auth(), params);
|
|
170
|
-
}
|
|
171
|
-
/** Informa una contingencia sobre una CPE. */
|
|
172
|
-
async informarContingencia(params) {
|
|
173
|
-
return this.client().informarContingencia(await this.auth(), params);
|
|
174
|
-
}
|
|
175
|
-
/** Consulta CPEs según criterios de búsqueda. */
|
|
176
|
-
async consultarCPE(params) {
|
|
177
|
-
return this.client().consultarCPE(await this.auth(), params);
|
|
178
|
-
}
|
|
179
|
-
/** Consulta CPEs por destino. */
|
|
180
|
-
async consultarCPEPorDestino(params) {
|
|
181
|
-
return this.client().consultarCPEPorDestino(await this.auth(), params);
|
|
182
|
-
}
|
|
183
|
-
/** Consulta el último número de orden utilizado para una sucursal. */
|
|
184
|
-
async consultarUltNroOrden(sucursal) {
|
|
185
|
-
return this.client().consultarUltNroOrden(await this.auth(), sucursal);
|
|
186
|
-
}
|
|
187
|
-
/** Obtiene el siguiente número de orden (último + 1). */
|
|
188
|
-
async siguienteNroOrden(sucursal) {
|
|
189
|
-
const ultimo = await this.consultarUltNroOrden(sucursal);
|
|
190
|
-
return ultimo + 1;
|
|
191
|
-
}
|
|
192
|
-
/** Obtiene la constancia PDF de una CPE en base64. */
|
|
193
|
-
async consultarConstanciaCPEPDF(nroCTG) {
|
|
194
|
-
return this.client().consultarConstanciaCPEPDF(await this.auth(), nroCTG);
|
|
195
|
-
}
|
|
196
|
-
/** Verifica el estado de los servidores del WSCPE. */
|
|
197
|
-
async dummy() {
|
|
198
|
-
return this.client().dummy();
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
// ============================================================
|
|
202
|
-
// Namespace: CTG
|
|
203
|
-
// ============================================================
|
|
204
|
-
/**
|
|
205
|
-
* Namespace con métodos de Código de Trazabilidad de Granos (WSCTG).
|
|
206
|
-
* Se accede a través de `agro.ctg.*`.
|
|
207
|
-
*/
|
|
208
|
-
class ArcaAgroCtg {
|
|
209
|
-
agro;
|
|
210
|
-
constructor(agro) {
|
|
211
|
-
this.agro = agro;
|
|
212
|
-
}
|
|
213
|
-
auth() { return this.agro.getAuth(WSAA_SERVICES.ctg); }
|
|
214
|
-
client() { return this.agro.getCtgClient(); }
|
|
215
|
-
/** Solicita un CTG inicial para el transporte de granos. */
|
|
216
|
-
async solicitarCTGInicial(solicitud) {
|
|
217
|
-
validateCTG(solicitud);
|
|
218
|
-
return this.client().solicitarCTGInicial(await this.auth(), solicitud);
|
|
219
|
-
}
|
|
220
|
-
/** Confirma el arribo de un CTG en destino. */
|
|
221
|
-
async confirmarArribo(params) {
|
|
222
|
-
return this.client().confirmarArribo(await this.auth(), params);
|
|
223
|
-
}
|
|
224
|
-
/** Rechaza un CTG. */
|
|
225
|
-
async rechazarCTG(params) {
|
|
226
|
-
return this.client().rechazarCTG(await this.auth(), params);
|
|
227
|
-
}
|
|
228
|
-
/** Anula un CTG. */
|
|
229
|
-
async anularCTG(params) {
|
|
230
|
-
return this.client().anularCTG(await this.auth(), params);
|
|
231
|
-
}
|
|
232
|
-
/** Consulta CTGs según criterios de búsqueda. */
|
|
233
|
-
async consultarCTG(params) {
|
|
234
|
-
return this.client().consultarCTG(await this.auth(), params);
|
|
235
|
-
}
|
|
236
|
-
/** Consulta CTGs y retorna el resultado en formato Excel (base64). */
|
|
237
|
-
async consultarCTGExcel(params) {
|
|
238
|
-
return this.client().consultarCTGExcel(await this.auth(), params);
|
|
239
|
-
}
|
|
240
|
-
/** Obtiene la constancia PDF de un CTG en base64. */
|
|
241
|
-
async consultarConstanciaCTGPDF(nroCTG) {
|
|
242
|
-
return this.client().consultarConstanciaCTGPDF(await this.auth(), nroCTG);
|
|
243
|
-
}
|
|
244
|
-
/** Obtiene los CTGs activos (pendientes). */
|
|
245
|
-
async obtenerCTGActivos() {
|
|
246
|
-
return this.client().obtenerCTGActivos(await this.auth());
|
|
247
|
-
}
|
|
248
|
-
/** Verifica el estado de los servidores del WSCTG. */
|
|
249
|
-
async dummy() {
|
|
250
|
-
return this.client().dummy();
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
// ============================================================
|
|
254
|
-
// Namespace: LPG
|
|
255
|
-
// ============================================================
|
|
256
|
-
/**
|
|
257
|
-
* Namespace con métodos de Liquidación Primaria de Granos (WSLPG).
|
|
258
|
-
* Se accede a través de `agro.lpg.*`.
|
|
259
|
-
*/
|
|
260
|
-
class ArcaAgroLpg {
|
|
261
|
-
agro;
|
|
262
|
-
constructor(agro) {
|
|
263
|
-
this.agro = agro;
|
|
264
|
-
}
|
|
265
|
-
auth() { return this.agro.getAuth(WSAA_SERVICES.lpg); }
|
|
266
|
-
client() { return this.agro.getLpgClient(); }
|
|
267
|
-
/** Autoriza una liquidación primaria de granos. */
|
|
268
|
-
async liquidacionAutorizar(liquidacion) {
|
|
269
|
-
validateLiquidacion(liquidacion);
|
|
270
|
-
return this.client().liquidacionAutorizar(await this.auth(), liquidacion);
|
|
271
|
-
}
|
|
272
|
-
/** Consulta liquidaciones previamente autorizadas. */
|
|
273
|
-
async liquidacionConsultar(params) {
|
|
274
|
-
return this.client().liquidacionConsultar(await this.auth(), params);
|
|
275
|
-
}
|
|
276
|
-
/** Anula una liquidación previamente autorizada. */
|
|
277
|
-
async liquidacionAnular(ptoEmision, nroOrden) {
|
|
278
|
-
return this.client().liquidacionAnular(await this.auth(), ptoEmision, nroOrden);
|
|
279
|
-
}
|
|
280
|
-
/** Ajusta una liquidación mediante ajuste unificado. */
|
|
281
|
-
async liquidacionAjustarUnificado(params) {
|
|
282
|
-
return this.client().liquidacionAjustarUnificado(await this.auth(), params);
|
|
283
|
-
}
|
|
284
|
-
/** Autoriza una certificación de granos. */
|
|
285
|
-
async certificacionAutorizar(certificacion) {
|
|
286
|
-
return this.client().certificacionAutorizar(await this.auth(), certificacion);
|
|
287
|
-
}
|
|
288
|
-
/** Anula una certificación previamente autorizada. */
|
|
289
|
-
async certificacionAnular(tipoCertificacion, nroCertificacion) {
|
|
290
|
-
return this.client().certificacionAnular(await this.auth(), tipoCertificacion, nroCertificacion);
|
|
291
|
-
}
|
|
292
|
-
/** Consulta parámetros del WSLPG (tipos de grano, grados, puertos, etc.). */
|
|
293
|
-
async consultarParametros(tipoParametro, params) {
|
|
294
|
-
return this.client().consultarParametros(await this.auth(), tipoParametro, params);
|
|
44
|
+
status(opts) {
|
|
45
|
+
return statusOf({ cpe: () => this.cpe.dummy(opts), lpg: () => this.lpg.dummy(opts) });
|
|
295
46
|
}
|
|
296
|
-
/**
|
|
297
|
-
|
|
298
|
-
return this.
|
|
47
|
+
/** @deprecated Usá `status()` (mismo resultado). */
|
|
48
|
+
serverStatus(opts) {
|
|
49
|
+
return this.status(opts);
|
|
299
50
|
}
|
|
300
51
|
}
|
|
301
52
|
//# sourceMappingURL=arca-agro.js.map
|
package/dist/arca-agro.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arca-agro.js","sourceRoot":"","sources":["../src/arca-agro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"arca-agro.js","sourceRoot":"","sources":["../src/arca-agro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAM7E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,QAAS,SAAQ,WAAwB;IACpD,mEAAmE;IACnD,GAAG,CAAY;IAC/B,+DAA+D;IAC/C,GAAG,CAAY;IAE/B,0DAA0D;IAC1D,YAAY,MAAsB;QAChC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,CAAC,OAAoB,EAAE,QAAgB,EAAkB,EAAE,CAAC,CAAC;YAC3E,QAAQ;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;YAC/C,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAkB;QACvB,OAAO,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,oDAAoD;IACpD,YAAY,CAAC,IAAkB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,21 +1,47 @@
|
|
|
1
1
|
export declare const WSAA_SERVICES: {
|
|
2
2
|
readonly cpe: "wscpe";
|
|
3
|
-
readonly ctg: "wsctg";
|
|
4
3
|
readonly lpg: "wslpg";
|
|
5
4
|
};
|
|
5
|
+
/**
|
|
6
|
+
* Endpoints de WSCPE (`soap:address` de los WSDL oficiales y manual WSCPE §2.2).
|
|
7
|
+
*/
|
|
6
8
|
export declare const CPE_ENDPOINTS: {
|
|
7
|
-
readonly testing: "https://
|
|
8
|
-
readonly production: "https://
|
|
9
|
+
readonly testing: "https://cpea-ws-qaext.afip.gob.ar/wscpe/services/soap";
|
|
10
|
+
readonly production: "https://cpea-ws.afip.gob.ar/wscpe/services/soap";
|
|
9
11
|
};
|
|
12
|
+
/** Namespace (targetNamespace) de WSCPE. */
|
|
10
13
|
export declare const CPE_NAMESPACE = "https://serviciosjava.afip.gob.ar/wscpe/";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Tipos de carta de porte (`TipoCPE`, manual WSCPE "Tipos de Datos Simples").
|
|
16
|
+
* Los tipos 284-287 (derivados granarios) no están soportados por este SDK.
|
|
17
|
+
*/
|
|
18
|
+
export declare const TIPO_CPE: {
|
|
19
|
+
readonly AUTOMOTOR: 74;
|
|
20
|
+
readonly FERROVIARIA: 75;
|
|
21
|
+
readonly AUTOMOTOR_FLETE_CORTO: 274;
|
|
14
22
|
};
|
|
15
|
-
|
|
23
|
+
/** Estados de una carta de porte (manual WSCPE §2.7.1). */
|
|
24
|
+
export declare const ESTADOS_CPE: {
|
|
25
|
+
readonly AC: "Activa";
|
|
26
|
+
readonly AN: "Anulada";
|
|
27
|
+
readonly BR: "Borrador";
|
|
28
|
+
readonly CF: "Activa con confirmación de arribo";
|
|
29
|
+
readonly CN: "Confirmada";
|
|
30
|
+
readonly CO: "Activa con contingencia";
|
|
31
|
+
readonly DE: "Desactivada";
|
|
32
|
+
readonly RE: "Rechazada";
|
|
33
|
+
readonly PA: "Pendiente de aceptación por el productor";
|
|
34
|
+
readonly AP: "Anulación por el productor";
|
|
35
|
+
readonly DD: "Descargado en destino";
|
|
36
|
+
readonly PE: "Pendiente de emisión";
|
|
37
|
+
readonly IN: "Inactiva";
|
|
38
|
+
readonly PO: "Pendiente de aceptación por el origen";
|
|
39
|
+
};
|
|
40
|
+
/** Endpoints de WSLPG (`soap:address` de los WSDL oficiales). */
|
|
16
41
|
export declare const LPG_ENDPOINTS: {
|
|
17
42
|
readonly testing: "https://fwshomo.afip.gov.ar/wslpg/LpgService";
|
|
18
43
|
readonly production: "https://serviciosjava.afip.gob.ar/wslpg/LpgService";
|
|
19
44
|
};
|
|
20
|
-
|
|
45
|
+
/** Namespace (targetNamespace) de WSLPG. Ojo: es `http`, no `https`. */
|
|
46
|
+
export declare const LPG_NAMESPACE = "http://serviciosjava.afip.gob.ar/wslpg/";
|
|
21
47
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,aAAa,6CAA6C,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAEX,2DAA2D;AAC3D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;CAed,CAAC;AAMX,iEAAiE;AACjE,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX,wEAAwE;AACxE,eAAO,MAAM,aAAa,4CAA4C,CAAC"}
|