@coderoftime/fints 0.2.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 +377 -0
- package/README.md +31 -23
- package/dist/client.d.ts +3 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +52 -9
- package/dist/client.js.map +1 -1
- package/dist/core/account.d.ts +15 -4
- package/dist/core/account.d.ts.map +1 -1
- package/dist/core/account.js +84 -36
- package/dist/core/account.js.map +1 -1
- package/dist/core/amount.d.ts +13 -3
- package/dist/core/amount.d.ts.map +1 -1
- package/dist/core/amount.js +42 -8
- package/dist/core/amount.js.map +1 -1
- package/dist/core/balance.d.ts +3 -0
- package/dist/core/balance.d.ts.map +1 -1
- package/dist/core/balance.js +5 -0
- package/dist/core/balance.js.map +1 -1
- package/dist/core/bank-info.d.ts +20 -3
- package/dist/core/bank-info.d.ts.map +1 -1
- package/dist/core/bank-info.js +25 -4
- package/dist/core/bank-info.js.map +1 -1
- package/dist/core/client.d.ts +42 -15
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/config.d.ts +15 -7
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +29 -14
- package/dist/core/config.js.map +1 -1
- package/dist/core/errors.d.ts +17 -5
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +25 -7
- package/dist/core/errors.js.map +1 -1
- package/dist/core/feedback.d.ts +7 -0
- package/dist/core/feedback.d.ts.map +1 -1
- package/dist/core/feedback.js +10 -1
- package/dist/core/feedback.js.map +1 -1
- package/dist/core/transaction.d.ts +5 -0
- package/dist/core/transaction.d.ts.map +1 -1
- package/dist/core/transaction.js +12 -0
- package/dist/core/transaction.js.map +1 -1
- package/dist/core/transport.d.ts +22 -7
- package/dist/core/transport.d.ts.map +1 -1
- package/dist/core/transport.js +51 -11
- package/dist/core/transport.js.map +1 -1
- package/dist/formats/camt.d.ts +7 -4
- package/dist/formats/camt.d.ts.map +1 -1
- package/dist/formats/camt.js +53 -54
- package/dist/formats/camt.js.map +1 -1
- package/dist/formats/mt940.d.ts +18 -6
- package/dist/formats/mt940.d.ts.map +1 -1
- package/dist/formats/mt940.js +83 -66
- package/dist/formats/mt940.js.map +1 -1
- package/dist/formats/readers.d.ts.map +1 -1
- package/dist/formats/readers.js +6 -2
- package/dist/formats/readers.js.map +1 -1
- package/dist/formats/sepa-purpose.d.ts +7 -4
- package/dist/formats/sepa-purpose.d.ts.map +1 -1
- package/dist/formats/sepa-purpose.js +18 -9
- package/dist/formats/sepa-purpose.js.map +1 -1
- package/dist/session/dialog-runner.d.ts +5 -2
- package/dist/session/dialog-runner.d.ts.map +1 -1
- package/dist/session/dialog-runner.js +23 -7
- package/dist/session/dialog-runner.js.map +1 -1
- package/dist/session/login-guard.d.ts +4 -4
- package/dist/session/login-guard.d.ts.map +1 -1
- package/dist/session/login-guard.js +29 -14
- package/dist/session/login-guard.js.map +1 -1
- package/dist/session/session-setup.d.ts +14 -5
- package/dist/session/session-setup.d.ts.map +1 -1
- package/dist/session/session-setup.js +30 -9
- package/dist/session/session-setup.js.map +1 -1
- package/dist/session/session-state.d.ts +4 -3
- package/dist/session/session-state.d.ts.map +1 -1
- package/dist/session/session-state.js +28 -9
- package/dist/session/session-state.js.map +1 -1
- package/dist/session/signed-dialog.d.ts +19 -13
- package/dist/session/signed-dialog.d.ts.map +1 -1
- package/dist/session/signed-dialog.js +45 -30
- package/dist/session/signed-dialog.js.map +1 -1
- package/dist/session/user-prompts.d.ts +6 -1
- package/dist/session/user-prompts.d.ts.map +1 -1
- package/dist/session/user-prompts.js +19 -4
- package/dist/session/user-prompts.js.map +1 -1
- package/dist/tan/challenge.d.ts +15 -13
- package/dist/tan/challenge.d.ts.map +1 -1
- package/dist/tan/challenge.js +32 -26
- package/dist/tan/challenge.js.map +1 -1
- package/dist/tan/flicker.d.ts +5 -1
- package/dist/tan/flicker.d.ts.map +1 -1
- package/dist/tan/flicker.js +42 -30
- package/dist/tan/flicker.js.map +1 -1
- package/dist/tan/tan-image.d.ts +4 -1
- package/dist/tan/tan-image.d.ts.map +1 -1
- package/dist/tan/tan-image.js +8 -2
- package/dist/tan/tan-image.js.map +1 -1
- package/dist/tan/tan-models.d.ts +9 -1
- package/dist/tan/tan-models.d.ts.map +1 -1
- package/dist/tan/tan-models.js +14 -2
- 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 -1
- package/dist/util/async.d.ts.map +1 -1
- package/dist/util/async.js +6 -3
- package/dist/util/async.js.map +1 -1
- package/dist/util/bytes.d.ts +1 -1
- package/dist/util/bytes.d.ts.map +1 -1
- package/dist/util/bytes.js +3 -3
- package/dist/util/bytes.js.map +1 -1
- package/dist/util/dates.d.ts +3 -10
- package/dist/util/dates.d.ts.map +1 -1
- package/dist/util/dates.js +49 -39
- package/dist/util/dates.js.map +1 -1
- package/dist/util/errors.d.ts +5 -3
- package/dist/util/errors.d.ts.map +1 -1
- package/dist/util/errors.js +8 -4
- 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/text.d.ts +18 -2
- package/dist/util/text.d.ts.map +1 -1
- package/dist/util/text.js +50 -5
- package/dist/util/text.js.map +1 -1
- package/dist/util/xml.d.ts +6 -4
- package/dist/util/xml.d.ts.map +1 -1
- package/dist/util/xml.js +106 -44
- package/dist/util/xml.js.map +1 -1
- package/dist/v3/bank-connection.d.ts +23 -3
- package/dist/v3/bank-connection.d.ts.map +1 -1
- package/dist/v3/bank-connection.js +66 -6
- package/dist/v3/bank-connection.js.map +1 -1
- package/dist/v3/dialog.d.ts +6 -2
- package/dist/v3/dialog.d.ts.map +1 -1
- package/dist/v3/dialog.js +20 -9
- package/dist/v3/dialog.js.map +1 -1
- package/dist/v3/message.d.ts +18 -10
- package/dist/v3/message.d.ts.map +1 -1
- package/dist/v3/message.js +92 -75
- package/dist/v3/message.js.map +1 -1
- package/dist/v3/parameter-store.d.ts +43 -7
- package/dist/v3/parameter-store.d.ts.map +1 -1
- package/dist/v3/parameter-store.js +69 -15
- package/dist/v3/parameter-store.js.map +1 -1
- package/dist/v3/parameters.d.ts +12 -11
- package/dist/v3/parameters.d.ts.map +1 -1
- package/dist/v3/parameters.js +57 -35
- package/dist/v3/parameters.js.map +1 -1
- package/dist/v3/protocol.d.ts +16 -9
- package/dist/v3/protocol.d.ts.map +1 -1
- package/dist/v3/protocol.js +57 -26
- package/dist/v3/protocol.js.map +1 -1
- package/dist/v3/queries.d.ts +2 -2
- package/dist/v3/queries.d.ts.map +1 -1
- package/dist/v3/queries.js +24 -16
- package/dist/v3/queries.js.map +1 -1
- package/dist/v3/segments.d.ts +18 -11
- package/dist/v3/segments.d.ts.map +1 -1
- package/dist/v3/segments.js +30 -21
- package/dist/v3/segments.js.map +1 -1
- package/dist/v3/syntax.d.ts +15 -11
- package/dist/v3/syntax.d.ts.map +1 -1
- package/dist/v3/syntax.js +30 -15
- package/dist/v3/syntax.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +58 -17
- package/src/core/account.ts +91 -35
- package/src/core/amount.ts +42 -9
- package/src/core/balance.ts +6 -0
- package/src/core/bank-info.ts +28 -4
- package/src/core/client.ts +42 -15
- package/src/core/config.ts +37 -18
- package/src/core/errors.ts +27 -7
- package/src/core/feedback.ts +12 -1
- package/src/core/transaction.ts +13 -0
- package/src/core/transport.ts +62 -16
- package/src/formats/camt.ts +62 -51
- package/src/formats/mt940.ts +114 -78
- package/src/formats/readers.ts +6 -2
- package/src/formats/sepa-purpose.ts +17 -9
- package/src/session/dialog-runner.ts +34 -7
- package/src/session/login-guard.ts +29 -13
- package/src/session/session-setup.ts +27 -9
- package/src/session/session-state.ts +25 -8
- package/src/session/signed-dialog.ts +60 -30
- package/src/session/user-prompts.ts +28 -3
- package/src/tan/challenge.ts +50 -36
- package/src/tan/flicker.ts +40 -29
- package/src/tan/tan-image.ts +9 -2
- package/src/tan/tan-models.ts +16 -2
- package/src/util/arguments.ts +40 -0
- package/src/util/async.ts +10 -4
- package/src/util/bytes.ts +3 -3
- package/src/util/dates.ts +52 -38
- package/src/util/errors.ts +9 -4
- package/src/util/immutable-map.ts +15 -12
- package/src/util/inspect.ts +14 -0
- package/src/util/text.ts +47 -5
- package/src/util/xml.ts +105 -38
- package/src/v3/bank-connection.ts +65 -6
- package/src/v3/dialog.ts +18 -8
- package/src/v3/message.ts +81 -72
- package/src/v3/parameter-store.ts +82 -16
- package/src/v3/parameters.ts +68 -41
- package/src/v3/protocol.ts +61 -28
- package/src/v3/queries.ts +26 -18
- package/src/v3/segments.ts +32 -20
- package/src/v3/syntax.ts +31 -14
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// Internal to the package, and named after the FinTS specification. Documentation is where the meaning is not evident.
|
|
2
2
|
import { FormatError } from '../util/errors.js';
|
|
3
3
|
import { readOptionalBoolean, readOptionalObject, readOptionalString } from '../util/json.js';
|
|
4
|
+
import { trimBlanks } from '../util/text.js';
|
|
4
5
|
import { Bpd3, decodeSegments, Upd3 } from './parameters.js';
|
|
6
|
+
import { Verbatim } from './syntax.js';
|
|
5
7
|
/**
|
|
6
8
|
* The parameter data and IDs the bank sends the user `config` names, which the messages and business transactions
|
|
7
9
|
* take, and which the saved state keeps: the bank and user parameter data, the customer system ID, and the names of
|
|
@@ -18,10 +20,13 @@ export class ParameterStore {
|
|
|
18
20
|
* the bank send its parameter data anew.
|
|
19
21
|
*/
|
|
20
22
|
bpdAnonymous = false;
|
|
23
|
+
/** The limits a refresh took from the anonymous dialog's parameter data (`keepRefreshedLimits`). */
|
|
24
|
+
refreshedLimits;
|
|
21
25
|
upd;
|
|
22
26
|
/**
|
|
23
|
-
* The names of the TAN media in the bank's last list whose text
|
|
24
|
-
* `parseTanMedia` notes them. Saved with the state, as the
|
|
27
|
+
* The names of the TAN media in the bank's last list whose text would not go back as the bank sent them, by their
|
|
28
|
+
* text, as `parseTanMedia` notes them (`readTanMediumNames` for a state of 0.2.0). Saved with the state, as the
|
|
29
|
+
* medium in use is.
|
|
25
30
|
*/
|
|
26
31
|
tanMediumNames = new Map();
|
|
27
32
|
constructor(config) {
|
|
@@ -42,9 +47,20 @@ export class ParameterStore {
|
|
|
42
47
|
get systemId() {
|
|
43
48
|
return this.systemIdValue;
|
|
44
49
|
}
|
|
45
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* The limits on the messages the client sends: those of the bank parameter data, unless a refresh took others
|
|
52
|
+
* (`keepRefreshedLimits`).
|
|
53
|
+
*/
|
|
54
|
+
get limits() {
|
|
55
|
+
const bpd = this.bpd;
|
|
56
|
+
return this.refreshedLimits ?? { pinLength: bpd?.pinTan.pinLength, maxMessageSize: bpd?.bankInfo.maxMessageSize };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The version of the bank parameter data a dialog reports: 0 where there are none, only the anonymous dialog's, or
|
|
60
|
+
* where limits a refresh took stand in for theirs (`keepRefreshedLimits`).
|
|
61
|
+
*/
|
|
46
62
|
get reportedBpdVersion() {
|
|
47
|
-
return this.bpd === undefined || this.bpdAnonymous ? 0 : this.bpd.version;
|
|
63
|
+
return this.bpd === undefined || this.bpdAnonymous || this.refreshedLimits !== undefined ? 0 : this.bpd.version;
|
|
48
64
|
}
|
|
49
65
|
/**
|
|
50
66
|
* The version of the user parameter data a signed dialog reports: 0 where there are none, or where they name another
|
|
@@ -87,20 +103,41 @@ export class ParameterStore {
|
|
|
87
103
|
if (this.bpd === undefined || this.bpdAnonymous)
|
|
88
104
|
this.keepBankParameters(response, true);
|
|
89
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Keeps the limits of the bank parameter data in `response`, the answer of an anonymous dialog the client asked for
|
|
108
|
+
* after the limits kept ruled out a login: those may be outdated, as saved ones are. Parameter data of the version
|
|
109
|
+
* kept tell nothing new, and the bank may send a user other ones than the anonymous dialog (PIN/TAN B.4.3.1), so of
|
|
110
|
+
* those of another version it keeps the limits only, and the PIN lengths only where they state them (HIPINS). They
|
|
111
|
+
* stand in for those kept until a dialog signed with the PIN brings parameter data.
|
|
112
|
+
*/
|
|
113
|
+
keepRefreshedLimits(response) {
|
|
114
|
+
const fresh = Bpd3.fromSegments(response.segments, this.config.bankCode);
|
|
115
|
+
if (fresh === undefined || fresh.version === this.bpd?.version)
|
|
116
|
+
return;
|
|
117
|
+
this.refreshedLimits = {
|
|
118
|
+
pinLength: fresh.pinTan.pinLength ?? this.limits.pinLength,
|
|
119
|
+
maxMessageSize: fresh.bankInfo.maxMessageSize,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
90
122
|
keepBankParameters(response, anonymous) {
|
|
91
123
|
const bpd = Bpd3.fromSegments(response.segments, this.config.bankCode);
|
|
92
124
|
if (bpd === undefined)
|
|
93
125
|
return;
|
|
94
126
|
this.bpd = bpd;
|
|
95
127
|
this.bpdAnonymous = anonymous;
|
|
128
|
+
this.refreshedLimits = undefined;
|
|
96
129
|
}
|
|
97
130
|
/** Keeps `names`, the names of the bank's latest list of TAN media as `parseTanMedia` notes them. */
|
|
98
131
|
keepTanMediumNames(names) {
|
|
99
132
|
this.tanMediumNames = names;
|
|
100
133
|
}
|
|
101
|
-
/**
|
|
102
|
-
|
|
103
|
-
|
|
134
|
+
/**
|
|
135
|
+
* The TAN medium `name` to send: as the bank sent it, where its last list of TAN media noted that (`parseTanMedia`);
|
|
136
|
+
* otherwise as text, which goes out without the blanks at either end a name the app passes may have.
|
|
137
|
+
*/
|
|
138
|
+
tanMediumToSend(name) {
|
|
139
|
+
const asSent = this.tanMediumNames.get(name);
|
|
140
|
+
return asSent === undefined ? name : new Verbatim(asSent);
|
|
104
141
|
}
|
|
105
142
|
/** The parameter data and IDs as JSON data, for the client's saved state. */
|
|
106
143
|
saveState() {
|
|
@@ -110,34 +147,51 @@ export class ParameterStore {
|
|
|
110
147
|
bpdAnonymous: this.bpdAnonymous,
|
|
111
148
|
upd: this.upd?.encoded ?? null,
|
|
112
149
|
tanMediumNames: Object.fromEntries(this.tanMediumNames),
|
|
150
|
+
[blanksNotedKey]: true,
|
|
113
151
|
};
|
|
114
152
|
}
|
|
115
|
-
/**
|
|
116
|
-
|
|
153
|
+
/**
|
|
154
|
+
* Restores what `saveState` saved, with `tanMedium`, the medium in use the state holds; throws if `saved` is damaged,
|
|
155
|
+
* leaving the store unchanged.
|
|
156
|
+
*/
|
|
157
|
+
restoreState(saved, tanMedium) {
|
|
117
158
|
const bpd = readOptionalString(saved, 'bpd');
|
|
118
159
|
const upd = readOptionalString(saved, 'upd');
|
|
119
160
|
const restoredSystemId = readOptionalString(saved, 'systemId');
|
|
120
|
-
// A state of the Dart package
|
|
161
|
+
// A state of fints-ts 0.1 or the Dart package 0.2.0 does not tell, so its parameter data are fetched anew.
|
|
121
162
|
const restoredBpdAnonymous = readOptionalBoolean(saved, 'bpdAnonymous') ?? true;
|
|
122
163
|
const restoredBpd = bpd === undefined ? undefined : Bpd3.fromSegments(decodeSegments(bpd), this.config.bankCode);
|
|
123
164
|
const restoredUpd = upd === undefined
|
|
124
165
|
? undefined
|
|
125
166
|
: Upd3.fromSegments(decodeSegments(upd), this.config.bankCode, this.config.countryCode);
|
|
126
|
-
const restoredNames = readTanMediumNames(saved);
|
|
167
|
+
const restoredNames = readTanMediumNames(saved, tanMedium);
|
|
127
168
|
this.systemIdValue = restoredSystemId;
|
|
128
169
|
this.bpd = restoredBpd;
|
|
129
170
|
this.bpdAnonymous = restoredBpdAnonymous;
|
|
171
|
+
this.refreshedLimits = undefined;
|
|
130
172
|
this.upd = restoredUpd;
|
|
131
173
|
this.tanMediumNames = restoredNames;
|
|
132
174
|
}
|
|
133
175
|
}
|
|
134
|
-
/** The
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
176
|
+
/** The key of the saved state that tells the TAN medium names apart from those version 0.2.0 saved. */
|
|
177
|
+
const blanksNotedKey = 'tanMediumBlanksNoted';
|
|
178
|
+
/**
|
|
179
|
+
* The TAN medium names `saveState` saved; none in a state of fints-ts 0.1 or the Dart package 0.2.0.
|
|
180
|
+
*
|
|
181
|
+
* Version 0.2.0 noted no name with blanks at either end, and sent every name as it is, so `tanMedium` keeps going out
|
|
182
|
+
* with its blanks from such a state: the bank may have listed it so.
|
|
183
|
+
*/
|
|
184
|
+
function readTanMediumNames(saved, tanMedium) {
|
|
185
|
+
const listed = readOptionalObject(saved, 'tanMediumNames');
|
|
186
|
+
const names = new Map(Object.entries(listed ?? {}).map(([name, asSent]) => {
|
|
138
187
|
if (typeof asSent !== 'string')
|
|
139
188
|
throw new FormatError('Saved state: a TAN medium name is not a string');
|
|
140
189
|
return [name, asSent];
|
|
141
190
|
}));
|
|
191
|
+
const savedBy020 = listed !== undefined && readOptionalBoolean(saved, blanksNotedKey) !== true;
|
|
192
|
+
if (savedBy020 && tanMedium !== undefined && trimBlanks(tanMedium) !== tanMedium && !names.has(tanMedium)) {
|
|
193
|
+
names.set(tanMedium, tanMedium);
|
|
194
|
+
}
|
|
195
|
+
return names;
|
|
142
196
|
}
|
|
143
197
|
//# sourceMappingURL=parameter-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-store.js","sourceRoot":"","sources":["../../src/v3/parameter-store.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAGvH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAmB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"parameter-store.js","sourceRoot":"","sources":["../../src/v3/parameter-store.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAGvH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAmB,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAWvC;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAuBJ;IAtBb,aAAa,CAAqB;IAClC,GAAG,CAAmB;IAE9B;;;;;OAKG;IACK,YAAY,GAAG,KAAK,CAAC;IAE7B,oGAAoG;IAC5F,eAAe,CAA4B;IAC3C,GAAG,CAAmB;IAE9B;;;;OAIG;IACK,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEnD,YAAqB,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAE5C,uDAAuD;IACvD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,uDAAuD;IACvD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,IAAI,CAAC,eAAe,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC;IACpH,CAAC;IAED;;;OAGG;IACH,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IAClH,CAAC;IAED;;;;;;OAMG;IACH,IAAI,kBAAkB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED;;;;OAIG;IACH,cAAc;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,QAA0B;QAC7B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC;QAC3G,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;IACjF,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,QAA0B;QACtC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,QAA0B;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,GAAG,EAAE,OAAO;YAAE,OAAO;QACvE,IAAI,CAAC,eAAe,GAAG;YACrB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;YAC1D,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc;SAC9C,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,QAA0B,EAAE,SAAkB;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvE,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;IACnC,CAAC;IAED,qGAAqG;IACrG,kBAAkB,CAAC,KAA0B;QAC3C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,IAAY;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,6EAA6E;IAC7E,SAAS;QACP,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;YACpC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,IAAI;YAC9B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,IAAI;YAC9B,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;YACvD,CAAC,cAAc,CAAC,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,KAAiB,EAAE,SAAkB;QAChD,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/D,2GAA2G;QAC3G,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC;QAChF,MAAM,WAAW,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjH,MAAM,WAAW,GACf,GAAG,KAAK,SAAS;YACf,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5F,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;CACF;AAED,uGAAuG;AACvG,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAE9C;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,KAAiB,EAAE,SAA6B;IAC1E,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;QAClD,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,MAAM,IAAI,WAAW,CAAC,gDAAgD,CAAC,CAAC;QACxG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC,CACH,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,KAAK,SAAS,IAAI,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,IAAI,CAAC;IAC/F,IAAI,UAAU,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1G,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/v3/parameters.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ import { type Segment } from './syntax.js';
|
|
|
7
7
|
export declare function requireBankParameters(bpd: Bpd3 | undefined): Bpd3;
|
|
8
8
|
/** FinTS 3.0 bank parameter data (BPD): HIBPA and the parameter segments (`HI…S`), parsed once. */
|
|
9
9
|
export declare class Bpd3 {
|
|
10
|
-
readonly segments: readonly Segment[];
|
|
11
10
|
readonly bankInfo: BankInfo;
|
|
12
11
|
/** The two-step TAN methods of HITANS versions 6 and 7, by security function. */
|
|
13
12
|
private readonly offeredMethods;
|
|
@@ -16,8 +15,13 @@ export declare class Bpd3 {
|
|
|
16
15
|
/** Security functions of the two-step methods the bank offers in a form the client cannot run. */
|
|
17
16
|
readonly unsupportedTanMethods: readonly string[];
|
|
18
17
|
readonly pinTan: PinTanParameters;
|
|
19
|
-
/** camt formats the bank offers for HKCAZ. */
|
|
18
|
+
/** The camt.052 formats the bank offers for HKCAZ, the one camt message the client reads. */
|
|
20
19
|
readonly camtFormats: readonly string[];
|
|
20
|
+
/**
|
|
21
|
+
* Whether an international account (KTI) may name the national account as well: HISPAS does not rule it out
|
|
22
|
+
* ("Nationale Kontoverbindung erlaubt").
|
|
23
|
+
*/
|
|
24
|
+
readonly nationalAccountAllowed: boolean;
|
|
21
25
|
/** Versions of each parameter segment, by segment type. */
|
|
22
26
|
private readonly versions;
|
|
23
27
|
/**
|
|
@@ -25,12 +29,11 @@ export declare class Bpd3 {
|
|
|
25
29
|
* these may be sent once the parameter data are known; `0`, the default, only before (Formals C.3.1.3).
|
|
26
30
|
*/
|
|
27
31
|
readonly dialogLanguage: number;
|
|
28
|
-
|
|
32
|
+
/** The segments as the saved state keeps them. */
|
|
33
|
+
readonly encoded: string;
|
|
29
34
|
private constructor();
|
|
30
35
|
/** The version of the parameter data, which the client reports back so that the bank sends newer ones only. */
|
|
31
36
|
get version(): number;
|
|
32
|
-
/** The segments as the saved state keeps them, encoded once. */
|
|
33
|
-
get encoded(): string;
|
|
34
37
|
/** The BPD in `all`, or `undefined` if they contain no HIBPA segment. */
|
|
35
38
|
static fromSegments(all: readonly Segment[], fallbackBankCode: string): Bpd3 | undefined;
|
|
36
39
|
/** The parameter segment type of a business transaction: `HKSAL` → `HISALS`. */
|
|
@@ -46,11 +49,11 @@ export declare class Bpd3 {
|
|
|
46
49
|
*/
|
|
47
50
|
export declare class PinTanParameters {
|
|
48
51
|
private readonly tanRequired;
|
|
49
|
-
/** The shortest and longest PIN the bank takes. */
|
|
52
|
+
/** The shortest and longest PIN the bank takes; `undefined` where the bank parameter data have no HIPINS. */
|
|
50
53
|
readonly pinLength: {
|
|
51
54
|
min: number | undefined;
|
|
52
55
|
max: number | undefined;
|
|
53
|
-
};
|
|
56
|
+
} | undefined;
|
|
54
57
|
private constructor();
|
|
55
58
|
/** Reads the HIPINS segment of the highest version. */
|
|
56
59
|
static parse(segments: readonly Segment[]): PinTanParameters;
|
|
@@ -61,7 +64,6 @@ export declare class PinTanParameters {
|
|
|
61
64
|
}
|
|
62
65
|
/** FinTS 3.0 user parameter data (UPD): HIUPA and the accounts (HIUPD), parsed once. */
|
|
63
66
|
export declare class Upd3 {
|
|
64
|
-
readonly segments: readonly Segment[];
|
|
65
67
|
/** The user the bank sent them for; `undefined` where it names none. */
|
|
66
68
|
readonly userId: string | undefined;
|
|
67
69
|
/** The version of the parameter data, which the client reports back so that the bank sends newer ones only. */
|
|
@@ -77,11 +79,10 @@ export declare class Upd3 {
|
|
|
77
79
|
private readonly entries;
|
|
78
80
|
/** The accounts the user may access. */
|
|
79
81
|
readonly accounts: readonly Account[];
|
|
80
|
-
|
|
82
|
+
/** The segments as the saved state keeps them. */
|
|
83
|
+
readonly encoded: string;
|
|
81
84
|
/** `listsAll` tells whether HIUPA declares the lists of permitted transactions complete ("UPD-Verwendung" 0). */
|
|
82
85
|
private constructor();
|
|
83
|
-
/** The segments as the saved state keeps them, encoded once. */
|
|
84
|
-
get encoded(): string;
|
|
85
86
|
/**
|
|
86
87
|
* The balance of `account` the user parameter data carry, where it holds all a balance query would deliver, so that
|
|
87
88
|
* the client asks for none (Formals E.3.1, F.3.2); `undefined` otherwise.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/v3/parameters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAA0B,MAAM,sBAAsB,CAAC;AAIzE,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/v3/parameters.ts"],"names":[],"mappings":"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"}
|
package/dist/v3/parameters.js
CHANGED
|
@@ -4,7 +4,7 @@ import { BankInfo } from '../core/bank-info.js';
|
|
|
4
4
|
import { FinTsProtocolError } from '../core/errors.js';
|
|
5
5
|
import { TanMethod, tanMediumRequirementOf } from '../tan/tan-models.js';
|
|
6
6
|
import { base64Decode, base64Encode, concatBytes } from '../util/bytes.js';
|
|
7
|
-
import { nonBlank, tryParseInt } from '../util/text.js';
|
|
7
|
+
import { nonBlank, trimBlanks, tryParseInt } from '../util/text.js';
|
|
8
8
|
import { AccountExtension } from './account-extension.js';
|
|
9
9
|
import { parseSegments } from './syntax.js';
|
|
10
10
|
/** Positions of the data elements in the header of the bank parameter data (HIBPA), after the segment header. */
|
|
@@ -19,6 +19,11 @@ const Hibpa = {
|
|
|
19
19
|
minTimeout: 8,
|
|
20
20
|
maxTimeout: 9,
|
|
21
21
|
};
|
|
22
|
+
/** The size or time at `index` of `hibpa`, a field of at most four digits; `undefined` for a larger value, as for none. */
|
|
23
|
+
function hibpaLimit(hibpa, index) {
|
|
24
|
+
const value = hibpa.integer(index);
|
|
25
|
+
return value !== undefined && value <= 9999 ? value : undefined;
|
|
26
|
+
}
|
|
22
27
|
/**
|
|
23
28
|
* The data element of every parameter segment (`HI…S`) that holds its specific parameters, after the maximum number of
|
|
24
29
|
* orders, the minimum number of signatures and the security class.
|
|
@@ -37,7 +42,6 @@ export function requireBankParameters(bpd) {
|
|
|
37
42
|
}
|
|
38
43
|
/** FinTS 3.0 bank parameter data (BPD): HIBPA and the parameter segments (`HI…S`), parsed once. */
|
|
39
44
|
export class Bpd3 {
|
|
40
|
-
segments;
|
|
41
45
|
bankInfo;
|
|
42
46
|
/** The two-step TAN methods of HITANS versions 6 and 7, by security function. */
|
|
43
47
|
offeredMethods;
|
|
@@ -46,8 +50,13 @@ export class Bpd3 {
|
|
|
46
50
|
/** Security functions of the two-step methods the bank offers in a form the client cannot run. */
|
|
47
51
|
unsupportedTanMethods;
|
|
48
52
|
pinTan;
|
|
49
|
-
/** camt formats the bank offers for HKCAZ. */
|
|
53
|
+
/** The camt.052 formats the bank offers for HKCAZ, the one camt message the client reads. */
|
|
50
54
|
camtFormats;
|
|
55
|
+
/**
|
|
56
|
+
* Whether an international account (KTI) may name the national account as well: HISPAS does not rule it out
|
|
57
|
+
* ("Nationale Kontoverbindung erlaubt").
|
|
58
|
+
*/
|
|
59
|
+
nationalAccountAllowed;
|
|
51
60
|
/** Versions of each parameter segment, by segment type. */
|
|
52
61
|
versions;
|
|
53
62
|
/**
|
|
@@ -55,18 +64,18 @@ export class Bpd3 {
|
|
|
55
64
|
* these may be sent once the parameter data are known; `0`, the default, only before (Formals C.3.1.3).
|
|
56
65
|
*/
|
|
57
66
|
dialogLanguage;
|
|
58
|
-
|
|
67
|
+
/** The segments as the saved state keeps them. */
|
|
68
|
+
encoded;
|
|
59
69
|
constructor(segments, hibpa, fallbackBankCode) {
|
|
60
|
-
this.segments = segments;
|
|
61
70
|
this.bankInfo = new BankInfo({
|
|
62
71
|
bankCode: hibpa.text(Hibpa.bankId, 1) ?? fallbackBankCode,
|
|
63
72
|
name: hibpa.text(Hibpa.bankName),
|
|
64
73
|
bpdVersion: hibpa.integer(Hibpa.version) ?? 0,
|
|
65
74
|
languages: defined(hibpa.texts(Hibpa.languages)),
|
|
66
75
|
supportedVersions: defined(hibpa.texts(Hibpa.fintsVersions)),
|
|
67
|
-
maxMessageSize: hibpa
|
|
68
|
-
minTimeout: hibpa
|
|
69
|
-
maxTimeout: hibpa
|
|
76
|
+
maxMessageSize: hibpaLimit(hibpa, Hibpa.maxMessageSize),
|
|
77
|
+
minTimeout: hibpaLimit(hibpa, Hibpa.minTimeout),
|
|
78
|
+
maxTimeout: hibpaLimit(hibpa, Hibpa.maxTimeout),
|
|
70
79
|
});
|
|
71
80
|
this.offeredMethods = parseTanMethods(segments);
|
|
72
81
|
const offered = [...this.offeredMethods.values()];
|
|
@@ -76,18 +85,16 @@ export class Bpd3 {
|
|
|
76
85
|
this.camtFormats = segments
|
|
77
86
|
.filter((s) => s.type === 'HICAZS')
|
|
78
87
|
.flatMap((s) => defined(s.texts(parameterGroup)))
|
|
79
|
-
.filter((format) => format.includes('camt'));
|
|
88
|
+
.filter((format) => format.includes('camt.052'));
|
|
89
|
+
this.nationalAccountAllowed = highest(segments, 'HISPAS')?.text(parameterGroup, 1) !== 'N';
|
|
80
90
|
this.versions = versionsByType(segments);
|
|
81
91
|
this.dialogLanguage = dialogLanguageOf(segments, this.bankInfo);
|
|
92
|
+
this.encoded = encodeSegments(segments);
|
|
82
93
|
}
|
|
83
94
|
/** The version of the parameter data, which the client reports back so that the bank sends newer ones only. */
|
|
84
95
|
get version() {
|
|
85
96
|
return this.bankInfo.bpdVersion;
|
|
86
97
|
}
|
|
87
|
-
/** The segments as the saved state keeps them, encoded once. */
|
|
88
|
-
get encoded() {
|
|
89
|
-
return (this.encodedValue ??= encodeSegments(this.segments));
|
|
90
|
-
}
|
|
91
98
|
/** The BPD in `all`, or `undefined` if they contain no HIBPA segment. */
|
|
92
99
|
static fromSegments(all, fallbackBankCode) {
|
|
93
100
|
const segments = all.filter(isParameterSegment);
|
|
@@ -119,14 +126,24 @@ function dialogLanguageOf(segments, bankInfo) {
|
|
|
119
126
|
return standard;
|
|
120
127
|
return bankInfo.languages.map((l) => tryParseInt(l)).find((l) => l !== undefined && languages.has(l)) ?? 0;
|
|
121
128
|
}
|
|
129
|
+
const generalParameterSegments = new Set(['HIBPA', 'HIKOM', 'HISHV', 'HIKPV']);
|
|
122
130
|
function isParameterSegment(s) {
|
|
123
131
|
const type = s.type;
|
|
124
|
-
if (
|
|
132
|
+
if (generalParameterSegments.has(type))
|
|
125
133
|
return true;
|
|
126
|
-
|
|
134
|
+
// Return codes for single segments end with an S, as parameter segments do.
|
|
135
|
+
if (type === 'HIRMS')
|
|
127
136
|
return false;
|
|
128
137
|
return type.length >= 5 && (type.startsWith('HI') || type.startsWith('DI')) && type.endsWith('S');
|
|
129
138
|
}
|
|
139
|
+
/** The segment of `type` with the highest version in `segments`. */
|
|
140
|
+
function highest(segments, type) {
|
|
141
|
+
let found;
|
|
142
|
+
for (const s of segments)
|
|
143
|
+
if (s.type === type && (found === undefined || s.version > found.version))
|
|
144
|
+
found = s;
|
|
145
|
+
return found;
|
|
146
|
+
}
|
|
130
147
|
function versionsByType(segments) {
|
|
131
148
|
const versions = new Map();
|
|
132
149
|
for (const s of segments) {
|
|
@@ -235,20 +252,16 @@ export class PinTanParameters {
|
|
|
235
252
|
tanRequired;
|
|
236
253
|
pinLength;
|
|
237
254
|
constructor(tanRequired,
|
|
238
|
-
/** The shortest and longest PIN the bank takes. */
|
|
255
|
+
/** The shortest and longest PIN the bank takes; `undefined` where the bank parameter data have no HIPINS. */
|
|
239
256
|
pinLength) {
|
|
240
257
|
this.tanRequired = tanRequired;
|
|
241
258
|
this.pinLength = pinLength;
|
|
242
259
|
}
|
|
243
260
|
/** Reads the HIPINS segment of the highest version. */
|
|
244
261
|
static parse(segments) {
|
|
245
|
-
|
|
246
|
-
for (const s of segments.filter((s) => s.type === 'HIPINS')) {
|
|
247
|
-
if (hipins === undefined || s.version > hipins.version)
|
|
248
|
-
hipins = s;
|
|
249
|
-
}
|
|
262
|
+
const hipins = highest(segments, 'HIPINS');
|
|
250
263
|
if (hipins === undefined)
|
|
251
|
-
return new PinTanParameters(new Map(),
|
|
264
|
+
return new PinTanParameters(new Map(), undefined);
|
|
252
265
|
const fields = hipins.texts(parameterGroup);
|
|
253
266
|
const tanRequired = new Map();
|
|
254
267
|
// Five general fields, the PIN lengths first; then pairs of segment type and TAN flag.
|
|
@@ -276,7 +289,6 @@ const hiupaUsage = 3;
|
|
|
276
289
|
const transactionCode = /^[A-Z]{4,6}$/;
|
|
277
290
|
/** FinTS 3.0 user parameter data (UPD): HIUPA and the accounts (HIUPD), parsed once. */
|
|
278
291
|
export class Upd3 {
|
|
279
|
-
segments;
|
|
280
292
|
/** The user the bank sent them for; `undefined` where it names none. */
|
|
281
293
|
userId;
|
|
282
294
|
/** The version of the parameter data, which the client reports back so that the bank sends newer ones only. */
|
|
@@ -292,21 +304,18 @@ export class Upd3 {
|
|
|
292
304
|
entries;
|
|
293
305
|
/** The accounts the user may access. */
|
|
294
306
|
accounts;
|
|
295
|
-
|
|
307
|
+
/** The segments as the saved state keeps them. */
|
|
308
|
+
encoded;
|
|
296
309
|
/** `listsAll` tells whether HIUPA declares the lists of permitted transactions complete ("UPD-Verwendung" 0). */
|
|
297
310
|
constructor(segments, hiupa, listsAll, defaultBankCode, defaultCountry) {
|
|
298
|
-
this.segments = segments;
|
|
299
311
|
const hiupds = segments.filter((s) => s.type === 'HIUPD');
|
|
300
|
-
this.userId = hiupa.text(hiupaUserId)
|
|
312
|
+
this.userId = nonBlank(hiupa.text(hiupaUserId));
|
|
301
313
|
this.version = hiupa.integer(hiupaVersion) ?? 0;
|
|
302
314
|
this.listsAllTransactions = listsAll;
|
|
303
315
|
this.listedTransactions = new Set(hiupds.flatMap(transactionsOf));
|
|
304
316
|
this.entries = Object.freeze(hiupds.map((s) => entryOf(s, defaultBankCode, defaultCountry, listsAll)).filter((e) => e !== undefined));
|
|
305
317
|
this.accounts = Object.freeze(this.entries.map((e) => e.account));
|
|
306
|
-
|
|
307
|
-
/** The segments as the saved state keeps them, encoded once. */
|
|
308
|
-
get encoded() {
|
|
309
|
-
return (this.encodedValue ??= encodeSegments(this.segments));
|
|
318
|
+
this.encoded = encodeSegments(segments);
|
|
310
319
|
}
|
|
311
320
|
/**
|
|
312
321
|
* The balance of `account` the user parameter data carry, where it holds all a balance query would deliver, so that
|
|
@@ -350,11 +359,11 @@ function extensionOf(s) {
|
|
|
350
359
|
if (s.version < 6)
|
|
351
360
|
return undefined;
|
|
352
361
|
for (let i = allowedFrom(s.version); i < s.length; i++) {
|
|
353
|
-
const text = s
|
|
362
|
+
const text = trimBlanks(s
|
|
354
363
|
.group(i)
|
|
355
364
|
.map((e) => e.text)
|
|
356
|
-
.join(':');
|
|
357
|
-
if (text.
|
|
365
|
+
.join(':'));
|
|
366
|
+
if (text.startsWith('{'))
|
|
358
367
|
return AccountExtension.tryParse(text);
|
|
359
368
|
}
|
|
360
369
|
return undefined;
|
|
@@ -369,10 +378,23 @@ function entryOf(s, defaultBankCode, defaultCountry, listsAll) {
|
|
|
369
378
|
extension,
|
|
370
379
|
};
|
|
371
380
|
}
|
|
381
|
+
/** Whether `code` is a country code, three digits, such as `280`; a German bank code has eight. */
|
|
382
|
+
function isCountryCode(code) {
|
|
383
|
+
return code !== undefined && /^[0-9]{3}$/.test(code);
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* The national account of the HIUPD `s`: number, sub-account, country and bank code (KTV2), by position in every
|
|
387
|
+
* version, so that a sub-account or bank code the bank leaves out is empty. Three elements whose second is a country
|
|
388
|
+
* code and whose third is not are the older layout without sub-account: number, country and bank code.
|
|
389
|
+
*/
|
|
390
|
+
function nationalAccountOf(s) {
|
|
391
|
+
const ktv = s.texts(1);
|
|
392
|
+
const [number, second, third] = ktv;
|
|
393
|
+
return ktv.length === 3 && isCountryCode(second) && !isCountryCode(third) ? [number, undefined, second, third] : ktv;
|
|
394
|
+
}
|
|
372
395
|
function accountOf(s, defaultBankCode, defaultCountry, listsAll) {
|
|
373
396
|
const version = s.version;
|
|
374
|
-
|
|
375
|
-
const [number, subAccount, country, bank] = s.texts(1);
|
|
397
|
+
const [number, subAccount, country, bank] = nationalAccountOf(s);
|
|
376
398
|
const iban = version >= 6 ? s.text(2) : undefined;
|
|
377
399
|
if (number === undefined && iban === undefined)
|
|
378
400
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/v3/parameters.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/v3/parameters.ts"],"names":[],"mappings":"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"}
|
package/dist/v3/protocol.d.ts
CHANGED
|
@@ -24,8 +24,9 @@ export declare class FinTs3Protocol {
|
|
|
24
24
|
private readonly guard;
|
|
25
25
|
private readonly config;
|
|
26
26
|
private readonly connection;
|
|
27
|
-
/** Whether the client is closing, so that only dialog ends go out (`beginClose`). */
|
|
28
27
|
private closing;
|
|
28
|
+
/** The error with which the limits last stopped a login (`stoppedLogin`). */
|
|
29
|
+
private stoppedLoginError;
|
|
29
30
|
constructor(parameters: ParameterStore, guard: PinGuard, transport?: FinTsTransport, logger?: MessageLogger);
|
|
30
31
|
/** Identification (HKIDN) and processing preparation (HKVVB), which open every dialog. */
|
|
31
32
|
initSegments(systemId: string, anonymous?: boolean): SegmentSpec[];
|
|
@@ -43,17 +44,23 @@ export declare class FinTs3Protocol {
|
|
|
43
44
|
tan: string | undefined;
|
|
44
45
|
}): Promise<Uint8Array>;
|
|
45
46
|
/**
|
|
46
|
-
*
|
|
47
|
+
* Throws if the limits of the parameter data rule out a message of `size` bytes, or the length of `loginPin`, the PIN
|
|
48
|
+
* of a login (`checkLimits`). The later messages of a dialog, its end included, take the PIN the bank has accepted,
|
|
49
|
+
* whatever the parameter data it delivered since say.
|
|
47
50
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* the PIN the bank has accepted, whatever the parameter data it delivered since say.
|
|
51
|
+
* Remembers the error that stops a login (`stoppedLogin`): the parameter data may be outdated, as saved ones are,
|
|
52
|
+
* and new ones would come only in answer to the login they rule out.
|
|
51
53
|
*/
|
|
52
|
-
private
|
|
54
|
+
private checkOutgoing;
|
|
55
|
+
/** Whether `error` is the one with which the limits of the parameter data last stopped a login. */
|
|
56
|
+
stoppedLogin(error: unknown): boolean;
|
|
57
|
+
/** Whether the client is closing, so that only dialog ends go out (`beginClose`). */
|
|
58
|
+
get isClosing(): boolean;
|
|
53
59
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
60
|
+
* Sends nothing but dialog ends from now on: any other message fails with `FinTsStateError` before it goes out, so
|
|
61
|
+
* that a call under way stops at its next one. The request on its way has `closingGraceMs` to bring its answer, which
|
|
62
|
+
* counts as any other, and is aborted then; the dialog ends have as long again once it is over, and none goes out
|
|
63
|
+
* later. The client calls it as soon as it is closed, and `close` once it has ended its dialog.
|
|
57
64
|
*/
|
|
58
65
|
beginClose(): void;
|
|
59
66
|
close(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/v3/protocol.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/v3/protocol.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW/C,mGAAmG;AACnG,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,oGAAoG;AACpG,MAAM,WAAW,QAAQ;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,6FAA6F;IAC7F,SAAS,IAAI,IAAI,CAAC;CACnB;AAgBD;;;;GAIG;AACH,qBAAa,cAAc;IAUvB,QAAQ,CAAC,UAAU,EAAE,cAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAVxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAE5C,OAAO,CAAC,OAAO,CAAS;IAExB,6EAA6E;IAC7E,OAAO,CAAC,iBAAiB,CAAU;gBAGxB,UAAU,EAAE,cAAc,EAClB,KAAK,EAAE,QAAQ,EAChC,SAAS,CAAC,EAAE,cAAc,EAC1B,MAAM,CAAC,EAAE,aAAa;IAMxB,0FAA0F;IAC1F,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,WAAW,EAAE;IAmBhE;;;;;OAKG;IACG,IAAI,CAAC,OAAO,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;QACjC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC;QAC9B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;KACzB,GAAG,OAAO,CAAC,UAAU,CAAC;IAgCvB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IASrB,mGAAmG;IACnG,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAIrC,qFAAqF;IACrF,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;;;OAKG;IACH,UAAU,IAAI,IAAI;IAKlB,KAAK,IAAI,IAAI;CAGd"}
|