lib-fints 1.4.3 → 1.4.5
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 +41 -0
- package/dist/camtParser.js +23 -4
- package/dist/config.js +9 -0
- package/dist/dataGroups/CamtAccount.js +7 -0
- package/dist/interactions/initDialogInteraction.js +7 -1
- package/dist/interactions/sepaAccountInteraction.js +1 -1
- package/dist/interactions/statementInteractionCAMT.js +18 -3
- package/dist/segments/HISPAS.js +11 -2
- package/dist/segments/HKCAZ.js +2 -2
- package/dist/tests/HKCAZ.test.js +3 -7
- package/dist/tests/camtParser.test.js +131 -1
- package/dist/tests/dialog.test.js +11 -3
- package/dist/types/bankTransaction.d.ts +16 -0
- package/dist/types/bankTransaction.d.ts.map +1 -1
- package/dist/types/camtParser.d.ts.map +1 -1
- package/dist/types/config.d.ts +6 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/dataElements/AlphaNumeric.d.ts.map +1 -1
- package/dist/types/dataElements/Binary.d.ts.map +1 -1
- package/dist/types/dataElements/DataElement.d.ts.map +1 -1
- package/dist/types/dataElements/Float.d.ts.map +1 -1
- package/dist/types/dataElements/Numeric.d.ts.map +1 -1
- package/dist/types/dataElements/Text.d.ts.map +1 -1
- package/dist/types/dataElements/YesNo.d.ts +1 -1
- package/dist/types/dataGroups/CamtAccount.d.ts +9 -0
- package/dist/types/dataGroups/CamtAccount.d.ts.map +1 -0
- package/dist/types/interactions/creditcardStatementInteraction.d.ts.map +1 -1
- package/dist/types/interactions/initDialogInteraction.d.ts.map +1 -1
- 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 +0 -1
- package/dist/types/interactions/statementInteractionCAMT.d.ts.map +1 -1
- package/dist/types/interactions/statementInteractionMT940.d.ts.map +1 -1
- package/dist/types/segments/HISPAS.d.ts +9 -3
- package/dist/types/segments/HISPAS.d.ts.map +1 -1
- package/dist/types/segments/HKCAZ.d.ts +2 -2
- package/dist/types/segments/HKCAZ.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/dataGroups/SepaAccountParameters.js +0 -16
- package/dist/types/dataGroups/SepaAccountParameters.d.ts +0 -13
- package/dist/types/dataGroups/SepaAccountParameters.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -215,6 +215,47 @@ For each account-specific transaction, the client provides corresponding `can*`
|
|
|
215
215
|
| `canGetPortfolio(accountNumber?)` | Checks if portfolio information fetching is supported |
|
|
216
216
|
| `canGetCreditCardStatements(accountNumber?)` | Checks if credit card statements fetching is supported |
|
|
217
217
|
|
|
218
|
+
### Transaction Parameters
|
|
219
|
+
|
|
220
|
+
The configuration object provides methods to access transaction-specific parameters and capabilities provided by the bank:
|
|
221
|
+
|
|
222
|
+
#### `config.getTransactionParameters<T>(transId: string): T | undefined`
|
|
223
|
+
|
|
224
|
+
Returns the bank-specific parameters for a transaction type, if available. These parameters contain transaction limits, supported formats, and other bank-specific constraints.
|
|
225
|
+
|
|
226
|
+
```typescript
|
|
227
|
+
// Get parameters for account statements (MT940)
|
|
228
|
+
const mt940Params = config.getTransactionParameters<HIKAZSParameter>('HKKAZ');
|
|
229
|
+
|
|
230
|
+
// Get parameters for account statements (CAMT)
|
|
231
|
+
const camtParams = config.getTransactionParameters<HICAZSParameter>('HKCAZ');
|
|
232
|
+
|
|
233
|
+
// Get parameters for SEPA transactions
|
|
234
|
+
const sepaParams = config.getTransactionParameters<HISPASParameter>('HKSPA');
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
#### `config.isTransactionSupported(transId: string): boolean`
|
|
238
|
+
|
|
239
|
+
Checks whether a specific transaction type is supported by the bank.
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
if (config.isTransactionSupported('HKWPD')) {
|
|
243
|
+
console.log('Bank supports portfolio requests');
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
#### `config.isAccountTransactionSupported(accountNumber: string, transId: string): boolean`
|
|
248
|
+
|
|
249
|
+
Checks whether a specific transaction type is supported for a particular account.
|
|
250
|
+
|
|
251
|
+
```typescript
|
|
252
|
+
if (config.isAccountTransactionSupported('1234567890', 'HKWPD')) {
|
|
253
|
+
console.log('Account supports portfolio requests');
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**Note**: Transaction IDs correspond to the FinTS segment names (e.g., 'HKKAZ' for account statements, 'HKWPD' for portfolio, 'HKSAL' for balance).
|
|
258
|
+
|
|
218
259
|
### TAN Continuation Methods
|
|
219
260
|
|
|
220
261
|
Every transaction that supports TAN authentication has a corresponding `*WithTan` method for continuing the transaction after TAN entry:
|
package/dist/camtParser.js
CHANGED
|
@@ -168,7 +168,7 @@ export class CamtParser {
|
|
|
168
168
|
return String(current);
|
|
169
169
|
}
|
|
170
170
|
if (Array.isArray(current)) {
|
|
171
|
-
return String(current.join(''));
|
|
171
|
+
return String(current.join('\n'));
|
|
172
172
|
}
|
|
173
173
|
if (current && typeof current === 'object' && current !== null && '#text' in current) {
|
|
174
174
|
return String(current['#text']);
|
|
@@ -268,8 +268,12 @@ export class CamtParser {
|
|
|
268
268
|
const isDebit = creditDebitInd === 'DBIT';
|
|
269
269
|
const amount = isDebit ? -amountValue : amountValue;
|
|
270
270
|
// Extract dates
|
|
271
|
-
const bookingDate = this.getValueFromPath(entry, 'BookgDt.
|
|
272
|
-
|
|
271
|
+
const bookingDate = this.getValueFromPath(entry, 'BookgDt.DtTm') ||
|
|
272
|
+
this.getValueFromPath(entry, 'BookgDt.Dt') ||
|
|
273
|
+
this.getValueFromPath(entry, 'BookgDt');
|
|
274
|
+
const valueDate = this.getValueFromPath(entry, 'ValDt.DtTm') ||
|
|
275
|
+
this.getValueFromPath(entry, 'ValDt.Dt') ||
|
|
276
|
+
this.getValueFromPath(entry, 'ValDt');
|
|
273
277
|
const entryDate = bookingDate ? this.parseDate(bookingDate) : new Date();
|
|
274
278
|
const parsedValueDate = valueDate ? this.parseDate(valueDate) : entryDate;
|
|
275
279
|
// Extract references
|
|
@@ -391,7 +395,22 @@ export class CamtParser {
|
|
|
391
395
|
return '';
|
|
392
396
|
}
|
|
393
397
|
parseDate(dateStr) {
|
|
394
|
-
|
|
398
|
+
let processedDateStr = dateStr;
|
|
399
|
+
// Handle date-only with timezone, e.g., "2026-01-22+01:00"
|
|
400
|
+
// The Date constructor may not parse this correctly, so we add a time part.
|
|
401
|
+
if (/^\d{4}-\d{2}-\d{2}[+-]\d{2}:\d{2}$/.test(dateStr)) {
|
|
402
|
+
processedDateStr = `${dateStr.substring(0, 10)}T00:00:00${dateStr.substring(10)}`;
|
|
403
|
+
}
|
|
404
|
+
// Attempt to parse as a full ISO 8601 string first, which `new Date()` handles well.
|
|
405
|
+
// This will correctly handle formats like "2023-10-26T10:00:00+02:00".
|
|
406
|
+
const isoDate = new Date(processedDateStr);
|
|
407
|
+
if (!Number.isNaN(isoDate.getTime())) {
|
|
408
|
+
// Check if the date string contains time or timezone information to avoid misinterpreting YYYY-MM-DD
|
|
409
|
+
if (processedDateStr.includes('T') || /[-+]\d{2}:\d{2}$/.test(processedDateStr)) {
|
|
410
|
+
return isoDate;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
// Fallback for date-only ISO format (YYYY-MM-DD)
|
|
395
414
|
if (dateStr.length === 10 && dateStr.includes('-')) {
|
|
396
415
|
return new Date(`${dateStr}T12:00:00`); // Set time to noon to avoid timezone issues
|
|
397
416
|
}
|
package/dist/config.js
CHANGED
|
@@ -140,6 +140,15 @@ export class FinTSConfig {
|
|
|
140
140
|
get selectedTanMethod() {
|
|
141
141
|
return this.availableTanMethods.find((t) => t.id === this.tanMethodId);
|
|
142
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Gets the transaction parameters for a specific transaction ID
|
|
145
|
+
* @param transId The transaction ID
|
|
146
|
+
* @returns The transaction parameters or undefined if not available
|
|
147
|
+
*/
|
|
148
|
+
getTransactionParameters(transId) {
|
|
149
|
+
const transaction = this.bankingInformation.bpd?.allowedTransactions.find((t) => t.transId === transId);
|
|
150
|
+
return transaction?.params;
|
|
151
|
+
}
|
|
143
152
|
/**
|
|
144
153
|
* Checks if a transaction is supported by the bank
|
|
145
154
|
* @param transId The transaction ID
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AlphaNumeric } from '../dataElements/AlphaNumeric.js';
|
|
2
|
+
import { DataGroup } from './DataGroup.js';
|
|
3
|
+
export class CamtAccountGroup extends DataGroup {
|
|
4
|
+
constructor(name, minCount = 0, maxCount = 1, minVersion, maxVersion) {
|
|
5
|
+
super(name, [new AlphaNumeric('iban', 0, 1, 34), new AlphaNumeric('bic', 0, 1, 11)], minCount, maxCount, minVersion, maxVersion);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -105,9 +105,15 @@ export class InitDialogInteraction extends CustomerInteraction {
|
|
|
105
105
|
const paramSegId = `HI${transaction.transId.slice(2)}S`;
|
|
106
106
|
const paramSegments = [
|
|
107
107
|
...response.findAllSegments(paramSegId),
|
|
108
|
-
...response.findAllUnknownSegments(paramSegId),
|
|
109
108
|
];
|
|
109
|
+
const unknownParamSegments = [...response.findAllUnknownSegments(paramSegId)];
|
|
110
110
|
paramSegments.forEach((paramSegment) => {
|
|
111
|
+
if (paramSegment) {
|
|
112
|
+
transaction.versions.push(paramSegment.header.version);
|
|
113
|
+
transaction.params = paramSegment.params;
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
unknownParamSegments.forEach((paramSegment) => {
|
|
111
117
|
if (paramSegment) {
|
|
112
118
|
transaction.versions.push(paramSegment.header.version);
|
|
113
119
|
}
|
|
@@ -37,7 +37,7 @@ export class SepaAccountInteraction extends CustomerOrderInteraction {
|
|
|
37
37
|
});
|
|
38
38
|
clientResponse.sepaAccounts.forEach((sepaAccount) => {
|
|
39
39
|
const bankAccount = this.dialog?.config.getBankAccount(sepaAccount.accountNumber);
|
|
40
|
-
if (bankAccount) {
|
|
40
|
+
if (bankAccount && !bankAccount.isSepaAccount) {
|
|
41
41
|
bankAccount.isSepaAccount = sepaAccount.isSepaAccount;
|
|
42
42
|
bankAccount.iban = sepaAccount.iban;
|
|
43
43
|
bankAccount.bic = sepaAccount.bic;
|
|
@@ -6,7 +6,6 @@ export class StatementInteractionCAMT extends CustomerOrderInteraction {
|
|
|
6
6
|
accountNumber;
|
|
7
7
|
from;
|
|
8
8
|
to;
|
|
9
|
-
acceptedCamtFormats = ['urn:iso:std:iso:20022:tech:xsd:camt.052.001.08'];
|
|
10
9
|
constructor(accountNumber, from, to) {
|
|
11
10
|
super(HKCAZ.Id, HICAZ.Id);
|
|
12
11
|
this.accountNumber = accountNumber;
|
|
@@ -19,10 +18,15 @@ export class StatementInteractionCAMT extends CustomerOrderInteraction {
|
|
|
19
18
|
if (!version) {
|
|
20
19
|
throw Error(`There is no supported version for business transaction '${HKCAZ.Id}'`);
|
|
21
20
|
}
|
|
21
|
+
let acceptedCamtFormats = ['urn:iso:std:iso:20022:tech:xsd:camt.052.001.08'];
|
|
22
|
+
const params = init.getTransactionParameters(HKCAZ.Id);
|
|
23
|
+
if (params && params.supportedCamtFormats.length > 0) {
|
|
24
|
+
acceptedCamtFormats = params.supportedCamtFormats.filter((format) => format.startsWith('urn:iso:std:iso:20022:tech:xsd:camt.052.001.'));
|
|
25
|
+
}
|
|
22
26
|
const hkcaz = {
|
|
23
27
|
header: { segId: HKCAZ.Id, segNr: 0, version: version },
|
|
24
28
|
account: bankAccount,
|
|
25
|
-
acceptedCamtFormats:
|
|
29
|
+
acceptedCamtFormats: acceptedCamtFormats,
|
|
26
30
|
allAccounts: false,
|
|
27
31
|
from: this.from,
|
|
28
32
|
to: this.to,
|
|
@@ -36,7 +40,18 @@ export class StatementInteractionCAMT extends CustomerOrderInteraction {
|
|
|
36
40
|
// Parse all CAMT messages (one per booking day) and combine statements
|
|
37
41
|
const allStatements = [];
|
|
38
42
|
for (const camtMessage of hicaz.bookedTransactions) {
|
|
39
|
-
|
|
43
|
+
// The regex looks for the XML declaration `<?xml ... ?>`
|
|
44
|
+
// and checks if it contains the attribute encoding="UTF-8".
|
|
45
|
+
// The 'i' flag makes the match case-insensitive (e.g., for "utf-8").
|
|
46
|
+
const isUtf8Encoded = /<\?xml[^>]*encoding="UTF-8"[^>]*\?>/i.test(camtMessage);
|
|
47
|
+
let xmlString = camtMessage;
|
|
48
|
+
if (isUtf8Encoded) {
|
|
49
|
+
// camtMessage is initially encoded as 'latin1' (ISO-8859-1), but actually contains UTF-8 data.
|
|
50
|
+
// Therefore, we need to first convert it back to a buffer using 'latin1', and then decode it as 'utf8'.
|
|
51
|
+
const intermediateBuffer = Buffer.from(camtMessage, 'latin1');
|
|
52
|
+
xmlString = intermediateBuffer.toString('utf8');
|
|
53
|
+
}
|
|
54
|
+
const parser = new CamtParser(xmlString);
|
|
40
55
|
const statements = parser.parse();
|
|
41
56
|
allStatements.push(...statements);
|
|
42
57
|
}
|
package/dist/segments/HISPAS.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AlphaNumeric } from '../dataElements/AlphaNumeric.js';
|
|
2
|
+
import { Numeric } from '../dataElements/Numeric.js';
|
|
3
|
+
import { YesNo } from '../dataElements/YesNo.js';
|
|
2
4
|
import { BusinessTransactionParameter, } from './businessTransactionParameter.js';
|
|
3
5
|
/**
|
|
4
6
|
* Parameters for HKSPA business transaction - SEPA account connection request
|
|
@@ -8,6 +10,13 @@ export class HISPAS extends BusinessTransactionParameter {
|
|
|
8
10
|
static Id = 'HISPAS';
|
|
9
11
|
version = 3;
|
|
10
12
|
constructor() {
|
|
11
|
-
super(HISPAS.Id, [
|
|
13
|
+
super(HISPAS.Id, [
|
|
14
|
+
new YesNo('individualAccountRetrievalAllowed', 1, 1),
|
|
15
|
+
new YesNo('nationalAccountAllowed', 1, 1),
|
|
16
|
+
new YesNo('structuredPurposeAllowed', 1, 1),
|
|
17
|
+
new YesNo('maxEntriesAllowed', 1, 1, 2), // version 2+
|
|
18
|
+
new Numeric('reservedPurposePositions', 1, 1, 2, 3), // version 3+
|
|
19
|
+
new AlphaNumeric('supportedSepaFormats', 0, 99, 256), // optional, up to 99 entries
|
|
20
|
+
], 1);
|
|
12
21
|
}
|
|
13
22
|
}
|
package/dist/segments/HKCAZ.js
CHANGED
|
@@ -3,8 +3,8 @@ import { Dat } from '../dataElements/Dat.js';
|
|
|
3
3
|
import { Numeric } from '../dataElements/Numeric.js';
|
|
4
4
|
import { Text } from '../dataElements/Text.js';
|
|
5
5
|
import { YesNo } from '../dataElements/YesNo.js';
|
|
6
|
+
import { CamtAccountGroup } from '../dataGroups/CamtAccount.js';
|
|
6
7
|
import { DataGroup } from '../dataGroups/DataGroup.js';
|
|
7
|
-
import { InternationalAccountGroup, } from '../dataGroups/InternationalAccount.js';
|
|
8
8
|
import { SegmentDefinition } from '../segmentDefinition.js';
|
|
9
9
|
/**
|
|
10
10
|
* Request account transactions in a given period (CAMT format)
|
|
@@ -17,7 +17,7 @@ export class HKCAZ extends SegmentDefinition {
|
|
|
17
17
|
}
|
|
18
18
|
version = HKCAZ.Version;
|
|
19
19
|
elements = [
|
|
20
|
-
new
|
|
20
|
+
new CamtAccountGroup('account', 1, 1),
|
|
21
21
|
new DataGroup('acceptedCamtFormats', [new Text('camtFormat', 1, 99)], 1, 1), // Support multiple camt-formats
|
|
22
22
|
new YesNo('allAccounts', 1, 1),
|
|
23
23
|
new Dat('from', 0, 1),
|
package/dist/tests/HKCAZ.test.js
CHANGED
|
@@ -10,15 +10,13 @@ describe('HKCAZ v1', () => {
|
|
|
10
10
|
account: {
|
|
11
11
|
iban: 'DE991234567123456',
|
|
12
12
|
bic: 'BANK12',
|
|
13
|
-
accountNumber: '123456',
|
|
14
|
-
bank: { country: 280, bankId: '12030000' },
|
|
15
13
|
},
|
|
16
14
|
acceptedCamtFormats: ['urn:iso:std:iso:20022:tech:xsd:camt.052.001.08'],
|
|
17
15
|
allAccounts: false,
|
|
18
16
|
from: new Date('2023-01-01'),
|
|
19
17
|
to: new Date('2023-12-31'),
|
|
20
18
|
};
|
|
21
|
-
expect(encode(segment)).toBe("HKCAZ:1:1+DE991234567123456:BANK12
|
|
19
|
+
expect(encode(segment)).toBe("HKCAZ:1:1+DE991234567123456:BANK12+urn?:iso?:std?:iso?:20022?:tech?:xsd?:camt.052.001.08+N+20230101+20231231'");
|
|
22
20
|
});
|
|
23
21
|
it('encode without optional dates', () => {
|
|
24
22
|
const segment = {
|
|
@@ -26,16 +24,14 @@ describe('HKCAZ v1', () => {
|
|
|
26
24
|
account: {
|
|
27
25
|
iban: 'DE991234567123456',
|
|
28
26
|
bic: 'BANK12',
|
|
29
|
-
accountNumber: '123456',
|
|
30
|
-
bank: { country: 280, bankId: '12030000' },
|
|
31
27
|
},
|
|
32
28
|
acceptedCamtFormats: ['urn:iso:std:iso:20022:tech:xsd:camt.052.001.08'],
|
|
33
29
|
allAccounts: true,
|
|
34
30
|
};
|
|
35
|
-
expect(encode(segment)).toBe("HKCAZ:2:1+DE991234567123456:BANK12
|
|
31
|
+
expect(encode(segment)).toBe("HKCAZ:2:1+DE991234567123456:BANK12+urn?:iso?:std?:iso?:20022?:tech?:xsd?:camt.052.001.08+J'");
|
|
36
32
|
});
|
|
37
33
|
it('decode and encode roundtrip matches', () => {
|
|
38
|
-
const text = "HKCAZ:0:1+DE991234567123456:BANK12
|
|
34
|
+
const text = "HKCAZ:0:1+DE991234567123456:BANK12+urn?:iso?:std?:iso?:20022?:tech?:xsd?:camt.052.001.08+N+20230101+20231231'";
|
|
39
35
|
const segment = decode(text);
|
|
40
36
|
expect(encode(segment)).toBe(text);
|
|
41
37
|
});
|
|
@@ -828,7 +828,7 @@ describe('CamtParser', () => {
|
|
|
828
828
|
expect(transaction.amount).toBe(-179.46);
|
|
829
829
|
expect(transaction.customerReference).toBe('VG 2025 QUARTAL IV');
|
|
830
830
|
expect(transaction.bankReference).toBe('TXN003');
|
|
831
|
-
expect(transaction.purpose).toBe('28,65EUR EREF: VG 2025 QUARTAL IV IBAN: DE12345678901234567891 BIC: BANKABC1XXX');
|
|
831
|
+
expect(transaction.purpose).toBe('28,65EUR EREF: VG 2025 QUARTAL IV IBAN\n: DE12345678901234567891 BIC: BANKABC1XXX');
|
|
832
832
|
expect(transaction.remoteName).toBe('ABC Bank');
|
|
833
833
|
expect(transaction.remoteAccountNumber).toBe('DE12345678901234567891');
|
|
834
834
|
expect(transaction.remoteBankId).toBe('BANKABC1XXX');
|
|
@@ -855,4 +855,134 @@ describe('CamtParser', () => {
|
|
|
855
855
|
expect(transaction.client).toBeUndefined();
|
|
856
856
|
expect(transaction.textKeyExtension).toBeUndefined();
|
|
857
857
|
});
|
|
858
|
+
it('should handle full iso date time in value date', () => {
|
|
859
|
+
// this is an example from comdirect bank in 2026-01
|
|
860
|
+
const camtXml = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
861
|
+
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02">
|
|
862
|
+
<BkToCstmrAcctRpt>
|
|
863
|
+
<GrpHdr>
|
|
864
|
+
<MsgId>BD5F4D36X95740C4B89D967367217C16</MsgId>
|
|
865
|
+
<CreDtTm>2026-01-22T10:35:25.369+01:00</CreDtTm>
|
|
866
|
+
<MsgPgntn>
|
|
867
|
+
<PgNb>0</PgNb>
|
|
868
|
+
<LastPgInd>true</LastPgInd>
|
|
869
|
+
</MsgPgntn>
|
|
870
|
+
</GrpHdr>
|
|
871
|
+
<Rpt>
|
|
872
|
+
<Id>563916B991DD4EB18894EF4ABB730A5C</Id>
|
|
873
|
+
<FrToDt>
|
|
874
|
+
<FrDtTm>2025-12-10T00:00:00.000+01:00</FrDtTm>
|
|
875
|
+
<ToDtTm>2026-01-22T00:00:00.000+01:00</ToDtTm>
|
|
876
|
+
</FrToDt>
|
|
877
|
+
<Acct>
|
|
878
|
+
<Id>
|
|
879
|
+
<IBAN>DE06940594210000027227</IBAN>
|
|
880
|
+
</Id>
|
|
881
|
+
</Acct>
|
|
882
|
+
<Bal>
|
|
883
|
+
<Tp>
|
|
884
|
+
<CdOrPrtry>
|
|
885
|
+
<Cd>OPBD</Cd>
|
|
886
|
+
</CdOrPrtry>
|
|
887
|
+
</Tp>
|
|
888
|
+
<Amt Ccy="EUR">94.010000000021</Amt>
|
|
889
|
+
<CdtDbtInd>CRDT</CdtDbtInd>
|
|
890
|
+
<Dt>
|
|
891
|
+
<DtTm>2025-12-10T00:00:00.000+01:00</DtTm>
|
|
892
|
+
</Dt>
|
|
893
|
+
</Bal>
|
|
894
|
+
<Bal>
|
|
895
|
+
<Tp>
|
|
896
|
+
<CdOrPrtry>
|
|
897
|
+
<Cd>CLBD</Cd>
|
|
898
|
+
</CdOrPrtry>
|
|
899
|
+
</Tp>
|
|
900
|
+
<Amt Ccy="EUR">101.960000000017</Amt>
|
|
901
|
+
<CdtDbtInd>CRDT</CdtDbtInd>
|
|
902
|
+
<Dt>
|
|
903
|
+
<DtTm>2026-01-22T00:00:00.000+01:00</DtTm>
|
|
904
|
+
</Dt>
|
|
905
|
+
</Bal>
|
|
906
|
+
<Ntry>
|
|
907
|
+
<NtryRef>5J3C21XL0470L56V/39761</NtryRef>
|
|
908
|
+
<Amt Ccy="EUR">101.5</Amt>
|
|
909
|
+
<CdtDbtInd>DBIT</CdtDbtInd>
|
|
910
|
+
<Sts>BOOK</Sts>
|
|
911
|
+
<BookgDt>
|
|
912
|
+
<Dt>2025-12-08-01:00</Dt>
|
|
913
|
+
</BookgDt>
|
|
914
|
+
<ValDt>
|
|
915
|
+
<DtTm>2025-12-10T00:00:00.000-01:00</DtTm>
|
|
916
|
+
</ValDt>
|
|
917
|
+
<AcctSvcrRef>5J2C21XL0470L56V/39761</AcctSvcrRef>
|
|
918
|
+
<BkTxCd>
|
|
919
|
+
<Prtry>
|
|
920
|
+
<Cd>005</Cd>
|
|
921
|
+
<Issr></Issr>
|
|
922
|
+
</Prtry>
|
|
923
|
+
</BkTxCd>
|
|
924
|
+
<NtryDtls>
|
|
925
|
+
<TxDtls>
|
|
926
|
+
<RltdPties>
|
|
927
|
+
<Cdtr>
|
|
928
|
+
<Nm>AMAZON EU S.A R.L., NIEDERL ASSUNG DEUTSCHLAND</Nm>
|
|
929
|
+
</Cdtr>
|
|
930
|
+
<CdtrAcct>
|
|
931
|
+
<Id/>
|
|
932
|
+
</CdtrAcct>
|
|
933
|
+
</RltdPties>
|
|
934
|
+
<RmtInf>
|
|
935
|
+
<Ustrd>028-1234567-XXXXXXX Amazon.de 2ABCD</Ustrd>
|
|
936
|
+
<Ustrd>EF9GFP28</Ustrd>
|
|
937
|
+
<Ustrd>End-to-End-Ref.:</Ustrd>
|
|
938
|
+
<Ustrd>2ABCDEF9GHIJKL28</Ustrd>
|
|
939
|
+
<Ustrd>CORE / Mandatsref.:</Ustrd>
|
|
940
|
+
<Ustrd>7829857lkklag</Ustrd>
|
|
941
|
+
<Ustrd>Gläubiger-ID:</Ustrd>
|
|
942
|
+
<Ustrd>DE24ABC00000123456</Ustrd>
|
|
943
|
+
</RmtInf>
|
|
944
|
+
</TxDtls>
|
|
945
|
+
</NtryDtls>
|
|
946
|
+
</Ntry>
|
|
947
|
+
</Rpt>
|
|
948
|
+
</BkToCstmrAcctRpt>
|
|
949
|
+
</Document>
|
|
950
|
+
`;
|
|
951
|
+
const parser = new CamtParser(camtXml);
|
|
952
|
+
const statements = parser.parse();
|
|
953
|
+
expect(statements).toHaveLength(1);
|
|
954
|
+
const statement = statements[0];
|
|
955
|
+
expect(statement.transactions).toHaveLength(1);
|
|
956
|
+
const transaction = statement.transactions[0];
|
|
957
|
+
// Check all Transaction fields filled by the parser
|
|
958
|
+
expect(transaction.amount).toBe(-101.5);
|
|
959
|
+
expect(transaction.customerReference).toBe('');
|
|
960
|
+
expect(transaction.bankReference).toBe('5J2C21XL0470L56V/39761');
|
|
961
|
+
expect(transaction.purpose).toBe('028-1234567-XXXXXXX Amazon.de 2ABCD\nEF9GFP28\nEnd-to-End-Ref.:\n2ABCDEF9GHIJKL28\nCORE / Mandatsref.:\n7829857lkklag\nGläubiger-ID:\nDE24ABC00000123456');
|
|
962
|
+
expect(transaction.remoteName).toBe('AMAZON EU S.A R.L., NIEDERL ASSUNG DEUTSCHLAND');
|
|
963
|
+
expect(transaction.remoteAccountNumber).toBe('');
|
|
964
|
+
expect(transaction.remoteBankId).toBe('');
|
|
965
|
+
expect(transaction.e2eReference).toBe('');
|
|
966
|
+
// Check date fields
|
|
967
|
+
expect(transaction.valueDate).toBeInstanceOf(Date);
|
|
968
|
+
expect(transaction.valueDate.getFullYear()).toBe(2025);
|
|
969
|
+
expect(transaction.valueDate.getMonth()).toBe(11); // November (0-based)
|
|
970
|
+
expect(transaction.valueDate.getUTCDate()).toBe(10);
|
|
971
|
+
expect(transaction.entryDate).toBeInstanceOf(Date);
|
|
972
|
+
expect(transaction.entryDate.getFullYear()).toBe(2025);
|
|
973
|
+
expect(transaction.entryDate.getMonth()).toBe(11); // November (0-based)
|
|
974
|
+
expect(transaction.entryDate.getUTCDate()).toBe(8);
|
|
975
|
+
// Check transaction type and code fields
|
|
976
|
+
expect(transaction.fundsCode).toBe('DBIT');
|
|
977
|
+
expect(transaction.transactionType).toBe('');
|
|
978
|
+
expect(transaction.transactionCode).toBe('');
|
|
979
|
+
// Check additional information fields
|
|
980
|
+
expect(transaction.additionalInformation).toBe('');
|
|
981
|
+
expect(transaction.bookingText).toBe(''); // Should match additionalInformation
|
|
982
|
+
// Verify optional fields not set in this test
|
|
983
|
+
expect(transaction.primeNotesNr).toBeUndefined();
|
|
984
|
+
expect(transaction.remoteIdentifier).toBeUndefined();
|
|
985
|
+
expect(transaction.client).toBeUndefined();
|
|
986
|
+
expect(transaction.textKeyExtension).toBeUndefined();
|
|
987
|
+
});
|
|
858
988
|
});
|
|
@@ -8,9 +8,17 @@ import { Message } from '../message.js';
|
|
|
8
8
|
import { registerSegments } from '../segments/registry.js';
|
|
9
9
|
// Mock HttpClient to prevent real HTTP calls
|
|
10
10
|
vi.mock('../httpClient.js', () => ({
|
|
11
|
-
HttpClient:
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
HttpClient: class MockHttpClient {
|
|
12
|
+
url;
|
|
13
|
+
debug;
|
|
14
|
+
debugRaw;
|
|
15
|
+
constructor(url, debug = false, debugRaw = false) {
|
|
16
|
+
this.url = url;
|
|
17
|
+
this.debug = debug;
|
|
18
|
+
this.debugRaw = debugRaw;
|
|
19
|
+
}
|
|
20
|
+
sendMessage = vi.fn();
|
|
21
|
+
},
|
|
14
22
|
}));
|
|
15
23
|
describe('Dialog', () => {
|
|
16
24
|
let config;
|
|
@@ -1,6 +1,22 @@
|
|
|
1
|
+
import type { HICAZSParameter } from './segments/HICAZS.js';
|
|
2
|
+
import type { HIKAZSParameter } from './segments/HIKAZS.js';
|
|
3
|
+
import type { HISPASParameter } from './segments/HISPAS.js';
|
|
1
4
|
export type BankTransaction = {
|
|
2
5
|
transId: string;
|
|
3
6
|
tanRequired: boolean;
|
|
4
7
|
versions: number[];
|
|
8
|
+
params?: unknown;
|
|
9
|
+
};
|
|
10
|
+
export type SepaBankTransaction = BankTransaction & {
|
|
11
|
+
transId: 'HKSPA';
|
|
12
|
+
params: HISPASParameter;
|
|
13
|
+
};
|
|
14
|
+
export type StatementTransactionMT940 = BankTransaction & {
|
|
15
|
+
transId: 'HKKAZ';
|
|
16
|
+
params: HIKAZSParameter;
|
|
17
|
+
};
|
|
18
|
+
export type StatementTransactionCAMT = BankTransaction & {
|
|
19
|
+
transId: 'HKCAZ';
|
|
20
|
+
params: HICAZSParameter;
|
|
5
21
|
};
|
|
6
22
|
//# sourceMappingURL=bankTransaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bankTransaction.d.ts","sourceRoot":"","sources":["../../src/bankTransaction.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"bankTransaction.d.ts","sourceRoot":"","sources":["../../src/bankTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,eAAe,GAAG;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,eAAe,GAAG;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;CACxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camtParser.d.ts","sourceRoot":"","sources":["../../src/camtParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,SAAS,EAAe,MAAM,gBAAgB,CAAC;AAsJtE,qBAAa,gBAAiB,SAAQ,KAAK;IAGlC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"camtParser.d.ts","sourceRoot":"","sources":["../../src/camtParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,SAAS,EAAe,MAAM,gBAAgB,CAAC;AAsJtE,qBAAa,gBAAiB,SAAQ,KAAK;IAGlC,KAAK,CAAC,EAAE,KAAK;gBADpB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,KAAK,YAAA;CAKrB;AAED,qBAAa,UAAU;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAY;gBAEd,OAAO,EAAE,MAAM;IAoB3B,KAAK,IAAI,SAAS,EAAE;IA8CpB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,WAAW;IAwEnB,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,aAAa;IAuFrB,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,gBAAgB;IAkFxB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAwCxB;;;OAGG;IACH,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,wBAAwB;CAyBhC"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -75,6 +75,12 @@ export declare class FinTSConfig {
|
|
|
75
75
|
* The currently selected TAN method for the user
|
|
76
76
|
*/
|
|
77
77
|
get selectedTanMethod(): TanMethod | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Gets the transaction parameters for a specific transaction ID
|
|
80
|
+
* @param transId The transaction ID
|
|
81
|
+
* @returns The transaction parameters or undefined if not available
|
|
82
|
+
*/
|
|
83
|
+
getTransactionParameters<T>(transId: string): T | undefined;
|
|
78
84
|
/**
|
|
79
85
|
* Checks if a transaction is supported by the bank
|
|
80
86
|
* @param transId The transaction ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AACH,qBAAa,WAAW;IAKf,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,MAAM;IAC7B,OAAO,CAAC,GAAG,CAAC;IACZ,OAAO,CAAC,kBAAkB,CAAC;IACpB,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AACH,qBAAa,WAAW;IAKf,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,MAAM;IAC7B,OAAO,CAAC,GAAG,CAAC;IACZ,OAAO,CAAC,kBAAkB,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM;IACf,GAAG,CAAC,EAAE,MAAM;IAEZ,WAAW,CAAC,EAAE,MAAM;IACpB,YAAY,CAAC,EAAE,MAAM;IACrB,UAAU,CAAC,EAAE,MAAM;IAC1B,OAAO,CAAC,OAAO;IAdhB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,YAAY,UAAS;IAErB,OAAO;IA+CP;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,eAAe,CACrB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,GAAE,MAAY,GACvB,WAAW;IAgBd;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,sBAAsB,CAC5B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,kBAAkB,EACtC,MAAM,CAAC,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,GAAE,MAAY,GACvB,WAAW;IAgBd;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,mBAAmB,IAAI,SAAS,EAAE,CAMrC;IAED;;;OAGG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS;IAU/C;;;OAGG;IACH,cAAc,CAAC,YAAY,EAAE,MAAM;IAcnC;;OAEG;IACH,IAAI,iBAAiB,IAAI,SAAS,GAAG,SAAS,CAE7C;IAED;;;;OAIG;IACH,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAO3D;;;OAGG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOhD;;;;OAIG;IACH,6BAA6B,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAK9E;;;OAGG;IACH,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAgBtE;;;OAGG;IACH,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW;CAWlD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlphaNumeric.d.ts","sourceRoot":"","sources":["../../../src/dataElements/AlphaNumeric.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,YAAa,SAAQ,WAAW;IAKpC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"AlphaNumeric.d.ts","sourceRoot":"","sources":["../../../src/dataElements/AlphaNumeric.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,YAAa,SAAQ,WAAW;IAKpC,SAAS,CAAC,EAAE,MAAM;gBAHzB,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAI,EACZ,QAAQ,SAAI,EACL,SAAS,CAAC,EAAE,MAAM,YAAA,EACzB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM;IAKpB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAgB7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAG5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Binary.d.ts","sourceRoot":"","sources":["../../../src/dataElements/Binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,MAAO,SAAQ,WAAW;IAK9B,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Binary.d.ts","sourceRoot":"","sources":["../../../src/dataElements/Binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,MAAO,SAAQ,WAAW;IAK9B,SAAS,CAAC,EAAE,MAAM;gBAHzB,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAI,EACZ,QAAQ,SAAI,EACL,SAAS,CAAC,EAAE,MAAM,YAAA,EACzB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM;IAKpB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAY7B,MAAM,CAAC,IAAI,EAAE,MAAM;CAGnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataElement.d.ts","sourceRoot":"","sources":["../../../src/dataElements/DataElement.ts"],"names":[],"mappings":"AAAA,8BAAsB,WAAW;IAExB,IAAI,EAAE,MAAM;IACZ,QAAQ;IACR,QAAQ;IACR,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"DataElement.d.ts","sourceRoot":"","sources":["../../../src/dataElements/DataElement.ts"],"names":[],"mappings":"AAAA,8BAAsB,WAAW;IAExB,IAAI,EAAE,MAAM;IACZ,QAAQ;IACR,QAAQ;IACR,UAAU,CAAC,EAAE,MAAM;IACnB,UAAU,CAAC,EAAE,MAAM;gBAJnB,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAI,EACZ,QAAQ,SAAI,EACZ,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,UAAU,CAAC,EAAE,MAAM,YAAA;IAW3B,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAC3E,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE7F,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAItC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOrC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAShC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Float.d.ts","sourceRoot":"","sources":["../../../src/dataElements/Float.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,KAAM,SAAQ,WAAW;IAK7B,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Float.d.ts","sourceRoot":"","sources":["../../../src/dataElements/Float.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,KAAM,SAAQ,WAAW;IAK7B,SAAS,CAAC,EAAE,MAAM;gBAHzB,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAI,EACZ,QAAQ,SAAI,EACL,SAAS,CAAC,EAAE,MAAM,YAAA,EACzB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM;IAKpB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAa7B,MAAM,CAAC,IAAI,EAAE,MAAM;CAGnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Numeric.d.ts","sourceRoot":"","sources":["../../../src/dataElements/Numeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,OAAQ,SAAQ,WAAW;IAK/B,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Numeric.d.ts","sourceRoot":"","sources":["../../../src/dataElements/Numeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,OAAQ,SAAQ,WAAW;IAK/B,SAAS,CAAC,EAAE,MAAM;gBAHzB,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAI,EACZ,QAAQ,SAAI,EACL,SAAS,CAAC,EAAE,MAAM,YAAA,EACzB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM;IAKpB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAgB7B,MAAM,CAAC,IAAI,EAAE,MAAM;IAInB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAGnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/dataElements/Text.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,IAAK,SAAQ,WAAW;IAK5B,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/dataElements/Text.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,IAAK,SAAQ,WAAW;IAK5B,SAAS,CAAC,EAAE,MAAM;gBAHzB,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAI,EACZ,QAAQ,SAAI,EACL,SAAS,CAAC,EAAE,MAAM,YAAA,EACzB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM;IAKpB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAY7B,MAAM,CAAC,IAAI,EAAE,MAAM;CAGnB"}
|
|
@@ -2,6 +2,6 @@ import { DataElement } from './DataElement.js';
|
|
|
2
2
|
export declare class YesNo extends DataElement {
|
|
3
3
|
constructor(name: string, minCount?: number, maxCount?: number, minVersion?: number, maxVersion?: number);
|
|
4
4
|
encode(value: boolean): string;
|
|
5
|
-
decode(text: string):
|
|
5
|
+
decode(text: string): text is "J";
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=YesNo.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DataGroup } from './DataGroup.js';
|
|
2
|
+
export type CamtAccount = {
|
|
3
|
+
iban?: string;
|
|
4
|
+
bic?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare class CamtAccountGroup extends DataGroup {
|
|
7
|
+
constructor(name: string, minCount?: number, maxCount?: number, minVersion?: number, maxVersion?: number);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=CamtAccount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CamtAccount.d.ts","sourceRoot":"","sources":["../../../src/dataGroups/CamtAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,SAAS;gBAClC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAI,EAAE,QAAQ,SAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAU9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creditcardStatementInteraction.d.ts","sourceRoot":"","sources":["../../../src/interactions/creditcardStatementInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,KAAK,cAAc,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzF,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IAClE,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,qBAAa,8BAA+B,SAAQ,wBAAwB;IAEnE,aAAa,EAAE,MAAM;IACrB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"creditcardStatementInteraction.d.ts","sourceRoot":"","sources":["../../../src/interactions/creditcardStatementInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,KAAK,cAAc,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzF,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IAClE,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,qBAAa,8BAA+B,SAAQ,wBAAwB;IAEnE,aAAa,EAAE,MAAM;IACrB,IAAI,CAAC,EAAE,IAAI;gBADX,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,IAAI,YAAA;IAKnB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,EAAE;IAuB5C,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,2BAA2B;CA8E7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initDialogInteraction.d.ts","sourceRoot":"","sources":["../../../src/interactions/initDialogInteraction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,0BAA0B,CAAC;AAGhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"initDialogInteraction.d.ts","sourceRoot":"","sources":["../../../src/interactions/initDialogInteraction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,0BAA0B,CAAC;AAGhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAgB7C,OAAO,EAAE,KAAK,cAAc,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIpF,MAAM,WAAW,YAAa,SAAQ,cAAc;IACnD,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAED,qBAAa,qBAAsB,SAAQ,mBAAmB;IAErD,MAAM,EAAE,WAAW;IACnB,YAAY;gBADZ,MAAM,EAAE,WAAW,EACnB,YAAY,UAAQ;IAK5B,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,EAAE;IAoC5C,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY;CA0K9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolioInteraction.d.ts","sourceRoot":"","sources":["../../../src/interactions/portfolioInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,KAAK,OAAO,EAAe,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,KAAK,cAAc,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAE3D,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACxD;;OAEG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,wBAAwB;IAEzD,aAAa,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC;IACjB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,gBAAgB,CAAC;gBAJlB,aAAa,EAAE,MAAM,EACpB,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"portfolioInteraction.d.ts","sourceRoot":"","sources":["../../../src/interactions/portfolioInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,KAAK,OAAO,EAAe,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,KAAK,cAAc,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAE3D,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACxD;;OAEG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,wBAAwB;IAEzD,aAAa,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC;IACjB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,gBAAgB,CAAC;gBAJlB,aAAa,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG,YAAA,EACxB,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,gBAAgB,CAAC,EAAE,MAAM,YAAA;IAKlC,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,EAAE;IA4B9C,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,iBAAiB,GAAG,IAAI;CAe1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sepaAccountInteraction.d.ts","sourceRoot":"","sources":["../../../src/interactions/sepaAccountInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,KAAK,cAAc,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzF,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IAC1D,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,qBAAa,sBAAuB,SAAQ,wBAAwB;IAE3D,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"sepaAccountInteraction.d.ts","sourceRoot":"","sources":["../../../src/interactions/sepaAccountInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,KAAK,cAAc,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzF,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IAC1D,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,qBAAa,sBAAuB,SAAQ,wBAAwB;IAE3D,QAAQ,CAAC,EAAE,MAAM,EAAE;IACnB,UAAU,CAAC,EAAE,MAAM;gBADnB,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAA,EAAE,oCAAoC;IACzD,UAAU,CAAC,EAAE,MAAM,YAAA;IAK3B,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,EAAE;IAwB5C,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,mBAAmB;CAmBrE"}
|
|
@@ -6,7 +6,6 @@ export declare class StatementInteractionCAMT extends CustomerOrderInteraction {
|
|
|
6
6
|
accountNumber: string;
|
|
7
7
|
from?: Date | undefined;
|
|
8
8
|
to?: Date | undefined;
|
|
9
|
-
private acceptedCamtFormats;
|
|
10
9
|
constructor(accountNumber: string, from?: Date | undefined, to?: Date | undefined);
|
|
11
10
|
createSegments(init: FinTSConfig): Segment[];
|
|
12
11
|
handleResponse(response: Message, clientResponse: StatementResponse): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statementInteractionCAMT.d.ts","sourceRoot":"","sources":["../../../src/interactions/statementInteractionCAMT.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"statementInteractionCAMT.d.ts","sourceRoot":"","sources":["../../../src/interactions/statementInteractionCAMT.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK7C,OAAO,EAAE,wBAAwB,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE5F,qBAAa,wBAAyB,SAAQ,wBAAwB;IAE7D,aAAa,EAAE,MAAM;IACrB,IAAI,CAAC,EAAE,IAAI;IACX,EAAE,CAAC,EAAE,IAAI;gBAFT,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,IAAI,YAAA,EACX,EAAE,CAAC,EAAE,IAAI,YAAA;IAKjB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,EAAE;IA6B5C,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,iBAAiB;CAiCnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statementInteractionMT940.d.ts","sourceRoot":"","sources":["../../../src/interactions/statementInteractionMT940.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,wBAAwB,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE5F,qBAAa,yBAA0B,SAAQ,wBAAwB;IAE9D,aAAa,EAAE,MAAM;IACrB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"statementInteractionMT940.d.ts","sourceRoot":"","sources":["../../../src/interactions/statementInteractionMT940.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,wBAAwB,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE5F,qBAAa,yBAA0B,SAAQ,wBAAwB;IAE9D,aAAa,EAAE,MAAM;IACrB,IAAI,CAAC,EAAE,IAAI;IACX,EAAE,CAAC,EAAE,IAAI;gBAFT,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,IAAI,YAAA,EACX,EAAE,CAAC,EAAE,IAAI,YAAA;IAKjB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,EAAE;IAoB5C,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,iBAAiB;CAcnE"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import { type SepaAccountParameters } from '../dataGroups/SepaAccountParameters.js';
|
|
2
1
|
import { BusinessTransactionParameter, type BusinessTransactionParameterSegment } from './businessTransactionParameter.js';
|
|
3
|
-
export type HISPASSegment = BusinessTransactionParameterSegment<
|
|
4
|
-
export type HISPASParameter =
|
|
2
|
+
export type HISPASSegment = BusinessTransactionParameterSegment<HISPASParameter>;
|
|
3
|
+
export type HISPASParameter = {
|
|
4
|
+
individualAccountRetrievalAllowed: boolean;
|
|
5
|
+
nationalAccountAllowed: boolean;
|
|
6
|
+
structuredPurposeAllowed: boolean;
|
|
7
|
+
maxEntriesAllowed?: boolean;
|
|
8
|
+
reservedPurposePositions?: number;
|
|
9
|
+
supportedSepaFormats?: string[];
|
|
10
|
+
};
|
|
5
11
|
/**
|
|
6
12
|
* Parameters for HKSPA business transaction - SEPA account connection request
|
|
7
13
|
* Version 3 supports all parameters including reserved purpose positions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HISPAS.d.ts","sourceRoot":"","sources":["../../../src/segments/HISPAS.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HISPAS.d.ts","sourceRoot":"","sources":["../../../src/segments/HISPAS.ts"],"names":[],"mappings":"AAGA,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,iCAAiC,EAAE,OAAO,CAAC;IAC3C,sBAAsB,EAAE,OAAO,CAAC;IAChC,wBAAwB,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,qBAAa,MAAO,SAAQ,4BAA4B;IACvD,MAAM,CAAC,EAAE,SAAY;IACrB,OAAO,SAAK;;CAgBZ"}
|
|
@@ -2,12 +2,12 @@ import { AlphaNumeric } from '../dataElements/AlphaNumeric.js';
|
|
|
2
2
|
import { Dat } from '../dataElements/Dat.js';
|
|
3
3
|
import { Numeric } from '../dataElements/Numeric.js';
|
|
4
4
|
import { YesNo } from '../dataElements/YesNo.js';
|
|
5
|
+
import { type CamtAccount } from '../dataGroups/CamtAccount.js';
|
|
5
6
|
import { DataGroup } from '../dataGroups/DataGroup.js';
|
|
6
|
-
import { type InternationalAccount } from '../dataGroups/InternationalAccount.js';
|
|
7
7
|
import type { SegmentWithContinuationMark } from '../segment.js';
|
|
8
8
|
import { SegmentDefinition } from '../segmentDefinition.js';
|
|
9
9
|
export type HKCAZSegment = SegmentWithContinuationMark & {
|
|
10
|
-
account:
|
|
10
|
+
account: CamtAccount;
|
|
11
11
|
acceptedCamtFormats: string[];
|
|
12
12
|
allAccounts: boolean;
|
|
13
13
|
from?: Date;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HKCAZ.d.ts","sourceRoot":"","sources":["../../../src/segments/HKCAZ.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"HKCAZ.d.ts","sourceRoot":"","sources":["../../../src/segments/HKCAZ.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,KAAK,WAAW,EAAoB,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,2BAA2B,GAAG;IACxD,OAAO,EAAE,WAAW,CAAC;IACrB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,EAAE,CAAC,EAAE,IAAI,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,qBAAa,KAAM,SAAQ,iBAAiB;IAC3C,MAAM,CAAC,EAAE,SAAW;IACpB,MAAM,CAAC,OAAO,SAAK;;IAInB,OAAO,SAAiB;IACxB,QAAQ,uDAQN;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lib-fints",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.5",
|
|
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"
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@biomejs/biome": "2.3.10",
|
|
43
|
-
"@types/node": "^20.19.
|
|
44
|
-
"typescript": "^5.
|
|
45
|
-
"vitest": "^
|
|
43
|
+
"@types/node": "^20.19.30",
|
|
44
|
+
"typescript": "^5.9.3",
|
|
45
|
+
"vitest": "^4.0.17"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"fast-xml-parser": "^5.3.3"
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { AlphaNumeric } from '../dataElements/AlphaNumeric.js';
|
|
2
|
-
import { Numeric } from '../dataElements/Numeric.js';
|
|
3
|
-
import { YesNo } from '../dataElements/YesNo.js';
|
|
4
|
-
import { DataGroup } from './DataGroup.js';
|
|
5
|
-
export class SepaAccountParametersGroup extends DataGroup {
|
|
6
|
-
constructor(name, minCount = 1, maxCount = 1, minVersion, maxVersion) {
|
|
7
|
-
super(name, [
|
|
8
|
-
new YesNo('individualAccountRetrievalAllowed', 1, 1),
|
|
9
|
-
new YesNo('nationalAccountAllowed', 1, 1),
|
|
10
|
-
new YesNo('structuredPurposeAllowed', 1, 1),
|
|
11
|
-
new YesNo('maxEntriesAllowed', 1, 1, 2), // version 2+
|
|
12
|
-
new Numeric('reservedPurposePositions', 1, 1, 2, 3), // version 3+
|
|
13
|
-
new AlphaNumeric('supportedSepaFormats', 0, 99, 256), // optional, up to 99 entries
|
|
14
|
-
], minCount, maxCount, minVersion, maxVersion);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { DataGroup } from './DataGroup.js';
|
|
2
|
-
export type SepaAccountParameters = {
|
|
3
|
-
individualAccountRetrievalAllowed: boolean;
|
|
4
|
-
nationalAccountAllowed: boolean;
|
|
5
|
-
structuredPurposeAllowed: boolean;
|
|
6
|
-
maxEntriesAllowed?: boolean;
|
|
7
|
-
reservedPurposePositions?: number;
|
|
8
|
-
supportedSepaFormats?: string[];
|
|
9
|
-
};
|
|
10
|
-
export declare class SepaAccountParametersGroup extends DataGroup {
|
|
11
|
-
constructor(name: string, minCount?: number, maxCount?: number, minVersion?: number, maxVersion?: number);
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=SepaAccountParameters.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SepaAccountParameters.d.ts","sourceRoot":"","sources":["../../../src/dataGroups/SepaAccountParameters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,MAAM,qBAAqB,GAAG;IACnC,iCAAiC,EAAE,OAAO,CAAC;IAC3C,sBAAsB,EAAE,OAAO,CAAC;IAChC,wBAAwB,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAEF,qBAAa,0BAA2B,SAAQ,SAAS;gBAC5C,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAI,EAAE,QAAQ,SAAI,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAiB9F"}
|