@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
@@ -99,10 +99,14 @@ export declare class FinTs3Dialog {
99
99
  * The bank assigns the dialog ID in its answer to the first message, so the answer to another user's first message
100
100
  * passes for it (`ParameterStore.reportedUpdVersion`). Any other answer to another message fails with
101
101
  * `FinTsProtocolError` before anything of it is kept: a relay or proxy that mixes up answers would hand the client
102
- * another user's data, or a page of another query.
102
+ * another user's data, or a page of another query. Only the bank's dialog abort message may name the dialog or the
103
+ * message as unknown instead (`IncomingMessage3.aborts`), so that its text reaches the user.
103
104
  *
104
105
  * The dialog ends on the client's side, without a dialog end, where it is over for the bank: after a return code that
105
- * ends it, such as 9800, and after a rejected opening message (Formals C.1.2), or a broken connection (C.6).
106
+ * ends it, such as 9800, a dialog abort message, a rejected opening message (Formals C.1.2), or a broken connection
107
+ * (C.6). A request that fails while the client is closing, as one it aborts (`FinTs3Protocol.beginClose`), leaves the
108
+ * dialog active instead, since the bank may have received it: its end follows under the next number. Not so where
109
+ * the request opened the dialog, whose ID only the answer tells.
106
110
  *
107
111
  * Only an answer that does not reject the whole message starts the idle time anew (`hasEnded`): a rejection may come
108
112
  * from a bank that has ended the dialog without saying so.
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/v3/dialog.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAiB/C,wGAAwG;AACxG,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IAEjC,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAEhD,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B,+GAA+G;IAC/G,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;CAC9D;AAED;;;GAGG;AACH,qBAAa,YAAY;IAUrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,KAAK,CAAS;IAEtB,8GAA8G;IAC9G,OAAO,CAAC,UAAU,CAAqB;IAEvC,OAAO;IAUP,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY;IAI5F,2EAA2E;IAC3E,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,YAAY;IAIxD,+DAA+D;IAC/D,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;OAKG;IACH,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,WAAW,GAMtB;IAED,0GAA0G;IAC1G,OAAO,KAAK,SAAS,GAEpB;IAED,sGAAsG;IACtG,OAAO,KAAK,UAAU,GAErB;IAED,uFAAuF;IACvF,KAAK,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASrD;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG;QAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;KACjD;IAWD;;;;;OAKG;IACH,qBAAqB,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOrE,2FAA2F;IAC3F,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMnD;;;;OAIG;IACG,GAAG,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAWlD,mGAAmG;IACnG,OAAO,IAAI,IAAI;IAIf;;;;;;;;OAQG;IACH,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS;IA8BnF,OAAO,CAAC,UAAU;IASlB;;;;;;;;;;;;;;OAcG;YACW,YAAY;CA4B3B"}
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/v3/dialog.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAiB/C,wGAAwG;AACxG,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IAEjC,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAEhD,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B,+GAA+G;IAC/G,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;CAC9D;AAED;;;GAGG;AACH,qBAAa,YAAY;IAUrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,KAAK,CAAS;IAEtB,8GAA8G;IAC9G,OAAO,CAAC,UAAU,CAAqB;IAEvC,OAAO;IAUP,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY;IAI5F,2EAA2E;IAC3E,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,YAAY;IAIxD,+DAA+D;IAC/D,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;OAKG;IACH,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,WAAW,GAMtB;IAED,0GAA0G;IAC1G,OAAO,KAAK,SAAS,GAEpB;IAED,sGAAsG;IACtG,OAAO,KAAK,UAAU,GAErB;IAED,uFAAuF;IACvF,KAAK,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASrD;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG;QAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;KACjD;IAWD;;;;;OAKG;IACH,qBAAqB,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOrE,2FAA2F;IAC3F,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMnD;;;;OAIG;IACG,GAAG,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAWlD,mGAAmG;IACnG,OAAO,IAAI,IAAI;IAIf;;;;;;;;OAQG;IACH,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS;IAgCnF,OAAO,CAAC,UAAU;IASlB;;;;;;;;;;;;;;;;;;OAkBG;YACW,YAAY;CAgC3B"}
package/dist/v3/dialog.js CHANGED
@@ -5,7 +5,7 @@ import { challengeText, TanChallenge } from '../tan/challenge.js';
5
5
  import { TanMethod } from '../tan/tan-models.js';
6
6
  import { IncomingMessage3 } from './message.js';
7
7
  import { requireBankParameters } from './parameters.js';
8
- import { Segments, TanResponse } from './segments.js';
8
+ import { noReference, Segments, TanResponse } from './segments.js';
9
9
  /** Dialog ID of a dialog the bank has not answered yet, and customer system ID before synchronization. */
10
10
  const unassigned = '0';
11
11
  /** The first version of HKTAN that supports strong customer authentication. */
@@ -161,6 +161,8 @@ export class FinTs3Dialog {
161
161
  throw new FinTsProtocolError('The bank asks for an app approval, which needs HKTAN version 7');
162
162
  }
163
163
  const reference = tan.reference;
164
+ // The placeholder the dialog that looks up the TAN media sends, and the bank may echo, is no medium.
165
+ const medium = tan.mediumName ?? this.tanMedium;
164
166
  return {
165
167
  challenge: TanChallenge.create({
166
168
  method: this.method,
@@ -169,7 +171,7 @@ export class FinTs3Dialog {
169
171
  hhdUc: tan.hhdUc,
170
172
  isDecoupled: decoupled || this.method.decoupled,
171
173
  validUntil: tan.validUntil,
172
- tanMediumName: tan.mediumName ?? this.tanMedium,
174
+ tanMediumName: medium === noReference ? undefined : medium,
173
175
  }),
174
176
  submitTan: (value) => this.sendSegments([Segments.tanProcess2(this.tanVersion, reference)], value),
175
177
  checkStatus: () => this.sendSegments([Segments.tanProcessStatus(this.tanVersion, reference)]),
@@ -180,7 +182,7 @@ export class FinTs3Dialog {
180
182
  }
181
183
  tanRequest(segmentType) {
182
184
  const medium = this.method.mediumRequirement === 'notAllowed' ? undefined : this.tanMedium;
183
- return Segments.tanProcess4(this.tanVersion, segmentType, medium === undefined ? undefined : this.protocol.parameters.tanMediumAsSent(medium));
185
+ return Segments.tanProcess4(this.tanVersion, segmentType, medium === undefined ? undefined : this.protocol.parameters.tanMediumToSend(medium));
184
186
  }
185
187
  /**
186
188
  * Sends `segments`, with `tan` where they complete an approval, as the next message, and reads the bank's answer. The
@@ -189,10 +191,14 @@ export class FinTs3Dialog {
189
191
  * The bank assigns the dialog ID in its answer to the first message, so the answer to another user's first message
190
192
  * passes for it (`ParameterStore.reportedUpdVersion`). Any other answer to another message fails with
191
193
  * `FinTsProtocolError` before anything of it is kept: a relay or proxy that mixes up answers would hand the client
192
- * another user's data, or a page of another query.
194
+ * another user's data, or a page of another query. Only the bank's dialog abort message may name the dialog or the
195
+ * message as unknown instead (`IncomingMessage3.aborts`), so that its text reaches the user.
193
196
  *
194
197
  * The dialog ends on the client's side, without a dialog end, where it is over for the bank: after a return code that
195
- * ends it, such as 9800, and after a rejected opening message (Formals C.1.2), or a broken connection (C.6).
198
+ * ends it, such as 9800, a dialog abort message, a rejected opening message (Formals C.1.2), or a broken connection
199
+ * (C.6). A request that fails while the client is closing, as one it aborts (`FinTs3Protocol.beginClose`), leaves the
200
+ * dialog active instead, since the bank may have received it: its end follows under the next number. Not so where
201
+ * the request opened the dialog, whose ID only the answer tells.
196
202
  *
197
203
  * Only an answer that does not reject the whole message starts the idle time anew (`hasEnded`): a rejection may come
198
204
  * from a bank that has ended the dialog without saying so.
@@ -212,21 +218,26 @@ export class FinTs3Dialog {
212
218
  });
213
219
  }
214
220
  catch (error) {
215
- if (error instanceof FinTsTransportError)
216
- this.discard();
221
+ if (error instanceof FinTsTransportError) {
222
+ if (this.protocol.isClosing && this.id !== unassigned)
223
+ this.messageNumber++;
224
+ else
225
+ this.discard();
226
+ }
217
227
  throw error;
218
228
  }
219
229
  this.messageNumber++;
220
230
  const response = parseBankData(() => IncomingMessage3.parse(answer));
221
231
  const assigned = this.id === unassigned ? undefined : this.id;
222
- if (!response.answers(number, assigned)) {
232
+ const aborted = response.aborts(number, assigned);
233
+ if (!aborted && !response.answers(number, assigned)) {
223
234
  throw new FinTsProtocolError('The answer belongs to another message than the one sent');
224
235
  }
225
236
  if (assigned === undefined)
226
237
  this.id = response.dialogId ?? unassigned;
227
238
  if (!response.messageRejected)
228
239
  this.lastAnswer = Date.now();
229
- if (endsDialog(response.feedback) || (number === 1 && response.messageRejected))
240
+ if (aborted || endsDialog(response.feedback) || (number === 1 && response.messageRejected))
230
241
  this.discard();
231
242
  return response;
232
243
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../src/v3/dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../src/v3/dialog.ts"],"names":[],"mappings":"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"}
@@ -13,12 +13,12 @@ export interface PinTanCredentials {
13
13
  /** A message to send, and the same message with PIN and TAN masked for logging. */
14
14
  export declare class OutgoingMessage {
15
15
  readonly bytes: Uint8Array;
16
- /** The parts of the masked message, each decoded on its own as the bank's text is. */
17
- private readonly maskedParts;
18
- constructor(bytes: Uint8Array,
19
- /** The parts of the masked message, each decoded on its own as the bank's text is. */
20
- maskedParts: readonly Uint8Array[]);
21
- /** The message with PIN and TAN masked; decoded only when a logger asks for it. */
16
+ private readonly buildMasked;
17
+ constructor(bytes: Uint8Array, buildMasked: () => Uint8Array);
18
+ /**
19
+ * The message with PIN and TAN masked; built only when a logger asks for it. It is decoded as a whole, as the bank's
20
+ * text is, so a message that mixes ISO 8859-1 text with UTF-8 text (`encodeText`) shows all of it as ISO 8859-1.
21
+ */
22
22
  get masked(): string;
23
23
  }
24
24
  /**
@@ -27,7 +27,8 @@ export declare class OutgoingMessage {
27
27
  * With `security` the segments are signed with PIN and optional `tan` (HNSHK … HNSHA) and wrapped in the encryption
28
28
  * envelope (HNVSK, HNVSD) that PIN/TAN uses without actual encryption.
29
29
  *
30
- * The masked message states the sizes of its masked content, so that the log does not tell how long PIN and TAN are.
30
+ * The masked message is built as the message is, from the same time stamp and security control reference, with `***`
31
+ * for PIN and TAN, so that the log does not tell how long they are.
31
32
  */
32
33
  export declare function buildMessage(parts: {
33
34
  dialogId: string;
@@ -55,10 +56,11 @@ export declare class IncomingMessage3 {
55
56
  /**
56
57
  * Parses a message; throws `FormatError` if `data` is not one complete FinTS message, such as the HTML page of a
57
58
  * proxy, a maintenance notice, a message cut short, which lacks the message trailer (HNHBS) at its end, or two
58
- * messages run together, whose second would pass for part of the first.
59
+ * messages run together, whose second would pass for part of the first. It does as well for more than one encrypted
60
+ * part (HNVSD), each of which `parseSegments` would allow as many data elements as the whole message.
59
61
  *
60
- * Its `size` counts the memory of its data elements along with its bytes, since a message of many short elements
61
- * takes far more memory than bytes.
62
+ * Its `size` counts the memory of the data elements it keeps along with its bytes, since a message of many short
63
+ * elements takes far more memory than bytes.
62
64
  */
63
65
  static parse(data: Uint8Array): IncomingMessage3;
64
66
  static combine(first: IncomingMessage3, second: IncomingMessage3): IncomingMessage3;
@@ -72,6 +74,12 @@ export declare class IncomingMessage3 {
72
74
  * the bank has assigned one; before, `dialogId` is `undefined`, since every first message goes out under the same.
73
75
  */
74
76
  answers(number: number, dialogId: string | undefined): boolean;
77
+ /**
78
+ * Whether the message is the bank's dialog abort message (Formals B.7.6) for message `number` of the dialog
79
+ * `dialogId`: unencrypted, with nothing but the header, an error for the whole message (HIRMG) and the trailer. Its
80
+ * header names the dialog ID and the message number where the bank knows them, and `unbekannt` and 9999 where not.
81
+ */
82
+ aborts(number: number, dialogId: string | undefined): boolean;
75
83
  find(type: string): Segment | undefined;
76
84
  findAll(type: string): Segment[];
77
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/v3/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD,OAAO,EAKL,KAAK,OAAO,EACZ,WAAW,EAGZ,MAAM,aAAa,CAAC;AAErB,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AA+DD,mFAAmF;AACnF,qBAAa,eAAe;IAExB,QAAQ,CAAC,KAAK,EAAE,UAAU;IAC1B,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFnB,KAAK,EAAE,UAAU;IAC1B,sFAAsF;IACrE,WAAW,EAAE,SAAS,UAAU,EAAE;IAGrD,mFAAmF;IACnF,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF;AASD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,eAAe,CAoBlB;AAgFD,iFAAiF;AACjF,qBAAa,gBAAgB;IAazB,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE;IACrC,+FAA+F;IAC/F,QAAQ,CAAC,IAAI,EAAE,MAAM;IAdvB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAE5C,6GAA6G;IAC7G,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC,OAAO;IAcP;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB;IAqBhD,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,GAAG,gBAAgB;IAInF,yDAAyD;IACzD,IAAI,YAAY,IAAI,WAAW,EAAE,CAEhC;IAED,mGAAmG;IACnG,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAe9D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE;CAGjC;AAmBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAS5D;AAaD,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAE/D"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/v3/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD,OAAO,EAIL,KAAK,OAAO,EACZ,WAAW,EAGZ,MAAM,aAAa,CAAC;AAErB,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAmED,mFAAmF;AACnF,qBAAa,eAAe;IAExB,QAAQ,CAAC,KAAK,EAAE,UAAU;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADnB,KAAK,EAAE,UAAU,EACT,WAAW,EAAE,MAAM,UAAU;IAGhD;;;OAGG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF;AAQD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,eAAe,CAWlB;AAgED,iFAAiF;AACjF,qBAAa,gBAAgB;IAazB,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE;IACrC,+FAA+F;IAC/F,QAAQ,CAAC,IAAI,EAAE,MAAM;IAdvB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAE5C,6GAA6G;IAC7G,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC,OAAO;IAcP;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB;IAgChD,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,GAAG,gBAAgB;IAInF,yDAAyD;IACzD,IAAI,YAAY,IAAI,WAAW,EAAE,CAEhC;IAED,mGAAmG;IACnG,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAe9D;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAY7D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE;CAGjC;AAmBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAS5D;AAaD,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAE/D"}
@@ -2,11 +2,11 @@
2
2
  import { BankMessage } from '../core/bank-info.js';
3
3
  import { FinTsFeedback } from '../core/feedback.js';
4
4
  import { TanMethod } from '../tan/tan-models.js';
5
- import { base64Encode, BytesBuilder, latin1Encode, utf8Decode } from '../util/bytes.js';
5
+ import { base64Encode, concatBytes, latin1Encode, utf8Decode } from '../util/bytes.js';
6
6
  import { formatFintsDate, formatFintsTime } from '../util/dates.js';
7
7
  import { FormatError } from '../util/errors.js';
8
8
  import { decodeBankText, decodeBase64Lines } from '../util/text.js';
9
- import { Binary, dataElementMemory, maxDataElements, parseSegments, SegmentSpec, Verbatim, } from './syntax.js';
9
+ import { Binary, parsedElementBytes, parseSegments, SegmentSpec, Verbatim, } from './syntax.js';
10
10
  function isTwoStep(c) {
11
11
  return c.securityFunction !== TanMethod.oneStep.securityFunction;
12
12
  }
@@ -43,10 +43,14 @@ const noCompression = 0;
43
43
  function keyName(c, keyType) {
44
44
  return [c.countryCode, c.bankCode, c.userId, keyType, 0, 0];
45
45
  }
46
- /** A random integer from 0 below `bound`, from a cryptographically secure source. */
46
+ /** A random integer from 0 below `bound`, each equally likely, from a cryptographically secure source. */
47
47
  function secureRandom(bound) {
48
+ // Values from the last multiple of `bound` on cover only the low remainders, which they would make more likely.
49
+ const limit = 2 ** 32 - (2 ** 32 % bound);
48
50
  const values = new Uint32Array(1);
49
- crypto.getRandomValues(values);
51
+ do {
52
+ crypto.getRandomValues(values);
53
+ } while (values[0] >= limit);
50
54
  return values[0] % bound;
51
55
  }
52
56
  /** A random 14-digit reference that ties the signature head (HNSHK) to the signature end (HNSHA). */
@@ -56,16 +60,17 @@ function securityControlReference() {
56
60
  /** A message to send, and the same message with PIN and TAN masked for logging. */
57
61
  export class OutgoingMessage {
58
62
  bytes;
59
- maskedParts;
60
- constructor(bytes,
61
- /** The parts of the masked message, each decoded on its own as the bank's text is. */
62
- maskedParts) {
63
+ buildMasked;
64
+ constructor(bytes, buildMasked) {
63
65
  this.bytes = bytes;
64
- this.maskedParts = maskedParts;
66
+ this.buildMasked = buildMasked;
65
67
  }
66
- /** The message with PIN and TAN masked; decoded only when a logger asks for it. */
68
+ /**
69
+ * The message with PIN and TAN masked; built only when a logger asks for it. It is decoded as a whole, as the bank's
70
+ * text is, so a message that mixes ISO 8859-1 text with UTF-8 text (`encodeText`) shows all of it as ISO 8859-1.
71
+ */
67
72
  get masked() {
68
- return this.maskedParts.map(decodeBankText).join('');
73
+ return decodeBankText(this.buildMasked());
69
74
  }
70
75
  }
71
76
  /**
@@ -74,69 +79,59 @@ export class OutgoingMessage {
74
79
  * With `security` the segments are signed with PIN and optional `tan` (HNSHK … HNSHA) and wrapped in the encryption
75
80
  * envelope (HNVSK, HNVSD) that PIN/TAN uses without actual encryption.
76
81
  *
77
- * The masked message states the sizes of its masked content, so that the log does not tell how long PIN and TAN are.
82
+ * The masked message is built as the message is, from the same time stamp and security control reference, with `***`
83
+ * for PIN and TAN, so that the log does not tell how long they are.
78
84
  */
79
85
  export function buildMessage(parts) {
80
- const body = parts.security === undefined
81
- ? plainBody(parts.segments)
82
- : signedBody(parts.segments, parts.security, parts.tan, parts.now ?? new Date());
86
+ const { security, tan } = parts;
87
+ if (security === undefined) {
88
+ const bytes = withHeaderAndTrailer(parts, plainBody(parts.segments));
89
+ return new OutgoingMessage(bytes, () => bytes);
90
+ }
91
+ const time = parts.now ?? new Date();
92
+ const controlReference = securityControlReference();
93
+ const build = (pin, tanValue) => withHeaderAndTrailer(parts, signedBody(parts.segments, security, pin, tanValue, time, controlReference));
94
+ return new OutgoingMessage(build(security.pin, tan), () => build('***', tan === undefined ? undefined : '***'));
95
+ }
96
+ /** `body` between the header and the trailer of message `messageNumber` of the dialog `dialogId`. */
97
+ function withHeaderAndTrailer(parts, body) {
83
98
  const trailer = new SegmentSpec('HNHBS', 1, [parts.messageNumber]).build(body.nextNumber);
84
- // The header states the size of the whole message, itself included; its own size does not depend on it.
85
99
  const header = (size) => new SegmentSpec('HNHBK', 3, [
86
100
  size.toString().padStart(12, '0'),
87
101
  300,
88
102
  new Verbatim(parts.dialogId),
89
103
  parts.messageNumber,
90
104
  ]).build(1);
91
- const sizeOf = (sections) => header(0).length + lengthOf(sections) + trailer.length;
92
- const result = new BytesBuilder();
93
- result.add(header(sizeOf([body.bytes])));
94
- result.add(body.bytes);
95
- result.add(trailer);
96
- return new OutgoingMessage(result.takeBytes(), [header(sizeOf(body.masked)), ...body.masked, trailer]);
97
- }
98
- /** The number of bytes in `parts` together. */
99
- function lengthOf(parts) {
100
- return parts.reduce((sum, part) => sum + part.length, 0);
105
+ // The header states the size of the whole message, itself included; its own size does not depend on it.
106
+ const size = header(0).length + body.segments.reduce((sum, s) => sum + s.length, 0) + trailer.length;
107
+ return concatBytes([header(size), ...body.segments, trailer]);
101
108
  }
102
109
  /** The segments of a message without security, as the anonymous dialog sends them. */
103
110
  function plainBody(segments) {
104
- const built = segments.map((segment, i) => segment.build(i + 2));
105
- const bytes = new BytesBuilder();
106
- built.forEach((b) => {
107
- bytes.add(b);
108
- });
109
- return { bytes: bytes.takeBytes(), masked: built, nextNumber: built.length + 2 };
111
+ return { segments: segments.map((segment, i) => segment.build(i + 2)), nextNumber: segments.length + 2 };
110
112
  }
111
- /** The segments signed with PIN and optional `tan`, inside the encryption envelope. */
112
- function signedBody(segments, security, tan, time) {
113
+ /** The segments signed with `pin` and optional `tan`, inside the encryption envelope. */
114
+ function signedBody(segments, security, pin, tan, time, controlReference) {
113
115
  const profile = ['PIN', isTwoStep(security) ? 2 : 1];
114
- const controlReference = securityControlReference();
115
- const inner = new BytesBuilder();
116
- const maskedInner = [];
117
- const addInner = (built, masked) => {
118
- inner.add(built);
119
- maskedInner.push(masked ?? built);
120
- };
121
- addInner(new SegmentSpec('HNSHK', 4, [
122
- profile,
123
- security.securityFunction,
124
- controlReference,
125
- signedArea,
126
- issuer,
127
- sender(security.systemId),
128
- securityReference,
129
- timestamp(time),
130
- hashAlgorithm,
131
- signatureAlgorithm,
132
- keyName(security, 'S'),
133
- ]).build(2));
116
+ const inner = [
117
+ new SegmentSpec('HNSHK', 4, [
118
+ profile,
119
+ security.securityFunction,
120
+ controlReference,
121
+ signedArea,
122
+ issuer,
123
+ sender(security.systemId),
124
+ securityReference,
125
+ timestamp(time),
126
+ hashAlgorithm,
127
+ signatureAlgorithm,
128
+ keyName(security, 'S'),
129
+ ]).build(2),
130
+ ];
134
131
  let number = 3;
135
132
  for (const segment of segments)
136
- addInner(segment.build(number++));
137
- const signatureEnd = (pin, tanValue) => new SegmentSpec('HNSHA', 2, [controlReference, null, [pin, tanValue]]);
138
- addInner(signatureEnd(security.pin, tan).build(number), signatureEnd('***', tan === undefined ? undefined : '***').build(number));
139
- const innerBytes = inner.takeBytes();
133
+ inner.push(segment.build(number++));
134
+ inner.push(new SegmentSpec('HNSHA', 2, [controlReference, null, [pin, tan]]).build(number));
140
135
  const encryptionHead = new SegmentSpec('HNVSK', 3, [
141
136
  profile,
142
137
  plainText,
@@ -147,16 +142,8 @@ function signedBody(segments, security, tan, time) {
147
142
  keyName(security, 'V'),
148
143
  noCompression,
149
144
  ]).build(998);
150
- const bytes = new BytesBuilder();
151
- bytes.add(encryptionHead);
152
- bytes.add(new SegmentSpec('HNVSD', 1, [new Binary(innerBytes)]).build(999));
153
- const masked = [
154
- encryptionHead,
155
- latin1Encode(`HNVSD:999:1+@${lengthOf(maskedInner)}@`),
156
- ...maskedInner,
157
- latin1Encode("'"),
158
- ];
159
- return { bytes: bytes.takeBytes(), masked, nextNumber: number + 1 };
145
+ const encryptedData = new SegmentSpec('HNVSD', 1, [new Binary(concatBytes(inner))]).build(999);
146
+ return { segments: [encryptionHead, encryptedData], nextNumber: number + 1 };
160
147
  }
161
148
  /** A received message, with the segments of the encryption envelope unpacked. */
162
149
  export class IncomingMessage3 {
@@ -185,14 +172,23 @@ export class IncomingMessage3 {
185
172
  /**
186
173
  * Parses a message; throws `FormatError` if `data` is not one complete FinTS message, such as the HTML page of a
187
174
  * proxy, a maintenance notice, a message cut short, which lacks the message trailer (HNHBS) at its end, or two
188
- * messages run together, whose second would pass for part of the first.
175
+ * messages run together, whose second would pass for part of the first. It does as well for more than one encrypted
176
+ * part (HNVSD), each of which `parseSegments` would allow as many data elements as the whole message.
189
177
  *
190
- * Its `size` counts the memory of its data elements along with its bytes, since a message of many short elements
191
- * takes far more memory than bytes.
178
+ * Its `size` counts the memory of the data elements it keeps along with its bytes, since a message of many short
179
+ * elements takes far more memory than bytes.
192
180
  */
193
181
  static parse(data) {
194
- const budget = { elements: maxDataElements };
195
- const outer = parseSegments(data, budget);
182
+ let outer = [];
183
+ try {
184
+ outer = parseSegments(data);
185
+ }
186
+ catch (error) {
187
+ // Text that is no FinTS message, such as a web page, seldom ends with a segment terminator; that it has no
188
+ // message header says more than what the parser trips over first.
189
+ if (!(error instanceof FormatError) || startsWithMessageHeader(data))
190
+ throw error;
191
+ }
196
192
  if (outer[0]?.type !== 'HNHBK')
197
193
  throw new FormatError('Not a FinTS message: no message header');
198
194
  if (outer.at(-1)?.type !== 'HNHBS')
@@ -200,6 +196,9 @@ export class IncomingMessage3 {
200
196
  if (outer.filter((s) => s.type === 'HNHBK' || s.type === 'HNHBS').length > 2) {
201
197
  throw new FormatError('More than one FinTS message');
202
198
  }
199
+ if (outer.filter((s) => s.type === 'HNVSD').length > 1) {
200
+ throw new FormatError('More than one encrypted part (HNVSD)');
201
+ }
203
202
  const segments = [];
204
203
  for (const s of outer) {
205
204
  if (s.type !== 'HNVSD') {
@@ -209,10 +208,14 @@ export class IncomingMessage3 {
209
208
  const payload = s.binary(1);
210
209
  if (payload === undefined)
211
210
  throw new FormatError('Encrypted data (HNVSD) without binary data');
212
- for (const inner of parseSegments(payload, budget))
211
+ for (const inner of parseSegments(payload))
213
212
  segments.push(inner);
214
213
  }
215
- return new IncomingMessage3(segments, data.length + (maxDataElements - budget.elements) * dataElementMemory);
214
+ let elements = 0;
215
+ for (const s of segments)
216
+ for (const group of s.elements)
217
+ elements += group.length;
218
+ return new IncomingMessage3(segments, data.length + elements * parsedElementBytes);
216
219
  }
217
220
  static combine(first, second) {
218
221
  return new IncomingMessage3([...first.segments, ...second.segments], first.size + second.size);
@@ -243,6 +246,20 @@ export class IncomingMessage3 {
243
246
  inDialog(header.verbatim(3)) &&
244
247
  (!namesReference || (header.integer(5, 1) === number && inDialog(header.verbatim(5, 0)))));
245
248
  }
249
+ /**
250
+ * Whether the message is the bank's dialog abort message (Formals B.7.6) for message `number` of the dialog
251
+ * `dialogId`: unencrypted, with nothing but the header, an error for the whole message (HIRMG) and the trailer. Its
252
+ * header names the dialog ID and the message number where the bank knows them, and `unbekannt` and 9999 where not.
253
+ */
254
+ aborts(number, dialogId) {
255
+ const header = this.segments[0];
256
+ const id = header.verbatim(3);
257
+ const messageNumber = header.integer(4);
258
+ return (this.segments.length === 3 &&
259
+ this.messageRejected &&
260
+ (id === 'unbekannt' || id === dialogId) &&
261
+ (messageNumber === 9999 || messageNumber === number));
262
+ }
246
263
  find(type) {
247
264
  return this.segments.find((s) => s.type === type);
248
265
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/v3/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/v3/message.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,17 @@ import type { FinTsConfig } from '../core/config.js';
2
2
  import { type JsonObject } from '../util/json.js';
3
3
  import type { IncomingMessage3 } from './message.js';
4
4
  import { Bpd3, Upd3 } from './parameters.js';
5
+ import { Verbatim } from './syntax.js';
6
+ /** The limits the bank parameter data set on the messages the client sends (`ParameterStore.limits`). */
7
+ export interface MessageLimits {
8
+ /** The shortest and longest PIN a login may carry. */
9
+ readonly pinLength: {
10
+ readonly min: number | undefined;
11
+ readonly max: number | undefined;
12
+ } | undefined;
13
+ /** The size of the largest message, in kilobytes. */
14
+ readonly maxMessageSize: number | undefined;
15
+ }
5
16
  /**
6
17
  * The parameter data and IDs the bank sends the user `config` names, which the messages and business transactions
7
18
  * take, and which the saved state keeps: the bank and user parameter data, the customer system ID, and the names of
@@ -18,10 +29,13 @@ export declare class ParameterStore {
18
29
  * the bank send its parameter data anew.
19
30
  */
20
31
  private bpdAnonymous;
32
+ /** The limits a refresh took from the anonymous dialog's parameter data (`keepRefreshedLimits`). */
33
+ private refreshedLimits;
21
34
  private upd;
22
35
  /**
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.
36
+ * 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
37
+ * text, as `parseTanMedia` notes them (`readTanMediumNames` for a state of 0.2.0). Saved with the state, as the
38
+ * medium in use is.
25
39
  */
26
40
  private tanMediumNames;
27
41
  constructor(config: FinTsConfig);
@@ -34,7 +48,15 @@ export declare class ParameterStore {
34
48
  * before. No dialog signed with the PIN starts without it.
35
49
  */
36
50
  get systemId(): string | undefined;
37
- /** The version of the bank parameter data a dialog reports: 0 where there are none, or only the anonymous dialog's. */
51
+ /**
52
+ * The limits on the messages the client sends: those of the bank parameter data, unless a refresh took others
53
+ * (`keepRefreshedLimits`).
54
+ */
55
+ get limits(): MessageLimits;
56
+ /**
57
+ * The version of the bank parameter data a dialog reports: 0 where there are none, only the anonymous dialog's, or
58
+ * where limits a refresh took stand in for theirs (`keepRefreshedLimits`).
59
+ */
38
60
  get reportedBpdVersion(): number;
39
61
  /**
40
62
  * The version of the user parameter data a signed dialog reports: 0 where there are none, or where they name another
@@ -62,14 +84,28 @@ export declare class ParameterStore {
62
84
  * since it may send a user other ones (PIN/TAN B.4.3.1). Keeps nothing that belongs to a user.
63
85
  */
64
86
  keepAnonymous(response: IncomingMessage3): void;
87
+ /**
88
+ * Keeps the limits of the bank parameter data in `response`, the answer of an anonymous dialog the client asked for
89
+ * after the limits kept ruled out a login: those may be outdated, as saved ones are. Parameter data of the version
90
+ * 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
91
+ * those of another version it keeps the limits only, and the PIN lengths only where they state them (HIPINS). They
92
+ * stand in for those kept until a dialog signed with the PIN brings parameter data.
93
+ */
94
+ keepRefreshedLimits(response: IncomingMessage3): void;
65
95
  private keepBankParameters;
66
96
  /** Keeps `names`, the names of the bank's latest list of TAN media as `parseTanMedia` notes them. */
67
97
  keepTanMediumNames(names: Map<string, string>): void;
68
- /** The TAN medium `name` as the bank sent it in its list of TAN media; `name` itself for one it did not list. */
69
- tanMediumAsSent(name: string): string;
98
+ /**
99
+ * The TAN medium `name` to send: as the bank sent it, where its last list of TAN media noted that (`parseTanMedia`);
100
+ * otherwise as text, which goes out without the blanks at either end a name the app passes may have.
101
+ */
102
+ tanMediumToSend(name: string): string | Verbatim;
70
103
  /** The parameter data and IDs as JSON data, for the client's saved state. */
71
104
  saveState(): JsonObject;
72
- /** Restores what `saveState` saved; throws if `saved` is damaged, leaving the store unchanged. */
73
- restoreState(saved: JsonObject): void;
105
+ /**
106
+ * Restores what `saveState` saved, with `tanMedium`, the medium in use the state holds; throws if `saved` is damaged,
107
+ * leaving the store unchanged.
108
+ */
109
+ restoreState(saved: JsonObject, tanMedium?: string): void;
74
110
  }
75
111
  //# sourceMappingURL=parameter-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parameter-store.d.ts","sourceRoot":"","sources":["../../src/v3/parameter-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAA+D,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,IAAI,EAAkB,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,cAAc;IAmBb,QAAQ,CAAC,MAAM,EAAE,WAAW;IAlBxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,GAAG,CAAmB;IAE9B;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,GAAG,CAAmB;IAE9B;;;OAGG;IACH,OAAO,CAAC,cAAc,CAA6B;gBAE9B,MAAM,EAAE,WAAW;IAExC,uDAAuD;IACvD,IAAI,cAAc,IAAI,IAAI,GAAG,SAAS,CAErC;IAED,uDAAuD;IACvD,IAAI,cAAc,IAAI,IAAI,GAAG,SAAS,CAErC;IAED;;;OAGG;IACH,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,uHAAuH;IACvH,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED;;;;;;OAMG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAG/B;IAED;;;;OAIG;IACH,cAAc,IAAI,OAAO;IAOzB;;;;OAIG;IACH,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAMtC;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI/C,OAAO,CAAC,kBAAkB;IAO1B,qGAAqG;IACrG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIpD,iHAAiH;IACjH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIrC,6EAA6E;IAC7E,SAAS,IAAI,UAAU;IAUvB,kGAAkG;IAClG,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAkBtC"}
1
+ {"version":3,"file":"parameter-store.d.ts","sourceRoot":"","sources":["../../src/v3/parameter-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAA+D,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE/G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,IAAI,EAAkB,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,yGAAyG;AACzG,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,CAAC;IAEvG,qDAAqD;IACrD,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED;;;;GAIG;AACH,qBAAa,cAAc;IAuBb,QAAQ,CAAC,MAAM,EAAE,WAAW;IAtBxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,GAAG,CAAmB;IAE9B;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAS;IAE7B,oGAAoG;IACpG,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,GAAG,CAAmB;IAE9B;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAA6B;gBAE9B,MAAM,EAAE,WAAW;IAExC,uDAAuD;IACvD,IAAI,cAAc,IAAI,IAAI,GAAG,SAAS,CAErC;IAED,uDAAuD;IACvD,IAAI,cAAc,IAAI,IAAI,GAAG,SAAS,CAErC;IAED;;;OAGG;IACH,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,aAAa,CAG1B;IAED;;;OAGG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED;;;;;;OAMG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAG/B;IAED;;;;OAIG;IACH,cAAc,IAAI,OAAO;IAOzB;;;;OAIG;IACH,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAMtC;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI/C;;;;;;OAMG;IACH,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IASrD,OAAO,CAAC,kBAAkB;IAQ1B,qGAAqG;IACrG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIpD;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ;IAKhD,6EAA6E;IAC7E,SAAS,IAAI,UAAU;IAWvB;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;CAmB1D"}