@coderoftime/fints 0.1.0 → 0.2.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 +142 -1
- package/README.md +127 -37
- package/dist/client.d.ts +48 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +199 -0
- package/dist/client.js.map +1 -0
- package/dist/core/account.d.ts +35 -7
- package/dist/core/account.d.ts.map +1 -1
- package/dist/core/account.js +84 -13
- package/dist/core/account.js.map +1 -1
- package/dist/core/amount.d.ts +2 -1
- package/dist/core/amount.d.ts.map +1 -1
- package/dist/core/amount.js +4 -1
- package/dist/core/amount.js.map +1 -1
- package/dist/core/balance.d.ts +1 -0
- package/dist/core/balance.d.ts.map +1 -1
- package/dist/core/balance.js +6 -5
- package/dist/core/balance.js.map +1 -1
- package/dist/core/bank-info.d.ts +1 -1
- package/dist/core/bank-info.js +1 -1
- package/dist/core/client.d.ts +50 -15
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/config.d.ts +28 -16
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +66 -26
- package/dist/core/config.js.map +1 -1
- package/dist/core/errors.d.ts +85 -23
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +112 -47
- package/dist/core/errors.js.map +1 -1
- package/dist/core/feedback.d.ts +4 -1
- package/dist/core/feedback.d.ts.map +1 -1
- package/dist/core/feedback.js +4 -1
- package/dist/core/feedback.js.map +1 -1
- package/dist/core/transaction.d.ts +6 -1
- package/dist/core/transaction.d.ts.map +1 -1
- package/dist/core/transaction.js +9 -4
- package/dist/core/transaction.js.map +1 -1
- package/dist/core/transport.d.ts +33 -6
- package/dist/core/transport.d.ts.map +1 -1
- package/dist/core/transport.js +77 -20
- package/dist/core/transport.js.map +1 -1
- package/dist/formats/camt.d.ts +24 -4
- package/dist/formats/camt.d.ts.map +1 -1
- package/dist/formats/camt.js +124 -41
- package/dist/formats/camt.js.map +1 -1
- package/dist/formats/mt940.d.ts +15 -3
- package/dist/formats/mt940.d.ts.map +1 -1
- package/dist/formats/mt940.js +161 -82
- package/dist/formats/mt940.js.map +1 -1
- package/dist/formats/readers.d.ts +6 -2
- package/dist/formats/readers.d.ts.map +1 -1
- package/dist/formats/readers.js +24 -29
- package/dist/formats/readers.js.map +1 -1
- package/dist/formats/record-budget.d.ts +7 -0
- package/dist/formats/record-budget.d.ts.map +1 -0
- package/dist/formats/record-budget.js +17 -0
- package/dist/formats/record-budget.js.map +1 -0
- package/dist/formats/sepa-purpose.d.ts +6 -0
- package/dist/formats/sepa-purpose.d.ts.map +1 -1
- package/dist/formats/sepa-purpose.js +23 -2
- package/dist/formats/sepa-purpose.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/session/app-approval.d.ts +11 -5
- package/dist/session/app-approval.d.ts.map +1 -1
- package/dist/session/app-approval.js +23 -12
- package/dist/session/app-approval.js.map +1 -1
- package/dist/session/dialog-runner.d.ts +7 -10
- package/dist/session/dialog-runner.d.ts.map +1 -1
- package/dist/session/dialog-runner.js +15 -16
- package/dist/session/dialog-runner.js.map +1 -1
- package/dist/session/login-guard.d.ts +54 -49
- package/dist/session/login-guard.d.ts.map +1 -1
- package/dist/session/login-guard.js +156 -84
- package/dist/session/login-guard.js.map +1 -1
- package/dist/session/sepa-accounts.d.ts +20 -14
- package/dist/session/sepa-accounts.d.ts.map +1 -1
- package/dist/session/sepa-accounts.js +62 -46
- package/dist/session/sepa-accounts.js.map +1 -1
- package/dist/session/session-setup.d.ts +33 -25
- package/dist/session/session-setup.d.ts.map +1 -1
- package/dist/session/session-setup.js +87 -65
- package/dist/session/session-setup.js.map +1 -1
- package/dist/session/session-state.d.ts +9 -6
- package/dist/session/session-state.d.ts.map +1 -1
- package/dist/session/session-state.js +52 -17
- package/dist/session/session-state.js.map +1 -1
- package/dist/session/signed-dialog.d.ts +77 -0
- package/dist/session/signed-dialog.d.ts.map +1 -0
- package/dist/session/signed-dialog.js +170 -0
- package/dist/session/signed-dialog.js.map +1 -0
- package/dist/session/tan-selection.d.ts +26 -18
- package/dist/session/tan-selection.d.ts.map +1 -1
- package/dist/session/tan-selection.js +44 -33
- package/dist/session/tan-selection.js.map +1 -1
- package/dist/session/user-prompts.d.ts +8 -4
- package/dist/session/user-prompts.d.ts.map +1 -1
- package/dist/session/user-prompts.js +34 -14
- package/dist/session/user-prompts.js.map +1 -1
- package/dist/tan/challenge.d.ts +34 -13
- package/dist/tan/challenge.d.ts.map +1 -1
- package/dist/tan/challenge.js +25 -26
- package/dist/tan/challenge.js.map +1 -1
- package/dist/tan/flicker.d.ts +7 -1
- package/dist/tan/flicker.d.ts.map +1 -1
- package/dist/tan/flicker.js +40 -6
- package/dist/tan/flicker.js.map +1 -1
- package/dist/tan/tan-image.d.ts +3 -2
- package/dist/tan/tan-image.d.ts.map +1 -1
- package/dist/tan/tan-image.js +7 -5
- package/dist/tan/tan-image.js.map +1 -1
- package/dist/tan/tan-models.d.ts +5 -1
- package/dist/tan/tan-models.d.ts.map +1 -1
- package/dist/tan/tan-models.js +10 -5
- package/dist/tan/tan-models.js.map +1 -1
- package/dist/util/async.d.ts +0 -2
- package/dist/util/async.d.ts.map +1 -1
- package/dist/util/async.js +0 -4
- package/dist/util/async.js.map +1 -1
- package/dist/util/bytes.d.ts +2 -3
- package/dist/util/bytes.d.ts.map +1 -1
- package/dist/util/bytes.js +12 -20
- package/dist/util/bytes.js.map +1 -1
- package/dist/util/call-context.d.ts.map +1 -1
- package/dist/util/call-context.js +3 -2
- package/dist/util/call-context.js.map +1 -1
- package/dist/util/dates.d.ts +9 -16
- package/dist/util/dates.d.ts.map +1 -1
- package/dist/util/dates.js +39 -19
- package/dist/util/dates.js.map +1 -1
- package/dist/util/errors.d.ts +9 -1
- package/dist/util/errors.d.ts.map +1 -1
- package/dist/util/errors.js +12 -3
- package/dist/util/errors.js.map +1 -1
- package/dist/util/json.d.ts +4 -0
- package/dist/util/json.d.ts.map +1 -1
- package/dist/util/json.js +18 -0
- package/dist/util/json.js.map +1 -1
- package/dist/util/text.d.ts +21 -4
- package/dist/util/text.d.ts.map +1 -1
- package/dist/util/text.js +42 -13
- package/dist/util/text.js.map +1 -1
- package/dist/util/xml.d.ts +4 -3
- package/dist/util/xml.d.ts.map +1 -1
- package/dist/util/xml.js +37 -26
- package/dist/util/xml.js.map +1 -1
- package/dist/v3/account-extension.d.ts.map +1 -1
- package/dist/v3/account-extension.js +7 -10
- package/dist/v3/account-extension.js.map +1 -1
- package/dist/v3/bank-connection.d.ts +34 -0
- package/dist/v3/bank-connection.d.ts.map +1 -0
- package/dist/v3/bank-connection.js +58 -0
- package/dist/v3/bank-connection.js.map +1 -0
- package/dist/v3/dialog.d.ts +80 -46
- package/dist/v3/dialog.d.ts.map +1 -1
- package/dist/v3/dialog.js +162 -59
- package/dist/v3/dialog.js.map +1 -1
- package/dist/v3/message.d.ts +17 -4
- package/dist/v3/message.d.ts.map +1 -1
- package/dist/v3/message.js +62 -18
- package/dist/v3/message.js.map +1 -1
- package/dist/v3/parameter-store.d.ts +75 -0
- package/dist/v3/parameter-store.d.ts.map +1 -0
- package/dist/v3/parameter-store.js +143 -0
- package/dist/v3/parameter-store.js.map +1 -0
- package/dist/v3/parameters.d.ts +38 -12
- package/dist/v3/parameters.d.ts.map +1 -1
- package/dist/v3/parameters.js +91 -37
- package/dist/v3/parameters.js.map +1 -1
- package/dist/v3/protocol.d.ts +43 -50
- package/dist/v3/protocol.d.ts.map +1 -1
- package/dist/v3/protocol.js +58 -208
- package/dist/v3/protocol.js.map +1 -1
- package/dist/v3/queries.d.ts +51 -0
- package/dist/v3/queries.d.ts.map +1 -0
- package/dist/v3/queries.js +120 -0
- package/dist/v3/queries.js.map +1 -0
- package/dist/v3/segments.d.ts +29 -12
- package/dist/v3/segments.d.ts.map +1 -1
- package/dist/v3/segments.js +65 -23
- package/dist/v3/segments.js.map +1 -1
- package/dist/v3/syntax.d.ts +65 -14
- package/dist/v3/syntax.d.ts.map +1 -1
- package/dist/v3/syntax.js +167 -101
- package/dist/v3/syntax.js.map +1 -1
- package/package.json +10 -6
- package/src/client.ts +252 -0
- package/src/core/account.ts +86 -13
- package/src/core/amount.ts +3 -1
- package/src/core/balance.ts +6 -5
- package/src/core/bank-info.ts +1 -1
- package/src/core/client.ts +52 -15
- package/src/core/config.ts +69 -28
- package/src/core/errors.ts +122 -48
- package/src/core/feedback.ts +4 -1
- package/src/core/transaction.ts +9 -4
- package/src/core/transport.ts +98 -23
- package/src/formats/camt.ts +136 -39
- package/src/formats/mt940.ts +167 -81
- package/src/formats/readers.ts +24 -31
- package/src/formats/record-budget.ts +18 -0
- package/src/formats/sepa-purpose.ts +21 -2
- package/src/index.ts +4 -2
- package/src/session/app-approval.ts +51 -38
- package/src/session/dialog-runner.ts +31 -28
- package/src/session/login-guard.ts +174 -88
- package/src/session/sepa-accounts.ts +63 -45
- package/src/session/session-setup.ts +90 -71
- package/src/session/session-state.ts +56 -22
- package/src/session/signed-dialog.ts +192 -0
- package/src/session/tan-selection.ts +50 -39
- package/src/session/user-prompts.ts +35 -16
- package/src/tan/challenge.ts +40 -31
- package/src/tan/flicker.ts +44 -6
- package/src/tan/tan-image.ts +7 -5
- package/src/tan/tan-models.ts +10 -5
- package/src/util/async.ts +0 -5
- package/src/util/bytes.ts +13 -19
- package/src/util/call-context.ts +3 -2
- package/src/util/dates.ts +41 -24
- package/src/util/errors.ts +14 -3
- package/src/util/json.ts +16 -0
- package/src/util/text.ts +42 -12
- package/src/util/xml.ts +37 -26
- package/src/v3/account-extension.ts +7 -12
- package/src/v3/bank-connection.ts +67 -0
- package/src/v3/dialog.ts +175 -91
- package/src/v3/message.ts +69 -17
- package/src/v3/parameter-store.ts +160 -0
- package/src/v3/parameters.ts +110 -37
- package/src/v3/protocol.ts +70 -253
- package/src/v3/queries.ts +190 -0
- package/src/v3/segments.ts +65 -22
- package/src/v3/syntax.ts +153 -91
- package/dist/session/bank-connection.d.ts +0 -28
- package/dist/session/bank-connection.d.ts.map +0 -1
- package/dist/session/bank-connection.js +0 -48
- package/dist/session/bank-connection.js.map +0 -1
- package/dist/session/parameter-data.d.ts +0 -83
- package/dist/session/parameter-data.d.ts.map +0 -1
- package/dist/session/parameter-data.js +0 -68
- package/dist/session/parameter-data.js.map +0 -1
- package/dist/session/pin-tan-client.d.ts +0 -54
- package/dist/session/pin-tan-client.d.ts.map +0 -1
- package/dist/session/pin-tan-client.js +0 -153
- package/dist/session/pin-tan-client.js.map +0 -1
- package/dist/session/pin-tan-dialog.d.ts +0 -71
- package/dist/session/pin-tan-dialog.d.ts.map +0 -1
- package/dist/session/pin-tan-dialog.js +0 -124
- package/dist/session/pin-tan-dialog.js.map +0 -1
- package/dist/session/protocol.d.ts +0 -209
- package/dist/session/protocol.d.ts.map +0 -1
- package/dist/session/protocol.js +0 -75
- package/dist/session/protocol.js.map +0 -1
- package/dist/session/response-handler.d.ts +0 -48
- package/dist/session/response-handler.d.ts.map +0 -1
- package/dist/session/response-handler.js +0 -121
- package/dist/session/response-handler.js.map +0 -1
- package/dist/v3/client.d.ts +0 -24
- package/dist/v3/client.d.ts.map +0 -1
- package/dist/v3/client.js +0 -16
- package/dist/v3/client.js.map +0 -1
- package/src/session/bank-connection.ts +0 -51
- package/src/session/parameter-data.ts +0 -137
- package/src/session/pin-tan-client.ts +0 -186
- package/src/session/pin-tan-dialog.ts +0 -160
- package/src/session/protocol.ts +0 -311
- package/src/session/response-handler.ts +0 -130
- package/src/v3/client.ts +0 -29
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/core/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/core/transport.ts"],"names":[],"mappings":"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"}
|
package/dist/formats/camt.d.ts
CHANGED
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
import { Transaction, type TransactionStatus } from '../core/transaction.js';
|
|
2
|
-
|
|
2
|
+
import { RecordBudget } from './record-budget.js';
|
|
3
|
+
/** One report (camt.052), statement (camt.053) or notification (camt.054): the entries of one account. */
|
|
4
|
+
export interface CamtStatement {
|
|
5
|
+
/** The bank's identification of the statement (`Id`). */
|
|
6
|
+
readonly reference: string | undefined;
|
|
7
|
+
/** The account the statement is for: its IBAN, or the bank's other identification of it where it states none. */
|
|
8
|
+
readonly accountId: string | undefined;
|
|
9
|
+
/** The currency of the account, where the statement states it. */
|
|
10
|
+
readonly currency: string | undefined;
|
|
11
|
+
/** The transactions of the statement, in the order the bank lists them. */
|
|
12
|
+
readonly transactions: readonly Transaction[];
|
|
13
|
+
}
|
|
14
|
+
/** Parser for ISO 20022 camt.052, camt.053 and camt.054 account reports, statements and notifications. */
|
|
3
15
|
export declare const Camt: Readonly<{
|
|
4
16
|
/**
|
|
5
|
-
* Parses
|
|
6
|
-
*
|
|
17
|
+
* Parses the transactions of all statements in one list, which does not tell the account of each: a document may hold
|
|
18
|
+
* statements of several accounts, which `parse` keeps apart. Throws as `parse` does.
|
|
19
|
+
*/
|
|
20
|
+
parseTransactions(xml: string, status?: TransactionStatus): Transaction[];
|
|
21
|
+
/**
|
|
22
|
+
* Parses all statements, each with the account it is for. Throws `FormatError` for malformed XML, for a document
|
|
23
|
+
* without any statement, for an entry without amount, currency, credit/debit indicator or date, for a date it cannot
|
|
24
|
+
* read, and for more than 200,000 statements and transactions.
|
|
7
25
|
*
|
|
8
26
|
* `status` overrides the booking status stated in the entries.
|
|
9
27
|
*/
|
|
10
|
-
|
|
28
|
+
parse(xml: string, status?: TransactionStatus): CamtStatement[];
|
|
11
29
|
}>;
|
|
30
|
+
/** `Camt.parse`, which takes each statement and transaction from `budget`, before it builds it. */
|
|
31
|
+
export declare function parseCamt(xml: string, status: TransactionStatus | undefined, budget: RecordBudget): CamtStatement[];
|
|
12
32
|
//# sourceMappingURL=camt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camt.d.ts","sourceRoot":"","sources":["../../src/formats/camt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"camt.d.ts","sourceRoot":"","sources":["../../src/formats/camt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,0GAA0G;AAC1G,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,iHAAiH;IACjH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;CAC/C;AAKD,0GAA0G;AAC1G,eAAO,MAAM,IAAI;IACf;;;OAGG;2BACoB,MAAM,WAAW,iBAAiB,GAAG,WAAW,EAAE;IAIzE;;;;;;OAMG;eACQ,MAAM,WAAW,iBAAiB,GAAG,aAAa,EAAE;EAG/D,CAAC;AAEH,mGAAmG;AACnG,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,aAAa,EAAE,CAiBnH"}
|
package/dist/formats/camt.js
CHANGED
|
@@ -1,33 +1,68 @@
|
|
|
1
1
|
import { Amount } from '../core/amount.js';
|
|
2
2
|
import { Transaction } from '../core/transaction.js';
|
|
3
|
-
import { parseIsoDate } from '../util/dates.js';
|
|
4
|
-
import { FormatError } from '../util/errors.js';
|
|
3
|
+
import { germanDay, parseIsoDate, parseIsoMoment } from '../util/dates.js';
|
|
4
|
+
import { fail, FormatError } from '../util/errors.js';
|
|
5
5
|
import { parseXml } from '../util/xml.js';
|
|
6
|
+
import { RecordBudget } from './record-budget.js';
|
|
6
7
|
import { providedReference, SepaPurpose } from './sepa-purpose.js';
|
|
7
|
-
/**
|
|
8
|
+
/** Local names of the elements of a document that hold the entries of one account. */
|
|
9
|
+
const statementNames = new Set(['Rpt', 'Stmt', 'Ntfctn']);
|
|
10
|
+
/** Parser for ISO 20022 camt.052, camt.053 and camt.054 account reports, statements and notifications. */
|
|
8
11
|
export const Camt = Object.freeze({
|
|
9
12
|
/**
|
|
10
|
-
* Parses
|
|
11
|
-
*
|
|
13
|
+
* Parses the transactions of all statements in one list, which does not tell the account of each: a document may hold
|
|
14
|
+
* statements of several accounts, which `parse` keeps apart. Throws as `parse` does.
|
|
15
|
+
*/
|
|
16
|
+
parseTransactions(xml, status) {
|
|
17
|
+
return Camt.parse(xml, status).flatMap((s) => [...s.transactions]);
|
|
18
|
+
},
|
|
19
|
+
/**
|
|
20
|
+
* Parses all statements, each with the account it is for. Throws `FormatError` for malformed XML, for a document
|
|
21
|
+
* without any statement, for an entry without amount, currency, credit/debit indicator or date, for a date it cannot
|
|
22
|
+
* read, and for more than 200,000 statements and transactions.
|
|
12
23
|
*
|
|
13
24
|
* `status` overrides the booking status stated in the entries.
|
|
14
25
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return root.descendantsNamed('Ntry').flatMap((entry) => new CamtEntry(entry, status).transactions());
|
|
26
|
+
parse(xml, status) {
|
|
27
|
+
return parseCamt(xml, status, new RecordBudget());
|
|
18
28
|
},
|
|
19
29
|
});
|
|
30
|
+
/** `Camt.parse`, which takes each statement and transaction from `budget`, before it builds it. */
|
|
31
|
+
export function parseCamt(xml, status, budget) {
|
|
32
|
+
const root = parseXml(xml.trim());
|
|
33
|
+
const statements = root.childElements.flatMap((message) => message.childElements.filter((c) => statementNames.has(c.localName)));
|
|
34
|
+
if (statements.length === 0)
|
|
35
|
+
throw new FormatError('camt document without report, statement or notification');
|
|
36
|
+
return statements.map((statement) => {
|
|
37
|
+
budget.take();
|
|
38
|
+
const account = statement.child('Acct');
|
|
39
|
+
const entries = statement.childrenNamed('Ntry');
|
|
40
|
+
return Object.freeze({
|
|
41
|
+
reference: statement.textAt(['Id']),
|
|
42
|
+
accountId: account?.textAt(['Id', 'IBAN']) ?? account?.textAt(['Id', 'Othr', 'Id']),
|
|
43
|
+
currency: account?.textAt(['Ccy']),
|
|
44
|
+
transactions: Object.freeze(entries.flatMap((entry) => new CamtEntry(entry, status, budget).transactions())),
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
20
48
|
/** Width of the purpose lines banks cut the remittance information into, as in MT940 and DTAUS. */
|
|
21
49
|
const cutLineLength = 35;
|
|
22
50
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
51
|
+
* The SEPA keywords of `purposeCodes` that count only where the bank states them apart, as `endToEndId`, `mandateId`
|
|
52
|
+
* and `creditorId`: in the remittance text, which the payer or the payee writes, a creditor ID or mandate reference
|
|
53
|
+
* could be that of a creditor the app trusts.
|
|
54
|
+
*/
|
|
55
|
+
const keywordsStatedApart = new Set(['EREF', 'MREF', 'CRED']);
|
|
56
|
+
/**
|
|
57
|
+
* One booking (`Ntry`) of a report; a batch booking yields one transaction per transaction detail (`TxDtls`) when the
|
|
58
|
+
* details state their amounts and these add up to the booked amount.
|
|
25
59
|
*
|
|
26
60
|
* Nothing is guessed: what the entry lacks, and what the reader needs, is a `FormatError`. The one exception is the
|
|
27
61
|
* value date, which `Transaction.valueDate` requires: an entry with a booking date only takes that.
|
|
28
62
|
*/
|
|
29
63
|
class CamtEntry {
|
|
30
64
|
entry;
|
|
65
|
+
budget;
|
|
31
66
|
amountElement;
|
|
32
67
|
currency;
|
|
33
68
|
debit;
|
|
@@ -35,10 +70,13 @@ class CamtEntry {
|
|
|
35
70
|
status;
|
|
36
71
|
bookingDate;
|
|
37
72
|
valueDate;
|
|
73
|
+
bookingText;
|
|
74
|
+
bankReference;
|
|
38
75
|
/** German banks send `transaction type+GVC+prima nota`, for example `NDDT+105+9310`. */
|
|
39
76
|
proprietaryCode;
|
|
40
|
-
constructor(entry, forcedStatus) {
|
|
77
|
+
constructor(entry, forcedStatus, budget) {
|
|
41
78
|
this.entry = entry;
|
|
79
|
+
this.budget = budget;
|
|
42
80
|
this.amountElement = entry.child('Amt') ?? fail('camt entry without amount');
|
|
43
81
|
this.currency = this.amountElement.getAttribute('Ccy') ?? fail('camt amount without currency');
|
|
44
82
|
this.debit = debitIndicator(entry.textAt(['CdtDbtInd'])) ?? fail('camt entry without credit/debit indicator');
|
|
@@ -46,6 +84,8 @@ class CamtEntry {
|
|
|
46
84
|
this.status = forcedStatus ?? this.statusOfEntry();
|
|
47
85
|
this.bookingDate = dateOf(entry.child('BookgDt'));
|
|
48
86
|
this.valueDate = dateOf(entry.child('ValDt')) ?? this.bookingDate ?? fail('camt entry without date');
|
|
87
|
+
this.bookingText = entry.textAt(['AddtlNtryInf']);
|
|
88
|
+
this.bankReference = entry.textAt(['AcctSvcrRef']);
|
|
49
89
|
this.proprietaryCode = entry.textAt(['BkTxCd', 'Prtry', 'Cd'])?.split('+') ?? [];
|
|
50
90
|
}
|
|
51
91
|
statusOfEntry() {
|
|
@@ -53,42 +93,49 @@ class CamtEntry {
|
|
|
53
93
|
return code === 'PDNG' || code === 'INFO' ? 'pending' : 'booked';
|
|
54
94
|
}
|
|
55
95
|
transactions() {
|
|
56
|
-
const total =
|
|
57
|
-
const details = this.entry.
|
|
96
|
+
const total = amountOf(this.amountElement, this.currency);
|
|
97
|
+
const details = this.entry.childrenNamed('NtryDtls').flatMap((d) => d.childrenNamed('TxDtls'));
|
|
58
98
|
if (details.length <= 1)
|
|
59
99
|
return [this.transaction(details[0], total, this.debit)];
|
|
100
|
+
// A batch is split only into details that make up its booking: each states its amount, and they add up to the
|
|
101
|
+
// booked one, in its currency. It stays one booking otherwise, without the details of any one of them, which would
|
|
102
|
+
// describe the others wrongly.
|
|
103
|
+
const booking = this.transaction(undefined, total, this.debit);
|
|
60
104
|
const amounts = details.map((detail) => detail.at(['AmtDtls', 'TxAmt', 'Amt']) ?? detail.child('Amt'));
|
|
61
|
-
// Without the amount of every detail the batch cannot be split. It stays one booking then, without the details of
|
|
62
|
-
// any one of them, which would describe the others wrongly.
|
|
63
105
|
if (amounts.includes(undefined))
|
|
64
|
-
return [
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
debitIndicator(detail.textAt(['CdtDbtInd'])) ?? this.debit);
|
|
70
|
-
});
|
|
106
|
+
return [booking];
|
|
107
|
+
const split = details.map((detail, i) => this.transaction(detail, amountOf(amounts[i], this.currency),
|
|
108
|
+
// A detail may book in the other direction than the batch as a whole.
|
|
109
|
+
debitIndicator(detail.textAt(['CdtDbtInd'])) ?? this.debit));
|
|
110
|
+
return addUpTo(split, booking) ? split : [booking];
|
|
71
111
|
}
|
|
72
112
|
/** A transaction of `amount`, booked as a debit if `debit`, with what `details` tell about it. */
|
|
73
113
|
transaction(details, amount, debit) {
|
|
114
|
+
this.budget.take();
|
|
74
115
|
const parties = details?.child('RltdPties');
|
|
75
116
|
const agents = details?.child('RltdAgts');
|
|
76
117
|
// The related parties describe the original operation, which a reversal books the other way round (ISO 20022
|
|
77
118
|
// `RvslInd`: with `CRDT` the original operation was a debit, with `DBIT` a credit).
|
|
78
119
|
const originalDebit = debit !== this.reversal;
|
|
79
120
|
const counterparty = originalDebit ? 'Cdtr' : 'Dbtr';
|
|
80
|
-
const lines = (details?.
|
|
81
|
-
.map((line) => line.innerText
|
|
82
|
-
.filter((text) => text !== '');
|
|
83
|
-
|
|
84
|
-
|
|
121
|
+
const lines = (details?.child('RmtInf')?.childrenNamed('Ustrd') ?? [])
|
|
122
|
+
.map((line) => line.innerText)
|
|
123
|
+
.filter((text) => text.trim() !== '');
|
|
124
|
+
// A line of 35 characters goes on in the next one as it is, maybe in the middle of a word or before a blank; any
|
|
125
|
+
// other line ends a phrase, which the next one follows after a blank.
|
|
126
|
+
const cut = (i) => lines[i]?.length === cutLineLength;
|
|
127
|
+
const purposeParts = lines.map((line, i) => {
|
|
128
|
+
const part = cut(i) ? line : line.trimEnd();
|
|
129
|
+
return i === 0 || cut(i - 1) ? part : ` ${part.trimStart()}`;
|
|
130
|
+
});
|
|
131
|
+
const purpose = purposeParts.join('').trim();
|
|
85
132
|
const keywords = SepaPurpose.parseParts(purposeParts);
|
|
86
133
|
const endToEndId = providedReference(details?.textAt(['Refs', 'EndToEndId']));
|
|
87
134
|
const mandateId = details?.textAt(['Refs', 'MndtId']);
|
|
88
|
-
const creditorId = creditorIdOf(parties);
|
|
135
|
+
const creditorId = creditorIdOf(parties?.child('Cdtr'));
|
|
89
136
|
const purposeCode = details?.textAt(['Purp', 'Cd']);
|
|
90
137
|
const typeId = this.proprietaryCode[0]?.length === 4 ? this.proprietaryCode[0] : undefined;
|
|
91
|
-
const purposeCodes = new Map(keywords);
|
|
138
|
+
const purposeCodes = new Map([...keywords].filter(([keyword]) => !keywordsStatedApart.has(keyword)));
|
|
92
139
|
if (endToEndId !== undefined)
|
|
93
140
|
purposeCodes.set('EREF', endToEndId);
|
|
94
141
|
if (mandateId !== undefined)
|
|
@@ -103,7 +150,7 @@ class CamtEntry {
|
|
|
103
150
|
valueDate: this.valueDate,
|
|
104
151
|
amount: debit ? amount.negate() : amount,
|
|
105
152
|
isReversal: this.reversal,
|
|
106
|
-
bookingText: this.
|
|
153
|
+
bookingText: this.bookingText ?? details?.textAt(['AddtlTxInf']),
|
|
107
154
|
purpose: keywords.get('SVWZ') ?? (purpose === '' ? details?.textAt(['AddtlTxInf']) : purpose),
|
|
108
155
|
counterpartyName: partyName(parties?.child(counterparty)),
|
|
109
156
|
counterpartyIban: parties?.child(`${counterparty}Acct`)?.textAt(['Id', 'IBAN']),
|
|
@@ -113,7 +160,7 @@ class CamtEntry {
|
|
|
113
160
|
mandateId,
|
|
114
161
|
creditorId,
|
|
115
162
|
customerReference: details?.textAt(['Refs', 'InstrId']) ?? details?.textAt(['Refs', 'PmtInfId']),
|
|
116
|
-
bankReference: details?.textAt(['Refs', 'AcctSvcrRef']) ?? this.
|
|
163
|
+
bankReference: details?.textAt(['Refs', 'AcctSvcrRef']) ?? this.bankReference,
|
|
117
164
|
transactionCode: this.proprietaryCode[1],
|
|
118
165
|
transactionTypeId: typeId,
|
|
119
166
|
primaNota: this.proprietaryCode[2],
|
|
@@ -123,8 +170,32 @@ class CamtEntry {
|
|
|
123
170
|
});
|
|
124
171
|
}
|
|
125
172
|
}
|
|
126
|
-
|
|
127
|
-
|
|
173
|
+
/**
|
|
174
|
+
* The amount `element` states, in its currency or else in `currency`; throws `FormatError` for a negative one, whose
|
|
175
|
+
* sign the credit/debit indicator would turn: the indicator alone gives the direction.
|
|
176
|
+
*/
|
|
177
|
+
function amountOf(element, currency) {
|
|
178
|
+
const amount = Amount.parseDecimal(element.innerText, element.getAttribute('Ccy') ?? currency);
|
|
179
|
+
if (amount.isNegative)
|
|
180
|
+
throw new FormatError('Negative camt amount', element.innerText);
|
|
181
|
+
return amount;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Whether the amounts of `parts` add up to that of `whole`, in its currency; amounts whose sum an `Amount` cannot hold
|
|
185
|
+
* do not.
|
|
186
|
+
*/
|
|
187
|
+
function addUpTo(parts, whole) {
|
|
188
|
+
const total = whole.amount;
|
|
189
|
+
if (parts.some((part) => part.amount.currency !== total.currency))
|
|
190
|
+
return false;
|
|
191
|
+
try {
|
|
192
|
+
return parts.reduce((sum, part) => sum.add(part.amount), new Amount(0, 0, total.currency)).equals(total);
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
if (error instanceof RangeError)
|
|
196
|
+
return false;
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
128
199
|
}
|
|
129
200
|
/** `true` for `DBIT`, `false` for `CRDT`, `undefined` if `indicator` is missing; throws for any other value. */
|
|
130
201
|
function debitIndicator(indicator) {
|
|
@@ -139,8 +210,19 @@ function debitIndicator(indicator) {
|
|
|
139
210
|
throw new FormatError('camt credit/debit indicator is neither CRDT nor DBIT', indicator);
|
|
140
211
|
}
|
|
141
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* The calendar date of `e`: its date (`Dt`), or the German day of its date and time (`DtTm`), which may be stated in
|
|
215
|
+
* UTC or another offset; `undefined` if it states neither. Throws `FormatError` for one it cannot read, which would
|
|
216
|
+
* pass for a missing one otherwise, such as a value date the booking date stands in for.
|
|
217
|
+
*/
|
|
142
218
|
function dateOf(e) {
|
|
143
|
-
|
|
219
|
+
const date = e?.textAt(['Dt']);
|
|
220
|
+
if (date !== undefined)
|
|
221
|
+
return parseIsoDate(date) ?? fail('Unreadable camt date', date);
|
|
222
|
+
const dateTime = e?.textAt(['DtTm']);
|
|
223
|
+
if (dateTime === undefined)
|
|
224
|
+
return undefined;
|
|
225
|
+
return germanDay(parseIsoMoment(dateTime) ?? fail('Unreadable camt date', dateTime));
|
|
144
226
|
}
|
|
145
227
|
function partyName(party) {
|
|
146
228
|
return party?.textAt(['Nm']) ?? party?.textAt(['Pty', 'Nm']);
|
|
@@ -148,12 +230,13 @@ function partyName(party) {
|
|
|
148
230
|
function bicOf(agent) {
|
|
149
231
|
return agent?.textAt(['FinInstnId', 'BIC']) ?? agent?.textAt(['FinInstnId', 'BICFI']);
|
|
150
232
|
}
|
|
151
|
-
/**
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
233
|
+
/**
|
|
234
|
+
* The SEPA creditor identifier of the `creditor`: its private `Othr` identification in the scheme `SEPA`. The other
|
|
235
|
+
* parties' identifications are the creditor's or the debtor's to choose, and may be in that scheme as well.
|
|
236
|
+
*/
|
|
237
|
+
function creditorIdOf(creditor) {
|
|
238
|
+
const identifications = creditor?.at(['Id', 'PrvtId']) ?? creditor?.at(['Pty', 'Id', 'PrvtId']);
|
|
239
|
+
const sepa = identifications?.childrenNamed('Othr').find((other) => other.textAt(['SchmeNm', 'Prtry']) === 'SEPA');
|
|
240
|
+
return sepa?.textAt(['Id']);
|
|
158
241
|
}
|
|
159
242
|
//# sourceMappingURL=camt.js.map
|
package/dist/formats/camt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camt.js","sourceRoot":"","sources":["../../src/formats/camt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"camt.js","sourceRoot":"","sources":["../../src/formats/camt.ts"],"names":[],"mappings":"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"}
|
package/dist/formats/mt940.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Amount } from '../core/amount.js';
|
|
2
2
|
import { Transaction, type TransactionStatus } from '../core/transaction.js';
|
|
3
|
+
import { RecordBudget } from './record-budget.js';
|
|
3
4
|
/** One statement from an MT940 or MT942 file, with its balances and transactions. */
|
|
4
5
|
export interface Mt940Statement {
|
|
5
6
|
/** The sender's reference of the statement (field 20). */
|
|
@@ -18,7 +19,10 @@ export interface Mt940Statement {
|
|
|
18
19
|
readonly closingBalance: Amount | undefined;
|
|
19
20
|
/** The date of `closingBalance`. */
|
|
20
21
|
readonly closingDate: Date | undefined;
|
|
21
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* The transactions of the statement, in the order the bank lists them; they lead from `openingBalance` to
|
|
24
|
+
* `closingBalance` where the statement states these.
|
|
25
|
+
*/
|
|
22
26
|
readonly transactions: readonly Transaction[];
|
|
23
27
|
}
|
|
24
28
|
/** What the MT940 parser takes besides the text. */
|
|
@@ -33,10 +37,18 @@ export declare const Mt940: Readonly<{
|
|
|
33
37
|
/** Parses all transactions; see `parse`. */
|
|
34
38
|
parseTransactions(text: string, options?: Mt940Options): Transaction[];
|
|
35
39
|
/**
|
|
36
|
-
* Parses all statements.
|
|
40
|
+
* Parses all statements. Their lines are separated by line breaks, and by `@@` as well where the first line holds it,
|
|
41
|
+
* as some banks separate them.
|
|
37
42
|
*
|
|
38
|
-
* Throws `FormatError` if a transaction line (`:61:`) cannot be read or
|
|
43
|
+
* Throws `FormatError` for text without any field, and if a transaction line (`:61:`) or a balance cannot be read or
|
|
44
|
+
* the currency of a transaction is unknown. It does as well for a statement that states only one of its opening and
|
|
45
|
+
* closing balances, one of them, its account or its number twice, or transactions that do not lead from the one
|
|
46
|
+
* balance to the other: a line of a purpose that starts like a field, such as `:61:` or `:25:`, would pass for a
|
|
47
|
+
* transaction, the account or a statement of its own otherwise. Text of more than 200,000 statements and
|
|
48
|
+
* transactions is a `FormatError` as well.
|
|
39
49
|
*/
|
|
40
50
|
parse(text: string, options?: Mt940Options): Mt940Statement[];
|
|
41
51
|
}>;
|
|
52
|
+
/** `Mt940.parse`, which takes each statement and transaction from `budget`, before it builds it. */
|
|
53
|
+
export declare function parseMt940(text: string, options: Mt940Options, budget: RecordBudget): Mt940Statement[];
|
|
42
54
|
//# sourceMappingURL=mt940.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mt940.d.ts","sourceRoot":"","sources":["../../src/formats/mt940.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"mt940.d.ts","sourceRoot":"","sources":["../../src/formats/mt940.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,iDAAiD;IACjD,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,gGAAgG;IAChG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,oCAAoC;IACpC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC;IACvC,gFAAgF;IAChF,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,oCAAoC;IACpC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;CAC/C;AAED,oDAAoD;AACpD,MAAM,WAAW,YAAY;IAC3B,0FAA0F;IAC1F,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAID,0FAA0F;AAC1F,eAAO,MAAM,KAAK;IAChB,4CAA4C;4BACpB,MAAM,YAAW,YAAY,GAAQ,WAAW,EAAE;IAI1E;;;;;;;;;;OAUG;gBACS,MAAM,YAAW,YAAY,GAAQ,cAAc,EAAE;EAGjE,CAAC;AAEH,oGAAoG;AACpG,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,cAAc,EAAE,CAiBtG"}
|