@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.
Files changed (215) hide show
  1. package/CHANGELOG.md +377 -0
  2. package/README.md +31 -23
  3. package/dist/client.d.ts +3 -2
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +52 -9
  6. package/dist/client.js.map +1 -1
  7. package/dist/core/account.d.ts +15 -4
  8. package/dist/core/account.d.ts.map +1 -1
  9. package/dist/core/account.js +84 -36
  10. package/dist/core/account.js.map +1 -1
  11. package/dist/core/amount.d.ts +13 -3
  12. package/dist/core/amount.d.ts.map +1 -1
  13. package/dist/core/amount.js +42 -8
  14. package/dist/core/amount.js.map +1 -1
  15. package/dist/core/balance.d.ts +3 -0
  16. package/dist/core/balance.d.ts.map +1 -1
  17. package/dist/core/balance.js +5 -0
  18. package/dist/core/balance.js.map +1 -1
  19. package/dist/core/bank-info.d.ts +20 -3
  20. package/dist/core/bank-info.d.ts.map +1 -1
  21. package/dist/core/bank-info.js +25 -4
  22. package/dist/core/bank-info.js.map +1 -1
  23. package/dist/core/client.d.ts +42 -15
  24. package/dist/core/client.d.ts.map +1 -1
  25. package/dist/core/config.d.ts +15 -7
  26. package/dist/core/config.d.ts.map +1 -1
  27. package/dist/core/config.js +29 -14
  28. package/dist/core/config.js.map +1 -1
  29. package/dist/core/errors.d.ts +17 -5
  30. package/dist/core/errors.d.ts.map +1 -1
  31. package/dist/core/errors.js +25 -7
  32. package/dist/core/errors.js.map +1 -1
  33. package/dist/core/feedback.d.ts +7 -0
  34. package/dist/core/feedback.d.ts.map +1 -1
  35. package/dist/core/feedback.js +10 -1
  36. package/dist/core/feedback.js.map +1 -1
  37. package/dist/core/transaction.d.ts +5 -0
  38. package/dist/core/transaction.d.ts.map +1 -1
  39. package/dist/core/transaction.js +12 -0
  40. package/dist/core/transaction.js.map +1 -1
  41. package/dist/core/transport.d.ts +22 -7
  42. package/dist/core/transport.d.ts.map +1 -1
  43. package/dist/core/transport.js +51 -11
  44. package/dist/core/transport.js.map +1 -1
  45. package/dist/formats/camt.d.ts +7 -4
  46. package/dist/formats/camt.d.ts.map +1 -1
  47. package/dist/formats/camt.js +53 -54
  48. package/dist/formats/camt.js.map +1 -1
  49. package/dist/formats/mt940.d.ts +18 -6
  50. package/dist/formats/mt940.d.ts.map +1 -1
  51. package/dist/formats/mt940.js +83 -66
  52. package/dist/formats/mt940.js.map +1 -1
  53. package/dist/formats/readers.d.ts.map +1 -1
  54. package/dist/formats/readers.js +6 -2
  55. package/dist/formats/readers.js.map +1 -1
  56. package/dist/formats/sepa-purpose.d.ts +7 -4
  57. package/dist/formats/sepa-purpose.d.ts.map +1 -1
  58. package/dist/formats/sepa-purpose.js +18 -9
  59. package/dist/formats/sepa-purpose.js.map +1 -1
  60. package/dist/session/dialog-runner.d.ts +5 -2
  61. package/dist/session/dialog-runner.d.ts.map +1 -1
  62. package/dist/session/dialog-runner.js +23 -7
  63. package/dist/session/dialog-runner.js.map +1 -1
  64. package/dist/session/login-guard.d.ts +4 -4
  65. package/dist/session/login-guard.d.ts.map +1 -1
  66. package/dist/session/login-guard.js +29 -14
  67. package/dist/session/login-guard.js.map +1 -1
  68. package/dist/session/session-setup.d.ts +14 -5
  69. package/dist/session/session-setup.d.ts.map +1 -1
  70. package/dist/session/session-setup.js +30 -9
  71. package/dist/session/session-setup.js.map +1 -1
  72. package/dist/session/session-state.d.ts +4 -3
  73. package/dist/session/session-state.d.ts.map +1 -1
  74. package/dist/session/session-state.js +28 -9
  75. package/dist/session/session-state.js.map +1 -1
  76. package/dist/session/signed-dialog.d.ts +19 -13
  77. package/dist/session/signed-dialog.d.ts.map +1 -1
  78. package/dist/session/signed-dialog.js +45 -30
  79. package/dist/session/signed-dialog.js.map +1 -1
  80. package/dist/session/user-prompts.d.ts +6 -1
  81. package/dist/session/user-prompts.d.ts.map +1 -1
  82. package/dist/session/user-prompts.js +19 -4
  83. package/dist/session/user-prompts.js.map +1 -1
  84. package/dist/tan/challenge.d.ts +15 -13
  85. package/dist/tan/challenge.d.ts.map +1 -1
  86. package/dist/tan/challenge.js +32 -26
  87. package/dist/tan/challenge.js.map +1 -1
  88. package/dist/tan/flicker.d.ts +5 -1
  89. package/dist/tan/flicker.d.ts.map +1 -1
  90. package/dist/tan/flicker.js +42 -30
  91. package/dist/tan/flicker.js.map +1 -1
  92. package/dist/tan/tan-image.d.ts +4 -1
  93. package/dist/tan/tan-image.d.ts.map +1 -1
  94. package/dist/tan/tan-image.js +8 -2
  95. package/dist/tan/tan-image.js.map +1 -1
  96. package/dist/tan/tan-models.d.ts +9 -1
  97. package/dist/tan/tan-models.d.ts.map +1 -1
  98. package/dist/tan/tan-models.js +14 -2
  99. package/dist/tan/tan-models.js.map +1 -1
  100. package/dist/util/arguments.d.ts +13 -0
  101. package/dist/util/arguments.d.ts.map +1 -0
  102. package/dist/util/arguments.js +40 -0
  103. package/dist/util/arguments.js.map +1 -0
  104. package/dist/util/async.d.ts +4 -1
  105. package/dist/util/async.d.ts.map +1 -1
  106. package/dist/util/async.js +6 -3
  107. package/dist/util/async.js.map +1 -1
  108. package/dist/util/bytes.d.ts +1 -1
  109. package/dist/util/bytes.d.ts.map +1 -1
  110. package/dist/util/bytes.js +3 -3
  111. package/dist/util/bytes.js.map +1 -1
  112. package/dist/util/dates.d.ts +3 -10
  113. package/dist/util/dates.d.ts.map +1 -1
  114. package/dist/util/dates.js +49 -39
  115. package/dist/util/dates.js.map +1 -1
  116. package/dist/util/errors.d.ts +5 -3
  117. package/dist/util/errors.d.ts.map +1 -1
  118. package/dist/util/errors.js +8 -4
  119. package/dist/util/errors.js.map +1 -1
  120. package/dist/util/immutable-map.d.ts +5 -2
  121. package/dist/util/immutable-map.d.ts.map +1 -1
  122. package/dist/util/immutable-map.js +15 -12
  123. package/dist/util/immutable-map.js.map +1 -1
  124. package/dist/util/inspect.d.ts +11 -0
  125. package/dist/util/inspect.d.ts.map +1 -0
  126. package/dist/util/inspect.js +14 -0
  127. package/dist/util/inspect.js.map +1 -0
  128. package/dist/util/text.d.ts +18 -2
  129. package/dist/util/text.d.ts.map +1 -1
  130. package/dist/util/text.js +50 -5
  131. package/dist/util/text.js.map +1 -1
  132. package/dist/util/xml.d.ts +6 -4
  133. package/dist/util/xml.d.ts.map +1 -1
  134. package/dist/util/xml.js +106 -44
  135. package/dist/util/xml.js.map +1 -1
  136. package/dist/v3/bank-connection.d.ts +23 -3
  137. package/dist/v3/bank-connection.d.ts.map +1 -1
  138. package/dist/v3/bank-connection.js +66 -6
  139. package/dist/v3/bank-connection.js.map +1 -1
  140. package/dist/v3/dialog.d.ts +6 -2
  141. package/dist/v3/dialog.d.ts.map +1 -1
  142. package/dist/v3/dialog.js +20 -9
  143. package/dist/v3/dialog.js.map +1 -1
  144. package/dist/v3/message.d.ts +18 -10
  145. package/dist/v3/message.d.ts.map +1 -1
  146. package/dist/v3/message.js +92 -75
  147. package/dist/v3/message.js.map +1 -1
  148. package/dist/v3/parameter-store.d.ts +43 -7
  149. package/dist/v3/parameter-store.d.ts.map +1 -1
  150. package/dist/v3/parameter-store.js +69 -15
  151. package/dist/v3/parameter-store.js.map +1 -1
  152. package/dist/v3/parameters.d.ts +12 -11
  153. package/dist/v3/parameters.d.ts.map +1 -1
  154. package/dist/v3/parameters.js +57 -35
  155. package/dist/v3/parameters.js.map +1 -1
  156. package/dist/v3/protocol.d.ts +16 -9
  157. package/dist/v3/protocol.d.ts.map +1 -1
  158. package/dist/v3/protocol.js +57 -26
  159. package/dist/v3/protocol.js.map +1 -1
  160. package/dist/v3/queries.d.ts +2 -2
  161. package/dist/v3/queries.d.ts.map +1 -1
  162. package/dist/v3/queries.js +24 -16
  163. package/dist/v3/queries.js.map +1 -1
  164. package/dist/v3/segments.d.ts +18 -11
  165. package/dist/v3/segments.d.ts.map +1 -1
  166. package/dist/v3/segments.js +30 -21
  167. package/dist/v3/segments.js.map +1 -1
  168. package/dist/v3/syntax.d.ts +15 -11
  169. package/dist/v3/syntax.d.ts.map +1 -1
  170. package/dist/v3/syntax.js +30 -15
  171. package/dist/v3/syntax.js.map +1 -1
  172. package/package.json +1 -1
  173. package/src/client.ts +58 -17
  174. package/src/core/account.ts +91 -35
  175. package/src/core/amount.ts +42 -9
  176. package/src/core/balance.ts +6 -0
  177. package/src/core/bank-info.ts +28 -4
  178. package/src/core/client.ts +42 -15
  179. package/src/core/config.ts +37 -18
  180. package/src/core/errors.ts +27 -7
  181. package/src/core/feedback.ts +12 -1
  182. package/src/core/transaction.ts +13 -0
  183. package/src/core/transport.ts +62 -16
  184. package/src/formats/camt.ts +62 -51
  185. package/src/formats/mt940.ts +114 -78
  186. package/src/formats/readers.ts +6 -2
  187. package/src/formats/sepa-purpose.ts +17 -9
  188. package/src/session/dialog-runner.ts +34 -7
  189. package/src/session/login-guard.ts +29 -13
  190. package/src/session/session-setup.ts +27 -9
  191. package/src/session/session-state.ts +25 -8
  192. package/src/session/signed-dialog.ts +60 -30
  193. package/src/session/user-prompts.ts +28 -3
  194. package/src/tan/challenge.ts +50 -36
  195. package/src/tan/flicker.ts +40 -29
  196. package/src/tan/tan-image.ts +9 -2
  197. package/src/tan/tan-models.ts +16 -2
  198. package/src/util/arguments.ts +40 -0
  199. package/src/util/async.ts +10 -4
  200. package/src/util/bytes.ts +3 -3
  201. package/src/util/dates.ts +52 -38
  202. package/src/util/errors.ts +9 -4
  203. package/src/util/immutable-map.ts +15 -12
  204. package/src/util/inspect.ts +14 -0
  205. package/src/util/text.ts +47 -5
  206. package/src/util/xml.ts +105 -38
  207. package/src/v3/bank-connection.ts +65 -6
  208. package/src/v3/dialog.ts +18 -8
  209. package/src/v3/message.ts +81 -72
  210. package/src/v3/parameter-store.ts +82 -16
  211. package/src/v3/parameters.ts +68 -41
  212. package/src/v3/protocol.ts +61 -28
  213. package/src/v3/queries.ts +26 -18
  214. package/src/v3/segments.ts +32 -20
  215. 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 differs from what the bank sent, by their text, as
24
- * `parseTanMedia` notes them. Saved with the state, as the medium in use is.
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
- /** The version of the bank parameter data a dialog reports: 0 where there are none, or only the anonymous dialog's. */
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
- /** The TAN medium `name` as the bank sent it in its list of TAN media; `name` itself for one it did not list. */
102
- tanMediumAsSent(name) {
103
- return this.tanMediumNames.get(name) ?? name;
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
- /** Restores what `saveState` saved; throws if `saved` is damaged, leaving the store unchanged. */
116
- restoreState(saved) {
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 or an earlier version does not tell, so its parameter data are fetched anew.
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 TAN medium names `saveState` saved; none in a state of the Dart package or an earlier version. */
135
- function readTanMediumNames(saved) {
136
- const names = readOptionalObject(saved, 'tanMediumNames') ?? {};
137
- return new Map(Object.entries(names).map(([name, asSent]) => {
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":"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"}
1
+ {"version":3,"file":"parameter-store.js","sourceRoot":"","sources":["../../src/v3/parameter-store.ts"],"names":[],"mappings":"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"}
@@ -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
- private encodedValue;
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
- private encodedValue;
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;AAsC1D,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAGjE;AAED,mGAAmG;AACnG,qBAAa,IAAI;IA4Bb,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE;IA3BvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IAEpE,mEAAmE;IACnE,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAE1C,kGAAkG;IAClG,QAAQ,CAAC,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAElC,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAExC,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IAEpE;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO;IA8BP,+GAA+G;IAC/G,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,gEAAgE;IAChE,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,yEAAyE;IACzE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,OAAO,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAMxF,gFAAgF;IAChF,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAIjD,8FAA8F;IAC9F,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS;IAQtF,iHAAiH;IACjH,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;CAGlD;AAsHD;;;GAGG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE;IAH1E,OAAO;IAMP,uDAAuD;IACvD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,gBAAgB;IAgB5D,mGAAmG;IACnG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIzC,uHAAuH;IACvH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAG/C;AAeD,wFAAwF;AACxF,qBAAa,IAAI;IA0Bb,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE;IAzBvC,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,+GAA+G;IAC/G,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IAEvC,iFAAiF;IACjF,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAEjD,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAEtC,OAAO,CAAC,YAAY,CAAqB;IAEzC,iHAAiH;IACjH,OAAO;IAkBP,gEAAgE;IAChE,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAItD,yEAAyE;IACzE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;CAMhH;AAiFD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,IAAI,GAAG,SAAS,EACrB,GAAG,EAAE,IAAI,GAAG,SAAS,EACrB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAChC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GACtD,MAAM,GAAG,SAAS,CAEpB;AA4BD,yFAAyF;AACzF,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAEpE;AAeD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAEtD"}
1
+ {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/v3/parameters.ts"],"names":[],"mappings":"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"}
@@ -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
- encodedValue;
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.integer(Hibpa.maxMessageSize),
68
- minTimeout: hibpa.integer(Hibpa.minTimeout),
69
- maxTimeout: hibpa.integer(Hibpa.maxTimeout),
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 (['HIBPA', 'HIKOM', 'HISHV', 'HIKPV'].includes(type))
132
+ if (generalParameterSegments.has(type))
125
133
  return true;
126
- if (type === 'HIRMS' || type === 'HIRMG')
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
- let hipins;
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(), { min: undefined, max: undefined });
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
- encodedValue;
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)?.trim();
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.trimStart().startsWith('{'))
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
- // Every version names the account as KTV2, by position: a sub-account or bank code the bank leaves out is empty.
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":"AAAA,uHAAuH;AAEvH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAC;AAY1D,iHAAiH;AACjH,MAAM,KAAK,GAAG;IACZ,OAAO,EAAE,CAAC;IACV,oCAAoC;IACpC,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;CACL,CAAC;AAEX;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,iEAAiE;AACjE,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,SAAS,OAAO,CAAI,MAAkC;IACpD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAU,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,qBAAqB,CAAC,GAAqB;IACzD,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,kBAAkB,CAAC,kCAAkC,CAAC,CAAC;IACxF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mGAAmG;AACnG,MAAM,OAAO,IAAI;IA4BJ;IA3BF,QAAQ,CAAW;IAE5B,iFAAiF;IAChE,cAAc,CAAqC;IAEpE,mEAAmE;IAC1D,UAAU,CAAuB;IAE1C,kGAAkG;IACzF,qBAAqB,CAAoB;IACzC,MAAM,CAAmB;IAElC,8CAA8C;IACrC,WAAW,CAAoB;IAExC,2DAA2D;IAC1C,QAAQ,CAA2C;IAEpE;;;OAGG;IACM,cAAc,CAAS;IAExB,YAAY,CAAqB;IAEzC,YACW,QAA4B,EACrC,KAAc,EACd,gBAAwB;QAFf,aAAQ,GAAR,QAAQ,CAAoB;QAIrC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC;YAC3B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,gBAAgB;YACzD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAChC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAC7C,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChD,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC5D,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;YACnD,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;YAC3C,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;SAC5C,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,MAAM,CACxC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CACzE,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,QAAQ;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAClC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;aAChD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,+GAA+G;IAC/G,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;IAClC,CAAC;IAED,gEAAgE;IAChE,IAAI,OAAO;QACT,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,YAAY,CAAC,GAAuB,EAAE,gBAAwB;QACnE,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QACvD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACvF,CAAC;IAED,gFAAgF;IAChF,MAAM,CAAC,aAAa,CAAC,WAAmB;QACtC,OAAO,KAAK,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1C,CAAC;IAED,8FAA8F;IAC9F,WAAW,CAAC,WAAmB,EAAE,WAAgC;QAC/D,IAAI,IAAwB,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/E,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,GAAG,IAAI,CAAC;gBAAE,IAAI,GAAG,OAAO,CAAC;QACzF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iHAAiH;IACjH,UAAU,CAAC,MAAiB;QAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACnE,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,QAA4B,EAAE,QAAkB;IACxE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC1F,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvE,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7G,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAU;IACpC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACpB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACvD,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,cAAc,CAAC,QAA4B;IAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,GAAG,KAAK,SAAS;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/D,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,uHAAuH;AACvH,SAAS,eAAe,CAAC,QAA4B;IACnD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC5D,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC7D,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACjE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wGAAwG;AACxG,MAAM,WAAW,GAAG;IAClB,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,CAAC;IACjB,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,eAAe,EAAE,CAAC;IAClB,8EAA8E;IAC9E,kBAAkB,EAAE,CAAC;IACrB,YAAY,EAAE,EAAE;IAChB,wBAAwB,EAAE,EAAE;IAC5B,iBAAiB,EAAE,EAAE;IACrB,wBAAwB,EAAE,EAAE;IAC5B,uBAAuB,EAAE,EAAE;IAC3B,sBAAsB,EAAE,EAAE;IAC1B,mBAAmB,EAAE,EAAE;IACvB,kBAAkB,EAAE,EAAE;IACtB,kBAAkB,EAAE,EAAE;IACtB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,EAAE;IAChB,kBAAkB,EAAE,EAAE;IACtB,gBAAgB,EAAE,EAAE;CACZ,CAAC;AAEX,SAAS,WAAW,CAAC,CAAU;IAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IAC1B,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,oDAAoD;IACpD,MAAM,eAAe,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAC5G,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACpC,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,sEAAsE;IACtE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,eAAe,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAsB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,CAAC,CAAS,EAAsB,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,8GAA8G;QAC9G,6GAA6G;QAC7G,MAAM,QAAQ,GACZ,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC;YACxC,KAAK,CAAC,WAAW,CAAC,wBAAwB,CAAC,KAAK,GAAG;YACnD,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,eAAe,GAAG,OAAO,KAAK,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;YAC3B,gBAAgB,EAAE,IAAI;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC;YAC3C,QAAQ;YACR,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;YACvC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI;YACrC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;YAC9C,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,GAAG;YAChD,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC;YACnD,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC;YAC1D,mBAAmB,EAAE,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,GAAG;YACnE,iBAAiB,EAAE,sBAAsB,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YAChF,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC;YACtD,SAAS,EAAE,eAAe,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YACtG,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;YACnF,8BAA8B,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;YAChG,4BAA4B,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5F,2BAA2B,EAAE,CAAC,eAAe,IAAI,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC,KAAK,GAAG;YAC9F,yBAAyB,EAAE,CAAC,eAAe,IAAI,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,GAAG;SAC3F,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAER;IAER;IAHX,YACmB,WAAyC;IAC1D,mDAAmD;IAC1C,SAA+D;QAFvD,gBAAW,GAAX,WAAW,CAA8B;QAEjD,cAAS,GAAT,SAAS,CAAsD;IACvE,CAAC;IAEJ,uDAAuD;IACvD,MAAM,CAAC,KAAK,CAAC,QAA4B;QACvC,IAAI,MAA2B,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC5D,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;gBAAE,MAAM,GAAG,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,gBAAgB,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QACrG,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC/C,uFAAuF;QACvF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,IAAI,KAAK,SAAS;gBAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,gBAAgB,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,mGAAmG;IACnG,WAAW,CAAC,WAAmB;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;IACpD,CAAC;IAED,uHAAuH;IACvH,gBAAgB,CAAC,WAAmB;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1E,CAAC;CACF;AAOD,uHAAuH;AACvH,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,6DAA6D;AAC7D,MAAM,eAAe,GAAG,cAAc,CAAC;AAEvC,wFAAwF;AACxF,MAAM,OAAO,IAAI;IA0BJ;IAzBX,wEAAwE;IAC/D,MAAM,CAAqB;IAEpC,+GAA+G;IACtG,OAAO,CAAS;IAEzB;;;OAGG;IACM,oBAAoB,CAAU;IAEvC,iFAAiF;IACxE,kBAAkB,CAAsB;IAEjD,mEAAmE;IAClD,OAAO,CAAsB;IAE9C,wCAAwC;IAC/B,QAAQ,CAAqB;IAE9B,YAAY,CAAqB;IAEzC,iHAAiH;IACjH,YACW,QAA4B,EACrC,KAAc,EACd,QAAiB,EACjB,eAAuB,EACvB,cAAsB;QAJb,aAAQ,GAAR,QAAQ,CAAoB;QAMrC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;QACrC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CACxG,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,gEAAgE;IAChE,IAAI,OAAO;QACT,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,OAAgB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACnG,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,YAAY,CAAC,GAAuB,EAAE,eAAuB,EAAE,cAAsB;QAC1F,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IACpG,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,mDAAmD;AACnD,SAAS,cAAc,CAAC,CAAU;IAChC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,SAAS,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,CAAU;IAC7B,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,CAAC;aACX,KAAK,CAAC,CAAC,CAAC;aACR,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,OAAO,CAAC,CAAU,EAAE,eAAuB,EAAE,cAAsB,EAAE,QAAiB;IAC7F,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IACxE,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO;QACL,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;QACnH,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,CAAU,EACV,eAAuB,EACvB,cAAsB,EACtB,QAAiB;IAEjB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IAC1B,iHAAiH;IACjH,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjE,4FAA4F;IAC5F,MAAM,MAAM,GACV,OAAO,IAAI,CAAC;QACV,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;QACvE,CAAC,CAAC,OAAO,KAAK,CAAC;YACb,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;YACvE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACtF,OAAO,IAAI,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM;QACrB,UAAU;QACV,WAAW,EAAE,OAAO,IAAI,cAAc;QACtC,QAAQ,EAAE,IAAI,IAAI,eAAe;QACjC,IAAI;QACJ,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACnC,QAAQ,EAAE,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACxE,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpF,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACnC,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC;QACtC,2BAA2B,EAAE,QAAQ;KACtC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,GAAqB,EACrB,GAAqB,EACrB,WAAmB,EACnB,WAAgC,EAChC,OAAuD;IAEvD,OAAO,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,kBAAkB,CACzB,GAAqB,EACrB,GAAqB,EACrB,WAAmB,EACnB,OAAuD;IAEvD,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IACjF,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC;IACtC,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,KAAK,CAAC,OAAgB,EAAE,WAAmB;IACzD,OAAO,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,SAAS,MAAM,CAAC,OAAgB,EAAE,WAAmB;IACnD,OAAO,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC;AAC7E,CAAC;AAED,yDAAyD;AACzD,SAAS,cAAc,CAAC,QAA4B;IAClD,OAAO,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/v3/parameters.ts"],"names":[],"mappings":"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"}
@@ -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
- * The PIN to sign a login with, the first message of a dialog.
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
- * Throws instead where the guard holds the PIN back (`PinGuard.pin`), or if the bank parameters rule out the PIN's
49
- * length: the bank would count such a PIN as a failed attempt. The later messages of a dialog, its end included, take
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 pinForLogin;
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
- * Aborts the request on its way, and sends nothing but dialog ends from now on: any other message fails with
55
- * `FinTsStateError` before it goes out, so that a call under way stops at its next one. The client calls it as soon as
56
- * it is closed, and `close` once it has ended its dialog.
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,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/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;AAOD;;;;GAIG;AACH,qBAAa,cAAc;IAQvB,QAAQ,CAAC,UAAU,EAAE,cAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK;IARxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAE5C,qFAAqF;IACrF,OAAO,CAAC,OAAO,CAAS;gBAGb,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;IA8BvB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAOnB;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAKlB,KAAK,IAAI,IAAI;CAGd"}
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"}