@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.
- package/CHANGELOG.md +377 -0
- package/README.md +31 -23
- package/dist/client.d.ts +3 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +52 -9
- package/dist/client.js.map +1 -1
- package/dist/core/account.d.ts +15 -4
- package/dist/core/account.d.ts.map +1 -1
- package/dist/core/account.js +84 -36
- package/dist/core/account.js.map +1 -1
- package/dist/core/amount.d.ts +13 -3
- package/dist/core/amount.d.ts.map +1 -1
- package/dist/core/amount.js +42 -8
- package/dist/core/amount.js.map +1 -1
- package/dist/core/balance.d.ts +3 -0
- package/dist/core/balance.d.ts.map +1 -1
- package/dist/core/balance.js +5 -0
- package/dist/core/balance.js.map +1 -1
- package/dist/core/bank-info.d.ts +20 -3
- package/dist/core/bank-info.d.ts.map +1 -1
- package/dist/core/bank-info.js +25 -4
- package/dist/core/bank-info.js.map +1 -1
- package/dist/core/client.d.ts +42 -15
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/config.d.ts +15 -7
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +29 -14
- package/dist/core/config.js.map +1 -1
- package/dist/core/errors.d.ts +17 -5
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +25 -7
- package/dist/core/errors.js.map +1 -1
- package/dist/core/feedback.d.ts +7 -0
- package/dist/core/feedback.d.ts.map +1 -1
- package/dist/core/feedback.js +10 -1
- package/dist/core/feedback.js.map +1 -1
- package/dist/core/transaction.d.ts +5 -0
- package/dist/core/transaction.d.ts.map +1 -1
- package/dist/core/transaction.js +12 -0
- package/dist/core/transaction.js.map +1 -1
- package/dist/core/transport.d.ts +22 -7
- package/dist/core/transport.d.ts.map +1 -1
- package/dist/core/transport.js +51 -11
- package/dist/core/transport.js.map +1 -1
- package/dist/formats/camt.d.ts +7 -4
- package/dist/formats/camt.d.ts.map +1 -1
- package/dist/formats/camt.js +53 -54
- package/dist/formats/camt.js.map +1 -1
- package/dist/formats/mt940.d.ts +18 -6
- package/dist/formats/mt940.d.ts.map +1 -1
- package/dist/formats/mt940.js +83 -66
- package/dist/formats/mt940.js.map +1 -1
- package/dist/formats/readers.d.ts.map +1 -1
- package/dist/formats/readers.js +6 -2
- package/dist/formats/readers.js.map +1 -1
- package/dist/formats/sepa-purpose.d.ts +7 -4
- package/dist/formats/sepa-purpose.d.ts.map +1 -1
- package/dist/formats/sepa-purpose.js +18 -9
- package/dist/formats/sepa-purpose.js.map +1 -1
- package/dist/session/dialog-runner.d.ts +5 -2
- package/dist/session/dialog-runner.d.ts.map +1 -1
- package/dist/session/dialog-runner.js +23 -7
- package/dist/session/dialog-runner.js.map +1 -1
- package/dist/session/login-guard.d.ts +4 -4
- package/dist/session/login-guard.d.ts.map +1 -1
- package/dist/session/login-guard.js +29 -14
- package/dist/session/login-guard.js.map +1 -1
- package/dist/session/session-setup.d.ts +14 -5
- package/dist/session/session-setup.d.ts.map +1 -1
- package/dist/session/session-setup.js +30 -9
- package/dist/session/session-setup.js.map +1 -1
- package/dist/session/session-state.d.ts +4 -3
- package/dist/session/session-state.d.ts.map +1 -1
- package/dist/session/session-state.js +28 -9
- package/dist/session/session-state.js.map +1 -1
- package/dist/session/signed-dialog.d.ts +19 -13
- package/dist/session/signed-dialog.d.ts.map +1 -1
- package/dist/session/signed-dialog.js +45 -30
- package/dist/session/signed-dialog.js.map +1 -1
- package/dist/session/user-prompts.d.ts +6 -1
- package/dist/session/user-prompts.d.ts.map +1 -1
- package/dist/session/user-prompts.js +19 -4
- package/dist/session/user-prompts.js.map +1 -1
- package/dist/tan/challenge.d.ts +15 -13
- package/dist/tan/challenge.d.ts.map +1 -1
- package/dist/tan/challenge.js +32 -26
- package/dist/tan/challenge.js.map +1 -1
- package/dist/tan/flicker.d.ts +5 -1
- package/dist/tan/flicker.d.ts.map +1 -1
- package/dist/tan/flicker.js +42 -30
- package/dist/tan/flicker.js.map +1 -1
- package/dist/tan/tan-image.d.ts +4 -1
- package/dist/tan/tan-image.d.ts.map +1 -1
- package/dist/tan/tan-image.js +8 -2
- package/dist/tan/tan-image.js.map +1 -1
- package/dist/tan/tan-models.d.ts +9 -1
- package/dist/tan/tan-models.d.ts.map +1 -1
- package/dist/tan/tan-models.js +14 -2
- package/dist/tan/tan-models.js.map +1 -1
- package/dist/util/arguments.d.ts +13 -0
- package/dist/util/arguments.d.ts.map +1 -0
- package/dist/util/arguments.js +40 -0
- package/dist/util/arguments.js.map +1 -0
- package/dist/util/async.d.ts +4 -1
- package/dist/util/async.d.ts.map +1 -1
- package/dist/util/async.js +6 -3
- package/dist/util/async.js.map +1 -1
- package/dist/util/bytes.d.ts +1 -1
- package/dist/util/bytes.d.ts.map +1 -1
- package/dist/util/bytes.js +3 -3
- package/dist/util/bytes.js.map +1 -1
- package/dist/util/dates.d.ts +3 -10
- package/dist/util/dates.d.ts.map +1 -1
- package/dist/util/dates.js +49 -39
- package/dist/util/dates.js.map +1 -1
- package/dist/util/errors.d.ts +5 -3
- package/dist/util/errors.d.ts.map +1 -1
- package/dist/util/errors.js +8 -4
- package/dist/util/errors.js.map +1 -1
- package/dist/util/immutable-map.d.ts +5 -2
- package/dist/util/immutable-map.d.ts.map +1 -1
- package/dist/util/immutable-map.js +15 -12
- package/dist/util/immutable-map.js.map +1 -1
- package/dist/util/inspect.d.ts +11 -0
- package/dist/util/inspect.d.ts.map +1 -0
- package/dist/util/inspect.js +14 -0
- package/dist/util/inspect.js.map +1 -0
- package/dist/util/text.d.ts +18 -2
- package/dist/util/text.d.ts.map +1 -1
- package/dist/util/text.js +50 -5
- package/dist/util/text.js.map +1 -1
- package/dist/util/xml.d.ts +6 -4
- package/dist/util/xml.d.ts.map +1 -1
- package/dist/util/xml.js +106 -44
- package/dist/util/xml.js.map +1 -1
- package/dist/v3/bank-connection.d.ts +23 -3
- package/dist/v3/bank-connection.d.ts.map +1 -1
- package/dist/v3/bank-connection.js +66 -6
- package/dist/v3/bank-connection.js.map +1 -1
- package/dist/v3/dialog.d.ts +6 -2
- package/dist/v3/dialog.d.ts.map +1 -1
- package/dist/v3/dialog.js +20 -9
- package/dist/v3/dialog.js.map +1 -1
- package/dist/v3/message.d.ts +18 -10
- package/dist/v3/message.d.ts.map +1 -1
- package/dist/v3/message.js +92 -75
- package/dist/v3/message.js.map +1 -1
- package/dist/v3/parameter-store.d.ts +43 -7
- package/dist/v3/parameter-store.d.ts.map +1 -1
- package/dist/v3/parameter-store.js +69 -15
- package/dist/v3/parameter-store.js.map +1 -1
- package/dist/v3/parameters.d.ts +12 -11
- package/dist/v3/parameters.d.ts.map +1 -1
- package/dist/v3/parameters.js +57 -35
- package/dist/v3/parameters.js.map +1 -1
- package/dist/v3/protocol.d.ts +16 -9
- package/dist/v3/protocol.d.ts.map +1 -1
- package/dist/v3/protocol.js +57 -26
- package/dist/v3/protocol.js.map +1 -1
- package/dist/v3/queries.d.ts +2 -2
- package/dist/v3/queries.d.ts.map +1 -1
- package/dist/v3/queries.js +24 -16
- package/dist/v3/queries.js.map +1 -1
- package/dist/v3/segments.d.ts +18 -11
- package/dist/v3/segments.d.ts.map +1 -1
- package/dist/v3/segments.js +30 -21
- package/dist/v3/segments.js.map +1 -1
- package/dist/v3/syntax.d.ts +15 -11
- package/dist/v3/syntax.d.ts.map +1 -1
- package/dist/v3/syntax.js +30 -15
- package/dist/v3/syntax.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +58 -17
- package/src/core/account.ts +91 -35
- package/src/core/amount.ts +42 -9
- package/src/core/balance.ts +6 -0
- package/src/core/bank-info.ts +28 -4
- package/src/core/client.ts +42 -15
- package/src/core/config.ts +37 -18
- package/src/core/errors.ts +27 -7
- package/src/core/feedback.ts +12 -1
- package/src/core/transaction.ts +13 -0
- package/src/core/transport.ts +62 -16
- package/src/formats/camt.ts +62 -51
- package/src/formats/mt940.ts +114 -78
- package/src/formats/readers.ts +6 -2
- package/src/formats/sepa-purpose.ts +17 -9
- package/src/session/dialog-runner.ts +34 -7
- package/src/session/login-guard.ts +29 -13
- package/src/session/session-setup.ts +27 -9
- package/src/session/session-state.ts +25 -8
- package/src/session/signed-dialog.ts +60 -30
- package/src/session/user-prompts.ts +28 -3
- package/src/tan/challenge.ts +50 -36
- package/src/tan/flicker.ts +40 -29
- package/src/tan/tan-image.ts +9 -2
- package/src/tan/tan-models.ts +16 -2
- package/src/util/arguments.ts +40 -0
- package/src/util/async.ts +10 -4
- package/src/util/bytes.ts +3 -3
- package/src/util/dates.ts +52 -38
- package/src/util/errors.ts +9 -4
- package/src/util/immutable-map.ts +15 -12
- package/src/util/inspect.ts +14 -0
- package/src/util/text.ts +47 -5
- package/src/util/xml.ts +105 -38
- package/src/v3/bank-connection.ts +65 -6
- package/src/v3/dialog.ts +18 -8
- package/src/v3/message.ts +81 -72
- package/src/v3/parameter-store.ts +82 -16
- package/src/v3/parameters.ts +68 -41
- package/src/v3/protocol.ts +61 -28
- package/src/v3/queries.ts +26 -18
- package/src/v3/segments.ts +32 -20
- package/src/v3/syntax.ts +31 -14
package/dist/v3/protocol.js
CHANGED
|
@@ -7,6 +7,20 @@ import { buildMessage, decodeTransport, encodeTransport } from './message.js';
|
|
|
7
7
|
import { Segments } from './segments.js';
|
|
8
8
|
/** Customer ID the specification reserves for anonymous dialogs. */
|
|
9
9
|
const anonymousCustomerId = '9999999999';
|
|
10
|
+
/**
|
|
11
|
+
* How long the request on its way when the client is closed may take, and then its dialog ends, where the transport
|
|
12
|
+
* takes the abort (`beginClose`).
|
|
13
|
+
*/
|
|
14
|
+
const closingGraceMs = 5000;
|
|
15
|
+
/**
|
|
16
|
+
* Throws if `limits` rule out a message of `size` bytes, or the length of `loginPin`, the PIN of a login: `TypeError`
|
|
17
|
+
* for the PIN, which the bank would count as a failed attempt, and `FinTsProtocolError` for the size.
|
|
18
|
+
*/
|
|
19
|
+
function checkLimits(limits, size, loginPin) {
|
|
20
|
+
if (loginPin !== undefined)
|
|
21
|
+
requirePinLength(loginPin, limits.pinLength?.min, limits.pinLength?.max);
|
|
22
|
+
checkMessageSize(size, limits.maxMessageSize);
|
|
23
|
+
}
|
|
10
24
|
/** Whether `segments` are those of a dialog end, the one message a closing client still sends. */
|
|
11
25
|
function isDialogEnd(segments) {
|
|
12
26
|
return segments.length === 1 && segments[0].type === 'HKEND';
|
|
@@ -21,8 +35,9 @@ export class FinTs3Protocol {
|
|
|
21
35
|
guard;
|
|
22
36
|
config;
|
|
23
37
|
connection;
|
|
24
|
-
/** Whether the client is closing, so that only dialog ends go out (`beginClose`). */
|
|
25
38
|
closing = false;
|
|
39
|
+
/** The error with which the limits last stopped a login (`stoppedLogin`). */
|
|
40
|
+
stoppedLoginError;
|
|
26
41
|
constructor(parameters, guard, transport, logger) {
|
|
27
42
|
this.parameters = parameters;
|
|
28
43
|
this.guard = guard;
|
|
@@ -58,25 +73,27 @@ export class FinTs3Protocol {
|
|
|
58
73
|
if (this.closing && !isDialogEnd(message.segments))
|
|
59
74
|
throw clientClosedError();
|
|
60
75
|
const signing = message.signing;
|
|
76
|
+
const security = signing === undefined
|
|
77
|
+
? undefined
|
|
78
|
+
: {
|
|
79
|
+
countryCode: this.config.countryCode,
|
|
80
|
+
bankCode: this.config.bankCode,
|
|
81
|
+
userId: this.config.userId,
|
|
82
|
+
systemId: signing.systemId,
|
|
83
|
+
pin: this.guard.pin,
|
|
84
|
+
securityFunction: signing.securityFunction,
|
|
85
|
+
};
|
|
61
86
|
// The first message of a signed dialog logs in: from here on the bank may count the PIN.
|
|
62
|
-
const login =
|
|
87
|
+
const login = security !== undefined && message.number === 1;
|
|
63
88
|
const outgoing = buildMessage({
|
|
64
89
|
dialogId: message.dialogId,
|
|
65
90
|
messageNumber: message.number,
|
|
66
91
|
segments: message.segments,
|
|
67
|
-
security
|
|
68
|
-
? undefined
|
|
69
|
-
: {
|
|
70
|
-
countryCode: this.config.countryCode,
|
|
71
|
-
bankCode: this.config.bankCode,
|
|
72
|
-
userId: this.config.userId,
|
|
73
|
-
systemId: signing.systemId,
|
|
74
|
-
pin: login ? this.pinForLogin() : this.guard.pin,
|
|
75
|
-
securityFunction: signing.securityFunction,
|
|
76
|
-
},
|
|
92
|
+
security,
|
|
77
93
|
tan: message.tan,
|
|
78
94
|
});
|
|
79
|
-
|
|
95
|
+
this.checkOutgoing(outgoing.bytes.length, login ? security.pin : undefined);
|
|
96
|
+
this.connection.checkSendable();
|
|
80
97
|
this.connection.log('outgoing', () => outgoing.masked);
|
|
81
98
|
if (login)
|
|
82
99
|
this.guard.loginSent();
|
|
@@ -85,26 +102,40 @@ export class FinTs3Protocol {
|
|
|
85
102
|
return bytes;
|
|
86
103
|
}
|
|
87
104
|
/**
|
|
88
|
-
*
|
|
105
|
+
* Throws if the limits of the parameter data rule out a message of `size` bytes, or the length of `loginPin`, the PIN
|
|
106
|
+
* of a login (`checkLimits`). The later messages of a dialog, its end included, take the PIN the bank has accepted,
|
|
107
|
+
* whatever the parameter data it delivered since say.
|
|
89
108
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* the PIN the bank has accepted, whatever the parameter data it delivered since say.
|
|
109
|
+
* Remembers the error that stops a login (`stoppedLogin`): the parameter data may be outdated, as saved ones are,
|
|
110
|
+
* and new ones would come only in answer to the login they rule out.
|
|
93
111
|
*/
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
112
|
+
checkOutgoing(size, loginPin) {
|
|
113
|
+
try {
|
|
114
|
+
checkLimits(this.parameters.limits, size, loginPin);
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
if (loginPin !== undefined)
|
|
118
|
+
this.stoppedLoginError = error;
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/** Whether `error` is the one with which the limits of the parameter data last stopped a login. */
|
|
123
|
+
stoppedLogin(error) {
|
|
124
|
+
return this.stoppedLoginError !== undefined && this.stoppedLoginError === error;
|
|
125
|
+
}
|
|
126
|
+
/** Whether the client is closing, so that only dialog ends go out (`beginClose`). */
|
|
127
|
+
get isClosing() {
|
|
128
|
+
return this.closing;
|
|
99
129
|
}
|
|
100
130
|
/**
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
131
|
+
* Sends nothing but dialog ends from now on: any other message fails with `FinTsStateError` before it goes out, so
|
|
132
|
+
* that a call under way stops at its next one. The request on its way has `closingGraceMs` to bring its answer, which
|
|
133
|
+
* counts as any other, and is aborted then; the dialog ends have as long again once it is over, and none goes out
|
|
134
|
+
* later. The client calls it as soon as it is closed, and `close` once it has ended its dialog.
|
|
104
135
|
*/
|
|
105
136
|
beginClose() {
|
|
106
137
|
this.closing = true;
|
|
107
|
-
this.connection.
|
|
138
|
+
this.connection.abortRequestsAfter(closingGraceMs);
|
|
108
139
|
}
|
|
109
140
|
close() {
|
|
110
141
|
this.connection.close();
|
package/dist/v3/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/v3/protocol.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAGvH,OAAO,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,oEAAoE;AACpE,MAAM,mBAAmB,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/v3/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/v3/queries.d.ts
CHANGED
|
@@ -42,8 +42,8 @@ export declare function balanceQuery(parameters: ParameterStore, account: Accoun
|
|
|
42
42
|
* the bank knows it, with the transactions the bank permits for it and its currency (`SepaAccounts.complete`).
|
|
43
43
|
*
|
|
44
44
|
* The client reads camt.052 only, so camt counts as offered only where the bank offers a camt.052 format. With `auto`
|
|
45
|
-
* the client takes camt where the bank offers it, unless
|
|
46
|
-
*
|
|
45
|
+
* the client takes camt where the bank offers it, unless MT940 can be requested for the account and the user parameter
|
|
46
|
+
* data list only MT940 transactions for it.
|
|
47
47
|
*
|
|
48
48
|
* Throws `FinTsUnsupportedError` if the bank does not offer the chosen format for the account.
|
|
49
49
|
*/
|
package/dist/v3/queries.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/v3/queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,KAAK,WAAW,CAAC;IAElE,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,KAAK,CAAC,CAAC;CAC1D;AAsBD,wHAAwH;AACxH,wBAAgB,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,CAYxF;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAQ1F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,aAAa,EAAE,GACjC,OAAO,CAOT;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/v3/queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,KAAK,WAAW,CAAC;IAElE,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,KAAK,CAAC,CAAC;CAC1D;AAsBD,wHAAwH;AACxH,wBAAgB,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,CAYxF;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAQ1F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,aAAa,EAAE,GACjC,OAAO,CAOT;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAkBzF;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,iBAAiB,EACzB,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,EAAE,EAAE,IAAI,GAAG,SAAS,GACnB,KAAK,CAAC,WAAW,EAAE,CAAC,CA4DtB"}
|
package/dist/v3/queries.js
CHANGED
|
@@ -62,8 +62,9 @@ export function balanceQuery(parameters, account) {
|
|
|
62
62
|
if (offered === undefined) {
|
|
63
63
|
throw new FinTsUnsupportedError('The bank reports no balance (HKSAL) for this account');
|
|
64
64
|
}
|
|
65
|
+
const nationalAllowed = requireBankParameters(parameters.bankParameters).nationalAccountAllowed;
|
|
65
66
|
return {
|
|
66
|
-
order: (continuation) => Segments.balance(offered, account, continuation),
|
|
67
|
+
order: (continuation) => Segments.balance(offered, account, nationalAllowed, continuation),
|
|
67
68
|
read: (pages) => parseBalance(balanceRecord(all(pages, 'HISAL'), account, pages.flatMap((p) => p.feedback)), account),
|
|
68
69
|
};
|
|
69
70
|
}
|
|
@@ -72,25 +73,32 @@ export function balanceQuery(parameters, account) {
|
|
|
72
73
|
* the bank knows it, with the transactions the bank permits for it and its currency (`SepaAccounts.complete`).
|
|
73
74
|
*
|
|
74
75
|
* The client reads camt.052 only, so camt counts as offered only where the bank offers a camt.052 format. With `auto`
|
|
75
|
-
* the client takes camt where the bank offers it, unless
|
|
76
|
-
*
|
|
76
|
+
* the client takes camt where the bank offers it, unless MT940 can be requested for the account and the user parameter
|
|
77
|
+
* data list only MT940 transactions for it.
|
|
77
78
|
*
|
|
78
79
|
* Throws `FinTsUnsupportedError` if the bank does not offer the chosen format for the account.
|
|
79
80
|
*/
|
|
80
81
|
export function transactionsQuery(parameters, account, format, from, to) {
|
|
81
|
-
const
|
|
82
|
-
const camtVersion = camtFormats.length === 0 ? undefined : version(parameters, 'HKCAZ', [1], { account });
|
|
82
|
+
const bpd = requireBankParameters(parameters.bankParameters);
|
|
83
|
+
const camtVersion = bpd.camtFormats.length === 0 ? undefined : version(parameters, 'HKCAZ', [1], { account });
|
|
84
|
+
const mt940Version = version(parameters, 'HKKAZ', [6, 7], { account });
|
|
83
85
|
const camt = format === 'camt' ||
|
|
84
|
-
(format === 'auto' &&
|
|
85
|
-
|
|
86
|
+
(format === 'auto' &&
|
|
87
|
+
camtVersion !== undefined &&
|
|
88
|
+
(mt940Version === undefined || lists(account, 'HKCAZ') || !lists(account, 'HKKAZ')));
|
|
89
|
+
const offered = camt ? camtVersion : mt940Version;
|
|
86
90
|
if (offered === undefined) {
|
|
87
91
|
throw new FinTsUnsupportedError(`The bank offers no ${camt ? 'camt ' : ''}transactions (${camt ? 'HKCAZ' : 'HKKAZ'}) for this account`);
|
|
88
92
|
}
|
|
89
93
|
if (camt) {
|
|
90
94
|
return {
|
|
91
|
-
order: (continuation) => Segments.transactionsCamt(offered, account, camtFormats, {
|
|
95
|
+
order: (continuation) => Segments.transactionsCamt(offered, account, bpd.nationalAccountAllowed, bpd.camtFormats, {
|
|
96
|
+
from,
|
|
97
|
+
to,
|
|
98
|
+
continuation,
|
|
99
|
+
}),
|
|
92
100
|
// The first element names the account, the third element group holds the booked documents, the fourth
|
|
93
|
-
// element the pending one.
|
|
101
|
+
// element the pending one: binary data, which a bank may send as text instead.
|
|
94
102
|
read: (pages) => {
|
|
95
103
|
const segments = all(pages, 'HICAZ');
|
|
96
104
|
if (!segments.every((s) => camtAccount(s).matches(account))) {
|
|
@@ -99,19 +107,19 @@ export function transactionsQuery(parameters, account, format, from, to) {
|
|
|
99
107
|
return camtTransactions(segments.flatMap((s) => s
|
|
100
108
|
.group(3)
|
|
101
109
|
.filter((d) => !d.isEmpty)
|
|
102
|
-
.map((d) => d.bytes)), segments.map((s) => s.
|
|
110
|
+
.map((d) => d.bytes)), segments.map((s) => s.bytes(4)).filter((d) => d !== undefined));
|
|
103
111
|
},
|
|
104
112
|
};
|
|
105
113
|
}
|
|
106
114
|
return {
|
|
107
|
-
order: (continuation) => Segments.transactionsMt940(offered, account, { from, to, continuation }),
|
|
108
|
-
// The first element holds the booked transactions, the second the pending ones
|
|
109
|
-
// account, and banks write the account line of a statement (`:25:`)
|
|
110
|
-
// `account`: a strict comparison would fail every query of such a bank.
|
|
115
|
+
order: (continuation) => Segments.transactionsMt940(offered, account, bpd.nationalAccountAllowed, { from, to, continuation }),
|
|
116
|
+
// The first element holds the booked transactions, the second the pending ones: binary data, which a bank may send
|
|
117
|
+
// as text instead. Unlike HICAZ, HIKAZ names no account, and banks write the account line of a statement (`:25:`)
|
|
118
|
+
// in many ways, so it is not compared with `account`: a strict comparison would fail every query of such a bank.
|
|
111
119
|
read: (pages) => mt940Transactions(all(pages, 'HIKAZ')
|
|
112
|
-
.map((s) => s.
|
|
120
|
+
.map((s) => s.bytes(1))
|
|
113
121
|
.filter((d) => d !== undefined), all(pages, 'HIKAZ')
|
|
114
|
-
.map((s) => s.
|
|
122
|
+
.map((s) => s.bytes(2))
|
|
115
123
|
.filter((d) => d !== undefined),
|
|
116
124
|
// The currency of statements that state none.
|
|
117
125
|
account.currency),
|
package/dist/v3/queries.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/v3/queries.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/v3/queries.ts"],"names":[],"mappings":"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"}
|
package/dist/v3/segments.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Account } from '../core/account.js';
|
|
2
2
|
import { Balance } from '../core/balance.js';
|
|
3
3
|
import { TanMedium } from '../tan/tan-models.js';
|
|
4
|
-
import { type Segment, SegmentSpec } from './syntax.js';
|
|
4
|
+
import { type Segment, SegmentSpec, Verbatim } from './syntax.js';
|
|
5
5
|
/**
|
|
6
6
|
* The filler the specification names for a reference that does not exist.
|
|
7
7
|
*
|
|
@@ -35,23 +35,29 @@ export declare const Segments: Readonly<{
|
|
|
35
35
|
dialogEnd(dialogId: string): SegmentSpec;
|
|
36
36
|
/**
|
|
37
37
|
* HKTAN process 4: asks for strong customer authentication of the `segmentType` sent in the same message, with the TAN
|
|
38
|
-
* medium `mediumName
|
|
38
|
+
* medium `mediumName`: a `Verbatim` where it has to go back as the bank sent it (`ParameterStore.tanMediumToSend`).
|
|
39
39
|
*/
|
|
40
|
-
tanProcess4(version: number, segmentType: string, mediumName?: string): SegmentSpec;
|
|
40
|
+
tanProcess4(version: number, segmentType: string, mediumName?: string | Verbatim): SegmentSpec;
|
|
41
41
|
/** HKTAN process 2: submits the TAN (carried in the signature) for the order with `reference`. */
|
|
42
42
|
tanProcess2(version: number, reference: string): SegmentSpec;
|
|
43
43
|
/** HKTAN process S: asks whether the order with `reference` was approved in the banking app. */
|
|
44
44
|
tanProcessStatus(version: number, reference: string): SegmentSpec;
|
|
45
|
-
/**
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
/**
|
|
46
|
+
* HKSAL: the balance of one account (not of all accounts), named by its national account as well where
|
|
47
|
+
* `nationalAllowed` (HISPAS).
|
|
48
|
+
*/
|
|
49
|
+
balance(version: number, account: Account, nationalAllowed: boolean, continuation?: string): SegmentSpec;
|
|
50
|
+
/** HKKAZ: MT940 transactions of one account, named by its national account as well where `nationalAllowed`. */
|
|
51
|
+
transactionsMt940(version: number, account: Account, nationalAllowed: boolean, period: {
|
|
49
52
|
from?: Date | undefined;
|
|
50
53
|
to?: Date | undefined;
|
|
51
54
|
continuation?: string | undefined;
|
|
52
55
|
}): SegmentSpec;
|
|
53
|
-
/**
|
|
54
|
-
|
|
56
|
+
/**
|
|
57
|
+
* HKCAZ: camt transactions of one account in one of `formats`, named by its national account as well where
|
|
58
|
+
* `nationalAllowed`.
|
|
59
|
+
*/
|
|
60
|
+
transactionsCamt(version: number, account: Account, nationalAllowed: boolean, formats: readonly string[], period: {
|
|
55
61
|
from?: Date | undefined;
|
|
56
62
|
to?: Date | undefined;
|
|
57
63
|
continuation?: string | undefined;
|
|
@@ -99,8 +105,9 @@ export declare function parseSepaAccounts(s: Segment, defaultCountry: string, de
|
|
|
99
105
|
/**
|
|
100
106
|
* Parses the TAN media list (HITAB versions 4 and 5, PIN/TAN "TAN-Medium-Liste").
|
|
101
107
|
*
|
|
102
|
-
* Each name whose text
|
|
103
|
-
* by its text:
|
|
108
|
+
* Each name whose text would not go back as the bank sent it goes into `namesAsSent` as `Segment.verbatim` reads it,
|
|
109
|
+
* keyed by its text: a name in UTF-8, which its text does not tell where it fits ISO 8859-1, and one with blanks at
|
|
110
|
+
* either end, which text goes out without (Formals B.4.1).
|
|
104
111
|
*/
|
|
105
112
|
export declare function parseTanMedia(s: Segment, namesAsSent?: Map<string, string>): TanMedium[];
|
|
106
113
|
//# sourceMappingURL=segments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAqB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"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"}
|
package/dist/v3/segments.js
CHANGED
|
@@ -5,6 +5,7 @@ import { Balance } from '../core/balance.js';
|
|
|
5
5
|
import { TanMedium, tanMediumStatusOf } from '../tan/tan-models.js';
|
|
6
6
|
import { formatFintsDate, parseFintsDate, parseFintsDateTime } from '../util/dates.js';
|
|
7
7
|
import { FormatError } from '../util/errors.js';
|
|
8
|
+
import { trimBlanks } from '../util/text.js';
|
|
8
9
|
import { SegmentSpec, Verbatim } from './syntax.js';
|
|
9
10
|
/**
|
|
10
11
|
* The filler the specification names for a reference that does not exist.
|
|
@@ -21,9 +22,13 @@ function bankIdentification(countryCode, bankCode) {
|
|
|
21
22
|
function nationalAccount(a) {
|
|
22
23
|
return [a.accountNumber, a.subAccount, a.countryCode, a.bankCode];
|
|
23
24
|
}
|
|
24
|
-
/**
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
/**
|
|
26
|
+
* International account (KTI): IBAN and BIC, then the national account where the bank allows it (HISPAS). An IBAN goes
|
|
27
|
+
* only with its BIC (Messages B.3.2): without one the national account names the account, where it has a number.
|
|
28
|
+
*/
|
|
29
|
+
function internationalAccount(a, nationalAllowed) {
|
|
30
|
+
const iban = a.bic !== undefined || a.accountNumber === undefined ? a.iban : undefined;
|
|
31
|
+
return [iban, a.bic, ...(nationalAllowed || iban === undefined ? nationalAccount(a) : [])];
|
|
27
32
|
}
|
|
28
33
|
function dateOrEmpty(date) {
|
|
29
34
|
return date === undefined ? undefined : formatFintsDate(date);
|
|
@@ -65,14 +70,10 @@ export const Segments = Object.freeze({
|
|
|
65
70
|
},
|
|
66
71
|
/**
|
|
67
72
|
* HKTAN process 4: asks for strong customer authentication of the `segmentType` sent in the same message, with the TAN
|
|
68
|
-
* medium `mediumName
|
|
73
|
+
* medium `mediumName`: a `Verbatim` where it has to go back as the bank sent it (`ParameterStore.tanMediumToSend`).
|
|
69
74
|
*/
|
|
70
75
|
tanProcess4(version, segmentType, mediumName) {
|
|
71
|
-
return SegmentSpec.numbered('HKTAN', version, {
|
|
72
|
-
1: '4',
|
|
73
|
-
2: segmentType,
|
|
74
|
-
[tanMediumField]: Verbatim.of(mediumName),
|
|
75
|
-
});
|
|
76
|
+
return SegmentSpec.numbered('HKTAN', version, { 1: '4', 2: segmentType, [tanMediumField]: mediumName });
|
|
76
77
|
},
|
|
77
78
|
/** HKTAN process 2: submits the TAN (carried in the signature) for the order with `reference`. */
|
|
78
79
|
tanProcess2(version, reference) {
|
|
@@ -90,19 +91,22 @@ export const Segments = Object.freeze({
|
|
|
90
91
|
[moreTansField]: false,
|
|
91
92
|
});
|
|
92
93
|
},
|
|
93
|
-
/**
|
|
94
|
-
|
|
94
|
+
/**
|
|
95
|
+
* HKSAL: the balance of one account (not of all accounts), named by its national account as well where
|
|
96
|
+
* `nationalAllowed` (HISPAS).
|
|
97
|
+
*/
|
|
98
|
+
balance(version, account, nationalAllowed, continuation) {
|
|
95
99
|
return new SegmentSpec('HKSAL', version, [
|
|
96
|
-
version >= 7 ? internationalAccount(account) : nationalAccount(account),
|
|
100
|
+
version >= 7 ? internationalAccount(account, nationalAllowed) : nationalAccount(account),
|
|
97
101
|
false,
|
|
98
102
|
null,
|
|
99
103
|
Verbatim.of(continuation),
|
|
100
104
|
]);
|
|
101
105
|
},
|
|
102
|
-
/** HKKAZ: MT940 transactions of one account
|
|
103
|
-
transactionsMt940(version, account, period) {
|
|
106
|
+
/** HKKAZ: MT940 transactions of one account, named by its national account as well where `nationalAllowed`. */
|
|
107
|
+
transactionsMt940(version, account, nationalAllowed, period) {
|
|
104
108
|
return new SegmentSpec('HKKAZ', version, [
|
|
105
|
-
version >= 7 ? internationalAccount(account) : nationalAccount(account),
|
|
109
|
+
version >= 7 ? internationalAccount(account, nationalAllowed) : nationalAccount(account),
|
|
106
110
|
false,
|
|
107
111
|
dateOrEmpty(period.from),
|
|
108
112
|
dateOrEmpty(period.to),
|
|
@@ -110,10 +114,13 @@ export const Segments = Object.freeze({
|
|
|
110
114
|
Verbatim.of(period.continuation),
|
|
111
115
|
]);
|
|
112
116
|
},
|
|
113
|
-
/**
|
|
114
|
-
|
|
117
|
+
/**
|
|
118
|
+
* HKCAZ: camt transactions of one account in one of `formats`, named by its national account as well where
|
|
119
|
+
* `nationalAllowed`.
|
|
120
|
+
*/
|
|
121
|
+
transactionsCamt(version, account, nationalAllowed, formats, period) {
|
|
115
122
|
return new SegmentSpec('HKCAZ', version, [
|
|
116
|
-
internationalAccount(account),
|
|
123
|
+
internationalAccount(account, nationalAllowed),
|
|
117
124
|
formats,
|
|
118
125
|
false,
|
|
119
126
|
dateOrEmpty(period.from),
|
|
@@ -283,8 +290,9 @@ const accountWidth = 4;
|
|
|
283
290
|
/**
|
|
284
291
|
* Parses the TAN media list (HITAB versions 4 and 5, PIN/TAN "TAN-Medium-Liste").
|
|
285
292
|
*
|
|
286
|
-
* Each name whose text
|
|
287
|
-
* by its text:
|
|
293
|
+
* Each name whose text would not go back as the bank sent it goes into `namesAsSent` as `Segment.verbatim` reads it,
|
|
294
|
+
* keyed by its text: a name in UTF-8, which its text does not tell where it fits ISO 8859-1, and one with blanks at
|
|
295
|
+
* either end, which text goes out without (Formals B.4.1).
|
|
288
296
|
*/
|
|
289
297
|
export function parseTanMedia(s, namesAsSent) {
|
|
290
298
|
// Version 5 adds the security function in front of the card number.
|
|
@@ -303,8 +311,9 @@ export function parseTanMedia(s, namesAsSent) {
|
|
|
303
311
|
continue;
|
|
304
312
|
const name = fields[after + 3];
|
|
305
313
|
const nameAsSent = s.verbatim(i, after + 3);
|
|
306
|
-
if (name !== undefined && nameAsSent !== undefined && nameAsSent !== name)
|
|
314
|
+
if (name !== undefined && nameAsSent !== undefined && nameAsSent !== trimBlanks(name)) {
|
|
307
315
|
namesAsSent?.set(name, nameAsSent);
|
|
316
|
+
}
|
|
308
317
|
media.push(new TanMedium({
|
|
309
318
|
mediumClass,
|
|
310
319
|
status: tanMediumStatusOf(fields[1]),
|
package/dist/v3/segments.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/v3/segments.ts"],"names":[],"mappings":"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"}
|
package/dist/v3/syntax.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ export declare class Segment {
|
|
|
29
29
|
private readonly source;
|
|
30
30
|
private readonly start;
|
|
31
31
|
private readonly end;
|
|
32
|
+
private typeValue;
|
|
32
33
|
constructor(elements: readonly (readonly DataElement[])[],
|
|
33
34
|
/** The bytes the segment was read from: `start` to `end` in `source`, terminator included. */
|
|
34
35
|
source: Uint8Array, start: number, end: number);
|
|
@@ -40,6 +41,8 @@ export declare class Segment {
|
|
|
40
41
|
text(index: number, sub?: number): string | undefined;
|
|
41
42
|
/** The binary data at `index`; `undefined` for an element that holds text. */
|
|
42
43
|
binary(index: number, sub?: number): Uint8Array | undefined;
|
|
44
|
+
/** The binary data or the text without escape characters at `index`; `undefined` for an empty element. */
|
|
45
|
+
bytes(index: number, sub?: number): Uint8Array | undefined;
|
|
43
46
|
/**
|
|
44
47
|
* The element at `index` as the bank sent it, for a value the client sends back, such as the dialog ID: untrimmed,
|
|
45
48
|
* and one character per byte (ISO 8859-1, the FinTS 3.0 character set), so that `Verbatim` gives the bank back the
|
|
@@ -61,26 +64,27 @@ export declare class Segment {
|
|
|
61
64
|
*/
|
|
62
65
|
export declare function encodeText(value: string): Uint8Array;
|
|
63
66
|
/**
|
|
64
|
-
* The data elements one
|
|
65
|
-
* parameter data of
|
|
66
|
-
*
|
|
67
|
+
* The data elements and segments one parse may produce together, segment headers and group elements included: what
|
|
68
|
+
* the user parameter data of 6,000 accounts take, at about 155 data elements each, which is about what 9,999 KB, the
|
|
69
|
+
* largest message size HIBPA can state, hold of real data. Without a limit, a message of nothing but separators would
|
|
70
|
+
* take a hundred times its size in memory.
|
|
71
|
+
*
|
|
72
|
+
* @internal Exported for the tests.
|
|
67
73
|
*/
|
|
68
|
-
export declare const
|
|
74
|
+
export declare const maxParts = 1000000;
|
|
69
75
|
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
76
|
+
* What `IncomingMessage3.size` counts for each data element it keeps: more than any of them takes once parsed, so that
|
|
77
|
+
* a message of many short elements counts as the memory it holds rather than its bytes.
|
|
72
78
|
*/
|
|
73
|
-
export declare const
|
|
79
|
+
export declare const parsedElementBytes = 512;
|
|
74
80
|
/**
|
|
75
81
|
* Splits a FinTS 3.0 message into segments, resolving escapes and binary data (`@length@bytes`).
|
|
76
82
|
*
|
|
77
83
|
* The elements share the memory of `data`. Throws `FormatError` for anything a complete message cannot hold: a
|
|
78
84
|
* malformed binary length, binary data beyond the end of `data` or not followed by a separator, a last segment without
|
|
79
|
-
* terminator, and more
|
|
85
|
+
* terminator, and more than `maxParts` data elements and segments, an empty one included.
|
|
80
86
|
*/
|
|
81
|
-
export declare function parseSegments(data: Uint8Array
|
|
82
|
-
elements: number;
|
|
83
|
-
}): Segment[];
|
|
87
|
+
export declare function parseSegments(data: Uint8Array): Segment[];
|
|
84
88
|
/** Binary data in a segment to send, written as `@length@bytes`. */
|
|
85
89
|
export declare class Binary {
|
|
86
90
|
readonly bytes: Uint8Array;
|
package/dist/v3/syntax.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../src/v3/syntax.ts"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,QAAQ,CAAC,QAAQ,EAAE,OAAO;IAC1B,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,OAAO,CAAC,OAAO,CAAqB;gBAGjB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO;IAC1B,0EAA0E;IACzD,OAAO,UAAQ;IAGlC,8DAA8D;IAC9D,IAAI,KAAK,IAAI,UAAU,CAGtB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,IAAI,IAAI,MAAM,CAGjB;CACF;AAED;;;;GAIG;AACH,qBAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../src/v3/syntax.ts"],"names":[],"mappings":"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"}
|