@ramiidv/arca-agro 0.1.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.
@@ -0,0 +1,301 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import { WsaaClient } from '@ramiidv/arca-common';
3
+ import { CpeClient } from './cpe-client.js';
4
+ import { CtgClient } from './ctg-client.js';
5
+ import { LpgClient } from './lpg-client.js';
6
+ import { WSAA_SERVICES } from './constants.js';
7
+ import { validateCPE, validateCTG, validateLiquidacion } from './validation.js';
8
+ /**
9
+ * Orquestador principal para los servicios agropecuarios de ARCA.
10
+ * Expone los tres servicios (WSCPE, WSCTG, WSLPG) con autenticación automática.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const agro = new ArcaAgro({
15
+ * cuit: 20123456789,
16
+ * cert: fs.readFileSync('cert.pem', 'utf-8'),
17
+ * key: fs.readFileSync('key.pem', 'utf-8'),
18
+ * production: false,
19
+ * });
20
+ *
21
+ * // Carta de Porte
22
+ * 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({ ... });
29
+ * ```
30
+ */
31
+ export class ArcaAgro {
32
+ wsaa;
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). */
41
+ cpe;
42
+ /** Acceso a los servicios de Código de Trazabilidad de Granos (WSCTG). */
43
+ ctg;
44
+ /** Acceso a los servicios de Liquidación Primaria de Granos (WSLPG). */
45
+ lpg;
46
+ constructor(config) {
47
+ this.cuit = config.cuit;
48
+ this.production = config.production ?? false;
49
+ this.onEventCb = config.onEvent;
50
+ const timeoutMs = config.requestTimeoutMs ?? 30_000;
51
+ const retries = config.retries ?? 1;
52
+ const retryDelayMs = config.retryDelayMs ?? 1_000;
53
+ const emit = (event) => {
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,
67
+ });
68
+ this.cpeClient = new CpeClient(this.production, clientOpts);
69
+ this.ctgClient = new CtgClient(this.production, clientOpts);
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);
74
+ }
75
+ // ============================================================
76
+ // Eventos
77
+ // ============================================================
78
+ /**
79
+ * Suscribirse a eventos del SDK.
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
+ * ```
86
+ */
87
+ on(event, handler) {
88
+ this.emitter.on(event, handler);
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);
295
+ }
296
+ /** Verifica el estado de los servidores del WSLPG. */
297
+ async dummy() {
298
+ return this.client().dummy();
299
+ }
300
+ }
301
+ //# sourceMappingURL=arca-agro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arca-agro.js","sourceRoot":"","sources":["../src/arca-agro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export declare const WSAA_SERVICES: {
2
+ readonly cpe: "wscpe";
3
+ readonly ctg: "wsctg";
4
+ readonly lpg: "wslpg";
5
+ };
6
+ export declare const CPE_ENDPOINTS: {
7
+ readonly testing: "https://fwshomo.afip.gov.ar/wscpe/services/soap";
8
+ readonly production: "https://serviciosjava.afip.gob.ar/wscpe/services/soap";
9
+ };
10
+ export declare const CPE_NAMESPACE = "https://serviciosjava.afip.gob.ar/wscpe/";
11
+ export declare const CTG_ENDPOINTS: {
12
+ readonly testing: "https://fwshomo.afip.gov.ar/wsctg/services/CTGService_v4.0";
13
+ readonly production: "https://serviciosjava.afip.gob.ar/wsctg/services/CTGService_v4.0";
14
+ };
15
+ export declare const CTG_NAMESPACE = "https://serviciosjava.afip.gob.ar/wsctg/";
16
+ export declare const LPG_ENDPOINTS: {
17
+ readonly testing: "https://fwshomo.afip.gov.ar/wslpg/LpgService";
18
+ readonly production: "https://serviciosjava.afip.gob.ar/wslpg/LpgService";
19
+ };
20
+ export declare const LPG_NAMESPACE = "https://serviciosjava.afip.gob.ar/wslpg/";
21
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAMX,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX,eAAO,MAAM,aAAa,6CAA6C,CAAC;AAMxE,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX,eAAO,MAAM,aAAa,6CAA6C,CAAC;AAMxE,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX,eAAO,MAAM,aAAa,6CAA6C,CAAC"}
@@ -0,0 +1,33 @@
1
+ // ---------------------------------------------------------------------------
2
+ // WSAA service identifiers
3
+ // ---------------------------------------------------------------------------
4
+ export const WSAA_SERVICES = {
5
+ cpe: 'wscpe',
6
+ ctg: 'wsctg',
7
+ lpg: 'wslpg',
8
+ };
9
+ // ---------------------------------------------------------------------------
10
+ // WSCPE - Carta de Porte Electrónica
11
+ // ---------------------------------------------------------------------------
12
+ export const CPE_ENDPOINTS = {
13
+ testing: 'https://fwshomo.afip.gov.ar/wscpe/services/soap',
14
+ production: 'https://serviciosjava.afip.gob.ar/wscpe/services/soap',
15
+ };
16
+ export const CPE_NAMESPACE = 'https://serviciosjava.afip.gob.ar/wscpe/';
17
+ // ---------------------------------------------------------------------------
18
+ // WSCTG - Código de Trazabilidad de Granos
19
+ // ---------------------------------------------------------------------------
20
+ export const CTG_ENDPOINTS = {
21
+ testing: 'https://fwshomo.afip.gov.ar/wsctg/services/CTGService_v4.0',
22
+ production: 'https://serviciosjava.afip.gob.ar/wsctg/services/CTGService_v4.0',
23
+ };
24
+ export const CTG_NAMESPACE = 'https://serviciosjava.afip.gob.ar/wsctg/';
25
+ // ---------------------------------------------------------------------------
26
+ // WSLPG - Liquidación Primaria de Granos
27
+ // ---------------------------------------------------------------------------
28
+ export const LPG_ENDPOINTS = {
29
+ testing: 'https://fwshomo.afip.gov.ar/wslpg/LpgService',
30
+ production: 'https://serviciosjava.afip.gob.ar/wslpg/LpgService',
31
+ };
32
+ export const LPG_NAMESPACE = 'https://serviciosjava.afip.gob.ar/wslpg/';
33
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;CACJ,CAAC;AAEX,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,iDAAiD;IAC1D,UAAU,EAAE,uDAAuD;CAC3D,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG,0CAA0C,CAAC;AAExE,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,4DAA4D;IACrE,UAAU,EAAE,kEAAkE;CACtE,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG,0CAA0C,CAAC;AAExE,8EAA8E;AAC9E,yCAAyC;AACzC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,8CAA8C;IACvD,UAAU,EAAE,oDAAoD;CACxD,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG,0CAA0C,CAAC"}
@@ -0,0 +1,64 @@
1
+ import type { ArcaEvent, ServerStatus } from '@ramiidv/arca-common';
2
+ import type { AgroAuth, CartaPorteAutomotor, CartaPorteResult, ConsultaCPEParams, ConsultaCPEPorDestinoParams, ConfirmadoArriboCPEParams, RechazoAnulacionCPEParams, EditarCPEParams, ContingenciaCPEParams } from './types.js';
3
+ export interface CpeClientOptions {
4
+ timeoutMs?: number;
5
+ retries?: number;
6
+ retryDelayMs?: number;
7
+ onEvent?: (event: ArcaEvent) => void;
8
+ }
9
+ /**
10
+ * Cliente de bajo nivel para WSCPE (Carta de Porte Electrónica).
11
+ * Maneja el transporte de granos por vía automotor.
12
+ */
13
+ export declare class CpeClient {
14
+ private readonly endpoint;
15
+ private readonly soapOpts;
16
+ constructor(production: boolean, opts?: CpeClientOptions);
17
+ private call;
18
+ private parseResult;
19
+ /**
20
+ * Autoriza una Carta de Porte Electrónica para transporte automotor.
21
+ */
22
+ autorizarCPEAutomotor(auth: AgroAuth, cpe: CartaPorteAutomotor): Promise<CartaPorteResult>;
23
+ /**
24
+ * Confirma el arribo de una CPE en destino.
25
+ */
26
+ confirmadoArriboCPE(auth: AgroAuth, params: ConfirmadoArriboCPEParams): Promise<CartaPorteResult>;
27
+ /**
28
+ * Rechaza una CPE.
29
+ */
30
+ rechazoCPE(auth: AgroAuth, params: RechazoAnulacionCPEParams): Promise<CartaPorteResult>;
31
+ /**
32
+ * Anula una CPE.
33
+ */
34
+ anularCPE(auth: AgroAuth, params: RechazoAnulacionCPEParams): Promise<CartaPorteResult>;
35
+ /**
36
+ * Edita campos de una CPE previamente autorizada.
37
+ */
38
+ editarCPE(auth: AgroAuth, params: EditarCPEParams): Promise<CartaPorteResult>;
39
+ /**
40
+ * Informa una contingencia sobre una CPE.
41
+ */
42
+ informarContingencia(auth: AgroAuth, params: ContingenciaCPEParams): Promise<CartaPorteResult>;
43
+ /**
44
+ * Consulta CPEs según criterios de búsqueda.
45
+ */
46
+ consultarCPE(auth: AgroAuth, params: ConsultaCPEParams): Promise<CartaPorteResult[]>;
47
+ /**
48
+ * Consulta CPEs por destino.
49
+ */
50
+ consultarCPEPorDestino(auth: AgroAuth, params: ConsultaCPEPorDestinoParams): Promise<CartaPorteResult[]>;
51
+ /**
52
+ * Consulta el último número de orden utilizado.
53
+ */
54
+ consultarUltNroOrden(auth: AgroAuth, sucursal: number): Promise<number>;
55
+ /**
56
+ * Obtiene la constancia PDF de una CPE en base64.
57
+ */
58
+ consultarConstanciaCPEPDF(auth: AgroAuth, nroCTG: number): Promise<string>;
59
+ /**
60
+ * Verifica el estado de los servidores del WSCPE.
61
+ */
62
+ dummy(): Promise<ServerStatus>;
63
+ }
64
+ //# sourceMappingURL=cpe-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpe-client.d.ts","sourceRoot":"","sources":["../src/cpe-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAmB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4E;gBAEzF,UAAU,EAAE,OAAO,EAAE,IAAI,GAAE,gBAAqB;YAY9C,IAAI;IAYlB,OAAO,CAAC,WAAW;IAgCnB;;OAEG;IACG,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsBhG;;OAEG;IACG,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsBvG;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqB9F;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqB7F;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBnF;;OAEG;IACG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBpG;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAe1F;;OAEG;IACG,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAqB9G;;OAEG;IACG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc7E;;OAEG;IACG,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBhF;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;CAcrC"}