@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,69 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.0 (2026-11-01)
4
+
5
+ ### Breaking changes
6
+ - Requiere `@ramiidv/arca-common` ^0.4.0. `ArcaPadronConfig` extiende `ArcaBaseConfig` (`cuit` acepta
7
+ `string | number`; se agregan `tokenTTLMinutes`, `loginErrorCooldownMs`, `fetch`, `legacyTls` y
8
+ `endpoints`, que se pasan al `WsaaClient` y a cada servicio).
9
+ - Las CUIT se validan localmente con `validateCuit` (dígito verificador) y se envían normalizadas: una
10
+ CUIT inválida (también la representada de la config) lanza `ArcaValidationError` sin llamar a ARCA.
11
+ - Los SOAP Faults de negocio conocidos (CUIT inexistente, clave INACTIVA, id inválido, token no
12
+ autorizado; textos de los manuales) se lanzan como `ArcaPadronServiceError` con `reason` tipado y el
13
+ `ArcaSoapError` original en `cause` (antes llegaban como `ArcaSoapError`).
14
+ - Si `personaReturn` no trae `persona` (A4, A10, A13), la constancia no trae `datosGenerales` ni
15
+ `errorConstancia`, o A100 no trae `parameterCollection`, se lanza `ArcaPadronError` (antes se
16
+ devolvía una persona inventada `{ idPersona: '', tipoPersona: 'FISICA' }` o `[]`). También si falta el
17
+ id de un ítem (`idImpuesto`, `idActividad`, `idCategoria`, etc.): ya no se rellenan con `0` / `''`.
18
+ - `status()` devuelve `PromiseSettledResult<ServerStatus>` por servicio (`Promise.allSettled`): un
19
+ servicio caído ya no hace fallar todo.
20
+ - `ImpuestoId.BIENES_PERSONALES` es `180` (estaba como `31`, incorrecto); se quitó el alias
21
+ `ImpuestoId.MONOTRIBUTO_SOCIAL` (mismo valor que `MONOTRIBUTO`, rompía el mapeo inverso).
22
+ - `condicionIvaDesdePadron`: el impuesto 30 en estado `NA` / `NO APORTANTE` ya no se interpreta como IVA
23
+ no alcanzado (`NA` es "NO APORTANTE" en la tabla TipoEstado); un impuesto 20 en baja ya no da
24
+ monotributista aunque haya categoría.
25
+ - Tipos: `DomicilioA4` ya no tiene `estadoDomicilio` (no existe en el WSDL de A4) y, como
26
+ `DependenciaA4`/`DependenciaA10`, tiene sus campos opcionales (son `minOccurs="0"`);
27
+ `ImpuestoA4.estado` y `ParameterAttribute.value` son opcionales.
28
+ - Se eliminaron los módulos internos `soap-client.ts` y `wsaa.ts` (re-exports puros): `WsaaClient`,
29
+ `ensureArray`, `parseXml` y `buildXml` se siguen exportando desde el índice.
30
+
31
+ ### Features
32
+ - `getConstanciasInscripcion(cuits)` / `a5.getPersonaList`: `getPersonaList_v2`, hasta 250 CUITs; las
33
+ inexistentes vuelven con `errorConstancia`.
34
+ - `getPersonaA13V2(cuit)` / `a13.getPersonaV2`: consulta de claves INACTIVAS (manual A13 v1.4).
35
+ - `monotributo.componenteDeSociedad` en la constancia (tipo `relacion` del WSDL).
36
+ - `CollectionName`: `AUTONOMO_MONOTRIBUTO`, `REGIMEN`, `TIPO_REGIMEN`, `CARACTERIZACION`,
37
+ `TIPO_ARCHIVO`, `ACTIVIDAD_RUBRO`, `RUBRO_ACTIVIDAD`, `ACTIVIDAD_OCUPACIONAL` (manual A100 v2.1).
38
+ - `ImpuestoId`: `MONOTRIBUTO_AUTONOMO` (21), `AUTONOMOS` (308).
39
+ - `getIdPersonaListByDocumento` acepta el documento con puntos/espacios y lo valida.
40
+ - Se exportan `ArcaValidationError`, `DocTipo`, `PadronErrorReason`, `PadronStatus`, `PadronServicio`,
41
+ `ComponenteSociedadA5`, `PadronSoapOptions` y `MAX_PERSONA_LIST`.
42
+
43
+ ### Fixes
44
+ - A4 y A10: los campos `xs:string` con contenido numérico (`codPostal`, `datoAdicional`, `localidad`,
45
+ `numeroInscripcion`) salían como `number`; ahora son `string`. A4 y A10 usan los helpers de
46
+ `mapping.ts` (sin bloques duplicados de dependencia, claves inactivas y domicilio).
47
+ - A100: `id`, `description`, `name` y `value` se preservan tal cual (`"10.50"` ya no se convierte en
48
+ `10.5`, ni `"1E3"` en `1000`). Usa `parseNumbers: false` de arca-common en lugar de envolver `fetch`:
49
+ el A100 ya no desactiva el fallback TLS legacy (`legacyTls`) y respeta el `fetch` de la config.
50
+ - Todos los servicios parsean las respuestas con `parseNumbers: false` y convierten explícitamente los
51
+ campos numéricos del WSDL: los `xs:string` con decimales, exponente o ceros a la izquierda
52
+ (`datoAdicional`, `piso`, `numeroDocumento`, etc.) llegan tal cual (`"1.50"` antes era `"1.5"`).
53
+ - Los elementos `xsi:nil="true"` se tratan como ausentes (antes, por ejemplo, una caracterización nil
54
+ se mapeaba como `{ idCaracterizacion: 0 }`).
55
+ - `condicionIvaDesdePadron`: reconoce los estados del manual A4 en palabras (`ACTIVO EN TRAMITE`,
56
+ `EXENTO`, `EXENTO EN TRAMITE`, `BAJA ...`) además de las abreviaturas; categorías 101 a 104
57
+ (proyectos productivos) como monotributo social; incluye `errorRegimenGeneral` / `errorMonotributo`
58
+ en el motivo y ya no afirma "No figura inscripto" cuando ARCA informó errores.
59
+ - `ArcaPadronError` y `ArcaPadronServiceError` ahora se lanzan de verdad (la documentación enseñaba a
60
+ capturarlos pero el SDK nunca los usaba).
61
+
62
+ ### Deprecated
63
+ - `TipoDocumento` (es `DocTipo` numérico de WSFEv1, no el `tipoDocumento` string del padrón): usar `DocTipo`.
64
+ - `checkServiceErrors` desde este paquete (Padrón informa los errores como SOAP Fault).
65
+ - `ImpuestoId.IVA_NO_INSCRIPTO` (33), sin respaldo en los manuales.
66
+
3
67
  ## 0.3.0 (2026-10-30)
4
68
 
5
69
  ### Breaking changes
@@ -37,6 +101,7 @@ deprecados; A5 sí (reemplazado por la constancia de inscripción).
37
101
  ## 0.2.0
38
102
 
39
103
  - Migración de WSAA/SOAP a `@ramiidv/arca-common`.
104
+ - CI en Node 18/20/22, build standalone, workflow de release, `publishConfig` público y homepage.
40
105
 
41
106
  ## 0.1.0 (2026-03-31)
42
107
 
package/README.md CHANGED
@@ -7,14 +7,14 @@ que pide la factura electronica (`CondicionIVAReceptorId`).
7
7
 
8
8
  ## Caracteristicas
9
9
 
10
- - Zero dependencias SOAP: construye los envelopes SOAP manualmente
11
- - Zero dependencias HTTP: usa `fetch` nativo (Node 18+)
12
- - Firma CMS/PKCS#7 con node-forge
10
+ - Unica dependencia: `@ramiidv/arca-common` (WSAA, SOAP, validadores); usa `fetch` nativo (Node 18+)
13
11
  - ESM y CommonJS (funciona con `import` y con `require`, incluido TypeScript con `"module": "CommonJS"`)
14
12
  - TypeScript estricto con tipos completos
15
13
  - Cache automatico de tokens WSAA, con persistencia opcional (`ticketStorage`) y ajuste de reloj
16
14
  - Cancelacion con `AbortSignal` (global o por llamada)
17
- - Reintentos con backoff exponencial
15
+ - Reintentos con backoff exponencial ante errores transitorios (nunca ante un SOAP Fault)
16
+ - Errores de negocio tipados: `ArcaPadronServiceError` con `reason` (`inexistente`, `inactiva`, ...)
17
+ - Validacion local de CUIT (digito verificador) antes de llamar a ARCA
18
18
  - Sistema de eventos para monitoreo
19
19
 
20
20
  ## Instalacion
@@ -32,23 +32,23 @@ import { ArcaPadron, FileTicketStorage } from '@ramiidv/arca-padron';
32
32
  const padron = new ArcaPadron({
33
33
  cert: readFileSync('./cert.pem', 'utf-8'),
34
34
  key: readFileSync('./key.pem', 'utf-8'),
35
- cuit: '20123456789',
35
+ cuit: '20123456786',
36
36
  production: false, // false = homologacion
37
37
  ticketStorage: new FileTicketStorage('./.arca-tickets'), // recomendado
38
38
  });
39
39
 
40
40
  // Constancia de inscripcion (ex A5) + condicion frente al IVA para facturar
41
41
  import { condicionIvaDesdePadron } from '@ramiidv/arca-padron';
42
- const constancia = await padron.getConstanciaInscripcion('30712345674');
42
+ const constancia = await padron.getConstanciaInscripcion('30712345671');
43
43
  const { condicionIva, motivo } = condicionIvaDesdePadron(constancia);
44
44
  // condicionIva: CondicionIva.RESPONSABLE_INSCRIPTO (1), motivo: "Inscripto en IVA (impuesto 30)."
45
45
 
46
46
  // Consulta completa (A4)
47
- const contribuyente = await padron.getPersona('20123456789');
47
+ const contribuyente = await padron.getPersona('20-11111111-2'); // con o sin guiones
48
48
  console.log(contribuyente.tipoPersona, contribuyente.nombre);
49
49
 
50
50
  // Consulta basica (A10)
51
- const contribuyenteBasico = await padron.getPersonaBasic('20123456789');
51
+ const contribuyenteBasico = await padron.getPersonaBasic('20111111112');
52
52
  console.log(contribuyenteBasico.domicilio?.[0]?.direccion);
53
53
 
54
54
  // Tablas de parametros (A100)
@@ -59,32 +59,30 @@ console.log(provincias.length, 'provincias');
59
59
 
60
60
  ## Configuracion
61
61
 
62
+ `ArcaPadronConfig` extiende `ArcaBaseConfig` de `@ramiidv/arca-common`:
63
+
62
64
  ```typescript
63
- interface ArcaPadronConfig {
64
- /** Certificado X.509 en formato PEM */
65
- cert: string;
66
- /** Clave privada RSA en formato PEM */
67
- key: string;
68
- /** CUIT de la entidad representada */
69
- cuit: string;
70
- /** Usar endpoints de produccion (default: false) */
71
- production?: boolean;
72
- /** Cantidad de reintentos en errores 5xx/red (default: 1) */
73
- retries?: number;
74
- /** Delay base en ms para backoff exponencial (default: 1000) */
75
- retryDelayMs?: number;
76
- /** Callback de eventos para monitoreo */
65
+ interface ArcaPadronConfig extends ArcaBaseConfig {
66
+ // De ArcaBaseConfig:
67
+ cert: string; // Certificado X.509 en formato PEM
68
+ key: string; // Clave privada en formato PEM
69
+ cuit: string | number; // CUIT representada (se valida el digito verificador)
70
+ production?: boolean; // default: false (homologacion)
71
+ timeout?: number; // ms por request (default: 30000)
72
+ retries?: number; // reintentos ante errores transitorios (default: 1)
73
+ retryDelayMs?: number; // backoff exponencial (default: 1000)
74
+ tokenTTLMinutes?: number; // vigencia pedida a WSAA (default: 720)
77
75
  onEvent?: (event: ArcaEvent) => void;
78
- /** Persistencia de tickets WSAA entre reinicios (recomendado) */
79
- ticketStorage?: TicketStorage;
80
- /** Desfase relojARCA - relojLocal en ms (default: 0) */
81
- clockOffsetMs?: number;
82
- /** Ajustar el desfase si WSAA rechaza el login por reloj (default: true) */
83
- autoClockSkew?: boolean;
84
- /** Cancela todas las llamadas de la instancia */
85
- signal?: AbortSignal;
86
- /** WsaaClient compartido (ej: `arca.wsaa` de arca-facturacion con el mismo certificado) */
87
- wsaa?: WsaaClient;
76
+ ticketStorage?: TicketStorage; // persistencia de tickets WSAA (recomendado)
77
+ clockOffsetMs?: number; // relojARCA - relojLocal en ms (default: 0)
78
+ autoClockSkew?: boolean; // default: true
79
+ loginErrorCooldownMs?: number; // default: 60000
80
+ fetch?: typeof fetch; // fetch propio (proxy, mTLS, tests)
81
+ legacyTls?: 'auto' | 'never' | 'always';
82
+ // Propias de Padron:
83
+ signal?: AbortSignal; // cancela todas las llamadas de la instancia
84
+ wsaa?: WsaaClient; // WsaaClient compartido (ej: arca.wsaa de arca-facturacion)
85
+ endpoints?: { wsaa?: string; a5?: string; a4?: string; a10?: string; a13?: string; a100?: string };
88
86
  }
89
87
  ```
90
88
 
@@ -97,71 +95,102 @@ Si usas tambien `@ramiidv/arca-facturacion` con el mismo certificado, comparti e
97
95
 
98
96
  ```typescript
99
97
  const arca = new Arca({ cuit, cert, key, ticketStorage });
100
- const padron = new ArcaPadron({ cuit: String(cuit), cert, key, wsaa: arca.wsaa });
98
+ const padron = new ArcaPadron({ cuit, cert, key, wsaa: arca.wsaa });
101
99
  ```
102
100
 
103
- Todos los metodos aceptan un ultimo parametro opcional `{ signal }`.
101
+ Todos los metodos aceptan un ultimo parametro opcional `{ signal }`. Las CUIT se aceptan con o sin
102
+ guiones (`'20-11111111-2'`, `'20111111112'` o `20111111112`): se validan localmente (digito
103
+ verificador) y se envian normalizadas; una CUIT invalida lanza `ArcaValidationError` sin llamar a ARCA.
104
+
105
+ Todas las operaciones de Padron son consultas (no modifican nada en ARCA): se pueden reintentar sin
106
+ riesgo.
104
107
 
105
108
  ## API
106
109
 
107
110
  ### Metodos de alto nivel
108
111
 
109
- #### `getConstanciaInscripcion(cuit: string): Promise<PersonaA5>`
112
+ #### `getConstanciaInscripcion(cuit): Promise<PersonaA5>`
110
113
 
111
114
  Constancia de inscripcion via `ws_sr_constancia_inscripcion` (metodo `getPersona_v2`). Reemplaza a
112
115
  Padron A5 (`ws_sr_padron_a5`), deprecado por ARCA. Incluye datos generales, domicilio fiscal,
113
116
  caracterizaciones, regimen general (impuestos, actividades, regimenes), monotributo (categoria,
114
- impuestos, actividad) y, si ARCA no puede emitir la constancia, `errorConstancia`.
117
+ impuestos, actividad, `componenteDeSociedad`) y, si ARCA no puede emitir la constancia (o una parte),
118
+ `errorConstancia` / `errorRegimenGeneral` / `errorMonotributo`: esos casos se devuelven, no se lanzan.
115
119
 
116
120
  ```typescript
117
- const constancia = await padron.getConstanciaInscripcion('30712345674');
121
+ const constancia = await padron.getConstanciaInscripcion('30712345671');
118
122
  constancia.domicilioFiscal; // { direccion, localidad, codPostal, idProvincia, ... }
119
123
  constancia.impuestos; // impuestos de ambos regimenes
120
124
  constancia.monotributo?.categoria; // { idCategoria, descripcionCategoria, ... }
121
125
  ```
122
126
 
127
+ #### `getConstanciasInscripcion(cuits): Promise<PersonaA5[]>`
128
+
129
+ Hasta 250 CUITs en una llamada (`getPersonaList_v2`). Las CUITs inexistentes no hacen fallar la
130
+ consulta: vuelven como una persona con `errorConstancia.error = ['No existe persona con ese Id']`.
131
+
132
+ ```typescript
133
+ const constancias = await padron.getConstanciasInscripcion(['20224107030', '27015942210']);
134
+ for (const c of constancias) {
135
+ if (c.errorConstancia) console.warn(c.idPersona, c.errorConstancia.error);
136
+ }
137
+ ```
138
+
123
139
  #### `condicionIvaDesdePadron(persona): { condicionIva: CondicionIva | null; motivo: string }`
124
140
 
125
141
  Funcion pura (no consulta ARCA). Acepta una constancia (`PersonaA5`) o una persona de A4:
126
142
 
127
143
  | Padron | `condicionIva` |
128
144
  | --- | --- |
129
- | Monotributo activo (impuesto 20 o categoria) | `MONOTRIBUTISTA` (6) |
130
- | Monotributo social (categorias 61, 99, 100) | `MONOTRIBUTO_SOCIAL` (13) |
131
- | Trabajador independiente promovido | `MONOTRIBUTO_INDEPENDIENTE_PROMOVIDO` (16) |
132
- | IVA activo (impuesto 30) | `RESPONSABLE_INSCRIPTO` (1) |
133
- | IVA exento (impuesto 32) | `EXENTO` (4) |
134
- | IVA no alcanzado (impuesto 34) | `IVA_NO_ALCANZADO` (15) |
135
- | Ninguno de los anteriores, o constancia no emitida | `null` (con el motivo) |
145
+ | Monotributo activo (impuesto 20 activo; si no figura el 20, la categoria) | `MONOTRIBUTISTA` (6) |
146
+ | Monotributo social (categorias 61, 99, 100 y proyectos productivos 101-104) | `MONOTRIBUTO_SOCIAL` (13) |
147
+ | Trabajador independiente promovido (por la descripcion de la categoria) | `MONOTRIBUTO_INDEPENDIENTE_PROMOVIDO` (16) |
148
+ | IVA (impuesto 30) `ACTIVO` / `ACTIVO EN TRAMITE` / `AC` | `RESPONSABLE_INSCRIPTO` (1) |
149
+ | IVA (impuesto 30) `EXENTO` / `EXENTO EN TRAMITE` / `EX`, o impuesto 32 | `EXENTO` (4) |
150
+ | Impuesto 34 (IVA no alcanzado) | `IVA_NO_ALCANZADO` (15) |
151
+ | Ninguno de los anteriores, constancia no emitida o con errores | `null` (con el motivo) |
152
+
153
+ Los impuestos en `BAJA PROVISORIA`, `BAJA DEFINITIVA` o `NO APORTANTE` no cuentan (un impuesto 20
154
+ en baja no se considera monotributo aunque haya categoria). Si el padron no alcanza, devuelve `null`
155
+ en lugar de asumir consumidor final: decidilo segun la operacion. Si ARCA informo
156
+ `errorRegimenGeneral` / `errorMonotributo`, el motivo los incluye.
157
+
158
+ Fuentes: manual de `ws_sr_constancia_inscripcion` v4.1 (impuestos 20 y 30, estado `AC`, categorias
159
+ de monotributo del anexo 5.3) y manual de `ws_sr_padron_a4` v1.3 §5.3 (TipoEstado). Los impuestos 32
160
+ y 34 no figuran en los manuales: se reconocen por id o por su descripcion. La categoria 98
161
+ (`B ASOCIADO COOPERATIVA`) se trata como monotributo comun.
136
162
 
137
- Si el padron no alcanza, devuelve `null` en lugar de asumir consumidor final: decidilo segun la
138
- operacion. Fuente: manual de `ws_sr_constancia_inscripcion` v4.1 (impuestos 20 y 30, estado `AC`,
139
- categorias de monotributo social). Los impuestos 32 y 34 se reconocen tambien por su descripcion.
163
+ #### `getPersonaA13(cuit): Promise<PersonaA13>` y `getPersonaA13V2(cuit)`
140
164
 
141
- #### `getPersonaA13(cuit: string): Promise<PersonaA13>`
165
+ Datos basicos via `ws_sr_padron_a13`. `getPersona` falla con `reason: 'inactiva'` si la clave esta
166
+ inactiva; `getPersonaV2` (manual A13 v1.4) devuelve los datos igual (con `estadoClave: 'INACTIVO'`).
142
167
 
143
- Datos basicos via `ws_sr_padron_a13`. Tambien `getIdPersonaListByDocumento(dni)` devuelve los
144
- CUIT/CUIL asociados a un documento.
168
+ #### `getIdPersonaListByDocumento(documento): Promise<string[]>`
145
169
 
146
- #### `getPersona(cuit: string): Promise<PersonaA4>`
170
+ CUIT/CUIL asociados a un numero de documento (A13). Acepta puntos y espacios (`'11.709.676'`).
171
+ Devuelve `[]` si ARCA no informa claves.
172
+
173
+ #### `getPersona(cuit): Promise<PersonaA4>`
147
174
 
148
175
  Obtiene los datos completos de un contribuyente via ws_sr_padron_a4. Autentica automaticamente con WSAA.
149
176
 
150
177
  ```typescript
151
- const contribuyente = await padron.getPersona('20123456789');
178
+ const contribuyente = await padron.getPersona('20111111112');
152
179
  ```
153
180
 
154
- #### `getPersonaBasic(cuit: string): Promise<PersonaA10>`
181
+ #### `getPersonaBasic(cuit): Promise<PersonaA10>`
155
182
 
156
183
  Obtiene los datos basicos de un contribuyente via ws_sr_padron_a10.
157
184
 
158
185
  ```typescript
159
- const contribuyenteBasico = await padron.getPersonaBasic('20123456789');
186
+ const contribuyenteBasico = await padron.getPersonaBasic('20111111112');
160
187
  ```
161
188
 
162
189
  #### `getParametros(collection: string): Promise<ParameterRecord[]>`
163
190
 
164
- Obtiene una tabla de parametros via ws_sr_padron_a100.
191
+ Obtiene una tabla de parametros via ws_sr_padron_a100. `id`, `descripcion` y los `value` de los
192
+ atributos se devuelven tal cual los envia ARCA (`"10.50"` sigue siendo `"10.50"`). Lanza
193
+ `ArcaPadronError` si la respuesta no trae `parameterCollection`; una coleccion vacia devuelve `[]`.
165
194
 
166
195
  ```typescript
167
196
  import { CollectionName } from '@ramiidv/arca-padron';
@@ -171,15 +200,19 @@ const tiposDocumento = await padron.getParametros(CollectionName.TIPO_DOCUMENTO)
171
200
  const tiposRelacion = await padron.getParametros(CollectionName.TIPO_RELACION);
172
201
  ```
173
202
 
174
- Colecciones disponibles (enum `CollectionName`, valores SUPA.\* prefijados): `PROVINCIA`, `TIPO_DOCUMENTO`, `TIPO_DOMICILIO`, `TIPO_CLAVE`, `TIPO_EMPRESA_JURIDICA`, `TIPO_EMPRESA_JURIDICA_SUBGRUPO`, `TIPO_RELACION`, `TIPO_SUBTIPO_RELACION`, `TIPO_COMPONENTE_SOCIEDAD`, `TIPO_RELACION_COMPONENTE_SOC`, `TIPO_EMAIL`, `TIPO_TELEFONO`, `TIPO_RESIDENCIA`, `TIPO_DATO_ADICIONAL_DOMICILIO`, `ORGANISMO_INFORMANTE`, `ORGANISMO_CONTROL`, `PROVINCIA_SOCIEDAD_ORG`, `SEXO`, `CALLE`, `LOCALIDAD`.
203
+ Colecciones disponibles (enum `CollectionName`, manual A100 v2.1 anexo 5.1): `PROVINCIA`, `TIPO_DOCUMENTO`, `TIPO_DOMICILIO`, `TIPO_CLAVE`, `TIPO_EMPRESA_JURIDICA`, `TIPO_EMPRESA_JURIDICA_SUBGRUPO`, `TIPO_RELACION`, `TIPO_SUBTIPO_RELACION`, `TIPO_COMPONENTE_SOCIEDAD`, `TIPO_RELACION_COMPONENTE_SOC`, `TIPO_EMAIL`, `TIPO_TELEFONO`, `TIPO_RESIDENCIA`, `TIPO_DATO_ADICIONAL_DOMICILIO`, `ORGANISMO_INFORMANTE`, `ORGANISMO_CONTROL`, `PROVINCIA_SOCIEDAD_ORG`, `SEXO`, `CALLE`, `LOCALIDAD`, `AUTONOMO_MONOTRIBUTO`, `REGIMEN`, `TIPO_REGIMEN`, `CARACTERIZACION`, `TIPO_ARCHIVO`, `ACTIVIDAD_RUBRO`, `RUBRO_ACTIVIDAD`, `ACTIVIDAD_OCUPACIONAL`.
204
+ La coleccion de categorias de monotributo no se incluye porque su nombre aparece cortado en el manual.
175
205
 
176
- #### `status(): Promise<{ a5, a4, a10, a13, a100 }>`
206
+ #### `status(): Promise<PadronStatus>`
177
207
 
178
- Verifica el estado de los servicios (no requiere autenticacion).
208
+ Verifica el estado de los servicios (`dummy`, no requiere autenticacion). Consulta los cinco en
209
+ paralelo con `Promise.allSettled`: cada uno es un `PromiseSettledResult<ServerStatus>`, asi que un
210
+ servicio caido no oculta el estado de los demas.
179
211
 
180
212
  ```typescript
181
- const estadoServicios = await padron.status();
182
- console.log(estadoServicios.a4.appserver); // "OK"
213
+ const estado = await padron.status();
214
+ if (estado.a4.status === 'fulfilled') console.log(estado.a4.value.appserver); // "OK"
215
+ else console.error('A4 caido:', estado.a4.reason);
183
216
  ```
184
217
 
185
218
  ### Acceso a clientes de bajo nivel
@@ -195,11 +228,12 @@ const ticket = await padron.wsaa.getAccessTicket('ws_sr_padron_a4');
195
228
  const credenciales = {
196
229
  Token: ticket.token,
197
230
  Sign: ticket.sign,
198
- CuitRepresentada: '20123456789',
231
+ CuitRepresentada: '20123456786',
199
232
  };
200
233
 
201
234
  // Llamar directamente al servicio
202
- const contribuyente = await padron.a4.getPersona(credenciales, '20123456789');
235
+ const contribuyente = await padron.a4.getPersona(credenciales, '20111111112');
236
+ // Tambien: padron.a5.getPersona / getPersonaList, padron.a13.getPersonaV2, padron.a100.getParameterCollectionByName
203
237
  ```
204
238
 
205
239
  Clientes disponibles: `padron.wsaa`, `padron.a5` (constancia), `padron.a4`, `padron.a10`,
@@ -207,6 +241,10 @@ Clientes disponibles: `padron.wsaa`, `padron.a5` (constancia), `padron.a4`, `pad
207
241
 
208
242
  ## Tipos de respuesta
209
243
 
244
+ Los campos `xs:string` de los WSDL (codigos postales, datos adicionales, numeros de inscripcion,
245
+ documentos) y los `xs:long` (CUIT, actividades, telefonos) se devuelven siempre como `string`, aunque
246
+ sean numericos. Los elementos `xsi:nil` se tratan como ausentes.
247
+
210
248
  ### PersonaA4 (datos completos)
211
249
 
212
250
  ```typescript
@@ -284,50 +322,62 @@ interface ParameterRecord {
284
322
 
285
323
  interface ParameterAttribute {
286
324
  name: string;
287
- value: string;
325
+ value?: string; // tal cual lo envia ARCA (xs:string)
288
326
  }
289
327
  ```
290
328
 
291
329
  ## Manejo de errores
292
330
 
293
- El SDK usa una jerarquia de errores de 4 clases:
294
-
295
331
  ```
296
332
  Error
297
333
  └── ArcaError (base, de @ramiidv/arca-common)
298
- ├── ArcaPadronError
334
+ ├── ArcaPadronError (respuesta de ARCA sin un dato obligatorio, ej: personaReturn sin persona)
299
335
  ├── ArcaAuthError (errores de WSAA)
300
336
  │ └── ArcaTicketVigenteError (TA vigente que no esta en memoria ni en el storage)
337
+ ├── ArcaValidationError (CUIT o documento invalido: no se llamo a ARCA)
301
338
  ├── ArcaServiceError
302
- │ └── ArcaPadronServiceError (errores de negocio)
303
- └── ArcaSoapError (errores HTTP/transporte, SOAP Faults)
339
+ │ └── ArcaPadronServiceError (errores de negocio: reason + errors + cause)
340
+ └── ArcaSoapError (HTTP/red/timeout y SOAP Faults no reconocidos)
304
341
  ```
305
342
 
306
343
  Todos tienen un `code` estable y `instanceof` funciona aunque haya mas de una copia del paquete
307
- cargada. ARCA informa "persona inexistente" y similares como SOAP Fault (`ArcaSoapError` con
308
- `faultString`).
344
+ cargada. ARCA informa los errores de negocio como SOAP Fault; el SDK reconoce los textos de los
345
+ manuales y los convierte en `ArcaPadronServiceError` con un `reason` tipado (el `ArcaSoapError`
346
+ original queda en `cause`). No se reintentan.
347
+
348
+ | `reason` | Mensaje de ARCA |
349
+ | --- | --- |
350
+ | `inexistente` | "La Clave (CUIT/CUIL) consultada es inexistente", "No existe persona con ese Id" |
351
+ | `inactiva` | "La clave (CUIT/CUIL) consultada se encuentra INACTIVA" (A13: usar `getPersonaA13V2`) |
352
+ | `id_invalido` | "El Id de la persona no es valido" |
353
+ | `no_autorizado` | "No autorizado, par token/sign invalido.", "Falta token y/o sign.", "Debe enviar la CUIT representada", "Este token no le permite actuar en representacion de la CUIT ..." |
354
+
355
+ Un SOAP Fault con otro texto queda como `ArcaSoapError` (con `faultString`). En la constancia de
356
+ inscripcion, los motivos por los que ARCA no emite la constancia (CUIT limitada, domicilio
357
+ incompleto, etc.) no son excepciones: vienen en `errorConstancia`, `errorRegimenGeneral` y
358
+ `errorMonotributo`.
309
359
 
310
360
  ```typescript
311
361
  import {
312
362
  ArcaAuthError,
313
363
  ArcaPadronServiceError,
314
364
  ArcaSoapError,
365
+ ArcaValidationError,
315
366
  } from '@ramiidv/arca-padron';
316
367
 
317
368
  try {
318
- await padron.getPersona('20123456789');
369
+ await padron.getPersona('20111111112');
319
370
  } catch (error) {
320
- if (error instanceof ArcaAuthError) {
321
- // Certificado vencido, servicio no autorizado, WSAA caido
322
- console.error('Error de autenticacion:', error.message);
371
+ if (error instanceof ArcaValidationError) {
372
+ console.error('CUIT invalida:', error.message);
323
373
  } else if (error instanceof ArcaPadronServiceError) {
324
- // Errores de negocio (CUIT no encontrada, etc.)
325
- for (const detalle of error.errors) {
326
- console.error(`[${detalle.code}] ${detalle.msg}`);
327
- }
374
+ if (error.reason === 'inexistente') console.error('La CUIT no existe');
375
+ else if (error.reason === 'inactiva') console.error('La CUIT esta inactiva');
376
+ else console.error(error.errors[0]?.msg);
377
+ } else if (error instanceof ArcaAuthError) {
378
+ console.error('Error de autenticacion:', error.message);
328
379
  } else if (error instanceof ArcaSoapError) {
329
- // Errores HTTP/red
330
- console.error('Error HTTP:', error.statusCode, error.message);
380
+ console.error('Error HTTP/red:', error.statusCode, error.message);
331
381
  }
332
382
  }
333
383
  ```
@@ -377,10 +427,15 @@ import {
377
427
 
378
428
  // Verificar si el contribuyente esta inscripto en IVA (mejor: condicionIvaDesdePadron)
379
429
  const tieneIva = contribuyente.impuesto?.some(
380
- (imp) => imp.idImpuesto === ImpuestoId.IVA_RESPONSABLE_INSCRIPTO && imp.estado === 'ACTIVO'
430
+ (imp) => imp.idImpuesto === ImpuestoId.IVA_RESPONSABLE_INSCRIPTO && imp.estado?.startsWith('ACTIVO')
381
431
  );
382
432
 
383
- // ImpuestoId.MONOTRIBUTO = 20 (antes figuraba como 21, que era incorrecto)
433
+ // ImpuestoId.MONOTRIBUTO = 20, IVA_RESPONSABLE_INSCRIPTO = 30, BIENES_PERSONALES = 180,
434
+ // EMPLEADOR = 301, AUTONOMOS = 308 (manuales de ARCA). IVA_EXENTO (32) e IVA_NO_ALCANZADO (34)
435
+ // no figuran en los manuales del padron.
436
+ //
437
+ // `TipoDocumento` esta deprecado: es `DocTipo` (codigos numericos de WSFEv1), no el
438
+ // `tipoDocumento` string del padron ("DNI", "LC"...).
384
439
  ```
385
440
 
386
441
  ## Requisitos
@@ -5,7 +5,7 @@ import { PadronA5Client } from './padron-a5.js';
5
5
  import { PadronA10Client } from './padron-a10.js';
6
6
  import { PadronA13Client } from './padron-a13.js';
7
7
  import { PadronA100Client } from './padron-a100.js';
8
- import type { ArcaPadronConfig, ParameterRecord, PersonaA4, PersonaA5, PersonaA10, PersonaA13, ServerStatus } from './types.js';
8
+ import type { ArcaPadronConfig, PadronStatus, ParameterRecord, PersonaA4, PersonaA5, PersonaA10, PersonaA13 } from './types.js';
9
9
  /**
10
10
  * Main orchestrator class for ARCA Padrón web services.
11
11
  *
@@ -47,51 +47,64 @@ export declare class ArcaPadron {
47
47
  private readonly signal?;
48
48
  constructor(config: ArcaPadronConfig);
49
49
  /**
50
- * Constancia de inscripción (ws_sr_constancia_inscripcion, ex Padrón A5):
51
- * datos generales, domicilio fiscal, impuestos del régimen general y
52
- * monotributo. Combinar con `condicionIvaDesdePadron` para facturar.
53
- * @param cuit - CUIT of the taxpayer to query
50
+ * Constancia de inscripción (ws_sr_constancia_inscripcion, ex Padrón A5,
51
+ * `getPersona_v2`): datos generales, domicilio fiscal, impuestos del régimen
52
+ * general y monotributo. Combinar con `condicionIvaDesdePadron` para facturar.
53
+ * @param cuit - CUIT a consultar (con o sin guiones)
54
+ * @throws ArcaValidationError si la CUIT es inválida (dígito verificador)
55
+ * @throws ArcaPadronServiceError si ARCA informa la CUIT inexistente, inactiva, etc.
54
56
  */
55
- getConstanciaInscripcion(cuit: string, call?: CallOptions): Promise<PersonaA5>;
57
+ getConstanciaInscripcion(cuit: string | number, call?: CallOptions): Promise<PersonaA5>;
56
58
  /**
57
- * Get full taxpayer data (Padrón A4) for a given CUIT.
58
- * Authenticates automatically via WSAA.
59
- * @param cuit - CUIT of the taxpayer to query
59
+ * Constancias de inscripción de hasta 250 CUITs en una llamada
60
+ * (`getPersonaList_v2`). Las CUITs inexistentes vuelven con `errorConstancia`
61
+ * ("No existe persona con ese Id") en lugar de hacer fallar la consulta.
60
62
  */
61
- getPersona(cuit: string, call?: CallOptions): Promise<PersonaA4>;
63
+ getConstanciasInscripcion(cuits: Array<string | number>, call?: CallOptions): Promise<PersonaA5[]>;
62
64
  /**
63
- * Get basic taxpayer data (Padrón A10) for a given CUIT.
64
- * Authenticates automatically via WSAA.
65
- * @param cuit - CUIT of the taxpayer to query
65
+ * Datos completos de un contribuyente (Padrón A4).
66
+ * @param cuit - CUIT/CUIL a consultar (con o sin guiones)
66
67
  */
67
- getPersonaBasic(cuit: string, call?: CallOptions): Promise<PersonaA10>;
68
+ getPersona(cuit: string | number, call?: CallOptions): Promise<PersonaA4>;
68
69
  /**
69
- * Get basic taxpayer data (Padrón A13) for a given CUIT.
70
- * @param cuit - CUIT of the taxpayer to query
70
+ * Datos básicos de un contribuyente (Padrón A10).
71
+ * @param cuit - CUIT/CUIL a consultar (con o sin guiones)
71
72
  */
72
- getPersonaA13(cuit: string, call?: CallOptions): Promise<PersonaA13>;
73
+ getPersonaBasic(cuit: string | number, call?: CallOptions): Promise<PersonaA10>;
74
+ /**
75
+ * Datos básicos de un contribuyente (Padrón A13, `getPersona`). Con la clave
76
+ * inactiva ARCA responde con error (`reason: 'inactiva'`): ver `getPersonaA13V2`.
77
+ * @param cuit - CUIT/CUIL a consultar (con o sin guiones)
78
+ */
79
+ getPersonaA13(cuit: string | number, call?: CallOptions): Promise<PersonaA13>;
80
+ /**
81
+ * Datos básicos de un contribuyente (Padrón A13, `getPersonaV2`): responde
82
+ * también si la clave está INACTIVA (manual A13 v1.4).
83
+ */
84
+ getPersonaA13V2(cuit: string | number, call?: CallOptions): Promise<PersonaA13>;
73
85
  /**
74
86
  * CUITs/CUILs asociados a un número de documento (Padrón A13).
75
- * @param documento - Número de documento (DNI)
87
+ * @param documento - Número de documento (DNI); se aceptan puntos y espacios
76
88
  */
77
- getIdPersonaListByDocumento(documento: string, call?: CallOptions): Promise<string[]>;
89
+ getIdPersonaListByDocumento(documento: string | number, call?: CallOptions): Promise<string[]>;
78
90
  /**
79
- * Get a parameter table (Padrón A100) by collection name.
80
- * Authenticates automatically via WSAA.
81
- * @param collection - Name of the collection (e.g. CollectionName.PROVINCIA, CollectionName.TIPO_DOCUMENTO)
91
+ * Tabla de parámetros (Padrón A100) por nombre de colección.
92
+ * @param collection - Nombre de la colección (ej: CollectionName.PROVINCIA)
82
93
  */
83
94
  getParametros(collection: string, call?: CallOptions): Promise<ParameterRecord[]>;
84
95
  /**
85
- * Health check for the Padrón services.
86
- * Does not require authentication.
96
+ * Estado de los servicios de Padrón (`dummy`, sin autenticación). Consulta
97
+ * todos en paralelo y devuelve el resultado de cada uno por separado: un
98
+ * servicio caído no oculta el estado de los demás.
99
+ *
100
+ * @example
101
+ * ```ts
102
+ * const s = await padron.status();
103
+ * if (s.a4.status === 'fulfilled') console.log(s.a4.value.appserver);
104
+ * else console.error(s.a4.reason);
105
+ * ```
87
106
  */
88
- status(call?: CallOptions): Promise<{
89
- a5: ServerStatus;
90
- a4: ServerStatus;
91
- a10: ServerStatus;
92
- a13: ServerStatus;
93
- a100: ServerStatus;
94
- }>;
107
+ status(call?: CallOptions): Promise<PadronStatus>;
95
108
  private opts;
96
109
  private getAuth;
97
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"arca-padron.d.ts","sourceRoot":"","sources":["../../src/arca-padron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAa,WAAW,EAAmB,MAAM,sBAAsB,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,YAAY,EAEb,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,UAAU;IACrB,wFAAwF;IACxF,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,gEAAgE;IAChE,SAAgB,EAAE,EAAE,cAAc,CAAC;IACnC,mDAAmD;IACnD,SAAgB,EAAE,EAAE,cAAc,CAAC;IACnC,oDAAoD;IACpD,SAAgB,GAAG,EAAE,eAAe,CAAC;IACrC,oDAAoD;IACpD,SAAgB,GAAG,EAAE,eAAe,CAAC;IACrC,qDAAqD;IACrD,SAAgB,IAAI,EAAE,gBAAgB,CAAC;IAEvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAc;gBAE1B,MAAM,EAAE,gBAAgB;IA0CpC;;;;;OAKG;IACG,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAMpF;;;;OAIG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAMtE;;;;OAIG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAM5E;;;OAGG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAM1E;;;OAGG;IACG,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAM3F;;;;OAIG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAMvF;;;OAGG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QACxC,EAAE,EAAE,YAAY,CAAC;QACjB,EAAE,EAAE,YAAY,CAAC;QACjB,GAAG,EAAE,YAAY,CAAC;QAClB,GAAG,EAAE,YAAY,CAAC;QAClB,IAAI,EAAE,YAAY,CAAC;KACpB,CAAC;IAgBF,OAAO,CAAC,IAAI;YAIE,OAAO;CAQtB"}
1
+ {"version":3,"file":"arca-padron.d.ts","sourceRoot":"","sources":["../../src/arca-padron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,sBAAsB,CAAC;AAC3E,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAEhB,YAAY,EACZ,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EAEX,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,UAAU;IACrB,wFAAwF;IACxF,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,gEAAgE;IAChE,SAAgB,EAAE,EAAE,cAAc,CAAC;IACnC,mDAAmD;IACnD,SAAgB,EAAE,EAAE,cAAc,CAAC;IACnC,oDAAoD;IACpD,SAAgB,GAAG,EAAE,eAAe,CAAC;IACrC,oDAAoD;IACpD,SAAgB,GAAG,EAAE,eAAe,CAAC;IACrC,qDAAqD;IACrD,SAAgB,IAAI,EAAE,gBAAgB,CAAC;IAEvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAc;gBAE1B,MAAM,EAAE,gBAAgB;IAiDpC;;;;;;;OAOG;IACG,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAM7F;;;;OAIG;IACG,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMxG;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAM/E;;;OAGG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAMrF;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAMnF;;;OAGG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAMrF;;;OAGG;IACG,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMpG;;;OAGG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAMvF;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAgBvD,OAAO,CAAC,IAAI;YAIE,OAAO;CAQtB"}