@coderoftime/fints 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/CHANGELOG.md +377 -0
  2. package/README.md +31 -23
  3. package/dist/client.d.ts +3 -2
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +52 -9
  6. package/dist/client.js.map +1 -1
  7. package/dist/core/account.d.ts +15 -4
  8. package/dist/core/account.d.ts.map +1 -1
  9. package/dist/core/account.js +84 -36
  10. package/dist/core/account.js.map +1 -1
  11. package/dist/core/amount.d.ts +13 -3
  12. package/dist/core/amount.d.ts.map +1 -1
  13. package/dist/core/amount.js +42 -8
  14. package/dist/core/amount.js.map +1 -1
  15. package/dist/core/balance.d.ts +3 -0
  16. package/dist/core/balance.d.ts.map +1 -1
  17. package/dist/core/balance.js +5 -0
  18. package/dist/core/balance.js.map +1 -1
  19. package/dist/core/bank-info.d.ts +20 -3
  20. package/dist/core/bank-info.d.ts.map +1 -1
  21. package/dist/core/bank-info.js +25 -4
  22. package/dist/core/bank-info.js.map +1 -1
  23. package/dist/core/client.d.ts +42 -15
  24. package/dist/core/client.d.ts.map +1 -1
  25. package/dist/core/config.d.ts +15 -7
  26. package/dist/core/config.d.ts.map +1 -1
  27. package/dist/core/config.js +29 -14
  28. package/dist/core/config.js.map +1 -1
  29. package/dist/core/errors.d.ts +17 -5
  30. package/dist/core/errors.d.ts.map +1 -1
  31. package/dist/core/errors.js +25 -7
  32. package/dist/core/errors.js.map +1 -1
  33. package/dist/core/feedback.d.ts +7 -0
  34. package/dist/core/feedback.d.ts.map +1 -1
  35. package/dist/core/feedback.js +10 -1
  36. package/dist/core/feedback.js.map +1 -1
  37. package/dist/core/transaction.d.ts +5 -0
  38. package/dist/core/transaction.d.ts.map +1 -1
  39. package/dist/core/transaction.js +12 -0
  40. package/dist/core/transaction.js.map +1 -1
  41. package/dist/core/transport.d.ts +22 -7
  42. package/dist/core/transport.d.ts.map +1 -1
  43. package/dist/core/transport.js +51 -11
  44. package/dist/core/transport.js.map +1 -1
  45. package/dist/formats/camt.d.ts +7 -4
  46. package/dist/formats/camt.d.ts.map +1 -1
  47. package/dist/formats/camt.js +53 -54
  48. package/dist/formats/camt.js.map +1 -1
  49. package/dist/formats/mt940.d.ts +18 -6
  50. package/dist/formats/mt940.d.ts.map +1 -1
  51. package/dist/formats/mt940.js +83 -66
  52. package/dist/formats/mt940.js.map +1 -1
  53. package/dist/formats/readers.d.ts.map +1 -1
  54. package/dist/formats/readers.js +6 -2
  55. package/dist/formats/readers.js.map +1 -1
  56. package/dist/formats/sepa-purpose.d.ts +7 -4
  57. package/dist/formats/sepa-purpose.d.ts.map +1 -1
  58. package/dist/formats/sepa-purpose.js +18 -9
  59. package/dist/formats/sepa-purpose.js.map +1 -1
  60. package/dist/session/dialog-runner.d.ts +5 -2
  61. package/dist/session/dialog-runner.d.ts.map +1 -1
  62. package/dist/session/dialog-runner.js +23 -7
  63. package/dist/session/dialog-runner.js.map +1 -1
  64. package/dist/session/login-guard.d.ts +4 -4
  65. package/dist/session/login-guard.d.ts.map +1 -1
  66. package/dist/session/login-guard.js +29 -14
  67. package/dist/session/login-guard.js.map +1 -1
  68. package/dist/session/session-setup.d.ts +14 -5
  69. package/dist/session/session-setup.d.ts.map +1 -1
  70. package/dist/session/session-setup.js +30 -9
  71. package/dist/session/session-setup.js.map +1 -1
  72. package/dist/session/session-state.d.ts +4 -3
  73. package/dist/session/session-state.d.ts.map +1 -1
  74. package/dist/session/session-state.js +28 -9
  75. package/dist/session/session-state.js.map +1 -1
  76. package/dist/session/signed-dialog.d.ts +19 -13
  77. package/dist/session/signed-dialog.d.ts.map +1 -1
  78. package/dist/session/signed-dialog.js +45 -30
  79. package/dist/session/signed-dialog.js.map +1 -1
  80. package/dist/session/user-prompts.d.ts +6 -1
  81. package/dist/session/user-prompts.d.ts.map +1 -1
  82. package/dist/session/user-prompts.js +19 -4
  83. package/dist/session/user-prompts.js.map +1 -1
  84. package/dist/tan/challenge.d.ts +15 -13
  85. package/dist/tan/challenge.d.ts.map +1 -1
  86. package/dist/tan/challenge.js +32 -26
  87. package/dist/tan/challenge.js.map +1 -1
  88. package/dist/tan/flicker.d.ts +5 -1
  89. package/dist/tan/flicker.d.ts.map +1 -1
  90. package/dist/tan/flicker.js +42 -30
  91. package/dist/tan/flicker.js.map +1 -1
  92. package/dist/tan/tan-image.d.ts +4 -1
  93. package/dist/tan/tan-image.d.ts.map +1 -1
  94. package/dist/tan/tan-image.js +8 -2
  95. package/dist/tan/tan-image.js.map +1 -1
  96. package/dist/tan/tan-models.d.ts +9 -1
  97. package/dist/tan/tan-models.d.ts.map +1 -1
  98. package/dist/tan/tan-models.js +14 -2
  99. package/dist/tan/tan-models.js.map +1 -1
  100. package/dist/util/arguments.d.ts +13 -0
  101. package/dist/util/arguments.d.ts.map +1 -0
  102. package/dist/util/arguments.js +40 -0
  103. package/dist/util/arguments.js.map +1 -0
  104. package/dist/util/async.d.ts +4 -1
  105. package/dist/util/async.d.ts.map +1 -1
  106. package/dist/util/async.js +6 -3
  107. package/dist/util/async.js.map +1 -1
  108. package/dist/util/bytes.d.ts +1 -1
  109. package/dist/util/bytes.d.ts.map +1 -1
  110. package/dist/util/bytes.js +3 -3
  111. package/dist/util/bytes.js.map +1 -1
  112. package/dist/util/dates.d.ts +3 -10
  113. package/dist/util/dates.d.ts.map +1 -1
  114. package/dist/util/dates.js +49 -39
  115. package/dist/util/dates.js.map +1 -1
  116. package/dist/util/errors.d.ts +5 -3
  117. package/dist/util/errors.d.ts.map +1 -1
  118. package/dist/util/errors.js +8 -4
  119. package/dist/util/errors.js.map +1 -1
  120. package/dist/util/immutable-map.d.ts +5 -2
  121. package/dist/util/immutable-map.d.ts.map +1 -1
  122. package/dist/util/immutable-map.js +15 -12
  123. package/dist/util/immutable-map.js.map +1 -1
  124. package/dist/util/inspect.d.ts +11 -0
  125. package/dist/util/inspect.d.ts.map +1 -0
  126. package/dist/util/inspect.js +14 -0
  127. package/dist/util/inspect.js.map +1 -0
  128. package/dist/util/text.d.ts +18 -2
  129. package/dist/util/text.d.ts.map +1 -1
  130. package/dist/util/text.js +50 -5
  131. package/dist/util/text.js.map +1 -1
  132. package/dist/util/xml.d.ts +6 -4
  133. package/dist/util/xml.d.ts.map +1 -1
  134. package/dist/util/xml.js +106 -44
  135. package/dist/util/xml.js.map +1 -1
  136. package/dist/v3/bank-connection.d.ts +23 -3
  137. package/dist/v3/bank-connection.d.ts.map +1 -1
  138. package/dist/v3/bank-connection.js +66 -6
  139. package/dist/v3/bank-connection.js.map +1 -1
  140. package/dist/v3/dialog.d.ts +6 -2
  141. package/dist/v3/dialog.d.ts.map +1 -1
  142. package/dist/v3/dialog.js +20 -9
  143. package/dist/v3/dialog.js.map +1 -1
  144. package/dist/v3/message.d.ts +18 -10
  145. package/dist/v3/message.d.ts.map +1 -1
  146. package/dist/v3/message.js +92 -75
  147. package/dist/v3/message.js.map +1 -1
  148. package/dist/v3/parameter-store.d.ts +43 -7
  149. package/dist/v3/parameter-store.d.ts.map +1 -1
  150. package/dist/v3/parameter-store.js +69 -15
  151. package/dist/v3/parameter-store.js.map +1 -1
  152. package/dist/v3/parameters.d.ts +12 -11
  153. package/dist/v3/parameters.d.ts.map +1 -1
  154. package/dist/v3/parameters.js +57 -35
  155. package/dist/v3/parameters.js.map +1 -1
  156. package/dist/v3/protocol.d.ts +16 -9
  157. package/dist/v3/protocol.d.ts.map +1 -1
  158. package/dist/v3/protocol.js +57 -26
  159. package/dist/v3/protocol.js.map +1 -1
  160. package/dist/v3/queries.d.ts +2 -2
  161. package/dist/v3/queries.d.ts.map +1 -1
  162. package/dist/v3/queries.js +24 -16
  163. package/dist/v3/queries.js.map +1 -1
  164. package/dist/v3/segments.d.ts +18 -11
  165. package/dist/v3/segments.d.ts.map +1 -1
  166. package/dist/v3/segments.js +30 -21
  167. package/dist/v3/segments.js.map +1 -1
  168. package/dist/v3/syntax.d.ts +15 -11
  169. package/dist/v3/syntax.d.ts.map +1 -1
  170. package/dist/v3/syntax.js +30 -15
  171. package/dist/v3/syntax.js.map +1 -1
  172. package/package.json +1 -1
  173. package/src/client.ts +58 -17
  174. package/src/core/account.ts +91 -35
  175. package/src/core/amount.ts +42 -9
  176. package/src/core/balance.ts +6 -0
  177. package/src/core/bank-info.ts +28 -4
  178. package/src/core/client.ts +42 -15
  179. package/src/core/config.ts +37 -18
  180. package/src/core/errors.ts +27 -7
  181. package/src/core/feedback.ts +12 -1
  182. package/src/core/transaction.ts +13 -0
  183. package/src/core/transport.ts +62 -16
  184. package/src/formats/camt.ts +62 -51
  185. package/src/formats/mt940.ts +114 -78
  186. package/src/formats/readers.ts +6 -2
  187. package/src/formats/sepa-purpose.ts +17 -9
  188. package/src/session/dialog-runner.ts +34 -7
  189. package/src/session/login-guard.ts +29 -13
  190. package/src/session/session-setup.ts +27 -9
  191. package/src/session/session-state.ts +25 -8
  192. package/src/session/signed-dialog.ts +60 -30
  193. package/src/session/user-prompts.ts +28 -3
  194. package/src/tan/challenge.ts +50 -36
  195. package/src/tan/flicker.ts +40 -29
  196. package/src/tan/tan-image.ts +9 -2
  197. package/src/tan/tan-models.ts +16 -2
  198. package/src/util/arguments.ts +40 -0
  199. package/src/util/async.ts +10 -4
  200. package/src/util/bytes.ts +3 -3
  201. package/src/util/dates.ts +52 -38
  202. package/src/util/errors.ts +9 -4
  203. package/src/util/immutable-map.ts +15 -12
  204. package/src/util/inspect.ts +14 -0
  205. package/src/util/text.ts +47 -5
  206. package/src/util/xml.ts +105 -38
  207. package/src/v3/bank-connection.ts +65 -6
  208. package/src/v3/dialog.ts +18 -8
  209. package/src/v3/message.ts +81 -72
  210. package/src/v3/parameter-store.ts +82 -16
  211. package/src/v3/parameters.ts +68 -41
  212. package/src/v3/protocol.ts +61 -28
  213. package/src/v3/queries.ts +26 -18
  214. package/src/v3/segments.ts +32 -20
  215. package/src/v3/syntax.ts +31 -14
@@ -1 +1 @@
1
- {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../src/core/amount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../src/core/amount.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { inspectCustom } from '../util/inspect.js';
1
2
  import type { Account } from './account.js';
2
3
  import type { Amount } from './amount.js';
3
4
  /** What `Balance` takes; the bank states the amounts it knows. */
@@ -51,5 +52,7 @@ export declare class Balance {
51
52
  * account data.
52
53
  */
53
54
  toString(): string;
55
+ /** What Node.js's `util.inspect` and `console.log` show: `toString`, not the fields. */
56
+ [inspectCustom](): string;
54
57
  }
55
58
  //# sourceMappingURL=balance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/core/balance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,IAAI,CAAC;IACjB,cAAc,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,+CAA+C;AAC/C,qBAAa,OAAO;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAE1B,8GAA8G;IAC9G,QAAQ,CAAC,cAAc,EAAE,IAAI,GAAG,SAAS,CAAC;IAE1C,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAErC,gCAAgC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC,oGAAoG;IACpG,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC;IAEvC,+GAA+G;IAC/G,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC;IAEvC,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzC,gGAAgG;gBACpF,IAAI,EAAE,WAAW;IAe7B;;;OAGG;IACH,QAAQ,IAAI,MAAM;CAGnB"}
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/core/balance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,IAAI,CAAC;IACjB,cAAc,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,+CAA+C;AAC/C,qBAAa,OAAO;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAE1B,8GAA8G;IAC9G,QAAQ,CAAC,cAAc,EAAE,IAAI,GAAG,SAAS,CAAC;IAE1C,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAErC,gCAAgC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,+CAA+C;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC,oGAAoG;IACpG,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC;IAEvC,+GAA+G;IAC/G,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,SAAS,CAAC;IAEvC,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzC,gGAAgG;gBACpF,IAAI,EAAE,WAAW;IAe7B;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB,wFAAwF;IACxF,CAAC,aAAa,CAAC,IAAI,MAAM;CAG1B"}
@@ -1,4 +1,5 @@
1
1
  import { copyDate, formatIsoDate } from '../util/dates.js';
2
+ import { inspectCustom } from '../util/inspect.js';
2
3
  /** Account balance as reported by the bank. */
3
4
  export class Balance {
4
5
  /** The account the balance belongs to. */
@@ -50,5 +51,9 @@ export class Balance {
50
51
  toString() {
51
52
  return `Balance(${this.account.toString()}, ${formatIsoDate(this.bookedAsOf)})`;
52
53
  }
54
+ /** What Node.js's `util.inspect` and `console.log` show: `toString`, not the fields. */
55
+ [inspectCustom]() {
56
+ return this.toString();
57
+ }
53
58
  }
54
59
  //# sourceMappingURL=balance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/core/balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAoB3D,+CAA+C;AAC/C,MAAM,OAAO,OAAO;IAClB,0CAA0C;IACjC,OAAO,CAAU;IAE1B,+CAA+C;IACtC,MAAM,CAAS;IAExB;;;OAGG;IACM,UAAU,CAAO;IAE1B,8GAA8G;IACrG,cAAc,CAAmB;IAE1C,gFAAgF;IACvE,OAAO,CAAqB;IAErC,gCAAgC;IACvB,UAAU,CAAqB;IAExC,+CAA+C;IACtC,SAAS,CAAqB;IAEvC,mDAAmD;IAC1C,IAAI,CAAqB;IAElC,qDAAqD;IAC5C,SAAS,CAAqB;IAEvC,oGAAoG;IAC3F,WAAW,CAAmB;IAEvC,+GAA+G;IACtG,WAAW,CAAmB;IAEvC,gEAAgE;IACvD,WAAW,CAAqB;IAEzC,gGAAgG;IAChG,YAAY,IAAiB;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IAClF,CAAC;CACF"}
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/core/balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAoBnD,+CAA+C;AAC/C,MAAM,OAAO,OAAO;IAClB,0CAA0C;IACjC,OAAO,CAAU;IAE1B,+CAA+C;IACtC,MAAM,CAAS;IAExB;;;OAGG;IACM,UAAU,CAAO;IAE1B,8GAA8G;IACrG,cAAc,CAAmB;IAE1C,gFAAgF;IACvE,OAAO,CAAqB;IAErC,gCAAgC;IACvB,UAAU,CAAqB;IAExC,+CAA+C;IACtC,SAAS,CAAqB;IAEvC,mDAAmD;IAC1C,IAAI,CAAqB;IAElC,qDAAqD;IAC5C,SAAS,CAAqB;IAEvC,oGAAoG;IAC3F,WAAW,CAAmB;IAEvC,+GAA+G;IACtG,WAAW,CAAmB;IAEvC,gEAAgE;IACvD,WAAW,CAAqB;IAEzC,gGAAgG;IAChG,YAAY,IAAiB;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IAClF,CAAC;IAED,wFAAwF;IACxF,CAAC,aAAa,CAAC;QACb,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF"}
@@ -1,4 +1,8 @@
1
- /** General bank information from the bank parameter data (BPD). */
1
+ import { inspectCustom } from '../util/inspect.js';
2
+ /**
3
+ * General bank information from the bank parameter data (BPD). The maximum message size and the timeouts are
4
+ * `undefined` where the bank states none, or more than 9999, the four digits HIBPA allows.
5
+ */
2
6
  export declare class BankInfo {
3
7
  /** German bank code (BLZ). */
4
8
  readonly bankCode: string;
@@ -10,7 +14,7 @@ export declare class BankInfo {
10
14
  readonly supportedVersions: readonly string[];
11
15
  /** Languages the bank's messages come in, as codes the bank defines. */
12
16
  readonly languages: readonly string[];
13
- /** Largest message in kilobytes (1024 bytes) the bank accepts; the client sends nothing larger. */
17
+ /** Largest message in kilobytes (1024 bytes) the bank accepts, `0` for no limit; the client sends nothing larger. */
14
18
  readonly maxMessageSize: number | undefined;
15
19
  /**
16
20
  * Time in seconds before which a client must not send a life-indicator message to keep an idle dialog open, `0` for
@@ -32,8 +36,15 @@ export declare class BankInfo {
32
36
  minTimeout?: number | undefined;
33
37
  maxTimeout?: number | undefined;
34
38
  });
39
+ /** What Node.js's `util.inspect` and `console.log` show: the bank code and the version of the parameter data. */
40
+ [inspectCustom](): string;
35
41
  }
36
- /** Free-text message sent by the bank during login. */
42
+ /**
43
+ * Free-text message sent by the bank during login.
44
+ *
45
+ * Subject and text are the bank's, of any length: show them as text only, never as HTML (`innerHTML`, `v-html`), since
46
+ * they are no markup to trust.
47
+ */
37
48
  export declare class BankMessage {
38
49
  /** What the message is about. */
39
50
  readonly subject: string;
@@ -44,6 +55,12 @@ export declare class BankMessage {
44
55
  subject: string,
45
56
  /** The message itself. */
46
57
  text: string);
58
+ /**
59
+ * Neither subject nor text, which may address the user, so that logs and crash reports do not collect them; show
60
+ * `subject` and `text` to the user.
61
+ */
47
62
  toString(): string;
63
+ /** What Node.js's `util.inspect` and `console.log` show: `toString`, not the fields. */
64
+ [inspectCustom](): string;
48
65
  }
49
66
  //# sourceMappingURL=bank-info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bank-info.d.ts","sourceRoot":"","sources":["../../src/core/bank-info.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,qBAAa,QAAQ;IACnB,8BAA8B;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,0DAA0D;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAE9C,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAEtC,mGAAmG;IACnG,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5C;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE5B,IAAI,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACtC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACjC;CAUF;AAED,uDAAuD;AACvD,qBAAa,WAAW;IAEpB,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM;;IAHrB,iCAAiC;IACxB,OAAO,EAAE,MAAM;IACxB,0BAA0B;IACjB,IAAI,EAAE,MAAM;IAGvB,QAAQ,IAAI,MAAM;CAGnB"}
1
+ {"version":3,"file":"bank-info.d.ts","sourceRoot":"","sources":["../../src/core/bank-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,qBAAa,QAAQ;IACnB,8BAA8B;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,0DAA0D;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAE9C,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAEtC,qHAAqH;IACrH,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5C;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE5B,IAAI,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACtC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACjC;IAWD,iHAAiH;IACjH,CAAC,aAAa,CAAC,IAAI,MAAM;CAG1B;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IAEpB,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM;;IAHrB,iCAAiC;IACxB,OAAO,EAAE,MAAM;IACxB,0BAA0B;IACjB,IAAI,EAAE,MAAM;IAGvB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB,wFAAwF;IACxF,CAAC,aAAa,CAAC,IAAI,MAAM;CAG1B"}
@@ -1,4 +1,8 @@
1
- /** General bank information from the bank parameter data (BPD). */
1
+ import { inspectCustom } from '../util/inspect.js';
2
+ /**
3
+ * General bank information from the bank parameter data (BPD). The maximum message size and the timeouts are
4
+ * `undefined` where the bank states none, or more than 9999, the four digits HIBPA allows.
5
+ */
2
6
  export class BankInfo {
3
7
  /** German bank code (BLZ). */
4
8
  bankCode;
@@ -10,7 +14,7 @@ export class BankInfo {
10
14
  supportedVersions;
11
15
  /** Languages the bank's messages come in, as codes the bank defines. */
12
16
  languages;
13
- /** Largest message in kilobytes (1024 bytes) the bank accepts; the client sends nothing larger. */
17
+ /** Largest message in kilobytes (1024 bytes) the bank accepts, `0` for no limit; the client sends nothing larger. */
14
18
  maxMessageSize;
15
19
  /**
16
20
  * Time in seconds before which a client must not send a life-indicator message to keep an idle dialog open, `0` for
@@ -32,8 +36,17 @@ export class BankInfo {
32
36
  this.minTimeout = init.minTimeout;
33
37
  this.maxTimeout = init.maxTimeout;
34
38
  }
39
+ /** What Node.js's `util.inspect` and `console.log` show: the bank code and the version of the parameter data. */
40
+ [inspectCustom]() {
41
+ return `BankInfo(${this.bankCode}, BPD version ${this.bpdVersion})`;
42
+ }
35
43
  }
36
- /** Free-text message sent by the bank during login. */
44
+ /**
45
+ * Free-text message sent by the bank during login.
46
+ *
47
+ * Subject and text are the bank's, of any length: show them as text only, never as HTML (`innerHTML`, `v-html`), since
48
+ * they are no markup to trust.
49
+ */
37
50
  export class BankMessage {
38
51
  subject;
39
52
  text;
@@ -45,8 +58,16 @@ export class BankMessage {
45
58
  this.subject = subject;
46
59
  this.text = text;
47
60
  }
61
+ /**
62
+ * Neither subject nor text, which may address the user, so that logs and crash reports do not collect them; show
63
+ * `subject` and `text` to the user.
64
+ */
48
65
  toString() {
49
- return `${this.subject}: ${this.text}`;
66
+ return 'BankMessage(…)';
67
+ }
68
+ /** What Node.js's `util.inspect` and `console.log` show: `toString`, not the fields. */
69
+ [inspectCustom]() {
70
+ return this.toString();
50
71
  }
51
72
  }
52
73
  //# sourceMappingURL=bank-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bank-info.js","sourceRoot":"","sources":["../../src/core/bank-info.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,OAAO,QAAQ;IACnB,8BAA8B;IACrB,QAAQ,CAAS;IAE1B,uBAAuB;IACd,IAAI,CAAqB;IAElC,sEAAsE;IAC7D,UAAU,CAAS;IAE5B,0DAA0D;IACjD,iBAAiB,CAAoB;IAE9C,wEAAwE;IAC/D,SAAS,CAAoB;IAEtC,mGAAmG;IAC1F,cAAc,CAAqB;IAE5C;;;OAGG;IACM,UAAU,CAAqB;IAExC;;;OAGG;IACM,UAAU,CAAqB;IAExC,YAAY,IASX;QACC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACpC,CAAC;CACF;AAED,uDAAuD;AACvD,MAAM,OAAO,WAAW;IAGX;IAEA;IAJX;IACE,iCAAiC;IACxB,OAAe;IACxB,0BAA0B;IACjB,IAAY;QAFZ,YAAO,GAAP,OAAO,CAAQ;QAEf,SAAI,GAAJ,IAAI,CAAQ;IACpB,CAAC;IAEJ,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"bank-info.js","sourceRoot":"","sources":["../../src/core/bank-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACnB,8BAA8B;IACrB,QAAQ,CAAS;IAE1B,uBAAuB;IACd,IAAI,CAAqB;IAElC,sEAAsE;IAC7D,UAAU,CAAS;IAE5B,0DAA0D;IACjD,iBAAiB,CAAoB;IAE9C,wEAAwE;IAC/D,SAAS,CAAoB;IAEtC,qHAAqH;IAC5G,cAAc,CAAqB;IAE5C;;;OAGG;IACM,UAAU,CAAqB;IAExC;;;OAGG;IACM,UAAU,CAAqB;IAExC,YAAY,IASX;QACC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACpC,CAAC;IAED,iHAAiH;IACjH,CAAC,aAAa,CAAC;QACb,OAAO,YAAY,IAAI,CAAC,QAAQ,iBAAiB,IAAI,CAAC,UAAU,GAAG,CAAC;IACtE,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IAGX;IAEA;IAJX;IACE,iCAAiC;IACxB,OAAe;IACxB,0BAA0B;IACjB,IAAY;QAFZ,YAAO,GAAP,OAAO,CAAQ;QAEf,SAAI,GAAJ,IAAI,CAAQ;IACpB,CAAC;IAEJ;;;OAGG;IACH,QAAQ;QACN,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,wFAAwF;IACxF,CAAC,aAAa,CAAC;QACb,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF"}
@@ -21,6 +21,11 @@ export type WarningHandler = (warning: FinTsFeedback) => void;
21
21
  * An error thrown by a callback that only informs the app (`onBankMessage`, `onWarning`, `logger`) fails the call once
22
22
  * the call's exchange with the bank is over, so that it cannot break off a dialog half-way; an error of the call itself
23
23
  * takes precedence.
24
+ *
25
+ * The client reads the options once, when it is built: changing them later changes nothing. Its constructor throws
26
+ * `TypeError` for a `tanCallback` that is no function, another callback that is neither a function nor `undefined` or
27
+ * `null`, which mean none, a `state` that is neither a string nor either of these, and a `transport` without the
28
+ * functions `post` and `close`.
24
29
  */
25
30
  export interface FinTsClientOptions {
26
31
  /** Called whenever the bank asks for a TAN or an app approval. */
@@ -29,11 +34,16 @@ export interface FinTsClientOptions {
29
34
  tanMethodSelector?: TanMethodSelector;
30
35
  /** Picks the TAN medium when the method needs one and the user has several; the first is used without it. */
31
36
  tanMediumSelector?: TanMediumSelector;
32
- /** Receives the free-text messages the bank sends during login. */
37
+ /**
38
+ * Receives the free-text messages the bank sends during login. How many there are and how long they are is the
39
+ * bank's choice, without a limit, so bound what the app shows of them; show their text as text, never as markup.
40
+ */
33
41
  onBankMessage?: BankMessageHandler;
34
42
  /**
35
43
  * Receives the bank's warnings, such as 3951 (switch to another TAN method), but not those the client acts on itself,
36
- * such as 3040 (more data follow). Show them to the user with code and text, as the specification asks.
44
+ * such as 3040 (more data follow). Show them to the user with code and text, as the specification asks. How many
45
+ * there are and how long they are is the bank's choice, without a limit, so bound what the app shows of them; show
46
+ * their text as text, never as markup.
37
47
  */
38
48
  onWarning?: WarningHandler;
39
49
  /** Receives every FinTS message with PIN and TAN masked, for diagnosis; the messages contain account data. */
@@ -47,7 +57,8 @@ export interface FinTsClientOptions {
47
57
  * refused login the other client saved.
48
58
  *
49
59
  * A state saved for another user or bank is ignored, and of one saved for another server of the bank, such as before
50
- * the bank moved its FinTS URL, only the refused login holds.
60
+ * the bank moved its FinTS URL, or for FinTS 4.1 by the Dart package, only the refused login and the count of logins
61
+ * whose answer was lost hold.
51
62
  */
52
63
  state?: string | undefined;
53
64
  /**
@@ -83,10 +94,13 @@ export interface TransactionQuery {
83
94
  export interface FinTsClient {
84
95
  /**
85
96
  * Serialized session data: bank and user parameters, customer system ID, the TAN methods the user may use, the chosen
86
- * TAN method and medium, the SEPA account list, and a refused login (`loginRefusal`).
97
+ * TAN method and medium, the SEPA account list, and a refused login (`loginRefusal`) with the count of logins whose
98
+ * answer was lost.
87
99
  *
88
- * Contains no PIN or TAN, but account details, so store it encrypted. It holds what this client knows, and replaces
89
- * the state it was restored from: one client at a time per state (`FinTsClientOptions.state`).
100
+ * Contains no PIN or TAN, but the user ID and customer ID, the customer system ID, the account holders' names and
101
+ * account details, and after a refused login the texts and parameters of the bank's return codes as the bank sent
102
+ * them, which for return code 3072 are the new login data; so store it encrypted. It holds what this client knows,
103
+ * and replaces the state it was restored from: one client at a time per state (`FinTsClientOptions.state`).
90
104
  */
91
105
  readonly state: string;
92
106
  /**
@@ -96,13 +110,18 @@ export interface FinTsClient {
96
110
  readonly loginRefusal: FinTsLoginRefusedError | undefined;
97
111
  /** Security function code of the TAN method in use, for example `942`; `undefined` before the first login. */
98
112
  readonly selectedTanMethod: string | undefined;
99
- /** Name of the TAN medium sent to the bank, if the method needs one. */
113
+ /**
114
+ * Name of the TAN medium in use, if the method needs one, as the app passed it or the bank listed it; one the app
115
+ * passed goes out without blanks at either end.
116
+ */
100
117
  readonly selectedTanMedium: string | undefined;
101
118
  /**
102
119
  * Switches to another TAN method, and optionally TAN medium, for the following calls.
103
120
  *
104
121
  * Ends the current dialog, so the next call logs in again with the new method. If the bank does not offer
105
- * `securityFunction`, the client picks another method at that login.
122
+ * `securityFunction`, the client picks another method at that login. Without `tanMedium`, also for `null`, that login
123
+ * looks the TAN media up where the method needs one. Rejects with `TypeError`, before it ends the dialog, for a
124
+ * `securityFunction` or `tanMedium` that is no string.
106
125
  */
107
126
  selectTanMethod(securityFunction: string, tanMedium?: string): Promise<void>;
108
127
  /**
@@ -134,7 +153,8 @@ export interface FinTsClient {
134
153
  * comes from there without a query; `Balance.bookedAsOf` tells the day it states.
135
154
  *
136
155
  * Rejects with `FinTsUnsupportedError` where the parameter data rule the query out, without sending it; the login,
137
- * which delivers them, may have gone out.
156
+ * which delivers them, may have gone out. Rejects with `TypeError`, before it waits for other calls, for an `account`
157
+ * that is no `Account`, such as one written to JSON and read back.
138
158
  */
139
159
  getBalance(account: Account): Promise<Balance>;
140
160
  /**
@@ -143,18 +163,25 @@ export interface FinTsClient {
143
163
  *
144
164
  * Only the local calendar day counts, and a day in the future counts as today. Banks typically ask for a TAN when
145
165
  * `from` is more than 90 days ago; see also `Account.dataStatus`. Rejects with `TypeError`, before it waits for other
146
- * calls, if `from` or `to` is no valid `Date` or `from` lies on a day after `to`, and with `FinTsUnsupportedError`,
147
- * without sending the query, where the parameter data rule it out; the login may have gone out.
166
+ * calls, if `account` is no `Account`, `from` or `to` is no valid `Date`, `from` lies on a day after `to` or `format`
167
+ * is no `TransactionFormat`, and with `FinTsUnsupportedError`, without sending the query, where the parameter data
168
+ * rule it out; the login may have gone out.
148
169
  */
149
170
  getTransactions(account: Account, query?: TransactionQuery): Promise<Transaction[]>;
150
171
  /**
151
172
  * Ends the bank dialog, releases the connection and forgets the PIN.
152
173
  *
153
174
  * A running call stops at its next step, also while it waits for a TAN, an app approval or a selection, and fails with
154
- * `FinTsStateError`, as do all later calls. A request already on its way is aborted where the transport supports it,
155
- * as `HttpTransport` does: the call fails with `FinTsTransportError` then, as after a broken connection, and an aborted
156
- * login counts as one whose answer was lost. Another transport is awaited, at most for its timeout; after the
157
- * request, the call sends nothing but the end of its dialogs.
175
+ * `FinTsStateError`, as do all later calls. A request already on its way has five seconds to bring its answer, which
176
+ * counts as any other: the logger gets it, and the client keeps what it brings, such as the parameter data or the
177
+ * customer system ID. The call fails with `FinTsStateError` all the same, also where that answer completes it, unless
178
+ * the answer brings an error, such as a rejected PIN, which the call fails with instead. After those five seconds the
179
+ * client stops waiting for the request, whatever the transport, and aborts it where the transport supports that, as
180
+ * `HttpTransport` does: the call fails with `FinTsTransportError` then, as after a broken connection, and an aborted
181
+ * login counts as one whose answer was lost. After the request, the call sends nothing but the end of its
182
+ * dialogs, that of an aborted message included, unless the message opened it. These dialog ends have five seconds
183
+ * once that request, if any, is over: then they are aborted the same way, and none goes out later, so that a bank
184
+ * that has stopped answering holds up neither `close` nor the call for longer.
158
185
  */
159
186
  close(): Promise<void>;
160
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { inspectCustom } from '../util/inspect.js';
1
2
  /**
2
3
  * The country code FinTS gives Germany, where FinTS banks are: the ISO 3166 code of the Federal Republic before 1990,
3
4
  * not today's `276`.
@@ -9,9 +10,9 @@ export interface FinTsConfigInit {
9
10
  url: string | URL;
10
11
  /** Bank code: for a German bank its BLZ, eight digits. */
11
12
  bankCode: string;
12
- /** Login name (Benutzerkennung / Legitimations-ID). */
13
+ /** Login name (Benutzerkennung / Legitimations-ID); at most 30 characters. */
13
14
  userId: string;
14
- /** Customer ID; defaults to `userId`. */
15
+ /** Customer ID, at most 30 characters; defaults to `userId`. */
15
16
  customerId?: string | undefined;
16
17
  /** FinTS product registration number from the Deutsche Kreditwirtschaft; at most 25 characters. */
17
18
  productId: string;
@@ -22,11 +23,14 @@ export interface FinTsConfigInit {
22
23
  /**
23
24
  * Allows plain http for the loopback addresses `localhost`, `127.x.x.x` and `::1`, for tests against a local server.
24
25
  *
25
- * Any other host must use https, whatever this says: the PIN travels with every message.
26
+ * Any other host must use https, whatever this says: the PIN travels with every message. The default `HttpTransport`
27
+ * sends plain http wherever the global `fetch` sends it, though, as it sends https: a replacement of that `fetch` and
28
+ * a global dispatcher get the PIN, and a proxy that `fetch` takes from the environment sees it unencrypted. See
29
+ * `HttpTransport`.
26
30
  */
27
31
  allowInsecureUrl?: boolean;
28
32
  }
29
- /** Connection and login data for one bank user. */
33
+ /** Connection and login data for one bank user; frozen, so that the client sends what the constructor has checked. */
30
34
  export declare class FinTsConfig {
31
35
  /** The country code FinTS gives Germany, where FinTS banks are: `280`, not today's ISO 3166 code `276`. */
32
36
  static readonly defaultCountryCode = "280";
@@ -42,9 +46,11 @@ export declare class FinTsConfig {
42
46
  * Throws `TypeError` if `url` is not a valid URL, has no host, holds a user name or password, or is not https, unless
43
47
  * `allowInsecureUrl` is set and `url` is a loopback address. Throws as well where the bank would refuse the login: for
44
48
  * a login or product detail that is empty, has characters FinTS 3.0 cannot send (it uses ISO 8859-1, so `€` and most
45
- * non-Latin letters are not possible) or is longer than its field (30 characters for the bank code, 25 for the
46
- * product ID, 5 for its version), for a country code of other than three digits, and for a German bank code of other
47
- * than eight. The message leaves out the value.
49
+ * non-Latin letters are not possible) or is longer than its field (30 characters for the bank code, the user ID and
50
+ * the customer ID, 25 for the product ID, 5 for its version), for a country code of other than three digits, and for
51
+ * a German bank code of other than eight. Throws as well for a detail of another type than `FinTsConfigInit` names,
52
+ * such as a number as `bankCode` or the string `'false'` as `allowInsecureUrl`; `null` counts as a detail not given.
53
+ * The message leaves out the value.
48
54
  *
49
55
  * Drops leading and trailing blanks of the login details and the product, as FinTS sends them without (Formals
50
56
  * B.4.1): `'alice '` is the user `alice`, also for a saved state.
@@ -57,6 +63,8 @@ export declare class FinTsConfig {
57
63
  get url(): URL;
58
64
  /** Customer ID; defaults to `userId`. */
59
65
  get customerId(): string;
66
+ /** What Node.js's `util.inspect` and `console.log` show: the bank code, neither the login data nor the product ID. */
67
+ [inspectCustom](): string;
60
68
  }
61
69
  /** `text`, unless it has characters FinTS 3.0 cannot send (ISO 8859-1 only); the message leaves out the value. */
62
70
  export declare function requireLatin1(text: string, name: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAOxC,gCAAgC;AAChC,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,mGAAmG;IACnG,SAAS,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,mDAAmD;AACnD,qBAAa,WAAW;IACtB,2GAA2G;IAC3G,MAAM,CAAC,QAAQ,CAAC,kBAAkB,SAAsB;IAExD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAEnC;;;;;;;;;;OAUG;gBACS,IAAI,EAAE,eAAe;IA4BjC;;;OAGG;IACH,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,yCAAyC;IACzC,IAAI,UAAU,IAAI,MAAM,CAEvB;CACF;AAcD,kHAAkH;AAClH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,qFAAqF;AACrF,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAGvC;AAeD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAUpG"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAWxC,gCAAgC;AAChC,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,mGAAmG;IACnG,SAAS,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,sHAAsH;AACtH,qBAAa,WAAW;IACtB,2GAA2G;IAC3G,MAAM,CAAC,QAAQ,CAAC,kBAAkB,SAAsB;IAExD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAEnC;;;;;;;;;;;;OAYG;gBACS,IAAI,EAAE,eAAe;IA+BjC;;;OAGG;IACH,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,yCAAyC;IACzC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,sHAAsH;IACtH,CAAC,aAAa,CAAC,IAAI,MAAM;CAG1B;AAcD,kHAAkH;AAClH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,qFAAqF;AACrF,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAGvC;AAeD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAUpG"}
@@ -1,15 +1,21 @@
1
+ import { optionalBoolean, optionalString, requireString } from '../util/arguments.js';
1
2
  import { invalidArgument } from '../util/errors.js';
2
- import { isLatin1 } from '../util/text.js';
3
+ import { inspectCustom } from '../util/inspect.js';
4
+ import { isLatin1, trimBlanks } from '../util/text.js';
3
5
  /**
4
6
  * The country code FinTS gives Germany, where FinTS banks are: the ISO 3166 code of the Federal Republic before 1990,
5
7
  * not today's `276`.
6
8
  */
7
9
  export const defaultCountryCode = '280';
8
- /** Longest bank code (Kreditinstitutscode), product ID (Produktbezeichnung) and product version FinTS 3.0 takes. */
10
+ /**
11
+ * Longest bank code (Kreditinstitutscode), user or customer ID (data type `id`), product ID (Produktbezeichnung) and
12
+ * product version FinTS 3.0 takes.
13
+ */
9
14
  const maxBankCodeLength = 30;
15
+ const maxIdLength = 30;
10
16
  const maxProductIdLength = 25;
11
17
  const maxProductVersionLength = 5;
12
- /** Connection and login data for one bank user. */
18
+ /** Connection and login data for one bank user; frozen, so that the client sends what the constructor has checked. */
13
19
  export class FinTsConfig {
14
20
  /** The country code FinTS gives Germany, where FinTS banks are: `280`, not today's ISO 3166 code `276`. */
15
21
  static defaultCountryCode = defaultCountryCode;
@@ -25,9 +31,11 @@ export class FinTsConfig {
25
31
  * Throws `TypeError` if `url` is not a valid URL, has no host, holds a user name or password, or is not https, unless
26
32
  * `allowInsecureUrl` is set and `url` is a loopback address. Throws as well where the bank would refuse the login: for
27
33
  * a login or product detail that is empty, has characters FinTS 3.0 cannot send (it uses ISO 8859-1, so `€` and most
28
- * non-Latin letters are not possible) or is longer than its field (30 characters for the bank code, 25 for the
29
- * product ID, 5 for its version), for a country code of other than three digits, and for a German bank code of other
30
- * than eight. The message leaves out the value.
34
+ * non-Latin letters are not possible) or is longer than its field (30 characters for the bank code, the user ID and
35
+ * the customer ID, 25 for the product ID, 5 for its version), for a country code of other than three digits, and for
36
+ * a German bank code of other than eight. Throws as well for a detail of another type than `FinTsConfigInit` names,
37
+ * such as a number as `bankCode` or the string `'false'` as `allowInsecureUrl`; `null` counts as a detail not given.
38
+ * The message leaves out the value.
31
39
  *
32
40
  * Drops leading and trailing blanks of the login details and the product, as FinTS sends them without (Formals
33
41
  * B.4.1): `'alice '` is the user `alice`, also for a saved state.
@@ -45,7 +53,7 @@ export class FinTsConfig {
45
53
  throw invalidArgument('Not a valid URL', 'url');
46
54
  }
47
55
  this.href = url.href;
48
- this.allowInsecureUrl = init.allowInsecureUrl ?? false;
56
+ this.allowInsecureUrl = optionalBoolean(init.allowInsecureUrl, 'allowInsecureUrl') ?? false;
49
57
  requireSecureUrl(url, this.allowInsecureUrl);
50
58
  this.countryCode = requireValue(init.countryCode ?? defaultCountryCode, 'countryCode');
51
59
  if (!/^\d{3}$/.test(this.countryCode)) {
@@ -55,10 +63,13 @@ export class FinTsConfig {
55
63
  if (this.countryCode === defaultCountryCode && !/^\d{8}$/.test(this.bankCode)) {
56
64
  throw invalidArgument('A German bank code (BLZ) has eight digits', 'bankCode');
57
65
  }
58
- this.userId = requireValue(init.userId, 'userId');
59
- this.explicitCustomerId = init.customerId === undefined ? undefined : requireValue(init.customerId, 'customerId');
66
+ this.userId = requireValue(init.userId, 'userId', maxIdLength);
67
+ const customerId = optionalString(init.customerId, 'customerId');
68
+ this.explicitCustomerId =
69
+ customerId === undefined ? undefined : requireValue(customerId, 'customerId', maxIdLength);
60
70
  this.productId = requireValue(init.productId, 'productId', maxProductIdLength);
61
71
  this.productVersion = requireValue(init.productVersion ?? '1.0', 'productVersion', maxProductVersionLength);
72
+ Object.freeze(this);
62
73
  }
63
74
  /**
64
75
  * The bank's FinTS PIN/TAN endpoint, as checked by the constructor. A new `URL` on each access, so that changing one
@@ -71,13 +82,17 @@ export class FinTsConfig {
71
82
  get customerId() {
72
83
  return this.explicitCustomerId ?? this.userId;
73
84
  }
85
+ /** What Node.js's `util.inspect` and `console.log` show: the bank code, neither the login data nor the product ID. */
86
+ [inspectCustom]() {
87
+ return `FinTsConfig(${this.bankCode})`;
88
+ }
74
89
  }
75
90
  /**
76
- * `value` without leading and trailing blanks; throws `TypeError` if nothing is left, or what is left is not sendable
77
- * (`requireLatin1`) or longer than `maxLength`: cut short, a value would be one the bank does not know.
91
+ * `value` without leading and trailing blanks; throws `TypeError` if it is no string, nothing is left, or what is left
92
+ * is not sendable (`requireLatin1`) or longer than `maxLength`: cut short, a value would be one the bank does not know.
78
93
  */
79
94
  function requireValue(value, name, maxLength = Number.POSITIVE_INFINITY) {
80
- const trimmed = value.trim();
95
+ const trimmed = trimBlanks(requireString(value, name));
81
96
  if (trimmed === '')
82
97
  throw invalidArgument('Must not be empty', name);
83
98
  requireLatin1(trimmed, name);
@@ -119,9 +134,9 @@ function requireSecureUrl(url, allowInsecure = false) {
119
134
  * The message leaves out the value.
120
135
  */
121
136
  export function requirePin(pin) {
122
- if (pin.trim() === '')
137
+ if (trimBlanks(pin) === '')
123
138
  throw invalidArgument('The PIN is empty', 'pin');
124
- if (pin.trim() !== pin)
139
+ if (trimBlanks(pin) !== pin)
125
140
  throw invalidArgument('The PIN begins or ends with a blank', 'pin');
126
141
  return requireLatin1(pin, 'pin');
127
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -42,13 +42,24 @@ export declare class FinTsUnsupportedError extends FinTsError {
42
42
  export declare class FinTsTanSetupError extends FinTsError {
43
43
  name: string;
44
44
  }
45
- /** The bank rejected the request; `feedback` holds all return codes. A refused login is a `FinTsLoginRefusedError`. */
45
+ /**
46
+ * The bank rejected the request; `feedback` holds all return codes. A refused login is a `FinTsLoginRefusedError`.
47
+ *
48
+ * The message is not safe to log: by default it holds the code, text and parameters of each error the bank names, such
49
+ * as an IBAN or a login name, and so does `stack`. Log `codes` instead. `feedback` is a getter, not a field, so that
50
+ * `JSON.stringify` and Node.js's report of an uncaught error, which show an error's fields as they are, leave out at
51
+ * least the warnings and successes, such as the new login data of return code 3072.
52
+ */
46
53
  export declare class FinTsBankError extends FinTsError {
54
+ #private;
47
55
  name: string;
48
- /** All return codes of the response, warnings and successes included. */
49
- readonly feedback: readonly FinTsFeedback[];
50
- /** A rejection with the return codes in `feedback`; `message` defaults to the errors among them. */
56
+ /**
57
+ * A rejection with the return codes in `feedback`; `message` defaults to the errors among them, with the bank's texts
58
+ * and parameters, such as `9010: Konto gesperrt [DE89370400440532013000]`, so it is not safe to log.
59
+ */
51
60
  constructor(feedback: readonly FinTsFeedback[], message?: string);
61
+ /** All return codes of the response, warnings and successes included. */
62
+ get feedback(): readonly FinTsFeedback[];
52
63
  /** The return codes of `feedback`. */
53
64
  get codes(): string[];
54
65
  }
@@ -77,7 +88,8 @@ export declare class FinTsTanError extends FinTsBankError {
77
88
  name: string;
78
89
  }
79
90
  /**
80
- * The bank has changed the user's login data and expects the new ones from now on (return code 3072).
91
+ * The bank has changed the user's login data and expects the new ones from now on (return code 3072), also where it
92
+ * names an error next to them, but for a rejected PIN, which is a `FinTsPinError`.
81
93
  *
82
94
  * The client has ended the dialog, where the bank opened one, and logs in with the old data no more. Create a new
83
95
  * client with the new data; a `loginName` replaces user ID and customer ID: pass it as `userId`, without a customer ID.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEvF;;;;GAIG;AACH,8BAAsB,UAAW,SAAQ,KAAK;IAC5C,SAAkB,IAAI,EAAE,MAAM,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IACxC,IAAI,SAAyB;IAEtC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;CAI/D;AAED,mDAAmD;AACnD,qBAAa,kBAAmB,SAAQ,UAAU;IACvC,IAAI,SAAwB;CACtC;AAED,kEAAkE;AAClE,qBAAa,qBAAsB,SAAQ,UAAU;IAC1C,IAAI,SAA2B;CACzC;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IACvC,IAAI,SAAwB;CACtC;AAED,uHAAuH;AACvH,qBAAa,cAAe,SAAQ,UAAU;IACnC,IAAI,SAAoB;IAEjC,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAE5C,oGAAoG;gBACxF,QAAQ,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM;IAWhE,sCAAsC;IACtC,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;CACF;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,sBAAuB,SAAQ,cAAc;IAC/C,IAAI,SAA4B;CAC1C;AAED,4BAA4B;AAC5B,qBAAa,aAAc,SAAQ,sBAAsB;IAC9C,IAAI,SAAmB;CACjC;AAED,oHAAoH;AACpH,qBAAa,aAAc,SAAQ,cAAc;IACtC,IAAI,SAAmB;CACjC;AAED;;;;;GAKG;AACH,qBAAa,0BAA2B,SAAQ,sBAAsB;IAC3D,IAAI,SAAgC;gBAEjC,QAAQ,EAAE,SAAS,aAAa,EAAE;IAI9C,gFAAgF;IAChF,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,8EAA8E;IAC9E,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,+EAA+E;IAC/E,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,OAAO,CAAC,SAAS;CAIlB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,cAAc;IAChD,IAAI,SAA6B;CAC3C;AAED,2EAA2E;AAC3E,qBAAa,sBAAuB,SAAQ,UAAU;IAC3C,IAAI,SAA4B;;CAK1C;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,UAAU;IAC/C,IAAI,SAAgC;;CAK9C;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAC/B,IAAI,SAAqB;CACnC;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,IAAI,eAAe,CAEnD;AAkCD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAAE,iBAAiB,UAAQ,GAAG,cAAc,CAO1G;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,sBAAsB,CAI1F;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAOlD;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAanF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEvF;;;;GAIG;AACH,8BAAsB,UAAW,SAAQ,KAAK;IAC5C,SAAkB,IAAI,EAAE,MAAM,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IACxC,IAAI,SAAyB;IAEtC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;CAI/D;AAED,mDAAmD;AACnD,qBAAa,kBAAmB,SAAQ,UAAU;IACvC,IAAI,SAAwB;CACtC;AAED,kEAAkE;AAClE,qBAAa,qBAAsB,SAAQ,UAAU;IAC1C,IAAI,SAA2B;CACzC;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IACvC,IAAI,SAAwB;CACtC;AAED;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,UAAU;;IACnC,IAAI,SAAoB;IAIjC;;;OAGG;gBACS,QAAQ,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM;IAWhE,yEAAyE;IACzE,IAAI,QAAQ,IAAI,SAAS,aAAa,EAAE,CAEvC;IAED,sCAAsC;IACtC,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;CACF;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,sBAAuB,SAAQ,cAAc;IAC/C,IAAI,SAA4B;CAC1C;AAED,4BAA4B;AAC5B,qBAAa,aAAc,SAAQ,sBAAsB;IAC9C,IAAI,SAAmB;CACjC;AAED,oHAAoH;AACpH,qBAAa,aAAc,SAAQ,cAAc;IACtC,IAAI,SAAmB;CACjC;AAED;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,sBAAsB;IAC3D,IAAI,SAAgC;gBAEjC,QAAQ,EAAE,SAAS,aAAa,EAAE;IAI9C,gFAAgF;IAChF,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,8EAA8E;IAC9E,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,+EAA+E;IAC/E,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,OAAO,CAAC,SAAS;CAIlB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,cAAc;IAChD,IAAI,SAA6B;CAC3C;AAED,2EAA2E;AAC3E,qBAAa,sBAAuB,SAAQ,UAAU;IAC3C,IAAI,SAA4B;;CAK1C;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,UAAU;IAC/C,IAAI,SAAgC;;CAK9C;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAC/B,IAAI,SAAqB;CACnC;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,IAAI,eAAe,CAEnD;AAuCD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAAE,iBAAiB,UAAQ,GAAG,cAAc,CAO1G;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,sBAAsB,CAI1F;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAOlD;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAanF"}