@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.
Files changed (120) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +137 -82
  3. package/dist/cjs/arca-padron.d.ts +44 -31
  4. package/dist/cjs/arca-padron.d.ts.map +1 -1
  5. package/dist/cjs/arca-padron.js +61 -27
  6. package/dist/cjs/arca-padron.js.map +1 -1
  7. package/dist/cjs/base-client.d.ts +19 -10
  8. package/dist/cjs/base-client.d.ts.map +1 -1
  9. package/dist/cjs/base-client.js +33 -17
  10. package/dist/cjs/base-client.js.map +1 -1
  11. package/dist/cjs/condicion-iva.d.ts +9 -5
  12. package/dist/cjs/condicion-iva.d.ts.map +1 -1
  13. package/dist/cjs/condicion-iva.js +86 -39
  14. package/dist/cjs/condicion-iva.js.map +1 -1
  15. package/dist/cjs/constants.d.ts +57 -12
  16. package/dist/cjs/constants.d.ts.map +1 -1
  17. package/dist/cjs/constants.js +53 -11
  18. package/dist/cjs/constants.js.map +1 -1
  19. package/dist/cjs/errors.d.ts +38 -10
  20. package/dist/cjs/errors.d.ts.map +1 -1
  21. package/dist/cjs/errors.js +45 -19
  22. package/dist/cjs/errors.js.map +1 -1
  23. package/dist/cjs/index.d.ts +16 -8
  24. package/dist/cjs/index.d.ts.map +1 -1
  25. package/dist/cjs/index.js +27 -17
  26. package/dist/cjs/index.js.map +1 -1
  27. package/dist/cjs/mapping.d.ts +46 -3
  28. package/dist/cjs/mapping.d.ts.map +1 -1
  29. package/dist/cjs/mapping.js +129 -8
  30. package/dist/cjs/mapping.js.map +1 -1
  31. package/dist/cjs/padron-a10.d.ts +8 -5
  32. package/dist/cjs/padron-a10.d.ts.map +1 -1
  33. package/dist/cjs/padron-a10.js +22 -57
  34. package/dist/cjs/padron-a10.js.map +1 -1
  35. package/dist/cjs/padron-a100.d.ts +8 -4
  36. package/dist/cjs/padron-a100.d.ts.map +1 -1
  37. package/dist/cjs/padron-a100.js +27 -17
  38. package/dist/cjs/padron-a100.js.map +1 -1
  39. package/dist/cjs/padron-a13.d.ts +17 -7
  40. package/dist/cjs/padron-a13.d.ts.map +1 -1
  41. package/dist/cjs/padron-a13.js +37 -17
  42. package/dist/cjs/padron-a13.js.map +1 -1
  43. package/dist/cjs/padron-a4.d.ts +8 -5
  44. package/dist/cjs/padron-a4.d.ts.map +1 -1
  45. package/dist/cjs/padron-a4.js +103 -157
  46. package/dist/cjs/padron-a4.js.map +1 -1
  47. package/dist/cjs/padron-a5.d.ts +20 -7
  48. package/dist/cjs/padron-a5.d.ts.map +1 -1
  49. package/dist/cjs/padron-a5.js +82 -57
  50. package/dist/cjs/padron-a5.js.map +1 -1
  51. package/dist/cjs/types.d.ts +39 -48
  52. package/dist/cjs/types.d.ts.map +1 -1
  53. package/dist/esm/arca-padron.d.ts +44 -31
  54. package/dist/esm/arca-padron.d.ts.map +1 -1
  55. package/dist/esm/arca-padron.js +62 -28
  56. package/dist/esm/arca-padron.js.map +1 -1
  57. package/dist/esm/base-client.d.ts +19 -10
  58. package/dist/esm/base-client.d.ts.map +1 -1
  59. package/dist/esm/base-client.js +33 -17
  60. package/dist/esm/base-client.js.map +1 -1
  61. package/dist/esm/condicion-iva.d.ts +9 -5
  62. package/dist/esm/condicion-iva.d.ts.map +1 -1
  63. package/dist/esm/condicion-iva.js +86 -39
  64. package/dist/esm/condicion-iva.js.map +1 -1
  65. package/dist/esm/constants.d.ts +57 -12
  66. package/dist/esm/constants.d.ts.map +1 -1
  67. package/dist/esm/constants.js +53 -11
  68. package/dist/esm/constants.js.map +1 -1
  69. package/dist/esm/errors.d.ts +38 -10
  70. package/dist/esm/errors.d.ts.map +1 -1
  71. package/dist/esm/errors.js +40 -11
  72. package/dist/esm/errors.js.map +1 -1
  73. package/dist/esm/index.d.ts +16 -8
  74. package/dist/esm/index.d.ts.map +1 -1
  75. package/dist/esm/index.js +14 -6
  76. package/dist/esm/index.js.map +1 -1
  77. package/dist/esm/mapping.d.ts +46 -3
  78. package/dist/esm/mapping.d.ts.map +1 -1
  79. package/dist/esm/mapping.js +117 -7
  80. package/dist/esm/mapping.js.map +1 -1
  81. package/dist/esm/padron-a10.d.ts +8 -5
  82. package/dist/esm/padron-a10.d.ts.map +1 -1
  83. package/dist/esm/padron-a10.js +21 -57
  84. package/dist/esm/padron-a10.js.map +1 -1
  85. package/dist/esm/padron-a100.d.ts +8 -4
  86. package/dist/esm/padron-a100.d.ts.map +1 -1
  87. package/dist/esm/padron-a100.js +27 -17
  88. package/dist/esm/padron-a100.js.map +1 -1
  89. package/dist/esm/padron-a13.d.ts +17 -7
  90. package/dist/esm/padron-a13.d.ts.map +1 -1
  91. package/dist/esm/padron-a13.js +37 -18
  92. package/dist/esm/padron-a13.js.map +1 -1
  93. package/dist/esm/padron-a4.d.ts +8 -5
  94. package/dist/esm/padron-a4.d.ts.map +1 -1
  95. package/dist/esm/padron-a4.js +101 -156
  96. package/dist/esm/padron-a4.js.map +1 -1
  97. package/dist/esm/padron-a5.d.ts +20 -7
  98. package/dist/esm/padron-a5.d.ts.map +1 -1
  99. package/dist/esm/padron-a5.js +82 -57
  100. package/dist/esm/padron-a5.js.map +1 -1
  101. package/dist/esm/types.d.ts +39 -48
  102. package/dist/esm/types.d.ts.map +1 -1
  103. package/llms.txt +46 -27
  104. package/package.json +3 -3
  105. package/dist/cjs/soap-client.d.ts +0 -2
  106. package/dist/cjs/soap-client.d.ts.map +0 -1
  107. package/dist/cjs/soap-client.js +0 -13
  108. package/dist/cjs/soap-client.js.map +0 -1
  109. package/dist/cjs/wsaa.d.ts +0 -3
  110. package/dist/cjs/wsaa.d.ts.map +0 -1
  111. package/dist/cjs/wsaa.js +0 -6
  112. package/dist/cjs/wsaa.js.map +0 -1
  113. package/dist/esm/soap-client.d.ts +0 -2
  114. package/dist/esm/soap-client.d.ts.map +0 -1
  115. package/dist/esm/soap-client.js +0 -3
  116. package/dist/esm/soap-client.js.map +0 -1
  117. package/dist/esm/wsaa.d.ts +0 -3
  118. package/dist/esm/wsaa.d.ts.map +0 -1
  119. package/dist/esm/wsaa.js +0 -2
  120. package/dist/esm/wsaa.js.map +0 -1
@@ -1,26 +1,55 @@
1
- // Base errors re-exported from common
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
- * Base error for Padrón SDK.
6
- * Extends ArcaError from common for backward compatibility.
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 servicio de Padrón (errores de negocio).
17
- * Extiende ArcaServiceError de common.
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
- constructor(message, errors) {
22
- super(message, errors);
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
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACzH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,MAAM,CAAmB,IAAI,GAAW,mBAAmB,CAAC;IAE5D,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;;AAGH;;;GAGG;AACH,MAAM,OAAO,sBAAuB,SAAQ,gBAAgB;IAC1D,MAAM,CAAmB,IAAI,GAAW,2BAA2B,CAAC;IAEpE,YAAY,OAAe,EAAE,MAAuC;QAClE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC"}
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"}
@@ -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, ArcaPadronError, ArcaPadronServiceError, } from './errors.js';
5
- export { BasePadronClient, type PadronClientConfig } from './base-client.js';
6
- export { WsaaClient } from './wsaa.js';
7
- export type { WsaaClientConfig } from './wsaa.js';
8
- export { PadronA5Client, type PadronA5ClientConfig } from './padron-a5.js';
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, checkServiceErrors } from './soap-client.js';
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,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,eAAe,EACf,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG7E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,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,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,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,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,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
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 (base from common, domain-specific local)
8
- export { ArcaError, ArcaAuthError, ArcaTicketVigenteError, ArcaSoapError, ArcaServiceError, ArcaPadronError, ArcaPadronServiceError, } from './errors.js';
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 './wsaa.js';
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, checkServiceErrors } from './soap-client.js';
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
@@ -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,0DAA0D;AAC1D,OAAO,EACL,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACvB,MAAM,aAAa,CAAC;AAErB,aAAa;AACb,OAAO,EAAE,gBAAgB,EAA2B,MAAM,kBAAkB,CAAC;AAE7E,oBAAoB;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,cAAc,EAA6B,MAAM,gBAAgB,CAAC;AAC3E,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;AA6CjF,sBAAsB;AACtB,OAAO,EACL,SAAS,EACT,SAAS,EACT,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,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
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"}
@@ -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
- /** Convierte a string, o `undefined` si el valor no vino. */
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 SOAP que puede venir solo, repetido o ausente. */
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,6DAA6D;AAC7D,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,MAAM,GAAG,SACO,CAAC;AAExD,6DAA6D;AAC7D,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,MAAM,GAAG,SACmB,CAAC;AAEpE,2EAA2E;AAC3E,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,UAAU,EAA6D,CAAC"}
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"}
@@ -1,8 +1,118 @@
1
- import { ensureArray } from './soap-client.js';
2
- /** Convierte a string, o `undefined` si el valor no vino. */
3
- export const optString = (v) => v === undefined || v === null ? undefined : String(v);
4
- /** Convierte a número, o `undefined` si el valor no vino. */
5
- export const optNumber = (v) => v === undefined || v === null || v === '' ? undefined : Number(v);
6
- /** Normaliza un elemento SOAP que puede venir solo, repetido o ausente. */
7
- export const records = (v) => ensureArray(v);
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
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAK/C,6DAA6D;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAU,EAAsB,EAAE,CAC1D,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAExD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAU,EAAsB,EAAE,CAC1D,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEpE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAgB,EAAE,CAAC,WAAW,CAAC,CAA0C,CAAC,CAAC"}
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"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"}
@@ -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 - Minimal taxpayer data.
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
- * Get minimal taxpayer data for a given CUIT.
11
+ * Datos básicos de un contribuyente.
11
12
  * @param auth - Authentication object with Token, Sign, and CuitRepresentada
12
- * @param cuit - CUIT of the taxpayer to query
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,EACV,UAAU,EACV,MAAM,EACP,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAEvD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD;;;;;OAKG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBrF,OAAO,CAAC,UAAU;CAoDnB"}
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"}
@@ -1,69 +1,33 @@
1
- import { ensureArray } from './soap-client.js';
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 - Minimal taxpayer data.
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
- * Get minimal taxpayer data for a given CUIT.
9
+ * Datos básicos de un contribuyente.
9
10
  * @param auth - Authentication object with Token, Sign, and CuitRepresentada
10
- * @param cuit - CUIT of the taxpayer to query
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 result = await this.call('getPersona', { ...this.authParams(auth), idPersona: cuit }, opts);
15
- // Extract persona data
16
- const persona = (result['persona'] ?? result);
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":"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"}
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 - Parameter tables.
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
- * Get a parameter table by collection name.
11
- * @param auth - Authentication object with Token, Sign, and CuitRepresentada
12
- * @param collectionName - Name of the collection to query (e.g. "SUPA.E_PROVINCIA")
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;AACxD,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EACV,eAAe,EACf,MAAM,EACP,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAExD;;GAEG;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"}
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"}
@@ -1,31 +1,41 @@
1
- import { ensureArray } from './soap-client.js';
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 - Parameter tables.
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
- * Get a parameter table by collection name.
9
- * @param auth - Authentication object with Token, Sign, and CuitRepresentada
10
- * @param collectionName - Name of the collection to query (e.g. "SUPA.E_PROVINCIA")
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
- const result = await this.call('getParameterCollectionByName', { ...this.authParams(auth), collectionName }, opts);
14
- // Extract parameter collection
15
- const collection = result['parameterCollection'];
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
- return [];
26
+ throw new ArcaPadronError(`Respuesta inválida de ARCA (${METHOD}): falta parameterCollection`);
18
27
  }
19
- const parameterList = ensureArray((collection['parameterList'] ?? []));
20
- return parameterList.map((p) => {
21
- const attrList = ensureArray((p['attributeList'] ?? []));
22
- const atributos = attrList.map((a) => ({
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: String(p['id'] ?? ''),
28
- descripcion: String(p['description'] ?? ''),
37
+ id: reqString(p['id'], 'parameterList.id'),
38
+ descripcion,
29
39
  atributos: atributos.length > 0 ? atributos : undefined,
30
40
  };
31
41
  });