@ramiidv/arca-agro 0.3.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 +60 -36
- package/dist/arca-agro.d.ts +11 -12
- package/dist/arca-agro.d.ts.map +1 -1
- package/dist/arca-agro.js +16 -70
- package/dist/arca-agro.js.map +1 -1
- package/dist/context.d.ts +5 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/cpe-client.d.ts +2 -1
- package/dist/cpe-client.d.ts.map +1 -1
- package/dist/cpe-client.js +9 -8
- package/dist/cpe-client.js.map +1 -1
- package/dist/cpe-schemas.d.ts +0 -2
- package/dist/cpe-schemas.d.ts.map +1 -1
- package/dist/cpe-schemas.js +0 -2
- package/dist/cpe-schemas.js.map +1 -1
- package/dist/errors.d.ts +2 -7
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -9
- package/dist/errors.js.map +1 -1
- package/dist/lpg-client.d.ts +2 -1
- package/dist/lpg-client.d.ts.map +1 -1
- package/dist/lpg-client.js +7 -7
- package/dist/lpg-client.js.map +1 -1
- package/dist/lpg-schemas.d.ts +0 -2
- package/dist/lpg-schemas.d.ts.map +1 -1
- package/dist/lpg-schemas.js +1 -2
- package/dist/lpg-schemas.js.map +1 -1
- package/dist/schema.d.ts +4 -88
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +7 -293
- package/dist/schema.js.map +1 -1
- package/dist/types.d.ts +4 -9
- package/dist/types.d.ts.map +1 -1
- package/llms.txt +1 -1
- package/package.json +15 -18
package/dist/schema.js
CHANGED
|
@@ -1,301 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Un `Schema` lista los elementos de una `xsd:sequence` en el orden del XSD.
|
|
5
|
-
* Con el mismo schema se:
|
|
6
|
-
* - codifica un request (`encodeRequest`): orden XSD, campos obligatorios,
|
|
7
|
-
* rangos, largos, CUIT con dígito verificador, decimales redondeados según
|
|
8
|
-
* `fractionDigits`, fechas `xsd:date`/`xsd:dateTime`;
|
|
9
|
-
* - decodifica una respuesta (`decodeResponse`): `xs:string` → `string`, IDs
|
|
10
|
-
* largos (CTG/COE) → `string`, números → `number`, arrays de un solo
|
|
11
|
-
* elemento → array.
|
|
2
|
+
* Schemas de WSCPE/WSLPG: el DSL de `@ramiidv/arca-common/schema`, con las
|
|
3
|
+
* respuestas inválidas reportadas como `ArcaAgroResponseError`.
|
|
12
4
|
*
|
|
13
5
|
* @internal No se exporta desde `index.ts`.
|
|
14
6
|
*/
|
|
15
|
-
import {
|
|
7
|
+
import { decodeResponse as decode } from '@ramiidv/arca-common/schema';
|
|
16
8
|
import { ArcaAgroResponseError } from './errors.js';
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export const str = (o = {}) => ({
|
|
21
|
-
scalar: { kind: 'str', ...o },
|
|
22
|
-
});
|
|
23
|
-
/** Entero (`xsd:int`/`short`/`long` que entra en un `number`). */
|
|
24
|
-
export const int = (min, max, minExclusive = false) => ({
|
|
25
|
-
scalar: { kind: 'int', min, max, minExclusive },
|
|
26
|
-
});
|
|
27
|
-
/** ID numérico largo (nroCTG, COE): se envía y se devuelve como string de dígitos. */
|
|
28
|
-
export const id = () => ({ scalar: { kind: 'id' } });
|
|
29
|
-
/** `xsd:decimal` con `fractionDigits`: se redondea a `digits` decimales. */
|
|
30
|
-
export const dec = (digits, min, max, minExclusive = false) => ({
|
|
31
|
-
scalar: { kind: 'dec', digits, min, max, minExclusive },
|
|
32
|
-
});
|
|
33
|
-
export const bool = () => ({ scalar: { kind: 'bool' } });
|
|
34
|
-
/** CUIT (11 dígitos con dígito verificador). Se envía normalizado; en respuestas se devuelve como `number`. */
|
|
35
|
-
export const cuit = () => ({ scalar: { kind: 'cuit' } });
|
|
36
|
-
/** `xsd:date` (`AAAA-MM-DD`). Acepta `Date` o string `AAAAMMDD`/`AAAA-MM-DD`. */
|
|
37
|
-
export const date = () => ({ scalar: { kind: 'date' } });
|
|
38
|
-
/** `xsd:dateTime`. Acepta `Date` (hora de Argentina, -03:00) o string ISO-8601. */
|
|
39
|
-
export const datetime = () => ({ scalar: { kind: 'datetime' } });
|
|
40
|
-
export const base64 = () => ({ scalar: { kind: 'base64' } });
|
|
41
|
-
export const obj = (schema) => ({ schema });
|
|
42
|
-
export const opt = (f) => ({ ...f, optional: true });
|
|
43
|
-
/** Respuestas: el elemento es obligatorio según el XSD (`minOccurs=1`). */
|
|
44
|
-
export const must = (f) => ({ ...f, required: true });
|
|
45
|
-
export const list = (f, minItems = 1) => ({ ...f, minItems });
|
|
46
|
-
/** Contenedor con ítems repetidos: `<container><item/>...</container>`. */
|
|
47
|
-
export const wrapped = (item, f, minItems = 1) => ({ ...f, minItems, wrap: item });
|
|
48
|
-
// ---------------------------------------------------------------------------
|
|
49
|
-
// Encode (requests)
|
|
50
|
-
// ---------------------------------------------------------------------------
|
|
51
|
-
const AR_TIMEZONE = 'America/Argentina/Buenos_Aires';
|
|
52
|
-
let arDateTimeFormatter;
|
|
53
|
-
/**
|
|
54
|
-
* Formatea un `Date` como `xsd:dateTime` en hora de Argentina
|
|
55
|
-
* (`AAAA-MM-DDTHH:mm:ss-03:00`; Argentina no tiene horario de verano desde 2009).
|
|
56
|
-
*/
|
|
57
|
-
export function formatDateTimeAR(d) {
|
|
58
|
-
arDateTimeFormatter ??= new Intl.DateTimeFormat('en-US', {
|
|
59
|
-
timeZone: AR_TIMEZONE,
|
|
60
|
-
year: 'numeric',
|
|
61
|
-
month: '2-digit',
|
|
62
|
-
day: '2-digit',
|
|
63
|
-
hour: '2-digit',
|
|
64
|
-
minute: '2-digit',
|
|
65
|
-
second: '2-digit',
|
|
66
|
-
hourCycle: 'h23',
|
|
67
|
-
});
|
|
68
|
-
const parts = arDateTimeFormatter.formatToParts(d);
|
|
69
|
-
const p = (t) => parts.find((x) => x.type === t)?.value ?? '00';
|
|
70
|
-
return `${p('year')}-${p('month')}-${p('day')}T${p('hour')}:${p('minute')}:${p('second')}-03:00`;
|
|
71
|
-
}
|
|
72
|
-
const DATETIME_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|[+-]\d{2}:\d{2})?$/;
|
|
73
|
-
function isPlainObject(v) {
|
|
74
|
-
return v !== null && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date);
|
|
75
|
-
}
|
|
76
|
-
function encodeScalar(v, s, path, errors) {
|
|
77
|
-
const fail = (message) => {
|
|
78
|
-
errors.push({ field: path, message: `${path}: ${message}`, value: v });
|
|
79
|
-
return undefined;
|
|
80
|
-
};
|
|
81
|
-
const checkRange = (n, min, max, minExclusive) => {
|
|
82
|
-
if (min !== undefined && (minExclusive ? n <= min : n < min))
|
|
83
|
-
return fail(`debe ser ${minExclusive ? 'mayor a' : 'mayor o igual a'} ${min}`);
|
|
84
|
-
if (max !== undefined && n > max)
|
|
85
|
-
return fail(`debe ser menor o igual a ${max}`);
|
|
86
|
-
return n;
|
|
87
|
-
};
|
|
88
|
-
switch (s.kind) {
|
|
89
|
-
case 'str': {
|
|
90
|
-
if (typeof v !== 'string')
|
|
91
|
-
return fail('debe ser un string');
|
|
92
|
-
if (s.values && !s.values.includes(v))
|
|
93
|
-
return fail(`valores permitidos: ${s.values.join(', ')}`);
|
|
94
|
-
if (s.minLen !== undefined && v.length < s.minLen)
|
|
95
|
-
return fail(`debe tener al menos ${s.minLen} caracteres`);
|
|
96
|
-
if (s.maxLen !== undefined && v.length > s.maxLen)
|
|
97
|
-
return fail(`debe tener como máximo ${s.maxLen} caracteres`);
|
|
98
|
-
return v;
|
|
99
|
-
}
|
|
100
|
-
case 'int': {
|
|
101
|
-
if (typeof v !== 'number' || !Number.isSafeInteger(v))
|
|
102
|
-
return fail('debe ser un número entero');
|
|
103
|
-
return checkRange(v, s.min, s.max, s.minExclusive);
|
|
104
|
-
}
|
|
105
|
-
case 'id': {
|
|
106
|
-
const str = typeof v === 'number' && Number.isSafeInteger(v) ? String(v) : v;
|
|
107
|
-
if (typeof str !== 'string' || !/^\d{1,18}$/.test(str) || /^0+$/.test(str))
|
|
108
|
-
return fail('debe ser un número positivo (string o number)');
|
|
109
|
-
return str;
|
|
110
|
-
}
|
|
111
|
-
case 'dec': {
|
|
112
|
-
if (typeof v !== 'number' || !Number.isFinite(v))
|
|
113
|
-
return fail('debe ser un número finito');
|
|
114
|
-
const factor = 10 ** s.digits;
|
|
115
|
-
const rounded = Math.round((v + Math.sign(v) * Number.EPSILON) * factor) / factor;
|
|
116
|
-
if (checkRange(rounded, s.min, s.max, s.minExclusive) === undefined)
|
|
117
|
-
return undefined;
|
|
118
|
-
return rounded.toFixed(s.digits);
|
|
119
|
-
}
|
|
120
|
-
case 'bool':
|
|
121
|
-
if (typeof v !== 'boolean')
|
|
122
|
-
return fail('debe ser boolean');
|
|
123
|
-
return v ? 'true' : 'false';
|
|
124
|
-
case 'cuit':
|
|
125
|
-
try {
|
|
126
|
-
return validateCuit(v);
|
|
127
|
-
}
|
|
128
|
-
catch (e) {
|
|
129
|
-
if (e instanceof ArcaValidationError)
|
|
130
|
-
return fail(e.details[0]?.message ?? 'CUIT inválido');
|
|
131
|
-
throw e;
|
|
132
|
-
}
|
|
133
|
-
case 'date':
|
|
134
|
-
try {
|
|
135
|
-
const f = formatDate(v);
|
|
136
|
-
return `${f.slice(0, 4)}-${f.slice(4, 6)}-${f.slice(6, 8)}`;
|
|
137
|
-
}
|
|
138
|
-
catch (e) {
|
|
139
|
-
if (e instanceof ArcaValidationError)
|
|
140
|
-
return fail('fecha inválida (Date, AAAAMMDD o AAAA-MM-DD)');
|
|
141
|
-
throw e;
|
|
142
|
-
}
|
|
143
|
-
case 'datetime':
|
|
144
|
-
if (v instanceof Date) {
|
|
145
|
-
if (Number.isNaN(v.getTime()))
|
|
146
|
-
return fail('fecha/hora inválida');
|
|
147
|
-
return formatDateTimeAR(v);
|
|
148
|
-
}
|
|
149
|
-
if (typeof v !== 'string' || !DATETIME_RE.test(v) || Number.isNaN(Date.parse(v))) {
|
|
150
|
-
return fail('fecha/hora inválida (Date o ISO-8601, ej: 2026-11-01T08:30:00-03:00)');
|
|
151
|
-
}
|
|
152
|
-
return v;
|
|
153
|
-
case 'base64':
|
|
154
|
-
if (typeof v !== 'string')
|
|
155
|
-
return fail('debe ser un string base64');
|
|
156
|
-
return v;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
function encodeValue(v, f, path, errors) {
|
|
160
|
-
if (f.schema)
|
|
161
|
-
return encodeObject(v, f.schema, path, errors);
|
|
162
|
-
return encodeScalar(v, f.scalar, path, errors);
|
|
163
|
-
}
|
|
164
|
-
function encodeObject(input, schema, path, errors) {
|
|
165
|
-
const out = {};
|
|
166
|
-
if (!isPlainObject(input)) {
|
|
167
|
-
errors.push({ field: path || '(raíz)', message: `${path || 'el request'} debe ser un objeto`, value: input });
|
|
168
|
-
return out;
|
|
169
|
-
}
|
|
170
|
-
for (const key of Object.keys(input)) {
|
|
171
|
-
if (!Object.hasOwn(schema, key) && input[key] !== undefined) {
|
|
172
|
-
const p = path ? `${path}.${key}` : key;
|
|
173
|
-
errors.push({ field: p, message: `${p}: campo desconocido (no existe en el XSD)`, value: input[key] });
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
for (const [key, f] of Object.entries(schema)) {
|
|
177
|
-
const p = path ? `${path}.${key}` : key;
|
|
178
|
-
const v = input[key];
|
|
179
|
-
if (v === undefined || v === null) {
|
|
180
|
-
if (!f.optional)
|
|
181
|
-
errors.push({ field: p, message: `${p} es requerido`, value: v });
|
|
182
|
-
continue;
|
|
183
|
-
}
|
|
184
|
-
if (f.minItems !== undefined) {
|
|
185
|
-
if (!Array.isArray(v)) {
|
|
186
|
-
errors.push({ field: p, message: `${p} debe ser un array`, value: v });
|
|
187
|
-
continue;
|
|
188
|
-
}
|
|
189
|
-
if (v.length < f.minItems) {
|
|
190
|
-
errors.push({ field: p, message: `${p} debe tener al menos ${f.minItems} elemento(s)`, value: v });
|
|
191
|
-
continue;
|
|
192
|
-
}
|
|
193
|
-
if (v.length === 0)
|
|
194
|
-
continue;
|
|
195
|
-
const items = v.map((item, i) => encodeValue(item, f, `${p}[${i}]`, errors));
|
|
196
|
-
out[key] = f.wrap ? { [f.wrap]: items } : items;
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
out[key] = encodeValue(v, f, p, errors);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
return out;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Valida y codifica un request según el schema (orden XSD).
|
|
206
|
-
* @throws ArcaValidationError con todos los campos inválidos.
|
|
207
|
-
*/
|
|
208
|
-
export function encodeRequest(input, schema, context, extraCheck) {
|
|
209
|
-
const errors = [];
|
|
210
|
-
const out = encodeObject(input, schema, '', errors);
|
|
211
|
-
if (extraCheck && isPlainObject(input))
|
|
212
|
-
extraCheck(input, errors);
|
|
213
|
-
if (errors.length > 0) {
|
|
214
|
-
throw new ArcaValidationError(`Validación de ${context} fallida: ${errors.map((e) => e.message).join('; ')}`, errors, errors[0].field);
|
|
215
|
-
}
|
|
216
|
-
return out;
|
|
217
|
-
}
|
|
218
|
-
// ---------------------------------------------------------------------------
|
|
219
|
-
// Decode (respuestas)
|
|
220
|
-
// ---------------------------------------------------------------------------
|
|
221
|
-
function textValue(v) {
|
|
222
|
-
if (isPlainObject(v) && Object.hasOwn(v, '#text'))
|
|
223
|
-
return v['#text'];
|
|
224
|
-
return v;
|
|
225
|
-
}
|
|
226
|
-
function decodeScalar(raw, s, path) {
|
|
227
|
-
const v = textValue(raw);
|
|
228
|
-
if (v === undefined || v === null)
|
|
229
|
-
return undefined;
|
|
230
|
-
if (typeof v === 'object')
|
|
231
|
-
throw new ArcaAgroResponseError(`Respuesta inválida: ${path} no es un valor simple`);
|
|
232
|
-
switch (s.kind) {
|
|
233
|
-
case 'str':
|
|
234
|
-
case 'id':
|
|
235
|
-
case 'date':
|
|
236
|
-
case 'datetime':
|
|
237
|
-
case 'base64':
|
|
238
|
-
return String(v);
|
|
239
|
-
case 'int':
|
|
240
|
-
case 'dec':
|
|
241
|
-
case 'cuit': {
|
|
242
|
-
if (v === '')
|
|
243
|
-
return undefined;
|
|
244
|
-
const n = Number(v);
|
|
245
|
-
if (!Number.isFinite(n))
|
|
246
|
-
throw new ArcaAgroResponseError(`Respuesta inválida: ${path} no es numérico (${String(v)})`);
|
|
247
|
-
return n;
|
|
248
|
-
}
|
|
249
|
-
case 'bool':
|
|
250
|
-
if (v === true || v === 'true' || v === 1 || v === '1')
|
|
251
|
-
return true;
|
|
252
|
-
if (v === false || v === 'false' || v === 0 || v === '0')
|
|
253
|
-
return false;
|
|
254
|
-
if (v === '')
|
|
255
|
-
return undefined;
|
|
256
|
-
throw new ArcaAgroResponseError(`Respuesta inválida: ${path} no es boolean (${String(v)})`);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
function decodeValue(v, f, path) {
|
|
260
|
-
if (f.schema)
|
|
261
|
-
return decodeNode(v, f.schema, path);
|
|
262
|
-
return decodeScalar(v, f.scalar, path);
|
|
263
|
-
}
|
|
264
|
-
function decodeNode(node, schema, path) {
|
|
265
|
-
if (node === undefined || node === null || node === '')
|
|
266
|
-
return {};
|
|
267
|
-
if (!isPlainObject(node))
|
|
268
|
-
throw new ArcaAgroResponseError(`Respuesta inválida: ${path} no es un elemento complejo`);
|
|
269
|
-
const out = {};
|
|
270
|
-
for (const [key, f] of Object.entries(schema)) {
|
|
271
|
-
const p = `${path}.${key}`;
|
|
272
|
-
let v = node[key];
|
|
273
|
-
if (f.minItems !== undefined) {
|
|
274
|
-
if (f.wrap)
|
|
275
|
-
v = isPlainObject(v) ? v[f.wrap] : undefined;
|
|
276
|
-
out[key] = ensureArray(v).map((item, i) => decodeValue(item, f, `${p}[${i}]`));
|
|
277
|
-
continue;
|
|
278
|
-
}
|
|
279
|
-
if (v === undefined || v === null) {
|
|
280
|
-
if (f.required)
|
|
281
|
-
throw new ArcaAgroResponseError(`Respuesta inválida: falta ${p}`);
|
|
282
|
-
continue;
|
|
283
|
-
}
|
|
284
|
-
if (Array.isArray(v))
|
|
285
|
-
throw new ArcaAgroResponseError(`Respuesta inválida: ${p} aparece más de una vez`);
|
|
286
|
-
const decoded = decodeValue(v, f, p);
|
|
287
|
-
if (decoded !== undefined)
|
|
288
|
-
out[key] = decoded;
|
|
289
|
-
else if (f.required)
|
|
290
|
-
throw new ArcaAgroResponseError(`Respuesta inválida: ${p} vacío`);
|
|
291
|
-
}
|
|
292
|
-
return out;
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Decodifica un nodo de respuesta según el schema. Los campos que no están en
|
|
296
|
-
* el schema se ignoran; las listas ausentes se devuelven como `[]`.
|
|
297
|
-
*/
|
|
9
|
+
export { base64, bool, cuit, date, datetime, dec, encodeRequest, formatDateTimeAR, id, int, list, must, obj, opt, str, wrapped, } from '@ramiidv/arca-common/schema';
|
|
10
|
+
const responseError = (message) => new ArcaAgroResponseError(message);
|
|
11
|
+
/** `decodeResponse` de common que lanza `ArcaAgroResponseError`. */
|
|
298
12
|
export function decodeResponse(node, schema, path) {
|
|
299
|
-
return
|
|
13
|
+
return decode(node, schema, path, { error: responseError });
|
|
300
14
|
}
|
|
301
15
|
//# sourceMappingURL=schema.js.map
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,IAAI,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EACL,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,gBAAgB,EAChB,EAAE,EACF,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,GAAG,EACH,GAAG,EACH,OAAO,GACR,MAAM,6BAA6B,CAAC;AAGrC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAE9E,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAI,IAAa,EAAE,MAAc,EAAE,IAAY;IAC3E,OAAO,MAAM,CAAI,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ArcaSdkConfig, ServiceStatus } from '@ramiidv/arca-common';
|
|
2
2
|
export type { AccessTicket, ArcaEvent, CallOptions, ServerStatus, TicketStorage } from '@ramiidv/arca-common';
|
|
3
3
|
/** Configuración de `ArcaAgro`. */
|
|
4
|
-
export interface ArcaAgroConfig extends
|
|
4
|
+
export interface ArcaAgroConfig extends ArcaSdkConfig {
|
|
5
5
|
/** Endpoints propios (ej: un proxy). Si no se indican, se usan los oficiales según `production`. */
|
|
6
6
|
endpoints?: {
|
|
7
7
|
cpe?: string;
|
|
@@ -24,11 +24,6 @@ export interface CodigoDescripcion {
|
|
|
24
24
|
descripcion: string;
|
|
25
25
|
}
|
|
26
26
|
/** Resultado de `serverStatus()` para un servicio. */
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
status: ServerStatus;
|
|
30
|
-
} | {
|
|
31
|
-
ok: false;
|
|
32
|
-
error: Error;
|
|
33
|
-
};
|
|
27
|
+
/** Estado de un servicio en `status()` (`ServiceStatus` de arca-common). */
|
|
28
|
+
export type AgroServiceStatus = ServiceStatus;
|
|
34
29
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGzE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM9G,mCAAmC;AACnC,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,oGAAoG;IACpG,SAAS,CAAC,EAAE;QACV,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAMD,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,6FAA6F;AAC7F,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,MAAM,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,MAAM,CAAC;AAE3C,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,sDAAsD;AACtD,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC"}
|
package/llms.txt
CHANGED
|
@@ -38,7 +38,7 @@ cuit (number|string, validated with check digit), cert, key, production=false, t
|
|
|
38
38
|
## ArcaAgro
|
|
39
39
|
|
|
40
40
|
- `cpe: CpeClient`, `lpg: LpgClient`
|
|
41
|
-
- `
|
|
41
|
+
- `status(opts?)` → `{ cpe: AgroServiceStatus, lpg: AgroServiceStatus }` where `AgroServiceStatus = { ok: true, status: ServerStatus } | { ok: false, error: Error }` (Promise.allSettled). `serverStatus()` is a @deprecated alias.
|
|
42
42
|
- `clearAuthCache(): Promise<void>`
|
|
43
43
|
- `on(type, handler)`, `off(type, handler)`
|
|
44
44
|
|
package/package.json
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ramiidv/arca-agro",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "SDK para servicios agropecuarios de ARCA (ex AFIP) - WSCPE (Carta de Porte Electrónica) y WSLPG (Liquidación Primaria de Granos)",
|
|
5
5
|
"author": "ramiidv",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
8
|
-
"main": "dist/index.js",
|
|
9
|
-
"types": "dist/index.d.ts",
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
10
|
"exports": {
|
|
11
11
|
".": {
|
|
12
12
|
"types": "./dist/index.d.ts",
|
|
13
|
-
"import": "./dist/index.js",
|
|
14
13
|
"default": "./dist/index.js"
|
|
15
|
-
}
|
|
14
|
+
},
|
|
15
|
+
"./package.json": "./package.json"
|
|
16
16
|
},
|
|
17
17
|
"sideEffects": false,
|
|
18
18
|
"files": [
|
|
19
19
|
"dist",
|
|
20
20
|
"README.md",
|
|
21
21
|
"LICENSE",
|
|
22
|
+
"CHANGELOG.md",
|
|
22
23
|
"llms.txt"
|
|
23
24
|
],
|
|
24
25
|
"scripts": {
|
|
25
|
-
"build": "tsc",
|
|
26
|
+
"build": "tsc -p tsconfig.build.json",
|
|
26
27
|
"clean": "rm -rf dist",
|
|
27
|
-
"dev": "tsc --watch",
|
|
28
28
|
"typecheck": "tsc --noEmit",
|
|
29
29
|
"test": "vitest run",
|
|
30
30
|
"test:watch": "vitest",
|
|
31
|
-
"
|
|
31
|
+
"lint:pkg": "publint --strict && attw --pack . --profile esm-only"
|
|
32
32
|
},
|
|
33
33
|
"keywords": [
|
|
34
34
|
"arca",
|
|
@@ -47,24 +47,21 @@
|
|
|
47
47
|
],
|
|
48
48
|
"repository": {
|
|
49
49
|
"type": "git",
|
|
50
|
-
"url": "git+https://github.com/ramiidv/arca-
|
|
50
|
+
"url": "git+https://github.com/ramiidv/arca-sdks.git",
|
|
51
|
+
"directory": "packages/agro"
|
|
51
52
|
},
|
|
52
53
|
"homepage": "https://arca-sdk.dev/agro",
|
|
53
54
|
"bugs": {
|
|
54
|
-
"url": "https://github.com/ramiidv/arca-
|
|
55
|
+
"url": "https://github.com/ramiidv/arca-sdks/issues"
|
|
55
56
|
},
|
|
56
57
|
"publishConfig": {
|
|
57
|
-
"access": "public"
|
|
58
|
+
"access": "public",
|
|
59
|
+
"provenance": true
|
|
58
60
|
},
|
|
59
61
|
"engines": {
|
|
60
|
-
"node": ">=
|
|
62
|
+
"node": ">=20.19.0"
|
|
61
63
|
},
|
|
62
64
|
"dependencies": {
|
|
63
|
-
"@ramiidv/arca-common": "^0.
|
|
64
|
-
},
|
|
65
|
-
"devDependencies": {
|
|
66
|
-
"@types/node": "^22.0.0",
|
|
67
|
-
"typescript": "^5.7.0",
|
|
68
|
-
"vitest": "^3.1.0"
|
|
65
|
+
"@ramiidv/arca-common": "^0.5.0"
|
|
69
66
|
}
|
|
70
67
|
}
|