@ramiidv/arca-agro 0.3.0 → 0.5.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 +130 -0
- package/README.md +60 -36
- package/dist/arca-agro.d.ts +7 -13
- package/dist/arca-agro.d.ts.map +1 -1
- package/dist/arca-agro.js +13 -71
- package/dist/arca-agro.js.map +1 -1
- package/dist/constants.d.ts +20 -20
- package/dist/constants.d.ts.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 -10
- package/dist/types.d.ts.map +1 -1
- package/llms.txt +1 -1
- package/package.json +15 -18
package/dist/schema.d.ts
CHANGED
|
@@ -1,90 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
maxLen?: number;
|
|
6
|
-
values?: readonly string[];
|
|
7
|
-
} | {
|
|
8
|
-
kind: 'int';
|
|
9
|
-
min?: number;
|
|
10
|
-
max?: number;
|
|
11
|
-
minExclusive?: boolean;
|
|
12
|
-
} | {
|
|
13
|
-
kind: 'id';
|
|
14
|
-
} | {
|
|
15
|
-
kind: 'dec';
|
|
16
|
-
digits: number;
|
|
17
|
-
min?: number;
|
|
18
|
-
max?: number;
|
|
19
|
-
minExclusive?: boolean;
|
|
20
|
-
} | {
|
|
21
|
-
kind: 'bool';
|
|
22
|
-
} | {
|
|
23
|
-
kind: 'cuit';
|
|
24
|
-
} | {
|
|
25
|
-
kind: 'date';
|
|
26
|
-
} | {
|
|
27
|
-
kind: 'datetime';
|
|
28
|
-
} | {
|
|
29
|
-
kind: 'base64';
|
|
30
|
-
};
|
|
31
|
-
export interface Field {
|
|
32
|
-
readonly scalar?: Scalar;
|
|
33
|
-
readonly schema?: Schema;
|
|
34
|
-
readonly optional?: boolean;
|
|
35
|
-
/** Si está definido, el campo es una lista con este mínimo de elementos. */
|
|
36
|
-
readonly minItems?: number;
|
|
37
|
-
/**
|
|
38
|
-
* Nombre del elemento ítem dentro de un contenedor (ej: `deducciones` →
|
|
39
|
-
* `deduccion[]`). El usuario pasa/recibe directamente el array.
|
|
40
|
-
*/
|
|
41
|
-
readonly wrap?: string;
|
|
42
|
-
/** Solo en respuestas: el elemento es obligatorio (si falta, la respuesta es inválida). */
|
|
43
|
-
readonly required?: boolean;
|
|
44
|
-
}
|
|
45
|
-
export type Schema = {
|
|
46
|
-
readonly [element: string]: Field;
|
|
47
|
-
};
|
|
48
|
-
export declare const str: (o?: {
|
|
49
|
-
minLen?: number;
|
|
50
|
-
maxLen?: number;
|
|
51
|
-
values?: readonly string[];
|
|
52
|
-
}) => Field;
|
|
53
|
-
/** Entero (`xsd:int`/`short`/`long` que entra en un `number`). */
|
|
54
|
-
export declare const int: (min?: number, max?: number, minExclusive?: boolean) => Field;
|
|
55
|
-
/** ID numérico largo (nroCTG, COE): se envía y se devuelve como string de dígitos. */
|
|
56
|
-
export declare const id: () => Field;
|
|
57
|
-
/** `xsd:decimal` con `fractionDigits`: se redondea a `digits` decimales. */
|
|
58
|
-
export declare const dec: (digits: number, min?: number, max?: number, minExclusive?: boolean) => Field;
|
|
59
|
-
export declare const bool: () => Field;
|
|
60
|
-
/** CUIT (11 dígitos con dígito verificador). Se envía normalizado; en respuestas se devuelve como `number`. */
|
|
61
|
-
export declare const cuit: () => Field;
|
|
62
|
-
/** `xsd:date` (`AAAA-MM-DD`). Acepta `Date` o string `AAAAMMDD`/`AAAA-MM-DD`. */
|
|
63
|
-
export declare const date: () => Field;
|
|
64
|
-
/** `xsd:dateTime`. Acepta `Date` (hora de Argentina, -03:00) o string ISO-8601. */
|
|
65
|
-
export declare const datetime: () => Field;
|
|
66
|
-
export declare const base64: () => Field;
|
|
67
|
-
export declare const obj: (schema: Schema) => Field;
|
|
68
|
-
export declare const opt: (f: Field) => Field;
|
|
69
|
-
/** Respuestas: el elemento es obligatorio según el XSD (`minOccurs=1`). */
|
|
70
|
-
export declare const must: (f: Field) => Field;
|
|
71
|
-
export declare const list: (f: Field, minItems?: number) => Field;
|
|
72
|
-
/** Contenedor con ítems repetidos: `<container><item/>...</container>`. */
|
|
73
|
-
export declare const wrapped: (item: string, f: Field, minItems?: number) => Field;
|
|
74
|
-
/**
|
|
75
|
-
* Formatea un `Date` como `xsd:dateTime` en hora de Argentina
|
|
76
|
-
* (`AAAA-MM-DDTHH:mm:ss-03:00`; Argentina no tiene horario de verano desde 2009).
|
|
77
|
-
*/
|
|
78
|
-
export declare function formatDateTimeAR(d: Date): string;
|
|
79
|
-
/**
|
|
80
|
-
* Valida y codifica un request según el schema (orden XSD).
|
|
81
|
-
* @throws ArcaValidationError con todos los campos inválidos.
|
|
82
|
-
*/
|
|
83
|
-
export declare function encodeRequest(input: unknown, schema: Schema, context: string, extraCheck?: (input: Record<string, unknown>, errors: ValidationErrorDetail[]) => void): Record<string, unknown>;
|
|
84
|
-
/**
|
|
85
|
-
* Decodifica un nodo de respuesta según el schema. Los campos que no están en
|
|
86
|
-
* el schema se ignoran; las listas ausentes se devuelven como `[]`.
|
|
87
|
-
*/
|
|
1
|
+
import type { Schema } from '@ramiidv/arca-common/schema';
|
|
2
|
+
export { base64, bool, cuit, date, datetime, dec, encodeRequest, formatDateTimeAR, id, int, list, must, obj, opt, str, wrapped, } from '@ramiidv/arca-common/schema';
|
|
3
|
+
export type { Field, Schema } from '@ramiidv/arca-common/schema';
|
|
4
|
+
/** `decodeResponse` de common que lanza `ArcaAgroResponseError`. */
|
|
88
5
|
export declare function decodeResponse<T>(node: unknown, schema: Schema, path: string): T;
|
|
89
|
-
export {};
|
|
90
6
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAG1D,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;AACrC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAIjE,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAEhF"}
|
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;
|
|
@@ -23,12 +23,6 @@ export interface CodigoDescripcion {
|
|
|
23
23
|
codigo: string;
|
|
24
24
|
descripcion: string;
|
|
25
25
|
}
|
|
26
|
-
/**
|
|
27
|
-
export type AgroServiceStatus =
|
|
28
|
-
ok: true;
|
|
29
|
-
status: ServerStatus;
|
|
30
|
-
} | {
|
|
31
|
-
ok: false;
|
|
32
|
-
error: Error;
|
|
33
|
-
};
|
|
26
|
+
/** Estado de un servicio en `status()` (`ServiceStatus` de arca-common). */
|
|
27
|
+
export type AgroServiceStatus = ServiceStatus;
|
|
34
28
|
//# 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,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).
|
|
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.5.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.6.0"
|
|
69
66
|
}
|
|
70
67
|
}
|