@albertomarturelo/sii-core 0.5.0 → 0.6.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 +20 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tasks/rcv.d.ts +34 -1
- package/dist/tasks/rcv.d.ts.map +1 -1
- package/dist/tasks/rcv.js +85 -0
- package/dist/tasks/rcv.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,26 @@ All notable changes to `@albertomarturelo/sii-core` are documented here. The for
|
|
|
4
4
|
loosely based on [Keep a Changelog](https://keepachangelog.com/); the package is
|
|
5
5
|
pre-1.0, so MINOR bumps may carry breaking changes (pin or use `~` downstream).
|
|
6
6
|
|
|
7
|
+
## 0.6.0 — 2026-07-04
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **`rcvListAll` — single-session RCV detalle fan-out (#77).** New task
|
|
12
|
+
`rcvListAll(runtime, { periodo, side, rut? })` returning `RcvDetalleAll`: every
|
|
13
|
+
RCV document of a período+lado in ONE session — `fetchRcvResumen` enumerates the
|
|
14
|
+
present DTE types, then `fetchRcvDetalle` per type, flattened (each
|
|
15
|
+
`RcvDetalleAllDoc` carries its `codigoTipoDoc`). A consumer gets one flat "todos
|
|
16
|
+
los documentos" table without opening N browser sessions (ADR-003). **Body-RUT**
|
|
17
|
+
(`--rut`/operate selects a represented empresa, like `rcvList`), paced between
|
|
18
|
+
POSTs (ADR-004). **Per-type resilience** (mirrors `f22Historial`): a per-type
|
|
19
|
+
`RcvError` is captured in `rejectedTypes` and flips `incomplete: true` while the
|
|
20
|
+
other types still return; a session-level error (`NotAuthenticated`/
|
|
21
|
+
`SessionExpired`) still aborts. Never retries a rejected type. One audit receipt
|
|
22
|
+
(`rcv_detalle_all`, rut/periodo/side/count — no PII).
|
|
23
|
+
- Surfaced as `sii rcv all <periodo> [--venta] [--rut]` and the MCP `rcv_all` tool
|
|
24
|
+
(`readOnly`); the CLI human render tags each row with its `tipo` and prints a
|
|
25
|
+
`⚠ Resultado incompleto` line listing the rejected types.
|
|
26
|
+
|
|
7
27
|
## 0.5.0 — 2026-07-03
|
|
8
28
|
|
|
9
29
|
### Added
|
package/dist/index.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ export { operate, operateSelf, operatingStatus, listOperable } from './tasks/ope
|
|
|
4
4
|
export type { OperateResult, OperableList } from './tasks/operate.js';
|
|
5
5
|
export { describeOperating, formatOperableEntry } from './identity/index.js';
|
|
6
6
|
export type { OperatingContext, OperableEntry } from './identity/index.js';
|
|
7
|
-
export { rcvSummary, rcvList } from './tasks/rcv.js';
|
|
8
|
-
export type { RcvResumen, RcvResumenRow, RcvDetalle, RcvDetalleDoc, RcvSide } from './tasks/rcv.js';
|
|
7
|
+
export { rcvSummary, rcvList, rcvListAll } from './tasks/rcv.js';
|
|
8
|
+
export type { RcvResumen, RcvResumenRow, RcvDetalle, RcvDetalleDoc, RcvDetalleAll, RcvDetalleAllDoc, RcvSide, } from './tasks/rcv.js';
|
|
9
9
|
export { f22Status, f22Overview, f22Observaciones, f22Historial } from './tasks/f22.js';
|
|
10
10
|
export type { F22Estado, F22Declaraciones, F22Overview, F22Observaciones, F22Historial, F22Grupos, DeclaracionF22, CodigoF22, EventoF22, ObservacionF22, } from './tasks/f22.js';
|
|
11
11
|
export { f29Formulario, f29Overview, f29Status, F29_GRUPO_LABELS } from './tasks/f29.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACnF,YAAY,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzF,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACnF,YAAY,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzF,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EACV,UAAU,EACV,aAAa,EACb,UAAU,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxF,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,SAAS,EACT,SAAS,EACT,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzF,YAAY,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,SAAS,EACT,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAClE,YAAY,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,OAAO,EACP,WAAW,EACX,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKxF,YAAY,EACV,UAAU,EACV,SAAS,EACT,KAAK,EACL,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,OAAO,EACP,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtD,cAAc,mBAAmB,CAAC;AAGlC,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
export { login, logout, authStatus, statusRefresh, whoami } from './tasks/auth.js';
|
|
9
9
|
export { operate, operateSelf, operatingStatus, listOperable } from './tasks/operate.js';
|
|
10
10
|
export { describeOperating, formatOperableEntry } from './identity/index.js';
|
|
11
|
-
export { rcvSummary, rcvList } from './tasks/rcv.js';
|
|
11
|
+
export { rcvSummary, rcvList, rcvListAll } from './tasks/rcv.js';
|
|
12
12
|
export { f22Status, f22Overview, f22Observaciones, f22Historial } from './tasks/f22.js';
|
|
13
13
|
export { f29Formulario, f29Overview, f29Status, F29_GRUPO_LABELS } from './tasks/f29.js';
|
|
14
14
|
export { dteAuthorized } from './tasks/dte.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,gFAAgF;AAChF,6EAA6E;AAE7E,uCAAuC;AACvC,mFAAmF;AACnF,mGAAmG;AACnG,gDAAgD;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAQnF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,gFAAgF;AAChF,6EAA6E;AAE7E,uCAAuC;AACvC,mFAAmF;AACnF,mGAAmG;AACnG,gDAAgD;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAQnF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAUjE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAaxF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAazF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAalE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAmBvD,4BAA4B;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACtD,cAAc,mBAAmB,CAAC;AAElC,2EAA2E;AAC3E,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC"}
|
package/dist/tasks/rcv.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RcvDetalle, RcvResumen, RcvSide } from '../portal/rcv.js';
|
|
1
|
+
import type { RcvDetalle, RcvDetalleDoc, RcvResumen, RcvSide } from '../portal/rcv.js';
|
|
2
2
|
import type { Runtime } from '../seams/index.js';
|
|
3
3
|
export type { RcvDetalle, RcvDetalleDoc, RcvResumen, RcvResumenRow, RcvSide, } from '../portal/rcv.js';
|
|
4
4
|
interface RcvResumenArgs {
|
|
@@ -12,6 +12,39 @@ interface RcvDetalleArgs extends RcvResumenArgs {
|
|
|
12
12
|
/** SII DTE type code (from a prior `rcvSummary` for the same period). */
|
|
13
13
|
readonly codigoTipoDoc: string;
|
|
14
14
|
}
|
|
15
|
+
/** A detalle doc flattened across DTE types, carrying the type it belongs to. */
|
|
16
|
+
export interface RcvDetalleAllDoc extends RcvDetalleDoc {
|
|
17
|
+
/** The DTE type code this doc belongs to (from the resumen enumeration). */
|
|
18
|
+
readonly codigoTipoDoc: string;
|
|
19
|
+
}
|
|
20
|
+
/** Flat "todos los documentos" view of one (RUT, period, side): every detalle doc across
|
|
21
|
+
* every DTE type the resumen reports, from a SINGLE session. */
|
|
22
|
+
export interface RcvDetalleAll {
|
|
23
|
+
readonly rut: string;
|
|
24
|
+
readonly periodo: string;
|
|
25
|
+
readonly side: RcvSide;
|
|
26
|
+
/** All docs across all types, each carrying its `codigoTipoDoc`. */
|
|
27
|
+
readonly docs: readonly RcvDetalleAllDoc[];
|
|
28
|
+
/** true when ≥1 type was rejected by SII (its docs are absent from `docs`). */
|
|
29
|
+
readonly incomplete: boolean;
|
|
30
|
+
/** DTE type codes SII rejected — captured verbatim as absent, never retried (ADR-004). */
|
|
31
|
+
readonly rejectedTypes: readonly string[];
|
|
32
|
+
}
|
|
15
33
|
export declare function rcvSummary(runtime: Runtime, args: RcvResumenArgs): Promise<RcvResumen>;
|
|
16
34
|
export declare function rcvList(runtime: Runtime, args: RcvDetalleArgs): Promise<RcvDetalle>;
|
|
35
|
+
/** "Todos los documentos" of one (RUT, period, side): a SINGLE-session fan-out of
|
|
36
|
+
* `fetchRcvDetalle` over every DTE type the resumen reports, flattened. A consumer gets
|
|
37
|
+
* one flat table without opening N browser sessions (the whole motivation — ADR-003:
|
|
38
|
+
* the fan-out belongs in the library, not the caller). Body-RUT (ADR-005): `--rut`/operate
|
|
39
|
+
* selects a represented empresa. Paced between POSTs (ADR-004). The period is validated
|
|
40
|
+
* locally BEFORE any session.
|
|
41
|
+
*
|
|
42
|
+
* PER-TYPE RESILIENCE (mirrors `f22Historial`): SII can reject ONE DTE type's detalle
|
|
43
|
+
* (an `RcvError`) while others succeed. Since the fan-out spans every type the resumen
|
|
44
|
+
* reports, one type's failure MUST NOT bury the rest — the type code is captured in
|
|
45
|
+
* `rejectedTypes` (ADR-004: surfaced, never hidden, never retried) and `incomplete` flips
|
|
46
|
+
* true, while the successful types' docs still return. A session-level failure
|
|
47
|
+
* (`NotAuthenticated`/`SessionExpired`) is NOT an `RcvError`, so it propagates and aborts
|
|
48
|
+
* the whole read. */
|
|
49
|
+
export declare function rcvListAll(runtime: Runtime, args: RcvResumenArgs): Promise<RcvDetalleAll>;
|
|
17
50
|
//# sourceMappingURL=rcv.d.ts.map
|
package/dist/tasks/rcv.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rcv.d.ts","sourceRoot":"","sources":["../../src/tasks/rcv.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rcv.d.ts","sourceRoot":"","sources":["../../src/tasks/rcv.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE7D,YAAY,EACV,UAAU,EACV,aAAa,EACb,UAAU,EACV,aAAa,EACb,OAAO,GACR,MAAM,kBAAkB,CAAC;AAE1B,UAAU,cAAc;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,uFAAuF;IACvF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,cAAe,SAAQ,cAAc;IAC7C,yEAAyE;IACzE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAKD,iFAAiF;AACjF,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;iEACiE;AACjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC3C,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,0FAA0F;IAC1F,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAYD,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CA4B5F;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAkCzF;AAED;;;;;;;;;;;;;sBAasB;AACtB,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAqE/F"}
|
package/dist/tasks/rcv.js
CHANGED
|
@@ -4,9 +4,13 @@
|
|
|
4
4
|
// selects a represented empresa. The period is validated locally BEFORE any session.
|
|
5
5
|
import { withSession } from '../auth/index.js';
|
|
6
6
|
import { recordAudit } from '../audit/index.js';
|
|
7
|
+
import { DEFAULT_SETTINGS } from '../config/index.js';
|
|
8
|
+
import { RcvError } from '../errors/index.js';
|
|
7
9
|
import { Periodo } from '../periodo/index.js';
|
|
8
10
|
import { Rut } from '../rut/index.js';
|
|
9
11
|
import { fetchRcvDetalle, fetchRcvResumen } from '../portal/rcv.js';
|
|
12
|
+
/** Inter-request pace (ms) for the multi-POST fan-out — never hammer SII (ADR-004). */
|
|
13
|
+
const pacingMs = () => Math.round(1000 / DEFAULT_SETTINGS.rateLimitRps);
|
|
10
14
|
// exactOptionalPropertyTypes: only set `rut` when actually overriding.
|
|
11
15
|
const sessionOpts = (rut) => (rut !== undefined ? { rut } : {});
|
|
12
16
|
// `extra` is `Partial<AuditEntry>` so the typed optional fields (durationMs, rutAuth)
|
|
@@ -73,4 +77,85 @@ export async function rcvList(runtime, args) {
|
|
|
73
77
|
throw e;
|
|
74
78
|
}
|
|
75
79
|
}
|
|
80
|
+
/** "Todos los documentos" of one (RUT, period, side): a SINGLE-session fan-out of
|
|
81
|
+
* `fetchRcvDetalle` over every DTE type the resumen reports, flattened. A consumer gets
|
|
82
|
+
* one flat table without opening N browser sessions (the whole motivation — ADR-003:
|
|
83
|
+
* the fan-out belongs in the library, not the caller). Body-RUT (ADR-005): `--rut`/operate
|
|
84
|
+
* selects a represented empresa. Paced between POSTs (ADR-004). The period is validated
|
|
85
|
+
* locally BEFORE any session.
|
|
86
|
+
*
|
|
87
|
+
* PER-TYPE RESILIENCE (mirrors `f22Historial`): SII can reject ONE DTE type's detalle
|
|
88
|
+
* (an `RcvError`) while others succeed. Since the fan-out spans every type the resumen
|
|
89
|
+
* reports, one type's failure MUST NOT bury the rest — the type code is captured in
|
|
90
|
+
* `rejectedTypes` (ADR-004: surfaced, never hidden, never retried) and `incomplete` flips
|
|
91
|
+
* true, while the successful types' docs still return. A session-level failure
|
|
92
|
+
* (`NotAuthenticated`/`SessionExpired`) is NOT an `RcvError`, so it propagates and aborts
|
|
93
|
+
* the whole read. */
|
|
94
|
+
export async function rcvListAll(runtime, args) {
|
|
95
|
+
const periodo = Periodo.parse(args.periodo); // fail fast on a bad period — no session opened
|
|
96
|
+
const start = runtime.clock.now().getTime();
|
|
97
|
+
try {
|
|
98
|
+
const { res, sessionRut } = await withSession(runtime, async (session, ctx) => {
|
|
99
|
+
const rut = Rut.parse(ctx.operatingRut); // body-RUT: operate/--rut selects it
|
|
100
|
+
const resumen = await fetchRcvResumen(session, { rut, periodo, side: args.side });
|
|
101
|
+
// The DTE types present this period. Skip rows with no type code, and dedupe
|
|
102
|
+
// defensively in case the resumen ever repeats one.
|
|
103
|
+
const tipos = [
|
|
104
|
+
...new Set(resumen.rows.map((r) => r.codigoTipoDoc).filter((c) => c !== null)),
|
|
105
|
+
];
|
|
106
|
+
const docs = [];
|
|
107
|
+
const rejectedTypes = [];
|
|
108
|
+
for (const codigoTipoDoc of tipos) {
|
|
109
|
+
// Pace before EVERY detalle POST — the resumen→detalle[0] hop is itself a
|
|
110
|
+
// consecutive POST, so (unlike f22Overview's `i>0` guard) the first iteration
|
|
111
|
+
// sleeps too (ADR-004).
|
|
112
|
+
await runtime.clock.sleep(pacingMs());
|
|
113
|
+
try {
|
|
114
|
+
const detalle = await fetchRcvDetalle(session, {
|
|
115
|
+
rut,
|
|
116
|
+
periodo,
|
|
117
|
+
side: args.side,
|
|
118
|
+
codigoTipoDoc,
|
|
119
|
+
});
|
|
120
|
+
for (const doc of detalle.docs)
|
|
121
|
+
docs.push({ ...doc, codigoTipoDoc });
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
// One type's RcvError is recorded and skipped — it must not bury the other
|
|
125
|
+
// types' docs. A session-level failure is NOT an RcvError and propagates.
|
|
126
|
+
if (e instanceof RcvError) {
|
|
127
|
+
rejectedTypes.push(codigoTipoDoc);
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
throw e;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return {
|
|
134
|
+
res: {
|
|
135
|
+
rut: rut.canonical,
|
|
136
|
+
periodo: periodo.formatted,
|
|
137
|
+
side: args.side,
|
|
138
|
+
docs,
|
|
139
|
+
incomplete: rejectedTypes.length > 0,
|
|
140
|
+
rejectedTypes,
|
|
141
|
+
},
|
|
142
|
+
sessionRut: ctx.sessionRut,
|
|
143
|
+
};
|
|
144
|
+
}, sessionOpts(args.rut));
|
|
145
|
+
audit(runtime, 'rcv_detalle_all', 'ok', {
|
|
146
|
+
rut: res.rut,
|
|
147
|
+
periodo: periodo.canonical,
|
|
148
|
+
side: args.side,
|
|
149
|
+
count: res.docs.length,
|
|
150
|
+
incomplete: res.incomplete,
|
|
151
|
+
durationMs: runtime.clock.now().getTime() - start,
|
|
152
|
+
...(res.rut !== sessionRut ? { rutAuth: sessionRut } : {}),
|
|
153
|
+
});
|
|
154
|
+
return res;
|
|
155
|
+
}
|
|
156
|
+
catch (e) {
|
|
157
|
+
audit(runtime, 'rcv_detalle_all', 'failed', { periodo: periodo.canonical, side: args.side });
|
|
158
|
+
throw e;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
76
161
|
//# sourceMappingURL=rcv.js.map
|
package/dist/tasks/rcv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rcv.js","sourceRoot":"","sources":["../../src/tasks/rcv.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rcv.js","sourceRoot":"","sources":["../../src/tasks/rcv.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@albertomarturelo/sii-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Shared SII domain core: rut, config (prod hostnames), contracts, tasks, seams. A Node library; external side-effects (portal, secrets, audit, clock) are injected via seams (ADR-003).",
|
|
6
6
|
"license": "MIT",
|