@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
@@ -44,19 +44,32 @@ export class FinTsUnsupportedError extends FinTsError {
44
44
  export class FinTsTanSetupError extends FinTsError {
45
45
  name = 'FinTsTanSetupError';
46
46
  }
47
- /** The bank rejected the request; `feedback` holds all return codes. A refused login is a `FinTsLoginRefusedError`. */
47
+ /**
48
+ * The bank rejected the request; `feedback` holds all return codes. A refused login is a `FinTsLoginRefusedError`.
49
+ *
50
+ * The message is not safe to log: by default it holds the code, text and parameters of each error the bank names, such
51
+ * as an IBAN or a login name, and so does `stack`. Log `codes` instead. `feedback` is a getter, not a field, so that
52
+ * `JSON.stringify` and Node.js's report of an uncaught error, which show an error's fields as they are, leave out at
53
+ * least the warnings and successes, such as the new login data of return code 3072.
54
+ */
48
55
  export class FinTsBankError extends FinTsError {
49
56
  name = 'FinTsBankError';
50
- /** All return codes of the response, warnings and successes included. */
51
- feedback;
52
- /** A rejection with the return codes in `feedback`; `message` defaults to the errors among them. */
57
+ #feedback;
58
+ /**
59
+ * A rejection with the return codes in `feedback`; `message` defaults to the errors among them, with the bank's texts
60
+ * and parameters, such as `9010: Konto gesperrt [DE89370400440532013000]`, so it is not safe to log.
61
+ */
53
62
  constructor(feedback, message) {
54
63
  super(message ??
55
64
  feedback
56
65
  .filter((f) => f.isError)
57
- .map((f) => f.toString())
66
+ .map(withText)
58
67
  .join('; '));
59
- this.feedback = Object.freeze([...feedback]);
68
+ this.#feedback = Object.freeze([...feedback]);
69
+ }
70
+ /** All return codes of the response, warnings and successes included. */
71
+ get feedback() {
72
+ return this.#feedback;
60
73
  }
61
74
  /** The return codes of `feedback`. */
62
75
  get codes() {
@@ -88,7 +101,8 @@ export class FinTsTanError extends FinTsBankError {
88
101
  name = 'FinTsTanError';
89
102
  }
90
103
  /**
91
- * The bank has changed the user's login data and expects the new ones from now on (return code 3072).
104
+ * The bank has changed the user's login data and expects the new ones from now on (return code 3072), also where it
105
+ * names an error next to them, but for a rejected PIN, which is a `FinTsPinError`.
92
106
  *
93
107
  * The client has ended the dialog, where the bank opened one, and logs in with the old data no more. Create a new
94
108
  * client with the new data; a `loginName` replaces user ID and customer ID: pass it as `userId`, without a customer ID.
@@ -181,6 +195,10 @@ function isPinError(f) {
181
195
  return true;
182
196
  }
183
197
  }
198
+ /** `f` with the bank's text and parameters, which `FinTsFeedback.toString` leaves out. */
199
+ function withText(f) {
200
+ return `${f.code}: ${f.text}${f.parameters.length === 0 ? '' : ` [${f.parameters.join(', ')}]`}`;
201
+ }
184
202
  /**
185
203
  * The most specific error for the errors in `feedback`, the answer to a message that `completesApproval` or not.
186
204
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { inspectCustom } from '../util/inspect.js';
1
2
  /** A return code with text from the bank, for example `0020: Auftrag ausgeführt`. */
2
3
  export declare class FinTsFeedback {
3
4
  /** The four-digit return code; `0…` reports success, `3…` a warning and `9…` an error. */
@@ -23,7 +24,13 @@ export declare class FinTsFeedback {
23
24
  get isWarning(): boolean;
24
25
  /** Whether the code is an error. */
25
26
  get isError(): boolean;
27
+ /**
28
+ * The code only, not the text and parameters, which may name the account or hold login data, such as those of return
29
+ * code 3072, so that logs and crash reports do not collect them; show `text` to the user.
30
+ */
26
31
  toString(): string;
32
+ /** What Node.js's `util.inspect` and `console.log` show: `toString`, not the fields. */
33
+ [inspectCustom](): string;
27
34
  }
28
35
  /** Return codes the client reacts to, as named in the FinTS return code list (Rückmeldungscodes). */
29
36
  export declare const FeedbackCodes: Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/core/feedback.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,qBAAa,aAAa;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;gBAE3B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE;IAOhH,wCAAwC;IACxC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,qCAAqC;IACrC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,oCAAoC;IACpC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,QAAQ,IAAI,MAAM;CAGnB;AAED,qGAAqG;AACrG,eAAO,MAAM,aAAa;IACxB,6GAA6G;;IAE7G,kHAAkH;;IAElH;;;OAGG;;IAEH,qEAAqE;;IAErE,mHAAmH;;IAEnH,4FAA4F;;IAE5F,6DAA6D;;IAE7D,sDAAsD;;IAEtD;;;OAGG;;IAEH,0HAA0H;;EAE1H,CAAC;AA0BH,4DAA4D;AAC5D,wBAAgB,OAAO,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjF;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAErE;AAED,sGAAsG;AACtG,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAO7E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,EAAE,CAOhF;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAEtE;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,aAAa,EAAE,CAEhF"}
1
+ {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/core/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qFAAqF;AACrF,qBAAa,aAAa;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;gBAE3B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE;IAOhH,wCAAwC;IACxC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,qCAAqC;IACrC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,oCAAoC;IACpC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB,wFAAwF;IACxF,CAAC,aAAa,CAAC,IAAI,MAAM;CAG1B;AAED,qGAAqG;AACrG,eAAO,MAAM,aAAa;IACxB,6GAA6G;;IAE7G,kHAAkH;;IAElH;;;OAGG;;IAEH,qEAAqE;;IAErE,mHAAmH;;IAEnH,4FAA4F;;IAE5F,6DAA6D;;IAE7D,sDAAsD;;IAEtD;;;OAGG;;IAEH,0HAA0H;;EAE1H,CAAC;AA0BH,4DAA4D;AAC5D,wBAAgB,OAAO,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjF;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAErE;AAED,sGAAsG;AACtG,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAO7E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,EAAE,CAOhF;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAEtE;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,aAAa,EAAE,CAEhF"}
@@ -1,3 +1,4 @@
1
+ import { inspectCustom } from '../util/inspect.js';
1
2
  /** A return code with text from the bank, for example `0020: Auftrag ausgeführt`. */
2
3
  export class FinTsFeedback {
3
4
  /** The four-digit return code; `0…` reports success, `3…` a warning and `9…` an error. */
@@ -29,8 +30,16 @@ export class FinTsFeedback {
29
30
  get isError() {
30
31
  return this.code.startsWith('9');
31
32
  }
33
+ /**
34
+ * The code only, not the text and parameters, which may name the account or hold login data, such as those of return
35
+ * code 3072, so that logs and crash reports do not collect them; show `text` to the user.
36
+ */
32
37
  toString() {
33
- return `${this.code}: ${this.text}${this.parameters.length === 0 ? '' : ` [${this.parameters.join(', ')}]`}`;
38
+ return `FinTsFeedback(${this.code})`;
39
+ }
40
+ /** What Node.js's `util.inspect` and `console.log` show: `toString`, not the fields. */
41
+ [inspectCustom]() {
42
+ return this.toString();
34
43
  }
35
44
  }
36
45
  /** Return codes the client reacts to, as named in the FinTS return code list (Rückmeldungscodes). */
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/core/feedback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/core/feedback.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
+ import { inspectCustom } from '../util/inspect.js';
1
2
  import type { Amount } from './amount.js';
2
3
  /** Whether a transaction is booked or still pending. */
3
4
  export type TransactionStatus = 'booked' | 'pending';
5
+ /** `status`; throws `TypeError` unless it is a `TransactionStatus`. */
6
+ export declare function requireStatus(status: unknown): TransactionStatus;
4
7
  /** Transaction format to request; `auto` prefers camt.052 when the bank supports it. */
5
8
  export type TransactionFormat =
6
9
  /** camt.052 where the bank offers it, otherwise MT940. */
@@ -99,5 +102,7 @@ export declare class Transaction {
99
102
  * account data.
100
103
  */
101
104
  toString(): string;
105
+ /** What Node.js's `util.inspect` and `console.log` show: `toString`, not the fields. */
106
+ [inspectCustom](): string;
102
107
  }
103
108
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/core/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/core/transaction.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,13 @@
1
1
  import { copyDate, formatIsoDate } from '../util/dates.js';
2
+ import { invalidArgument } from '../util/errors.js';
2
3
  import { ImmutableMap } from '../util/immutable-map.js';
4
+ import { inspectCustom } from '../util/inspect.js';
5
+ /** `status`; throws `TypeError` unless it is a `TransactionStatus`. */
6
+ export function requireStatus(status) {
7
+ if (status === 'booked' || status === 'pending')
8
+ return status;
9
+ throw invalidArgument("Must be 'booked' or 'pending'", 'status');
10
+ }
3
11
  /** A single account transaction, parsed from camt.052 or MT940/MT942. */
4
12
  export class Transaction {
5
13
  /** Whether the transaction is booked or pending. */
@@ -92,5 +100,9 @@ export class Transaction {
92
100
  toString() {
93
101
  return `Transaction(${formatIsoDate(this.bookingDate ?? this.valueDate)}, ${this.status}${this.isReversal ? ', reversal' : ''})`;
94
102
  }
103
+ /** What Node.js's `util.inspect` and `console.log` show: `toString`, not the fields. */
104
+ [inspectCustom]() {
105
+ return this.toString();
106
+ }
95
107
  }
96
108
  //# sourceMappingURL=transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/core/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/core/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC/D,MAAM,eAAe,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;AACnE,CAAC;AAsCD,yEAAyE;AACzE,MAAM,OAAO,WAAW;IACtB,oDAAoD;IAC3C,MAAM,CAAoB;IAEnC;;;OAGG;IACM,WAAW,CAAmB;IAEvC,iGAAiG;IACxF,SAAS,CAAO;IAEzB,0CAA0C;IACjC,MAAM,CAAS;IAExB,iEAAiE;IACxD,UAAU,CAAU;IAE7B,0DAA0D;IACjD,WAAW,CAAqB;IAEzC,kFAAkF;IACzE,OAAO,CAAqB;IAErC,wGAAwG;IAC/F,gBAAgB,CAAqB;IAE9C,gCAAgC;IACvB,gBAAgB,CAAqB;IAE9C,sCAAsC;IAC7B,eAAe,CAAqB;IAE7C,0FAA0F;IACjF,yBAAyB,CAAqB;IAEvD,wFAAwF;IAC/E,oBAAoB,CAAqB;IAElD,wCAAwC;IAC/B,UAAU,CAAqB;IAExC,kDAAkD;IACzC,SAAS,CAAqB;IAEvC,uCAAuC;IAC9B,UAAU,CAAqB;IAExC,6CAA6C;IACpC,iBAAiB,CAAqB;IAE/C,2CAA2C;IAClC,aAAa,CAAqB;IAE3C,oEAAoE;IAC3D,eAAe,CAAqB;IAE7C,kDAAkD;IACzC,iBAAiB,CAAqB;IAE/C,wCAAwC;IAC/B,SAAS,CAAqB;IAEvC,wEAAwE;IAC/D,gBAAgB,CAAqB;IAE9C,wEAAwE;IAC/D,cAAc,CAAqB;IAE5C;;;;OAIG;IACM,YAAY,CAA8B;IAEnD,sHAAsH;IACtH,YAAY,IAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC;QAChE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,gDAAgD;IAChD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,eAAe,aAAa,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IACnI,CAAC;IAED,wFAAwF;IACxF,CAAC,aAAa,CAAC;QACb,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF"}
@@ -3,14 +3,20 @@ export interface FinTsTransport {
3
3
  /**
4
4
  * Posts `body` to `url` and returns the response body.
5
5
  *
6
- * The client aborts `signal` once it is closed: a transport that stops the request then keeps `close` from waiting
7
- * for the answer.
6
+ * Once the client is closed, it aborts `signal` five seconds later, and that of the dialog ends it then sends five
7
+ * seconds after the request on its way, if any, is over: the client no longer waits for the answer then, and the
8
+ * transport should stop the request, since the dialog end may go out while it still runs.
9
+ *
10
+ * The client bounds neither the time of the exchange nor the size of the answer: do so in the transport, as
11
+ * `HttpTransport` does, so that a server that stops answering cannot hold up a call and one that sends without end
12
+ * cannot exhaust the memory.
8
13
  *
9
14
  * Implementations report failures as `FinTsTransportError`, with the HTTP status as `statusCode` where the bank
10
15
  * answered with an HTTP error: an anonymous request for the bank parameter data that fails so goes out once more,
11
16
  * without the announcement of strong authentication, which some banks fail on. Of any other error, another
12
- * `FinTsError` included, the client keeps only its message and that of its cause, as a `FinTsTransportError` without
13
- * `statusCode`. `body` holds PIN and TAN in plain text: keep it out of error messages and logs.
17
+ * `FinTsError` included, the client keeps only its message and the reason its cause gives (its message, or else the
18
+ * messages of its errors or its code), as a `FinTsTransportError` without `statusCode`. `body` holds PIN and TAN in
19
+ * plain text: keep it out of error messages and logs.
14
20
  */
15
21
  post(url: URL, body: Uint8Array, contentType: string, signal: AbortSignal): Promise<Uint8Array>;
16
22
  /** Releases the connection; the client calls it when it is closed. */
@@ -19,7 +25,8 @@ export interface FinTsTransport {
19
25
  /** What `HttpTransport` takes; all optional. */
20
26
  export interface HttpTransportOptions {
21
27
  /**
22
- * The `fetch` to send with, for example one with a proxy agent; the global `fetch` by default.
28
+ * The `fetch` to send with, for example one with a proxy agent; the global `fetch` by default, as it is at each
29
+ * request.
23
30
  *
24
31
  * It must post to the URL it is given: an answer from another URL counts as a redirect, which fails the request. Of
25
32
  * an answer whose `body` is no `ReadableStream`, as with node-fetch, the size can only be checked once it is read
@@ -37,6 +44,14 @@ export interface HttpTransportOptions {
37
44
  /**
38
45
  * Default `FinTsTransport`: HTTP POST with `fetch`.
39
46
  *
47
+ * Without the `fetch` option it sends with the global `fetch` as it is at each request, and cannot bypass what that
48
+ * does, for plain http to a local server (`FinTsConfig.allowInsecureUrl`) as for https: whatever replaces that `fetch`
49
+ * or handles its requests, such as a test's stub of `globalThis.fetch` or on Node.js a global dispatcher (undici's
50
+ * `setGlobalDispatcher`), gets every message, PIN and TAN included, and a proxy that the runtime takes from the
51
+ * environment, as Node.js does with `NODE_USE_ENV_PROXY=1`, and Deno and Bun do from `HTTP_PROXY`, sees the PIN of
52
+ * plain http unencrypted. Exempt the host with `NO_PROXY`, such as `localhost,127.0.0.1,::1`, or pass a `fetch` that
53
+ * connects directly.
54
+ *
40
55
  * In a browser it only reaches servers that allow the page's origin (CORS), which bank servers do not: a web app needs
41
56
  * a server of its own between browser and bank, reached with a `FinTsTransport` of its own.
42
57
  */
@@ -57,8 +72,8 @@ export declare class HttpTransport implements FinTsTransport {
57
72
  close(): void;
58
73
  }
59
74
  /**
60
- * The message of a failed request, with the message of its cause: Node.js reports `fetch failed` and the reason in the
61
- * cause. Only the messages, since the error may hold the request, PIN and TAN included.
75
+ * The message of a failed request, with the reason its cause gives: Node.js reports `fetch failed` and the reason in the
76
+ * cause. Only messages and codes, since the error may hold the request, PIN and TAN included.
62
77
  */
63
78
  export declare function failureMessage(error: unknown): string;
64
79
  //# sourceMappingURL=transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/core/transport.ts"],"names":[],"mappings":"AAIA,+GAA+G;AAC/G,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhG,sEAAsE;IACtE,KAAK,IAAI,IAAI,CAAC;CACf;AAED,gDAAgD;AAChD,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAKD;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;;OAGG;gBACS,OAAO,GAAE,oBAAyB;IAY9C,mHAAmH;IAC7G,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;YA2BxF,QAAQ;YA0BR,QAAQ;IAwBtB,OAAO,CAAC,QAAQ;IAIhB,KAAK,IAAI,IAAI;CAGd;AAsBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIrD"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/core/transport.ts"],"names":[],"mappings":"AAIA,+GAA+G;AAC/G,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;;;;;;;;OAiBG;IACH,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhG,sEAAsE;IACtE,KAAK,IAAI,IAAI,CAAC;CACf;AAED,gDAAgD;AAChD,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAKD;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;;OAGG;gBACS,OAAO,GAAE,oBAAyB;IAY9C,mHAAmH;IAC7G,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;YA2BxF,QAAQ;YAmCR,QAAQ;IAgCtB,OAAO,CAAC,QAAQ;IAIhB,KAAK,IAAI,IAAI;CAGd;AAsBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIrD"}
@@ -1,11 +1,19 @@
1
- import { concatBytes } from '../util/bytes.js';
2
1
  import { invalidArgument } from '../util/errors.js';
2
+ import { trimBlanks } from '../util/text.js';
3
3
  import { FinTsTransportError } from './errors.js';
4
4
  /** The longest delay `setTimeout` takes; it fires at once for a longer one, such as `Infinity`. */
5
5
  const maxTimeoutMs = 2 ** 31 - 1;
6
6
  /**
7
7
  * Default `FinTsTransport`: HTTP POST with `fetch`.
8
8
  *
9
+ * Without the `fetch` option it sends with the global `fetch` as it is at each request, and cannot bypass what that
10
+ * does, for plain http to a local server (`FinTsConfig.allowInsecureUrl`) as for https: whatever replaces that `fetch`
11
+ * or handles its requests, such as a test's stub of `globalThis.fetch` or on Node.js a global dispatcher (undici's
12
+ * `setGlobalDispatcher`), gets every message, PIN and TAN included, and a proxy that the runtime takes from the
13
+ * environment, as Node.js does with `NODE_USE_ENV_PROXY=1`, and Deno and Bun do from `HTTP_PROXY`, sees the PIN of
14
+ * plain http unencrypted. Exempt the host with `NO_PROXY`, such as `localhost,127.0.0.1,::1`, or pass a `fetch` that
15
+ * connects directly.
16
+ *
9
17
  * In a browser it only reaches servers that allow the page's origin (CORS), which bank servers do not: a web app needs
10
18
  * a server of its own between browser and bank, reached with a `FinTsTransport` of its own.
11
19
  */
@@ -68,6 +76,10 @@ export class HttpTransport {
68
76
  headers: { 'Content-Type': contentType, 'Cache-Control': 'no-cache', Pragma: 'no-cache' },
69
77
  // The PIN travels in the body: never let the request be repeated at another address.
70
78
  redirect: 'manual',
79
+ // In a browser: no cookies of the page and no referrer go with the PIN, and no cache keeps the exchange.
80
+ credentials: 'omit',
81
+ referrerPolicy: 'no-referrer',
82
+ cache: 'no-store',
71
83
  signal,
72
84
  });
73
85
  if (response.type === 'opaqueredirect') {
@@ -80,10 +92,15 @@ export class HttpTransport {
80
92
  }
81
93
  if (response.status < 200 || response.status > 299) {
82
94
  await discard(response);
83
- throw new FinTsTransportError(`HTTP ${response.status} ${response.statusText}`.trim(), {
95
+ throw new FinTsTransportError(trimBlanks(`HTTP ${response.status} ${response.statusText}`), {
84
96
  statusCode: response.status,
85
97
  });
86
98
  }
99
+ const announced = response.headers.get('Content-Length');
100
+ if (announced !== null && /^\d+$/.test(announced) && Number(announced) > this.maxResponseBytes) {
101
+ await discard(response);
102
+ throw this.tooLarge();
103
+ }
87
104
  return this.readBody(response);
88
105
  }
89
106
  async readBody(response) {
@@ -96,20 +113,28 @@ export class HttpTransport {
96
113
  return bytes;
97
114
  }
98
115
  const reader = body.getReader();
99
- const chunks = [];
116
+ // Copied as they arrive: many tiny chunks kept as they are would take many times the bytes they hold, and a `fetch`
117
+ // may refill the chunk it handed out.
118
+ let bytes = new Uint8Array(0);
100
119
  let size = 0;
101
120
  for (;;) {
102
121
  const { done, value } = await reader.read();
103
122
  if (done)
104
123
  break;
105
- chunks.push(value);
106
- size += value.length;
107
- if (size > this.maxResponseBytes) {
124
+ const end = size + value.length;
125
+ if (end > this.maxResponseBytes) {
108
126
  await reader.cancel().catch(() => undefined);
109
127
  throw this.tooLarge();
110
128
  }
129
+ if (end > bytes.length) {
130
+ const grown = new Uint8Array(Math.min(Math.max(2 * bytes.length, end), this.maxResponseBytes));
131
+ grown.set(bytes.subarray(0, size));
132
+ bytes = grown;
133
+ }
134
+ bytes.set(value, size);
135
+ size = end;
111
136
  }
112
- return concatBytes(chunks);
137
+ return bytes.slice(0, size);
113
138
  }
114
139
  tooLarge() {
115
140
  return new FinTsTransportError(`Response larger than ${this.maxResponseBytes} bytes`);
@@ -137,13 +162,28 @@ function isPositive(value) {
137
162
  return Number.isFinite(value) && value > 0;
138
163
  }
139
164
  /**
140
- * The message of a failed request, with the message of its cause: Node.js reports `fetch failed` and the reason in the
141
- * cause. Only the messages, since the error may hold the request, PIN and TAN included.
165
+ * The message of a failed request, with the reason its cause gives: Node.js reports `fetch failed` and the reason in the
166
+ * cause. Only messages and codes, since the error may hold the request, PIN and TAN included.
142
167
  */
143
168
  export function failureMessage(error) {
144
169
  if (!(error instanceof Error))
145
170
  return String(error);
146
- const cause = error.cause;
147
- return cause instanceof Error ? `${error.message}: ${cause.message}` : error.message;
171
+ const reason = error.cause instanceof Error ? reasonOf(error.cause) : '';
172
+ return reason ? `${error.message}: ${reason}` : error.message;
173
+ }
174
+ /**
175
+ * The message of `cause`, or where it has none, the distinct messages of its `errors` or its `code`: Node.js reports a
176
+ * failed connection to a host with IPv6 and IPv4 addresses as an `AggregateError` without a message.
177
+ */
178
+ function reasonOf(cause) {
179
+ if (cause.message)
180
+ return cause.message;
181
+ if (cause instanceof AggregateError) {
182
+ const messages = cause.errors.flatMap((error) => (error instanceof Error && error.message ? [error.message] : []));
183
+ if (messages.length > 0)
184
+ return [...new Set(messages)].join('; ');
185
+ }
186
+ const code = cause.code;
187
+ return typeof code === 'string' ? code : '';
148
188
  }
149
189
  //# sourceMappingURL=transport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/core/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAyClD,mGAAmG;AACnG,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACf,SAAS,CAAS;IAClB,gBAAgB,CAAS;IACjB,OAAO,CAAe;IAEvC;;;OAGG;IACH,YAAY,UAAgC,EAAE;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,8FAA8F;QAC9F,IAAI,CAAC,OAAO,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACjH,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;YACjE,MAAM,eAAe,CAAC,wCAAwC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAAE,MAAM,eAAe,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAAC;IACjH,CAAC;IAED,mHAAmH;IACnH,KAAK,CAAC,IAAI,CAAC,GAAQ,EAAE,IAAgB,EAAE,WAAmB,EAAE,MAAoB;QAC9E,IAAI,MAAM,EAAE,OAAO;YAAE,MAAM,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,sEAAsE;QACtE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC/C,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC/C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAA6B,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAS,EAAE;YAC3C,UAAU,CAAC,KAAK,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACjG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,UAAU,CAAC,MAAM,CAAC,MAA6B,CAAC;YACrF,IAAI,KAAK,YAAY,mBAAmB;gBAAE,MAAM,KAAK,CAAC;YACtD,MAAM,IAAI,mBAAmB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,GAAQ,EAAE,IAAgB,EAAE,WAAmB,EAAE,MAAmB;QACzF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAA+B;YACrC,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;YACzF,qFAAqF;YACrF,QAAQ,EAAE,QAAQ;YAClB,MAAM;SACP,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACvC,MAAM,IAAI,mBAAmB,CAAC,oEAAoE,CAAC,CAAC;QACtG,CAAC;QACD,8GAA8G;QAC9G,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACnF,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,MAAM,IAAI,mBAAmB,CAAC,6EAA6E,CAAC,CAAC;QAC/G,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACnD,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,MAAM,IAAI,mBAAmB,CAAC,QAAQ,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;gBACrF,UAAU,EAAE,QAAQ,CAAC,MAAM;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,QAAkB;QACvC,kHAAkH;QAClH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAqD,CAAC;QAC5E,IAAI,OAAO,IAAI,EAAE,SAAS,KAAK,UAAU,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB;gBAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,SAAS,CAAC;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACjC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC7C,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAEO,QAAQ;QACd,OAAO,IAAI,mBAAmB,CAAC,wBAAwB,IAAI,CAAC,gBAAgB,QAAQ,CAAC,CAAC;IACxF,CAAC;IAED,KAAK;QACH,2DAA2D;IAC7D,CAAC;CACF;AAED,0DAA0D;AAC1D,SAAS,eAAe,CAAC,GAAQ;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACf,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,uHAAuH;AACvH,KAAK,UAAU,OAAO,CAAC,QAAkB;IACvC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,KAAK,GAAY,KAAK,CAAC,KAAK,CAAC;IACnC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;AACvF,CAAC"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/core/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAgDlD,mGAAmG;AACnG,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAEjC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,aAAa;IACf,SAAS,CAAS;IAClB,gBAAgB,CAAS;IACjB,OAAO,CAAe;IAEvC;;;OAGG;IACH,YAAY,UAAgC,EAAE;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7B,8FAA8F;QAC9F,IAAI,CAAC,OAAO,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACjH,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;YACjE,MAAM,eAAe,CAAC,wCAAwC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAAE,MAAM,eAAe,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAAC;IACjH,CAAC;IAED,mHAAmH;IACnH,KAAK,CAAC,IAAI,CAAC,GAAQ,EAAE,IAAgB,EAAE,WAAmB,EAAE,MAAoB;QAC9E,IAAI,MAAM,EAAE,OAAO;YAAE,MAAM,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,sEAAsE;QACtE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC/C,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC/C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAA6B,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAS,EAAE;YAC3C,UAAU,CAAC,KAAK,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACjG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,UAAU,CAAC,MAAM,CAAC,MAA6B,CAAC;YACrF,IAAI,KAAK,YAAY,mBAAmB;gBAAE,MAAM,KAAK,CAAC;YACtD,MAAM,IAAI,mBAAmB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,GAAQ,EAAE,IAAgB,EAAE,WAAmB,EAAE,MAAmB;QACzF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAA+B;YACrC,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;YACzF,qFAAqF;YACrF,QAAQ,EAAE,QAAQ;YAClB,yGAAyG;YACzG,WAAW,EAAE,MAAM;YACnB,cAAc,EAAE,aAAa;YAC7B,KAAK,EAAE,UAAU;YACjB,MAAM;SACP,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACvC,MAAM,IAAI,mBAAmB,CAAC,oEAAoE,CAAC,CAAC;QACtG,CAAC;QACD,8GAA8G;QAC9G,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACnF,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,MAAM,IAAI,mBAAmB,CAAC,6EAA6E,CAAC,CAAC;QAC/G,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACnD,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,MAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,QAAQ,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE;gBAC1F,UAAU,EAAE,QAAQ,CAAC,MAAM;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACzD,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC/F,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,QAAkB;QACvC,kHAAkH;QAClH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAqD,CAAC;QAC5E,IAAI,OAAO,IAAI,EAAE,SAAS,KAAK,UAAU,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB;gBAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,oHAAoH;QACpH,sCAAsC;QACtC,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,SAAS,CAAC;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;YAChC,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAChC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC7C,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,CAAC;YACD,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC/F,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBACnC,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACvB,IAAI,GAAG,GAAG,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEO,QAAQ;QACd,OAAO,IAAI,mBAAmB,CAAC,wBAAwB,IAAI,CAAC,gBAAgB,QAAQ,CAAC,CAAC;IACxF,CAAC;IAED,KAAK;QACH,2DAA2D;IAC7D,CAAC;CACF;AAED,0DAA0D;AAC1D,SAAS,eAAe,CAAC,GAAQ;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACf,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,uHAAuH;AACvH,KAAK,UAAU,OAAO,CAAC,QAAkB;IACvC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,KAAY;IAC5B,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACxC,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,IAAI,GAAa,KAA4B,CAAC,IAAI,CAAC;IACzD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC"}
@@ -19,11 +19,14 @@ export declare const Camt: Readonly<{
19
19
  */
20
20
  parseTransactions(xml: string, status?: TransactionStatus): Transaction[];
21
21
  /**
22
- * Parses all statements, each with the account it is for. Throws `FormatError` for malformed XML, for a document
23
- * without any statement, for an entry without amount, currency, credit/debit indicator or date, for a date it cannot
24
- * read, and for more than 200,000 statements and transactions.
22
+ * Parses all statements, each with the account it is for. Throws `FormatError` for malformed XML, for XML nested more
23
+ * than 100 levels deep or of more than 500,000 nodes besides text or one per 16 characters, whichever is more, for a
24
+ * document without any statement, for an entry without amount, currency, credit/debit indicator or date, for a date
25
+ * it cannot read, for remittance information of more than 65,536 characters, and for more than 200,000 statements and
26
+ * transactions.
25
27
  *
26
- * `status` overrides the booking status stated in the entries.
28
+ * `status` overrides the booking status stated in the entries, unless it is `undefined` or `null`; throws `TypeError`
29
+ * for one other than `booked` and `pending`.
27
30
  */
28
31
  parse(xml: string, status?: TransactionStatus): CamtStatement[];
29
32
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"camt.d.ts","sourceRoot":"","sources":["../../src/formats/camt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,0GAA0G;AAC1G,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,iHAAiH;IACjH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;CAC/C;AAKD,0GAA0G;AAC1G,eAAO,MAAM,IAAI;IACf;;;OAGG;2BACoB,MAAM,WAAW,iBAAiB,GAAG,WAAW,EAAE;IAIzE;;;;;;OAMG;eACQ,MAAM,WAAW,iBAAiB,GAAG,aAAa,EAAE;EAG/D,CAAC;AAEH,mGAAmG;AACnG,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,aAAa,EAAE,CAiBnH"}
1
+ {"version":3,"file":"camt.d.ts","sourceRoot":"","sources":["../../src/formats/camt.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAO5F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,0GAA0G;AAC1G,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,iHAAiH;IACjH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;CAC/C;AAKD,0GAA0G;AAC1G,eAAO,MAAM,IAAI;IACf;;;OAGG;2BACoB,MAAM,WAAW,iBAAiB,GAAG,WAAW,EAAE;IAIzE;;;;;;;;;OASG;eACQ,MAAM,WAAW,iBAAiB,GAAG,aAAa,EAAE;EAG/D,CAAC;AAOH,mGAAmG;AACnG,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,aAAa,EAAE,CAoBnH"}