@ramiidv/arca-padron 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/README.md +146 -99
  3. package/dist/arca-padron.d.ts +107 -0
  4. package/dist/arca-padron.d.ts.map +1 -0
  5. package/dist/arca-padron.js +178 -0
  6. package/dist/arca-padron.js.map +1 -0
  7. package/dist/base-client.d.ts +45 -0
  8. package/dist/base-client.d.ts.map +1 -0
  9. package/dist/base-client.js +54 -0
  10. package/dist/base-client.js.map +1 -0
  11. package/dist/{esm/condicion-iva.d.ts → condicion-iva.d.ts} +9 -5
  12. package/dist/condicion-iva.d.ts.map +1 -0
  13. package/dist/condicion-iva.js +170 -0
  14. package/dist/condicion-iva.js.map +1 -0
  15. package/dist/{esm/constants.d.ts → constants.d.ts} +57 -12
  16. package/dist/constants.d.ts.map +1 -0
  17. package/dist/{esm/constants.js → constants.js} +53 -11
  18. package/dist/constants.js.map +1 -0
  19. package/dist/errors.d.ts +50 -0
  20. package/dist/errors.d.ts.map +1 -0
  21. package/dist/errors.js +58 -0
  22. package/dist/errors.js.map +1 -0
  23. package/dist/index.d.ts +24 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +30 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/mapping.d.ts +22 -0
  28. package/dist/mapping.d.ts.map +1 -0
  29. package/dist/mapping.js +52 -0
  30. package/dist/mapping.js.map +1 -0
  31. package/dist/padron-a10.d.ts +24 -0
  32. package/dist/padron-a10.d.ts.map +1 -0
  33. package/dist/padron-a10.js +41 -0
  34. package/dist/padron-a10.js.map +1 -0
  35. package/dist/padron-a100.d.ts +26 -0
  36. package/dist/padron-a100.d.ts.map +1 -0
  37. package/dist/padron-a100.js +46 -0
  38. package/dist/padron-a100.js.map +1 -0
  39. package/dist/padron-a13.d.ts +36 -0
  40. package/dist/padron-a13.d.ts.map +1 -0
  41. package/dist/padron-a13.js +95 -0
  42. package/dist/padron-a13.js.map +1 -0
  43. package/dist/padron-a4.d.ts +21 -0
  44. package/dist/padron-a4.d.ts.map +1 -0
  45. package/dist/padron-a4.js +128 -0
  46. package/dist/padron-a4.js.map +1 -0
  47. package/dist/padron-a5.d.ts +39 -0
  48. package/dist/padron-a5.d.ts.map +1 -0
  49. package/dist/padron-a5.js +214 -0
  50. package/dist/padron-a5.js.map +1 -0
  51. package/dist/{cjs/types.d.ts → types.d.ts} +36 -53
  52. package/dist/types.d.ts.map +1 -0
  53. package/dist/types.js.map +1 -0
  54. package/llms.txt +46 -27
  55. package/package.json +21 -32
  56. package/dist/cjs/arca-padron.d.ts +0 -98
  57. package/dist/cjs/arca-padron.d.ts.map +0 -1
  58. package/dist/cjs/arca-padron.js +0 -177
  59. package/dist/cjs/arca-padron.js.map +0 -1
  60. package/dist/cjs/base-client.d.ts +0 -36
  61. package/dist/cjs/base-client.d.ts.map +0 -1
  62. package/dist/cjs/base-client.js +0 -52
  63. package/dist/cjs/base-client.js.map +0 -1
  64. package/dist/cjs/condicion-iva.d.ts +0 -24
  65. package/dist/cjs/condicion-iva.d.ts.map +0 -1
  66. package/dist/cjs/condicion-iva.js +0 -119
  67. package/dist/cjs/condicion-iva.js.map +0 -1
  68. package/dist/cjs/constants.d.ts +0 -97
  69. package/dist/cjs/constants.d.ts.map +0 -1
  70. package/dist/cjs/constants.js +0 -113
  71. package/dist/cjs/constants.js.map +0 -1
  72. package/dist/cjs/errors.d.ts +0 -22
  73. package/dist/cjs/errors.d.ts.map +0 -1
  74. package/dist/cjs/errors.js +0 -36
  75. package/dist/cjs/errors.js.map +0 -1
  76. package/dist/cjs/index.d.ts +0 -16
  77. package/dist/cjs/index.d.ts.map +0 -1
  78. package/dist/cjs/index.js +0 -56
  79. package/dist/cjs/index.js.map +0 -1
  80. package/dist/cjs/mapping.d.ts +0 -9
  81. package/dist/cjs/mapping.d.ts.map +0 -1
  82. package/dist/cjs/mapping.js +0 -14
  83. package/dist/cjs/mapping.js.map +0 -1
  84. package/dist/cjs/package.json +0 -1
  85. package/dist/cjs/padron-a10.d.ts +0 -18
  86. package/dist/cjs/padron-a10.d.ts.map +0 -1
  87. package/dist/cjs/padron-a10.js +0 -73
  88. package/dist/cjs/padron-a10.js.map +0 -1
  89. package/dist/cjs/padron-a100.d.ts +0 -16
  90. package/dist/cjs/padron-a100.d.ts.map +0 -1
  91. package/dist/cjs/padron-a100.js +0 -38
  92. package/dist/cjs/padron-a100.js.map +0 -1
  93. package/dist/cjs/padron-a13.d.ts +0 -24
  94. package/dist/cjs/padron-a13.d.ts.map +0 -1
  95. package/dist/cjs/padron-a13.js +0 -80
  96. package/dist/cjs/padron-a13.js.map +0 -1
  97. package/dist/cjs/padron-a4.d.ts +0 -18
  98. package/dist/cjs/padron-a4.d.ts.map +0 -1
  99. package/dist/cjs/padron-a4.js +0 -173
  100. package/dist/cjs/padron-a4.js.map +0 -1
  101. package/dist/cjs/padron-a5.d.ts +0 -24
  102. package/dist/cjs/padron-a5.d.ts.map +0 -1
  103. package/dist/cjs/padron-a5.js +0 -156
  104. package/dist/cjs/padron-a5.js.map +0 -1
  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/types.d.ts.map +0 -1
  110. package/dist/cjs/types.js +0 -3
  111. package/dist/cjs/types.js.map +0 -1
  112. package/dist/cjs/wsaa.d.ts +0 -3
  113. package/dist/cjs/wsaa.d.ts.map +0 -1
  114. package/dist/cjs/wsaa.js +0 -6
  115. package/dist/cjs/wsaa.js.map +0 -1
  116. package/dist/esm/arca-padron.d.ts +0 -98
  117. package/dist/esm/arca-padron.d.ts.map +0 -1
  118. package/dist/esm/arca-padron.js +0 -173
  119. package/dist/esm/arca-padron.js.map +0 -1
  120. package/dist/esm/base-client.d.ts +0 -36
  121. package/dist/esm/base-client.d.ts.map +0 -1
  122. package/dist/esm/base-client.js +0 -48
  123. package/dist/esm/base-client.js.map +0 -1
  124. package/dist/esm/condicion-iva.d.ts.map +0 -1
  125. package/dist/esm/condicion-iva.js +0 -116
  126. package/dist/esm/condicion-iva.js.map +0 -1
  127. package/dist/esm/constants.d.ts.map +0 -1
  128. package/dist/esm/constants.js.map +0 -1
  129. package/dist/esm/errors.d.ts +0 -22
  130. package/dist/esm/errors.d.ts.map +0 -1
  131. package/dist/esm/errors.js +0 -26
  132. package/dist/esm/errors.js.map +0 -1
  133. package/dist/esm/index.d.ts +0 -16
  134. package/dist/esm/index.d.ts.map +0 -1
  135. package/dist/esm/index.js +0 -22
  136. package/dist/esm/index.js.map +0 -1
  137. package/dist/esm/mapping.d.ts +0 -9
  138. package/dist/esm/mapping.d.ts.map +0 -1
  139. package/dist/esm/mapping.js +0 -8
  140. package/dist/esm/mapping.js.map +0 -1
  141. package/dist/esm/padron-a10.d.ts +0 -18
  142. package/dist/esm/padron-a10.d.ts.map +0 -1
  143. package/dist/esm/padron-a10.js +0 -69
  144. package/dist/esm/padron-a10.js.map +0 -1
  145. package/dist/esm/padron-a100.d.ts +0 -16
  146. package/dist/esm/padron-a100.d.ts.map +0 -1
  147. package/dist/esm/padron-a100.js +0 -34
  148. package/dist/esm/padron-a100.js.map +0 -1
  149. package/dist/esm/padron-a13.d.ts +0 -24
  150. package/dist/esm/padron-a13.d.ts.map +0 -1
  151. package/dist/esm/padron-a13.js +0 -75
  152. package/dist/esm/padron-a13.js.map +0 -1
  153. package/dist/esm/padron-a4.d.ts +0 -18
  154. package/dist/esm/padron-a4.d.ts.map +0 -1
  155. package/dist/esm/padron-a4.js +0 -169
  156. package/dist/esm/padron-a4.js.map +0 -1
  157. package/dist/esm/padron-a5.d.ts +0 -24
  158. package/dist/esm/padron-a5.d.ts.map +0 -1
  159. package/dist/esm/padron-a5.js +0 -151
  160. package/dist/esm/padron-a5.js.map +0 -1
  161. package/dist/esm/soap-client.d.ts +0 -2
  162. package/dist/esm/soap-client.d.ts.map +0 -1
  163. package/dist/esm/soap-client.js +0 -3
  164. package/dist/esm/soap-client.js.map +0 -1
  165. package/dist/esm/types.d.ts +0 -346
  166. package/dist/esm/types.d.ts.map +0 -1
  167. package/dist/esm/types.js.map +0 -1
  168. package/dist/esm/wsaa.d.ts +0 -3
  169. package/dist/esm/wsaa.d.ts.map +0 -1
  170. package/dist/esm/wsaa.js +0 -2
  171. package/dist/esm/wsaa.js.map +0 -1
  172. /package/dist/{esm/types.js → types.js} +0 -0
@@ -0,0 +1,178 @@
1
+ import { ArcaSdkBase } from '@ramiidv/arca-common';
2
+ import { ENDPOINTS } from './constants.js';
3
+ import { PadronA4Client } from './padron-a4.js';
4
+ import { PadronA5Client } from './padron-a5.js';
5
+ import { PadronA10Client } from './padron-a10.js';
6
+ import { PadronA13Client } from './padron-a13.js';
7
+ import { PadronA100Client } from './padron-a100.js';
8
+ /**
9
+ * Main orchestrator class for ARCA Padrón web services.
10
+ *
11
+ * Provides high-level methods that handle WSAA authentication automatically
12
+ * and expose results from the Constancia de Inscripción (ex A5), A4 (full),
13
+ * A10 (basic), A13 (basic) and A100 (parameters) web services.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { ArcaPadron, condicionIvaDesdePadron, FileTicketStorage } from '@ramiidv/arca-padron';
18
+ * import { readFileSync } from 'fs';
19
+ *
20
+ * const client = new ArcaPadron({
21
+ * cert: readFileSync('cert.pem', 'utf-8'),
22
+ * key: readFileSync('key.pem', 'utf-8'),
23
+ * cuit: '20123456789',
24
+ * production: false,
25
+ * ticketStorage: new FileTicketStorage('./.arca-tickets'),
26
+ * });
27
+ *
28
+ * const persona = await client.getConstanciaInscripcion('30712345674');
29
+ * const { condicionIva, motivo } = condicionIvaDesdePadron(persona);
30
+ * ```
31
+ */
32
+ export class ArcaPadron extends ArcaSdkBase {
33
+ /** Low-level Constancia de Inscripción (ex Padrón A5) client */
34
+ a5;
35
+ /** Low-level Padrón A4 client for direct access */
36
+ a4;
37
+ /** Low-level Padrón A10 client for direct access */
38
+ a10;
39
+ /** Low-level Padrón A13 client for direct access */
40
+ a13;
41
+ /** Low-level Padrón A100 client for direct access */
42
+ a100;
43
+ /** @throws ArcaValidationError si la CUIT representada es inválida. */
44
+ constructor(config) {
45
+ super(config, {
46
+ a5: ENDPOINTS.a5.serviceId,
47
+ a4: ENDPOINTS.a4.serviceId,
48
+ a10: ENDPOINTS.a10.serviceId,
49
+ a13: ENDPOINTS.a13.serviceId,
50
+ a100: ENDPOINTS.a100.serviceId,
51
+ });
52
+ const { onEvent, ...soapOptions } = this.transport;
53
+ const clientConfig = (svc) => ({
54
+ endpoint: this.endpoint(ENDPOINTS[svc], config.endpoints?.[svc]),
55
+ namespace: ENDPOINTS[svc].namespace,
56
+ soapOptions,
57
+ onEvent,
58
+ });
59
+ this.a5 = new PadronA5Client(clientConfig('a5'));
60
+ this.a4 = new PadronA4Client(clientConfig('a4'));
61
+ this.a10 = new PadronA10Client(clientConfig('a10'));
62
+ this.a13 = new PadronA13Client(clientConfig('a13'));
63
+ this.a100 = new PadronA100Client(clientConfig('a100'));
64
+ }
65
+ /**
66
+ * Constancia de inscripción (ws_sr_constancia_inscripcion, ex Padrón A5,
67
+ * `getPersona_v2`): datos generales, domicilio fiscal, impuestos del régimen
68
+ * general y monotributo. Combinar con `condicionIvaDesdePadron` para facturar.
69
+ * @param cuit - CUIT a consultar (con o sin guiones)
70
+ * @throws ArcaValidationError si la CUIT es inválida (dígito verificador)
71
+ * @throws ArcaPadronServiceError si ARCA informa la CUIT inexistente, inactiva, etc.
72
+ */
73
+ async getConstanciaInscripcion(cuit, call) {
74
+ const opts = this.callOptions(call);
75
+ const auth = await this.getAuth('a5', call);
76
+ return this.a5.getPersona(auth, cuit, opts);
77
+ }
78
+ /**
79
+ * Constancias de inscripción de hasta 250 CUITs en una llamada
80
+ * (`getPersonaList_v2`). Las CUITs inexistentes vuelven con `errorConstancia`
81
+ * ("No existe persona con ese Id") en lugar de hacer fallar la consulta.
82
+ */
83
+ async getConstanciasInscripcion(cuits, call) {
84
+ const opts = this.callOptions(call);
85
+ const auth = await this.getAuth('a5', call);
86
+ return this.a5.getPersonaList(auth, cuits, opts);
87
+ }
88
+ /**
89
+ * Datos completos de un contribuyente (Padrón A4).
90
+ * @param cuit - CUIT/CUIL a consultar (con o sin guiones)
91
+ */
92
+ async getPersona(cuit, call) {
93
+ const opts = this.callOptions(call);
94
+ const auth = await this.getAuth('a4', call);
95
+ return this.a4.getPersona(auth, cuit, opts);
96
+ }
97
+ /**
98
+ * Datos básicos de un contribuyente (Padrón A10).
99
+ * @param cuit - CUIT/CUIL a consultar (con o sin guiones)
100
+ */
101
+ async getPersonaBasic(cuit, call) {
102
+ const opts = this.callOptions(call);
103
+ const auth = await this.getAuth('a10', call);
104
+ return this.a10.getPersona(auth, cuit, opts);
105
+ }
106
+ /**
107
+ * Datos básicos de un contribuyente (Padrón A13, `getPersona`). Con la clave
108
+ * inactiva ARCA responde con error (`reason: 'inactiva'`): ver `getPersonaA13V2`.
109
+ * @param cuit - CUIT/CUIL a consultar (con o sin guiones)
110
+ */
111
+ async getPersonaA13(cuit, call) {
112
+ const opts = this.callOptions(call);
113
+ const auth = await this.getAuth('a13', call);
114
+ return this.a13.getPersona(auth, cuit, opts);
115
+ }
116
+ /**
117
+ * Datos básicos de un contribuyente (Padrón A13, `getPersonaV2`): responde
118
+ * también si la clave está INACTIVA (manual A13 v1.4).
119
+ */
120
+ async getPersonaA13V2(cuit, call) {
121
+ const opts = this.callOptions(call);
122
+ const auth = await this.getAuth('a13', call);
123
+ return this.a13.getPersonaV2(auth, cuit, opts);
124
+ }
125
+ /**
126
+ * CUITs/CUILs asociados a un número de documento (Padrón A13).
127
+ * @param documento - Número de documento (DNI); se aceptan puntos y espacios
128
+ */
129
+ async getIdPersonaListByDocumento(documento, call) {
130
+ const opts = this.callOptions(call);
131
+ const auth = await this.getAuth('a13', call);
132
+ return this.a13.getIdPersonaListByDocumento(auth, documento, opts);
133
+ }
134
+ /**
135
+ * Tabla de parámetros (Padrón A100) por nombre de colección.
136
+ * @param collection - Nombre de la colección (ej: CollectionName.PROVINCIA)
137
+ */
138
+ async getParametros(collection, call) {
139
+ const opts = this.callOptions(call);
140
+ const auth = await this.getAuth('a100', call);
141
+ return this.a100.getParameterCollectionByName(auth, collection, opts);
142
+ }
143
+ /**
144
+ * Estado de los servicios de Padrón (`dummy`, sin autenticación). Consulta
145
+ * todos en paralelo y devuelve el resultado de cada uno por separado: un
146
+ * servicio caído no oculta el estado de los demás.
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * const s = await padron.status();
151
+ * if (s.a4.status === 'fulfilled') console.log(s.a4.value.appserver);
152
+ * else console.error(s.a4.reason);
153
+ * ```
154
+ */
155
+ async status(call) {
156
+ const opts = this.callOptions(call);
157
+ const [a5, a4, a10, a13, a100] = await Promise.allSettled([
158
+ this.a5.dummy(opts),
159
+ this.a4.dummy(opts),
160
+ this.a10.dummy(opts),
161
+ this.a13.dummy(opts),
162
+ this.a100.dummy(opts),
163
+ ]);
164
+ return { a5, a4, a10, a13, a100 };
165
+ }
166
+ // -------------------------------------------------------------------------
167
+ // Private helpers
168
+ // -------------------------------------------------------------------------
169
+ async getAuth(service, call) {
170
+ const ticket = await this.ticket(service, call);
171
+ return {
172
+ Token: ticket.token,
173
+ Sign: ticket.sign,
174
+ CuitRepresentada: this.cuit,
175
+ };
176
+ }
177
+ }
178
+ //# sourceMappingURL=arca-padron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arca-padron.js","sourceRoot":"","sources":["../src/arca-padron.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { SoapServiceClient } from '@ramiidv/arca-common';
2
+ import type { ArcaEvent, CallOptions, ServerStatus, SoapCallOptions } from '@ramiidv/arca-common';
3
+ import type { WsAuth } from './types.js';
4
+ /** Opciones de transporte que se pasan a cada llamada SOAP. */
5
+ export type PadronSoapOptions = Pick<SoapCallOptions, 'timeout' | 'retries' | 'retryDelayMs' | 'fetch' | 'legacyTls'>;
6
+ /** Shared configuration for all Padrón service clients. */
7
+ export interface PadronClientConfig {
8
+ /** SOAP endpoint URL */
9
+ endpoint: string;
10
+ /** SOAP namespace */
11
+ namespace: string;
12
+ /** Opciones de transporte (timeout, reintentos, fetch, TLS legacy) */
13
+ soapOptions?: PadronSoapOptions;
14
+ /** Optional event callback */
15
+ onEvent?: (event: ArcaEvent) => void;
16
+ }
17
+ /**
18
+ * Base de los clientes de Padrón.
19
+ *
20
+ * Los WS de Padrón declaran los parámetros sin namespace
21
+ * (`elementFormDefault="unqualified"`) y `soapAction=""`: `afipSoapCall` de
22
+ * arca-common prefija el método y deja los parámetros sin namespace. Todas las
23
+ * operaciones son consultas: se reintentan ante errores transitorios (nunca
24
+ * ante un SOAP Fault). Los Faults de negocio conocidos (CUIT inexistente,
25
+ * clave inactiva, token no autorizado...) se lanzan como `ArcaPadronServiceError`.
26
+ *
27
+ * Las respuestas se parsean con `parseNumbers: false`: todos los valores llegan
28
+ * como string tal cual los envía ARCA, y los schemas de cada servicio (DSL de
29
+ * `@ramiidv/arca-common/schema`, ver `mapping.ts`) convierten los campos
30
+ * numéricos del WSDL. Así los `xs:string`
31
+ * con contenido numérico (`datoAdicional`, `codPostal`, `piso`, los campos del
32
+ * A100...) no pierden ceros ni decimales (`"10.50"`, `"1E3"`).
33
+ */
34
+ export declare abstract class BasePadronClient extends SoapServiceClient {
35
+ protected readonly soapOptions?: PadronSoapOptions;
36
+ protected readonly onEvent?: (event: ArcaEvent) => void;
37
+ constructor(config: PadronClientConfig);
38
+ /** Llama a un método del servicio y traduce los Faults de negocio. */
39
+ protected call(method: string, params: Record<string, unknown>, opts?: CallOptions): Promise<Record<string, unknown>>;
40
+ /** Parámetros de autenticación en el orden del WSDL: token, sign, cuitRepresentada. */
41
+ protected authParams(auth: WsAuth): Record<string, unknown>;
42
+ /** Health check for this service. */
43
+ dummy(opts?: CallOptions): Promise<ServerStatus>;
44
+ }
45
+ //# sourceMappingURL=base-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-client.d.ts","sourceRoot":"","sources":["../src/base-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAmC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAElG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS,GAAG,cAAc,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC;AAEtH,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,gBAAiB,SAAQ,iBAAiB;IAC9D,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACnD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;gBAE5C,MAAM,EAAE,kBAAkB;IAUtC,sEAAsE;cACtD,IAAI,CAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAQnC,uFAAuF;IACvF,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQ3D,qCAAqC;IAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CAGvD"}
@@ -0,0 +1,54 @@
1
+ import { SoapServiceClient, parseServerStatus, validateCuit } from '@ramiidv/arca-common';
2
+ import { toPadronError } from './errors.js';
3
+ /**
4
+ * Base de los clientes de Padrón.
5
+ *
6
+ * Los WS de Padrón declaran los parámetros sin namespace
7
+ * (`elementFormDefault="unqualified"`) y `soapAction=""`: `afipSoapCall` de
8
+ * arca-common prefija el método y deja los parámetros sin namespace. Todas las
9
+ * operaciones son consultas: se reintentan ante errores transitorios (nunca
10
+ * ante un SOAP Fault). Los Faults de negocio conocidos (CUIT inexistente,
11
+ * clave inactiva, token no autorizado...) se lanzan como `ArcaPadronServiceError`.
12
+ *
13
+ * Las respuestas se parsean con `parseNumbers: false`: todos los valores llegan
14
+ * como string tal cual los envía ARCA, y los schemas de cada servicio (DSL de
15
+ * `@ramiidv/arca-common/schema`, ver `mapping.ts`) convierten los campos
16
+ * numéricos del WSDL. Así los `xs:string`
17
+ * con contenido numérico (`datoAdicional`, `codPostal`, `piso`, los campos del
18
+ * A100...) no pierden ceros ni decimales (`"10.50"`, `"1E3"`).
19
+ */
20
+ export class BasePadronClient extends SoapServiceClient {
21
+ soapOptions;
22
+ onEvent;
23
+ constructor(config) {
24
+ super({
25
+ endpoint: config.endpoint,
26
+ namespace: config.namespace,
27
+ transport: { ...config.soapOptions, onEvent: config.onEvent },
28
+ });
29
+ this.soapOptions = config.soapOptions;
30
+ this.onEvent = config.onEvent;
31
+ }
32
+ /** Llama a un método del servicio y traduce los Faults de negocio. */
33
+ async call(method, params, opts) {
34
+ try {
35
+ return await this.soapCall(method, params, { parseNumbers: false, signal: opts?.signal });
36
+ }
37
+ catch (err) {
38
+ throw toPadronError(err, method);
39
+ }
40
+ }
41
+ /** Parámetros de autenticación en el orden del WSDL: token, sign, cuitRepresentada. */
42
+ authParams(auth) {
43
+ return {
44
+ token: auth.Token,
45
+ sign: auth.Sign,
46
+ cuitRepresentada: validateCuit(auth.CuitRepresentada),
47
+ };
48
+ }
49
+ /** Health check for this service. */
50
+ async dummy(opts) {
51
+ return parseServerStatus(await this.call('dummy', {}, opts));
52
+ }
53
+ }
54
+ //# sourceMappingURL=base-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-client.js","sourceRoot":"","sources":["../src/base-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAkB5C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,iBAAiB;IAC3C,WAAW,CAAqB;IAChC,OAAO,CAA8B;IAExD,YAAY,MAA0B;QACpC,KAAK,CAAC;YACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;SAC9D,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,sEAAsE;IAC5D,KAAK,CAAC,IAAI,CAClB,MAAc,EACd,MAA+B,EAC/B,IAAkB;QAElB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,uFAAuF;IAC7E,UAAU,CAAC,IAAY;QAC/B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACtD,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,KAAK,CAAC,IAAkB;QAC5B,OAAO,iBAAiB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -4,13 +4,17 @@ import type { CondicionIvaPadron, PersonaA4, PersonaA5 } from './types.js';
4
4
  * (constancia de inscripción / A5, o A4), para usarla como `condicionIva` al
5
5
  * facturarle.
6
6
  *
7
- * - Monotributo activo (impuesto 20 o categoría de monotributo) → MONOTRIBUTISTA,
8
- * o MONOTRIBUTO_SOCIAL / MONOTRIBUTO_INDEPENDIENTE_PROMOVIDO según la categoría.
9
- * - IVA activo (impuesto 30) → RESPONSABLE_INSCRIPTO.
10
- * - IVA exento (32) → EXENTO. IVA no alcanzado (34) → IVA_NO_ALCANZADO.
7
+ * - Monotributo activo (impuesto 20 activo; o, si el impuesto 20 no figura, la
8
+ * categoría de monotributo) → MONOTRIBUTISTA, o MONOTRIBUTO_SOCIAL /
9
+ * MONOTRIBUTO_INDEPENDIENTE_PROMOVIDO según la categoría. Un impuesto 20 en
10
+ * baja no cuenta aunque haya categoría.
11
+ * - IVA activo (impuesto 30, ACTIVO o ACTIVO EN TRAMITE) → RESPONSABLE_INSCRIPTO.
12
+ * - IVA (30) en estado EXENTO / EXENTO EN TRAMITE, o impuesto 32 → EXENTO.
13
+ * - Impuesto 34 → IVA_NO_ALCANZADO.
11
14
  * - Si no figura ninguno, devuelve `condicionIva: null`: el padrón no alcanza
12
15
  * para decidir (puede ser consumidor final o sujeto no categorizado según la
13
- * operación). No adivina.
16
+ * operación). Si ARCA informó errores de la constancia (`errorConstancia`,
17
+ * `errorRegimenGeneral`, `errorMonotributo`), el motivo los incluye. No adivina.
14
18
  *
15
19
  * Es una función pura: no consulta ARCA.
16
20
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condicion-iva.d.ts","sourceRoot":"","sources":["../src/condicion-iva.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAuG3E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,kBAAkB,CAgF1F"}
@@ -0,0 +1,170 @@
1
+ import { CondicionIva } from '@ramiidv/arca-common';
2
+ import { ImpuestoId } from './constants.js';
3
+ /*
4
+ * Fuentes:
5
+ * - Manual ws_sr_constancia_inscripcion v4.1: impuesto 20 = MONOTRIBUTO
6
+ * (datosMonotributo), impuesto 30 = IVA (datosRegimenGeneral), estadoImpuesto
7
+ * "AC" = activo. Categorías de monotributo (anexo 5.3): 61, 99, 100
8
+ * "B MONOTRIBUTO SOCIAL ..."; 101 a 104 "D/E 2/3 SOCIOS PROY. SERVICIOS /
9
+ * PRODUCTIVO" (proyectos productivos de efectores sociales, Ley 25.865: también
10
+ * monotributo social); 98 "B ASOCIADO COOPERATIVA" (monotributo común: no
11
+ * es necesariamente efector social).
12
+ * - Manual ws_sr_padron_a4 v1.3 §5.3 (TipoEstado): ACTIVO, ACTIVO EN TRAMITE,
13
+ * BAJA PROVISORIA, BAJA DEFINITIVA, EXENTO, EXENTO EN TRAMITE, NO APORTANTE.
14
+ * La constancia informa el id del estado (`estadoImpuesto`, ej: "AC"); solo
15
+ * "AC" figura en los manuales. Las demás abreviaturas que se reconocen son
16
+ * las iniciales de TipoEstado (EX, BP, BD, NA = NO APORTANTE). "NO APORTANTE"
17
+ * no es "IVA no alcanzado": no se mapea a ninguna condición.
18
+ * - IVA exento (32) e IVA no alcanzado (34) no figuran en los manuales: se
19
+ * reconocen por id o por la descripción del impuesto.
20
+ * - Valores de CondicionIva: FEParamGetCondicionIvaReceptor (WSFEv1, RG 5616).
21
+ */
22
+ const CATEGORIAS_MONOTRIBUTO_SOCIAL = new Set([61, 99, 100, 101, 102, 103, 104]);
23
+ const ABREVIATURAS = {
24
+ AC: 'ACTIVO',
25
+ EX: 'EXENTO',
26
+ BP: 'BAJA PROVISORIA',
27
+ BD: 'BAJA DEFINITIVA',
28
+ NA: 'NO APORTANTE',
29
+ };
30
+ /** Normaliza el estado de un impuesto (palabras de TipoEstado o abreviatura SUPA). `''` si no vino. */
31
+ function normalizarEstado(estado) {
32
+ const e = (estado ?? '').trim().toUpperCase().normalize('NFD').replace(/[̀-ͯ]/g, '').replace(/\s+/g, ' ');
33
+ return ABREVIATURAS[e] ?? e;
34
+ }
35
+ /** Activo: ACTIVO o ACTIVO EN TRAMITE. Sin estado (respuestas anteriores a la v3.6 de la constancia) cuenta como activo. */
36
+ function esActivo(estado) {
37
+ return estado === '' || estado === 'ACTIVO' || estado === 'ACTIVO EN TRAMITE';
38
+ }
39
+ function esExento(estado) {
40
+ return estado === 'EXENTO' || estado === 'EXENTO EN TRAMITE';
41
+ }
42
+ function esA5(persona) {
43
+ return Array.isArray(persona.impuestos);
44
+ }
45
+ function impuesto(id, descripcion, estadoRaw) {
46
+ const estado = normalizarEstado(estadoRaw);
47
+ return { id, descripcion: descripcion ?? '', estado, activo: esActivo(estado) };
48
+ }
49
+ function impuestosDe(persona) {
50
+ if (esA5(persona))
51
+ return persona.impuestos.map((i) => impuesto(i.idImpuesto, i.descripcionImpuesto, i.estadoImpuesto));
52
+ return (persona.impuesto ?? []).map((i) => impuesto(i.idImpuesto, i.descripcionImpuesto, i.estado));
53
+ }
54
+ function categoriaMonotributo(persona) {
55
+ if (esA5(persona)) {
56
+ const c = persona.monotributo?.categoria;
57
+ return c ? { id: c.idCategoria, descripcion: c.descripcionCategoria ?? '' } : undefined;
58
+ }
59
+ const c = (persona.categoria ?? []).find((x) => x.idImpuesto === ImpuestoId.MONOTRIBUTO && esActivo(normalizarEstado(x.estado)));
60
+ return c ? { id: c.idCategoria, descripcion: c.descripcionCategoria ?? '' } : undefined;
61
+ }
62
+ /** Errores que informó la constancia (régimen general / monotributo), para el motivo. */
63
+ function erroresConstancia(persona) {
64
+ if (!esA5(persona))
65
+ return [];
66
+ const out = [];
67
+ const add = (nombre, e) => {
68
+ if (!e)
69
+ return;
70
+ const detalle = e.error.length > 0 ? e.error.join('; ') : (e.mensaje ?? 'sin detalle');
71
+ out.push(`${nombre}: ${detalle}`);
72
+ };
73
+ add('régimen general', persona.errorRegimenGeneral);
74
+ add('monotributo', persona.errorMonotributo);
75
+ return out;
76
+ }
77
+ /**
78
+ * Determina la condición frente al IVA de un contribuyente a partir del padrón
79
+ * (constancia de inscripción / A5, o A4), para usarla como `condicionIva` al
80
+ * facturarle.
81
+ *
82
+ * - Monotributo activo (impuesto 20 activo; o, si el impuesto 20 no figura, la
83
+ * categoría de monotributo) → MONOTRIBUTISTA, o MONOTRIBUTO_SOCIAL /
84
+ * MONOTRIBUTO_INDEPENDIENTE_PROMOVIDO según la categoría. Un impuesto 20 en
85
+ * baja no cuenta aunque haya categoría.
86
+ * - IVA activo (impuesto 30, ACTIVO o ACTIVO EN TRAMITE) → RESPONSABLE_INSCRIPTO.
87
+ * - IVA (30) en estado EXENTO / EXENTO EN TRAMITE, o impuesto 32 → EXENTO.
88
+ * - Impuesto 34 → IVA_NO_ALCANZADO.
89
+ * - Si no figura ninguno, devuelve `condicionIva: null`: el padrón no alcanza
90
+ * para decidir (puede ser consumidor final o sujeto no categorizado según la
91
+ * operación). Si ARCA informó errores de la constancia (`errorConstancia`,
92
+ * `errorRegimenGeneral`, `errorMonotributo`), el motivo los incluye. No adivina.
93
+ *
94
+ * Es una función pura: no consulta ARCA.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * const persona = await padron.getConstanciaInscripcion('30712345674');
99
+ * const { condicionIva, motivo } = condicionIvaDesdePadron(persona);
100
+ * ```
101
+ */
102
+ export function condicionIvaDesdePadron(persona) {
103
+ const impuestos = impuestosDe(persona);
104
+ const tiene = (pred) => impuestos.find((i) => i.activo && pred(i));
105
+ const errores = erroresConstancia(persona);
106
+ const notaErrores = errores.length > 0 ? ` ARCA informó errores en la constancia (${errores.join(' | ')}).` : '';
107
+ const avisoClave = persona.estadoClave && persona.estadoClave.toUpperCase() !== 'ACTIVO'
108
+ ? ` Atención: la CUIT tiene estado ${persona.estadoClave}.`
109
+ : '';
110
+ const advertencia = avisoClave + notaErrores;
111
+ const categoria = categoriaMonotributo(persona);
112
+ const impuesto20 = impuestos.find((i) => i.id === ImpuestoId.MONOTRIBUTO);
113
+ const monotributo = impuesto20 ? impuesto20.activo : categoria !== undefined;
114
+ if (monotributo) {
115
+ const desc = categoria ? ` (categoría ${categoria.id} - ${categoria.descripcion.trim()})` : '';
116
+ if (categoria &&
117
+ (CATEGORIAS_MONOTRIBUTO_SOCIAL.has(categoria.id) || /MONOTRIBUTO SOCIAL/i.test(categoria.descripcion))) {
118
+ return { condicionIva: CondicionIva.MONOTRIBUTO_SOCIAL, motivo: `Monotributo social${desc}.${advertencia}` };
119
+ }
120
+ if (categoria && /PROMOVID/i.test(categoria.descripcion)) {
121
+ return {
122
+ condicionIva: CondicionIva.MONOTRIBUTO_INDEPENDIENTE_PROMOVIDO,
123
+ motivo: `Monotributo trabajador independiente promovido${desc}.${advertencia}`,
124
+ };
125
+ }
126
+ return {
127
+ condicionIva: CondicionIva.MONOTRIBUTISTA,
128
+ motivo: `Inscripto en monotributo (impuesto 20)${desc}.${advertencia}`,
129
+ };
130
+ }
131
+ if (tiene((i) => i.id === ImpuestoId.IVA_RESPONSABLE_INSCRIPTO)) {
132
+ return {
133
+ condicionIva: CondicionIva.RESPONSABLE_INSCRIPTO,
134
+ motivo: `Inscripto en IVA (impuesto 30).${advertencia}`,
135
+ };
136
+ }
137
+ const ivaExento = impuestos.find((i) => i.id === ImpuestoId.IVA_RESPONSABLE_INSCRIPTO && esExento(i.estado));
138
+ if (ivaExento) {
139
+ return {
140
+ condicionIva: CondicionIva.EXENTO,
141
+ motivo: `IVA (impuesto 30) en estado ${ivaExento.estado}.${advertencia}`,
142
+ };
143
+ }
144
+ if (tiene((i) => i.id === ImpuestoId.IVA_EXENTO || /IVA\s+EXENTO/i.test(i.descripcion))) {
145
+ return { condicionIva: CondicionIva.EXENTO, motivo: `IVA exento (impuesto 32).${advertencia}` };
146
+ }
147
+ if (tiene((i) => i.id === ImpuestoId.IVA_NO_ALCANZADO || /IVA.*NO\s+ALCANZADO/i.test(i.descripcion))) {
148
+ return { condicionIva: CondicionIva.IVA_NO_ALCANZADO, motivo: `IVA no alcanzado (impuesto 34).${advertencia}` };
149
+ }
150
+ if (esA5(persona) && persona.errorConstancia && impuestos.length === 0) {
151
+ return {
152
+ condicionIva: null,
153
+ motivo: `ARCA no emitió la constancia: ${persona.errorConstancia.error.join('; ')}.${advertencia}`,
154
+ };
155
+ }
156
+ if (errores.length > 0) {
157
+ return {
158
+ condicionIva: null,
159
+ motivo: `No se puede determinar: ARCA no informó datos de ${errores.map((e) => e.split(':')[0]).join(' ni de ')} ` +
160
+ `(${errores.join(' | ')}).${avisoClave}`,
161
+ };
162
+ }
163
+ return {
164
+ condicionIva: null,
165
+ motivo: 'No figura inscripto en IVA ni en monotributo: el padrón no alcanza para determinar la condición ' +
166
+ '(puede ser consumidor final o sujeto no categorizado según la operación).' +
167
+ advertencia,
168
+ };
169
+ }
170
+ //# sourceMappingURL=condicion-iva.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condicion-iva.js","sourceRoot":"","sources":["../src/condicion-iva.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,14 @@
1
- export { Provincia, DocTipo as TipoDocumento, CondicionIva } from '@ramiidv/arca-common';
1
+ import { DocTipo } from '@ramiidv/arca-common';
2
+ export { Provincia, DocTipo, CondicionIva } from '@ramiidv/arca-common';
3
+ /**
4
+ * @deprecated Es `DocTipo` de arca-common: los códigos numéricos de tipo de
5
+ * documento de WSFEv1 (80 = CUIT, 96 = DNI...). No sirve para interpretar el
6
+ * campo `tipoDocumento` del padrón, que es un string ("DNI", "LC", "LE"...;
7
+ * ver la colección A100 `SUPA.TIPO_DOCUMENTO`). Usá `DocTipo`.
8
+ */
9
+ export declare const TipoDocumento: typeof DocTipo;
10
+ /** @deprecated Usá `DocTipo` (ver la constante `TipoDocumento`). */
11
+ export type TipoDocumento = DocTipo;
2
12
  export declare const ENDPOINTS: {
3
13
  readonly wsaa: {
4
14
  readonly testing: "https://wsaahomo.afip.gov.ar/ws/services/LoginCms";
@@ -47,23 +57,36 @@ export declare enum TipoPersona {
47
57
  FISICA = "FISICA",
48
58
  JURIDICA = "JURIDICA"
49
59
  }
50
- /** IDs de impuestos comunes (SUPA) */
60
+ /**
61
+ * IDs de impuestos de SUPA.
62
+ *
63
+ * Respaldados por los manuales de ARCA: 11, 20, 21, 30, 180, 301, 308
64
+ * (ejemplos y validaciones de los manuales de constancia de inscripción v4.1 y
65
+ * A4 v1.3). Los marcados "sin respaldo" no figuran en esos manuales.
66
+ */
51
67
  export declare enum ImpuestoId {
68
+ /** Ganancias sociedades. Sin respaldo en los manuales del padrón. */
52
69
  GANANCIAS_PJ = 10,
70
+ /** Ganancias personas físicas. */
53
71
  GANANCIAS_PH = 11,
54
- /** Monotributo (manual ws_sr_constancia_inscripcion v4.1). */
72
+ /** Monotributo. */
55
73
  MONOTRIBUTO = 20,
56
- /**
57
- * @deprecated El impuesto 20 es Monotributo (antes estaba mal rotulado). El
58
- * monotributo social se identifica por la categoría (61, 99, 100), no por el impuesto.
59
- */
60
- MONOTRIBUTO_SOCIAL = 20,
74
+ /** Monotributo autónomo (manual A4 v1.3). */
75
+ MONOTRIBUTO_AUTONOMO = 21,
76
+ /** IVA. */
61
77
  IVA_RESPONSABLE_INSCRIPTO = 30,
62
- BIENES_PERSONALES = 31,
78
+ /** IVA exento. Sin respaldo en los manuales del padrón: el A4 informa la exención como impuesto 30 con estado EXENTO. */
63
79
  IVA_EXENTO = 32,
80
+ /** @deprecated Sin respaldo en los manuales del padrón y sin uso en el SDK. */
64
81
  IVA_NO_INSCRIPTO = 33,
82
+ /** IVA no alcanzado. Sin respaldo en los manuales del padrón. */
65
83
  IVA_NO_ALCANZADO = 34,
66
- EMPLEADOR = 301
84
+ /** Bienes personales (manual de constancia v4.1: "180 – Bs Ps"). Antes figuraba, mal, como 31. */
85
+ BIENES_PERSONALES = 180,
86
+ /** Empleador - aportes de la seguridad social. */
87
+ EMPLEADOR = 301,
88
+ /** Aportes de la seguridad social - autónomos. */
89
+ AUTONOMOS = 308
67
90
  }
68
91
  /** Estado de la clave fiscal del contribuyente */
69
92
  export declare enum EstadoClave {
@@ -71,7 +94,13 @@ export declare enum EstadoClave {
71
94
  INACTIVO = "INACTIVO",
72
95
  LIMITADO = "LIMITADO"
73
96
  }
74
- /** Nombres de colecciones disponibles en ws_sr_padron_a100 */
97
+ /**
98
+ * Nombres de colecciones de ws_sr_padron_a100 (manual v2.1, anexo 5.1).
99
+ *
100
+ * La fila de "Categorías de Monotributo según F.184" está cortada en el manual
101
+ * (solo se lee el atributo `COD_CATEGORIA_MONOTRIBUTO`), así que no se incluye:
102
+ * pasá el nombre como string si lo conocés.
103
+ */
75
104
  export declare enum CollectionName {
76
105
  PROVINCIA = "SUPA.E_PROVINCIA",
77
106
  TIPO_DOCUMENTO = "SUPA.TIPO_DOCUMENTO",
@@ -92,6 +121,22 @@ export declare enum CollectionName {
92
121
  PROVINCIA_SOCIEDAD_ORG = "SUPA.A_PROVINCIA_SOCIEDAD_ORG",
93
122
  SEXO = "E_SEXO",
94
123
  CALLE = "PUC_PARAM.T_CALLE",
95
- LOCALIDAD = "PUC_PARAM.T_LOCALIDAD"
124
+ LOCALIDAD = "PUC_PARAM.T_LOCALIDAD",
125
+ /** Tipología de autónomos de monotributo según F.184. */
126
+ AUTONOMO_MONOTRIBUTO = "SUPA.E_AUTONOMO_MONOTRIBUTO",
127
+ /** Nómina de regímenes vigentes y no vigentes. */
128
+ REGIMEN = "SUPA.E_REGIMEN",
129
+ /** Clasificaciones de regímenes. */
130
+ TIPO_REGIMEN = "SUPA.TIPO_REGIMEN",
131
+ /** Atributos y características de los contribuyentes. */
132
+ CARACTERIZACION = "SUPA.E_CARACTERIZACION",
133
+ /** Tipos de documento válidos para el sistema. */
134
+ TIPO_ARCHIVO = "SUPA.TIPO_ARCHIVO",
135
+ /** Relaciones entre actividades y rubros de todos los nomencladores. */
136
+ ACTIVIDAD_RUBRO = "SUPA.A_ACTIVIDAD_RUBRO",
137
+ /** Rubros de los nomencladores de actividades económicas. */
138
+ RUBRO_ACTIVIDAD = "SUPA.E_RUBRO_ACTIVIDAD",
139
+ /** Actividades ocupacionales no incluidas en el nomenclador F.150. */
140
+ ACTIVIDAD_OCUPACIONAL = "SUPA.E_ACTIVIDAD_OCUPACIONAL"
96
141
  }
97
142
  //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAExE;;;;;GAKG;AACH,eAAO,MAAM,aAAa,gBAAU,CAAC;AACrC,oEAAoE;AACpE,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;AAMpC,eAAO,MAAM,SAAS;;;;;IAEpB,yFAAyF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BjF,CAAC;AAMX,yBAAyB;AACzB,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,uBAAuB;AACvB,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED;;;;;;GAMG;AACH,oBAAY,UAAU;IACpB,qEAAqE;IACrE,YAAY,KAAK;IACjB,kCAAkC;IAClC,YAAY,KAAK;IACjB,mBAAmB;IACnB,WAAW,KAAK;IAChB,6CAA6C;IAC7C,oBAAoB,KAAK;IACzB,WAAW;IACX,yBAAyB,KAAK;IAC9B,yHAAyH;IACzH,UAAU,KAAK;IACf,+EAA+E;IAC/E,gBAAgB,KAAK;IACrB,iEAAiE;IACjE,gBAAgB,KAAK;IACrB,kGAAkG;IAClG,iBAAiB,MAAM;IACvB,kDAAkD;IAClD,SAAS,MAAM;IACf,kDAAkD;IAClD,SAAS,MAAM;CAChB;AAED,kDAAkD;AAClD,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED;;;;;;GAMG;AACH,oBAAY,cAAc;IACxB,SAAS,qBAAqB;IAC9B,cAAc,wBAAwB;IACtC,cAAc,wBAAwB;IACtC,UAAU,mCAAmC;IAC7C,qBAAqB,+BAA+B;IACpD,8BAA8B,oCAAoC;IAClE,aAAa,uBAAuB;IACpC,qBAAqB,+BAA+B;IACpD,wBAAwB,kCAAkC;IAC1D,4BAA4B,sCAAsC;IAClE,UAAU,oBAAoB;IAC9B,aAAa,uBAAuB;IACpC,eAAe,yBAAyB;IACxC,6BAA6B,uCAAuC;IACpE,oBAAoB,gCAAgC;IACpD,iBAAiB,6BAA6B;IAC9C,sBAAsB,kCAAkC;IACxD,IAAI,WAAW;IACf,KAAK,sBAAsB;IAC3B,SAAS,0BAA0B;IACnC,yDAAyD;IACzD,oBAAoB,gCAAgC;IACpD,kDAAkD;IAClD,OAAO,mBAAmB;IAC1B,oCAAoC;IACpC,YAAY,sBAAsB;IAClC,yDAAyD;IACzD,eAAe,2BAA2B;IAC1C,kDAAkD;IAClD,YAAY,sBAAsB;IAClC,wEAAwE;IACxE,eAAe,2BAA2B;IAC1C,6DAA6D;IAC7D,eAAe,2BAA2B;IAC1C,sEAAsE;IACtE,qBAAqB,iCAAiC;CACvD"}