@ramiidv/arca-mtxca 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +129 -0
- package/README.md +175 -318
- package/dist/arca-mtxca.d.ts +81 -78
- package/dist/arca-mtxca.d.ts.map +1 -1
- package/dist/arca-mtxca.js +174 -153
- package/dist/arca-mtxca.js.map +1 -1
- package/dist/constants.d.ts +37 -21
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +49 -22
- package/dist/constants.js.map +1 -1
- package/dist/format.d.ts +10 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +22 -0
- package/dist/format.js.map +1 -0
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -10
- package/dist/index.js.map +1 -1
- package/dist/mtxca-client.d.ts +94 -33
- package/dist/mtxca-client.d.ts.map +1 -1
- package/dist/mtxca-client.js +307 -332
- package/dist/mtxca-client.js.map +1 -1
- package/dist/schemas.d.ts +104 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +285 -0
- package/dist/schemas.js.map +1 -0
- package/dist/serialize.d.ts +26 -0
- package/dist/serialize.d.ts.map +1 -0
- package/dist/serialize.js +116 -0
- package/dist/serialize.js.map +1 -0
- package/dist/types.d.ts +328 -174
- package/dist/types.d.ts.map +1 -1
- package/dist/validation.d.ts +21 -7
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +301 -83
- package/dist/validation.js.map +1 -1
- package/llms.txt +82 -159
- package/package.json +19 -20
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- bed68e8: Paquetes solo ESM y Node >= 20.19. `arca-common`, `arca-facturacion` y
|
|
8
|
+
`arca-padron` dejan de publicar un build CommonJS: desde CommonJS se cargan con
|
|
9
|
+
`require()` (require(esm), Node >= 20.19 / 22.12). Todos los paquetes pasan a
|
|
10
|
+
requerir Node >= 20.19.0 (Node 18 y 20 sin soporte). El código vive ahora en el
|
|
11
|
+
monorepo `arca-sdks`.
|
|
12
|
+
- f8bd053: Las clases principales extienden `ArcaSdkBase` de arca-common, así que todos
|
|
13
|
+
los SDKs tienen la misma base: `wsaa`, `cuit`, `production`, `on()`/`off()`,
|
|
14
|
+
`clearAuthCache()`, `config.wsaa` (WsaaClient compartido) y `config.signal`
|
|
15
|
+
(signal global). arca-mtxca acepta `endpoints: { mtxca, wsaa }` (`endpoint` y
|
|
16
|
+
`wsaaEndpoint` quedan deprecados). Los `dummy`/`status` validan la respuesta con
|
|
17
|
+
`parseServerStatus`: si falta un campo lanzan `ArcaSoapError`.
|
|
18
|
+
- c9f1444: Requests y respuestas se validan, serializan y decodifican con el DSL de
|
|
19
|
+
`@ramiidv/arca-common/schema`, transcripto del XSD oficial de cada servicio.
|
|
20
|
+
|
|
21
|
+
- Corrección: las respuestas se parsean sin conversión numérica, así que los
|
|
22
|
+
`xs:string` con contenido numérico ya no pierden ceros a la izquierda ni
|
|
23
|
+
decimales (ej: `"0012"`, `"1.50"`, `DocNro`, `codigoSeguridad`).
|
|
24
|
+
- Los campos desconocidos en el input se rechazan con `ArcaValidationError`
|
|
25
|
+
(antes se ignoraban).
|
|
26
|
+
- Todos los errores de validación se informan juntos (`details`), con mensajes
|
|
27
|
+
del tipo `campo: motivo`. Cambió el texto de los mensajes.
|
|
28
|
+
- arca-fecred deja de recortar espacios de los textos y envía `codCtaCte` tal
|
|
29
|
+
cual; porcentaje y cotización se envían con decimales fijos.
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- fd438bc: `@ramiidv/arca-common/testing` exporta `loadXsdTypes` y `checkSchemaAgainstXsd`
|
|
34
|
+
para comparar los schemas del DSL con el XSD de un WSDL oficial. Todos los
|
|
35
|
+
schemas de agro, cdc, fecred, mtxca, padron y sire se verifican contra los WSDL
|
|
36
|
+
de producción. arca-mtxca: los renombres API ↔ XML usan `xml()` del DSL y un
|
|
37
|
+
error en `actividades` se reporta en `actividades[i].codigo`.
|
|
38
|
+
- 20ecf7d: DSL de schemas, segunda versión:
|
|
39
|
+
|
|
40
|
+
- Corrección: `dec()` redondea sobre el valor decimal escrito (`8.575` →
|
|
41
|
+
`8.58`; antes daba `8.57` por la representación binaria). Afecta los importes
|
|
42
|
+
que los SDKs envían redondeados.
|
|
43
|
+
- `must()` rechaza también el valor vacío; los elementos `xsi:nil` cuentan
|
|
44
|
+
como ausentes (en una lista, como lista vacía); `must()` en listas exige el
|
|
45
|
+
elemento; un objeto opcional vacío se omite y uno obligatorio valida sus hijos.
|
|
46
|
+
- Al decodificar se validan enteros (`int()`) y valores permitidos
|
|
47
|
+
(`str({ values })`).
|
|
48
|
+
- Nuevos: `siNo()` (S/N ↔ boolean), `double()`, `xml(nombre, campo)` (nombre
|
|
49
|
+
distinto en el XML), `custom(encode, decode)`, `roundHalfUp()` y
|
|
50
|
+
`decodeResponse(..., { emptyLists: 'omit' })`.
|
|
51
|
+
- Updated dependencies [8c02c30]
|
|
52
|
+
- Updated dependencies [f8bd053]
|
|
53
|
+
- Updated dependencies [242fb5f]
|
|
54
|
+
- Updated dependencies [fd438bc]
|
|
55
|
+
- Updated dependencies [bed68e8]
|
|
56
|
+
- Updated dependencies [20ecf7d]
|
|
57
|
+
- Updated dependencies [b86db00]
|
|
58
|
+
- @ramiidv/arca-common@0.5.0
|
|
59
|
+
|
|
60
|
+
## 0.3.0 (2026-11-01)
|
|
61
|
+
|
|
62
|
+
Revisión completa contra el WSDL de WSMTXCA y el manual del desarrollador (v0.25.8). Las versiones anteriores no podían autorizar comprobantes: el request no cumplía el XSD.
|
|
63
|
+
|
|
64
|
+
### Breaking
|
|
65
|
+
|
|
66
|
+
- Requiere `@ramiidv/arca-common` ^0.4.0.
|
|
67
|
+
- `autorizar()` recibe el `ComprobanteType` con los nombres del XSD (`codigoTipoComprobante`, `numeroPuntoVenta`, `codigoConcepto`, `codigoTipoDocumento`, `numeroDocumento`, `fechaEmision`, `importeSubtotal`, `codigoMoneda`, `fechaServicioDesde/Hasta`, `fechaVencimientoPago`, `comprobantesAsociados`, ...) en lugar de `{ ptoVta, cbteTipo, invoice }`. `importeSubtotal` y `codigoMoneda` son obligatorios.
|
|
68
|
+
- Ítems: `unidadMedida` → `codigoUnidadMedida`; `cantidad`, `precioUnitario` e `importeIVA` pasan a ser opcionales según las reglas del manual; se agregan `unidadesMtx` y `codigoMtx`.
|
|
69
|
+
- `SubtotalIVA` ya no tiene `baseImponible`; `MtxcaTributo` → `MtxcaOtroTributo` (`codigo`, sin `alicuota`).
|
|
70
|
+
- `autorizar()` devuelve `MtxcaAutorizarResult`: `resultado` `'A' | 'O' | 'R'` y, si no es `R`, `comprobante` con `cae` y `fechaVencimientoCAE`.
|
|
71
|
+
- `consultarComprobante()` devuelve `{ comprobante, observaciones, evento }` con el `ComprobanteType` completo, y lanza `ArcaServiceError` si el comprobante no existe.
|
|
72
|
+
- Las consultas lanzan `ArcaServiceError` ante `arrayErrores` (antes devolvían 0, objetos de ceros o listas vacías).
|
|
73
|
+
- Parámetros: devuelven `{ codigo, descripcion }` (antes `{ Id, Desc, FchDesde, FchHasta }`, campos que no existen en WSMTXCA). Puntos de venta: `{ numeroPuntoVenta, bloqueado, fechaBaja? }`.
|
|
74
|
+
- `getCotizacionMoneda(codigo, fecha?)` devuelve `{ codigoMoneda, fechaCotizacion, cotizacion: number | null }`.
|
|
75
|
+
- `MtxcaClient` recibe `endpoint` (en lugar de `production`) y `MtxcaAuth` es `{ token, sign, cuitRepresentada }`.
|
|
76
|
+
- `ArcaMtxcaConfig` extiende `ArcaBaseConfig`; `cuit` acepta string y se valida el dígito verificador.
|
|
77
|
+
- `clearAuthCache()` es async.
|
|
78
|
+
- `CbteTipo`: 51–53 se renombran a `*_A_SUJETA_RETENCION` (no son clase M). `CodigoCondicionIVA`: se quitan 7, 8 y 9 (no figuran en el manual de WSMTXCA). `Moneda`: solo `PES`, `DOL` y `060`; el resto, con `getMonedas()`.
|
|
79
|
+
- `validateAutorizarRequest`/`validateMtxcaItem` → `validateComprobanteCAE`/`validateComprobanteCAEA`.
|
|
80
|
+
|
|
81
|
+
### Features
|
|
82
|
+
|
|
83
|
+
- Numeración automática real en `autorizar()` (último autorizado + 1; el error 1502 "sin comprobantes" cuenta como 0) y número explícito opcional.
|
|
84
|
+
- `condicionIVAReceptor` (RG 5616) y `getCondicionesIVAReceptor()`.
|
|
85
|
+
- CAEA: `solicitarCAEA`, `consultarCAEA`, `consultarCAEAEntreFechas`, `informarComprobanteCAEA`, `informarAjusteIVACAEA`, `informarCAEANoUtilizado`, `informarCAEANoUtilizadoPtoVta`, `consultarPtosVtaCAEANoInformados`.
|
|
86
|
+
- `autorizarAjusteIVA`, `getTiposTributo`, `getTiposDatosAdicionales`, `getActividadesVigentes`.
|
|
87
|
+
- Campos del XSD que faltaban: `cancelaEnMismaMonedaExtranjera`, `periodoComprobantesAsociados`, `datosAdicionales`, `compradores`, `actividades`.
|
|
88
|
+
- Validación local de las reglas excluyentes del manual (presencia por unidad de medida 97/99, fórmulas de ítem, subtotales de IVA por alícuota, gravado/no gravado/exento/subtotal/total con el margen de error del manual), desactivable con `{ validarImportes: false }`.
|
|
89
|
+
- Redondeo según el XSD (2 decimales en importes, 6 en cantidad/precio/bonificación/cotización); `roundImporte` y `roundDecimal` exportados.
|
|
90
|
+
- Opciones de `ArcaBaseConfig`: `ticketStorage`, `clockOffsetMs`, `autoClockSkew`, `loginErrorCooldownMs`, `fetch`, `legacyTls`, `tokenTTLMinutes`; overrides `endpoint` y `wsaaEndpoint`.
|
|
91
|
+
- Todos los métodos aceptan `opts?: CallOptions` (`signal`).
|
|
92
|
+
- Se exportan `ArcaValidationError`, `ArcaTicketVigenteError`, `MemoryTicketStorage` y `FileTicketStorage`.
|
|
93
|
+
|
|
94
|
+
### Fixes
|
|
95
|
+
|
|
96
|
+
- Namespace `http://impl.service.wsmtxca.afip.gov.ar/service/`, SOAPAction del WSDL y elementos `{operacion}Request` / `{operacion}Response` (verificado con `dummy` en homologación).
|
|
97
|
+
- `ComprobanteType` con los elementos en el orden de la secuencia del XSD y `numeroComprobante` incluido.
|
|
98
|
+
- Las emisiones (`autorizar*`, `informar*`, `solicitarCAEA`) usan `kind: 'emision'`: no se reintentan y los errores con resultado desconocido tienen `uncertain: true`.
|
|
99
|
+
- `consultarCotizacionMoneda` envía `fechaCotizacion` (obligatorio) y lee solo `cotizacionMoneda`.
|
|
100
|
+
- Puntos de venta: se elimina `EmisionTipo` (no existe en la respuesta).
|
|
101
|
+
- Ítems de bonificación/seña (unidad 99/97) se envían sin cantidad ni precio.
|
|
102
|
+
- La validación ya no traga errores que no son de validación.
|
|
103
|
+
|
|
104
|
+
## 0.2.0 (2026-06-03)
|
|
105
|
+
|
|
106
|
+
### Fixes
|
|
107
|
+
|
|
108
|
+
- Build standalone en CI: el lockfile resolvía `@ramiidv/arca-common` como ruta local; se regeneró para resolverlo desde npm.
|
|
109
|
+
|
|
110
|
+
### Chore
|
|
111
|
+
|
|
112
|
+
- Workflow de release (publicación por tag) y workflow de CI para Node 18/20/22.
|
|
113
|
+
- Homepage: <https://arca-sdk.dev/mtxca>.
|
|
114
|
+
|
|
115
|
+
## 0.1.0 (2026-03-31)
|
|
116
|
+
|
|
117
|
+
### Features
|
|
118
|
+
|
|
119
|
+
- Initial release
|
|
120
|
+
- Authorize invoices with item-level detail (barcodes, quantities, unit prices) via `autorizar()`
|
|
121
|
+
- Query last authorized comprobante number via `ultimoComprobante()`
|
|
122
|
+
- Compute next comprobante number via `siguienteComprobante()`
|
|
123
|
+
- Retrieve previously authorized comprobantes via `consultarComprobante()`
|
|
124
|
+
- Query parameter tables: tipos comprobante, tipos documento, alicuotas IVA, condiciones IVA, monedas, unidades de medida, puntos de venta, cotizacion de monedas
|
|
125
|
+
- Input validation for `autorizar()` request and item-level fields
|
|
126
|
+
- Enum helpers for CbteTipo, Concepto, CodigoCondicionIVA, and Moneda
|
|
127
|
+
- Service health check via `status()`
|
|
128
|
+
- Automatic WSAA authentication with ticket caching
|
|
129
|
+
- Full TypeScript support with strict types
|