@coderoftime/fints 0.1.0 → 0.3.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 +519 -1
- package/README.md +138 -40
- package/dist/client.d.ts +49 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +242 -0
- package/dist/client.js.map +1 -0
- package/dist/core/account.d.ts +46 -7
- package/dist/core/account.d.ts.map +1 -1
- package/dist/core/account.js +143 -24
- package/dist/core/account.js.map +1 -1
- package/dist/core/amount.d.ts +15 -4
- package/dist/core/amount.d.ts.map +1 -1
- package/dist/core/amount.js +46 -9
- package/dist/core/amount.js.map +1 -1
- package/dist/core/balance.d.ts +4 -0
- package/dist/core/balance.d.ts.map +1 -1
- package/dist/core/balance.js +11 -5
- package/dist/core/balance.js.map +1 -1
- package/dist/core/bank-info.d.ts +21 -4
- package/dist/core/bank-info.d.ts.map +1 -1
- package/dist/core/bank-info.js +26 -5
- package/dist/core/bank-info.js.map +1 -1
- package/dist/core/client.d.ts +81 -19
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/config.d.ts +40 -20
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +85 -30
- package/dist/core/config.js.map +1 -1
- package/dist/core/errors.d.ts +100 -26
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +136 -53
- package/dist/core/errors.js.map +1 -1
- package/dist/core/feedback.d.ts +11 -1
- package/dist/core/feedback.d.ts.map +1 -1
- package/dist/core/feedback.js +14 -2
- package/dist/core/feedback.js.map +1 -1
- package/dist/core/transaction.d.ts +11 -1
- package/dist/core/transaction.d.ts.map +1 -1
- package/dist/core/transaction.js +21 -4
- package/dist/core/transaction.js.map +1 -1
- package/dist/core/transport.d.ts +48 -6
- package/dist/core/transport.d.ts.map +1 -1
- package/dist/core/transport.js +126 -29
- package/dist/core/transport.js.map +1 -1
- package/dist/formats/camt.d.ts +28 -5
- package/dist/formats/camt.d.ts.map +1 -1
- package/dist/formats/camt.js +132 -50
- package/dist/formats/camt.js.map +1 -1
- package/dist/formats/mt940.d.ts +29 -5
- package/dist/formats/mt940.d.ts.map +1 -1
- package/dist/formats/mt940.js +209 -113
- 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 +28 -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 +9 -0
- package/dist/formats/sepa-purpose.d.ts.map +1 -1
- package/dist/formats/sepa-purpose.js +32 -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 +11 -11
- package/dist/session/dialog-runner.d.ts.map +1 -1
- package/dist/session/dialog-runner.js +34 -19
- 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 +170 -83
- 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 +41 -24
- package/dist/session/session-setup.d.ts.map +1 -1
- package/dist/session/session-setup.js +106 -63
- package/dist/session/session-setup.js.map +1 -1
- package/dist/session/session-state.d.ts +10 -6
- package/dist/session/session-state.d.ts.map +1 -1
- package/dist/session/session-state.js +72 -18
- package/dist/session/session-state.js.map +1 -1
- package/dist/session/signed-dialog.d.ts +83 -0
- package/dist/session/signed-dialog.d.ts.map +1 -0
- package/dist/session/signed-dialog.js +185 -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 +14 -5
- package/dist/session/user-prompts.d.ts.map +1 -1
- package/dist/session/user-prompts.js +53 -18
- package/dist/session/user-prompts.js.map +1 -1
- package/dist/tan/challenge.d.ts +47 -24
- package/dist/tan/challenge.d.ts.map +1 -1
- package/dist/tan/challenge.js +56 -51
- package/dist/tan/challenge.js.map +1 -1
- package/dist/tan/flicker.d.ts +11 -1
- package/dist/tan/flicker.d.ts.map +1 -1
- package/dist/tan/flicker.js +70 -24
- package/dist/tan/flicker.js.map +1 -1
- package/dist/tan/tan-image.d.ts +6 -2
- package/dist/tan/tan-image.d.ts.map +1 -1
- package/dist/tan/tan-image.js +14 -6
- package/dist/tan/tan-image.js.map +1 -1
- package/dist/tan/tan-models.d.ts +14 -2
- package/dist/tan/tan-models.d.ts.map +1 -1
- package/dist/tan/tan-models.js +24 -7
- package/dist/tan/tan-models.js.map +1 -1
- package/dist/util/arguments.d.ts +13 -0
- package/dist/util/arguments.d.ts.map +1 -0
- package/dist/util/arguments.js +40 -0
- package/dist/util/arguments.js.map +1 -0
- package/dist/util/async.d.ts +4 -3
- package/dist/util/async.d.ts.map +1 -1
- package/dist/util/async.js +6 -7
- package/dist/util/async.js.map +1 -1
- package/dist/util/bytes.d.ts +3 -4
- package/dist/util/bytes.d.ts.map +1 -1
- package/dist/util/bytes.js +13 -21
- 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 +6 -20
- package/dist/util/dates.d.ts.map +1 -1
- package/dist/util/dates.js +58 -28
- package/dist/util/dates.js.map +1 -1
- package/dist/util/errors.d.ts +13 -3
- package/dist/util/errors.d.ts.map +1 -1
- package/dist/util/errors.js +19 -6
- package/dist/util/errors.js.map +1 -1
- package/dist/util/immutable-map.d.ts +5 -2
- package/dist/util/immutable-map.d.ts.map +1 -1
- package/dist/util/immutable-map.js +15 -12
- package/dist/util/immutable-map.js.map +1 -1
- package/dist/util/inspect.d.ts +11 -0
- package/dist/util/inspect.d.ts.map +1 -0
- package/dist/util/inspect.js +14 -0
- package/dist/util/inspect.js.map +1 -0
- 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 +38 -5
- package/dist/util/text.d.ts.map +1 -1
- package/dist/util/text.js +90 -16
- package/dist/util/text.js.map +1 -1
- package/dist/util/xml.d.ts +9 -6
- package/dist/util/xml.d.ts.map +1 -1
- package/dist/util/xml.js +129 -56
- 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 +54 -0
- package/dist/v3/bank-connection.d.ts.map +1 -0
- package/dist/v3/bank-connection.js +118 -0
- package/dist/v3/bank-connection.js.map +1 -0
- package/dist/v3/dialog.d.ts +84 -46
- package/dist/v3/dialog.d.ts.map +1 -1
- package/dist/v3/dialog.js +174 -60
- package/dist/v3/dialog.js.map +1 -1
- package/dist/v3/message.d.ts +32 -11
- package/dist/v3/message.d.ts.map +1 -1
- package/dist/v3/message.js +144 -83
- package/dist/v3/message.js.map +1 -1
- package/dist/v3/parameter-store.d.ts +111 -0
- package/dist/v3/parameter-store.d.ts.map +1 -0
- package/dist/v3/parameter-store.js +197 -0
- package/dist/v3/parameter-store.js.map +1 -0
- package/dist/v3/parameters.d.ts +44 -17
- package/dist/v3/parameters.d.ts.map +1 -1
- package/dist/v3/parameters.js +136 -60
- package/dist/v3/parameters.js.map +1 -1
- package/dist/v3/protocol.d.ts +50 -50
- package/dist/v3/protocol.d.ts.map +1 -1
- package/dist/v3/protocol.js +91 -210
- 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 +128 -0
- package/dist/v3/queries.js.map +1 -0
- package/dist/v3/segments.d.ts +43 -19
- package/dist/v3/segments.d.ts.map +1 -1
- package/dist/v3/segments.js +84 -33
- package/dist/v3/segments.js.map +1 -1
- package/dist/v3/syntax.d.ts +68 -13
- package/dist/v3/syntax.d.ts.map +1 -1
- package/dist/v3/syntax.js +183 -102
- package/dist/v3/syntax.js.map +1 -1
- package/package.json +10 -6
- package/src/client.ts +293 -0
- package/src/core/account.ts +153 -24
- package/src/core/amount.ts +45 -10
- package/src/core/balance.ts +12 -5
- package/src/core/bank-info.ts +29 -5
- package/src/core/client.ts +83 -19
- package/src/core/config.ts +95 -35
- package/src/core/errors.ts +148 -54
- package/src/core/feedback.ts +16 -2
- package/src/core/transaction.ts +22 -4
- package/src/core/transport.ts +153 -32
- package/src/formats/camt.ts +153 -45
- package/src/formats/mt940.ts +244 -122
- package/src/formats/readers.ts +28 -31
- package/src/formats/record-budget.ts +18 -0
- package/src/formats/sepa-purpose.ts +29 -2
- package/src/index.ts +4 -2
- package/src/session/app-approval.ts +51 -38
- package/src/session/dialog-runner.ts +61 -31
- package/src/session/login-guard.ts +189 -87
- package/src/session/sepa-accounts.ts +63 -45
- package/src/session/session-setup.ts +105 -68
- package/src/session/session-state.ts +74 -23
- package/src/session/signed-dialog.ts +222 -0
- package/src/session/tan-selection.ts +50 -39
- package/src/session/user-prompts.ts +62 -18
- package/src/tan/challenge.ts +87 -64
- package/src/tan/flicker.ts +72 -23
- package/src/tan/tan-image.ts +15 -6
- package/src/tan/tan-models.ts +26 -7
- package/src/util/arguments.ts +40 -0
- package/src/util/async.ts +10 -9
- package/src/util/bytes.ts +14 -20
- package/src/util/call-context.ts +3 -2
- package/src/util/dates.ts +64 -33
- package/src/util/errors.ts +22 -6
- package/src/util/immutable-map.ts +15 -12
- package/src/util/inspect.ts +14 -0
- package/src/util/json.ts +16 -0
- package/src/util/text.ts +87 -15
- package/src/util/xml.ts +130 -52
- package/src/v3/account-extension.ts +7 -12
- package/src/v3/bank-connection.ts +126 -0
- package/src/v3/dialog.ts +186 -92
- package/src/v3/message.ts +140 -79
- package/src/v3/parameter-store.ts +226 -0
- package/src/v3/parameters.ts +166 -66
- package/src/v3/protocol.ts +103 -253
- package/src/v3/queries.ts +198 -0
- package/src/v3/segments.ts +86 -31
- package/src/v3/syntax.ts +172 -93
- 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
package/dist/v3/segments.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { Account } from '../core/account.js';
|
|
2
2
|
import { Balance } from '../core/balance.js';
|
|
3
3
|
import { TanMedium } from '../tan/tan-models.js';
|
|
4
|
-
import { type Segment, SegmentSpec,
|
|
5
|
-
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
import { type Segment, SegmentSpec, Verbatim } from './syntax.js';
|
|
5
|
+
/**
|
|
6
|
+
* The filler the specification names for a reference that does not exist.
|
|
7
|
+
*
|
|
8
|
+
* The bank puts it into a dummy answer when no approval is needed. The client sends it as the TAN medium name in the
|
|
9
|
+
* dialog that looks up the TAN media, before it knows a medium; the bank ignores it there (PIN/TAN B.4.3.1.3).
|
|
10
|
+
*/
|
|
11
|
+
export declare const noReference = "noref";
|
|
12
|
+
/**
|
|
13
|
+
* Builders for the request segments the client sends. Values the bank issued, such as the customer system ID, the TAN
|
|
14
|
+
* order reference and the position to continue at, go back as `Verbatim`.
|
|
15
|
+
*/
|
|
12
16
|
export declare const Segments: Readonly<{
|
|
13
17
|
/** HKIDN: who is logging in, from which customer system. */
|
|
14
18
|
identification(parts: {
|
|
@@ -29,22 +33,31 @@ export declare const Segments: Readonly<{
|
|
|
29
33
|
/** HKSYN: requests a new customer system ID. */
|
|
30
34
|
synchronization(): SegmentSpec;
|
|
31
35
|
dialogEnd(dialogId: string): SegmentSpec;
|
|
32
|
-
/**
|
|
33
|
-
|
|
36
|
+
/**
|
|
37
|
+
* HKTAN process 4: asks for strong customer authentication of the `segmentType` sent in the same message, with the TAN
|
|
38
|
+
* medium `mediumName`: a `Verbatim` where it has to go back as the bank sent it (`ParameterStore.tanMediumToSend`).
|
|
39
|
+
*/
|
|
40
|
+
tanProcess4(version: number, segmentType: string, mediumName?: string | Verbatim): SegmentSpec;
|
|
34
41
|
/** HKTAN process 2: submits the TAN (carried in the signature) for the order with `reference`. */
|
|
35
42
|
tanProcess2(version: number, reference: string): SegmentSpec;
|
|
36
43
|
/** HKTAN process S: asks whether the order with `reference` was approved in the banking app. */
|
|
37
44
|
tanProcessStatus(version: number, reference: string): SegmentSpec;
|
|
38
|
-
/**
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
45
|
+
/**
|
|
46
|
+
* HKSAL: the balance of one account (not of all accounts), named by its national account as well where
|
|
47
|
+
* `nationalAllowed` (HISPAS).
|
|
48
|
+
*/
|
|
49
|
+
balance(version: number, account: Account, nationalAllowed: boolean, continuation?: string): SegmentSpec;
|
|
50
|
+
/** HKKAZ: MT940 transactions of one account, named by its national account as well where `nationalAllowed`. */
|
|
51
|
+
transactionsMt940(version: number, account: Account, nationalAllowed: boolean, period: {
|
|
42
52
|
from?: Date | undefined;
|
|
43
53
|
to?: Date | undefined;
|
|
44
54
|
continuation?: string | undefined;
|
|
45
55
|
}): SegmentSpec;
|
|
46
|
-
/**
|
|
47
|
-
|
|
56
|
+
/**
|
|
57
|
+
* HKCAZ: camt transactions of one account in one of `formats`, named by its national account as well where
|
|
58
|
+
* `nationalAllowed`.
|
|
59
|
+
*/
|
|
60
|
+
transactionsCamt(version: number, account: Account, nationalAllowed: boolean, formats: readonly string[], period: {
|
|
48
61
|
from?: Date | undefined;
|
|
49
62
|
to?: Date | undefined;
|
|
50
63
|
continuation?: string | undefined;
|
|
@@ -58,6 +71,7 @@ export declare const Segments: Readonly<{
|
|
|
58
71
|
export declare class TanResponse {
|
|
59
72
|
/** The TAN process the segment answers: `4` asks for an approval, `S` answers a status request. */
|
|
60
73
|
readonly process: string | undefined;
|
|
74
|
+
/** The order reference, as `Segment.verbatim` reads it, to send back byte for byte. */
|
|
61
75
|
readonly reference: string | undefined;
|
|
62
76
|
readonly challenge: string | undefined;
|
|
63
77
|
readonly hhdUc: Uint8Array | undefined;
|
|
@@ -65,7 +79,9 @@ export declare class TanResponse {
|
|
|
65
79
|
readonly mediumName: string | undefined;
|
|
66
80
|
constructor(
|
|
67
81
|
/** The TAN process the segment answers: `4` asks for an approval, `S` answers a status request. */
|
|
68
|
-
process: string | undefined,
|
|
82
|
+
process: string | undefined,
|
|
83
|
+
/** The order reference, as `Segment.verbatim` reads it, to send back byte for byte. */
|
|
84
|
+
reference: string | undefined, challenge: string | undefined, hhdUc: Uint8Array | undefined, validUntil: Date | undefined, mediumName: string | undefined);
|
|
69
85
|
static parse(s: Segment): TanResponse;
|
|
70
86
|
/** Whether the bank needs no approval although it answered with a TAN segment. */
|
|
71
87
|
get isDummy(): boolean;
|
|
@@ -79,11 +95,19 @@ export declare function parseBalance(s: Segment, account: Account): Balance;
|
|
|
79
95
|
* The account a balance (HISAL) belongs to: international (IBAN, BIC, then national) from version 7, national before.
|
|
80
96
|
*/
|
|
81
97
|
export declare function balanceAccount(s: Segment): Account;
|
|
98
|
+
/** The account camt transactions (HICAZ) belong to, which the first element names (international). */
|
|
99
|
+
export declare function camtAccount(s: Segment): Account;
|
|
82
100
|
/**
|
|
83
101
|
* Parses the SEPA account list (HISPA), one account per data element. An account the bank marks as no payment account
|
|
84
102
|
* ("Kontoverwendung SEPA" N) is left out: it has no SEPA connection.
|
|
85
103
|
*/
|
|
86
104
|
export declare function parseSepaAccounts(s: Segment, defaultCountry: string, defaultBank: string): Account[];
|
|
87
|
-
/**
|
|
88
|
-
|
|
105
|
+
/**
|
|
106
|
+
* Parses the TAN media list (HITAB versions 4 and 5, PIN/TAN "TAN-Medium-Liste").
|
|
107
|
+
*
|
|
108
|
+
* Each name whose text would not go back as the bank sent it goes into `namesAsSent` as `Segment.verbatim` reads it,
|
|
109
|
+
* keyed by its text: a name in UTF-8, which its text does not tell where it fits ISO 8859-1, and one with blanks at
|
|
110
|
+
* either end, which text goes out without (Formals B.4.1).
|
|
111
|
+
*/
|
|
112
|
+
export declare function parseTanMedia(s: Segment, namesAsSent?: Map<string, string>): TanMedium[];
|
|
89
113
|
//# sourceMappingURL=segments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"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"}
|
package/dist/v3/segments.js
CHANGED
|
@@ -2,22 +2,33 @@
|
|
|
2
2
|
import { Account } from '../core/account.js';
|
|
3
3
|
import { Amount, withMark } from '../core/amount.js';
|
|
4
4
|
import { Balance } from '../core/balance.js';
|
|
5
|
-
import { noReference } from '../session/protocol.js';
|
|
6
5
|
import { TanMedium, tanMediumStatusOf } from '../tan/tan-models.js';
|
|
7
6
|
import { formatFintsDate, parseFintsDate, parseFintsDateTime } from '../util/dates.js';
|
|
8
7
|
import { FormatError } from '../util/errors.js';
|
|
9
|
-
import {
|
|
8
|
+
import { trimBlanks } from '../util/text.js';
|
|
9
|
+
import { SegmentSpec, Verbatim } from './syntax.js';
|
|
10
|
+
/**
|
|
11
|
+
* The filler the specification names for a reference that does not exist.
|
|
12
|
+
*
|
|
13
|
+
* The bank puts it into a dummy answer when no approval is needed. The client sends it as the TAN medium name in the
|
|
14
|
+
* dialog that looks up the TAN media, before it knows a medium; the bank ignores it there (PIN/TAN B.4.3.1.3).
|
|
15
|
+
*/
|
|
16
|
+
export const noReference = 'noref';
|
|
10
17
|
/** Bank identification (KIK): country code and bank code. */
|
|
11
|
-
|
|
18
|
+
function bankIdentification(countryCode, bankCode) {
|
|
12
19
|
return [countryCode, bankCode];
|
|
13
20
|
}
|
|
14
21
|
/** National account (KTV): account number, sub-account and bank identification. */
|
|
15
|
-
|
|
22
|
+
function nationalAccount(a) {
|
|
16
23
|
return [a.accountNumber, a.subAccount, a.countryCode, a.bankCode];
|
|
17
24
|
}
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
25
|
+
/**
|
|
26
|
+
* International account (KTI): IBAN and BIC, then the national account where the bank allows it (HISPAS). An IBAN goes
|
|
27
|
+
* only with its BIC (Messages B.3.2): without one the national account names the account, where it has a number.
|
|
28
|
+
*/
|
|
29
|
+
function internationalAccount(a, nationalAllowed) {
|
|
30
|
+
const iban = a.bic !== undefined || a.accountNumber === undefined ? a.iban : undefined;
|
|
31
|
+
return [iban, a.bic, ...(nationalAllowed || iban === undefined ? nationalAccount(a) : [])];
|
|
21
32
|
}
|
|
22
33
|
function dateOrEmpty(date) {
|
|
23
34
|
return date === undefined ? undefined : formatFintsDate(date);
|
|
@@ -26,14 +37,17 @@ function dateOrEmpty(date) {
|
|
|
26
37
|
const orderReferenceField = 5;
|
|
27
38
|
const moreTansField = 6;
|
|
28
39
|
const tanMediumField = 11;
|
|
29
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Builders for the request segments the client sends. Values the bank issued, such as the customer system ID, the TAN
|
|
42
|
+
* order reference and the position to continue at, go back as `Verbatim`.
|
|
43
|
+
*/
|
|
30
44
|
export const Segments = Object.freeze({
|
|
31
45
|
/** HKIDN: who is logging in, from which customer system. */
|
|
32
46
|
identification(parts) {
|
|
33
47
|
return new SegmentSpec('HKIDN', 2, [
|
|
34
48
|
bankIdentification(parts.countryCode, parts.bankCode),
|
|
35
49
|
parts.customerId,
|
|
36
|
-
parts.systemId,
|
|
50
|
+
new Verbatim(parts.systemId),
|
|
37
51
|
parts.systemIdRequired ? 1 : 0,
|
|
38
52
|
]);
|
|
39
53
|
},
|
|
@@ -52,55 +66,72 @@ export const Segments = Object.freeze({
|
|
|
52
66
|
return new SegmentSpec('HKSYN', 3, [0]);
|
|
53
67
|
},
|
|
54
68
|
dialogEnd(dialogId) {
|
|
55
|
-
return new SegmentSpec('HKEND', 1, [dialogId]);
|
|
69
|
+
return new SegmentSpec('HKEND', 1, [new Verbatim(dialogId)]);
|
|
56
70
|
},
|
|
57
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* HKTAN process 4: asks for strong customer authentication of the `segmentType` sent in the same message, with the TAN
|
|
73
|
+
* medium `mediumName`: a `Verbatim` where it has to go back as the bank sent it (`ParameterStore.tanMediumToSend`).
|
|
74
|
+
*/
|
|
58
75
|
tanProcess4(version, segmentType, mediumName) {
|
|
59
76
|
return SegmentSpec.numbered('HKTAN', version, { 1: '4', 2: segmentType, [tanMediumField]: mediumName });
|
|
60
77
|
},
|
|
61
78
|
/** HKTAN process 2: submits the TAN (carried in the signature) for the order with `reference`. */
|
|
62
79
|
tanProcess2(version, reference) {
|
|
63
|
-
return SegmentSpec.numbered('HKTAN', version, {
|
|
80
|
+
return SegmentSpec.numbered('HKTAN', version, {
|
|
81
|
+
1: '2',
|
|
82
|
+
[orderReferenceField]: new Verbatim(reference),
|
|
83
|
+
[moreTansField]: false,
|
|
84
|
+
});
|
|
64
85
|
},
|
|
65
86
|
/** HKTAN process S: asks whether the order with `reference` was approved in the banking app. */
|
|
66
87
|
tanProcessStatus(version, reference) {
|
|
67
|
-
return SegmentSpec.numbered('HKTAN', version, {
|
|
88
|
+
return SegmentSpec.numbered('HKTAN', version, {
|
|
89
|
+
1: 'S',
|
|
90
|
+
[orderReferenceField]: new Verbatim(reference),
|
|
91
|
+
[moreTansField]: false,
|
|
92
|
+
});
|
|
68
93
|
},
|
|
69
|
-
/**
|
|
70
|
-
|
|
94
|
+
/**
|
|
95
|
+
* HKSAL: the balance of one account (not of all accounts), named by its national account as well where
|
|
96
|
+
* `nationalAllowed` (HISPAS).
|
|
97
|
+
*/
|
|
98
|
+
balance(version, account, nationalAllowed, continuation) {
|
|
71
99
|
return new SegmentSpec('HKSAL', version, [
|
|
72
|
-
version >= 7 ? internationalAccount(account) : nationalAccount(account),
|
|
100
|
+
version >= 7 ? internationalAccount(account, nationalAllowed) : nationalAccount(account),
|
|
73
101
|
false,
|
|
74
102
|
null,
|
|
75
|
-
continuation,
|
|
103
|
+
Verbatim.of(continuation),
|
|
76
104
|
]);
|
|
77
105
|
},
|
|
78
|
-
/** HKKAZ: MT940 transactions of one account
|
|
79
|
-
transactionsMt940(version, account, period) {
|
|
106
|
+
/** HKKAZ: MT940 transactions of one account, named by its national account as well where `nationalAllowed`. */
|
|
107
|
+
transactionsMt940(version, account, nationalAllowed, period) {
|
|
80
108
|
return new SegmentSpec('HKKAZ', version, [
|
|
81
|
-
version >= 7 ? internationalAccount(account) : nationalAccount(account),
|
|
109
|
+
version >= 7 ? internationalAccount(account, nationalAllowed) : nationalAccount(account),
|
|
82
110
|
false,
|
|
83
111
|
dateOrEmpty(period.from),
|
|
84
112
|
dateOrEmpty(period.to),
|
|
85
113
|
null,
|
|
86
|
-
period.continuation,
|
|
114
|
+
Verbatim.of(period.continuation),
|
|
87
115
|
]);
|
|
88
116
|
},
|
|
89
|
-
/**
|
|
90
|
-
|
|
117
|
+
/**
|
|
118
|
+
* HKCAZ: camt transactions of one account in one of `formats`, named by its national account as well where
|
|
119
|
+
* `nationalAllowed`.
|
|
120
|
+
*/
|
|
121
|
+
transactionsCamt(version, account, nationalAllowed, formats, period) {
|
|
91
122
|
return new SegmentSpec('HKCAZ', version, [
|
|
92
|
-
internationalAccount(account),
|
|
123
|
+
internationalAccount(account, nationalAllowed),
|
|
93
124
|
formats,
|
|
94
125
|
false,
|
|
95
126
|
dateOrEmpty(period.from),
|
|
96
127
|
dateOrEmpty(period.to),
|
|
97
128
|
null,
|
|
98
|
-
period.continuation,
|
|
129
|
+
Verbatim.of(period.continuation),
|
|
99
130
|
]);
|
|
100
131
|
},
|
|
101
132
|
/** HKSPA: IBAN and BIC of all accounts. */
|
|
102
133
|
sepaAccounts(version, continuation) {
|
|
103
|
-
return new SegmentSpec('HKSPA', version, [null, ...(version >= 2 ? [null, continuation] : [])]);
|
|
134
|
+
return new SegmentSpec('HKSPA', version, [null, ...(version >= 2 ? [null, Verbatim.of(continuation)] : [])]);
|
|
104
135
|
},
|
|
105
136
|
/** HKTAB: all TAN media of all classes. */
|
|
106
137
|
tanMedia(version) {
|
|
@@ -119,7 +150,9 @@ export class TanResponse {
|
|
|
119
150
|
mediumName;
|
|
120
151
|
constructor(
|
|
121
152
|
/** The TAN process the segment answers: `4` asks for an approval, `S` answers a status request. */
|
|
122
|
-
process,
|
|
153
|
+
process,
|
|
154
|
+
/** The order reference, as `Segment.verbatim` reads it, to send back byte for byte. */
|
|
155
|
+
reference, challenge, hhdUc, validUntil, mediumName) {
|
|
123
156
|
this.process = process;
|
|
124
157
|
this.reference = reference;
|
|
125
158
|
this.challenge = challenge;
|
|
@@ -128,7 +161,7 @@ export class TanResponse {
|
|
|
128
161
|
this.mediumName = mediumName;
|
|
129
162
|
}
|
|
130
163
|
static parse(s) {
|
|
131
|
-
return new TanResponse(s.text(Hitan.process), s.
|
|
164
|
+
return new TanResponse(s.text(Hitan.process), s.verbatim(Hitan.reference), s.text(Hitan.challenge), s.binary(Hitan.hhdUc), parseFintsDateTime(s.text(Hitan.validUntil, 0), s.text(Hitan.validUntil, 1)), s.text(Hitan.mediumName));
|
|
132
165
|
}
|
|
133
166
|
/** Whether the bank needs no approval although it answered with a TAN segment. */
|
|
134
167
|
get isDummy() {
|
|
@@ -198,8 +231,15 @@ export function parseBalance(s, account) {
|
|
|
198
231
|
* The account a balance (HISAL) belongs to: international (IBAN, BIC, then national) from version 7, national before.
|
|
199
232
|
*/
|
|
200
233
|
export function balanceAccount(s) {
|
|
201
|
-
|
|
202
|
-
|
|
234
|
+
return accountAt(s, Hisal.account, s.version >= 7);
|
|
235
|
+
}
|
|
236
|
+
/** The account camt transactions (HICAZ) belong to, which the first element names (international). */
|
|
237
|
+
export function camtAccount(s) {
|
|
238
|
+
return accountAt(s, 1, true);
|
|
239
|
+
}
|
|
240
|
+
/** The account at `index` of `s`: an `international` one (KTI), else a national one (KTV). */
|
|
241
|
+
function accountAt(s, index, international) {
|
|
242
|
+
const fields = s.texts(index);
|
|
203
243
|
const national = international ? 2 : 0;
|
|
204
244
|
return new Account({
|
|
205
245
|
iban: international ? fields[0] : undefined,
|
|
@@ -247,8 +287,14 @@ export function parseSepaAccounts(s, defaultCountry, defaultBank) {
|
|
|
247
287
|
* code, bank code), which shifts every field behind it.
|
|
248
288
|
*/
|
|
249
289
|
const accountWidth = 4;
|
|
250
|
-
/**
|
|
251
|
-
|
|
290
|
+
/**
|
|
291
|
+
* Parses the TAN media list (HITAB versions 4 and 5, PIN/TAN "TAN-Medium-Liste").
|
|
292
|
+
*
|
|
293
|
+
* Each name whose text would not go back as the bank sent it goes into `namesAsSent` as `Segment.verbatim` reads it,
|
|
294
|
+
* keyed by its text: a name in UTF-8, which its text does not tell where it fits ISO 8859-1, and one with blanks at
|
|
295
|
+
* either end, which text goes out without (Formals B.4.1).
|
|
296
|
+
*/
|
|
297
|
+
export function parseTanMedia(s, namesAsSent) {
|
|
252
298
|
// Version 5 adds the security function in front of the card number.
|
|
253
299
|
const version5 = s.version >= 5;
|
|
254
300
|
const cardNumber = version5 ? 3 : 2;
|
|
@@ -263,6 +309,11 @@ export function parseTanMedia(s) {
|
|
|
263
309
|
const mediumClass = fields[0];
|
|
264
310
|
if (mediumClass === undefined)
|
|
265
311
|
continue;
|
|
312
|
+
const name = fields[after + 3];
|
|
313
|
+
const nameAsSent = s.verbatim(i, after + 3);
|
|
314
|
+
if (name !== undefined && nameAsSent !== undefined && nameAsSent !== trimBlanks(name)) {
|
|
315
|
+
namesAsSent?.set(name, nameAsSent);
|
|
316
|
+
}
|
|
266
317
|
media.push(new TanMedium({
|
|
267
318
|
mediumClass,
|
|
268
319
|
status: tanMediumStatusOf(fields[1]),
|
|
@@ -271,7 +322,7 @@ export function parseTanMedia(s) {
|
|
|
271
322
|
cardSequenceNumber: fields[cardNumber + 1],
|
|
272
323
|
validFrom: parseFintsDate(fields[after]),
|
|
273
324
|
validUntil: parseFintsDate(fields[after + 1]),
|
|
274
|
-
name
|
|
325
|
+
name,
|
|
275
326
|
mobileNumberMasked: fields[after + 4],
|
|
276
327
|
mobileNumber: fields[after + 5],
|
|
277
328
|
lastUsed: parseFintsDate(fields[after + 13]),
|
package/dist/v3/segments.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"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"}
|
package/dist/v3/syntax.d.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* One (group) data element of a received segment: text or binary data, from `start` to `end` in `source`. A view or
|
|
3
|
+
* copy of its own would take more memory than most elements hold.
|
|
4
|
+
*/
|
|
2
5
|
export declare class DataElement {
|
|
3
|
-
readonly
|
|
6
|
+
private readonly source;
|
|
7
|
+
private readonly start;
|
|
8
|
+
private readonly end;
|
|
4
9
|
readonly isBinary: boolean;
|
|
10
|
+
/** Whether the text holds escape characters, which `bytes` leaves out. */
|
|
11
|
+
private readonly escaped;
|
|
5
12
|
private decoded;
|
|
6
|
-
constructor(
|
|
13
|
+
constructor(source: Uint8Array, start: number, end: number, isBinary: boolean,
|
|
14
|
+
/** Whether the text holds escape characters, which `bytes` leaves out. */
|
|
15
|
+
escaped?: boolean);
|
|
16
|
+
/** The binary data, or the text without escape characters. */
|
|
17
|
+
get bytes(): Uint8Array;
|
|
7
18
|
get isEmpty(): boolean;
|
|
8
19
|
get text(): string;
|
|
9
20
|
}
|
|
@@ -14,32 +25,64 @@ export declare class DataElement {
|
|
|
14
25
|
*/
|
|
15
26
|
export declare class Segment {
|
|
16
27
|
readonly elements: readonly (readonly DataElement[])[];
|
|
17
|
-
|
|
28
|
+
/** The bytes the segment was read from: `start` to `end` in `source`, terminator included. */
|
|
29
|
+
private readonly source;
|
|
30
|
+
private readonly start;
|
|
31
|
+
private readonly end;
|
|
32
|
+
private typeValue;
|
|
33
|
+
constructor(elements: readonly (readonly DataElement[])[],
|
|
34
|
+
/** The bytes the segment was read from: `start` to `end` in `source`, terminator included. */
|
|
35
|
+
source: Uint8Array, start: number, end: number);
|
|
18
36
|
get type(): string;
|
|
19
37
|
get version(): number;
|
|
20
38
|
get length(): number;
|
|
21
39
|
group(index: number): readonly DataElement[];
|
|
22
40
|
element(index: number, sub?: number): DataElement | undefined;
|
|
23
41
|
text(index: number, sub?: number): string | undefined;
|
|
42
|
+
/** The binary data at `index`; `undefined` for an element that holds text. */
|
|
24
43
|
binary(index: number, sub?: number): Uint8Array | undefined;
|
|
44
|
+
/** The binary data or the text without escape characters at `index`; `undefined` for an empty element. */
|
|
45
|
+
bytes(index: number, sub?: number): Uint8Array | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* The element at `index` as the bank sent it, for a value the client sends back, such as the dialog ID: untrimmed,
|
|
48
|
+
* and one character per byte (ISO 8859-1, the FinTS 3.0 character set), so that `Verbatim` gives the bank back the
|
|
49
|
+
* very bytes it sent, in whatever encoding. `undefined` for an empty element.
|
|
50
|
+
*/
|
|
51
|
+
verbatim(index: number, sub?: number): string | undefined;
|
|
25
52
|
integer(index: number, sub?: number): number | undefined;
|
|
26
53
|
/** The texts of the group at `index`; `undefined` for empty elements. */
|
|
27
54
|
texts(index: number): (string | undefined)[];
|
|
55
|
+
/** The bytes the segment was read from, as the bank sent them, terminator included. */
|
|
28
56
|
encode(): Uint8Array;
|
|
29
|
-
toString(): string;
|
|
30
57
|
}
|
|
31
58
|
/**
|
|
32
59
|
* Encodes `value` in ISO 8859-1, the FinTS 3.0 character set, or in UTF-8 where it does not fit: such text can only
|
|
33
|
-
* come from a bank that sends UTF-8, such as a TAN medium named `Max’s iPhone`.
|
|
34
|
-
* ISO 8859-1 up front.
|
|
60
|
+
* come from a bank that sends UTF-8, such as a TAN medium named `Max’s iPhone`. `FinTsConfig` checks the login data for
|
|
61
|
+
* ISO 8859-1 up front, and the client the PIN and the TAN.
|
|
62
|
+
*
|
|
63
|
+
* @internal Exported for the tests.
|
|
35
64
|
*/
|
|
36
65
|
export declare function encodeText(value: string): Uint8Array;
|
|
37
|
-
/**
|
|
38
|
-
|
|
66
|
+
/**
|
|
67
|
+
* The data elements and segments one parse may produce together, segment headers and group elements included: what
|
|
68
|
+
* the user parameter data of 6,000 accounts take, at about 155 data elements each, which is about what 9,999 KB, the
|
|
69
|
+
* largest message size HIBPA can state, hold of real data. Without a limit, a message of nothing but separators would
|
|
70
|
+
* take a hundred times its size in memory.
|
|
71
|
+
*
|
|
72
|
+
* @internal Exported for the tests.
|
|
73
|
+
*/
|
|
74
|
+
export declare const maxParts = 1000000;
|
|
75
|
+
/**
|
|
76
|
+
* What `IncomingMessage3.size` counts for each data element it keeps: more than any of them takes once parsed, so that
|
|
77
|
+
* a message of many short elements counts as the memory it holds rather than its bytes.
|
|
78
|
+
*/
|
|
79
|
+
export declare const parsedElementBytes = 512;
|
|
39
80
|
/**
|
|
40
81
|
* Splits a FinTS 3.0 message into segments, resolving escapes and binary data (`@length@bytes`).
|
|
41
82
|
*
|
|
42
|
-
* Throws `FormatError` for a
|
|
83
|
+
* The elements share the memory of `data`. Throws `FormatError` for anything a complete message cannot hold: a
|
|
84
|
+
* malformed binary length, binary data beyond the end of `data` or not followed by a separator, a last segment without
|
|
85
|
+
* terminator, and more than `maxParts` data elements and segments, an empty one included.
|
|
43
86
|
*/
|
|
44
87
|
export declare function parseSegments(data: Uint8Array): Segment[];
|
|
45
88
|
/** Binary data in a segment to send, written as `@length@bytes`. */
|
|
@@ -47,14 +90,26 @@ export declare class Binary {
|
|
|
47
90
|
readonly bytes: Uint8Array;
|
|
48
91
|
constructor(bytes: Uint8Array);
|
|
49
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* A value the bank issued, such as the dialog ID, to send back as `Segment.verbatim` reads it: escaped, but not
|
|
95
|
+
* trimmed, so that the bank gets back the very bytes it sent. Text from elsewhere, such as a TAN medium name the app
|
|
96
|
+
* passes, goes out as `encodeText` encodes it.
|
|
97
|
+
*/
|
|
98
|
+
export declare class Verbatim {
|
|
99
|
+
readonly text: string;
|
|
100
|
+
constructor(text: string);
|
|
101
|
+
/** `text` as a `Verbatim`; `undefined` stays empty. */
|
|
102
|
+
static of(text: string | undefined): Verbatim | undefined;
|
|
103
|
+
}
|
|
50
104
|
/** A value of a segment to send; see `SegmentSpec`. */
|
|
51
|
-
export type SegmentValue = string | number | boolean | Binary | null | undefined | readonly SegmentValue[];
|
|
105
|
+
export type SegmentValue = string | number | boolean | Binary | Verbatim | null | undefined | readonly SegmentValue[];
|
|
52
106
|
/**
|
|
53
107
|
* A segment to send.
|
|
54
108
|
*
|
|
55
109
|
* `elements` holds the data elements after the header: `null` or `undefined` for an empty element, an array for a data
|
|
56
|
-
* element group, a boolean for `J`/`N`, `Binary` for binary data
|
|
57
|
-
* trailing blanks. Trailing empty elements are left out, as the specification
|
|
110
|
+
* element group, a boolean for `J`/`N`, `Binary` for binary data, `Verbatim` for a value the bank issued, and anything
|
|
111
|
+
* else as its text, without leading and trailing blanks. Trailing empty elements are left out, as the specification
|
|
112
|
+
* asks.
|
|
58
113
|
*/
|
|
59
114
|
export declare class SegmentSpec {
|
|
60
115
|
readonly type: string;
|
package/dist/v3/syntax.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../src/v3/syntax.ts"],"names":[],"mappings":"AAuBA
|
|
1
|
+
{"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../src/v3/syntax.ts"],"names":[],"mappings":"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"}
|