lib-fints 1.4.8 → 1.5.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/README.md +2 -0
- package/dist/client.js +37 -0
- package/dist/dataElements/Binary.js +18 -1
- package/dist/dialog.js +52 -31
- package/dist/electronicStatement.js +1 -0
- package/dist/httpClient.js +1 -1
- package/dist/index.js +2 -0
- package/dist/interactions/creditcardStatementInteraction.js +9 -1
- package/dist/interactions/electronicStatementInteraction.js +88 -0
- package/dist/interactions/portfolioInteraction.js +10 -4
- package/dist/interactions/sepaAccountInteraction.js +5 -3
- package/dist/interactions/statementInteractionCAMT.js +8 -3
- package/dist/interactions/statementInteractionMT940.js +10 -3
- package/dist/message.js +5 -1
- package/dist/segments/HIEKA.js +45 -0
- package/dist/segments/HIEKAS.js +18 -0
- package/dist/segments/HKEKA.js +43 -0
- package/dist/segments/registry.js +6 -0
- package/dist/tests/HKEKA.test.js +198 -0
- package/dist/tests/partedResponse.test.js +181 -0
- package/dist/types/client.d.ts +28 -0
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/dataElements/Binary.d.ts +7 -0
- package/dist/types/dataElements/Binary.d.ts.map +1 -1
- package/dist/types/dialog.d.ts +14 -0
- package/dist/types/dialog.d.ts.map +1 -1
- package/dist/types/electronicStatement.d.ts +40 -0
- package/dist/types/electronicStatement.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interactions/creditcardStatementInteraction.d.ts.map +1 -1
- package/dist/types/interactions/electronicStatementInteraction.d.ts +33 -0
- package/dist/types/interactions/electronicStatementInteraction.d.ts.map +1 -0
- package/dist/types/interactions/portfolioInteraction.d.ts.map +1 -1
- package/dist/types/interactions/sepaAccountInteraction.d.ts.map +1 -1
- package/dist/types/interactions/statementInteractionCAMT.d.ts.map +1 -1
- package/dist/types/interactions/statementInteractionMT940.d.ts.map +1 -1
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/segments/HIEKA.d.ts +52 -0
- package/dist/types/segments/HIEKA.d.ts.map +1 -0
- package/dist/types/segments/HIEKAS.d.ts +21 -0
- package/dist/types/segments/HIEKAS.d.ts.map +1 -0
- package/dist/types/segments/HKEKA.d.ts +54 -0
- package/dist/types/segments/HKEKA.d.ts.map +1 -0
- package/dist/types/segments/registry.d.ts.map +1 -1
- package/dist/types/tests/HKEKA.test.d.ts +2 -0
- package/dist/types/tests/HKEKA.test.d.ts.map +1 -0
- package/dist/types/tests/partedResponse.test.d.ts +2 -0
- package/dist/types/tests/partedResponse.test.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAa5C,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,qBAAqB,CAAC;AAEpE,qBAAa,OAAO;IACA,QAAQ,EAAE,OAAO,EAAE;gBAAnB,QAAQ,EAAE,OAAO,EAAE;IAEtC,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAKhE,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;IAI1D,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE;IAO3D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASpC,oBAAoB,IAAI,MAAM;IAU9B,cAAc,IAAI,UAAU,EAAE;IA6B9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO;IAoBlE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAa5C,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,qBAAqB,CAAC;AAEpE,qBAAa,OAAO;IACA,QAAQ,EAAE,OAAO,EAAE;gBAAnB,QAAQ,EAAE,OAAO,EAAE;IAEtC,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAKhE,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;IAI1D,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE;IAO3D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASpC,oBAAoB,IAAI,MAAM;IAU9B,cAAc,IAAI,UAAU,EAAE;IA6B9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO;IAoBlE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO;IAqBzE,QAAQ,CAAC,cAAc,UAAQ,GAAG,MAAM;CAQxC;AAED,qBAAa,eAAgB,SAAQ,OAAO;IAC3C,mBAAmB,SAAK;gBAEZ,QAAQ,GAAE,MAAY,EAAE,KAAK,SAAI;IAiB7C,MAAM,IAAI,MAAM;IAwEhB,IAAI,CACH,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,CAAC,EAAE,MAAM;IAuCb,UAAU,CAAC,OAAO,EAAE,OAAO;CAS3B;AAED,qBAAa,oBAAqB,SAAQ,eAAe;IAEhD,UAAU,EAAE,MAAM;IAClB,kBAAkB,EAAE,MAAM;gBAD1B,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EACjC,QAAQ,GAAE,MAAY,EACtB,KAAK,SAAI;IAKV,IAAI,8BAA8B,IAAI,OAAO,CAG5C;CACD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { AlphaNumeric } from '../dataElements/AlphaNumeric.js';
|
|
2
|
+
import { Binary } from '../dataElements/Binary.js';
|
|
3
|
+
import { Dat } from '../dataElements/Dat.js';
|
|
4
|
+
import { Numeric } from '../dataElements/Numeric.js';
|
|
5
|
+
import { DataGroup } from '../dataGroups/DataGroup.js';
|
|
6
|
+
import type { Segment } from '../segment.js';
|
|
7
|
+
import { SegmentDefinition } from '../segmentDefinition.js';
|
|
8
|
+
import type { StatementFormat } from './HKEKA.js';
|
|
9
|
+
export type HIEKASegment = Segment & {
|
|
10
|
+
format: StatementFormat;
|
|
11
|
+
timeRange?: {
|
|
12
|
+
from?: Date;
|
|
13
|
+
to?: Date;
|
|
14
|
+
};
|
|
15
|
+
date?: Date;
|
|
16
|
+
year?: number;
|
|
17
|
+
number?: number;
|
|
18
|
+
/** The statement document itself — a PDF when format is '3' */
|
|
19
|
+
booked: string;
|
|
20
|
+
closingInfo?: string;
|
|
21
|
+
conditionsInfo?: string;
|
|
22
|
+
advertisement?: string;
|
|
23
|
+
iban?: string;
|
|
24
|
+
bic?: string;
|
|
25
|
+
name?: string;
|
|
26
|
+
name2?: string;
|
|
27
|
+
name3?: string;
|
|
28
|
+
/** Receipt to acknowledge the statement with, when the bank requires acknowledgement */
|
|
29
|
+
receipt?: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Electronic account statement response (Elektronischer Kontoauszug)
|
|
33
|
+
*
|
|
34
|
+
* The element order follows the FinTS 3.0 specification, and two details of it are easy
|
|
35
|
+
* to get wrong:
|
|
36
|
+
*
|
|
37
|
+
* - `booked` sits AFTER date/year/number, not before them. HIEKP v2 orders the same
|
|
38
|
+
* fields the other way round — the order is specific to each segment and cannot be
|
|
39
|
+
* carried over from one to the other.
|
|
40
|
+
* - Only version 5 carries date/year/number at all; up to version 4 `booked` follows
|
|
41
|
+
* the time range directly, and version 1 has no iban/bic/name either. Decoding an
|
|
42
|
+
* older response with the version 5 layout does not fail, it silently shifts every
|
|
43
|
+
* field by three positions and hands out the advertisement text as the document.
|
|
44
|
+
*/
|
|
45
|
+
export declare class HIEKA extends SegmentDefinition {
|
|
46
|
+
static Id: string;
|
|
47
|
+
static Version: number;
|
|
48
|
+
constructor();
|
|
49
|
+
version: number;
|
|
50
|
+
elements: (AlphaNumeric | DataGroup | Numeric | Binary | Dat)[];
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=HIEKA.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HIEKA.d.ts","sourceRoot":"","sources":["../../../src/segments/HIEKA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG;IACpC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,IAAI,CAAC;QAAC,EAAE,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;IACvC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,qBAAa,KAAM,SAAQ,iBAAiB;IAC3C,MAAM,CAAC,EAAE,SAAW;IACpB,MAAM,CAAC,OAAO,SAAK;;IAInB,OAAO,SAAiB;IACxB,QAAQ,wDAgBN;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BusinessTransactionParameter, type BusinessTransactionParameterSegment } from './businessTransactionParameter.js';
|
|
2
|
+
export type HIEKASSegment = BusinessTransactionParameterSegment<HIEKASParameter>;
|
|
3
|
+
export type HIEKASParameter = {
|
|
4
|
+
/** Whether a specific statement may be requested by number and year */
|
|
5
|
+
indexAllowed: boolean;
|
|
6
|
+
/** Whether the bank expects each fetched statement to be acknowledged with its receipt */
|
|
7
|
+
receiptRequired: boolean;
|
|
8
|
+
/** Whether the number of entries may be limited */
|
|
9
|
+
maxEntryCountAllowed: boolean;
|
|
10
|
+
/** The statement formats the bank supports, see StatementFormat */
|
|
11
|
+
supportedFormats: string[];
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Parameters for the HKEKA business transaction (electronic account statements)
|
|
15
|
+
*/
|
|
16
|
+
export declare class HIEKAS extends BusinessTransactionParameter {
|
|
17
|
+
static Id: string;
|
|
18
|
+
version: number;
|
|
19
|
+
constructor();
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=HIEKAS.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HIEKAS.d.ts","sourceRoot":"","sources":["../../../src/segments/HIEKAS.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,4BAA4B,EAC5B,KAAK,mCAAmC,EACxC,MAAM,mCAAmC,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,mCAAmC,CAAC,eAAe,CAAC,CAAC;AAEjF,MAAM,MAAM,eAAe,GAAG;IAC7B,uEAAuE;IACvE,YAAY,EAAE,OAAO,CAAC;IACtB,0FAA0F;IAC1F,eAAe,EAAE,OAAO,CAAC;IACzB,mDAAmD;IACnD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,qBAAa,MAAO,SAAQ,4BAA4B;IACvD,MAAM,CAAC,EAAE,SAAY;IACrB,OAAO,SAAK;;CAUZ"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { AlphaNumeric } from '../dataElements/AlphaNumeric.js';
|
|
2
|
+
import { Numeric } from '../dataElements/Numeric.js';
|
|
3
|
+
import { type Account, AccountGroup } from '../dataGroups/Account.js';
|
|
4
|
+
import { type InternationalAccount, InternationalAccountGroup } from '../dataGroups/InternationalAccount.js';
|
|
5
|
+
import type { Segment } from '../segment.js';
|
|
6
|
+
import { SegmentDefinition } from '../segmentDefinition.js';
|
|
7
|
+
/**
|
|
8
|
+
* Format of the electronic account statement.
|
|
9
|
+
* The bank announces the formats it supports in the HIEKAS parameters.
|
|
10
|
+
*/
|
|
11
|
+
export declare enum StatementFormat {
|
|
12
|
+
MT940 = "1",
|
|
13
|
+
ISO8583 = "2",
|
|
14
|
+
PDF = "3"
|
|
15
|
+
}
|
|
16
|
+
export type HKEKASegment = Segment & {
|
|
17
|
+
/** National account connection up to version 3, international from version 4 on */
|
|
18
|
+
account: Account | InternationalAccount;
|
|
19
|
+
statementFormat?: StatementFormat;
|
|
20
|
+
/** The sequential number of the statement to fetch, only allowed when the bank sets `indexAllowed` */
|
|
21
|
+
statementNumber?: number;
|
|
22
|
+
/** The year the statement number refers to, not available before version 3 */
|
|
23
|
+
statementYear?: number;
|
|
24
|
+
maxEntries?: number;
|
|
25
|
+
/**
|
|
26
|
+
* The offset ("Aufsetzpunkt") the bank returned with answer code 3040, to fetch the
|
|
27
|
+
* next statement.
|
|
28
|
+
*
|
|
29
|
+
* This is deliberately NOT named `continuationMark`: for HKEKA the bank does not split
|
|
30
|
+
* one oversized response across messages, it announces that a *further document* is
|
|
31
|
+
* waiting. Naming it `continuationMark` would make the generic parted-message handling
|
|
32
|
+
* splice two complete HIEKA segments into one corrupt segment.
|
|
33
|
+
*/
|
|
34
|
+
offset?: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Request an electronic account statement (Elektronischer Kontoauszug)
|
|
38
|
+
*
|
|
39
|
+
* Unlike HKKAZ/HKCAZ this does not return individual transactions but the statement
|
|
40
|
+
* document the bank files in the customer's electronic mailbox — for most banks a PDF.
|
|
41
|
+
*
|
|
42
|
+
* A statement is handed out once: the bank keeps track of which statements have already
|
|
43
|
+
* been fetched and announces remaining ones with answer code 3040 plus an offset. Banks
|
|
44
|
+
* that set `receiptRequired` in their HIEKAS parameters expect each statement to be
|
|
45
|
+
* acknowledged before they consider it delivered.
|
|
46
|
+
*/
|
|
47
|
+
export declare class HKEKA extends SegmentDefinition {
|
|
48
|
+
static Id: string;
|
|
49
|
+
static Version: number;
|
|
50
|
+
constructor();
|
|
51
|
+
version: number;
|
|
52
|
+
elements: (AlphaNumeric | AccountGroup | Numeric | InternationalAccountGroup)[];
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=HKEKA.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HKEKA.d.ts","sourceRoot":"","sources":["../../../src/segments/HKEKA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,KAAK,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EACN,KAAK,oBAAoB,EACzB,yBAAyB,EACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;GAGG;AACH,oBAAY,eAAe;IAC1B,KAAK,MAAM;IACX,OAAO,MAAM;IACb,GAAG,MAAM;CACT;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG;IACpC,mFAAmF;IACnF,OAAO,EAAE,OAAO,GAAG,oBAAoB,CAAC;IACxC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,sGAAsG;IACtG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,qBAAa,KAAM,SAAQ,iBAAiB;IAC3C,MAAM,CAAC,EAAE,SAAW;IACpB,MAAM,CAAC,OAAO,SAAK;;IAInB,OAAO,SAAiB;IACxB,QAAQ,wEAQN;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/segments/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/segments/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AA+CjE,wBAAgB,gBAAgB,SA+C/B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE9E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HKEKA.test.d.ts","sourceRoot":"","sources":["../../../src/tests/HKEKA.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partedResponse.test.d.ts","sourceRoot":"","sources":["../../../src/tests/partedResponse.test.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lib-fints",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Typescript/Javascript client library for Online-Banking via the FinTS 3.0 protocol with PIN/TAN",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=18.0.0"
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@biomejs/biome": "2.3.10",
|
|
43
43
|
"@types/node": "^20.19.41",
|
|
44
44
|
"typescript": "^5.9.3",
|
|
45
|
-
"vitest": "^4.
|
|
45
|
+
"vitest": "^4.1.10"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"fast-xml-parser": "^5.8.0"
|