@ramiidv/arca-padron 0.1.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 (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +310 -0
  3. package/dist/arca-padron.d.ts +70 -0
  4. package/dist/arca-padron.d.ts.map +1 -0
  5. package/dist/arca-padron.js +129 -0
  6. package/dist/arca-padron.js.map +1 -0
  7. package/dist/base-client.d.ts +26 -0
  8. package/dist/base-client.d.ts.map +1 -0
  9. package/dist/base-client.js +27 -0
  10. package/dist/base-client.js.map +1 -0
  11. package/dist/constants.d.ts +79 -0
  12. package/dist/constants.d.ts.map +1 -0
  13. package/dist/constants.js +89 -0
  14. package/dist/constants.js.map +1 -0
  15. package/dist/errors.d.ts +20 -0
  16. package/dist/errors.d.ts.map +1 -0
  17. package/dist/errors.js +24 -0
  18. package/dist/errors.js.map +1 -0
  19. package/dist/index.d.ts +12 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +16 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/padron-a10.d.ts +16 -0
  24. package/dist/padron-a10.d.ts.map +1 -0
  25. package/dist/padron-a10.js +74 -0
  26. package/dist/padron-a10.js.map +1 -0
  27. package/dist/padron-a100.d.ts +15 -0
  28. package/dist/padron-a100.d.ts.map +1 -0
  29. package/dist/padron-a100.js +40 -0
  30. package/dist/padron-a100.js.map +1 -0
  31. package/dist/padron-a4.d.ts +16 -0
  32. package/dist/padron-a4.d.ts.map +1 -0
  33. package/dist/padron-a4.js +174 -0
  34. package/dist/padron-a4.js.map +1 -0
  35. package/dist/soap-client.d.ts +2 -0
  36. package/dist/soap-client.d.ts.map +1 -0
  37. package/dist/soap-client.js +3 -0
  38. package/dist/soap-client.js.map +1 -0
  39. package/dist/types.d.ts +172 -0
  40. package/dist/types.d.ts.map +1 -0
  41. package/dist/types.js +2 -0
  42. package/dist/types.js.map +1 -0
  43. package/dist/wsaa.d.ts +3 -0
  44. package/dist/wsaa.d.ts.map +1 -0
  45. package/dist/wsaa.js +2 -0
  46. package/dist/wsaa.js.map +1 -0
  47. package/llms.txt +162 -0
  48. package/package.json +64 -0
@@ -0,0 +1,172 @@
1
+ export type { AccessTicket, ArcaEvent, ServerStatus, SoapCallOptions } from '@ramiidv/arca-common';
2
+ import type { ArcaEvent } from '@ramiidv/arca-common';
3
+ /** @deprecated Use ArcaEvent from @ramiidv/arca-common instead. */
4
+ export type ArcaPadronEvent = ArcaEvent;
5
+ export interface ArcaPadronConfig {
6
+ /** PEM-encoded X.509 certificate */
7
+ cert: string;
8
+ /** PEM-encoded RSA private key */
9
+ key: string;
10
+ /** CUIT of the entity represented (e.g. "20123456789") */
11
+ cuit: string;
12
+ /** Use production endpoints (default: false = testing / homologacion) */
13
+ production?: boolean;
14
+ /** Request timeout in ms (default: 30000) */
15
+ timeout?: number;
16
+ /** Number of retries on 5xx / network errors (default: 1) */
17
+ retries?: number;
18
+ /** Base delay in ms for exponential backoff (default: 1000) */
19
+ retryDelayMs?: number;
20
+ /** Optional event callback */
21
+ onEvent?: (event: ArcaEvent) => void;
22
+ }
23
+ export interface WsAuth {
24
+ Token: string;
25
+ Sign: string;
26
+ CuitRepresentada: string;
27
+ }
28
+ export interface DependenciaA4 {
29
+ idDependencia: number;
30
+ descripcionDependencia: string;
31
+ }
32
+ export interface DomicilioA4 {
33
+ direccion: string;
34
+ localidad?: string;
35
+ codPostal?: string;
36
+ idProvincia?: number;
37
+ descripcionProvincia?: string;
38
+ tipoDomicilio: string;
39
+ estadoDomicilio?: string;
40
+ datoAdicional?: string;
41
+ tipoDatoAdicional?: string;
42
+ orden?: number;
43
+ }
44
+ export interface ImpuestoA4 {
45
+ idImpuesto: number;
46
+ descripcionImpuesto?: string;
47
+ estado: string;
48
+ periodo?: number;
49
+ diaPeriodo?: number;
50
+ ffInscripcion?: string;
51
+ }
52
+ export interface ActividadA4 {
53
+ idActividad: string;
54
+ descripcionActividad?: string;
55
+ nomenclador?: number;
56
+ orden?: number;
57
+ periodo?: number;
58
+ }
59
+ export interface RegimenA4 {
60
+ idRegimen: number;
61
+ descripcionRegimen?: string;
62
+ estado?: string;
63
+ periodo?: number;
64
+ diaPeriodo?: number;
65
+ tipoRegimen?: string;
66
+ idImpuesto?: number;
67
+ }
68
+ export interface RelacionA4 {
69
+ idPersona: string;
70
+ idPersonaAsociada?: string;
71
+ tipoRelacion?: string;
72
+ subtipoRelacion?: string;
73
+ ffRelacion?: string;
74
+ ffVencimiento?: string;
75
+ }
76
+ export interface CategoriaA4 {
77
+ idCategoria: number;
78
+ descripcionCategoria?: string;
79
+ idImpuesto?: number;
80
+ estado?: string;
81
+ periodo?: number;
82
+ }
83
+ export interface EmailA4 {
84
+ direccion: string;
85
+ tipoEmail?: string;
86
+ estado?: string;
87
+ }
88
+ export interface TelefonoA4 {
89
+ numero: string;
90
+ tipoTelefono?: string;
91
+ tipoLinea?: string;
92
+ }
93
+ export interface PersonaA4 {
94
+ idPersona: string;
95
+ tipoPersona: 'FISICA' | 'JURIDICA';
96
+ tipoClave?: string;
97
+ estadoClave?: string;
98
+ apellido?: string;
99
+ nombre?: string;
100
+ razonSocial?: string;
101
+ numeroDocumento?: string;
102
+ tipoDocumento?: string;
103
+ fechaNacimiento?: string;
104
+ sexo?: string;
105
+ numeroInscripcion?: string;
106
+ formaJuridica?: string;
107
+ mesCierre?: number;
108
+ fechaInscripcion?: string;
109
+ fechaContratoSocial?: string;
110
+ fechaFallecimiento?: string;
111
+ fechaJubilado?: string;
112
+ fechaVencimientoMigracion?: string;
113
+ localidadInscripcion?: string;
114
+ provinciaInscripcion?: string;
115
+ organismoInscripcion?: string;
116
+ organismoOriginante?: string;
117
+ tipoOrganismoOriginante?: string;
118
+ tipoResidencia?: string;
119
+ porcentajeCapitalNacional?: number;
120
+ cantidadSociosEmpresaMono?: number;
121
+ leyJubilacion?: number;
122
+ dependencia?: DependenciaA4;
123
+ claveInactivaAsociada?: string[];
124
+ domicilio?: DomicilioA4[];
125
+ impuesto?: ImpuestoA4[];
126
+ actividad?: ActividadA4[];
127
+ regimen?: RegimenA4[];
128
+ relacion?: RelacionA4[];
129
+ categoria?: CategoriaA4[];
130
+ email?: EmailA4[];
131
+ telefono?: TelefonoA4[];
132
+ }
133
+ export interface DependenciaA10 {
134
+ idDependencia: number;
135
+ descripcionDependencia: string;
136
+ }
137
+ export interface DomicilioA10 {
138
+ direccion?: string;
139
+ localidad?: string;
140
+ codPostal?: string;
141
+ idProvincia?: number;
142
+ descripcionProvincia?: string;
143
+ tipoDomicilio?: string;
144
+ datoAdicional?: string;
145
+ tipoDatoAdicional?: string;
146
+ }
147
+ export interface PersonaA10 {
148
+ idPersona: string;
149
+ tipoPersona: 'FISICA' | 'JURIDICA';
150
+ tipoClave?: string;
151
+ estadoClave?: string;
152
+ nombre?: string;
153
+ apellido?: string;
154
+ razonSocial?: string;
155
+ numeroDocumento?: string;
156
+ tipoDocumento?: string;
157
+ idActividadPrincipal?: string;
158
+ descripcionActividadPrincipal?: string;
159
+ dependencia?: DependenciaA10;
160
+ claveInactivaAsociada?: string[];
161
+ domicilio?: DomicilioA10[];
162
+ }
163
+ export interface ParameterAttribute {
164
+ name: string;
165
+ value: string;
166
+ }
167
+ export interface ParameterRecord {
168
+ id: string;
169
+ descripcion: string;
170
+ atributos?: ParameterAttribute[];
171
+ }
172
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/dist/wsaa.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { WsaaClient } from '@ramiidv/arca-common';
2
+ export type { WsaaClientConfig } from '@ramiidv/arca-common';
3
+ //# sourceMappingURL=wsaa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsaa.d.ts","sourceRoot":"","sources":["../src/wsaa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/wsaa.js ADDED
@@ -0,0 +1,2 @@
1
+ export { WsaaClient } from '@ramiidv/arca-common';
2
+ //# sourceMappingURL=wsaa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wsaa.js","sourceRoot":"","sources":["../src/wsaa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC"}
package/llms.txt ADDED
@@ -0,0 +1,162 @@
1
+ # @ramiidv/arca-padron-sdk
2
+
3
+ > TypeScript SDK para los web services de Padron de ARCA (ex AFIP) - Alcances A4, A10 y A100
4
+
5
+ ## Instalacion
6
+
7
+ ```bash
8
+ npm install @ramiidv/arca-padron-sdk
9
+ ```
10
+
11
+ Requisitos: Node.js >= 18 (fetch nativo). ESM only.
12
+
13
+ ## Configuracion
14
+
15
+ ```typescript
16
+ import { ArcaPadron } from '@ramiidv/arca-padron-sdk';
17
+
18
+ const padron = new ArcaPadron({
19
+ cert: string, // PEM X.509 certificate
20
+ key: string, // PEM RSA private key
21
+ cuit: string, // CUIT representada (ej: "20123456789")
22
+ production?: boolean, // default: false (homologacion)
23
+ retries?: number, // default: 1
24
+ retryDelayMs?: number, // default: 1000
25
+ onEvent?: (event: ArcaPadronEvent) => void,
26
+ });
27
+ ```
28
+
29
+ ## Metodos principales
30
+
31
+ ### getPersona(cuit: string): Promise<PersonaA4>
32
+ Datos completos del contribuyente via ws_sr_padron_a4. Incluye: domicilios, impuestos, actividades, regimenes, relaciones, categorias, emails, telefonos.
33
+
34
+ ### getPersonaBasic(cuit: string): Promise<PersonaA10>
35
+ Datos basicos del contribuyente via ws_sr_padron_a10. Incluye: datos generales y domicilios.
36
+
37
+ ### getParametros(collection: string): Promise<ParameterRecord[]>
38
+ Tablas de parametros via ws_sr_padron_a100. Usa el enum CollectionName con valores SUPA.* prefijados. Colecciones: PROVINCIA (SUPA.E_PROVINCIA), TIPO_DOCUMENTO (SUPA.TIPO_DOCUMENTO), TIPO_DOMICILIO (SUPA.TIPO_DOMICILIO), TIPO_CLAVE (SUPA.TIPO_CLAVE_IDENTIFICACION), 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.
39
+
40
+ ### status(): Promise<{ a4: ServerStatus, a10: ServerStatus, a100: ServerStatus }>
41
+ Health check de los tres servicios. No requiere autenticacion.
42
+
43
+ ## Tipos principales
44
+
45
+ ```typescript
46
+ interface PersonaA4 {
47
+ idPersona: string;
48
+ tipoPersona: 'FISICA' | 'JURIDICA';
49
+ tipoClave?: string;
50
+ estadoClave?: string;
51
+ apellido?: string;
52
+ nombre?: string;
53
+ razonSocial?: string;
54
+ numeroDocumento?: string;
55
+ tipoDocumento?: string;
56
+ fechaNacimiento?: string;
57
+ sexo?: string;
58
+ numeroInscripcion?: string;
59
+ formaJuridica?: string;
60
+ mesCierre?: number;
61
+ fechaInscripcion?: string;
62
+ fechaContratoSocial?: string;
63
+ fechaFallecimiento?: string;
64
+ fechaJubilado?: string;
65
+ fechaVencimientoMigracion?: string;
66
+ localidadInscripcion?: string;
67
+ provinciaInscripcion?: string;
68
+ organismoInscripcion?: string;
69
+ organismoOriginante?: string;
70
+ tipoOrganismoOriginante?: string;
71
+ tipoResidencia?: string;
72
+ porcentajeCapitalNacional?: number;
73
+ cantidadSociosEmpresaMono?: number;
74
+ leyJubilacion?: number;
75
+ dependencia?: DependenciaA4;
76
+ claveInactivaAsociada?: string[];
77
+ domicilio?: DomicilioA4[];
78
+ impuesto?: ImpuestoA4[];
79
+ actividad?: ActividadA4[];
80
+ regimen?: RegimenA4[];
81
+ relacion?: RelacionA4[];
82
+ categoria?: CategoriaA4[];
83
+ email?: EmailA4[];
84
+ telefono?: TelefonoA4[];
85
+ }
86
+
87
+ interface PersonaA10 {
88
+ idPersona: string;
89
+ tipoPersona: 'FISICA' | 'JURIDICA';
90
+ tipoClave?: string;
91
+ estadoClave?: string;
92
+ nombre?: string;
93
+ apellido?: string;
94
+ razonSocial?: string;
95
+ numeroDocumento?: string;
96
+ tipoDocumento?: string;
97
+ idActividadPrincipal?: string;
98
+ descripcionActividadPrincipal?: string;
99
+ dependencia?: DependenciaA10;
100
+ claveInactivaAsociada?: string[];
101
+ domicilio?: DomicilioA10[];
102
+ }
103
+
104
+ interface ParameterRecord {
105
+ id: string;
106
+ descripcion: string;
107
+ atributos?: ParameterAttribute[];
108
+ }
109
+
110
+ interface ParameterAttribute {
111
+ name: string;
112
+ value: string;
113
+ }
114
+
115
+ interface ServerStatus {
116
+ appserver: string;
117
+ dbserver: string;
118
+ authserver: string;
119
+ }
120
+ ```
121
+
122
+ ## Errores
123
+
124
+ 4-class hierarchy:
125
+ - ArcaPadronError: base class
126
+ - ArcaAuthError: WSAA authentication failures
127
+ - ArcaPadronServiceError: business errors from ARCA (has errors: {code: number, msg: string}[])
128
+ - ArcaSoapError: HTTP/transport errors (has statusCode?: number)
129
+
130
+ ```typescript
131
+ import { ArcaAuthError, ArcaPadronServiceError, ArcaSoapError } from '@ramiidv/arca-padron-sdk';
132
+
133
+ try {
134
+ await padron.getPersona(cuit);
135
+ } catch (error) {
136
+ if (error instanceof ArcaAuthError) { /* auth failure */ }
137
+ if (error instanceof ArcaPadronServiceError) { /* business error, check error.errors */ }
138
+ if (error instanceof ArcaSoapError) { /* HTTP/network error, check error.statusCode */ }
139
+ }
140
+ ```
141
+
142
+ ## Eventos
143
+
144
+ Discriminated union types: auth:login, auth:cache-hit, request:start, request:end, request:retry, request:error.
145
+
146
+ ## Enums
147
+
148
+ - Provincia (0-24, Argentine provinces)
149
+ - TipoDomicilio (FISCAL, LEGAL, REAL)
150
+ - TipoPersona (FISICA, JURIDICA)
151
+ - ImpuestoId (IVA_RESPONSABLE_INSCRIPTO=30, IVA_EXENTO=32, MONOTRIBUTO=20, EMPLEADOR=301, GANANCIAS_PH=11, GANANCIAS_PJ=10, BIENES_PERSONALES=31)
152
+ - CollectionName (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)
153
+
154
+ ## Clientes de bajo nivel
155
+
156
+ Accesibles como propiedades publicas: padron.wsaa, padron.a4, padron.a10, padron.a100.
157
+
158
+ ## Utilidades exportadas
159
+
160
+ - ensureArray<T>(value): T[] - normaliza single/array SOAP responses
161
+ - parseXml(xml): Record<string, unknown> - parse XML with CUIT-safe options
162
+ - buildXml(obj): string - build XML from object
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@ramiidv/arca-padron",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript SDK para los web services de Padrón de ARCA (ex AFIP) - Alcances A4, A10 y A100",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "llms.txt",
17
+ "LICENSE",
18
+ "README.md"
19
+ ],
20
+ "scripts": {
21
+ "build": "tsc",
22
+ "clean": "rm -rf dist",
23
+ "typecheck": "tsc --noEmit",
24
+ "test": "vitest run",
25
+ "test:watch": "vitest",
26
+ "prepublishOnly": "npm run build"
27
+ },
28
+ "keywords": [
29
+ "arca",
30
+ "afip",
31
+ "padron",
32
+ "argentina",
33
+ "sdk",
34
+ "typescript",
35
+ "contribuyentes"
36
+ ],
37
+ "author": "ramiidv",
38
+ "license": "MIT",
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "git+https://github.com/ramiidv/arca-padron-sdk.git"
42
+ },
43
+ "homepage": "https://github.com/ramiidv/arca-padron-sdk#readme",
44
+ "bugs": {
45
+ "url": "https://github.com/ramiidv/arca-padron-sdk/issues"
46
+ },
47
+ "publishConfig": {
48
+ "access": "public"
49
+ },
50
+ "engines": {
51
+ "node": ">=18"
52
+ },
53
+ "dependencies": {
54
+ "@ramiidv/arca-common": "^0.1.0",
55
+ "fast-xml-parser": "^5.0.0",
56
+ "node-forge": "^1.3.0"
57
+ },
58
+ "devDependencies": {
59
+ "@types/node": "^22.0.0",
60
+ "@types/node-forge": "^1.3.0",
61
+ "typescript": "^5.7.0",
62
+ "vitest": "^3.1.0"
63
+ }
64
+ }