@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
@@ -7,6 +7,20 @@ import { buildMessage, decodeTransport, encodeTransport } from './message.js';
7
7
  import { Segments } from './segments.js';
8
8
  /** Customer ID the specification reserves for anonymous dialogs. */
9
9
  const anonymousCustomerId = '9999999999';
10
+ /**
11
+ * How long the request on its way when the client is closed may take, and then its dialog ends, where the transport
12
+ * takes the abort (`beginClose`).
13
+ */
14
+ const closingGraceMs = 5000;
15
+ /**
16
+ * Throws if `limits` rule out a message of `size` bytes, or the length of `loginPin`, the PIN of a login: `TypeError`
17
+ * for the PIN, which the bank would count as a failed attempt, and `FinTsProtocolError` for the size.
18
+ */
19
+ function checkLimits(limits, size, loginPin) {
20
+ if (loginPin !== undefined)
21
+ requirePinLength(loginPin, limits.pinLength?.min, limits.pinLength?.max);
22
+ checkMessageSize(size, limits.maxMessageSize);
23
+ }
10
24
  /** Whether `segments` are those of a dialog end, the one message a closing client still sends. */
11
25
  function isDialogEnd(segments) {
12
26
  return segments.length === 1 && segments[0].type === 'HKEND';
@@ -21,8 +35,9 @@ export class FinTs3Protocol {
21
35
  guard;
22
36
  config;
23
37
  connection;
24
- /** Whether the client is closing, so that only dialog ends go out (`beginClose`). */
25
38
  closing = false;
39
+ /** The error with which the limits last stopped a login (`stoppedLogin`). */
40
+ stoppedLoginError;
26
41
  constructor(parameters, guard, transport, logger) {
27
42
  this.parameters = parameters;
28
43
  this.guard = guard;
@@ -58,25 +73,27 @@ export class FinTs3Protocol {
58
73
  if (this.closing && !isDialogEnd(message.segments))
59
74
  throw clientClosedError();
60
75
  const signing = message.signing;
76
+ const security = signing === undefined
77
+ ? undefined
78
+ : {
79
+ countryCode: this.config.countryCode,
80
+ bankCode: this.config.bankCode,
81
+ userId: this.config.userId,
82
+ systemId: signing.systemId,
83
+ pin: this.guard.pin,
84
+ securityFunction: signing.securityFunction,
85
+ };
61
86
  // The first message of a signed dialog logs in: from here on the bank may count the PIN.
62
- const login = signing !== undefined && message.number === 1;
87
+ const login = security !== undefined && message.number === 1;
63
88
  const outgoing = buildMessage({
64
89
  dialogId: message.dialogId,
65
90
  messageNumber: message.number,
66
91
  segments: message.segments,
67
- security: signing === undefined
68
- ? undefined
69
- : {
70
- countryCode: this.config.countryCode,
71
- bankCode: this.config.bankCode,
72
- userId: this.config.userId,
73
- systemId: signing.systemId,
74
- pin: login ? this.pinForLogin() : this.guard.pin,
75
- securityFunction: signing.securityFunction,
76
- },
92
+ security,
77
93
  tan: message.tan,
78
94
  });
79
- checkMessageSize(outgoing.bytes.length, this.parameters.bankParameters?.bankInfo.maxMessageSize);
95
+ this.checkOutgoing(outgoing.bytes.length, login ? security.pin : undefined);
96
+ this.connection.checkSendable();
80
97
  this.connection.log('outgoing', () => outgoing.masked);
81
98
  if (login)
82
99
  this.guard.loginSent();
@@ -85,26 +102,40 @@ export class FinTs3Protocol {
85
102
  return bytes;
86
103
  }
87
104
  /**
88
- * The PIN to sign a login with, the first message of a dialog.
105
+ * Throws if the limits of the parameter data rule out a message of `size` bytes, or the length of `loginPin`, the PIN
106
+ * of a login (`checkLimits`). The later messages of a dialog, its end included, take the PIN the bank has accepted,
107
+ * whatever the parameter data it delivered since say.
89
108
  *
90
- * Throws instead where the guard holds the PIN back (`PinGuard.pin`), or if the bank parameters rule out the PIN's
91
- * length: the bank would count such a PIN as a failed attempt. The later messages of a dialog, its end included, take
92
- * the PIN the bank has accepted, whatever the parameter data it delivered since say.
109
+ * Remembers the error that stops a login (`stoppedLogin`): the parameter data may be outdated, as saved ones are,
110
+ * and new ones would come only in answer to the login they rule out.
93
111
  */
94
- pinForLogin() {
95
- const pin = this.guard.pin;
96
- const length = this.parameters.bankParameters?.pinTan.pinLength;
97
- requirePinLength(pin, length?.min, length?.max);
98
- return pin;
112
+ checkOutgoing(size, loginPin) {
113
+ try {
114
+ checkLimits(this.parameters.limits, size, loginPin);
115
+ }
116
+ catch (error) {
117
+ if (loginPin !== undefined)
118
+ this.stoppedLoginError = error;
119
+ throw error;
120
+ }
121
+ }
122
+ /** Whether `error` is the one with which the limits of the parameter data last stopped a login. */
123
+ stoppedLogin(error) {
124
+ return this.stoppedLoginError !== undefined && this.stoppedLoginError === error;
125
+ }
126
+ /** Whether the client is closing, so that only dialog ends go out (`beginClose`). */
127
+ get isClosing() {
128
+ return this.closing;
99
129
  }
100
130
  /**
101
- * Aborts the request on its way, and sends nothing but dialog ends from now on: any other message fails with
102
- * `FinTsStateError` before it goes out, so that a call under way stops at its next one. The client calls it as soon as
103
- * it is closed, and `close` once it has ended its dialog.
131
+ * Sends nothing but dialog ends from now on: any other message fails with `FinTsStateError` before it goes out, so
132
+ * that a call under way stops at its next one. The request on its way has `closingGraceMs` to bring its answer, which
133
+ * counts as any other, and is aborted then; the dialog ends have as long again once it is over, and none goes out
134
+ * later. The client calls it as soon as it is closed, and `close` once it has ended its dialog.
104
135
  */
105
136
  beginClose() {
106
137
  this.closing = true;
107
- this.connection.abortRequests();
138
+ this.connection.abortRequestsAfter(closingGraceMs);
108
139
  }
109
140
  close() {
110
141
  this.connection.close();
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/v3/protocol.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAGvH,OAAO,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,oEAAoE;AACpE,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAiBzC,kGAAkG;AAClG,SAAS,WAAW,CAAC,QAAgC;IACnD,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,OAAO,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAQd;IACQ;IARF,MAAM,CAAc;IACpB,UAAU,CAAiB;IAE5C,qFAAqF;IAC7E,OAAO,GAAG,KAAK,CAAC;IAExB,YACW,UAA0B,EAClB,KAAe,EAChC,SAA0B,EAC1B,MAAsB;QAHb,eAAU,GAAV,UAAU,CAAgB;QAClB,UAAK,GAAL,KAAK,CAAU;QAIhC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,0FAA0F;IAC1F,YAAY,CAAC,QAAgB,EAAE,SAAS,GAAG,KAAK;QAC9C,OAAO;YACL,QAAQ,CAAC,cAAc,CAAC;gBACtB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;gBACpE,QAAQ;gBACR,gBAAgB,EAAE,CAAC,SAAS;aAC7B,CAAC;YACF,QAAQ,CAAC,qBAAqB,CAAC;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,kBAAkB;gBAC9C,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB;gBAC9D,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,cAAc,IAAI,CAAC;gBAC7D,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;aAC3C,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,OAMV;QACC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,MAAM,iBAAiB,EAAE,CAAC;QAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,yFAAyF;QACzF,MAAM,KAAK,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,YAAY,CAAC;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EACN,OAAO,KAAK,SAAS;gBACnB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;oBACpC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;oBAChD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;iBAC3C;YACP,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QACH,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;QACjG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACK,WAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC;QAChE,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IAClC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/v3/protocol.ts"],"names":[],"mappings":"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"}
@@ -42,8 +42,8 @@ export declare function balanceQuery(parameters: ParameterStore, account: Accoun
42
42
  * the bank knows it, with the transactions the bank permits for it and its currency (`SepaAccounts.complete`).
43
43
  *
44
44
  * The client reads camt.052 only, so camt counts as offered only where the bank offers a camt.052 format. With `auto`
45
- * the client takes camt where the bank offers it, unless the user parameter data list only MT940 transactions for the
46
- * account.
45
+ * the client takes camt where the bank offers it, unless MT940 can be requested for the account and the user parameter
46
+ * data list only MT940 transactions for it.
47
47
  *
48
48
  * Throws `FinTsUnsupportedError` if the bank does not offer the chosen format for the account.
49
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/v3/queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,KAAK,WAAW,CAAC;IAElE,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,KAAK,CAAC,CAAC;CAC1D;AAsBD,wHAAwH;AACxH,wBAAgB,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,CAYxF;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAQ1F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,aAAa,EAAE,GACjC,OAAO,CAOT;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAiBzF;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,EAAE,EAAE,IAAI,GAAG,SAAS,GACnB,KAAK,CAAC,WAAW,EAAE,CAAC,CAqDtB"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/v3/queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,KAAK,WAAW,CAAC;IAElE,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,KAAK,CAAC,CAAC;CAC1D;AAsBD,wHAAwH;AACxH,wBAAgB,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,CAYxF;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAQ1F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,aAAa,EAAE,GACjC,OAAO,CAOT;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAkBzF;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,EAAE,EAAE,IAAI,GAAG,SAAS,GACnB,KAAK,CAAC,WAAW,EAAE,CAAC,CA4DtB"}
@@ -62,8 +62,9 @@ export function balanceQuery(parameters, account) {
62
62
  if (offered === undefined) {
63
63
  throw new FinTsUnsupportedError('The bank reports no balance (HKSAL) for this account');
64
64
  }
65
+ const nationalAllowed = requireBankParameters(parameters.bankParameters).nationalAccountAllowed;
65
66
  return {
66
- order: (continuation) => Segments.balance(offered, account, continuation),
67
+ order: (continuation) => Segments.balance(offered, account, nationalAllowed, continuation),
67
68
  read: (pages) => parseBalance(balanceRecord(all(pages, 'HISAL'), account, pages.flatMap((p) => p.feedback)), account),
68
69
  };
69
70
  }
@@ -72,25 +73,32 @@ export function balanceQuery(parameters, account) {
72
73
  * the bank knows it, with the transactions the bank permits for it and its currency (`SepaAccounts.complete`).
73
74
  *
74
75
  * The client reads camt.052 only, so camt counts as offered only where the bank offers a camt.052 format. With `auto`
75
- * the client takes camt where the bank offers it, unless the user parameter data list only MT940 transactions for the
76
- * account.
76
+ * the client takes camt where the bank offers it, unless MT940 can be requested for the account and the user parameter
77
+ * data list only MT940 transactions for it.
77
78
  *
78
79
  * Throws `FinTsUnsupportedError` if the bank does not offer the chosen format for the account.
79
80
  */
80
81
  export function transactionsQuery(parameters, account, format, from, to) {
81
- const camtFormats = requireBankParameters(parameters.bankParameters).camtFormats.filter((f) => f.includes('camt.052'));
82
- const camtVersion = camtFormats.length === 0 ? undefined : version(parameters, 'HKCAZ', [1], { account });
82
+ const bpd = requireBankParameters(parameters.bankParameters);
83
+ const camtVersion = bpd.camtFormats.length === 0 ? undefined : version(parameters, 'HKCAZ', [1], { account });
84
+ const mt940Version = version(parameters, 'HKKAZ', [6, 7], { account });
83
85
  const camt = format === 'camt' ||
84
- (format === 'auto' && camtVersion !== undefined && (lists(account, 'HKCAZ') || !lists(account, 'HKKAZ')));
85
- const offered = camt ? camtVersion : version(parameters, 'HKKAZ', [6, 7], { account });
86
+ (format === 'auto' &&
87
+ camtVersion !== undefined &&
88
+ (mt940Version === undefined || lists(account, 'HKCAZ') || !lists(account, 'HKKAZ')));
89
+ const offered = camt ? camtVersion : mt940Version;
86
90
  if (offered === undefined) {
87
91
  throw new FinTsUnsupportedError(`The bank offers no ${camt ? 'camt ' : ''}transactions (${camt ? 'HKCAZ' : 'HKKAZ'}) for this account`);
88
92
  }
89
93
  if (camt) {
90
94
  return {
91
- order: (continuation) => Segments.transactionsCamt(offered, account, camtFormats, { from, to, continuation }),
95
+ order: (continuation) => Segments.transactionsCamt(offered, account, bpd.nationalAccountAllowed, bpd.camtFormats, {
96
+ from,
97
+ to,
98
+ continuation,
99
+ }),
92
100
  // The first element names the account, the third element group holds the booked documents, the fourth
93
- // element the pending one.
101
+ // element the pending one: binary data, which a bank may send as text instead.
94
102
  read: (pages) => {
95
103
  const segments = all(pages, 'HICAZ');
96
104
  if (!segments.every((s) => camtAccount(s).matches(account))) {
@@ -99,19 +107,19 @@ export function transactionsQuery(parameters, account, format, from, to) {
99
107
  return camtTransactions(segments.flatMap((s) => s
100
108
  .group(3)
101
109
  .filter((d) => !d.isEmpty)
102
- .map((d) => d.bytes)), segments.map((s) => s.binary(4)).filter((d) => d !== undefined));
110
+ .map((d) => d.bytes)), segments.map((s) => s.bytes(4)).filter((d) => d !== undefined));
103
111
  },
104
112
  };
105
113
  }
106
114
  return {
107
- order: (continuation) => Segments.transactionsMt940(offered, account, { from, to, continuation }),
108
- // The first element holds the booked transactions, the second the pending ones. Unlike HICAZ, HIKAZ names no
109
- // account, and banks write the account line of a statement (`:25:`) in many ways, so it is not compared with
110
- // `account`: a strict comparison would fail every query of such a bank.
115
+ order: (continuation) => Segments.transactionsMt940(offered, account, bpd.nationalAccountAllowed, { from, to, continuation }),
116
+ // The first element holds the booked transactions, the second the pending ones: binary data, which a bank may send
117
+ // as text instead. Unlike HICAZ, HIKAZ names no account, and banks write the account line of a statement (`:25:`)
118
+ // in many ways, so it is not compared with `account`: a strict comparison would fail every query of such a bank.
111
119
  read: (pages) => mt940Transactions(all(pages, 'HIKAZ')
112
- .map((s) => s.binary(1))
120
+ .map((s) => s.bytes(1))
113
121
  .filter((d) => d !== undefined), all(pages, 'HIKAZ')
114
- .map((s) => s.binary(2))
122
+ .map((s) => s.bytes(2))
115
123
  .filter((d) => d !== undefined),
116
124
  // The currency of statements that state none.
117
125
  account.currency),
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/v3/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/v3/queries.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Account } from '../core/account.js';
2
2
  import { Balance } from '../core/balance.js';
3
3
  import { TanMedium } from '../tan/tan-models.js';
4
- import { type Segment, SegmentSpec } from './syntax.js';
4
+ import { type Segment, SegmentSpec, Verbatim } from './syntax.js';
5
5
  /**
6
6
  * The filler the specification names for a reference that does not exist.
7
7
  *
@@ -35,23 +35,29 @@ export declare const Segments: Readonly<{
35
35
  dialogEnd(dialogId: string): SegmentSpec;
36
36
  /**
37
37
  * HKTAN process 4: asks for strong customer authentication of the `segmentType` sent in the same message, with the TAN
38
- * medium `mediumName`, as the bank sent it.
38
+ * medium `mediumName`: a `Verbatim` where it has to go back as the bank sent it (`ParameterStore.tanMediumToSend`).
39
39
  */
40
- tanProcess4(version: number, segmentType: string, mediumName?: string): SegmentSpec;
40
+ tanProcess4(version: number, segmentType: string, mediumName?: string | Verbatim): SegmentSpec;
41
41
  /** HKTAN process 2: submits the TAN (carried in the signature) for the order with `reference`. */
42
42
  tanProcess2(version: number, reference: string): SegmentSpec;
43
43
  /** HKTAN process S: asks whether the order with `reference` was approved in the banking app. */
44
44
  tanProcessStatus(version: number, reference: string): SegmentSpec;
45
- /** HKSAL: the balance of one account (not of all accounts). */
46
- balance(version: number, account: Account, continuation?: string): SegmentSpec;
47
- /** HKKAZ: MT940 transactions of one account. */
48
- transactionsMt940(version: number, account: Account, period: {
45
+ /**
46
+ * HKSAL: the balance of one account (not of all accounts), named by its national account as well where
47
+ * `nationalAllowed` (HISPAS).
48
+ */
49
+ balance(version: number, account: Account, nationalAllowed: boolean, continuation?: string): SegmentSpec;
50
+ /** HKKAZ: MT940 transactions of one account, named by its national account as well where `nationalAllowed`. */
51
+ transactionsMt940(version: number, account: Account, nationalAllowed: boolean, period: {
49
52
  from?: Date | undefined;
50
53
  to?: Date | undefined;
51
54
  continuation?: string | undefined;
52
55
  }): SegmentSpec;
53
- /** HKCAZ: camt transactions of one account in one of `formats`. */
54
- transactionsCamt(version: number, account: Account, formats: readonly string[], period: {
56
+ /**
57
+ * HKCAZ: camt transactions of one account in one of `formats`, named by its national account as well where
58
+ * `nationalAllowed`.
59
+ */
60
+ transactionsCamt(version: number, account: Account, nationalAllowed: boolean, formats: readonly string[], period: {
55
61
  from?: Date | undefined;
56
62
  to?: Date | undefined;
57
63
  continuation?: string | undefined;
@@ -99,8 +105,9 @@ export declare function parseSepaAccounts(s: Segment, defaultCountry: string, de
99
105
  /**
100
106
  * Parses the TAN media list (HITAB versions 4 and 5, PIN/TAN "TAN-Medium-Liste").
101
107
  *
102
- * Each name whose text is not what `Segment.verbatim` reads, such as a name in UTF-8, goes into `namesAsSent`, keyed
103
- * by its text: it has to go back as the bank sent it, which its text does not tell where it fits ISO 8859-1.
108
+ * Each name whose text would not go back as the bank sent it goes into `namesAsSent` as `Segment.verbatim` reads it,
109
+ * keyed by its text: a name in UTF-8, which its text does not tell where it fits ISO 8859-1, and one with blanks at
110
+ * either end, which text goes out without (Formals B.4.1).
104
111
  */
105
112
  export declare function parseTanMedia(s: Segment, namesAsSent?: Map<string, string>): TanMedium[];
106
113
  //# sourceMappingURL=segments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAqB,MAAM,sBAAsB,CAAC;AAIpE,OAAO,EAAE,KAAK,OAAO,EAAE,WAAW,EAAqB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAErF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,UAAU,CAAC;AA8BnC;;;GAGG;AACH,eAAO,MAAM,QAAQ;IACnB,4DAA4D;0BACtC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,GAAG,WAAW;IASf,2GAA2G;iCAC9E;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,WAAW;IAUf,gDAAgD;uBAC7B,WAAW;wBAIV,MAAM,GAAG,WAAW;IAIxC;;;OAGG;yBACkB,MAAM,eAAe,MAAM,eAAe,MAAM,GAAG,QAAQ,GAAG,WAAW;IAI9F,kGAAkG;yBAC7E,MAAM,aAAa,MAAM,GAAG,WAAW;IAQ5D,gGAAgG;8BACtE,MAAM,aAAa,MAAM,GAAG,WAAW;IAQjE;;;OAGG;qBACc,MAAM,WAAW,OAAO,mBAAmB,OAAO,iBAAiB,MAAM,GAAG,WAAW;IASxG,+GAA+G;+BAEpG,MAAM,WACN,OAAO,mBACC,OAAO,UAChB;QAAE,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;QAAC,EAAE,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAC5F,WAAW;IAWd;;;OAGG;8BAEQ,MAAM,WACN,OAAO,mBACC,OAAO,WACf,SAAS,MAAM,EAAE,UAClB;QAAE,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;QAAC,EAAE,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAC5F,WAAW;IAYd,2CAA2C;0BACrB,MAAM,iBAAiB,MAAM,GAAG,WAAW;IAIjE,2CAA2C;sBACzB,MAAM,GAAG,WAAW;EAGtC,CAAC;AAKH,0CAA0C;AAC1C,qBAAa,WAAW;IAEpB,mGAAmG;IACnG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IACpC,uFAAuF;IACvF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IACtC,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS;IACtC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS;;IAPvC,mGAAmG;IAC1F,OAAO,EAAE,MAAM,GAAG,SAAS;IACpC,uFAAuF;IAC9E,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,UAAU,EAAE,IAAI,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,GAAG,SAAS;IAGzC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW;IAWrC,kFAAkF;IAClF,IAAI,OAAO,IAAI,OAAO,CAErB;CACF;AA0BD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CA6BlE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAElD;AAED,sGAAsG;AACtG,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAE/C;AA2BD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAiBpG;AAQD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,CAqCxF"}
@@ -5,6 +5,7 @@ import { Balance } from '../core/balance.js';
5
5
  import { TanMedium, tanMediumStatusOf } from '../tan/tan-models.js';
6
6
  import { formatFintsDate, parseFintsDate, parseFintsDateTime } from '../util/dates.js';
7
7
  import { FormatError } from '../util/errors.js';
8
+ import { trimBlanks } from '../util/text.js';
8
9
  import { SegmentSpec, Verbatim } from './syntax.js';
9
10
  /**
10
11
  * The filler the specification names for a reference that does not exist.
@@ -21,9 +22,13 @@ function bankIdentification(countryCode, bankCode) {
21
22
  function nationalAccount(a) {
22
23
  return [a.accountNumber, a.subAccount, a.countryCode, a.bankCode];
23
24
  }
24
- /** International account (KTI): IBAN, BIC, then the national account. */
25
- function internationalAccount(a) {
26
- return [a.iban, a.bic, ...nationalAccount(a)];
25
+ /**
26
+ * International account (KTI): IBAN and BIC, then the national account where the bank allows it (HISPAS). An IBAN goes
27
+ * only with its BIC (Messages B.3.2): without one the national account names the account, where it has a number.
28
+ */
29
+ function internationalAccount(a, nationalAllowed) {
30
+ const iban = a.bic !== undefined || a.accountNumber === undefined ? a.iban : undefined;
31
+ return [iban, a.bic, ...(nationalAllowed || iban === undefined ? nationalAccount(a) : [])];
27
32
  }
28
33
  function dateOrEmpty(date) {
29
34
  return date === undefined ? undefined : formatFintsDate(date);
@@ -65,14 +70,10 @@ export const Segments = Object.freeze({
65
70
  },
66
71
  /**
67
72
  * HKTAN process 4: asks for strong customer authentication of the `segmentType` sent in the same message, with the TAN
68
- * medium `mediumName`, as the bank sent it.
73
+ * medium `mediumName`: a `Verbatim` where it has to go back as the bank sent it (`ParameterStore.tanMediumToSend`).
69
74
  */
70
75
  tanProcess4(version, segmentType, mediumName) {
71
- return SegmentSpec.numbered('HKTAN', version, {
72
- 1: '4',
73
- 2: segmentType,
74
- [tanMediumField]: Verbatim.of(mediumName),
75
- });
76
+ return SegmentSpec.numbered('HKTAN', version, { 1: '4', 2: segmentType, [tanMediumField]: mediumName });
76
77
  },
77
78
  /** HKTAN process 2: submits the TAN (carried in the signature) for the order with `reference`. */
78
79
  tanProcess2(version, reference) {
@@ -90,19 +91,22 @@ export const Segments = Object.freeze({
90
91
  [moreTansField]: false,
91
92
  });
92
93
  },
93
- /** HKSAL: the balance of one account (not of all accounts). */
94
- balance(version, account, continuation) {
94
+ /**
95
+ * HKSAL: the balance of one account (not of all accounts), named by its national account as well where
96
+ * `nationalAllowed` (HISPAS).
97
+ */
98
+ balance(version, account, nationalAllowed, continuation) {
95
99
  return new SegmentSpec('HKSAL', version, [
96
- version >= 7 ? internationalAccount(account) : nationalAccount(account),
100
+ version >= 7 ? internationalAccount(account, nationalAllowed) : nationalAccount(account),
97
101
  false,
98
102
  null,
99
103
  Verbatim.of(continuation),
100
104
  ]);
101
105
  },
102
- /** HKKAZ: MT940 transactions of one account. */
103
- transactionsMt940(version, account, period) {
106
+ /** HKKAZ: MT940 transactions of one account, named by its national account as well where `nationalAllowed`. */
107
+ transactionsMt940(version, account, nationalAllowed, period) {
104
108
  return new SegmentSpec('HKKAZ', version, [
105
- version >= 7 ? internationalAccount(account) : nationalAccount(account),
109
+ version >= 7 ? internationalAccount(account, nationalAllowed) : nationalAccount(account),
106
110
  false,
107
111
  dateOrEmpty(period.from),
108
112
  dateOrEmpty(period.to),
@@ -110,10 +114,13 @@ export const Segments = Object.freeze({
110
114
  Verbatim.of(period.continuation),
111
115
  ]);
112
116
  },
113
- /** HKCAZ: camt transactions of one account in one of `formats`. */
114
- transactionsCamt(version, account, formats, period) {
117
+ /**
118
+ * HKCAZ: camt transactions of one account in one of `formats`, named by its national account as well where
119
+ * `nationalAllowed`.
120
+ */
121
+ transactionsCamt(version, account, nationalAllowed, formats, period) {
115
122
  return new SegmentSpec('HKCAZ', version, [
116
- internationalAccount(account),
123
+ internationalAccount(account, nationalAllowed),
117
124
  formats,
118
125
  false,
119
126
  dateOrEmpty(period.from),
@@ -283,8 +290,9 @@ const accountWidth = 4;
283
290
  /**
284
291
  * Parses the TAN media list (HITAB versions 4 and 5, PIN/TAN "TAN-Medium-Liste").
285
292
  *
286
- * Each name whose text is not what `Segment.verbatim` reads, such as a name in UTF-8, goes into `namesAsSent`, keyed
287
- * by its text: it has to go back as the bank sent it, which its text does not tell where it fits ISO 8859-1.
293
+ * Each name whose text would not go back as the bank sent it goes into `namesAsSent` as `Segment.verbatim` reads it,
294
+ * keyed by its text: a name in UTF-8, which its text does not tell where it fits ISO 8859-1, and one with blanks at
295
+ * either end, which text goes out without (Formals B.4.1).
288
296
  */
289
297
  export function parseTanMedia(s, namesAsSent) {
290
298
  // Version 5 adds the security function in front of the card number.
@@ -303,8 +311,9 @@ export function parseTanMedia(s, namesAsSent) {
303
311
  continue;
304
312
  const name = fields[after + 3];
305
313
  const nameAsSent = s.verbatim(i, after + 3);
306
- if (name !== undefined && nameAsSent !== undefined && nameAsSent !== name)
314
+ if (name !== undefined && nameAsSent !== undefined && nameAsSent !== trimBlanks(name)) {
307
315
  namesAsSent?.set(name, nameAsSent);
316
+ }
308
317
  media.push(new TanMedium({
309
318
  mediumClass,
310
319
  status: tanMediumStatusOf(fields[1]),
@@ -1 +1 @@
1
- {"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ export declare class Segment {
29
29
  private readonly source;
30
30
  private readonly start;
31
31
  private readonly end;
32
+ private typeValue;
32
33
  constructor(elements: readonly (readonly DataElement[])[],
33
34
  /** The bytes the segment was read from: `start` to `end` in `source`, terminator included. */
34
35
  source: Uint8Array, start: number, end: number);
@@ -40,6 +41,8 @@ export declare class Segment {
40
41
  text(index: number, sub?: number): string | undefined;
41
42
  /** The binary data at `index`; `undefined` for an element that holds text. */
42
43
  binary(index: number, sub?: number): Uint8Array | undefined;
44
+ /** The binary data or the text without escape characters at `index`; `undefined` for an empty element. */
45
+ bytes(index: number, sub?: number): Uint8Array | undefined;
43
46
  /**
44
47
  * The element at `index` as the bank sent it, for a value the client sends back, such as the dialog ID: untrimmed,
45
48
  * and one character per byte (ISO 8859-1, the FinTS 3.0 character set), so that `Verbatim` gives the bank back the
@@ -61,26 +64,27 @@ export declare class Segment {
61
64
  */
62
65
  export declare function encodeText(value: string): Uint8Array;
63
66
  /**
64
- * The data elements one message may hold, segment headers and group elements included: several times what the
65
- * parameter data of a user with hundreds of accounts take, and few enough that a hostile message cannot exhaust the
66
- * memory, at about `dataElementMemory` bytes each.
67
+ * The data elements and segments one parse may produce together, segment headers and group elements included: what
68
+ * the user parameter data of 6,000 accounts take, at about 155 data elements each, which is about what 9,999 KB, the
69
+ * largest message size HIBPA can state, hold of real data. Without a limit, a message of nothing but separators would
70
+ * take a hundred times its size in memory.
71
+ *
72
+ * @internal Exported for the tests.
67
73
  */
68
- export declare const maxDataElements = 200000;
74
+ export declare const maxParts = 1000000;
69
75
  /**
70
- * The memory a data element of a received message takes, in bytes, with its share of the segment and of a return code:
71
- * about this much in V8, however few bytes of the message it is made of.
76
+ * What `IncomingMessage3.size` counts for each data element it keeps: more than any of them takes once parsed, so that
77
+ * a message of many short elements counts as the memory it holds rather than its bytes.
72
78
  */
73
- export declare const dataElementMemory = 256;
79
+ export declare const parsedElementBytes = 512;
74
80
  /**
75
81
  * Splits a FinTS 3.0 message into segments, resolving escapes and binary data (`@length@bytes`).
76
82
  *
77
83
  * The elements share the memory of `data`. Throws `FormatError` for anything a complete message cannot hold: a
78
84
  * malformed binary length, binary data beyond the end of `data` or not followed by a separator, a last segment without
79
- * terminator, and more elements than `budget` has left, which parses of the same message share.
85
+ * terminator, and more than `maxParts` data elements and segments, an empty one included.
80
86
  */
81
- export declare function parseSegments(data: Uint8Array, budget?: {
82
- elements: number;
83
- }): Segment[];
87
+ export declare function parseSegments(data: Uint8Array): Segment[];
84
88
  /** Binary data in a segment to send, written as `@length@bytes`. */
85
89
  export declare class Binary {
86
90
  readonly bytes: Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../src/v3/syntax.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../src/v3/syntax.ts"],"names":[],"mappings":"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"}