e-arveldaja-mcp 0.19.0 → 0.20.1
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 +39 -0
- package/dist/api/journals.api.d.ts +11 -0
- package/dist/api/journals.api.d.ts.map +1 -1
- package/dist/api/journals.api.js +13 -0
- package/dist/api/journals.api.js.map +1 -1
- package/dist/api/transactions.api.d.ts.map +1 -1
- package/dist/api/transactions.api.js +38 -0
- package/dist/api/transactions.api.js.map +1 -1
- package/dist/audit-log.d.ts.map +1 -1
- package/dist/audit-log.js +27 -5
- package/dist/audit-log.js.map +1 -1
- package/dist/booking-guard.d.ts +211 -0
- package/dist/booking-guard.d.ts.map +1 -0
- package/dist/booking-guard.js +385 -0
- package/dist/booking-guard.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +17 -5
- package/dist/config.js.map +1 -1
- package/dist/document-identifiers.d.ts.map +1 -1
- package/dist/document-identifiers.js +4 -1
- package/dist/document-identifiers.js.map +1 -1
- package/dist/file-validation.d.ts +11 -0
- package/dist/file-validation.d.ts.map +1 -1
- package/dist/file-validation.js +11 -0
- package/dist/file-validation.js.map +1 -1
- package/dist/http-client.d.ts +9 -0
- package/dist/http-client.d.ts.map +1 -1
- package/dist/http-client.js +46 -3
- package/dist/http-client.js.map +1 -1
- package/dist/index.js +31 -8
- package/dist/index.js.map +1 -1
- package/dist/mcp-json.d.ts +11 -0
- package/dist/mcp-json.d.ts.map +1 -1
- package/dist/mcp-json.js +33 -0
- package/dist/mcp-json.js.map +1 -1
- package/dist/stderr-tee.d.ts.map +1 -1
- package/dist/stderr-tee.js +12 -1
- package/dist/stderr-tee.js.map +1 -1
- package/dist/tools/account-balance.d.ts.map +1 -1
- package/dist/tools/account-balance.js +11 -6
- package/dist/tools/account-balance.js.map +1 -1
- package/dist/tools/accounting-inbox-autopilot-service.d.ts.map +1 -1
- package/dist/tools/accounting-inbox-autopilot-service.js +7 -3
- package/dist/tools/accounting-inbox-autopilot-service.js.map +1 -1
- package/dist/tools/accounting-inbox.d.ts.map +1 -1
- package/dist/tools/accounting-inbox.js +5 -2
- package/dist/tools/accounting-inbox.js.map +1 -1
- package/dist/tools/aging-analysis.d.ts.map +1 -1
- package/dist/tools/aging-analysis.js +47 -10
- package/dist/tools/aging-analysis.js.map +1 -1
- package/dist/tools/bank-reconciliation.d.ts.map +1 -1
- package/dist/tools/bank-reconciliation.js +170 -56
- package/dist/tools/bank-reconciliation.js.map +1 -1
- package/dist/tools/camt-import.d.ts.map +1 -1
- package/dist/tools/camt-import.js +5 -0
- package/dist/tools/camt-import.js.map +1 -1
- package/dist/tools/crud/purchase-invoices.d.ts.map +1 -1
- package/dist/tools/crud/purchase-invoices.js +9 -0
- package/dist/tools/crud/purchase-invoices.js.map +1 -1
- package/dist/tools/currency-rounding.d.ts.map +1 -1
- package/dist/tools/currency-rounding.js +82 -19
- package/dist/tools/currency-rounding.js.map +1 -1
- package/dist/tools/financial-statements.d.ts +14 -1
- package/dist/tools/financial-statements.d.ts.map +1 -1
- package/dist/tools/financial-statements.js +21 -6
- package/dist/tools/financial-statements.js.map +1 -1
- package/dist/tools/inter-account-utils.d.ts +59 -0
- package/dist/tools/inter-account-utils.d.ts.map +1 -1
- package/dist/tools/inter-account-utils.js +51 -7
- package/dist/tools/inter-account-utils.js.map +1 -1
- package/dist/tools/lightyear-investments.d.ts.map +1 -1
- package/dist/tools/lightyear-investments.js +146 -86
- package/dist/tools/lightyear-investments.js.map +1 -1
- package/dist/tools/own-company-identity.d.ts +26 -0
- package/dist/tools/own-company-identity.d.ts.map +1 -0
- package/dist/tools/own-company-identity.js +37 -0
- package/dist/tools/own-company-identity.js.map +1 -0
- package/dist/tools/pdf-workflow.d.ts.map +1 -1
- package/dist/tools/pdf-workflow.js +54 -2
- package/dist/tools/pdf-workflow.js.map +1 -1
- package/dist/tools/receipt-extraction.d.ts.map +1 -1
- package/dist/tools/receipt-extraction.js +14 -1
- package/dist/tools/receipt-extraction.js.map +1 -1
- package/dist/tools/receipt-inbox-booking.d.ts.map +1 -1
- package/dist/tools/receipt-inbox-booking.js +26 -2
- package/dist/tools/receipt-inbox-booking.js.map +1 -1
- package/dist/tools/receipt-inbox-output.d.ts.map +1 -1
- package/dist/tools/receipt-inbox-output.js +26 -5
- package/dist/tools/receipt-inbox-output.js.map +1 -1
- package/dist/tools/receipt-inbox.d.ts.map +1 -1
- package/dist/tools/receipt-inbox.js +24 -2
- package/dist/tools/receipt-inbox.js.map +1 -1
- package/dist/tools/supplier-resolution.d.ts.map +1 -1
- package/dist/tools/supplier-resolution.js +14 -0
- package/dist/tools/supplier-resolution.js.map +1 -1
- package/dist/tools/wise-import.d.ts.map +1 -1
- package/dist/tools/wise-import.js +27 -13
- package/dist/tools/wise-import.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,45 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.20.1] - 2026-07-11
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- **Full-codebase security & correctness review (7-pass Codex review, verified).** Every finding was checked against the actual code before acting; roughly eighteen were dropped as false positives and none survived as high-severity. The confirmed defects are fixed, each with regression tests:
|
|
9
|
+
- **Network-error messages no longer leak the auth public value / HMAC signature.** `formatNetworkError` now emits only the error name and code (never the raw fetch message, which for some failures echoes the offending header value). The HTTP client also refuses unexpected 3xx redirects (`redirect: "manual"`) and classifies a failed/timed-out response-body read as a network error.
|
|
10
|
+
- **`TransactionsApi.confirm` no longer rolls back a possibly-committed registration when the post-network-error re-read itself fails.** It now throws an explicit indeterminate-state error instead of blindly reverting `clients_id`.
|
|
11
|
+
- **Aging analysis** signs credit-invoice gross, separates the `as_of_date` cutoff from the actual current date, excludes future-dated invoices, and warns on missing `term_days`.
|
|
12
|
+
- **Account-balance and financial-statement totals are computed from raw sums and rounded once**, eliminating ±0.01 debit/credit rounding drift, including `compute_client_debt`.
|
|
13
|
+
- **`reconcile_currency_rounding`** routes unconvertible-foreign / EUR-residual / rate-load failures to the review bucket and dates FX journals to the settlement date.
|
|
14
|
+
- **Cross-currency inter-account transfers whose confirmed leg is foreign now route to a `cross_currency_review` bucket** instead of auto-distributing the foreign nominal amount to the target account (which booked the wrong figure). EUR-leg FX pairs (`nominal == base`) still auto-confirm. A coincidental cross-currency nominal match against an invoice is likewise flagged for review instead of scoring `exact_amount`. `min_confidence` is bounded to 0–100.
|
|
15
|
+
- **Untrusted-text sandbox holes closed.** A CAMT duplicate-cleanup patch that round-tripped through the LLM as sandbox-wrapped review text is now unwrapped (`unwrapUntrustedOcr`) before write-back, so the `<<UNTRUSTED_OCR_START…>>` delimiters can never be persisted into a ledger field. Failed import/parse-step error messages are capped and wrapped before reaching MCP output. `created_invoice.number`, `normalized_counterparty`, and other OCR-derived output strings are now wrapped and length-capped.
|
|
16
|
+
- **`parseMcpResponse` parses JSON-shaped input as JSON first** — TOON's `decode()` silently garbles a JSON string without throwing, which corrupted merged-tool reporting on the JSON-fallback path.
|
|
17
|
+
- **CAMT parsing** strips XML namespace prefixes (`removeNSPrefix`) so a namespace-qualified `<ns:Document>` statement parses instead of failing with "found 0 <Stmt>".
|
|
18
|
+
- **Receipt/invoice extraction** honours accounting-style parenthesised negatives (`(124.00)` → −124); the labelled Estonian registry-code regex gained a digit boundary so a 9-digit number no longer matches an 8-digit prefix.
|
|
19
|
+
- **Lightyear import** deduplicates repeated references within one CSV and branches on the `createJournalOnce` duplicate outcome, so a guarded duplicate is no longer double-counted in the audit log or report.
|
|
20
|
+
- **Setup-mode credential verification** keys its cache by a hash of the full credential identity (not just the key id), so re-importing the same key id with a corrected password re-verifies instead of reusing the stale result; setup instructions no longer advertise the Lightyear parsers when that group is disabled.
|
|
21
|
+
- **Receipt-inbox orchestration** propagates a non-404 transaction-lookup error as a real failure (instead of silently skipping a valid transaction), reserves dry-run bank-match candidates so two receipts cannot both preview the same transaction, and warns that create mode re-scans the folder at execution time.
|
|
22
|
+
|
|
23
|
+
## [0.20.0] - 2026-07-10
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- **`TransactionsApi.confirm` now recovers from an ambiguous network failure on the register call.** Confirming a transaction issues `PATCH /transactions/{id}/register`, which creates a journal server-side, so a dropped connection or timeout is ambiguous — the registration may have committed. Previously such a failure ran the `clients_id` rollback (which would corrupt a *committed* journal's buyer/supplier) and threw, signalling a false failure that could prompt a duplicating retry. On a network error the method now re-reads the transaction (busting the stale cache) and checks its status: if `CONFIRMED` the registration landed, so it keeps `clients_id`, flushes the journal cache, and reports success (with no `created_object_id` — callers already record the sentinel journal id); if still `PROJECT` it rolls back and rethrows as before. A non-network HTTP status is propagated unchanged.
|
|
27
|
+
- **`BookingGuard.createJournalOnce` now recovers from ambiguous network failures (verify-then-retry).** A journal-create POST that fails with a *network* error (timeout / dropped connection, `HttpError.status === "network"`) is ambiguous — the RIK API signs only the request path, not the body, so it has no server-side idempotency and the write may or may not have committed. Rather than blindly retrying (risking a duplicate) or blindly failing (risking an orphan plus a user retry that duplicates), the guard busts the stale journals cache and re-scans the ledger by the create's `document_number` key: if the journal is found the ambiguous write committed, so it is recovered (`recovered: true`) and confirmed if it landed in `PROJECT`, with no retry; if it is not found the create is retried exactly once. A non-network HTTP status (4xx/5xx) is propagated unchanged, since the server saw and rejected the request. The generic http-client keeps its no-retry gate for non-idempotent methods — recovery lives at the guard level, the only place with a checkable key. `reconcile_currency_rounding` and the Lightyear booking sites inherit this automatically.
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
- **Journal idempotency is now centralized in a single `BookingGuard` layer (`src/booking-guard.ts`).** The RIK API signs only the request path, not the body, so it offers no server-side idempotency — every booking tool had to hand-roll its own "did I already book this?" scan of the ledger, and subtle divergences between those copies (deleted-journal handling, in-run vs cross-run dedup, sentinel journal ids) were the dominant duplicate-booking bug class. `BookingGuard` loads one journal snapshot per run and exposes two lanes: Lane A for namespaced `document_number` keys (`FX:{id}`, `LY:{ref}`) with `find`/`record`/`createJournalOnce`, and Lane B for structural inter-account transfers (`sourceDim|targetDim|amount|date` with reference disambiguation and an optional nearest-first date window). Migrated `reconcile_currency_rounding` (Lane A), the Lightyear buy/sell/cash-equivalent/distribution booking sites (Lane A, preserving the legacy bare-reference date-cross-check), and the Wise and bank-reconciliation inter-account paths (Lane B). Behavior is preserved, with two incidental hardening improvements: `reconcile_currency_rounding` now treats a concurrently-created `FX:` journal as already-reconciled instead of double-posting, and Lightyear booking now dedups repeated references within a single CSV. Lane-A-only callers use the cheaper `listAll` (no per-journal posting fetches); Lane B loads postings only when bank dimensions are supplied.
|
|
31
|
+
|
|
32
|
+
## [0.19.1] - 2026-07-10
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
- **Duplicate-booking and balance-drift hardening (whole-codebase review).** Seven high-severity correctness fixes, each with regression tests:
|
|
36
|
+
- **Non-idempotent HTTP requests are no longer retried after a network error or timeout.** A `POST`/`PATCH`/`DELETE` that times out or drops its connection is ambiguous — the server may already have committed the mutation — so retrying risked a duplicate invoice, journal, or transaction. Only `GET` and `PUT` (full replace) retry now; the 5xx retry path was already `GET`-only.
|
|
37
|
+
- **`update_purchase_invoice` re-sends the existing line items when the caller updates header fields only.** The API rejects an item-less PATCH with "Products/services are missing", so every metadata-only update (notes, dates, bank refs) previously failed; the handler now backfills `items` from the current invoice, while a caller that supplies items to change the lines keeps theirs.
|
|
38
|
+
- **The single-PDF flow now applies the same self-supplier defenses as the receipt batch.** `extract_pdf_invoice` resolves the active company's own VAT number and registry code and excludes them from the extracted supplier fields, and `resolve_supplier` threads them into resolution so the previously-dormant self-match guards fire — refusing to resolve or auto-create the buyer's own company as a supplier, which would otherwise book a purchase against self.
|
|
39
|
+
- **`reconcile_currency_rounding` FX-difference journals are now idempotent.** The paid-vs-booked residual does not clear when the `FX:{invoice_id}` journal is posted, so a second `execute` run re-detected the same difference and double-booked it; the tool now skips any invoice that already carries an `FX:` journal.
|
|
40
|
+
- **Inter-account reconciliation no longer confirms both legs of one transfer in a single run.** The in-run journal index was built once at the start and never refreshed, so confirming one leg left the opposite leg looking un-journalized and it was confirmed into a duplicate; each newly-created journal is now recorded into the index immediately.
|
|
41
|
+
- **Receipt auto-link skips cross-currency (base-amount-only) transaction matches.** When a match survived only on base-currency evidence, the transaction amount is in a different currency than the invoice gross, so auto-confirming posted the wrong distribution amount; the guard the sibling bank-reconciliation path already applied now covers the receipt path too, routing such matches to manual review.
|
|
42
|
+
- **Lightyear buy trades capitalize the trade platform fee into investment cost.** The fee was expensed instead of added to cost basis, contradicting the FIFO capital-gains report (which bakes the trade fee into cost basis) and stranding a residual on the investment account after every full sell; only the FX conversion fee — which the report excludes — is expensed.
|
|
43
|
+
|
|
5
44
|
## [0.19.0] - 2026-07-10
|
|
6
45
|
|
|
7
46
|
### Added
|
|
@@ -11,5 +11,16 @@ export declare class JournalsApi extends BaseResource<Journal> {
|
|
|
11
11
|
listAllWithPostings(): Promise<Journal[]>;
|
|
12
12
|
confirm(id: number): Promise<ApiResponse>;
|
|
13
13
|
invalidate(id: number): Promise<ApiResponse>;
|
|
14
|
+
/**
|
|
15
|
+
* Force-drop the journals list cache so the next `listAll()` /
|
|
16
|
+
* `listAllWithPostings()` re-reads from the server.
|
|
17
|
+
*
|
|
18
|
+
* `create()` only invalidates the cache *after* a successful POST, so a
|
|
19
|
+
* create that fails with a network error never clears it and the cached
|
|
20
|
+
* snapshot can still predate the ambiguous write. BookingGuard's
|
|
21
|
+
* verify-then-retry calls this before re-scanning to check whether the
|
|
22
|
+
* ambiguous journal actually committed.
|
|
23
|
+
*/
|
|
24
|
+
invalidateListCache(): void;
|
|
14
25
|
}
|
|
15
26
|
//# sourceMappingURL=journals.api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journals.api.d.ts","sourceRoot":"","sources":["../../src/api/journals.api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAS,MAAM,oBAAoB,CAAC;AAEzD,qBAAa,WAAY,SAAQ,YAAY,CAAC,OAAO,CAAC;IACpD,YAAY,MAAM,EAAE,UAAU,EAE7B;IAED;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CA6B9C;IAEK,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAQ9C;IAEK,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAKjD;CAEF"}
|
|
1
|
+
{"version":3,"file":"journals.api.d.ts","sourceRoot":"","sources":["../../src/api/journals.api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAS,MAAM,oBAAoB,CAAC;AAEzD,qBAAa,WAAY,SAAQ,YAAY,CAAC,OAAO,CAAC;IACpD,YAAY,MAAM,EAAE,UAAU,EAE7B;IAED;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CA6B9C;IAEK,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAQ9C;IAEK,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAKjD;IAED;;;;;;;;;OASG;IACH,mBAAmB,IAAI,IAAI,CAE1B;CAEF"}
|
package/dist/api/journals.api.js
CHANGED
|
@@ -51,5 +51,18 @@ export class JournalsApi extends BaseResource {
|
|
|
51
51
|
this.invalidateCache("/transactions");
|
|
52
52
|
return result;
|
|
53
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Force-drop the journals list cache so the next `listAll()` /
|
|
56
|
+
* `listAllWithPostings()` re-reads from the server.
|
|
57
|
+
*
|
|
58
|
+
* `create()` only invalidates the cache *after* a successful POST, so a
|
|
59
|
+
* create that fails with a network error never clears it and the cached
|
|
60
|
+
* snapshot can still predate the ambiguous write. BookingGuard's
|
|
61
|
+
* verify-then-retry calls this before re-scanning to check whether the
|
|
62
|
+
* ambiguous journal actually committed.
|
|
63
|
+
*/
|
|
64
|
+
invalidateListCache() {
|
|
65
|
+
this.invalidateCache();
|
|
66
|
+
}
|
|
54
67
|
}
|
|
55
68
|
//# sourceMappingURL=journals.api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journals.api.js","sourceRoot":"","sources":["../../src/api/journals.api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,OAAO,WAAY,SAAQ,YAAqB;IACpD,YAAY,MAAkB;QAC5B,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,kBAAkB,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAY,QAAQ,CAAC,CAAC;QAC9C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAEjC,mEAAmE;QACnE,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvD,IAAI,OAAO,CAAC,EAAE,IAAI,IAAI;oBAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAC;YAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAc,aAAa,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,2EAA2E;QAC3E,wEAAwE;QACxE,yDAAyD;QACzD,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAc,aAAa,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC;IAChB,CAAC;CAEF"}
|
|
1
|
+
{"version":3,"file":"journals.api.js","sourceRoot":"","sources":["../../src/api/journals.api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.api.d.ts","sourceRoot":"","sources":["../../src/api/transactions.api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"transactions.api.d.ts","sourceRoot":"","sources":["../../src/api/transactions.api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAgC,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACvH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,qBAAa,eAAgB,SAAQ,YAAY,CAAC,WAAW,CAAC;IAC5D,YAAY,MAAM,EAAE,UAAU,EAE7B;IAED;;;;;;OAMG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CA4FzF;IAEK,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAOjD;CAEF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { HttpError } from "../http-client.js";
|
|
1
2
|
import { BaseResource } from "./base-resource.js";
|
|
2
3
|
export class TransactionsApi extends BaseResource {
|
|
3
4
|
constructor(client) {
|
|
@@ -46,6 +47,43 @@ export class TransactionsApi extends BaseResource {
|
|
|
46
47
|
return result;
|
|
47
48
|
}
|
|
48
49
|
catch (error) {
|
|
50
|
+
// A network error on the register PATCH is ambiguous: the registration
|
|
51
|
+
// creates a journal server-side, so a lost response may mean it actually
|
|
52
|
+
// committed. Re-read the transaction (busting the stale cache — the
|
|
53
|
+
// failed PATCH never reached its own invalidateCache) and check its
|
|
54
|
+
// status before deciding. If it is CONFIRMED the registration landed, so
|
|
55
|
+
// we must NOT roll back clients_id (that would corrupt the committed
|
|
56
|
+
// journal's buyer/supplier) and must report success instead of a false
|
|
57
|
+
// failure that invites a duplicating retry.
|
|
58
|
+
if (error instanceof HttpError && error.status === "network") {
|
|
59
|
+
this.invalidateCache();
|
|
60
|
+
let confirmed = false;
|
|
61
|
+
let reReadOk = false;
|
|
62
|
+
try {
|
|
63
|
+
confirmed = (await this.get(id)).status === "CONFIRMED";
|
|
64
|
+
reReadOk = true;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// Re-read failed — commit state is indeterminate (handled below).
|
|
68
|
+
}
|
|
69
|
+
if (confirmed) {
|
|
70
|
+
this.invalidateCache("/journals");
|
|
71
|
+
// The tx re-read does not carry the new journal id; callers already
|
|
72
|
+
// tolerate an absent created_object_id (recording the sentinel id).
|
|
73
|
+
return { code: 200, messages: ["Registration recovered after network error"] };
|
|
74
|
+
}
|
|
75
|
+
if (!reReadOk) {
|
|
76
|
+
// Indeterminate: the register PATCH may have committed a journal
|
|
77
|
+
// server-side, but we could not confirm. Rolling back clients_id now
|
|
78
|
+
// would corrupt that committed journal's buyer/supplier, so we leave
|
|
79
|
+
// clients_id AS SET and surface the ambiguity. Never roll back or
|
|
80
|
+
// blindly retry on an unknown commit state.
|
|
81
|
+
throw new Error(`Transaction ${id} registration hit a network error and the status re-read also failed; ` +
|
|
82
|
+
`commit state is indeterminate. clients_id left as set (a rollback could corrupt a committed ` +
|
|
83
|
+
`journal). Verify the transaction in e-arveldaja before any retry.`);
|
|
84
|
+
}
|
|
85
|
+
// reReadOk && !confirmed → the register did NOT commit → safe to roll back.
|
|
86
|
+
}
|
|
49
87
|
if (clientsIdWasSet) {
|
|
50
88
|
try {
|
|
51
89
|
await this.update(id, { clients_id: null });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.api.js","sourceRoot":"","sources":["../../src/api/transactions.api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transactions.api.js","sourceRoot":"","sources":["../../src/api/transactions.api.ts"],"names":[],"mappings":"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"}
|
package/dist/audit-log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../src/audit-log.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,eAAO,MAAM,kBAAkB,YAE7B,QAAQ,EACR,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,kBAAkB,EAElB,gBAAgB,EAChB,cAAc,EACd,cAAc,EAEd,gBAAgB,CACR,CAAC;AAEX,eAAO,MAAM,aAAa,YACxB,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,aAAa,EACb,UAAU,EACV,UAAU,EACV,MAAM,EACN,eAAe,EACf,+BAA+B,CACvB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;EAA6B,CAAC;AAC1D,eAAO,MAAM,WAAW;;;;;;;;;;;EAAwB,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AA2GD,yFAAyF;AACzF,wBAAgB,YAAY,CAC1B,iBAAiB,EAAE,MAAM,MAAM,EAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9C,IAAI,CAWN;AAMD,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEtE;AAsFD,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,uBAAuB,EAAE,GAAG,IAAI,CA2D9E;
|
|
1
|
+
{"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../src/audit-log.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,eAAO,MAAM,kBAAkB,YAE7B,QAAQ,EACR,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,kBAAkB,EAElB,gBAAgB,EAChB,cAAc,EACd,cAAc,EAEd,gBAAgB,CACR,CAAC;AAEX,eAAO,MAAM,aAAa,YACxB,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,aAAa,EACb,UAAU,EACV,UAAU,EACV,MAAM,EACN,eAAe,EACf,+BAA+B,CACvB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;EAA6B,CAAC;AAC1D,eAAO,MAAM,WAAW;;;;;;;;;;;EAAwB,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AA2GD,yFAAyF;AACzF,wBAAgB,YAAY,CAC1B,iBAAiB,EAAE,MAAM,MAAM,EAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9C,IAAI,CAWN;AAMD,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEtE;AAsFD,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,uBAAuB,EAAE,GAAG,IAAI,CA2D9E;AA6UD,wBAAgB,QAAQ,CACtB,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EACpC,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC,IAAI,CA2BN;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyGD,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAE3D;AAED,qDAAqD;AACrD,wBAAgB,aAAa,IAAI,IAAI,CAOpC;AAED,oDAAoD;AACpD,wBAAgB,aAAa,IAAI,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBjH;AAED,wEAAwE;AACxE,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAQ/F;AAED,iEAAiE;AACjE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,MAAM,CAEjF"}
|
package/dist/audit-log.js
CHANGED
|
@@ -567,6 +567,23 @@ function renderEntry(entry) {
|
|
|
567
567
|
* operators can spot corrupted records.
|
|
568
568
|
*/
|
|
569
569
|
const LINUX_PIPE_BUF_BYTES = 4096;
|
|
570
|
+
/** Longest prefix of `s` whose UTF-8 encoding fits in `maxBytes`, cut on a char boundary. */
|
|
571
|
+
function truncateToBytes(s, maxBytes) {
|
|
572
|
+
if (maxBytes <= 0)
|
|
573
|
+
return "";
|
|
574
|
+
if (Buffer.byteLength(s, "utf-8") <= maxBytes)
|
|
575
|
+
return s;
|
|
576
|
+
let lo = 0;
|
|
577
|
+
let hi = s.length;
|
|
578
|
+
while (lo < hi) {
|
|
579
|
+
const mid = Math.ceil((lo + hi) / 2);
|
|
580
|
+
if (Buffer.byteLength(s.slice(0, mid), "utf-8") <= maxBytes)
|
|
581
|
+
lo = mid;
|
|
582
|
+
else
|
|
583
|
+
hi = mid - 1;
|
|
584
|
+
}
|
|
585
|
+
return s.slice(0, lo);
|
|
586
|
+
}
|
|
570
587
|
export function logAudit(entry, opts) {
|
|
571
588
|
const full = { ...entry, timestamp: new Date().toISOString() };
|
|
572
589
|
try {
|
|
@@ -576,12 +593,17 @@ export function logAudit(entry, opts) {
|
|
|
576
593
|
if (!existsSync(LOGS_DIR)) {
|
|
577
594
|
mkdirSync(LOGS_DIR, { recursive: true, mode: 0o700 });
|
|
578
595
|
}
|
|
579
|
-
|
|
596
|
+
let md = renderEntry(full) + ENTRY_SEPARATOR;
|
|
580
597
|
if (Buffer.byteLength(md, "utf-8") > LINUX_PIPE_BUF_BYTES) {
|
|
581
|
-
//
|
|
582
|
-
//
|
|
583
|
-
|
|
584
|
-
|
|
598
|
+
// Truncate so the append stays a single atomic O_APPEND write (<= PIPE_BUF)
|
|
599
|
+
// and cannot interleave with a concurrent cross-process writer, which would
|
|
600
|
+
// corrupt BOTH records. Data is trimmed but the entry stays intact and
|
|
601
|
+
// parseable — better than a warned-but-unbounded write that can shred the log.
|
|
602
|
+
const notice = "\n_[audit entry truncated to preserve cross-process write atomicity]_";
|
|
603
|
+
const budget = LINUX_PIPE_BUF_BYTES - Buffer.byteLength(notice + ENTRY_SEPARATOR, "utf-8");
|
|
604
|
+
md = truncateToBytes(renderEntry(full), budget) + notice + ENTRY_SEPARATOR;
|
|
605
|
+
process.stderr.write(`[audit] entry exceeded PIPE_BUF (${LINUX_PIPE_BUF_BYTES}B) and was truncated to stay atomic ` +
|
|
606
|
+
`for tool="${entry.tool}" action="${entry.action}"\n`);
|
|
585
607
|
}
|
|
586
608
|
appendPrivateTextFile(filePath, md);
|
|
587
609
|
}
|
package/dist/audit-log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-log.js","sourceRoot":"","sources":["../src/audit-log.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"audit-log.js","sourceRoot":"","sources":["../src/audit-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import type { ApiContext } from "./tools/crud-tools.js";
|
|
2
|
+
import type { Journal } from "./types/api.js";
|
|
3
|
+
/**
|
|
4
|
+
* BookingGuard — a single-snapshot idempotency layer for journal creation.
|
|
5
|
+
*
|
|
6
|
+
* The RIK e-Financials API signs only the request path (not the body), so it
|
|
7
|
+
* offers no server-side idempotency: a retried or re-run POST creates a second
|
|
8
|
+
* journal. Every booking tool therefore has to detect "did I already book
|
|
9
|
+
* this?" against the existing ledger before writing. Historically each tool
|
|
10
|
+
* grew its own scan of `journals.listAll()`, its own `document_number`
|
|
11
|
+
* convention, and its own create/confirm/record dance — with subtle
|
|
12
|
+
* divergences (deleted-journal handling, in-run vs cross-run dedup, sentinel
|
|
13
|
+
* journal ids) that were the dominant source of duplicate-booking bugs.
|
|
14
|
+
*
|
|
15
|
+
* BookingGuard centralises that into one snapshot loaded per run, with two
|
|
16
|
+
* lanes:
|
|
17
|
+
*
|
|
18
|
+
* Lane A — namespaced `document_number` keys (`FX:{id}`, `LY:{ref}`, …).
|
|
19
|
+
* Exact-key dedup: one document_number ⇒ at most one live journal.
|
|
20
|
+
*
|
|
21
|
+
* Lane B — structural inter-account transfers keyed
|
|
22
|
+
* `sourceDim|targetDim|amount|date` with reference disambiguation.
|
|
23
|
+
* Delegates to the existing inter-account-utils index/matcher.
|
|
24
|
+
*
|
|
25
|
+
* `createJournalOnce` is the guarded write: find first, create with the
|
|
26
|
+
* document_number stamped, best-effort confirm, then record into the in-run
|
|
27
|
+
* index so a second call in the same run is also deduped.
|
|
28
|
+
*
|
|
29
|
+
* NOTE: the network-level verify-then-retry (re-scan after a network error to
|
|
30
|
+
* recover a journal that may have been created despite a failed response) is
|
|
31
|
+
* intentionally deferred to the http-client migration step. Today the
|
|
32
|
+
* http-client does not retry non-idempotent POSTs at all, so a POST either
|
|
33
|
+
* succeeds (we see the id) or throws (nothing created). The guard's find pass
|
|
34
|
+
* still protects against cross-run and in-run duplicates.
|
|
35
|
+
*/
|
|
36
|
+
export type DocNamespace = "FX" | "LY";
|
|
37
|
+
export interface DocKey {
|
|
38
|
+
ns: DocNamespace;
|
|
39
|
+
/** The identifier within the namespace — invoice id, Lightyear reference, … */
|
|
40
|
+
id: string;
|
|
41
|
+
}
|
|
42
|
+
/** "FX:123" / "LY:OR-EVN9C76R7A" */
|
|
43
|
+
export declare function formatDocNumber(key: DocKey): string;
|
|
44
|
+
/**
|
|
45
|
+
* Parse a raw `document_number` into a DocKey, or `undefined` when it does not
|
|
46
|
+
* carry a known namespace prefix (manual journals, legacy entries, …).
|
|
47
|
+
*
|
|
48
|
+
* Only the first ":" is treated as the separator, so a reference that itself
|
|
49
|
+
* contains a colon (unusual, but possible for external ids) round-trips.
|
|
50
|
+
*/
|
|
51
|
+
export declare function parseDocNumber(raw: string | null | undefined): DocKey | undefined;
|
|
52
|
+
export interface ExistingArtifact {
|
|
53
|
+
journal_id: number;
|
|
54
|
+
document_number: string;
|
|
55
|
+
registered: boolean;
|
|
56
|
+
is_deleted: boolean;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Liveness filter applied at `find` time.
|
|
60
|
+
* - `any` — every artifact, including deleted/invalidated ones.
|
|
61
|
+
* - `not_deleted` — exclude deleted/invalidated journals (default). A
|
|
62
|
+
* deleted FX/LY journal means the operator invalidated it
|
|
63
|
+
* to re-post, so it must NOT block re-booking.
|
|
64
|
+
* - `registered_only` — only confirmed, non-deleted journals.
|
|
65
|
+
*/
|
|
66
|
+
export type Liveness = "any" | "not_deleted" | "registered_only";
|
|
67
|
+
/**
|
|
68
|
+
* Outcome of {@link BookingGuard.resolveInterAccount}.
|
|
69
|
+
* - `matched` — a journal already covers this transfer; do NOT book.
|
|
70
|
+
* - `ambiguous_refless` — a ref-less same-key collision that cannot be safely
|
|
71
|
+
* resolved; surface for operator review rather than booking or skipping.
|
|
72
|
+
* - `none` — no journal covers this transfer; safe to book.
|
|
73
|
+
*/
|
|
74
|
+
export type InterAccountResolution = {
|
|
75
|
+
status: "matched";
|
|
76
|
+
journal_id: number;
|
|
77
|
+
matched_on: "reference" | "refless";
|
|
78
|
+
pool: "snapshot" | "in_run";
|
|
79
|
+
} | {
|
|
80
|
+
status: "ambiguous_refless";
|
|
81
|
+
} | {
|
|
82
|
+
status: "none";
|
|
83
|
+
};
|
|
84
|
+
export interface InterAccountQuery {
|
|
85
|
+
sourceDim: number;
|
|
86
|
+
targetDim: number;
|
|
87
|
+
amount: number;
|
|
88
|
+
date: string;
|
|
89
|
+
/** Optional +/- day window around `date` (default 0 — exact date only). */
|
|
90
|
+
maxGapDays?: number;
|
|
91
|
+
/** Reference number for disambiguating same-amount/date/dims transfers. */
|
|
92
|
+
reference?: string | null;
|
|
93
|
+
}
|
|
94
|
+
export interface CreateOnceOptions {
|
|
95
|
+
/** Liveness used for the pre-create dedup check (default `not_deleted`). */
|
|
96
|
+
liveness?: Liveness;
|
|
97
|
+
/** Attempt to confirm/register the created journal (default true). */
|
|
98
|
+
confirm?: boolean;
|
|
99
|
+
}
|
|
100
|
+
export type CreateOnceResult = {
|
|
101
|
+
status: "created";
|
|
102
|
+
journal_id: number;
|
|
103
|
+
registered: boolean;
|
|
104
|
+
recovered?: boolean;
|
|
105
|
+
} | {
|
|
106
|
+
status: "duplicate";
|
|
107
|
+
journal_id: number;
|
|
108
|
+
};
|
|
109
|
+
export declare class BookingGuard {
|
|
110
|
+
/** The raw snapshot, exposed read-only for callers that still scan directly. */
|
|
111
|
+
readonly journals: readonly Journal[];
|
|
112
|
+
private readonly api;
|
|
113
|
+
private readonly ownDimensionIds;
|
|
114
|
+
private readonly docIndex;
|
|
115
|
+
private readonly interAccountIndex;
|
|
116
|
+
private constructor();
|
|
117
|
+
/**
|
|
118
|
+
* Load one snapshot of all journals (with postings, needed for Lane B) and
|
|
119
|
+
* build both indexes. `ownDimensionIds` is only required for Lane B
|
|
120
|
+
* inter-account matching — Lane A works without it.
|
|
121
|
+
*/
|
|
122
|
+
static load(api: ApiContext, opts?: {
|
|
123
|
+
ownDimensionIds?: Set<number>;
|
|
124
|
+
}): Promise<BookingGuard>;
|
|
125
|
+
/** First artifact for `key` passing `liveness` (default `not_deleted`). */
|
|
126
|
+
find(key: DocKey, liveness?: Liveness): ExistingArtifact | undefined;
|
|
127
|
+
/** Record a freshly-created journal into the in-run Lane A index. */
|
|
128
|
+
record(key: DocKey, journalId: number, meta?: {
|
|
129
|
+
registered?: boolean;
|
|
130
|
+
is_deleted?: boolean;
|
|
131
|
+
}): void;
|
|
132
|
+
/**
|
|
133
|
+
* Guarded journal write. Returns `duplicate` (with the existing journal id)
|
|
134
|
+
* when a live artifact already carries this key; otherwise creates the
|
|
135
|
+
* journal with the document_number stamped, best-effort confirms it (unless
|
|
136
|
+
* `confirm:false`), records it, and returns `created`.
|
|
137
|
+
*
|
|
138
|
+
* The caller's `payload.document_number` is ignored — the guard stamps it
|
|
139
|
+
* from `key` so the key and the stored document_number can never diverge.
|
|
140
|
+
*/
|
|
141
|
+
createJournalOnce(key: DocKey, payload: Omit<Partial<Journal>, "document_number">, opts?: CreateOnceOptions): Promise<CreateOnceResult>;
|
|
142
|
+
/**
|
|
143
|
+
* Scan a raw journal array for the first live (not-deleted) journal carrying
|
|
144
|
+
* `key`'s document_number. Used by the verify-then-retry path against a
|
|
145
|
+
* freshly-fetched snapshot, so it applies the same parse + `not_deleted`
|
|
146
|
+
* liveness that `find` uses without disturbing the in-memory index.
|
|
147
|
+
*/
|
|
148
|
+
private static findKeyInJournals;
|
|
149
|
+
/**
|
|
150
|
+
* Find an existing inter-account journal for the given transfer, or
|
|
151
|
+
* `undefined`. Delegates candidate selection to `findMatchingJournal`
|
|
152
|
+
* (reference disambiguation). When `maxGapDays > 0`, scans the exact date
|
|
153
|
+
* first, then outward day-by-day within the window.
|
|
154
|
+
*/
|
|
155
|
+
findInterAccount(q: InterAccountQuery): number | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* Resolve a transfer against the Lane B index with cardinality awareness.
|
|
158
|
+
*
|
|
159
|
+
* `findInterAccount` answers a boolean "does a journal exist for this key?",
|
|
160
|
+
* which lets a single journal suppress unlimited same-key transfers. That is
|
|
161
|
+
* fine when references disambiguate, but natively-confirmed inter-account
|
|
162
|
+
* journals carry NO document_number (verified against the API), so two
|
|
163
|
+
* distinct ref-less same-day/same-amount transfers collide. This method
|
|
164
|
+
* disambiguates by consuming matched journals and by the entry's origin:
|
|
165
|
+
*
|
|
166
|
+
* - `reference` match → `matched` (never consumed: a same-ref re-import must
|
|
167
|
+
* keep being suppressed).
|
|
168
|
+
* - ref-less match on a ref-less `snapshot` journal → `matched`, and the entry
|
|
169
|
+
* is consumed (default) AND a ref-less in-run marker is dropped on the key.
|
|
170
|
+
* One inter-account journal spans TWO bank legs, so the next same-key ref-less
|
|
171
|
+
* row (the mirror leg, or a genuine second transfer — structurally identical)
|
|
172
|
+
* hits that marker and resolves to `ambiguous_refless` rather than silently
|
|
173
|
+
* booking a duplicate. So one prior-run journal suppresses exactly one leg and
|
|
174
|
+
* turns any further same-key rows into review items.
|
|
175
|
+
* - ref-less query against a labelled `snapshot` journal (e.g. an `FX:`
|
|
176
|
+
* conversion) → not matched at all: a labelled journal is identity-only,
|
|
177
|
+
* suppressed only by its own exact reference (`reflessSkipsLabelled`), so it
|
|
178
|
+
* never masks a genuine ref-less journal or marker behind it.
|
|
179
|
+
* - any match on an `in_run` journal via the ref-less catch-all → `ambiguous_refless`:
|
|
180
|
+
* we cannot tell a genuine second transfer from a duplicate re-import of the
|
|
181
|
+
* first, so the caller must surface it for review rather than guess.
|
|
182
|
+
* - no direct match, but a live `in_run` journal exists on this exact key with
|
|
183
|
+
* a *different* reference → `ambiguous_refless`: the two legs of one transfer
|
|
184
|
+
* legitimately carry different bank refs, so a differing-ref same-run
|
|
185
|
+
* collision is indistinguishable from a genuine second transfer.
|
|
186
|
+
* - no live candidate (or only differing-ref / labelled `snapshot` journals,
|
|
187
|
+
* which are distinct prior-run identities) → `none` (safe to book).
|
|
188
|
+
*/
|
|
189
|
+
resolveInterAccount(q: InterAccountQuery, opts?: {
|
|
190
|
+
consume?: boolean;
|
|
191
|
+
}): InterAccountResolution;
|
|
192
|
+
/** True when `candidates` holds a live (un-consumed) in-run journal entry. */
|
|
193
|
+
private hasLiveInRunEntry;
|
|
194
|
+
/**
|
|
195
|
+
* Drop a ref-less in-run "tripwire" marker under both directional keys for
|
|
196
|
+
* `date`, recorded when a ref-less snapshot journal is consumed. It carries no
|
|
197
|
+
* reference (so any subsequent same-key row hits the in_run → ambiguous_refless
|
|
198
|
+
* branch regardless of that row's reference) and the sentinel journal id (so no
|
|
199
|
+
* real journal id is ever surfaced from it and it is never itself consumed).
|
|
200
|
+
*/
|
|
201
|
+
private recordConsumedMarker;
|
|
202
|
+
/** Record a freshly-created inter-account journal into the Lane B index. */
|
|
203
|
+
recordInterAccount(q: Pick<InterAccountQuery, "sourceDim" | "targetDim" | "amount" | "date" | "reference">, journalId: number | undefined): void;
|
|
204
|
+
/**
|
|
205
|
+
* Candidate ISO dates around `date`, ordered nearest-first: the exact date,
|
|
206
|
+
* then -1/+1, -2/+2, … out to `gap` days. Uses UTC day arithmetic so the
|
|
207
|
+
* offsets never drift across DST or timezones.
|
|
208
|
+
*/
|
|
209
|
+
private candidateDates;
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=booking-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"booking-guard.d.ts","sourceRoot":"","sources":["../src/booking-guard.ts"],"names":[],"mappings":"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"}
|