@ramiidv/arca-padron 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 +65 -0
- package/README.md +137 -82
- package/dist/cjs/arca-padron.d.ts +44 -31
- package/dist/cjs/arca-padron.d.ts.map +1 -1
- package/dist/cjs/arca-padron.js +61 -27
- package/dist/cjs/arca-padron.js.map +1 -1
- package/dist/cjs/base-client.d.ts +19 -10
- package/dist/cjs/base-client.d.ts.map +1 -1
- package/dist/cjs/base-client.js +33 -17
- package/dist/cjs/base-client.js.map +1 -1
- package/dist/cjs/condicion-iva.d.ts +9 -5
- package/dist/cjs/condicion-iva.d.ts.map +1 -1
- package/dist/cjs/condicion-iva.js +86 -39
- package/dist/cjs/condicion-iva.js.map +1 -1
- package/dist/cjs/constants.d.ts +57 -12
- package/dist/cjs/constants.d.ts.map +1 -1
- package/dist/cjs/constants.js +53 -11
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/errors.d.ts +38 -10
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +45 -19
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.d.ts +16 -8
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +27 -17
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mapping.d.ts +46 -3
- package/dist/cjs/mapping.d.ts.map +1 -1
- package/dist/cjs/mapping.js +129 -8
- package/dist/cjs/mapping.js.map +1 -1
- package/dist/cjs/padron-a10.d.ts +8 -5
- package/dist/cjs/padron-a10.d.ts.map +1 -1
- package/dist/cjs/padron-a10.js +22 -57
- package/dist/cjs/padron-a10.js.map +1 -1
- package/dist/cjs/padron-a100.d.ts +8 -4
- package/dist/cjs/padron-a100.d.ts.map +1 -1
- package/dist/cjs/padron-a100.js +27 -17
- package/dist/cjs/padron-a100.js.map +1 -1
- package/dist/cjs/padron-a13.d.ts +17 -7
- package/dist/cjs/padron-a13.d.ts.map +1 -1
- package/dist/cjs/padron-a13.js +37 -17
- package/dist/cjs/padron-a13.js.map +1 -1
- package/dist/cjs/padron-a4.d.ts +8 -5
- package/dist/cjs/padron-a4.d.ts.map +1 -1
- package/dist/cjs/padron-a4.js +103 -157
- package/dist/cjs/padron-a4.js.map +1 -1
- package/dist/cjs/padron-a5.d.ts +20 -7
- package/dist/cjs/padron-a5.d.ts.map +1 -1
- package/dist/cjs/padron-a5.js +82 -57
- package/dist/cjs/padron-a5.js.map +1 -1
- package/dist/cjs/types.d.ts +39 -48
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/arca-padron.d.ts +44 -31
- package/dist/esm/arca-padron.d.ts.map +1 -1
- package/dist/esm/arca-padron.js +62 -28
- package/dist/esm/arca-padron.js.map +1 -1
- package/dist/esm/base-client.d.ts +19 -10
- package/dist/esm/base-client.d.ts.map +1 -1
- package/dist/esm/base-client.js +33 -17
- package/dist/esm/base-client.js.map +1 -1
- package/dist/esm/condicion-iva.d.ts +9 -5
- package/dist/esm/condicion-iva.d.ts.map +1 -1
- package/dist/esm/condicion-iva.js +86 -39
- package/dist/esm/condicion-iva.js.map +1 -1
- package/dist/esm/constants.d.ts +57 -12
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.js +53 -11
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/errors.d.ts +38 -10
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +40 -11
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts +16 -8
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +14 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mapping.d.ts +46 -3
- package/dist/esm/mapping.d.ts.map +1 -1
- package/dist/esm/mapping.js +117 -7
- package/dist/esm/mapping.js.map +1 -1
- package/dist/esm/padron-a10.d.ts +8 -5
- package/dist/esm/padron-a10.d.ts.map +1 -1
- package/dist/esm/padron-a10.js +21 -57
- package/dist/esm/padron-a10.js.map +1 -1
- package/dist/esm/padron-a100.d.ts +8 -4
- package/dist/esm/padron-a100.d.ts.map +1 -1
- package/dist/esm/padron-a100.js +27 -17
- package/dist/esm/padron-a100.js.map +1 -1
- package/dist/esm/padron-a13.d.ts +17 -7
- package/dist/esm/padron-a13.d.ts.map +1 -1
- package/dist/esm/padron-a13.js +37 -18
- package/dist/esm/padron-a13.js.map +1 -1
- package/dist/esm/padron-a4.d.ts +8 -5
- package/dist/esm/padron-a4.d.ts.map +1 -1
- package/dist/esm/padron-a4.js +101 -156
- package/dist/esm/padron-a4.js.map +1 -1
- package/dist/esm/padron-a5.d.ts +20 -7
- package/dist/esm/padron-a5.d.ts.map +1 -1
- package/dist/esm/padron-a5.js +82 -57
- package/dist/esm/padron-a5.js.map +1 -1
- package/dist/esm/types.d.ts +39 -48
- package/dist/esm/types.d.ts.map +1 -1
- package/llms.txt +46 -27
- package/package.json +3 -3
- package/dist/cjs/soap-client.d.ts +0 -2
- package/dist/cjs/soap-client.d.ts.map +0 -1
- package/dist/cjs/soap-client.js +0 -13
- package/dist/cjs/soap-client.js.map +0 -1
- package/dist/cjs/wsaa.d.ts +0 -3
- package/dist/cjs/wsaa.d.ts.map +0 -1
- package/dist/cjs/wsaa.js +0 -6
- package/dist/cjs/wsaa.js.map +0 -1
- package/dist/esm/soap-client.d.ts +0 -2
- package/dist/esm/soap-client.d.ts.map +0 -1
- package/dist/esm/soap-client.js +0 -3
- package/dist/esm/soap-client.js.map +0 -1
- package/dist/esm/wsaa.d.ts +0 -3
- package/dist/esm/wsaa.d.ts.map +0 -1
- package/dist/esm/wsaa.js +0 -2
- package/dist/esm/wsaa.js.map +0 -1
package/dist/esm/errors.js
CHANGED
|
@@ -1,26 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
export { ArcaError, ArcaAuthError, ArcaSoapError, ArcaServiceError, ArcaTicketVigenteError } from '@ramiidv/arca-common';
|
|
3
|
-
import { ArcaError, ArcaServiceError } from '@ramiidv/arca-common';
|
|
1
|
+
import { ArcaError, ArcaServiceError, ArcaSoapError } from '@ramiidv/arca-common';
|
|
4
2
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
3
|
+
* Error propio del SDK de Padrón que no es de negocio ni de transporte: la
|
|
4
|
+
* respuesta de ARCA no tiene un dato obligatorio (ej: `personaReturn` sin
|
|
5
|
+
* `persona`) o tiene una forma inesperada.
|
|
7
6
|
*/
|
|
8
7
|
export class ArcaPadronError extends ArcaError {
|
|
9
8
|
static code = 'ARCA_PADRON_ERROR';
|
|
10
|
-
constructor(message) {
|
|
11
|
-
super(message);
|
|
9
|
+
constructor(message, options) {
|
|
10
|
+
super(message, options);
|
|
12
11
|
this.name = 'ArcaPadronError';
|
|
13
12
|
}
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
16
|
-
* Error de
|
|
17
|
-
*
|
|
15
|
+
* Error de negocio de Padrón (CUIT inexistente, clave inactiva, token no
|
|
16
|
+
* autorizado, etc.). ARCA los informa como SOAP Fault: el SDK los convierte en
|
|
17
|
+
* este error con un `reason` tipado. El `ArcaSoapError` original queda en
|
|
18
|
+
* `cause` y el texto de ARCA en `errors[0].msg`. No se reintentan.
|
|
18
19
|
*/
|
|
19
20
|
export class ArcaPadronServiceError extends ArcaServiceError {
|
|
20
21
|
static code = 'ARCA_PADRON_SERVICE_ERROR';
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
reason;
|
|
23
|
+
constructor(message, errors, options) {
|
|
24
|
+
super(message, errors, options?.cause !== undefined ? { cause: options.cause } : undefined);
|
|
23
25
|
this.name = 'ArcaPadronServiceError';
|
|
26
|
+
this.reason = options?.reason ?? 'otro';
|
|
24
27
|
}
|
|
25
28
|
}
|
|
29
|
+
const FAULT_REASONS = [
|
|
30
|
+
[/es inexistente|no existe persona/i, 'inexistente'],
|
|
31
|
+
[/se encuentra inactiva/i, 'inactiva'],
|
|
32
|
+
[/id de la persona no es v[aá]lido/i, 'id_invalido'],
|
|
33
|
+
[/no autorizado|falta token|debe enviar la cuit representada|no le permite actuar en representaci[oó]n/i, 'no_autorizado'],
|
|
34
|
+
];
|
|
35
|
+
/** Motivo de un mensaje de error de negocio de Padrón, o `undefined` si no es uno conocido. */
|
|
36
|
+
export function padronErrorReason(message) {
|
|
37
|
+
return FAULT_REASONS.find(([re]) => re.test(message))?.[1];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Convierte un SOAP Fault de negocio conocido en `ArcaPadronServiceError`.
|
|
41
|
+
* Cualquier otro error (transporte, timeout, Fault desconocido) se devuelve
|
|
42
|
+
* sin cambios.
|
|
43
|
+
*/
|
|
44
|
+
export function toPadronError(err, method) {
|
|
45
|
+
if (!(err instanceof ArcaSoapError) || err.faultString === undefined)
|
|
46
|
+
return err;
|
|
47
|
+
const reason = padronErrorReason(err.faultString);
|
|
48
|
+
if (!reason)
|
|
49
|
+
return err;
|
|
50
|
+
const detail = { code: 0, msg: err.faultString };
|
|
51
|
+
if (err.faultCode)
|
|
52
|
+
detail.rawCode = err.faultCode;
|
|
53
|
+
return new ArcaPadronServiceError(`${method}: ${err.faultString}`, [detail], { reason, cause: err });
|
|
54
|
+
}
|
|
26
55
|
//# sourceMappingURL=errors.js.map
|
package/dist/esm/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGlF;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,MAAM,CAAmB,IAAI,GAAW,mBAAmB,CAAC;IAE5D,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;;AAkBH;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,gBAAgB;IAC1D,MAAM,CAAmB,IAAI,GAAW,2BAA2B,CAAC;IACpD,MAAM,CAAoB;IAE1C,YACE,OAAe,EACf,MAA4B,EAC5B,OAAyD;QAEzD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC;IAC1C,CAAC;;AAGH,MAAM,aAAa,GAAuC;IACxD,CAAC,mCAAmC,EAAE,aAAa,CAAC;IACpD,CAAC,wBAAwB,EAAE,UAAU,CAAC;IACtC,CAAC,mCAAmC,EAAE,aAAa,CAAC;IACpD,CAAC,uGAAuG,EAAE,eAAe,CAAC;CAC3H,CAAC;AAEF,+FAA+F;AAC/F,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY,EAAE,MAAc;IACxD,IAAI,CAAC,CAAC,GAAG,YAAY,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACjF,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC;IACxB,MAAM,MAAM,GAAuB,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;IACrE,IAAI,GAAG,CAAC,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC;IAClD,OAAO,IAAI,sBAAsB,CAAC,GAAG,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AACvG,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,16 +1,24 @@
|
|
|
1
|
+
import { checkServiceErrors as commonCheckServiceErrors } from '@ramiidv/arca-common';
|
|
1
2
|
export { ArcaPadron } from './arca-padron.js';
|
|
2
3
|
export { condicionIvaDesdePadron } from './condicion-iva.js';
|
|
3
4
|
export { MemoryTicketStorage, FileTicketStorage } from '@ramiidv/arca-common';
|
|
4
|
-
export { ArcaError, ArcaAuthError, ArcaTicketVigenteError, ArcaSoapError, ArcaServiceError,
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export
|
|
8
|
-
export {
|
|
5
|
+
export { ArcaError, ArcaAuthError, ArcaTicketVigenteError, ArcaSoapError, ArcaServiceError, ArcaValidationError, } from '@ramiidv/arca-common';
|
|
6
|
+
export { ArcaPadronError, ArcaPadronServiceError, type PadronErrorReason } from './errors.js';
|
|
7
|
+
export { BasePadronClient, type PadronClientConfig, type PadronSoapOptions } from './base-client.js';
|
|
8
|
+
export { WsaaClient } from '@ramiidv/arca-common';
|
|
9
|
+
export type { WsaaClientConfig } from '@ramiidv/arca-common';
|
|
10
|
+
export { PadronA5Client, MAX_PERSONA_LIST, type PadronA5ClientConfig } from './padron-a5.js';
|
|
9
11
|
export { PadronA4Client, type PadronA4ClientConfig } from './padron-a4.js';
|
|
10
12
|
export { PadronA13Client, type PadronA13ClientConfig } from './padron-a13.js';
|
|
11
13
|
export { PadronA10Client, type PadronA10ClientConfig } from './padron-a10.js';
|
|
12
14
|
export { PadronA100Client, type PadronA100ClientConfig } from './padron-a100.js';
|
|
13
|
-
export type { ArcaPadronConfig, AccessTicket, TicketStorage, CallOptions, WsAuth, SoapCallOptions, ServerStatus, ArcaEvent, ArcaPadronEvent, PersonaA4, DependenciaA4, DomicilioA4, ImpuestoA4, ActividadA4, RegimenA4, RelacionA4, CategoriaA4, EmailA4, TelefonoA4, PersonaA10, DependenciaA10, DomicilioA10, ParameterRecord, ParameterAttribute, PersonaA13, DomicilioA13, PersonaA5, DomicilioA5, DependenciaA5, CaracterizacionA5, ImpuestoA5, ActividadA5, CategoriaA5, RegimenA5, RegimenGeneralA5, MonotributoA5, ErrorConstanciaA5, ErrorRegimenA5, CondicionIvaPadron, } from './types.js';
|
|
14
|
-
export { ENDPOINTS, Provincia, TipoDocumento, CondicionIva, TipoDomicilio, TipoPersona, ImpuestoId, EstadoClave, CollectionName, } from './constants.js';
|
|
15
|
-
export { ensureArray, parseXml, buildXml
|
|
15
|
+
export type { ArcaPadronConfig, PadronServicio, PadronStatus, AccessTicket, TicketStorage, CallOptions, WsAuth, SoapCallOptions, ServerStatus, ArcaEvent, ArcaPadronEvent, PersonaA4, DependenciaA4, DomicilioA4, ImpuestoA4, ActividadA4, RegimenA4, RelacionA4, CategoriaA4, EmailA4, TelefonoA4, PersonaA10, DependenciaA10, DomicilioA10, ParameterRecord, ParameterAttribute, PersonaA13, DomicilioA13, PersonaA5, DomicilioA5, DependenciaA5, CaracterizacionA5, ComponenteSociedadA5, ImpuestoA5, ActividadA5, CategoriaA5, RegimenA5, RegimenGeneralA5, MonotributoA5, ErrorConstanciaA5, ErrorRegimenA5, CondicionIvaPadron, } from './types.js';
|
|
16
|
+
export { ENDPOINTS, Provincia, DocTipo, TipoDocumento, CondicionIva, TipoDomicilio, TipoPersona, ImpuestoId, EstadoClave, CollectionName, } from './constants.js';
|
|
17
|
+
export { ensureArray, parseXml, buildXml } from '@ramiidv/arca-common';
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated Padrón no devuelve errores de negocio en el body (los informa
|
|
20
|
+
* como SOAP Fault, que el SDK ya convierte en `ArcaPadronServiceError`). Si lo
|
|
21
|
+
* necesitás para otro servicio, importalo de `@ramiidv/arca-common`.
|
|
22
|
+
*/
|
|
23
|
+
export declare const checkServiceErrors: typeof commonCheckServiceErrors;
|
|
16
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGtF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9E,OAAO,EACL,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG9F,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGjF,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,MAAM,EACN,eAAe,EACf,YAAY,EACZ,SAAS,EACT,eAAe,EACf,SAAS,EACT,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,SAAS,EACT,SAAS,EACT,OAAO,EACP,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,iCAA2B,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,22 +1,30 @@
|
|
|
1
|
+
import { checkServiceErrors as commonCheckServiceErrors } from '@ramiidv/arca-common';
|
|
1
2
|
// Main class
|
|
2
3
|
export { ArcaPadron } from './arca-padron.js';
|
|
3
4
|
// Helpers puros
|
|
4
5
|
export { condicionIvaDesdePadron } from './condicion-iva.js';
|
|
5
6
|
// Persistencia de tickets (desde arca-common)
|
|
6
7
|
export { MemoryTicketStorage, FileTicketStorage } from '@ramiidv/arca-common';
|
|
7
|
-
// Error classes
|
|
8
|
-
export { ArcaError, ArcaAuthError, ArcaTicketVigenteError, ArcaSoapError, ArcaServiceError,
|
|
8
|
+
// Error classes
|
|
9
|
+
export { ArcaError, ArcaAuthError, ArcaTicketVigenteError, ArcaSoapError, ArcaServiceError, ArcaValidationError, } from '@ramiidv/arca-common';
|
|
10
|
+
export { ArcaPadronError, ArcaPadronServiceError } from './errors.js';
|
|
9
11
|
// Base class
|
|
10
12
|
export { BasePadronClient } from './base-client.js';
|
|
11
13
|
// Low-level clients
|
|
12
|
-
export { WsaaClient } from '
|
|
13
|
-
export { PadronA5Client } from './padron-a5.js';
|
|
14
|
+
export { WsaaClient } from '@ramiidv/arca-common';
|
|
15
|
+
export { PadronA5Client, MAX_PERSONA_LIST } from './padron-a5.js';
|
|
14
16
|
export { PadronA4Client } from './padron-a4.js';
|
|
15
17
|
export { PadronA13Client } from './padron-a13.js';
|
|
16
18
|
export { PadronA10Client } from './padron-a10.js';
|
|
17
19
|
export { PadronA100Client } from './padron-a100.js';
|
|
18
20
|
// Constants and enums
|
|
19
|
-
export { ENDPOINTS, Provincia, TipoDocumento, CondicionIva, TipoDomicilio, TipoPersona, ImpuestoId, EstadoClave, CollectionName, } from './constants.js';
|
|
21
|
+
export { ENDPOINTS, Provincia, DocTipo, TipoDocumento, CondicionIva, TipoDomicilio, TipoPersona, ImpuestoId, EstadoClave, CollectionName, } from './constants.js';
|
|
20
22
|
// Utilities (from common)
|
|
21
|
-
export { ensureArray, parseXml, buildXml
|
|
23
|
+
export { ensureArray, parseXml, buildXml } from '@ramiidv/arca-common';
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated Padrón no devuelve errores de negocio en el body (los informa
|
|
26
|
+
* como SOAP Fault, que el SDK ya convierte en `ArcaPadronServiceError`). Si lo
|
|
27
|
+
* necesitás para otro servicio, importalo de `@ramiidv/arca-common`.
|
|
28
|
+
*/
|
|
29
|
+
export const checkServiceErrors = commonCheckServiceErrors;
|
|
22
30
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,gBAAgB;AAChB,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,8CAA8C;AAC9C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,gBAAgB;AAChB,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,8CAA8C;AAC9C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,gBAAgB;AAChB,OAAO,EACL,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAA0B,MAAM,aAAa,CAAC;AAE9F,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAmD,MAAM,kBAAkB,CAAC;AAErG,oBAAoB;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAA6B,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,cAAc,EAA6B,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAA8B,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAA8B,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAA+B,MAAM,kBAAkB,CAAC;AAgDjF,sBAAsB;AACtB,OAAO,EACL,SAAS,EACT,SAAS,EACT,OAAO,EACP,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEvE;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC"}
|
package/dist/esm/mapping.d.ts
CHANGED
|
@@ -1,9 +1,52 @@
|
|
|
1
|
+
import type { DependenciaA4, DomicilioA10 } from './types.js';
|
|
1
2
|
/** Registro de una respuesta SOAP parseada. */
|
|
2
3
|
export type SoapRecord = Record<string, unknown>;
|
|
3
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* `true` si el valor no vino o es un elemento `xsi:nil="true"` (el parser deja
|
|
6
|
+
* el atributo como `@_nil` o `@_xsi:nil`). Los WSDL de Padrón declaran
|
|
7
|
+
* `nillable` los elementos repetidos.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isNil(v: unknown): boolean;
|
|
10
|
+
/** Convierte a string, o `undefined` si el valor no vino. Para campos `xs:string`/`xs:long`/`xs:dateTime`. */
|
|
4
11
|
export declare const optString: (v: unknown) => string | undefined;
|
|
5
|
-
/** Convierte a número, o `undefined` si el valor no vino. */
|
|
12
|
+
/** Convierte a número, o `undefined` si el valor no vino. Para campos `xs:int`/`xs:double`. */
|
|
6
13
|
export declare const optNumber: (v: unknown) => number | undefined;
|
|
7
|
-
/** Normaliza un elemento
|
|
14
|
+
/** Normaliza un elemento complejo que puede venir solo, repetido, ausente o nil. */
|
|
8
15
|
export declare const records: (v: unknown) => SoapRecord[];
|
|
16
|
+
/** Elemento complejo opcional (`undefined` si no vino, vino vacío o es nil). */
|
|
17
|
+
export declare const record: (v: unknown) => SoapRecord | undefined;
|
|
18
|
+
/** Lista de valores simples repetidos (ej: `claveInactivaAsociada`, `error`), sin los nil. */
|
|
19
|
+
export declare const strings: (v: unknown) => string[];
|
|
20
|
+
/** String obligatorio: lanza `ArcaPadronError` si no vino. */
|
|
21
|
+
export declare function reqString(v: unknown, field: string): string;
|
|
22
|
+
/** Número obligatorio: lanza `ArcaPadronError` si no vino. */
|
|
23
|
+
export declare function reqNumber(v: unknown, field: string): number;
|
|
24
|
+
/** `tipoPersona` obligatorio (`FISICA` | `JURIDICA`). */
|
|
25
|
+
export declare function tipoPersona(v: unknown, field?: string): 'FISICA' | 'JURIDICA';
|
|
26
|
+
/**
|
|
27
|
+
* Elemento `persona` de `personaReturn` (A4, A10, A13). Si falta, lanza
|
|
28
|
+
* `ArcaPadronError`: nunca se inventa una persona vacía.
|
|
29
|
+
*/
|
|
30
|
+
export declare function requirePersona(result: SoapRecord, method: string): SoapRecord;
|
|
31
|
+
/** `dependencia` de A4/A10: `{descripcionDependencia, idDependencia}`. */
|
|
32
|
+
export declare function mapDependencia(v: unknown): DependenciaA4 | undefined;
|
|
33
|
+
/** `domicilio` de A4/A10/constancia (todos `xs:string` salvo `idProvincia`). */
|
|
34
|
+
export declare function mapDomicilio(d: SoapRecord): DomicilioA10;
|
|
35
|
+
/** Campos comunes de `persona` en A4 y A10. */
|
|
36
|
+
export declare function mapPersonaComun(raw: SoapRecord): {
|
|
37
|
+
idPersona: string;
|
|
38
|
+
tipoPersona: "FISICA" | "JURIDICA";
|
|
39
|
+
tipoClave: string | undefined;
|
|
40
|
+
estadoClave: string | undefined;
|
|
41
|
+
nombre: string | undefined;
|
|
42
|
+
apellido: string | undefined;
|
|
43
|
+
razonSocial: string | undefined;
|
|
44
|
+
numeroDocumento: string | undefined;
|
|
45
|
+
tipoDocumento: string | undefined;
|
|
46
|
+
};
|
|
47
|
+
/** Asigna `dependencia` y `claveInactivaAsociada` solo si vinieron. */
|
|
48
|
+
export declare function asignarDependenciaYClaves(target: {
|
|
49
|
+
dependencia?: DependenciaA4;
|
|
50
|
+
claveInactivaAsociada?: string[];
|
|
51
|
+
}, raw: SoapRecord): void;
|
|
9
52
|
//# sourceMappingURL=mapping.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"AAEA,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,
|
|
1
|
+
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE9D,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAKzC;AAYD,8GAA8G;AAC9G,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,MAAM,GAAG,SAG/C,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,MAAM,GAAG,SAG/C,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,UAAU,EAG5C,CAAC;AAEJ,gFAAgF;AAChF,eAAO,MAAM,MAAM,GAAI,GAAG,OAAO,KAAG,UAAU,GAAG,SACsD,CAAC;AAExG,8FAA8F;AAC9F,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,MAAM,EACgC,CAAC;AAM5E,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,SAAwB,GAAG,QAAQ,GAAG,UAAU,CAE5F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAI7E;AAMD,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAIpE;AAED,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,CAWxD;AAED,+CAA+C;AAC/C,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU;;;;;;;;;;EAY9C;AAED,uEAAuE;AACvE,wBAAgB,yBAAyB,CACvC,MAAM,EAAE;IAAE,WAAW,CAAC,EAAE,aAAa,CAAC;IAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EACzE,GAAG,EAAE,UAAU,GACd,IAAI,CAIN"}
|
package/dist/esm/mapping.js
CHANGED
|
@@ -1,8 +1,118 @@
|
|
|
1
|
-
import { ensureArray } from '
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { ensureArray } from '@ramiidv/arca-common';
|
|
2
|
+
import { ArcaPadronError } from './errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* `true` si el valor no vino o es un elemento `xsi:nil="true"` (el parser deja
|
|
5
|
+
* el atributo como `@_nil` o `@_xsi:nil`). Los WSDL de Padrón declaran
|
|
6
|
+
* `nillable` los elementos repetidos.
|
|
7
|
+
*/
|
|
8
|
+
export function isNil(v) {
|
|
9
|
+
if (v === undefined || v === null)
|
|
10
|
+
return true;
|
|
11
|
+
if (typeof v !== 'object' || Array.isArray(v))
|
|
12
|
+
return false;
|
|
13
|
+
const o = v;
|
|
14
|
+
return Object.keys(o).some((k) => /^@_(?:[\w-]+:)?nil$/.test(k) && String(o[k]) === 'true');
|
|
15
|
+
}
|
|
16
|
+
/** Valor de texto de un elemento simple (`undefined` si no vino o es nil). */
|
|
17
|
+
function text(v) {
|
|
18
|
+
if (isNil(v))
|
|
19
|
+
return undefined;
|
|
20
|
+
if (typeof v === 'object') {
|
|
21
|
+
const o = v;
|
|
22
|
+
return Object.hasOwn(o, '#text') ? o['#text'] : undefined;
|
|
23
|
+
}
|
|
24
|
+
return v;
|
|
25
|
+
}
|
|
26
|
+
/** Convierte a string, o `undefined` si el valor no vino. Para campos `xs:string`/`xs:long`/`xs:dateTime`. */
|
|
27
|
+
export const optString = (v) => {
|
|
28
|
+
const t = text(v);
|
|
29
|
+
return t === undefined ? undefined : String(t);
|
|
30
|
+
};
|
|
31
|
+
/** Convierte a número, o `undefined` si el valor no vino. Para campos `xs:int`/`xs:double`. */
|
|
32
|
+
export const optNumber = (v) => {
|
|
33
|
+
const t = text(v);
|
|
34
|
+
return t === undefined || t === '' ? undefined : Number(t);
|
|
35
|
+
};
|
|
36
|
+
/** Normaliza un elemento complejo que puede venir solo, repetido, ausente o nil. */
|
|
37
|
+
export const records = (v) => ensureArray(v).filter((x) => typeof x === 'object' && x !== null && !isNil(x));
|
|
38
|
+
/** Elemento complejo opcional (`undefined` si no vino, vino vacío o es nil). */
|
|
39
|
+
export const record = (v) => typeof v === 'object' && v !== null && !Array.isArray(v) && !isNil(v) ? v : undefined;
|
|
40
|
+
/** Lista de valores simples repetidos (ej: `claveInactivaAsociada`, `error`), sin los nil. */
|
|
41
|
+
export const strings = (v) => ensureArray(v).map(optString).filter((s) => s !== undefined);
|
|
42
|
+
function missing(field) {
|
|
43
|
+
return new ArcaPadronError(`Respuesta inválida de ARCA: falta ${field}`);
|
|
44
|
+
}
|
|
45
|
+
/** String obligatorio: lanza `ArcaPadronError` si no vino. */
|
|
46
|
+
export function reqString(v, field) {
|
|
47
|
+
const s = optString(v);
|
|
48
|
+
if (s === undefined || s === '')
|
|
49
|
+
throw missing(field);
|
|
50
|
+
return s;
|
|
51
|
+
}
|
|
52
|
+
/** Número obligatorio: lanza `ArcaPadronError` si no vino. */
|
|
53
|
+
export function reqNumber(v, field) {
|
|
54
|
+
const n = optNumber(v);
|
|
55
|
+
if (n === undefined || Number.isNaN(n))
|
|
56
|
+
throw missing(field);
|
|
57
|
+
return n;
|
|
58
|
+
}
|
|
59
|
+
/** `tipoPersona` obligatorio (`FISICA` | `JURIDICA`). */
|
|
60
|
+
export function tipoPersona(v, field = 'persona.tipoPersona') {
|
|
61
|
+
return reqString(v, field);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Elemento `persona` de `personaReturn` (A4, A10, A13). Si falta, lanza
|
|
65
|
+
* `ArcaPadronError`: nunca se inventa una persona vacía.
|
|
66
|
+
*/
|
|
67
|
+
export function requirePersona(result, method) {
|
|
68
|
+
const persona = record(result['persona']);
|
|
69
|
+
if (!persona)
|
|
70
|
+
throw new ArcaPadronError(`Respuesta inválida de ARCA (${method}): personaReturn sin persona`);
|
|
71
|
+
return persona;
|
|
72
|
+
}
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
// Bloques comunes de A4 y A10 (mismos tipos en los dos WSDL)
|
|
75
|
+
// ---------------------------------------------------------------------------
|
|
76
|
+
/** `dependencia` de A4/A10: `{descripcionDependencia, idDependencia}`. */
|
|
77
|
+
export function mapDependencia(v) {
|
|
78
|
+
const d = record(v);
|
|
79
|
+
if (!d)
|
|
80
|
+
return undefined;
|
|
81
|
+
return { idDependencia: optNumber(d['idDependencia']), descripcionDependencia: optString(d['descripcionDependencia']) };
|
|
82
|
+
}
|
|
83
|
+
/** `domicilio` de A4/A10/constancia (todos `xs:string` salvo `idProvincia`). */
|
|
84
|
+
export function mapDomicilio(d) {
|
|
85
|
+
return {
|
|
86
|
+
direccion: optString(d['direccion']),
|
|
87
|
+
localidad: optString(d['localidad']),
|
|
88
|
+
codPostal: optString(d['codPostal']),
|
|
89
|
+
idProvincia: optNumber(d['idProvincia']),
|
|
90
|
+
descripcionProvincia: optString(d['descripcionProvincia']),
|
|
91
|
+
tipoDomicilio: optString(d['tipoDomicilio']),
|
|
92
|
+
datoAdicional: optString(d['datoAdicional']),
|
|
93
|
+
tipoDatoAdicional: optString(d['tipoDatoAdicional']),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/** Campos comunes de `persona` en A4 y A10. */
|
|
97
|
+
export function mapPersonaComun(raw) {
|
|
98
|
+
return {
|
|
99
|
+
idPersona: reqString(raw['idPersona'], 'persona.idPersona'),
|
|
100
|
+
tipoPersona: tipoPersona(raw['tipoPersona']),
|
|
101
|
+
tipoClave: optString(raw['tipoClave']),
|
|
102
|
+
estadoClave: optString(raw['estadoClave']),
|
|
103
|
+
nombre: optString(raw['nombre']),
|
|
104
|
+
apellido: optString(raw['apellido']),
|
|
105
|
+
razonSocial: optString(raw['razonSocial']),
|
|
106
|
+
numeroDocumento: optString(raw['numeroDocumento']),
|
|
107
|
+
tipoDocumento: optString(raw['tipoDocumento']),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/** Asigna `dependencia` y `claveInactivaAsociada` solo si vinieron. */
|
|
111
|
+
export function asignarDependenciaYClaves(target, raw) {
|
|
112
|
+
const dependencia = mapDependencia(raw['dependencia']);
|
|
113
|
+
if (dependencia)
|
|
114
|
+
target.dependencia = dependencia;
|
|
115
|
+
if (raw['claveInactivaAsociada'] !== undefined)
|
|
116
|
+
target.claveInactivaAsociada = strings(raw['claveInactivaAsociada']);
|
|
117
|
+
}
|
|
8
118
|
//# sourceMappingURL=mapping.js.map
|
package/dist/esm/mapping.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/padron-a10.d.ts
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import type { CallOptions } from '@ramiidv/arca-common';
|
|
2
|
+
import { type SoapRecord as R } from './mapping.js';
|
|
2
3
|
import { BasePadronClient, type PadronClientConfig } from './base-client.js';
|
|
3
4
|
import type { PersonaA10, WsAuth } from './types.js';
|
|
4
5
|
export type PadronA10ClientConfig = PadronClientConfig;
|
|
5
6
|
/**
|
|
6
|
-
* Client for ws_sr_padron_a10 -
|
|
7
|
+
* Client for ws_sr_padron_a10 - Datos básicos de un contribuyente.
|
|
7
8
|
*/
|
|
8
9
|
export declare class PadronA10Client extends BasePadronClient {
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
+
* Datos básicos de un contribuyente.
|
|
11
12
|
* @param auth - Authentication object with Token, Sign, and CuitRepresentada
|
|
12
|
-
* @param cuit - CUIT
|
|
13
|
+
* @param cuit - CUIT/CUIL a consultar (con o sin guiones; se valida el dígito verificador)
|
|
13
14
|
* @param opts - Opciones por llamada (signal)
|
|
15
|
+
* @throws ArcaPadronServiceError si ARCA informa la CUIT inexistente, inactiva, etc.
|
|
14
16
|
*/
|
|
15
|
-
getPersona(auth: WsAuth, cuit: string, opts?: CallOptions): Promise<PersonaA10>;
|
|
16
|
-
private mapPersona;
|
|
17
|
+
getPersona(auth: WsAuth, cuit: string | number, opts?: CallOptions): Promise<PersonaA10>;
|
|
17
18
|
}
|
|
19
|
+
/** Mapea `persona` de A10 (WSDL personaServiceA10). */
|
|
20
|
+
export declare function mapPersonaA10(raw: R): PersonaA10;
|
|
18
21
|
//# sourceMappingURL=padron-a10.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"padron-a10.d.ts","sourceRoot":"","sources":["../../src/padron-a10.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"padron-a10.d.ts","sourceRoot":"","sources":["../../src/padron-a10.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAOL,KAAK,UAAU,IAAI,CAAC,EACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAEvD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD;;;;;;OAMG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAK/F;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAShD"}
|
package/dist/esm/padron-a10.js
CHANGED
|
@@ -1,69 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { validateCuit } from '@ramiidv/arca-common';
|
|
2
|
+
import { asignarDependenciaYClaves, mapDomicilio, mapPersonaComun, optString as str, records as list, requirePersona, } from './mapping.js';
|
|
2
3
|
import { BasePadronClient } from './base-client.js';
|
|
3
4
|
/**
|
|
4
|
-
* Client for ws_sr_padron_a10 -
|
|
5
|
+
* Client for ws_sr_padron_a10 - Datos básicos de un contribuyente.
|
|
5
6
|
*/
|
|
6
7
|
export class PadronA10Client extends BasePadronClient {
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
+
* Datos básicos de un contribuyente.
|
|
9
10
|
* @param auth - Authentication object with Token, Sign, and CuitRepresentada
|
|
10
|
-
* @param cuit - CUIT
|
|
11
|
+
* @param cuit - CUIT/CUIL a consultar (con o sin guiones; se valida el dígito verificador)
|
|
11
12
|
* @param opts - Opciones por llamada (signal)
|
|
13
|
+
* @throws ArcaPadronServiceError si ARCA informa la CUIT inexistente, inactiva, etc.
|
|
12
14
|
*/
|
|
13
15
|
async getPersona(auth, cuit, opts) {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return this.mapPersona(persona);
|
|
18
|
-
}
|
|
19
|
-
// -------------------------------------------------------------------------
|
|
20
|
-
// Private helpers
|
|
21
|
-
// -------------------------------------------------------------------------
|
|
22
|
-
mapPersona(raw) {
|
|
23
|
-
const persona = {
|
|
24
|
-
idPersona: String(raw['idPersona'] ?? ''),
|
|
25
|
-
tipoPersona: (raw['tipoPersona'] ?? 'FISICA'),
|
|
26
|
-
tipoClave: raw['tipoClave'],
|
|
27
|
-
estadoClave: raw['estadoClave'],
|
|
28
|
-
nombre: raw['nombre'],
|
|
29
|
-
apellido: raw['apellido'],
|
|
30
|
-
razonSocial: raw['razonSocial'],
|
|
31
|
-
numeroDocumento: raw['numeroDocumento'] != null
|
|
32
|
-
? String(raw['numeroDocumento'])
|
|
33
|
-
: undefined,
|
|
34
|
-
tipoDocumento: raw['tipoDocumento'],
|
|
35
|
-
idActividadPrincipal: raw['idActividadPrincipal'] != null
|
|
36
|
-
? String(raw['idActividadPrincipal'])
|
|
37
|
-
: undefined,
|
|
38
|
-
descripcionActividadPrincipal: raw['descripcionActividadPrincipal'],
|
|
39
|
-
};
|
|
40
|
-
// Dependencia (single object)
|
|
41
|
-
const dep = raw['dependencia'];
|
|
42
|
-
if (dep) {
|
|
43
|
-
persona.dependencia = {
|
|
44
|
-
idDependencia: Number(dep['idDependencia'] ?? 0),
|
|
45
|
-
descripcionDependencia: String(dep['descripcionDependencia'] ?? ''),
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
// claveInactivaAsociada (array of strings)
|
|
49
|
-
const clavesInactivas = raw['claveInactivaAsociada'];
|
|
50
|
-
if (clavesInactivas) {
|
|
51
|
-
persona.claveInactivaAsociada = ensureArray(clavesInactivas);
|
|
52
|
-
}
|
|
53
|
-
const domicilios = raw['domicilio'];
|
|
54
|
-
if (domicilios) {
|
|
55
|
-
persona.domicilio = ensureArray(domicilios).map((d) => ({
|
|
56
|
-
direccion: d['direccion'],
|
|
57
|
-
localidad: d['localidad'],
|
|
58
|
-
codPostal: d['codPostal'],
|
|
59
|
-
idProvincia: d['idProvincia'] != null ? Number(d['idProvincia']) : undefined,
|
|
60
|
-
descripcionProvincia: d['descripcionProvincia'],
|
|
61
|
-
tipoDomicilio: d['tipoDomicilio'],
|
|
62
|
-
datoAdicional: d['datoAdicional'],
|
|
63
|
-
tipoDatoAdicional: d['tipoDatoAdicional'],
|
|
64
|
-
}));
|
|
65
|
-
}
|
|
66
|
-
return persona;
|
|
16
|
+
const idPersona = validateCuit(cuit);
|
|
17
|
+
const result = await this.call('getPersona', { ...this.authParams(auth), idPersona }, opts);
|
|
18
|
+
return mapPersonaA10(requirePersona(result, 'getPersona'));
|
|
67
19
|
}
|
|
68
20
|
}
|
|
21
|
+
/** Mapea `persona` de A10 (WSDL personaServiceA10). */
|
|
22
|
+
export function mapPersonaA10(raw) {
|
|
23
|
+
const persona = {
|
|
24
|
+
...mapPersonaComun(raw),
|
|
25
|
+
idActividadPrincipal: str(raw['idActividadPrincipal']),
|
|
26
|
+
descripcionActividadPrincipal: str(raw['descripcionActividadPrincipal']),
|
|
27
|
+
};
|
|
28
|
+
asignarDependenciaYClaves(persona, raw);
|
|
29
|
+
if (raw['domicilio'] !== undefined)
|
|
30
|
+
persona.domicilio = list(raw['domicilio']).map(mapDomicilio);
|
|
31
|
+
return persona;
|
|
32
|
+
}
|
|
69
33
|
//# sourceMappingURL=padron-a10.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"padron-a10.js","sourceRoot":"","sources":["../../src/padron-a10.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"padron-a10.js","sourceRoot":"","sources":["../../src/padron-a10.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,eAAe,EACf,SAAS,IAAI,GAAG,EAChB,OAAO,IAAI,IAAI,EACf,cAAc,GAEf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAA2B,MAAM,kBAAkB,CAAC;AAK7E;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IACnD;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,IAAqB,EAAE,IAAkB;QACtE,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5F,OAAO,aAAa,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC;CACF;AAED,uDAAuD;AACvD,MAAM,UAAU,aAAa,CAAC,GAAM;IAClC,MAAM,OAAO,GAAe;QAC1B,GAAG,eAAe,CAAC,GAAG,CAAC;QACvB,oBAAoB,EAAE,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACtD,6BAA6B,EAAE,GAAG,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;KACzE,CAAC;IACF,yBAAyB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjG,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -3,13 +3,17 @@ import { BasePadronClient, type PadronClientConfig } from './base-client.js';
|
|
|
3
3
|
import type { ParameterRecord, WsAuth } from './types.js';
|
|
4
4
|
export type PadronA100ClientConfig = PadronClientConfig;
|
|
5
5
|
/**
|
|
6
|
-
* Client for ws_sr_padron_a100 -
|
|
6
|
+
* Client for ws_sr_padron_a100 - Tablas de parámetros.
|
|
7
|
+
*
|
|
8
|
+
* `id`, `description`, `name` y `value` son `xs:string` en el WSDL y se
|
|
9
|
+
* devuelven tal cual los envía ARCA (`"10.50"`, `"1E3"`, `"007"`): la
|
|
10
|
+
* respuesta se parsea sin conversión a número (ver `BasePadronClient`).
|
|
7
11
|
*/
|
|
8
12
|
export declare class PadronA100Client extends BasePadronClient {
|
|
9
13
|
/**
|
|
10
|
-
*
|
|
11
|
-
* @param
|
|
12
|
-
* @
|
|
14
|
+
* Tabla de parámetros por nombre de colección (ver `CollectionName`).
|
|
15
|
+
* @param collectionName - Nombre de la colección (ej: "SUPA.E_PROVINCIA")
|
|
16
|
+
* @returns los registros de la tabla (`[]` si ARCA devuelve la colección vacía)
|
|
13
17
|
*/
|
|
14
18
|
getParameterCollectionByName(auth: WsAuth, collectionName: string, opts?: CallOptions): Promise<ParameterRecord[]>;
|
|
15
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"padron-a100.d.ts","sourceRoot":"","sources":["../../src/padron-a100.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"padron-a100.d.ts","sourceRoot":"","sources":["../../src/padron-a100.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAIxD;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD;;;;OAIG;IACG,4BAA4B,CAChC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,eAAe,EAAE,CAAC;CA8B9B"}
|
package/dist/esm/padron-a100.js
CHANGED
|
@@ -1,31 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ArcaValidationError } from '@ramiidv/arca-common';
|
|
2
|
+
import { ArcaPadronError } from './errors.js';
|
|
3
|
+
import { optString, record, records as list, reqString } from './mapping.js';
|
|
2
4
|
import { BasePadronClient } from './base-client.js';
|
|
5
|
+
const METHOD = 'getParameterCollectionByName';
|
|
3
6
|
/**
|
|
4
|
-
* Client for ws_sr_padron_a100 -
|
|
7
|
+
* Client for ws_sr_padron_a100 - Tablas de parámetros.
|
|
8
|
+
*
|
|
9
|
+
* `id`, `description`, `name` y `value` son `xs:string` en el WSDL y se
|
|
10
|
+
* devuelven tal cual los envía ARCA (`"10.50"`, `"1E3"`, `"007"`): la
|
|
11
|
+
* respuesta se parsea sin conversión a número (ver `BasePadronClient`).
|
|
5
12
|
*/
|
|
6
13
|
export class PadronA100Client extends BasePadronClient {
|
|
7
14
|
/**
|
|
8
|
-
*
|
|
9
|
-
* @param
|
|
10
|
-
* @
|
|
15
|
+
* Tabla de parámetros por nombre de colección (ver `CollectionName`).
|
|
16
|
+
* @param collectionName - Nombre de la colección (ej: "SUPA.E_PROVINCIA")
|
|
17
|
+
* @returns los registros de la tabla (`[]` si ARCA devuelve la colección vacía)
|
|
11
18
|
*/
|
|
12
19
|
async getParameterCollectionByName(auth, collectionName, opts) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
if (typeof collectionName !== 'string' || collectionName.trim() === '') {
|
|
21
|
+
throw new ArcaValidationError('collectionName es obligatorio', [{ field: 'collectionName', message: 'Indicá el nombre de la colección', value: collectionName }], 'collectionName');
|
|
22
|
+
}
|
|
23
|
+
const result = await this.call(METHOD, { ...this.authParams(auth), collectionName: collectionName.trim() }, opts);
|
|
24
|
+
const collection = record(result['parameterCollection']);
|
|
16
25
|
if (!collection) {
|
|
17
|
-
|
|
26
|
+
throw new ArcaPadronError(`Respuesta inválida de ARCA (${METHOD}): falta parameterCollection`);
|
|
18
27
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
name: String(a['name'] ?? ''),
|
|
24
|
-
value: String(a['value'] ?? ''),
|
|
28
|
+
return list(collection['parameterList']).map((p) => {
|
|
29
|
+
const atributos = list(p['attributeList']).map((a) => ({
|
|
30
|
+
name: reqString(a['name'], 'attributeList.name'),
|
|
31
|
+
value: optString(a['value']),
|
|
25
32
|
}));
|
|
33
|
+
const descripcion = optString(p['description']);
|
|
34
|
+
if (descripcion === undefined)
|
|
35
|
+
throw new ArcaPadronError(`Respuesta inválida de ARCA (${METHOD}): falta description`);
|
|
26
36
|
return {
|
|
27
|
-
id:
|
|
28
|
-
descripcion
|
|
37
|
+
id: reqString(p['id'], 'parameterList.id'),
|
|
38
|
+
descripcion,
|
|
29
39
|
atributos: atributos.length > 0 ? atributos : undefined,
|
|
30
40
|
};
|
|
31
41
|
});
|