@ramiidv/arca-sdk 0.2.1 → 1.0.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/dist/wsfe.js CHANGED
@@ -1,5 +1,5 @@
1
- import { ENDPOINTS } from "./constants.js";
2
- import { wsfeSoapCall } from "./soap-client.js";
1
+ import { ENDPOINTS, WSFE_NAMESPACE } from "./constants.js";
2
+ import { afipSoapCall } from "./soap-client.js";
3
3
  import { ArcaWSFEError } from "./errors.js";
4
4
  function toArray(val) {
5
5
  if (val === undefined || val === null)
@@ -14,22 +14,27 @@ function checkErrors(result) {
14
14
  }
15
15
  export class WsfeClient {
16
16
  endpoint;
17
- timeoutMs;
18
- constructor(production, timeoutMs = 30_000) {
17
+ soapOpts;
18
+ constructor(production, opts = {}) {
19
19
  this.endpoint = production
20
20
  ? ENDPOINTS.wsfe.production
21
21
  : ENDPOINTS.wsfe.testing;
22
- this.timeoutMs = timeoutMs;
22
+ this.soapOpts = {
23
+ timeoutMs: opts.timeoutMs,
24
+ retries: opts.retries,
25
+ retryDelayMs: opts.retryDelayMs,
26
+ onEvent: opts.onEvent,
27
+ };
28
+ }
29
+ call(method, params) {
30
+ return afipSoapCall(this.endpoint, WSFE_NAMESPACE, method, params, this.soapOpts);
23
31
  }
24
32
  // ============================================================
25
33
  // Facturación
26
34
  // ============================================================
27
- /**
28
- * Solicita CAE (Código de Autorización Electrónica) para uno o más comprobantes.
29
- */
30
35
  async solicitarCAE(auth, request) {
31
36
  const detRequests = request.invoices.map((inv) => this.buildDetRequest(inv));
32
- const params = {
37
+ const result = (await this.call("FECAESolicitar", {
33
38
  Auth: auth,
34
39
  FeCAEReq: {
35
40
  FeCabReq: {
@@ -37,140 +42,76 @@ export class WsfeClient {
37
42
  PtoVta: request.PtoVta,
38
43
  CbteTipo: request.CbteTipo,
39
44
  },
40
- FeDetReq: {
41
- FECAEDetRequest: detRequests,
42
- },
45
+ FeDetReq: { FECAEDetRequest: detRequests },
43
46
  },
44
- };
45
- const result = (await wsfeSoapCall(this.endpoint, "FECAESolicitar", params, this.timeoutMs));
47
+ }));
46
48
  checkErrors(result);
47
49
  return result;
48
50
  }
49
- /**
50
- * Obtiene el último número de comprobante autorizado para un punto de venta y tipo.
51
- */
52
51
  async ultimoComprobante(auth, ptoVta, cbteTipo) {
53
- const result = (await wsfeSoapCall(this.endpoint, "FECompUltimoAutorizado", {
52
+ const result = (await this.call("FECompUltimoAutorizado", {
54
53
  Auth: auth,
55
54
  PtoVta: ptoVta,
56
55
  CbteTipo: cbteTipo,
57
- }, this.timeoutMs));
56
+ }));
58
57
  checkErrors(result);
59
58
  return result.CbteNro;
60
59
  }
61
- /**
62
- * Consulta un comprobante previamente autorizado.
63
- */
64
60
  async consultarComprobante(auth, cbteTipo, ptoVta, cbteNro) {
65
- const result = (await wsfeSoapCall(this.endpoint, "FECompConsultar", {
61
+ const result = (await this.call("FECompConsultar", {
66
62
  Auth: auth,
67
- FeCompConsReq: {
68
- CbteTipo: cbteTipo,
69
- CbteNro: cbteNro,
70
- PtoVta: ptoVta,
71
- },
72
- }, this.timeoutMs));
63
+ FeCompConsReq: { CbteTipo: cbteTipo, CbteNro: cbteNro, PtoVta: ptoVta },
64
+ }));
73
65
  checkErrors(result);
74
66
  return result;
75
67
  }
76
68
  // ============================================================
77
69
  // Parámetros
78
70
  // ============================================================
79
- /**
80
- * Verifica el estado de los servidores de ARCA.
81
- */
82
71
  async serverStatus() {
83
- const result = await wsfeSoapCall(this.endpoint, "FEDummy", {}, this.timeoutMs);
84
- return result;
72
+ return (await this.call("FEDummy", {}));
85
73
  }
86
- /**
87
- * Obtiene los tipos de comprobante disponibles.
88
- */
89
- async getTiposComprobante(auth) {
90
- const result = await wsfeSoapCall(this.endpoint, "FEParamGetTiposCbte", { Auth: auth }, this.timeoutMs);
74
+ async getParam(auth, method, itemKey) {
75
+ const result = (await this.call(method, { Auth: auth }));
91
76
  checkErrors(result);
92
- const items = result.ResultGet?.CbteTipo;
93
- return toArray(items);
77
+ return toArray(result.ResultGet?.[itemKey]);
78
+ }
79
+ async getTiposComprobante(auth) {
80
+ return this.getParam(auth, "FEParamGetTiposCbte", "CbteTipo");
94
81
  }
95
- /**
96
- * Obtiene los tipos de concepto disponibles.
97
- */
98
82
  async getTiposConcepto(auth) {
99
- const result = await wsfeSoapCall(this.endpoint, "FEParamGetTiposConcepto", { Auth: auth }, this.timeoutMs);
100
- checkErrors(result);
101
- const items = result.ResultGet?.ConceptoTipo;
102
- return toArray(items);
83
+ return this.getParam(auth, "FEParamGetTiposConcepto", "ConceptoTipo");
103
84
  }
104
- /**
105
- * Obtiene los tipos de documento disponibles.
106
- */
107
85
  async getTiposDocumento(auth) {
108
- const result = await wsfeSoapCall(this.endpoint, "FEParamGetTiposDoc", { Auth: auth }, this.timeoutMs);
109
- checkErrors(result);
110
- const items = result.ResultGet?.DocTipo;
111
- return toArray(items);
86
+ return this.getParam(auth, "FEParamGetTiposDoc", "DocTipo");
112
87
  }
113
- /**
114
- * Obtiene los tipos de IVA disponibles.
115
- */
116
88
  async getTiposIva(auth) {
117
- const result = await wsfeSoapCall(this.endpoint, "FEParamGetTiposIva", { Auth: auth }, this.timeoutMs);
118
- checkErrors(result);
119
- const items = result.ResultGet?.IvaTipo;
120
- return toArray(items);
89
+ return this.getParam(auth, "FEParamGetTiposIva", "IvaTipo");
121
90
  }
122
- /**
123
- * Obtiene las monedas disponibles.
124
- */
125
91
  async getMonedas(auth) {
126
- const result = await wsfeSoapCall(this.endpoint, "FEParamGetTiposMonedas", { Auth: auth }, this.timeoutMs);
127
- checkErrors(result);
128
- const items = result.ResultGet?.Moneda;
129
- return toArray(items);
92
+ return this.getParam(auth, "FEParamGetTiposMonedas", "Moneda");
130
93
  }
131
- /**
132
- * Obtiene los tipos de tributo disponibles.
133
- */
134
94
  async getTiposTributo(auth) {
135
- const result = await wsfeSoapCall(this.endpoint, "FEParamGetTiposTributos", { Auth: auth }, this.timeoutMs);
136
- checkErrors(result);
137
- const items = result.ResultGet?.TributoTipo;
138
- return toArray(items);
95
+ return this.getParam(auth, "FEParamGetTiposTributos", "TributoTipo");
139
96
  }
140
- /**
141
- * Obtiene los tipos de opcionales disponibles.
142
- */
143
97
  async getTiposOpcional(auth) {
144
- const result = await wsfeSoapCall(this.endpoint, "FEParamGetTiposOpcional", { Auth: auth }, this.timeoutMs);
145
- checkErrors(result);
146
- const items = result.ResultGet?.OpcionalTipo;
147
- return toArray(items);
98
+ return this.getParam(auth, "FEParamGetTiposOpcional", "OpcionalTipo");
148
99
  }
149
- /**
150
- * Obtiene los puntos de venta habilitados.
151
- */
152
100
  async getPuntosVenta(auth) {
153
- const result = await wsfeSoapCall(this.endpoint, "FEParamGetPtosVenta", { Auth: auth }, this.timeoutMs);
154
- checkErrors(result);
155
- const items = result.ResultGet?.PtoVenta;
156
- return toArray(items);
101
+ return this.getParam(auth, "FEParamGetPtosVenta", "PtoVenta");
157
102
  }
158
- /**
159
- * Obtiene la cotización de una moneda.
160
- */
161
103
  async getCotizacion(auth, monedaId) {
162
- const result = (await wsfeSoapCall(this.endpoint, "FEParamGetCotizacion", {
104
+ const result = (await this.call("FEParamGetCotizacion", {
163
105
  Auth: auth,
164
106
  MonId: monedaId,
165
- }, this.timeoutMs));
107
+ }));
166
108
  checkErrors(result);
167
109
  return result;
168
110
  }
169
- /**
170
- * Obtiene la cantidad máxima de registros por request de FECAESolicitar.
171
- */
172
111
  async getCantMaxRegistros(auth) {
173
- const result = await wsfeSoapCall(this.endpoint, "FECompTotXRequest", { Auth: auth }, this.timeoutMs);
112
+ const result = (await this.call("FECompTotXRequest", {
113
+ Auth: auth,
114
+ }));
174
115
  checkErrors(result);
175
116
  return result.RegXReq ?? 0;
176
117
  }
package/dist/wsfe.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wsfe.js","sourceRoot":"","sources":["../src/wsfe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAgB5C,SAAS,OAAO,CAAI,GAAwB;IAC1C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,MAAiD;IACpE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,MAAM,OAAO,UAAU;IACb,QAAQ,CAAS;IACjB,SAAS,CAAS;IAE1B,YAAY,UAAmB,EAAE,YAAoB,MAAM;QACzD,IAAI,CAAC,QAAQ,GAAG,UAAU;YACxB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU;YAC3B,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,+DAA+D;IAC/D,cAAc;IACd,+DAA+D;IAE/D;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,IAAc,EACd,OAAuB;QAEvB,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC/C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAC1B,CAAC;QAEF,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;oBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B;gBACD,QAAQ,EAAE;oBACR,eAAe,EAAE,WAAW;iBAC7B;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAChC,IAAI,CAAC,QAAQ,EACb,gBAAgB,EAChB,MAAM,EACN,IAAI,CAAC,SAAS,CACf,CAAyB,CAAC;QAE3B,WAAW,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,IAAc,EACd,MAAc,EACd,QAAgB;QAEhB,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAChC,IAAI,CAAC,QAAQ,EACb,wBAAwB,EACxB;YACE,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;SACnB,EACD,IAAI,CAAC,SAAS,CACf,CAAiC,CAAC;QAEnC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,IAAc,EACd,QAAgB,EAChB,MAAc,EACd,OAAe;QAEf,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE;YACnE,IAAI,EAAE,IAAI;YACV,aAAa,EAAE;gBACb,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,MAAM;aACf;SACF,EAAE,IAAI,CAAC,SAAS,CAAC,CAA0B,CAAC;QAE7C,WAAW,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,+DAA+D;IAC/D,aAAa;IACb,+DAA+D;IAE/D;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO,MAAsB,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,IAAc;QACtC,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,IAAI,CAAC,QAAQ,EACb,qBAAqB,EACrB,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,IAAI,CAAC,SAAS,CACf,CAAC;QACF,WAAW,CAAC,MAAa,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAI,MAAc,CAAC,SAAS,EAAE,QAAQ,CAAC;QAClD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,IAAc;QACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,IAAI,CAAC,QAAQ,EACb,yBAAyB,EACzB,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,IAAI,CAAC,SAAS,CACf,CAAC;QACF,WAAW,CAAC,MAAa,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAI,MAAc,CAAC,SAAS,EAAE,YAAY,CAAC;QACtD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAAc;QACpC,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,IAAI,CAAC,QAAQ,EACb,oBAAoB,EACpB,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,IAAI,CAAC,SAAS,CACf,CAAC;QACF,WAAW,CAAC,MAAa,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAI,MAAc,CAAC,SAAS,EAAE,OAAO,CAAC;QACjD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,IAAc;QAC9B,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,IAAI,CAAC,QAAQ,EACb,oBAAoB,EACpB,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,IAAI,CAAC,SAAS,CACf,CAAC;QACF,WAAW,CAAC,MAAa,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAI,MAAc,CAAC,SAAS,EAAE,OAAO,CAAC;QACjD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,IAAc;QAC7B,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,IAAI,CAAC,QAAQ,EACb,wBAAwB,EACxB,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,IAAI,CAAC,SAAS,CACf,CAAC;QACF,WAAW,CAAC,MAAa,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAI,MAAc,CAAC,SAAS,EAAE,MAAM,CAAC;QAChD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,IAAc;QAClC,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,IAAI,CAAC,QAAQ,EACb,yBAAyB,EACzB,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,IAAI,CAAC,SAAS,CACf,CAAC;QACF,WAAW,CAAC,MAAa,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAI,MAAc,CAAC,SAAS,EAAE,WAAW,CAAC;QACrD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,IAAc;QACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,IAAI,CAAC,QAAQ,EACb,yBAAyB,EACzB,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,IAAI,CAAC,SAAS,CACf,CAAC;QACF,WAAW,CAAC,MAAa,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAI,MAAc,CAAC,SAAS,EAAE,YAAY,CAAC;QACtD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,IAAc;QACjC,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,IAAI,CAAC,QAAQ,EACb,qBAAqB,EACrB,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,IAAI,CAAC,SAAS,CACf,CAAC;QACF,WAAW,CAAC,MAAa,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAI,MAAc,CAAC,SAAS,EAAE,QAAQ,CAAC;QAClD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,IAAc,EACd,QAAgB;QAEhB,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAChC,IAAI,CAAC,QAAQ,EACb,sBAAsB,EACtB;YACE,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,QAAQ;SAChB,EACD,IAAI,CAAC,SAAS,CACf,CAAqB,CAAC;QAEvB,WAAW,CAAC,MAAa,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,IAAc;QACtC,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,IAAI,CAAC,QAAQ,EACb,mBAAmB,EACnB,EAAE,IAAI,EAAE,IAAI,EAAE,EACd,IAAI,CAAC,SAAS,CACf,CAAC;QACF,WAAW,CAAC,MAAa,CAAC,CAAC;QAC3B,OAAQ,MAAc,CAAC,OAAO,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,+DAA+D;IAC/D,UAAU;IACV,+DAA+D;IAEvD,eAAe,CAAC,GAAkB;QACxC,MAAM,GAAG,GAAwB;YAC/B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC;QAEF,IAAI,GAAG,CAAC,YAAY;YAAE,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;QAC1D,IAAI,GAAG,CAAC,YAAY;YAAE,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;QAC1D,IAAI,GAAG,CAAC,UAAU;YAAE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;QAEpD,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,GAAG,CAAC,GAAG,GAAG;gBACR,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,QAAQ,GAAG;gBACb,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChC,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;iBACnB,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,SAAS,GAAG;gBACd,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAChC,MAAM,IAAI,GAAwB;wBAChC,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,GAAG,EAAE,CAAC,CAAC,GAAG;qBACX,CAAC;oBACF,IAAI,CAAC,CAAC,IAAI;wBAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC/B,IAAI,CAAC,CAAC,OAAO;wBAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;oBACxC,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC;aACH,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,UAAU,GAAG;gBACf,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnC,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"wsfe.js","sourceRoot":"","sources":["../src/wsfe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { WsfeAuth, WsfexInvoice, WsfexAuthResult, WsfexGetCmpResult, WsfexParamItem, ServerStatus, ArcaEvent } from "./types.js";
2
+ export declare class WsfexClient {
3
+ private endpoint;
4
+ private soapOpts;
5
+ constructor(production: boolean, opts?: {
6
+ timeoutMs?: number;
7
+ retries?: number;
8
+ retryDelayMs?: number;
9
+ onEvent?: (event: ArcaEvent) => void;
10
+ });
11
+ private call;
12
+ /**
13
+ * Autoriza un comprobante de exportación.
14
+ */
15
+ authorize(auth: WsfeAuth, invoice: WsfexInvoice): Promise<WsfexAuthResult>;
16
+ /**
17
+ * Obtiene el último comprobante autorizado.
18
+ */
19
+ getLastCmp(auth: WsfeAuth, ptoVta: number, cbteTipo: number): Promise<number>;
20
+ /**
21
+ * Obtiene el último ID de request.
22
+ */
23
+ getLastId(auth: WsfeAuth): Promise<number>;
24
+ /**
25
+ * Consulta un comprobante de exportación.
26
+ */
27
+ getCmp(auth: WsfeAuth, cbteTipo: number, ptoVta: number, cbteNro: number): Promise<WsfexGetCmpResult>;
28
+ /**
29
+ * Verifica el estado de los servidores de WSFEX.
30
+ */
31
+ serverStatus(): Promise<ServerStatus>;
32
+ private getParamList;
33
+ /** Tipos de comprobante de exportación. */
34
+ getTiposCbte(auth: WsfeAuth): Promise<WsfexParamItem[]>;
35
+ /** Monedas disponibles. */
36
+ getMonedas(auth: WsfeAuth): Promise<WsfexParamItem[]>;
37
+ /** Países destino. */
38
+ getPaises(auth: WsfeAuth): Promise<WsfexParamItem[]>;
39
+ /** Idiomas disponibles. */
40
+ getIdiomas(auth: WsfeAuth): Promise<WsfexParamItem[]>;
41
+ /** Incoterms disponibles. */
42
+ getIncoterms(auth: WsfeAuth): Promise<WsfexParamItem[]>;
43
+ /** Unidades de medida. */
44
+ getUMed(auth: WsfeAuth): Promise<WsfexParamItem[]>;
45
+ /** Tipos de exportación. */
46
+ getTiposExpo(auth: WsfeAuth): Promise<WsfexParamItem[]>;
47
+ /** CUITs de países. */
48
+ getCuitsPais(auth: WsfeAuth): Promise<WsfexParamItem[]>;
49
+ }
50
+ //# sourceMappingURL=wsfex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsfex.d.ts","sourceRoot":"","sources":["../src/wsfex.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,eAAe,EAGf,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAiBpB,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAkC;gBAGhD,UAAU,EAAE,OAAO,EACnB,IAAI,GAAE;QACJ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;KACjC;IAaR,OAAO,CAAC,IAAI;IAcZ;;OAEG;IACG,SAAS,CACb,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,eAAe,CAAC;IA2B3B;;OAEG;IACG,UAAU,CACd,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAUlB;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAQhD;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC;IAS7B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;YAQ7B,YAAY;IAe1B,2CAA2C;IACrC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS7D,2BAA2B;IACrB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS3D,sBAAsB;IAChB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS1D,2BAA2B;IACrB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS3D,6BAA6B;IACvB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS7D,0BAA0B;IACpB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IASxD,4BAA4B;IACtB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAS7D,uBAAuB;IACjB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAQ9D"}
package/dist/wsfex.js ADDED
@@ -0,0 +1,141 @@
1
+ import { ENDPOINTS, WSFEX_NAMESPACE } from "./constants.js";
2
+ import { afipSoapCall } from "./soap-client.js";
3
+ import { ArcaWSFEError } from "./errors.js";
4
+ function toArray(val) {
5
+ if (val === undefined || val === null)
6
+ return [];
7
+ return Array.isArray(val) ? val : [val];
8
+ }
9
+ function checkFexErr(result) {
10
+ if (result.FEXErr && result.FEXErr.ErrCode !== 0) {
11
+ throw new ArcaWSFEError([
12
+ { code: result.FEXErr.ErrCode, msg: result.FEXErr.ErrMsg },
13
+ ]);
14
+ }
15
+ }
16
+ export class WsfexClient {
17
+ endpoint;
18
+ soapOpts;
19
+ constructor(production, opts = {}) {
20
+ this.endpoint = production
21
+ ? ENDPOINTS.wsfex.production
22
+ : ENDPOINTS.wsfex.testing;
23
+ this.soapOpts = {
24
+ timeoutMs: opts.timeoutMs,
25
+ retries: opts.retries,
26
+ retryDelayMs: opts.retryDelayMs,
27
+ onEvent: opts.onEvent,
28
+ };
29
+ }
30
+ call(method, params) {
31
+ return afipSoapCall(this.endpoint, WSFEX_NAMESPACE, method, params, this.soapOpts);
32
+ }
33
+ // ============================================================
34
+ // Facturación de exportación
35
+ // ============================================================
36
+ /**
37
+ * Autoriza un comprobante de exportación.
38
+ */
39
+ async authorize(auth, invoice) {
40
+ const cmp = { ...invoice };
41
+ // Wrappear Items
42
+ if (invoice.Items && invoice.Items.length > 0) {
43
+ cmp.Items = { Item: invoice.Items };
44
+ }
45
+ // Wrappear Permisos
46
+ if (invoice.Permisos && invoice.Permisos.length > 0) {
47
+ cmp.Permisos = { Permiso: invoice.Permisos };
48
+ }
49
+ // Wrappear Cmps_asoc
50
+ if (invoice.Cmps_asoc && invoice.Cmps_asoc.length > 0) {
51
+ cmp.Cmps_asoc = { Cmp_asoc: invoice.Cmps_asoc };
52
+ }
53
+ const result = (await this.call("FEXAuthorize", {
54
+ Auth: auth,
55
+ Cmp: cmp,
56
+ }));
57
+ checkFexErr(result);
58
+ return result;
59
+ }
60
+ /**
61
+ * Obtiene el último comprobante autorizado.
62
+ */
63
+ async getLastCmp(auth, ptoVta, cbteTipo) {
64
+ const result = (await this.call("FEXGetLast_CMP", {
65
+ Auth: auth,
66
+ Cbte_Tipo: cbteTipo,
67
+ Punto_vta: ptoVta,
68
+ }));
69
+ checkFexErr(result);
70
+ return result.FEXResult_LastCMP?.Cbte_nro ?? 0;
71
+ }
72
+ /**
73
+ * Obtiene el último ID de request.
74
+ */
75
+ async getLastId(auth) {
76
+ const result = (await this.call("FEXGetLast_ID", {
77
+ Auth: auth,
78
+ }));
79
+ checkFexErr(result);
80
+ return result.FEXResultGet?.Id ?? 0;
81
+ }
82
+ /**
83
+ * Consulta un comprobante de exportación.
84
+ */
85
+ async getCmp(auth, cbteTipo, ptoVta, cbteNro) {
86
+ const result = (await this.call("FEXGetCMP", {
87
+ Auth: auth,
88
+ Cmp: { Cbte_tipo: cbteTipo, Punto_vta: ptoVta, Cbte_nro: cbteNro },
89
+ }));
90
+ checkFexErr(result);
91
+ return result;
92
+ }
93
+ /**
94
+ * Verifica el estado de los servidores de WSFEX.
95
+ */
96
+ async serverStatus() {
97
+ return (await this.call("FEXDummy", {}));
98
+ }
99
+ // ============================================================
100
+ // Parámetros
101
+ // ============================================================
102
+ async getParamList(auth, method, resultKey, itemKey) {
103
+ const result = (await this.call(method, { Auth: auth }));
104
+ checkFexErr(result);
105
+ const items = result[resultKey]?.[itemKey];
106
+ return toArray(items);
107
+ }
108
+ /** Tipos de comprobante de exportación. */
109
+ async getTiposCbte(auth) {
110
+ return this.getParamList(auth, "FEXGetPARAM_Cbte_Tipo", "FEXResultGet", "ClsFEXResponse_Cbte_Tipo");
111
+ }
112
+ /** Monedas disponibles. */
113
+ async getMonedas(auth) {
114
+ return this.getParamList(auth, "FEXGetPARAM_MON", "FEXResultGet", "ClsFEXResponse_Mon");
115
+ }
116
+ /** Países destino. */
117
+ async getPaises(auth) {
118
+ return this.getParamList(auth, "FEXGetPARAM_DST_Pais", "FEXResultGet", "ClsFEXResponse_DST_pais");
119
+ }
120
+ /** Idiomas disponibles. */
121
+ async getIdiomas(auth) {
122
+ return this.getParamList(auth, "FEXGetPARAM_Idiomas", "FEXResultGet", "ClsFEXResponse_Idi");
123
+ }
124
+ /** Incoterms disponibles. */
125
+ async getIncoterms(auth) {
126
+ return this.getParamList(auth, "FEXGetPARAM_Incoterms", "FEXResultGet", "ClsFEXResponse_Inc");
127
+ }
128
+ /** Unidades de medida. */
129
+ async getUMed(auth) {
130
+ return this.getParamList(auth, "FEXGetPARAM_UMed", "FEXResultGet", "ClsFEXResponse_UMed");
131
+ }
132
+ /** Tipos de exportación. */
133
+ async getTiposExpo(auth) {
134
+ return this.getParamList(auth, "FEXGetPARAM_Tipo_Expo", "FEXResultGet", "ClsFEXResponse_Tex");
135
+ }
136
+ /** CUITs de países. */
137
+ async getCuitsPais(auth) {
138
+ return this.getParamList(auth, "FEXGetPARAM_DST_CUIT", "FEXResultGet", "ClsFEXResponse_DST_cuit");
139
+ }
140
+ }
141
+ //# sourceMappingURL=wsfex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsfex.js","sourceRoot":"","sources":["../src/wsfex.ts"],"names":[],"mappings":"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"}