@albertomarturelo/sii-core 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +72 -0
- package/dist/auth/auth.d.ts.map +1 -1
- package/dist/auth/auth.js +7 -5
- package/dist/auth/auth.js.map +1 -1
- package/dist/auth/datos-cntr.d.ts +9 -0
- package/dist/auth/datos-cntr.d.ts.map +1 -1
- package/dist/auth/datos-cntr.js +22 -0
- package/dist/auth/datos-cntr.js.map +1 -1
- package/dist/errors/errors.d.ts +5 -0
- package/dist/errors/errors.d.ts.map +1 -1
- package/dist/errors/errors.js +5 -0
- package/dist/errors/errors.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/portal/f22/index.d.ts +1 -0
- package/dist/portal/f22/index.d.ts.map +1 -1
- package/dist/portal/f22/index.js +1 -0
- package/dist/portal/f22/index.js.map +1 -1
- package/dist/portal/f22/shared.d.ts +10 -1
- package/dist/portal/f22/shared.d.ts.map +1 -1
- package/dist/portal/f22/shared.js +13 -11
- package/dist/portal/f22/shared.js.map +1 -1
- package/dist/portal/f22/terceros.d.ts +58 -0
- package/dist/portal/f22/terceros.d.ts.map +1 -0
- package/dist/portal/f22/terceros.js +323 -0
- package/dist/portal/f22/terceros.js.map +1 -0
- package/dist/portal/f29-rfi-form.d.ts +50 -0
- package/dist/portal/f29-rfi-form.d.ts.map +1 -0
- package/dist/portal/f29-rfi-form.js +637 -0
- package/dist/portal/f29-rfi-form.js.map +1 -0
- package/dist/portal/f29-rfi.d.ts +66 -0
- package/dist/portal/f29-rfi.d.ts.map +1 -0
- package/dist/portal/f29-rfi.js +258 -0
- package/dist/portal/f29-rfi.js.map +1 -0
- package/dist/portal/f29.d.ts +9 -0
- package/dist/portal/f29.d.ts.map +1 -1
- package/dist/portal/f29.js +55 -1
- package/dist/portal/f29.js.map +1 -1
- package/dist/portal/gwt.d.ts +99 -0
- package/dist/portal/gwt.d.ts.map +1 -1
- package/dist/portal/gwt.js +647 -2
- package/dist/portal/gwt.js.map +1 -1
- package/dist/portal/rfi-schema.d.ts +7 -0
- package/dist/portal/rfi-schema.d.ts.map +1 -0
- package/dist/portal/rfi-schema.js +429 -0
- package/dist/portal/rfi-schema.js.map +1 -0
- package/dist/tasks/alertas.d.ts +65 -0
- package/dist/tasks/alertas.d.ts.map +1 -0
- package/dist/tasks/alertas.js +339 -0
- package/dist/tasks/alertas.js.map +1 -0
- package/dist/tasks/f22.d.ts +38 -2
- package/dist/tasks/f22.d.ts.map +1 -1
- package/dist/tasks/f22.js +126 -6
- package/dist/tasks/f22.js.map +1 -1
- package/dist/tasks/f29-submit.d.ts +83 -0
- package/dist/tasks/f29-submit.d.ts.map +1 -0
- package/dist/tasks/f29-submit.js +215 -0
- package/dist/tasks/f29-submit.js.map +1 -0
- package/dist/tasks/f29.d.ts +7 -1
- package/dist/tasks/f29.d.ts.map +1 -1
- package/dist/tasks/f29.js +9 -13
- package/dist/tasks/f29.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alertas.d.ts","sourceRoot":"","sources":["../../src/tasks/alertas.ts"],"names":[],"mappings":"AAOA,OAAO,EAAQ,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAML,KAAK,SAAS,EACf,MAAM,oBAAoB,CAAC;AAU5B,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEhE,eAAO,MAAM,eAAe,uCAAwC,CAAC;AACrE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,MAAM,UAAU,GAClB,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,CAAC;AAEtB,+FAA+F;AAC/F,MAAM,WAAW,MAAM;IACrB;qFACiF;IACjF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,0FAA0F;IAC1F,QAAQ,CAAC,WAAW,CAAC,EAAE;QACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;KACzB,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,eAAe,GAAG,OAAO,GAAG,SAAS,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,gGAAgG;IAChG,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACvE;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,kEAAkE;IAClE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC1D,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AA+CD;;;;;4FAK4F;AAC5F,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,GAAG,GAAE,EAAE,GAAG,EAAO,GAChB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAQlC;AA0OD,sFAAsF;AACtF,wBAAsB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAyE9F"}
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
// `alertas` — one read of what SII holds against the taxpayer but does not push (ADR-030).
|
|
2
|
+
// A composite: ONE `withSession` over the existing portal facades (never the other tasks, which
|
|
3
|
+
// would each open a session), every call paced, one audit receipt. SESSION-KEYED (ADR-005): it
|
|
4
|
+
// reads the session principal, takes no `--rut`, and refuses a representing pointer up front.
|
|
5
|
+
// Stateless: each alerta has an id built from what it is, so a caller diffs runs by id.
|
|
6
|
+
import { assertOperatingSelf, withSession } from '../auth/index.js';
|
|
7
|
+
import { recordAudit } from '../audit/index.js';
|
|
8
|
+
import { Anio, Periodo } from '../periodo/index.js';
|
|
9
|
+
import { Rut } from '../rut/index.js';
|
|
10
|
+
import { NotAuthenticatedError, RateLimitError, SiiError, ValidationError, classifyError, } from '../errors/index.js';
|
|
11
|
+
import { DEFAULT_SETTINGS, HOSTS } from '../config/index.js';
|
|
12
|
+
import { parseDatosCntrNow } from '../auth/datos-cntr.js';
|
|
13
|
+
import { fetchF22Declaraciones, fetchF22Observaciones, pickVigenteFolio, } from '../portal/f22/index.js';
|
|
14
|
+
import { fetchF29Estado } from '../portal/f29.js';
|
|
15
|
+
import { fetchPeticiones } from '../portal/peticiones.js';
|
|
16
|
+
export const FUENTES_ALERTAS = ['f22', 'f29', 'peticiones'];
|
|
17
|
+
/** F22: años tributarios read, the current one first (3 ⇒ the prescription window). */
|
|
18
|
+
const F22_ANIOS = 3;
|
|
19
|
+
/** F29: períodos read, ending at the previous month (the current one is not due yet). */
|
|
20
|
+
const F29_PERIODOS = 12;
|
|
21
|
+
const pacingMs = () => Math.round(1000 / DEFAULT_SETTINGS.rateLimitRps);
|
|
22
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
23
|
+
const isoDate = (d) => `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;
|
|
24
|
+
function parseFuentes(input) {
|
|
25
|
+
if (input === undefined)
|
|
26
|
+
return [...FUENTES_ALERTAS];
|
|
27
|
+
const raw = typeof input === 'string' ? input.split(',') : [...input];
|
|
28
|
+
const names = raw.map((s) => s.trim().toLowerCase()).filter((s) => s !== '');
|
|
29
|
+
if (names.length === 0) {
|
|
30
|
+
throw new ValidationError(`Indica al menos una fuente: ${FUENTES_ALERTAS.join(', ')}.`);
|
|
31
|
+
}
|
|
32
|
+
for (const n of names) {
|
|
33
|
+
if (!FUENTES_ALERTAS.includes(n)) {
|
|
34
|
+
throw new ValidationError(`Fuente desconocida: "${n}". Las fuentes son ${FUENTES_ALERTAS.join(', ')}.`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// Keep the canonical order, so the result does not depend on how the caller listed them.
|
|
38
|
+
return FUENTES_ALERTAS.filter((f) => names.includes(f));
|
|
39
|
+
}
|
|
40
|
+
function parseDesde(input) {
|
|
41
|
+
if (input === undefined)
|
|
42
|
+
return null;
|
|
43
|
+
const m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(input.trim());
|
|
44
|
+
const d = m ? new Date(Number(m[1]), Number(m[2]) - 1, Number(m[3])) : null;
|
|
45
|
+
if (!m || !d || d.getMonth() !== Number(m[2]) - 1 || d.getDate() !== Number(m[3])) {
|
|
46
|
+
throw new ValidationError(`Fecha inválida en --desde: "${input}" (formato AAAA-MM-DD).`);
|
|
47
|
+
}
|
|
48
|
+
return `${m[1]}-${m[2]}-${m[3]}`;
|
|
49
|
+
}
|
|
50
|
+
/** SII's `DD/MM/YYYY` (F29 `declFechaCreacion`, observed) as YYYY-MM-DD; anything else ⇒ null. */
|
|
51
|
+
function fechaSii(s) {
|
|
52
|
+
const m = s ? /^(\d{2})\/(\d{2})\/(\d{4})/.exec(s) : null;
|
|
53
|
+
return m ? `${m[3]}-${m[2]}-${m[1]}` : null;
|
|
54
|
+
}
|
|
55
|
+
/** The F29 due dates of `periodo`, from SII's own FAQ (www.sii.cl/preguntas_frecuentes/
|
|
56
|
+
* impuestos_mensuales/001_130_1060.htm, updated 17/06/2025, read 2026-10-23): the 12th of the
|
|
57
|
+
* next month in general; the 20th for an Internet declaration WITH payment by an eligible
|
|
58
|
+
* taxpayer; the 28th for one "sin pago" or sin movimiento. A due date with payment on a
|
|
59
|
+
* Saturday or holiday moves to the next business day: we move it off a weekend, holidays are not
|
|
60
|
+
* known (hence `estimado`). `dia` is the taxpayer's regime (`autorizadoDeclararDia20`). */
|
|
61
|
+
export function vencimientoF29(periodo, dia = 20) {
|
|
62
|
+
const year = periodo.month === 12 ? periodo.year + 1 : periodo.year;
|
|
63
|
+
const month = periodo.month === 12 ? 0 : periodo.month; // JS month index of the NEXT month
|
|
64
|
+
const conPago = new Date(year, month, dia);
|
|
65
|
+
const dow = conPago.getDay();
|
|
66
|
+
if (dow === 6)
|
|
67
|
+
conPago.setDate(dia + 2);
|
|
68
|
+
if (dow === 0)
|
|
69
|
+
conPago.setDate(dia + 1);
|
|
70
|
+
return { conPago, sinPago: new Date(year, month, 28) };
|
|
71
|
+
}
|
|
72
|
+
// SII's FAQ: F29 is mandatory every month, sin movimiento included, for "todos aquellos
|
|
73
|
+
// contribuyentes afectos a la Ley de Impuestos a las Ventas y Servicios" from the « Inicio de
|
|
74
|
+
// Actividades en la primera categoría » (preguntas_frecuentes/impuestos_mensuales/
|
|
75
|
+
// 001_130_1051.htm and 001_130_1053.htm, updated 05/06/2025, read 2026-10-23), until the término
|
|
76
|
+
// de giro (001_130_2312.htm). The `atributos` codes of a primera-categoría regime, as observed:
|
|
77
|
+
// only exact codes, a new one joins with its citation. A persona with only honorarios has an
|
|
78
|
+
// inicio de actividades too but none of these (observed 2026-10-23: `NOTI`, `SGPE`).
|
|
79
|
+
const REGIMEN_PRIMERA_CATEGORIA = new Set([
|
|
80
|
+
'14D1', // « REGIMEN PRO PYME GENERAL (14D) », observed 2026-10-23 on an empresa
|
|
81
|
+
]);
|
|
82
|
+
/** `"2026-03-26 00:00:00.0"` (observed) ⇒ that month; anything else ⇒ null (no bound). */
|
|
83
|
+
function mesDe(s) {
|
|
84
|
+
const m = s ? /^(\d{4})-(\d{2})-\d{2}/.exec(s) : null;
|
|
85
|
+
return m ? Periodo.of(Number(m[1]), Number(m[2])) : null;
|
|
86
|
+
}
|
|
87
|
+
/** An atributo's `fechaInicio`, `"26-03-2026"` (observed) ⇒ that month; anything else ⇒ null. */
|
|
88
|
+
function mesDeAtributo(s) {
|
|
89
|
+
const m = s ? /^\d{2}-(\d{2})-(\d{4})$/.exec(s.trim()) : null;
|
|
90
|
+
return m ? Periodo.of(Number(m[2]), Number(m[1])) : null;
|
|
91
|
+
}
|
|
92
|
+
const antes = (a, b) => a.year < b.year || (a.year === b.year && a.month < b.month);
|
|
93
|
+
/** The month the account entered an observed primera-categoría regime, and the inicio de
|
|
94
|
+
* actividades, whichever is later: an account that moved from honorarios into the regime owed
|
|
95
|
+
* nothing before it (#209 review). Either one unknown ⇒ null. */
|
|
96
|
+
function obligadoDesde(inicio, atributos) {
|
|
97
|
+
if (!inicio)
|
|
98
|
+
return null; // no lower bound: "due every month" would reach before the account
|
|
99
|
+
const desde = atributos
|
|
100
|
+
.filter((a) => REGIMEN_PRIMERA_CATEGORIA.has(a.atrCodigo?.trim() ?? '') &&
|
|
101
|
+
a.fechaTermino == null &&
|
|
102
|
+
a.eliminado == null)
|
|
103
|
+
.map((a) => mesDeAtributo(a.fechaInicio));
|
|
104
|
+
const meses = desde.filter((p) => p !== null);
|
|
105
|
+
// An active regime whose start does not parse is not proof of when the obligation began.
|
|
106
|
+
if (meses.length === 0 || meses.length < desde.length)
|
|
107
|
+
return null;
|
|
108
|
+
const regimen = meses.reduce((a, b) => (antes(a, b) ? a : b));
|
|
109
|
+
return antes(regimen, inicio) ? inicio : regimen;
|
|
110
|
+
}
|
|
111
|
+
async function leerRegimen(session) {
|
|
112
|
+
// A dead jar bounces here and the seam raises SessionExpiredError (aborts the read). A live
|
|
113
|
+
// page without the object only loses the bounds: no window, and the later day-20 deadline.
|
|
114
|
+
const { body } = await session.requestText(HOSTS.miSii, { method: 'GET' });
|
|
115
|
+
const datos = parseDatosCntrNow(body);
|
|
116
|
+
const c = datos?.contribuyente;
|
|
117
|
+
const inicio = mesDe(c?.fechaInicioActividades);
|
|
118
|
+
return {
|
|
119
|
+
inicio,
|
|
120
|
+
obligadoDesde: obligadoDesde(inicio, datos?.atributos ?? []),
|
|
121
|
+
termino: mesDe(c?.fechaTerminoGiro),
|
|
122
|
+
// `"S"` observed. A day-12 taxpayer says "N"; an unknown value keeps the 20th, the later of
|
|
123
|
+
// the two, so the alerta is never early.
|
|
124
|
+
dia: c?.autorizadoDeclararDia20?.trim().toUpperCase() === 'N' ? 12 : 20,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
const base = (origen) => ({
|
|
128
|
+
origen,
|
|
129
|
+
periodo: null,
|
|
130
|
+
anio: null,
|
|
131
|
+
folio: null,
|
|
132
|
+
peticion: null,
|
|
133
|
+
codigo: null,
|
|
134
|
+
estado: null,
|
|
135
|
+
mensaje: null,
|
|
136
|
+
url: null,
|
|
137
|
+
fecha: null,
|
|
138
|
+
});
|
|
139
|
+
async function leerF22(runtime, session, rut, push) {
|
|
140
|
+
const current = runtime.clock.now().getFullYear();
|
|
141
|
+
for (let i = 0; i < F22_ANIOS; i++) {
|
|
142
|
+
const anio = Anio.of(current - i);
|
|
143
|
+
if (i > 0)
|
|
144
|
+
await runtime.clock.sleep(pacingMs());
|
|
145
|
+
const decls = await fetchF22Declaraciones(session, { rut, anio });
|
|
146
|
+
const folio = pickVigenteFolio(decls.declaraciones);
|
|
147
|
+
if (folio === null)
|
|
148
|
+
continue; // no declaración that año: nothing to observe
|
|
149
|
+
await runtime.clock.sleep(pacingMs());
|
|
150
|
+
for (const o of await fetchF22Observaciones(session, { rut, anio, folio })) {
|
|
151
|
+
push({
|
|
152
|
+
...base('f22'),
|
|
153
|
+
id: `f22:${anio.canonical}:${folio}:${o.codigo}`,
|
|
154
|
+
tipo: 'f22_observacion',
|
|
155
|
+
anio: anio.canonical,
|
|
156
|
+
folio,
|
|
157
|
+
codigo: o.codigo,
|
|
158
|
+
mensaje: o.descripcion,
|
|
159
|
+
url: o.url,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return 'ok';
|
|
164
|
+
}
|
|
165
|
+
const ESTADO_VIGENTE = 1;
|
|
166
|
+
const ESTADO_GUARDADA = 10; // observed (sii-contract/f29.md)
|
|
167
|
+
const ESTADO_RECHAZADA = 70; // "Rechazada por pago inconcluso", observed
|
|
168
|
+
const isVigente = (d) => d.estadoId === ESTADO_VIGENTE || (d.estado ?? '').toLowerCase().includes('vigente');
|
|
169
|
+
async function leerF29(runtime, session, rut, push) {
|
|
170
|
+
const now = runtime.clock.now();
|
|
171
|
+
const today = isoDate(now);
|
|
172
|
+
const periodos = Array.from({ length: F29_PERIODOS }, (_, i) => {
|
|
173
|
+
const d = new Date(now.getFullYear(), now.getMonth() - F29_PERIODOS + i, 1);
|
|
174
|
+
return Periodo.of(d.getFullYear(), d.getMonth() + 1);
|
|
175
|
+
});
|
|
176
|
+
const regimen = await leerRegimen(session);
|
|
177
|
+
const sinDeclarar = [];
|
|
178
|
+
let declarante = false;
|
|
179
|
+
for (let i = 0; i < periodos.length; i++) {
|
|
180
|
+
const periodo = periodos[i];
|
|
181
|
+
await runtime.clock.sleep(pacingMs()); // after the Mi SII read too (ADR-004)
|
|
182
|
+
const { declaraciones } = await fetchF29Estado(session, { rut, periodo });
|
|
183
|
+
if (declaraciones.some(isVigente)) {
|
|
184
|
+
declarante = true;
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
const rec = declaraciones.find((d) => d.estadoId === ESTADO_RECHAZADA) ??
|
|
188
|
+
declaraciones.find((d) => d.estadoId === ESTADO_GUARDADA) ??
|
|
189
|
+
declaraciones[0];
|
|
190
|
+
if (rec) {
|
|
191
|
+
const tipo = rec.estadoId === ESTADO_RECHAZADA
|
|
192
|
+
? 'f29_rechazada'
|
|
193
|
+
: rec.estadoId === ESTADO_GUARDADA
|
|
194
|
+
? 'f29_guardada'
|
|
195
|
+
: 'f29_otro_estado';
|
|
196
|
+
// A Guardada borrador carries folio 0 (observed): not a folio of anything.
|
|
197
|
+
const folio = rec.folio ? String(rec.folio) : null;
|
|
198
|
+
const suffix = tipo === 'f29_otro_estado' ? `otro_estado:${rec.estadoId ?? 'null'}` : tipo.slice(4);
|
|
199
|
+
push({
|
|
200
|
+
...base('f29'),
|
|
201
|
+
id: `f29:${periodo.formatted}:${suffix}${folio ? `:${folio}` : ''}`,
|
|
202
|
+
tipo,
|
|
203
|
+
periodo: periodo.formatted,
|
|
204
|
+
folio,
|
|
205
|
+
estado: rec.estado,
|
|
206
|
+
fecha: fechaSii(rec.fecha),
|
|
207
|
+
});
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
// Outside the account's own obligation window nothing was due: a month before the empresa
|
|
211
|
+
// existed is not a missing F29 (observed live: five false alertas before ADR-030's fix).
|
|
212
|
+
if (regimen.inicio && antes(periodo, regimen.inicio))
|
|
213
|
+
continue;
|
|
214
|
+
if (regimen.termino && antes(regimen.termino, periodo))
|
|
215
|
+
continue;
|
|
216
|
+
const venc = vencimientoF29(periodo, regimen.dia);
|
|
217
|
+
if (today <= isoDate(venc.conPago))
|
|
218
|
+
continue; // due date not passed: still on time
|
|
219
|
+
sinDeclarar.push({
|
|
220
|
+
periodo,
|
|
221
|
+
alerta: {
|
|
222
|
+
...base('f29'),
|
|
223
|
+
id: `f29:${periodo.formatted}:sin_declarar`,
|
|
224
|
+
tipo: 'f29_sin_declarar',
|
|
225
|
+
periodo: periodo.formatted,
|
|
226
|
+
fecha: isoDate(venc.conPago),
|
|
227
|
+
vencimiento: {
|
|
228
|
+
conPago: isoDate(venc.conPago),
|
|
229
|
+
sinPago: isoDate(venc.sinPago),
|
|
230
|
+
estimado: true,
|
|
231
|
+
},
|
|
232
|
+
},
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
// An account with no Vigente F29 in the window does not file F29 (a persona without giro):
|
|
236
|
+
// twelve "sin declarar" would be noise, not alertas (ADR-030). Unless SII holds it in a
|
|
237
|
+
// primera-categoría regime: then a new business that never filed is exactly the case (#208),
|
|
238
|
+
// from the month its obligation began.
|
|
239
|
+
const desde = declarante ? null : regimen.obligadoDesde;
|
|
240
|
+
if (!declarante && !desde)
|
|
241
|
+
return 'no_declarante';
|
|
242
|
+
for (const { periodo, alerta } of sinDeclarar) {
|
|
243
|
+
if (desde && antes(periodo, desde))
|
|
244
|
+
continue;
|
|
245
|
+
push(alerta);
|
|
246
|
+
}
|
|
247
|
+
return 'ok';
|
|
248
|
+
}
|
|
249
|
+
async function leerPeticiones(session, rut, push) {
|
|
250
|
+
const { peticiones } = await fetchPeticiones(session, { rut });
|
|
251
|
+
for (const p of peticiones) {
|
|
252
|
+
const ultimo = p.timeline[0] ?? null; // most-recent-first (portal/peticiones.ts)
|
|
253
|
+
push({
|
|
254
|
+
...base('peticiones'),
|
|
255
|
+
// The latest transition is in the id, so a petición resurfaces only when it moves.
|
|
256
|
+
id: `peticion:${p.numero}:${ultimo?.fecha ?? p.estadoActual}`,
|
|
257
|
+
tipo: 'peticion_estado',
|
|
258
|
+
peticion: p.numero,
|
|
259
|
+
estado: p.estadoActual,
|
|
260
|
+
mensaje: ultimo?.mensaje ?? null,
|
|
261
|
+
fecha: ultimo?.fecha ? ultimo.fecha.slice(0, 10) : null,
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
return 'ok';
|
|
265
|
+
}
|
|
266
|
+
/** Read the alertas of the session principal from the requested sources (ADR-030). */
|
|
267
|
+
export async function alertas(runtime, args = {}) {
|
|
268
|
+
const fuentes = parseFuentes(args.fuentes); // fail fast — no session opened
|
|
269
|
+
const desde = parseDesde(args.desde);
|
|
270
|
+
await assertOperatingSelf(runtime, (empresa) => new ValidationError(`alertas es session-keyed: lee las alertas del titular de la sesión, no del RUT operado ` +
|
|
271
|
+
`(${empresa}). Para las de esa empresa, inicia sesión como ella ` +
|
|
272
|
+
'(`sii auth logout` y luego `sii auth login`).'));
|
|
273
|
+
const start = runtime.clock.now().getTime();
|
|
274
|
+
try {
|
|
275
|
+
const result = await withSession(runtime, async (session, ctx) => {
|
|
276
|
+
const rut = Rut.parse(ctx.sessionRut); // session-keyed: ALWAYS the principal
|
|
277
|
+
const found = [];
|
|
278
|
+
const push = (a) => {
|
|
279
|
+
found.push(a);
|
|
280
|
+
};
|
|
281
|
+
const estados = [];
|
|
282
|
+
for (let i = 0; i < FUENTES_ALERTAS.length; i++) {
|
|
283
|
+
const origen = FUENTES_ALERTAS[i];
|
|
284
|
+
if (!fuentes.includes(origen)) {
|
|
285
|
+
estados.push({ origen, estado: 'omitida' });
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
if (estados.some((e) => e.estado !== 'omitida'))
|
|
289
|
+
await runtime.clock.sleep(pacingMs());
|
|
290
|
+
try {
|
|
291
|
+
const estado = origen === 'f22'
|
|
292
|
+
? await leerF22(runtime, session, rut, push)
|
|
293
|
+
: origen === 'f29'
|
|
294
|
+
? await leerF29(runtime, session, rut, push)
|
|
295
|
+
: await leerPeticiones(session, rut, push);
|
|
296
|
+
estados.push({ origen, estado });
|
|
297
|
+
}
|
|
298
|
+
catch (e) {
|
|
299
|
+
// A dead session or SII's rate limit ends the whole read: going on would mean asking
|
|
300
|
+
// again against a block (ADR-004). A bug (not a SiiError) must not hide as a source
|
|
301
|
+
// error either. Any other SII failure stops that source only; what it read stays.
|
|
302
|
+
if (e instanceof NotAuthenticatedError || e instanceof RateLimitError)
|
|
303
|
+
throw e;
|
|
304
|
+
if (!(e instanceof SiiError))
|
|
305
|
+
throw e;
|
|
306
|
+
estados.push({
|
|
307
|
+
origen,
|
|
308
|
+
estado: 'error',
|
|
309
|
+
error: { type: classifyError(e).type, error: e.message },
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
const alertasFiltradas = desde
|
|
314
|
+
? found.filter((a) => a.fecha === null || a.fecha >= desde)
|
|
315
|
+
: found;
|
|
316
|
+
return {
|
|
317
|
+
rut: rut.canonical,
|
|
318
|
+
alertas: alertasFiltradas,
|
|
319
|
+
fuentes: estados,
|
|
320
|
+
incompleto: estados.some((e) => e.estado === 'error'),
|
|
321
|
+
};
|
|
322
|
+
});
|
|
323
|
+
// Counts only: the alertas carry SII's free text about the taxpayer (ADR-006).
|
|
324
|
+
recordAudit(runtime, {
|
|
325
|
+
action: 'alertas',
|
|
326
|
+
result: result.incompleto ? 'partial' : 'ok',
|
|
327
|
+
rut: result.rut,
|
|
328
|
+
count: result.alertas.length,
|
|
329
|
+
fuentes: Object.fromEntries(result.fuentes.map((f) => [f.origen, f.estado])),
|
|
330
|
+
durationMs: runtime.clock.now().getTime() - start,
|
|
331
|
+
});
|
|
332
|
+
return result;
|
|
333
|
+
}
|
|
334
|
+
catch (e) {
|
|
335
|
+
recordAudit(runtime, { action: 'alertas', result: 'failed' });
|
|
336
|
+
throw e;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
//# sourceMappingURL=alertas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alertas.js","sourceRoot":"","sources":["../../src/tasks/alertas.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,gGAAgG;AAChG,+FAA+F;AAC/F,8FAA8F;AAC9F,wFAAwF;AACxF,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,QAAQ,EACR,eAAe,EACf,aAAa,GAEd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAkB,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAU,CAAC;AA2DrE,uFAAuF;AACvF,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,yFAAyF;AACzF,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAEhF,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9D,MAAM,OAAO,GAAG,CAAC,CAAO,EAAU,EAAE,CAClC,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;AAEpE,SAAS,YAAY,CAAC,KAA6B;IACjD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CAAC,+BAA+B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1F,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAE,eAAqC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,eAAe,CACvB,wBAAwB,CAAC,sBAAsB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IACD,yFAAyF;IACzF,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,MAAM,IAAI,eAAe,CAAC,+BAA+B,KAAK,yBAAyB,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnC,CAAC;AAED,kGAAkG;AAClG,SAAS,QAAQ,CAAC,CAAgB;IAChC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED;;;;;4FAK4F;AAC5F,MAAM,UAAU,cAAc,CAC5B,OAAgB,EAChB,MAAe,EAAE;IAEjB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,mCAAmC;IAC3F,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAC7B,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACxC,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACxC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC;AAYD,wFAAwF;AACxF,8FAA8F;AAC9F,mFAAmF;AACnF,iGAAiG;AACjG,gGAAgG;AAChG,6FAA6F;AAC7F,qFAAqF;AACrF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,MAAM,EAAE,wEAAwE;CACjF,CAAC,CAAC;AAEH,0FAA0F;AAC1F,SAAS,KAAK,CAAC,CAA4B;IACzC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,iGAAiG;AACjG,SAAS,aAAa,CAAC,CAA4B;IACjD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,CAAU,EAAE,CAAU,EAAW,EAAE,CAChD,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAE9D;;kEAEkE;AAClE,SAAS,aAAa,CACpB,MAAsB,EACtB,SAA8C;IAE9C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC,CAAC,mEAAmE;IAC7F,MAAM,KAAK,GAAG,SAAS;SACpB,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACxD,CAAC,CAAC,YAAY,IAAI,IAAI;QACtB,CAAC,CAAC,SAAS,IAAI,IAAI,CACtB;SACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAgB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5D,yFAAyF;IACzF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAsB;IAC/C,4FAA4F;IAC5F,2FAA2F;IAC3F,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAChD,OAAO;QACL,MAAM;QACN,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;QAC5D,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC;QACnC,4FAA4F;QAC5F,yCAAyC;QACzC,GAAG,EAAE,CAAC,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;KACxE,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,MAAqB,EAAE,EAAE,CAAC,CAAC;IACvC,MAAM;IACN,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,GAAG,EAAE,IAAI;IACT,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC;AAEH,KAAK,UAAU,OAAO,CACpB,OAAgB,EAChB,OAAsB,EACtB,GAAQ,EACR,IAAyB;IAEzB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS,CAAC,8CAA8C;QAC5E,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,MAAM,qBAAqB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC;gBACH,GAAG,IAAI,CAAC,KAAK,CAAC;gBACd,EAAE,EAAE,OAAO,IAAI,CAAC,SAAS,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE;gBAChD,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,KAAK;gBACL,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,OAAO,EAAE,CAAC,CAAC,WAAW;gBACtB,GAAG,EAAE,CAAC,CAAC,GAAG;aACX,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,iCAAiC;AAC7D,MAAM,gBAAgB,GAAG,EAAE,CAAC,CAAC,4CAA4C;AAEzE,MAAM,SAAS,GAAG,CAAC,CAAuB,EAAW,EAAE,CACrD,CAAC,CAAC,QAAQ,KAAK,cAAc,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEtF,KAAK,UAAU,OAAO,CACpB,OAAgB,EAChB,OAAsB,EACtB,GAAQ,EACR,IAAyB;IAEzB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,WAAW,GAA2C,EAAE,CAAC;IAC/D,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,sCAAsC;QAC7E,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1E,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GACP,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,gBAAgB,CAAC;YAC1D,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC;YACzD,aAAa,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,GACR,GAAG,CAAC,QAAQ,KAAK,gBAAgB;gBAC/B,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,eAAe;oBAChC,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,iBAAiB,CAAC;YAC1B,2EAA2E;YAC3E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnD,MAAM,MAAM,GACV,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvF,IAAI,CAAC;gBACH,GAAG,IAAI,CAAC,KAAK,CAAC;gBACd,EAAE,EAAE,OAAO,OAAO,CAAC,SAAS,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnE,IAAI;gBACJ,OAAO,EAAE,OAAO,CAAC,SAAS;gBAC1B,KAAK;gBACL,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;aAC3B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,0FAA0F;QAC1F,yFAAyF;QACzF,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;YAAE,SAAS;QAC/D,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;YAAE,SAAS;QACjE,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,SAAS,CAAC,qCAAqC;QACnF,WAAW,CAAC,IAAI,CAAC;YACf,OAAO;YACP,MAAM,EAAE;gBACN,GAAG,IAAI,CAAC,KAAK,CAAC;gBACd,EAAE,EAAE,OAAO,OAAO,CAAC,SAAS,eAAe;gBAC3C,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,OAAO,CAAC,SAAS;gBAC1B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5B,WAAW,EAAE;oBACX,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC9B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC9B,QAAQ,EAAE,IAAI;iBACf;aACF;SACF,CAAC,CAAC;IACL,CAAC;IACD,2FAA2F;IAC3F,wFAAwF;IACxF,6FAA6F;IAC7F,uCAAuC;IACvC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IACxD,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK;QAAE,OAAO,eAAe,CAAC;IAClD,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC9C,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;YAAE,SAAS;QAC7C,IAAI,CAAC,MAAM,CAAC,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAsB,EACtB,GAAQ,EACR,IAAyB;IAEzB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,2CAA2C;QACjF,IAAI,CAAC;YACH,GAAG,IAAI,CAAC,YAAY,CAAC;YACrB,mFAAmF;YACnF,EAAE,EAAE,YAAY,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,YAAY,EAAE;YAC7D,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,CAAC,CAAC,MAAM;YAClB,MAAM,EAAE,CAAC,CAAC,YAAY;YACtB,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI;YAChC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;SACxD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAgB,EAAE,OAAoB,EAAE;IACpE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC;IAC5E,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,mBAAmB,CACvB,OAAO,EACP,CAAC,OAAO,EAAE,EAAE,CACV,IAAI,eAAe,CACjB,yFAAyF;QACvF,IAAI,OAAO,sDAAsD;QACjE,+CAA+C,CAClD,CACJ,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;YAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,sCAAsC;YAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAQ,EAAE;gBAC/B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC,CAAC;YACF,MAAM,OAAO,GAAsB,EAAE,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC5C,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;oBAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvF,IAAI,CAAC;oBACH,MAAM,MAAM,GACV,MAAM,KAAK,KAAK;wBACd,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC;wBAC5C,CAAC,CAAC,MAAM,KAAK,KAAK;4BAChB,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC;4BAC5C,CAAC,CAAC,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;oBACjD,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBACnC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,qFAAqF;oBACrF,oFAAoF;oBACpF,kFAAkF;oBAClF,IAAI,CAAC,YAAY,qBAAqB,IAAI,CAAC,YAAY,cAAc;wBAAE,MAAM,CAAC,CAAC;oBAC/E,IAAI,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC;wBAAE,MAAM,CAAC,CAAC;oBACtC,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM;wBACN,MAAM,EAAE,OAAO;wBACf,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;qBACzD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,MAAM,gBAAgB,GAAG,KAAK;gBAC5B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC;gBAC3D,CAAC,CAAC,KAAK,CAAC;YACV,OAAO;gBACL,GAAG,EAAE,GAAG,CAAC,SAAS;gBAClB,OAAO,EAAE,gBAAgB;gBACzB,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC;aACtD,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,+EAA+E;QAC/E,WAAW,CAAC,OAAO,EAAE;YACnB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAC5C,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;YAC5B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5E,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK;SAClD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
|
package/dist/tasks/f22.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { EventoF22, F22Declaraciones, F22Estado, ObservacionF22 } from '../portal/f22/index.js';
|
|
1
|
+
import type { DeclaracionTercero, EventoF22, FilaTercero, F22Declaraciones, F22Estado, ObservacionF22 } from '../portal/f22/index.js';
|
|
2
2
|
import type { Runtime } from '../seams/index.js';
|
|
3
|
-
export type { DeclaracionF22, CodigoF22, EventoF22, ObservacionF22, F22Declaraciones, F22Estado, F22Grupos, } from '../portal/f22/index.js';
|
|
3
|
+
export type { CampoTercero, DeclaracionF22, DeclaracionTercero, FilaTercero, ValorTercero, CodigoF22, EventoF22, ObservacionF22, F22Declaraciones, F22Estado, F22Grupos, } from '../portal/f22/index.js';
|
|
4
4
|
/** One year of F22 status overview (estado, no código grid). */
|
|
5
5
|
export interface F22Overview {
|
|
6
6
|
readonly rut: string;
|
|
@@ -66,4 +66,40 @@ export declare function f22Historial(runtime: Runtime, args: {
|
|
|
66
66
|
anio: string | number;
|
|
67
67
|
folio?: string;
|
|
68
68
|
}): Promise<F22Historial>;
|
|
69
|
+
/** The per-DJ resumen of the información de terceros for an año tributario: ONE call. Each ítem
|
|
70
|
+
* carries its aggregate rows (informantes, montos informados); the rows themselves are
|
|
71
|
+
* `f22TercerosDetalle`, one DJ at a time. */
|
|
72
|
+
export interface F22Terceros {
|
|
73
|
+
readonly rut: string;
|
|
74
|
+
readonly anio: string;
|
|
75
|
+
readonly declaraciones: readonly DeclaracionTercero[];
|
|
76
|
+
}
|
|
77
|
+
export declare function f22Terceros(runtime: Runtime, args: {
|
|
78
|
+
anio: string | number;
|
|
79
|
+
}): Promise<F22Terceros>;
|
|
80
|
+
/** One DJ's rows. Without `pagina` it reads every page (⌈registros/10⌉, paced, capped at
|
|
81
|
+
* `MAX_PAGINAS_TERCEROS`); with `pagina`, exactly that page (one call).
|
|
82
|
+
*
|
|
83
|
+
* PER-PAGE RESILIENCE, like `f22Historial`'s folios: a page SII fails is recorded verbatim in
|
|
84
|
+
* `paginasConError` and the other pages are kept; `incompleto` says some page was not read.
|
|
85
|
+
* Page 1 carries the total, so its failure, like a session-level one, aborts the read. */
|
|
86
|
+
export interface F22TercerosDetalle {
|
|
87
|
+
readonly rut: string;
|
|
88
|
+
readonly anio: string;
|
|
89
|
+
readonly dj: string;
|
|
90
|
+
readonly registros: number;
|
|
91
|
+
readonly paginas: number;
|
|
92
|
+
readonly paginasLeidas: readonly number[];
|
|
93
|
+
readonly filas: readonly FilaTercero[];
|
|
94
|
+
readonly paginasConError: readonly {
|
|
95
|
+
pagina: number;
|
|
96
|
+
error: string;
|
|
97
|
+
}[];
|
|
98
|
+
readonly incompleto: boolean;
|
|
99
|
+
}
|
|
100
|
+
export declare function f22TercerosDetalle(runtime: Runtime, args: {
|
|
101
|
+
anio: string | number;
|
|
102
|
+
dj: string | number;
|
|
103
|
+
pagina?: string | number;
|
|
104
|
+
}): Promise<F22TercerosDetalle>;
|
|
69
105
|
//# sourceMappingURL=f22.d.ts.map
|
package/dist/tasks/f22.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"f22.d.ts","sourceRoot":"","sources":["../../src/tasks/f22.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"f22.d.ts","sourceRoot":"","sources":["../../src/tasks/f22.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/f22.js
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
// Public F22 task API the surfaces call (ADR-003). Wraps the portal facade in
|
|
2
2
|
// `withSession` and writes one audit receipt. F22 is SESSION-KEYED (ADR-005): it
|
|
3
|
-
// authorizes by the session principal
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
|
|
3
|
+
// authorizes by the session principal and takes NO `--rut` — a represented empresa's F22
|
|
4
|
+
// is reached by being in the empresa's session (logout→login), confirmed live (the body RUT
|
|
5
|
+
// returns a clean negative, not the empresa's F22). The older verbs IGNORE the operate
|
|
6
|
+
// pointer; `f22Terceros*` refuse it up front (`assertOperatingSelf`, CONVENTIONS). The año is
|
|
7
|
+
// validated locally BEFORE any session.
|
|
8
|
+
import { assertOperatingSelf, withSession } from '../auth/index.js';
|
|
9
|
+
import { readOperateState } from '../identity/index.js';
|
|
8
10
|
import { recordAudit } from '../audit/index.js';
|
|
9
11
|
import { Anio } from '../periodo/index.js';
|
|
10
12
|
import { Rut } from '../rut/index.js';
|
|
11
13
|
import { F22Error, ValidationError } from '../errors/index.js';
|
|
12
14
|
import { DEFAULT_SETTINGS } from '../config/index.js';
|
|
13
|
-
import { eventoDateKey, fetchF22Declaraciones, fetchF22Grid, fetchF22Historial, fetchF22Observaciones, groupCodigos, pickVigenteFolio, } from '../portal/f22/index.js';
|
|
15
|
+
import { eventoDateKey, fetchF22Declaraciones, fetchF22Grid, fetchF22Historial, fetchF22Observaciones, fetchF22TercerosDetalle, fetchF22TercerosResumen, groupCodigos, pickVigenteFolio, TERCEROS_PAGE_SIZE, } from '../portal/f22/index.js';
|
|
14
16
|
const DEFAULT_OVERVIEW_YEARS = 5;
|
|
15
17
|
const MAX_OVERVIEW_YEARS = 10;
|
|
16
18
|
/** Inter-request pace (ms) for multi-POST fan-outs — never hammer SII (ADR-004). */
|
|
@@ -186,4 +188,122 @@ export async function f22Historial(runtime, args) {
|
|
|
186
188
|
throw e;
|
|
187
189
|
}
|
|
188
190
|
}
|
|
191
|
+
// --- Información de terceros (#183; contract: sii-contract/f22.md « Terceros ») ----------
|
|
192
|
+
/** At most this many detalle pages per call (300 rows, ~30 s paced). A bigger DJ comes back
|
|
193
|
+
* `incompleto` with `paginasLeidas`, and the rest is read with `pagina`: one unattended call
|
|
194
|
+
* never turns into hundreds of POSTs (ADR-004: never hammer SII). */
|
|
195
|
+
const MAX_PAGINAS_TERCEROS = 30;
|
|
196
|
+
// Session-keyed (ADR-005): the shared guard, with this surface's own error + wording. The other
|
|
197
|
+
// F22 tasks predate it and read the principal silently; this one refuses, so an `operate`
|
|
198
|
+
// pointer at an empresa never answers with the persona's data under the empresa's header.
|
|
199
|
+
const assertSelfOperatingTerceros = (runtime) => assertOperatingSelf(runtime, (empresa) => new F22Error(`La información de terceros (F22) es session-keyed: el SII autoriza por el titular de la ` +
|
|
200
|
+
`sesión, no por el RUT operado (${empresa}). Para la de esa empresa, inicia sesión como ` +
|
|
201
|
+
'ella (`sii auth logout` y luego `sii auth login`).'));
|
|
202
|
+
/** The principal's own identity, dropped from every row by value. The name is the razón social
|
|
203
|
+
* cached at login (local, no SII call); a login that could not read it stored the RUT there. */
|
|
204
|
+
async function identidadPropia(runtime, sessionRut) {
|
|
205
|
+
const rut = Rut.parse(sessionRut);
|
|
206
|
+
const op = await readOperateState(runtime.store);
|
|
207
|
+
const nombre = op?.operable.find((o) => o.isSelf)?.razonSocial ?? null;
|
|
208
|
+
return { rut, nombre: nombre !== null && Rut.tryParse(nombre) === null ? nombre : null };
|
|
209
|
+
}
|
|
210
|
+
function parseDj(dj) {
|
|
211
|
+
const s = String(dj).trim();
|
|
212
|
+
if (!/^\d{1,5}$/.test(s)) {
|
|
213
|
+
throw new ValidationError(`Código de DJ inválido: "${s}" (debe ser numérico, p. ej. 1887).`);
|
|
214
|
+
}
|
|
215
|
+
return String(Number(s));
|
|
216
|
+
}
|
|
217
|
+
function parsePagina(pagina) {
|
|
218
|
+
const n = Number(String(pagina).trim());
|
|
219
|
+
if (!Number.isInteger(n) || n < 1) {
|
|
220
|
+
throw new ValidationError(`Página inválida: "${String(pagina)}" (debe ser un entero ≥ 1).`);
|
|
221
|
+
}
|
|
222
|
+
return n;
|
|
223
|
+
}
|
|
224
|
+
export async function f22Terceros(runtime, args) {
|
|
225
|
+
const anio = Anio.parse(args.anio); // fail fast on a bad year — no session opened
|
|
226
|
+
await assertSelfOperatingTerceros(runtime);
|
|
227
|
+
const start = runtime.clock.now().getTime();
|
|
228
|
+
try {
|
|
229
|
+
const result = await withSession(runtime, async (session, ctx) => {
|
|
230
|
+
const propio = await identidadPropia(runtime, ctx.sessionRut);
|
|
231
|
+
const declaraciones = await fetchF22TercerosResumen(session, { anio, propio });
|
|
232
|
+
return { rut: propio.rut.canonical, anio: anio.canonical, declaraciones };
|
|
233
|
+
});
|
|
234
|
+
audit(runtime, 'f22_terceros', 'ok', {
|
|
235
|
+
rut: result.rut,
|
|
236
|
+
period: anio.canonical,
|
|
237
|
+
count: result.declaraciones.length,
|
|
238
|
+
durationMs: runtime.clock.now().getTime() - start,
|
|
239
|
+
});
|
|
240
|
+
return result;
|
|
241
|
+
}
|
|
242
|
+
catch (e) {
|
|
243
|
+
audit(runtime, 'f22_terceros', 'failed', { period: anio.canonical });
|
|
244
|
+
throw e;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
export async function f22TercerosDetalle(runtime, args) {
|
|
248
|
+
const anio = Anio.parse(args.anio); // all three validated before any session opens
|
|
249
|
+
const dj = parseDj(args.dj);
|
|
250
|
+
const pagina = args.pagina !== undefined ? parsePagina(args.pagina) : undefined;
|
|
251
|
+
await assertSelfOperatingTerceros(runtime);
|
|
252
|
+
const start = runtime.clock.now().getTime();
|
|
253
|
+
try {
|
|
254
|
+
const result = await withSession(runtime, async (session, ctx) => {
|
|
255
|
+
const propio = await identidadPropia(runtime, ctx.sessionRut);
|
|
256
|
+
const read = (p) => fetchF22TercerosDetalle(session, { rut: propio.rut, anio, dj, pagina: p, propio });
|
|
257
|
+
const first = await read(pagina ?? 1);
|
|
258
|
+
// A page past the end answers `cantRegistros: 0` (observed), so with an out-of-range
|
|
259
|
+
// `pagina` the totals read 0 too.
|
|
260
|
+
const paginas = Math.ceil(first.registros / TERCEROS_PAGE_SIZE);
|
|
261
|
+
const filas = [...first.filas];
|
|
262
|
+
const paginasLeidas = [pagina ?? 1];
|
|
263
|
+
const paginasConError = [];
|
|
264
|
+
if (pagina === undefined) {
|
|
265
|
+
for (let p = 2; p <= Math.min(paginas, MAX_PAGINAS_TERCEROS); p++) {
|
|
266
|
+
await runtime.clock.sleep(pacingMs()); // pace each page (ADR-004)
|
|
267
|
+
try {
|
|
268
|
+
filas.push(...(await read(p)).filas);
|
|
269
|
+
paginasLeidas.push(p);
|
|
270
|
+
}
|
|
271
|
+
catch (e) {
|
|
272
|
+
// One page's SII error is recorded verbatim and skipped; a session-level failure is
|
|
273
|
+
// not an F22Error and aborts the read.
|
|
274
|
+
if (e instanceof F22Error) {
|
|
275
|
+
paginasConError.push({ pagina: p, error: e.message });
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
throw e;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return {
|
|
283
|
+
rut: propio.rut.canonical,
|
|
284
|
+
anio: anio.canonical,
|
|
285
|
+
dj,
|
|
286
|
+
registros: first.registros,
|
|
287
|
+
paginas,
|
|
288
|
+
paginasLeidas,
|
|
289
|
+
filas,
|
|
290
|
+
paginasConError,
|
|
291
|
+
// With `pagina` the one page was read or the call threw, so only a full read can fall short.
|
|
292
|
+
incompleto: paginasConError.length > 0 || (pagina === undefined && paginas > MAX_PAGINAS_TERCEROS),
|
|
293
|
+
};
|
|
294
|
+
});
|
|
295
|
+
audit(runtime, 'f22_terceros_detalle', 'ok', {
|
|
296
|
+
rut: result.rut,
|
|
297
|
+
period: anio.canonical,
|
|
298
|
+
dj,
|
|
299
|
+
count: result.filas.length,
|
|
300
|
+
durationMs: runtime.clock.now().getTime() - start,
|
|
301
|
+
});
|
|
302
|
+
return result;
|
|
303
|
+
}
|
|
304
|
+
catch (e) {
|
|
305
|
+
audit(runtime, 'f22_terceros_detalle', 'failed', { period: anio.canonical, dj });
|
|
306
|
+
throw e;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
189
309
|
//# sourceMappingURL=f22.js.map
|
package/dist/tasks/f22.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"f22.js","sourceRoot":"","sources":["../../src/tasks/f22.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"f22.js","sourceRoot":"","sources":["../../src/tasks/f22.ts"],"names":[],"mappings":"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"}
|