ecom-documents 1.0.4 → 1.0.6
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/dist/index.d.mts +43 -10
- package/dist/index.d.ts +43 -10
- package/dist/index.js +149 -38
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +147 -39
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -37,8 +37,10 @@ declare const DocumentType: {
|
|
|
37
37
|
readonly VENDOR_LIST: "VENDOR_LIST";
|
|
38
38
|
readonly VENDOR_SALES: "VENDOR_SALES";
|
|
39
39
|
readonly EXCEPTIONS: "EXCEPTIONS";
|
|
40
|
+
readonly TERMINALS: "TERMINALS";
|
|
40
41
|
readonly REFUNDS_POS: "REFUNDS_POS";
|
|
41
42
|
readonly REFUNDS_INTERNAL_POS: "REFUNDS_INTERNAL_POS";
|
|
43
|
+
readonly POS_TRANSACTIONS: "POS_TRANSACTIONS";
|
|
42
44
|
};
|
|
43
45
|
type DocumentType = ValueOf<typeof DocumentType>;
|
|
44
46
|
|
|
@@ -178,18 +180,9 @@ declare class RefundDocument extends RefundBaseDto {
|
|
|
178
180
|
type: string;
|
|
179
181
|
requestedBy?: string;
|
|
180
182
|
}
|
|
181
|
-
declare class RefundPOSDocument extends RefundBaseDto {
|
|
182
|
-
authId: string | null;
|
|
183
|
-
terminalId: string;
|
|
184
|
-
terminalName?: string;
|
|
185
|
-
cardNumber: string;
|
|
186
|
-
}
|
|
187
183
|
declare class RefundsExportDto {
|
|
188
184
|
data: RefundDocument[];
|
|
189
185
|
}
|
|
190
|
-
declare class RefundsPOSExportDto {
|
|
191
|
-
data: RefundPOSDocument[];
|
|
192
|
-
}
|
|
193
186
|
|
|
194
187
|
declare class SettlementDocument {
|
|
195
188
|
mid: string;
|
|
@@ -265,6 +258,44 @@ declare class VendorListExportDto {
|
|
|
265
258
|
data: VendorListDocument[];
|
|
266
259
|
}
|
|
267
260
|
|
|
261
|
+
declare class RefundPOSDocument extends RefundBaseDto {
|
|
262
|
+
authId: string | null;
|
|
263
|
+
terminalId: string;
|
|
264
|
+
terminalName?: string;
|
|
265
|
+
cardNumber: string;
|
|
266
|
+
}
|
|
267
|
+
declare class RefundsPOSExportDto {
|
|
268
|
+
data: RefundPOSDocument[];
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
declare class TerminalDocument {
|
|
272
|
+
id: string;
|
|
273
|
+
mid: string;
|
|
274
|
+
merchantName: string;
|
|
275
|
+
bankProfit: number | string;
|
|
276
|
+
ecomProfit: number | string;
|
|
277
|
+
status: string;
|
|
278
|
+
}
|
|
279
|
+
declare class TerminalsExportDto {
|
|
280
|
+
data: TerminalDocument[];
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
declare class TransactionPOSDocument {
|
|
284
|
+
createdAt: string | Date;
|
|
285
|
+
id: string;
|
|
286
|
+
ecomReference: string;
|
|
287
|
+
merchantName?: string;
|
|
288
|
+
amount: number | string;
|
|
289
|
+
paymentMethod: string;
|
|
290
|
+
authCode: string;
|
|
291
|
+
terminalId: string;
|
|
292
|
+
terminalName?: string;
|
|
293
|
+
cardNumber?: string;
|
|
294
|
+
}
|
|
295
|
+
declare class TransactionsPOSExportDto {
|
|
296
|
+
data: TransactionPOSDocument[];
|
|
297
|
+
}
|
|
298
|
+
|
|
268
299
|
declare const DocumentPayloadMap: {
|
|
269
300
|
readonly STATEMENTS: typeof StatementsExportDto;
|
|
270
301
|
readonly PAYOUTS: typeof PayoutsExportDto;
|
|
@@ -280,6 +311,8 @@ declare const DocumentPayloadMap: {
|
|
|
280
311
|
readonly EXCEPTIONS: typeof ExceptionExportDto;
|
|
281
312
|
readonly REFUNDS_POS: typeof RefundsPOSExportDto;
|
|
282
313
|
readonly REFUNDS_INTERNAL_POS: typeof RefundsPOSExportDto;
|
|
314
|
+
readonly POS_TRANSACTIONS: typeof TransactionsPOSExportDto;
|
|
315
|
+
readonly TERMINALS: typeof TerminalsExportDto;
|
|
283
316
|
};
|
|
284
317
|
|
|
285
318
|
declare class InvoiceDocument {
|
|
@@ -321,4 +354,4 @@ declare class DocumentValidator {
|
|
|
321
354
|
static formatErrors(errors: ValidationError[]): string[];
|
|
322
355
|
}
|
|
323
356
|
|
|
324
|
-
export { type ChunkedFetchConfig, DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceExportDto, InvoiceHistoryExportDto, MerchantDetailsHeaderExportDto, type PageOptionsDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TransactionsExportDto, type ValidationResult, type ValueOf, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
|
|
357
|
+
export { type ChunkedFetchConfig, DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceExportDto, InvoiceHistoryExportDto, MerchantDetailsHeaderExportDto, type PageOptionsDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundBaseDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TerminalsExportDto, TransactionsExportDto, TransactionsPOSExportDto, type ValidationResult, type ValueOf, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
|
package/dist/index.d.ts
CHANGED
|
@@ -37,8 +37,10 @@ declare const DocumentType: {
|
|
|
37
37
|
readonly VENDOR_LIST: "VENDOR_LIST";
|
|
38
38
|
readonly VENDOR_SALES: "VENDOR_SALES";
|
|
39
39
|
readonly EXCEPTIONS: "EXCEPTIONS";
|
|
40
|
+
readonly TERMINALS: "TERMINALS";
|
|
40
41
|
readonly REFUNDS_POS: "REFUNDS_POS";
|
|
41
42
|
readonly REFUNDS_INTERNAL_POS: "REFUNDS_INTERNAL_POS";
|
|
43
|
+
readonly POS_TRANSACTIONS: "POS_TRANSACTIONS";
|
|
42
44
|
};
|
|
43
45
|
type DocumentType = ValueOf<typeof DocumentType>;
|
|
44
46
|
|
|
@@ -178,18 +180,9 @@ declare class RefundDocument extends RefundBaseDto {
|
|
|
178
180
|
type: string;
|
|
179
181
|
requestedBy?: string;
|
|
180
182
|
}
|
|
181
|
-
declare class RefundPOSDocument extends RefundBaseDto {
|
|
182
|
-
authId: string | null;
|
|
183
|
-
terminalId: string;
|
|
184
|
-
terminalName?: string;
|
|
185
|
-
cardNumber: string;
|
|
186
|
-
}
|
|
187
183
|
declare class RefundsExportDto {
|
|
188
184
|
data: RefundDocument[];
|
|
189
185
|
}
|
|
190
|
-
declare class RefundsPOSExportDto {
|
|
191
|
-
data: RefundPOSDocument[];
|
|
192
|
-
}
|
|
193
186
|
|
|
194
187
|
declare class SettlementDocument {
|
|
195
188
|
mid: string;
|
|
@@ -265,6 +258,44 @@ declare class VendorListExportDto {
|
|
|
265
258
|
data: VendorListDocument[];
|
|
266
259
|
}
|
|
267
260
|
|
|
261
|
+
declare class RefundPOSDocument extends RefundBaseDto {
|
|
262
|
+
authId: string | null;
|
|
263
|
+
terminalId: string;
|
|
264
|
+
terminalName?: string;
|
|
265
|
+
cardNumber: string;
|
|
266
|
+
}
|
|
267
|
+
declare class RefundsPOSExportDto {
|
|
268
|
+
data: RefundPOSDocument[];
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
declare class TerminalDocument {
|
|
272
|
+
id: string;
|
|
273
|
+
mid: string;
|
|
274
|
+
merchantName: string;
|
|
275
|
+
bankProfit: number | string;
|
|
276
|
+
ecomProfit: number | string;
|
|
277
|
+
status: string;
|
|
278
|
+
}
|
|
279
|
+
declare class TerminalsExportDto {
|
|
280
|
+
data: TerminalDocument[];
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
declare class TransactionPOSDocument {
|
|
284
|
+
createdAt: string | Date;
|
|
285
|
+
id: string;
|
|
286
|
+
ecomReference: string;
|
|
287
|
+
merchantName?: string;
|
|
288
|
+
amount: number | string;
|
|
289
|
+
paymentMethod: string;
|
|
290
|
+
authCode: string;
|
|
291
|
+
terminalId: string;
|
|
292
|
+
terminalName?: string;
|
|
293
|
+
cardNumber?: string;
|
|
294
|
+
}
|
|
295
|
+
declare class TransactionsPOSExportDto {
|
|
296
|
+
data: TransactionPOSDocument[];
|
|
297
|
+
}
|
|
298
|
+
|
|
268
299
|
declare const DocumentPayloadMap: {
|
|
269
300
|
readonly STATEMENTS: typeof StatementsExportDto;
|
|
270
301
|
readonly PAYOUTS: typeof PayoutsExportDto;
|
|
@@ -280,6 +311,8 @@ declare const DocumentPayloadMap: {
|
|
|
280
311
|
readonly EXCEPTIONS: typeof ExceptionExportDto;
|
|
281
312
|
readonly REFUNDS_POS: typeof RefundsPOSExportDto;
|
|
282
313
|
readonly REFUNDS_INTERNAL_POS: typeof RefundsPOSExportDto;
|
|
314
|
+
readonly POS_TRANSACTIONS: typeof TransactionsPOSExportDto;
|
|
315
|
+
readonly TERMINALS: typeof TerminalsExportDto;
|
|
283
316
|
};
|
|
284
317
|
|
|
285
318
|
declare class InvoiceDocument {
|
|
@@ -321,4 +354,4 @@ declare class DocumentValidator {
|
|
|
321
354
|
static formatErrors(errors: ValidationError[]): string[];
|
|
322
355
|
}
|
|
323
356
|
|
|
324
|
-
export { type ChunkedFetchConfig, DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceExportDto, InvoiceHistoryExportDto, MerchantDetailsHeaderExportDto, type PageOptionsDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TransactionsExportDto, type ValidationResult, type ValueOf, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
|
|
357
|
+
export { type ChunkedFetchConfig, DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceExportDto, InvoiceHistoryExportDto, MerchantDetailsHeaderExportDto, type PageOptionsDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundBaseDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TerminalsExportDto, TransactionsExportDto, TransactionsPOSExportDto, type ValidationResult, type ValueOf, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
|
package/dist/index.js
CHANGED
|
@@ -32,8 +32,11 @@ var DocumentType = {
|
|
|
32
32
|
VENDOR_LIST: "VENDOR_LIST",
|
|
33
33
|
VENDOR_SALES: "VENDOR_SALES",
|
|
34
34
|
EXCEPTIONS: "EXCEPTIONS",
|
|
35
|
+
TERMINALS: "TERMINALS",
|
|
35
36
|
REFUNDS_POS: "REFUNDS_POS",
|
|
36
|
-
REFUNDS_INTERNAL_POS: "REFUNDS_INTERNAL_POS"
|
|
37
|
+
REFUNDS_INTERNAL_POS: "REFUNDS_INTERNAL_POS",
|
|
38
|
+
POS_TRANSACTIONS: "POS_TRANSACTIONS"
|
|
39
|
+
// POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',
|
|
37
40
|
// MERCHANT_USERS: 'MERCHANT_USERS',
|
|
38
41
|
// INTERNAL_USERS: 'INTERNAL_USERS',
|
|
39
42
|
// BULK_INVOICE_CUSTOMERS: 'BULK_INVOICE_CUSTOMERS',
|
|
@@ -44,10 +47,6 @@ var DocumentType = {
|
|
|
44
47
|
// INVOICE_HISTORY: 'INVOICE_HISTORY',
|
|
45
48
|
// USERS: 'USERS',
|
|
46
49
|
// UNPAID_INVOICES: 'UNPAID_INVOICES',
|
|
47
|
-
// TERMINALS: 'TERMINALS',
|
|
48
|
-
// POS_TRANSACTIONS: 'POS_TRANSACTIONS',
|
|
49
|
-
// POS_MERCHANT_TRANSACTIONS: 'POS_MERCHANT_TRANSACTIONS',
|
|
50
|
-
// POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',
|
|
51
50
|
// BULK_INVOICES_INVALID: 'BULK_INVOICES_INVALID',
|
|
52
51
|
// BLACKLIST_INVALID: 'BLACKLIST_INVALID',
|
|
53
52
|
// BLACKLIST: 'BLACKLIST',
|
|
@@ -353,28 +352,6 @@ __decorateClass([
|
|
|
353
352
|
classValidator.IsString(),
|
|
354
353
|
classValidator.IsNotEmpty()
|
|
355
354
|
], RefundDocument.prototype, "requestedBy");
|
|
356
|
-
var RefundPOSDocument = class extends RefundBaseDto {
|
|
357
|
-
authId;
|
|
358
|
-
terminalId;
|
|
359
|
-
terminalName;
|
|
360
|
-
cardNumber;
|
|
361
|
-
};
|
|
362
|
-
__decorateClass([
|
|
363
|
-
classValidator.IsString(),
|
|
364
|
-
classValidator.IsNotEmpty()
|
|
365
|
-
], RefundPOSDocument.prototype, "authId");
|
|
366
|
-
__decorateClass([
|
|
367
|
-
classValidator.IsString(),
|
|
368
|
-
classValidator.IsNotEmpty()
|
|
369
|
-
], RefundPOSDocument.prototype, "terminalId");
|
|
370
|
-
__decorateClass([
|
|
371
|
-
classValidator.IsString(),
|
|
372
|
-
classValidator.IsOptional()
|
|
373
|
-
], RefundPOSDocument.prototype, "terminalName");
|
|
374
|
-
__decorateClass([
|
|
375
|
-
classValidator.IsString(),
|
|
376
|
-
classValidator.IsNotEmpty()
|
|
377
|
-
], RefundPOSDocument.prototype, "cardNumber");
|
|
378
355
|
var RefundsExportDto = class {
|
|
379
356
|
data;
|
|
380
357
|
};
|
|
@@ -385,16 +362,6 @@ __decorateClass([
|
|
|
385
362
|
classValidator.IsNotEmpty(),
|
|
386
363
|
classValidator.IsDefined()
|
|
387
364
|
], RefundsExportDto.prototype, "data");
|
|
388
|
-
var RefundsPOSExportDto = class {
|
|
389
|
-
data;
|
|
390
|
-
};
|
|
391
|
-
__decorateClass([
|
|
392
|
-
classValidator.IsArray(),
|
|
393
|
-
classValidator.ValidateNested({ each: true }),
|
|
394
|
-
classTransformer.Type(() => RefundPOSDocument),
|
|
395
|
-
classValidator.IsNotEmpty(),
|
|
396
|
-
classValidator.IsDefined()
|
|
397
|
-
], RefundsPOSExportDto.prototype, "data");
|
|
398
365
|
var SettlementDocument = class {
|
|
399
366
|
mid;
|
|
400
367
|
merchantName;
|
|
@@ -675,6 +642,143 @@ __decorateClass([
|
|
|
675
642
|
classValidator.IsDefined()
|
|
676
643
|
], VendorListExportDto.prototype, "data");
|
|
677
644
|
|
|
645
|
+
// src/dtos/epos-ms/refund-pos-document.request.dto.ts
|
|
646
|
+
var RefundPOSDocument = class extends RefundBaseDto {
|
|
647
|
+
authId;
|
|
648
|
+
terminalId;
|
|
649
|
+
terminalName;
|
|
650
|
+
cardNumber;
|
|
651
|
+
};
|
|
652
|
+
__decorateClass([
|
|
653
|
+
classValidator.IsString(),
|
|
654
|
+
classValidator.IsNotEmpty()
|
|
655
|
+
], RefundPOSDocument.prototype, "authId");
|
|
656
|
+
__decorateClass([
|
|
657
|
+
classValidator.IsString(),
|
|
658
|
+
classValidator.IsNotEmpty()
|
|
659
|
+
], RefundPOSDocument.prototype, "terminalId");
|
|
660
|
+
__decorateClass([
|
|
661
|
+
classValidator.IsString(),
|
|
662
|
+
classValidator.IsOptional()
|
|
663
|
+
], RefundPOSDocument.prototype, "terminalName");
|
|
664
|
+
__decorateClass([
|
|
665
|
+
classValidator.IsString(),
|
|
666
|
+
classValidator.IsNotEmpty()
|
|
667
|
+
], RefundPOSDocument.prototype, "cardNumber");
|
|
668
|
+
var RefundsPOSExportDto = class {
|
|
669
|
+
data;
|
|
670
|
+
};
|
|
671
|
+
__decorateClass([
|
|
672
|
+
classValidator.IsArray(),
|
|
673
|
+
classValidator.ValidateNested({ each: true }),
|
|
674
|
+
classTransformer.Type(() => RefundPOSDocument),
|
|
675
|
+
classValidator.IsNotEmpty(),
|
|
676
|
+
classValidator.IsDefined()
|
|
677
|
+
], RefundsPOSExportDto.prototype, "data");
|
|
678
|
+
var TerminalDocument = class {
|
|
679
|
+
id;
|
|
680
|
+
mid;
|
|
681
|
+
merchantName;
|
|
682
|
+
bankProfit;
|
|
683
|
+
ecomProfit;
|
|
684
|
+
status;
|
|
685
|
+
};
|
|
686
|
+
__decorateClass([
|
|
687
|
+
classValidator.IsString(),
|
|
688
|
+
classValidator.IsNotEmpty()
|
|
689
|
+
], TerminalDocument.prototype, "id");
|
|
690
|
+
__decorateClass([
|
|
691
|
+
classValidator.IsString(),
|
|
692
|
+
classValidator.IsNotEmpty()
|
|
693
|
+
], TerminalDocument.prototype, "mid");
|
|
694
|
+
__decorateClass([
|
|
695
|
+
classValidator.IsString(),
|
|
696
|
+
classValidator.IsNotEmpty()
|
|
697
|
+
], TerminalDocument.prototype, "merchantName");
|
|
698
|
+
__decorateClass([
|
|
699
|
+
classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
|
|
700
|
+
classValidator.IsNumberString(),
|
|
701
|
+
classValidator.IsNotEmpty()
|
|
702
|
+
], TerminalDocument.prototype, "bankProfit");
|
|
703
|
+
__decorateClass([
|
|
704
|
+
classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
|
|
705
|
+
classValidator.IsNumberString(),
|
|
706
|
+
classValidator.IsNotEmpty()
|
|
707
|
+
], TerminalDocument.prototype, "ecomProfit");
|
|
708
|
+
__decorateClass([
|
|
709
|
+
classValidator.IsString(),
|
|
710
|
+
classValidator.IsNotEmpty()
|
|
711
|
+
], TerminalDocument.prototype, "status");
|
|
712
|
+
var TerminalsExportDto = class {
|
|
713
|
+
data;
|
|
714
|
+
};
|
|
715
|
+
__decorateClass([
|
|
716
|
+
classValidator.IsArray(),
|
|
717
|
+
classValidator.ValidateNested({ each: true }),
|
|
718
|
+
classTransformer.Type(() => TerminalDocument),
|
|
719
|
+
classValidator.IsNotEmpty(),
|
|
720
|
+
classValidator.IsDefined()
|
|
721
|
+
], TerminalsExportDto.prototype, "data");
|
|
722
|
+
var TransactionPOSDocument = class {
|
|
723
|
+
createdAt;
|
|
724
|
+
id;
|
|
725
|
+
ecomReference;
|
|
726
|
+
merchantName;
|
|
727
|
+
amount;
|
|
728
|
+
paymentMethod;
|
|
729
|
+
authCode;
|
|
730
|
+
terminalId;
|
|
731
|
+
terminalName;
|
|
732
|
+
cardNumber;
|
|
733
|
+
};
|
|
734
|
+
__decorateClass([
|
|
735
|
+
classValidator.IsNotEmpty()
|
|
736
|
+
], TransactionPOSDocument.prototype, "createdAt");
|
|
737
|
+
__decorateClass([
|
|
738
|
+
classValidator.IsNotEmpty()
|
|
739
|
+
], TransactionPOSDocument.prototype, "id");
|
|
740
|
+
__decorateClass([
|
|
741
|
+
classValidator.IsNotEmpty(),
|
|
742
|
+
classValidator.IsString()
|
|
743
|
+
], TransactionPOSDocument.prototype, "ecomReference");
|
|
744
|
+
__decorateClass([
|
|
745
|
+
classValidator.IsString(),
|
|
746
|
+
classValidator.IsOptional()
|
|
747
|
+
], TransactionPOSDocument.prototype, "merchantName");
|
|
748
|
+
__decorateClass([
|
|
749
|
+
classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
|
|
750
|
+
classValidator.IsNumberString(),
|
|
751
|
+
classValidator.IsNotEmpty()
|
|
752
|
+
], TransactionPOSDocument.prototype, "amount");
|
|
753
|
+
__decorateClass([
|
|
754
|
+
classValidator.IsString(),
|
|
755
|
+
classValidator.IsNotEmpty()
|
|
756
|
+
], TransactionPOSDocument.prototype, "paymentMethod");
|
|
757
|
+
__decorateClass([
|
|
758
|
+
classValidator.IsString(),
|
|
759
|
+
classValidator.IsNotEmpty()
|
|
760
|
+
], TransactionPOSDocument.prototype, "authCode");
|
|
761
|
+
__decorateClass([
|
|
762
|
+
classValidator.IsString(),
|
|
763
|
+
classValidator.IsNotEmpty()
|
|
764
|
+
], TransactionPOSDocument.prototype, "terminalId");
|
|
765
|
+
__decorateClass([
|
|
766
|
+
classValidator.IsString(),
|
|
767
|
+
classValidator.IsOptional()
|
|
768
|
+
], TransactionPOSDocument.prototype, "terminalName");
|
|
769
|
+
__decorateClass([
|
|
770
|
+
classValidator.IsString(),
|
|
771
|
+
classValidator.IsOptional()
|
|
772
|
+
], TransactionPOSDocument.prototype, "cardNumber");
|
|
773
|
+
var TransactionsPOSExportDto = class {
|
|
774
|
+
data;
|
|
775
|
+
};
|
|
776
|
+
__decorateClass([
|
|
777
|
+
classValidator.IsArray(),
|
|
778
|
+
classValidator.IsNotEmpty(),
|
|
779
|
+
classValidator.IsDefined()
|
|
780
|
+
], TransactionsPOSExportDto.prototype, "data");
|
|
781
|
+
|
|
678
782
|
// src/dtos/dto-map.ts
|
|
679
783
|
var DocumentPayloadMap = {
|
|
680
784
|
// transactions microservice dtos
|
|
@@ -692,7 +796,9 @@ var DocumentPayloadMap = {
|
|
|
692
796
|
[DocumentType.EXCEPTIONS]: ExceptionExportDto,
|
|
693
797
|
// pos microservice dtos
|
|
694
798
|
[DocumentType.REFUNDS_POS]: RefundsPOSExportDto,
|
|
695
|
-
[DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto
|
|
799
|
+
[DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto,
|
|
800
|
+
[DocumentType.POS_TRANSACTIONS]: TransactionsPOSExportDto,
|
|
801
|
+
[DocumentType.TERMINALS]: TerminalsExportDto
|
|
696
802
|
// elinks microservice dtos
|
|
697
803
|
};
|
|
698
804
|
|
|
@@ -767,6 +873,8 @@ var DocumentExportClient = class {
|
|
|
767
873
|
constructor(documentMsBaseUrl, documentMSCommunicationKey) {
|
|
768
874
|
this.client = axios__default.default.create({
|
|
769
875
|
baseURL: documentMsBaseUrl,
|
|
876
|
+
// time out , 1 minute
|
|
877
|
+
timeout: 1e3 * 60,
|
|
770
878
|
headers: {
|
|
771
879
|
"Content-Type": "application/json",
|
|
772
880
|
"x-communication-key": documentMSCommunicationKey || ""
|
|
@@ -1135,11 +1243,14 @@ exports.MerchantDetailsHeaderExportDto = MerchantDetailsHeaderExportDto;
|
|
|
1135
1243
|
exports.PaymentMethodsExportDto = PaymentMethodsExportDto;
|
|
1136
1244
|
exports.PayoutsExportDto = PayoutsExportDto;
|
|
1137
1245
|
exports.ProfitFeesExportDto = ProfitFeesExportDto;
|
|
1246
|
+
exports.RefundBaseDto = RefundBaseDto;
|
|
1138
1247
|
exports.RefundsExportDto = RefundsExportDto;
|
|
1139
1248
|
exports.RefundsPOSExportDto = RefundsPOSExportDto;
|
|
1140
1249
|
exports.SettlementsExportDto = SettlementsExportDto;
|
|
1141
1250
|
exports.StatementsExportDto = StatementsExportDto;
|
|
1251
|
+
exports.TerminalsExportDto = TerminalsExportDto;
|
|
1142
1252
|
exports.TransactionsExportDto = TransactionsExportDto;
|
|
1253
|
+
exports.TransactionsPOSExportDto = TransactionsPOSExportDto;
|
|
1143
1254
|
exports.VendorListExportDto = VendorListExportDto;
|
|
1144
1255
|
exports.VendorSalesExportDto = VendorSalesExportDto;
|
|
1145
1256
|
exports.fetchDBQueryInChunks = fetchDBQueryInChunks;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/enums/document-type.enum.ts","../src/enums/fileFormat.enum.ts","../src/dtos/transactions-ms/exceptions-document.request.dto.ts","../src/dtos/transactions-ms/payment-method.request.dto.ts","../src/dtos/transactions-ms/payout-document.request.dto.ts","../src/dtos/transactions-ms/profit-fees-document.request.dto.ts","../src/dtos/transactions-ms/refund-document.request.dto.ts","../src/dtos/transactions-ms/settlement-document.request.dto.ts","../src/dtos/transactions-ms/statement-document.request.dto.ts","../src/dtos/transactions-ms/transaction-document-template.request.dto.ts","../src/dtos/transactions-ms/vendor-sales-document.request.dto.ts","../src/dtos/dto-map.ts","../src/validators/document-validator.ts","../src/client/document-client.ts","../src/client/errors/document-error.ts","../src/client/errors/validation-error.ts","../src/dtos/base/date-range.ts","../src/utils/chunked-fetcher.util.ts","../src/utils/mask-account-number.ts","../src/dtos/base/merchant-headers.ts","../src/dtos/base/document-generation.request.dto.ts","../src/dtos/base/document-path.response.dto.ts","../src/dtos/elinks-ms/invoice-document.request.dto.ts"],"names":["IsNotEmpty","IsString","Transform","IsNumberString","IsArray","ValidateNested","Type","IsDefined","IsOptional","plainToInstance","validate","axios","IsUrl","IsEnum"],"mappings":"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","file":"index.js","sourcesContent":["import { ValueOf } from '../utils';\n\nexport const DocumentType = {\n STATEMENTS: 'STATEMENTS',\n PAYOUTS: 'PAYOUTS',\n SETTLEMENTS: 'SETTLEMENTS',\n TRANSACTIONS: 'TRANSACTIONS',\n TRANSACTIONS_INTERNAL: 'TRANSACTIONS_INTERNAL',\n REFUNDS: 'REFUNDS',\n REFUNDS_INTERNAL_GATEWAY: 'REFUNDS_INTERNAL_GATEWAY',\n\n PROFIT_FEES: 'PROFIT_FEES',\n PAYMENT_METHODS: 'PAYMENT_METHODS',\n\n VENDOR_LIST: 'VENDOR_LIST',\n VENDOR_SALES: 'VENDOR_SALES',\n EXCEPTIONS: 'EXCEPTIONS',\n\n REFUNDS_POS: 'REFUNDS_POS',\n REFUNDS_INTERNAL_POS: 'REFUNDS_INTERNAL_POS',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // BULK_INVOICE_CUSTOMERS: 'BULK_INVOICE_CUSTOMERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n // CUSTOMERS: 'CUSTOMERS',\n // TERMINAL: 'TERMINAL',\n // INVOICES: 'INVOICES',\n // INVOICE_HISTORY: 'INVOICE_HISTORY',\n // USERS: 'USERS',\n // UNPAID_INVOICES: 'UNPAID_INVOICES',\n\n // TERMINALS: 'TERMINALS',\n // POS_TRANSACTIONS: 'POS_TRANSACTIONS',\n // POS_MERCHANT_TRANSACTIONS: 'POS_MERCHANT_TRANSACTIONS',\n // POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',\n // BULK_INVOICES_INVALID: 'BULK_INVOICES_INVALID',\n // BLACKLIST_INVALID: 'BLACKLIST_INVALID',\n // BLACKLIST: 'BLACKLIST',\n // PARTNERS: 'PARTNERS',\n} as const;\n\nexport type DocumentType = ValueOf<typeof DocumentType>;\n","import { ValueOf } from '../utils';\n\nexport const FileFormat = {\n PDF: 'pdf',\n CSV: 'csv',\n XLSX: 'xlsx',\n} as const;\n\nexport type FileFormat = ValueOf<typeof FileFormat>;\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ExceptionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantRisk!: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n cardIssuer!: string;\n\n @IsString()\n @IsNotEmpty()\n cardHolderName!: string;\n\n @IsString()\n @IsNotEmpty()\n payerIpAddress!: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n}\n\nexport class ExceptionExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ExceptionDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ExceptionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PaymentMethodDocument {\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n percentageOfTotal!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n txnCount!: number | string;\n}\n\nexport class PaymentMethodsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PaymentMethodDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PaymentMethodDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PayoutDocument {\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @IsString()\n @IsNotEmpty()\n notes!: string;\n\n @IsNotEmpty()\n createdAt!: string | Date;\n}\n\nexport class PayoutsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PayoutDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PayoutDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ProfitFeesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalProfitAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n type!: 'PROFIT' | 'FEES';\n}\n\nexport class ProfitFeesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ProfitFeesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ProfitFeesDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass RefundBaseDto {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsOptional()\n refundedAt?: string | Date;\n\n @IsOptional()\n rejectedAt?: string | Date;\n\n @IsString()\n @IsOptional()\n ecomReference?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsNotEmpty()\n originalTxnId!: string;\n\n @IsNotEmpty()\n originalTxnDate!: string | Date;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n originalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n}\n\nclass RefundDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n type!: string;\n\n @IsString()\n @IsNotEmpty()\n requestedBy?: string;\n}\n\nclass RefundPOSDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n authId!: string | null;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n}\n\nexport class RefundsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundDocument[];\n}\n\nexport class RefundsPOSExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundPOSDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundPOSDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass SettlementDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsOptional()\n bank?: string;\n\n @IsString()\n @IsOptional()\n holderName?: string;\n\n @IsString()\n @IsOptional()\n iban?: string;\n\n @IsString()\n @IsOptional()\n accountNumber?: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsNumberString()\n @IsNotEmpty()\n totalTxnCount!: number | string;\n\n @IsOptional()\n settlementDate?: string | null;\n}\n\nexport class SettlementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => SettlementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: SettlementDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass StatementDocument {\n @IsNotEmpty()\n createdAt!: Date | string;\n\n @IsString()\n @IsOptional()\n transactionId?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n invoiceId?: string;\n\n @IsString()\n @IsOptional()\n description?: string;\n\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n type!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n balanceAfter!: number | string;\n}\nexport class StatementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => StatementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: StatementDocument[];\n}\n","import { Transform } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString } from 'class-validator';\n\nclass TransactionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n id!: string;\n\n @IsNotEmpty()\n @IsString()\n ecomReference!: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n merchantName?: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsNotEmpty()\n @IsString()\n customerName!: string;\n\n @IsNotEmpty()\n @IsString()\n customerPhone!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n product!: string;\n\n @IsNotEmpty()\n @IsString()\n paymentMethod!: string;\n\n @IsNotEmpty()\n @IsString()\n status!: string;\n\n @IsString()\n @IsOptional()\n authCode?: string;\n\n @IsString()\n @IsOptional()\n terminalId?: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsOptional()\n cardNumber?: string;\n}\n\nexport class TransactionsExportDto {\n @IsArray()\n @IsNotEmpty()\n @IsDefined()\n data!: TransactionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass VendorSalesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n}\n\nclass VendorListDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @IsString()\n @IsNotEmpty()\n email!: string;\n\n @IsString()\n @IsNotEmpty()\n bank!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @IsNotEmpty()\n commission!: number | string;\n}\n\nexport class VendorSalesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorSalesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorSalesDocument[];\n}\n\nexport class VendorListExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorListDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorListDocument[];\n}\n","import { DocumentType } from '../enums';\nimport {\n ExceptionExportDto,\n PaymentMethodsExportDto,\n PayoutsExportDto,\n ProfitFeesExportDto,\n RefundsExportDto,\n RefundsPOSExportDto,\n SettlementsExportDto,\n StatementsExportDto,\n TransactionsExportDto,\n VendorListExportDto,\n VendorSalesExportDto,\n} from './transactions-ms';\n\nexport const DocumentPayloadMap = {\n // transactions microservice dtos\n [DocumentType.STATEMENTS]: StatementsExportDto,\n [DocumentType.PAYOUTS]: PayoutsExportDto,\n [DocumentType.SETTLEMENTS]: SettlementsExportDto,\n [DocumentType.TRANSACTIONS]: TransactionsExportDto,\n [DocumentType.TRANSACTIONS_INTERNAL]: TransactionsExportDto,\n [DocumentType.REFUNDS]: RefundsExportDto,\n [DocumentType.REFUNDS_INTERNAL_GATEWAY]: RefundsExportDto,\n [DocumentType.PROFIT_FEES]: ProfitFeesExportDto,\n [DocumentType.PAYMENT_METHODS]: PaymentMethodsExportDto,\n [DocumentType.VENDOR_LIST]: VendorListExportDto,\n [DocumentType.VENDOR_SALES]: VendorSalesExportDto,\n [DocumentType.EXCEPTIONS]: ExceptionExportDto,\n\n // pos microservice dtos\n [DocumentType.REFUNDS_POS]: RefundsPOSExportDto,\n [DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto,\n\n // elinks microservice dtos\n} as const;\n","/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nimport { ClassConstructor, plainToInstance } from 'class-transformer';\nimport { ValidationError, validate } from 'class-validator';\nimport { DocumentPayloadMap } from '../dtos/dto-map';\nimport { DocumentType } from '../enums/document-type.enum';\n\n/**\n * Validation result interface\n */\nexport interface ValidationResult<T = any> {\n isValid: boolean;\n errors?: ValidationError[];\n validatedPayload?: T;\n errorMessage?: string;\n}\n\n/**\n * Document payload validator\n */\nexport class DocumentValidator {\n /**\n * Validate a document payload based on its type\n * @param type - Document type\n * @param payload - Raw payload data\n * @returns Validation result with typed payload or errors\n */\n static async validatePayload(type: DocumentType, payload: any): Promise<ValidationResult> {\n // Get the DTO class for this document type\n const DtoClass = DocumentPayloadMap[type];\n\n if (!DtoClass) {\n return {\n isValid: false,\n errorMessage: `Unknown document type: ${type}`,\n errors: [\n {\n property: 'type',\n constraints: { invalid: `Unknown document type: ${type}` },\n } as ValidationError,\n ],\n };\n }\n\n // Transform plain object to class instance\n const instance = plainToInstance(DtoClass as ClassConstructor<any>, payload);\n\n // Validate the instance\n const errors = await validate(instance, {\n whitelist: true,\n validationError: {\n target: false,\n value: true,\n },\n });\n\n if (errors.length > 0) {\n return {\n isValid: false,\n errors,\n errorMessage: 'Payload validation failed',\n };\n }\n\n return {\n isValid: true,\n validatedPayload: instance,\n };\n }\n\n /**\n * Format validation errors into human-readable messages\n * @param errors - Array of validation errors\n * @returns Formatted error messages\n */\n static formatErrors(errors: ValidationError[]): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ValidationError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((message) => {\n messages.push(`${currentPath}: ${message}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n errors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import axios from 'axios';\nimport {\n DateRangeExportDto,\n DocumentGenerationRequestDto,\n DocumentPathResponseDto,\n MerchantDetailsHeaderExportDto,\n} from '../dtos/base';\nimport { FileFormat } from '../enums';\nimport { DocumentType } from '../enums/document-type.enum';\nimport { DocumentValidator } from '../validators/document-validator';\n\n/**\n * Client for interacting with document microservice\n */\nexport class DocumentExportClient {\n client: ReturnType<typeof axios.create>;\n\n constructor(documentMsBaseUrl: string, documentMSCommunicationKey: string) {\n this.client = axios.create({\n baseURL: documentMsBaseUrl,\n headers: {\n 'Content-Type': 'application/json',\n 'x-communication-key': documentMSCommunicationKey || '',\n },\n });\n }\n\n /**\n * Generate a document with type-safe payload\n * @param type - Document type\n * @param payload - Typed payload for the document\n * @returns Document generation response\n */\n async generateDocument(\n documentFormat: FileFormat,\n documentType: DocumentType,\n dateRange: DateRangeExportDto,\n payload: { data: object[] },\n merchantInfo: MerchantDetailsHeaderExportDto,\n presignedURL: boolean = false,\n ): Promise<DocumentPathResponseDto> {\n try {\n // Validate payload before sending if enabled\n\n const validation = await DocumentValidator.validatePayload(documentType, payload);\n\n if (!validation.isValid) {\n const messages = DocumentValidator.formatErrors(validation.errors || []);\n const firstMessage = messages[0];\n throw new Error(`Document payload validation failed: ${firstMessage}`);\n }\n\n // Construct request\n const request: DocumentGenerationRequestDto = {\n documentFormat,\n documentType,\n dateRange,\n merchantInfo,\n data: validation?.validatedPayload?.data,\n presignedURL,\n };\n\n // Send request\n const response = await this.client.post<DocumentPathResponseDto>('/v2/document-generation', request);\n\n return response.data;\n } catch (error: any) {\n // if (error instanceof AxiosError) {\n // console.log(error.response?.data);\n // }\n console.log(error.response?.data || error?.message);\n return Promise.reject(error);\n }\n }\n}\n","/**\n * Base error for document operations\n */\n/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nexport class DocumentError extends Error {\n constructor(\n message: string,\n public code: string,\n public statusCode?: number,\n public details?: any,\n ) {\n super(message);\n this.name = 'DocumentError';\n Error.captureStackTrace(this, this.constructor);\n }\n}\n\n/**\n * Error thrown when document generation fails\n */\nexport class DocumentGenerationError extends DocumentError {\n constructor(message: string, details?: any) {\n super(message, 'DOCUMENT_GENERATION_ERROR', 500, details);\n this.name = 'DocumentGenerationError';\n }\n}\n\n/**\n * Error thrown when network request fails\n */\nexport class DocumentNetworkError extends DocumentError {\n constructor(message: string, statusCode?: number, details?: any) {\n super(message, 'NETWORK_ERROR', statusCode, details);\n this.name = 'DocumentNetworkError';\n }\n}\n","import { ValidationError as ClassValidatorError } from 'class-validator';\nimport { DocumentError } from './document-error';\n\n/**\n * Error thrown when payload validation fails\n */\nexport class DocumentValidationError extends DocumentError {\n constructor(\n message: string,\n public validationErrors: ClassValidatorError[],\n ) {\n super(message, 'VALIDATION_ERROR', 400, { validationErrors });\n this.name = 'DocumentValidationError';\n }\n\n /**\n * Get formatted validation error messages\n */\n getMessages(): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ClassValidatorError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((msg) => {\n messages.push(`${currentPath}: ${msg}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n this.validationErrors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import { IsNotEmpty } from 'class-validator';\n\nexport class DateRangeExportDto {\n @IsNotEmpty()\n from!: string | Date;\n\n @IsNotEmpty()\n to!: string | Date;\n}\n","export interface PageOptionsDto {\n page?: number;\n limit?: number;\n skip: number;\n take?: number;\n order?: 'ASC' | 'DESC';\n}\n\n/**\n * Configuration for chunked data fetching\n */\nexport interface ChunkedFetchConfig<T> {\n /**\n * The query function that accepts PageOptionsDto and returns [data, total]\n */\n queryFn: (pageOptions: PageOptionsDto) => Promise<[T[], number]>;\n\n /**\n * Original pagination options (will be overridden for chunking)\n */\n pageOptions: PageOptionsDto;\n\n /**\n * Maximum records per chunk (default: 200)\n */\n chunkSize?: number;\n}\n\n/**\n * Use this if you want to process records as they're fetched\n * const transactions = await fetchDBQueryInChunks({\n * queryFn: (pageOptions) => this.repository.findAndCount(pageOptions, filters, mid),\n * pageOptions: pageOptionsDto,\n * chunkSize: 200,\n * });\n */\nconst MAX_EXPORT_RECORDS = 5000;\nexport async function fetchDBQueryInChunks<T>(config: ChunkedFetchConfig<T>): Promise<T[]> {\n const { queryFn, pageOptions, chunkSize = 200 } = config;\n\n // First fetch to get total count\n const firstPageOptions: PageOptionsDto = {\n ...pageOptions,\n take: chunkSize,\n skip: 0,\n };\n\n const [firstRecords, totalRecords] = await queryFn(firstPageOptions);\n\n // If all data fits in first chunk, return immediately\n if (firstRecords.length >= totalRecords || firstRecords.length < chunkSize) {\n return firstRecords;\n }\n\n // Pre-allocate array with exact size for better memory performance\n // This avoids dynamic array resizing and memory fragmentation\n const allRecords: T[] = new Array(totalRecords);\n\n // Copy first chunk\n for (let i = 0; i < firstRecords.length; i++) {\n allRecords[i] = firstRecords[i];\n }\n\n let currentIndex = firstRecords.length;\n let skip = chunkSize;\n\n // Fetch remaining chunks\n while (currentIndex < totalRecords) {\n const chunkPageOptions: PageOptionsDto = {\n ...pageOptions,\n take: chunkSize,\n skip,\n };\n\n const [records] = await queryFn(chunkPageOptions);\n\n // Break if no more records\n if (records.length === 0) {\n break;\n }\n\n // Copy records directly to pre-allocated positions\n for (let i = 0; i < records.length; i++) {\n allRecords[currentIndex++] = records[i];\n }\n\n // Break if we got fewer records than requested (last chunk)\n if (records.length < chunkSize) {\n break;\n }\n\n skip += chunkSize;\n\n // max 5000 records\n if (skip >= MAX_EXPORT_RECORDS) {\n break;\n }\n }\n\n // If actual records are less than total (edge case), trim array\n if (currentIndex < totalRecords) {\n allRecords.length = currentIndex;\n }\n\n return allRecords;\n}\n","export function maskAccountNumber(str: string): string {\n if (!str) return '';\n const lastFourDigits = str.slice(-4);\n const maskedPart = str.slice(0, -4).replace(/\\d/g, 'x');\n return maskedPart + lastFourDigits || '';\n}\n","import { Transform } from 'class-transformer';\nimport { IsNotEmpty, IsNumberString, IsOptional, IsString, IsUrl } from 'class-validator';\nimport { maskAccountNumber } from '../../utils';\n\nexport class MerchantDetailsHeaderExportDto {\n @IsString()\n @IsNotEmpty()\n name!: string;\n\n @IsUrl({ protocols: ['https'] })\n @IsOptional()\n profile?: string;\n\n @Transform(({ value }) => maskAccountNumber(value))\n @IsString()\n @IsNotEmpty()\n accountNumber!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n availableBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n pendingBalance!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n}\n","import { Type } from 'class-transformer';\nimport { IsEnum, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { DocumentType, FileFormat } from '../../enums';\nimport { DateRangeExportDto } from './index';\nimport { MerchantDetailsHeaderExportDto } from './merchant-headers';\n\n// biome-ignore lint/suspicious/noExplicitAny: false positive\nexport class DocumentGenerationRequestDto<T = any> {\n @IsEnum(FileFormat, { message: 'document format must be one of: pdf, csv, xlsx' })\n @IsNotEmpty()\n documentFormat!: FileFormat;\n\n @IsString()\n @IsNotEmpty()\n documentType!: DocumentType;\n\n @Type(() => MerchantDetailsHeaderExportDto)\n @ValidateNested()\n // make it optional in the validator , but not in the runtime / if it needed so pass it with null , but it must be there\n @IsOptional()\n merchantInfo?: MerchantDetailsHeaderExportDto;\n\n @Type(() => DateRangeExportDto)\n @ValidateNested()\n @IsNotEmpty()\n dateRange!: DateRangeExportDto;\n\n @IsNotEmpty()\n data!: T[];\n\n @IsNotEmpty()\n presignedURL?: boolean = false;\n}\n","export class DocumentPathResponseDto {\n name: string;\n\n path: string;\n\n s3Result: object;\n\n constructor(name: string, path: string, commandResult: object) {\n this.name = name;\n this.path = path;\n this.s3Result = commandResult;\n }\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n paidAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantReference!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsOptional()\n transactionId: string = '';\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n}\n\nclass InvoiceHistoryDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsNotEmpty()\n invoiceId!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsOptional()\n paymentMethodBrand!: string;\n}\n\nexport class InvoiceExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceDocument[];\n}\n\nexport class InvoiceHistoryExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceHistoryDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceHistoryDocument[];\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/enums/document-type.enum.ts","../src/enums/fileFormat.enum.ts","../src/dtos/transactions-ms/exceptions-document.request.dto.ts","../src/dtos/transactions-ms/payment-method.request.dto.ts","../src/dtos/transactions-ms/payout-document.request.dto.ts","../src/dtos/transactions-ms/profit-fees-document.request.dto.ts","../src/dtos/transactions-ms/refund-document.request.dto.ts","../src/dtos/transactions-ms/settlement-document.request.dto.ts","../src/dtos/transactions-ms/statement-document.request.dto.ts","../src/dtos/transactions-ms/transaction-document-template.request.dto.ts","../src/dtos/transactions-ms/vendor-sales-document.request.dto.ts","../src/dtos/epos-ms/refund-pos-document.request.dto.ts","../src/dtos/epos-ms/terminal-document.request.dto.ts","../src/dtos/epos-ms/transaction-pos-document.request.dto.ts","../src/dtos/dto-map.ts","../src/validators/document-validator.ts","../src/client/document-client.ts","../src/client/errors/document-error.ts","../src/client/errors/validation-error.ts","../src/dtos/base/date-range.ts","../src/utils/chunked-fetcher.util.ts","../src/utils/mask-account-number.ts","../src/dtos/base/merchant-headers.ts","../src/dtos/base/document-generation.request.dto.ts","../src/dtos/base/document-path.response.dto.ts","../src/dtos/elinks-ms/invoice-document.request.dto.ts"],"names":["IsNotEmpty","IsString","Transform","IsNumberString","IsArray","ValidateNested","Type","IsDefined","IsOptional","plainToInstance","validate","axios","IsUrl","IsEnum"],"mappings":"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","file":"index.js","sourcesContent":["import { ValueOf } from '../utils';\n\nexport const DocumentType = {\n STATEMENTS: 'STATEMENTS',\n PAYOUTS: 'PAYOUTS',\n SETTLEMENTS: 'SETTLEMENTS',\n TRANSACTIONS: 'TRANSACTIONS',\n TRANSACTIONS_INTERNAL: 'TRANSACTIONS_INTERNAL',\n REFUNDS: 'REFUNDS',\n REFUNDS_INTERNAL_GATEWAY: 'REFUNDS_INTERNAL_GATEWAY',\n\n PROFIT_FEES: 'PROFIT_FEES',\n PAYMENT_METHODS: 'PAYMENT_METHODS',\n\n VENDOR_LIST: 'VENDOR_LIST',\n VENDOR_SALES: 'VENDOR_SALES',\n EXCEPTIONS: 'EXCEPTIONS',\n\n TERMINALS: 'TERMINALS',\n REFUNDS_POS: 'REFUNDS_POS',\n REFUNDS_INTERNAL_POS: 'REFUNDS_INTERNAL_POS',\n POS_TRANSACTIONS: 'POS_TRANSACTIONS',\n\n // POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // BULK_INVOICE_CUSTOMERS: 'BULK_INVOICE_CUSTOMERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n // CUSTOMERS: 'CUSTOMERS',\n // TERMINAL: 'TERMINAL',\n // INVOICES: 'INVOICES',\n // INVOICE_HISTORY: 'INVOICE_HISTORY',\n // USERS: 'USERS',\n // UNPAID_INVOICES: 'UNPAID_INVOICES',\n\n // BULK_INVOICES_INVALID: 'BULK_INVOICES_INVALID',\n // BLACKLIST_INVALID: 'BLACKLIST_INVALID',\n // BLACKLIST: 'BLACKLIST',\n // PARTNERS: 'PARTNERS',\n} as const;\n\nexport type DocumentType = ValueOf<typeof DocumentType>;\n","import { ValueOf } from '../utils';\n\nexport const FileFormat = {\n PDF: 'pdf',\n CSV: 'csv',\n XLSX: 'xlsx',\n} as const;\n\nexport type FileFormat = ValueOf<typeof FileFormat>;\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ExceptionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantRisk!: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n cardIssuer!: string;\n\n @IsString()\n @IsNotEmpty()\n cardHolderName!: string;\n\n @IsString()\n @IsNotEmpty()\n payerIpAddress!: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n}\n\nexport class ExceptionExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ExceptionDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ExceptionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PaymentMethodDocument {\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n percentageOfTotal!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n txnCount!: number | string;\n}\n\nexport class PaymentMethodsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PaymentMethodDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PaymentMethodDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PayoutDocument {\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @IsString()\n @IsNotEmpty()\n notes!: string;\n\n @IsNotEmpty()\n createdAt!: string | Date;\n}\n\nexport class PayoutsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PayoutDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PayoutDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ProfitFeesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalProfitAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n type!: 'PROFIT' | 'FEES';\n}\n\nexport class ProfitFeesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ProfitFeesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ProfitFeesDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nexport class RefundBaseDto {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsOptional()\n refundedAt?: string | Date;\n\n @IsOptional()\n rejectedAt?: string | Date;\n\n @IsString()\n @IsOptional()\n ecomReference?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsNotEmpty()\n originalTxnId!: string;\n\n @IsNotEmpty()\n originalTxnDate!: string | Date;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n originalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n}\n\nclass RefundDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n type!: string;\n\n @IsString()\n @IsNotEmpty()\n requestedBy?: string;\n}\n\nexport class RefundsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass SettlementDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsOptional()\n bank?: string;\n\n @IsString()\n @IsOptional()\n holderName?: string;\n\n @IsString()\n @IsOptional()\n iban?: string;\n\n @IsString()\n @IsOptional()\n accountNumber?: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsNumberString()\n @IsNotEmpty()\n totalTxnCount!: number | string;\n\n @IsOptional()\n settlementDate?: string | null;\n}\n\nexport class SettlementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => SettlementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: SettlementDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass StatementDocument {\n @IsNotEmpty()\n createdAt!: Date | string;\n\n @IsString()\n @IsOptional()\n transactionId?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n invoiceId?: string;\n\n @IsString()\n @IsOptional()\n description?: string;\n\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n type!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n balanceAfter!: number | string;\n}\nexport class StatementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => StatementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: StatementDocument[];\n}\n","import { Transform } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString } from 'class-validator';\n\nclass TransactionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n id!: string;\n\n @IsNotEmpty()\n @IsString()\n ecomReference!: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n merchantName?: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsNotEmpty()\n @IsString()\n customerName!: string;\n\n @IsNotEmpty()\n @IsString()\n customerPhone!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n product!: string;\n\n @IsNotEmpty()\n @IsString()\n paymentMethod!: string;\n\n @IsNotEmpty()\n @IsString()\n status!: string;\n\n @IsString()\n @IsOptional()\n authCode?: string;\n\n @IsString()\n @IsOptional()\n terminalId?: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsOptional()\n cardNumber?: string;\n}\n\nexport class TransactionsExportDto {\n @IsArray()\n @IsNotEmpty()\n @IsDefined()\n data!: TransactionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass VendorSalesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n}\n\nclass VendorListDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @IsString()\n @IsNotEmpty()\n email!: string;\n\n @IsString()\n @IsNotEmpty()\n bank!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @IsNotEmpty()\n commission!: number | string;\n}\n\nexport class VendorSalesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorSalesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorSalesDocument[];\n}\n\nexport class VendorListExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorListDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorListDocument[];\n}\n","import { Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { RefundBaseDto } from '../transactions-ms';\n\nclass RefundPOSDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n authId!: string | null;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n}\n\nexport class RefundsPOSExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundPOSDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundPOSDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass TerminalDocument {\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n bankProfit!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n ecomProfit!: number | string;\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n}\n\nexport class TerminalsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => TerminalDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: TerminalDocument[];\n}\n","import { Transform } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString } from 'class-validator';\n\nclass TransactionPOSDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n id!: string;\n\n @IsNotEmpty()\n @IsString()\n ecomReference!: string;\n\n @IsString()\n @IsOptional()\n merchantName?: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsNotEmpty()\n authCode!: string;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsOptional()\n cardNumber?: string;\n}\n\nexport class TransactionsPOSExportDto {\n @IsArray()\n @IsNotEmpty()\n @IsDefined()\n data!: TransactionPOSDocument[];\n}\n","import { DocumentType } from '../enums';\nimport { RefundsPOSExportDto, TerminalsExportDto, TransactionsPOSExportDto } from './epos-ms';\nimport {\n ExceptionExportDto,\n PaymentMethodsExportDto,\n PayoutsExportDto,\n ProfitFeesExportDto,\n RefundsExportDto,\n SettlementsExportDto,\n StatementsExportDto,\n TransactionsExportDto,\n VendorListExportDto,\n VendorSalesExportDto,\n} from './transactions-ms';\n\nexport const DocumentPayloadMap = {\n // transactions microservice dtos\n [DocumentType.STATEMENTS]: StatementsExportDto,\n [DocumentType.PAYOUTS]: PayoutsExportDto,\n [DocumentType.SETTLEMENTS]: SettlementsExportDto,\n [DocumentType.TRANSACTIONS]: TransactionsExportDto,\n [DocumentType.TRANSACTIONS_INTERNAL]: TransactionsExportDto,\n [DocumentType.REFUNDS]: RefundsExportDto,\n [DocumentType.REFUNDS_INTERNAL_GATEWAY]: RefundsExportDto,\n [DocumentType.PROFIT_FEES]: ProfitFeesExportDto,\n [DocumentType.PAYMENT_METHODS]: PaymentMethodsExportDto,\n [DocumentType.VENDOR_LIST]: VendorListExportDto,\n [DocumentType.VENDOR_SALES]: VendorSalesExportDto,\n [DocumentType.EXCEPTIONS]: ExceptionExportDto,\n\n // pos microservice dtos\n [DocumentType.REFUNDS_POS]: RefundsPOSExportDto,\n [DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto,\n [DocumentType.POS_TRANSACTIONS]: TransactionsPOSExportDto,\n [DocumentType.TERMINALS]: TerminalsExportDto,\n\n // elinks microservice dtos\n} as const;\n","/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nimport { ClassConstructor, plainToInstance } from 'class-transformer';\nimport { ValidationError, validate } from 'class-validator';\nimport { DocumentPayloadMap } from '../dtos/dto-map';\nimport { DocumentType } from '../enums/document-type.enum';\n\n/**\n * Validation result interface\n */\nexport interface ValidationResult<T = any> {\n isValid: boolean;\n errors?: ValidationError[];\n validatedPayload?: T;\n errorMessage?: string;\n}\n\n/**\n * Document payload validator\n */\nexport class DocumentValidator {\n /**\n * Validate a document payload based on its type\n * @param type - Document type\n * @param payload - Raw payload data\n * @returns Validation result with typed payload or errors\n */\n static async validatePayload(type: DocumentType, payload: any): Promise<ValidationResult> {\n // Get the DTO class for this document type\n const DtoClass = DocumentPayloadMap[type];\n\n if (!DtoClass) {\n return {\n isValid: false,\n errorMessage: `Unknown document type: ${type}`,\n errors: [\n {\n property: 'type',\n constraints: { invalid: `Unknown document type: ${type}` },\n } as ValidationError,\n ],\n };\n }\n\n // Transform plain object to class instance\n const instance = plainToInstance(DtoClass as ClassConstructor<any>, payload);\n\n // Validate the instance\n const errors = await validate(instance, {\n whitelist: true,\n validationError: {\n target: false,\n value: true,\n },\n });\n\n if (errors.length > 0) {\n return {\n isValid: false,\n errors,\n errorMessage: 'Payload validation failed',\n };\n }\n\n return {\n isValid: true,\n validatedPayload: instance,\n };\n }\n\n /**\n * Format validation errors into human-readable messages\n * @param errors - Array of validation errors\n * @returns Formatted error messages\n */\n static formatErrors(errors: ValidationError[]): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ValidationError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((message) => {\n messages.push(`${currentPath}: ${message}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n errors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import axios from 'axios';\nimport {\n DateRangeExportDto,\n DocumentGenerationRequestDto,\n DocumentPathResponseDto,\n MerchantDetailsHeaderExportDto,\n} from '../dtos/base';\nimport { FileFormat } from '../enums';\nimport { DocumentType } from '../enums/document-type.enum';\nimport { DocumentValidator } from '../validators/document-validator';\n\n/**\n * Client for interacting with document microservice\n */\nexport class DocumentExportClient {\n client: ReturnType<typeof axios.create>;\n\n constructor(documentMsBaseUrl: string, documentMSCommunicationKey: string) {\n this.client = axios.create({\n baseURL: documentMsBaseUrl,\n // time out , 1 minute\n timeout: 1000 * 60,\n headers: {\n 'Content-Type': 'application/json',\n 'x-communication-key': documentMSCommunicationKey || '',\n },\n });\n }\n\n /**\n * Generate a document with type-safe payload\n * @param type - Document type\n * @param payload - Typed payload for the document\n * @returns Document generation response\n */\n async generateDocument(\n documentFormat: FileFormat,\n documentType: DocumentType,\n dateRange: DateRangeExportDto,\n payload: { data: object[] },\n merchantInfo: MerchantDetailsHeaderExportDto,\n presignedURL: boolean = false,\n ): Promise<DocumentPathResponseDto> {\n try {\n // Validate payload before sending if enabled\n\n const validation = await DocumentValidator.validatePayload(documentType, payload);\n\n if (!validation.isValid) {\n const messages = DocumentValidator.formatErrors(validation.errors || []);\n const firstMessage = messages[0];\n throw new Error(`Document payload validation failed: ${firstMessage}`);\n }\n\n // Construct request\n const request: DocumentGenerationRequestDto = {\n documentFormat,\n documentType,\n dateRange,\n merchantInfo,\n data: validation?.validatedPayload?.data,\n presignedURL,\n };\n\n // Send request\n const response = await this.client.post<DocumentPathResponseDto>('/v2/document-generation', request);\n\n return response.data;\n } catch (error: any) {\n // if (error instanceof AxiosError) {\n // console.log(error.response?.data);\n // }\n console.log(error.response?.data || error?.message);\n return Promise.reject(error);\n }\n }\n}\n","/**\n * Base error for document operations\n */\n/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nexport class DocumentError extends Error {\n constructor(\n message: string,\n public code: string,\n public statusCode?: number,\n public details?: any,\n ) {\n super(message);\n this.name = 'DocumentError';\n Error.captureStackTrace(this, this.constructor);\n }\n}\n\n/**\n * Error thrown when document generation fails\n */\nexport class DocumentGenerationError extends DocumentError {\n constructor(message: string, details?: any) {\n super(message, 'DOCUMENT_GENERATION_ERROR', 500, details);\n this.name = 'DocumentGenerationError';\n }\n}\n\n/**\n * Error thrown when network request fails\n */\nexport class DocumentNetworkError extends DocumentError {\n constructor(message: string, statusCode?: number, details?: any) {\n super(message, 'NETWORK_ERROR', statusCode, details);\n this.name = 'DocumentNetworkError';\n }\n}\n","import { ValidationError as ClassValidatorError } from 'class-validator';\nimport { DocumentError } from './document-error';\n\n/**\n * Error thrown when payload validation fails\n */\nexport class DocumentValidationError extends DocumentError {\n constructor(\n message: string,\n public validationErrors: ClassValidatorError[],\n ) {\n super(message, 'VALIDATION_ERROR', 400, { validationErrors });\n this.name = 'DocumentValidationError';\n }\n\n /**\n * Get formatted validation error messages\n */\n getMessages(): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ClassValidatorError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((msg) => {\n messages.push(`${currentPath}: ${msg}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n this.validationErrors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import { IsNotEmpty } from 'class-validator';\n\nexport class DateRangeExportDto {\n @IsNotEmpty()\n from!: string | Date;\n\n @IsNotEmpty()\n to!: string | Date;\n}\n","export interface PageOptionsDto {\n page?: number;\n limit?: number;\n skip: number;\n take?: number;\n order?: 'ASC' | 'DESC';\n}\n\n/**\n * Configuration for chunked data fetching\n */\nexport interface ChunkedFetchConfig<T> {\n /**\n * The query function that accepts PageOptionsDto and returns [data, total]\n */\n queryFn: (pageOptions: PageOptionsDto) => Promise<[T[], number]>;\n\n /**\n * Original pagination options (will be overridden for chunking)\n */\n pageOptions: PageOptionsDto;\n\n /**\n * Maximum records per chunk (default: 200)\n */\n chunkSize?: number;\n}\n\n/**\n * Use this if you want to process records as they're fetched\n * const transactions = await fetchDBQueryInChunks({\n * queryFn: (pageOptions) => this.repository.findAndCount(pageOptions, filters, mid),\n * pageOptions: pageOptionsDto,\n * chunkSize: 200,\n * });\n */\nconst MAX_EXPORT_RECORDS = 5000;\nexport async function fetchDBQueryInChunks<T>(config: ChunkedFetchConfig<T>): Promise<T[]> {\n const { queryFn, pageOptions, chunkSize = 200 } = config;\n\n // First fetch to get total count\n const firstPageOptions: PageOptionsDto = {\n ...pageOptions,\n take: chunkSize,\n skip: 0,\n };\n\n const [firstRecords, totalRecords] = await queryFn(firstPageOptions);\n\n // If all data fits in first chunk, return immediately\n if (firstRecords.length >= totalRecords || firstRecords.length < chunkSize) {\n return firstRecords;\n }\n\n // Pre-allocate array with exact size for better memory performance\n // This avoids dynamic array resizing and memory fragmentation\n const allRecords: T[] = new Array(totalRecords);\n\n // Copy first chunk\n for (let i = 0; i < firstRecords.length; i++) {\n allRecords[i] = firstRecords[i];\n }\n\n let currentIndex = firstRecords.length;\n let skip = chunkSize;\n\n // Fetch remaining chunks\n while (currentIndex < totalRecords) {\n const chunkPageOptions: PageOptionsDto = {\n ...pageOptions,\n take: chunkSize,\n skip,\n };\n\n const [records] = await queryFn(chunkPageOptions);\n\n // Break if no more records\n if (records.length === 0) {\n break;\n }\n\n // Copy records directly to pre-allocated positions\n for (let i = 0; i < records.length; i++) {\n allRecords[currentIndex++] = records[i];\n }\n\n // Break if we got fewer records than requested (last chunk)\n if (records.length < chunkSize) {\n break;\n }\n\n skip += chunkSize;\n\n // max 5000 records\n if (skip >= MAX_EXPORT_RECORDS) {\n break;\n }\n }\n\n // If actual records are less than total (edge case), trim array\n if (currentIndex < totalRecords) {\n allRecords.length = currentIndex;\n }\n\n return allRecords;\n}\n","export function maskAccountNumber(str: string): string {\n if (!str) return '';\n const lastFourDigits = str.slice(-4);\n const maskedPart = str.slice(0, -4).replace(/\\d/g, 'x');\n return maskedPart + lastFourDigits || '';\n}\n","import { Transform } from 'class-transformer';\nimport { IsNotEmpty, IsNumberString, IsOptional, IsString, IsUrl } from 'class-validator';\nimport { maskAccountNumber } from '../../utils';\n\nexport class MerchantDetailsHeaderExportDto {\n @IsString()\n @IsNotEmpty()\n name!: string;\n\n @IsUrl({ protocols: ['https'] })\n @IsOptional()\n profile?: string;\n\n @Transform(({ value }) => maskAccountNumber(value))\n @IsString()\n @IsNotEmpty()\n accountNumber!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n availableBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n pendingBalance!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n}\n","import { Type } from 'class-transformer';\nimport { IsEnum, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { DocumentType, FileFormat } from '../../enums';\nimport { DateRangeExportDto } from './index';\nimport { MerchantDetailsHeaderExportDto } from './merchant-headers';\n\n// biome-ignore lint/suspicious/noExplicitAny: false positive\nexport class DocumentGenerationRequestDto<T = any> {\n @IsEnum(FileFormat, { message: 'document format must be one of: pdf, csv, xlsx' })\n @IsNotEmpty()\n documentFormat!: FileFormat;\n\n @IsString()\n @IsNotEmpty()\n documentType!: DocumentType;\n\n @Type(() => MerchantDetailsHeaderExportDto)\n @ValidateNested()\n // make it optional in the validator , but not in the runtime / if it needed so pass it with null , but it must be there\n @IsOptional()\n merchantInfo?: MerchantDetailsHeaderExportDto;\n\n @Type(() => DateRangeExportDto)\n @ValidateNested()\n @IsNotEmpty()\n dateRange!: DateRangeExportDto;\n\n @IsNotEmpty()\n data!: T[];\n\n @IsNotEmpty()\n presignedURL?: boolean = false;\n}\n","export class DocumentPathResponseDto {\n name: string;\n\n path: string;\n\n s3Result: object;\n\n constructor(name: string, path: string, commandResult: object) {\n this.name = name;\n this.path = path;\n this.s3Result = commandResult;\n }\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n paidAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantReference!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsOptional()\n transactionId: string = '';\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n}\n\nclass InvoiceHistoryDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsNotEmpty()\n invoiceId!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsOptional()\n paymentMethodBrand!: string;\n}\n\nexport class InvoiceExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceDocument[];\n}\n\nexport class InvoiceHistoryExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceHistoryDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceHistoryDocument[];\n}\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -26,8 +26,11 @@ var DocumentType = {
|
|
|
26
26
|
VENDOR_LIST: "VENDOR_LIST",
|
|
27
27
|
VENDOR_SALES: "VENDOR_SALES",
|
|
28
28
|
EXCEPTIONS: "EXCEPTIONS",
|
|
29
|
+
TERMINALS: "TERMINALS",
|
|
29
30
|
REFUNDS_POS: "REFUNDS_POS",
|
|
30
|
-
REFUNDS_INTERNAL_POS: "REFUNDS_INTERNAL_POS"
|
|
31
|
+
REFUNDS_INTERNAL_POS: "REFUNDS_INTERNAL_POS",
|
|
32
|
+
POS_TRANSACTIONS: "POS_TRANSACTIONS"
|
|
33
|
+
// POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',
|
|
31
34
|
// MERCHANT_USERS: 'MERCHANT_USERS',
|
|
32
35
|
// INTERNAL_USERS: 'INTERNAL_USERS',
|
|
33
36
|
// BULK_INVOICE_CUSTOMERS: 'BULK_INVOICE_CUSTOMERS',
|
|
@@ -38,10 +41,6 @@ var DocumentType = {
|
|
|
38
41
|
// INVOICE_HISTORY: 'INVOICE_HISTORY',
|
|
39
42
|
// USERS: 'USERS',
|
|
40
43
|
// UNPAID_INVOICES: 'UNPAID_INVOICES',
|
|
41
|
-
// TERMINALS: 'TERMINALS',
|
|
42
|
-
// POS_TRANSACTIONS: 'POS_TRANSACTIONS',
|
|
43
|
-
// POS_MERCHANT_TRANSACTIONS: 'POS_MERCHANT_TRANSACTIONS',
|
|
44
|
-
// POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',
|
|
45
44
|
// BULK_INVOICES_INVALID: 'BULK_INVOICES_INVALID',
|
|
46
45
|
// BLACKLIST_INVALID: 'BLACKLIST_INVALID',
|
|
47
46
|
// BLACKLIST: 'BLACKLIST',
|
|
@@ -347,28 +346,6 @@ __decorateClass([
|
|
|
347
346
|
IsString(),
|
|
348
347
|
IsNotEmpty()
|
|
349
348
|
], RefundDocument.prototype, "requestedBy");
|
|
350
|
-
var RefundPOSDocument = class extends RefundBaseDto {
|
|
351
|
-
authId;
|
|
352
|
-
terminalId;
|
|
353
|
-
terminalName;
|
|
354
|
-
cardNumber;
|
|
355
|
-
};
|
|
356
|
-
__decorateClass([
|
|
357
|
-
IsString(),
|
|
358
|
-
IsNotEmpty()
|
|
359
|
-
], RefundPOSDocument.prototype, "authId");
|
|
360
|
-
__decorateClass([
|
|
361
|
-
IsString(),
|
|
362
|
-
IsNotEmpty()
|
|
363
|
-
], RefundPOSDocument.prototype, "terminalId");
|
|
364
|
-
__decorateClass([
|
|
365
|
-
IsString(),
|
|
366
|
-
IsOptional()
|
|
367
|
-
], RefundPOSDocument.prototype, "terminalName");
|
|
368
|
-
__decorateClass([
|
|
369
|
-
IsString(),
|
|
370
|
-
IsNotEmpty()
|
|
371
|
-
], RefundPOSDocument.prototype, "cardNumber");
|
|
372
349
|
var RefundsExportDto = class {
|
|
373
350
|
data;
|
|
374
351
|
};
|
|
@@ -379,16 +356,6 @@ __decorateClass([
|
|
|
379
356
|
IsNotEmpty(),
|
|
380
357
|
IsDefined()
|
|
381
358
|
], RefundsExportDto.prototype, "data");
|
|
382
|
-
var RefundsPOSExportDto = class {
|
|
383
|
-
data;
|
|
384
|
-
};
|
|
385
|
-
__decorateClass([
|
|
386
|
-
IsArray(),
|
|
387
|
-
ValidateNested({ each: true }),
|
|
388
|
-
Type(() => RefundPOSDocument),
|
|
389
|
-
IsNotEmpty(),
|
|
390
|
-
IsDefined()
|
|
391
|
-
], RefundsPOSExportDto.prototype, "data");
|
|
392
359
|
var SettlementDocument = class {
|
|
393
360
|
mid;
|
|
394
361
|
merchantName;
|
|
@@ -669,6 +636,143 @@ __decorateClass([
|
|
|
669
636
|
IsDefined()
|
|
670
637
|
], VendorListExportDto.prototype, "data");
|
|
671
638
|
|
|
639
|
+
// src/dtos/epos-ms/refund-pos-document.request.dto.ts
|
|
640
|
+
var RefundPOSDocument = class extends RefundBaseDto {
|
|
641
|
+
authId;
|
|
642
|
+
terminalId;
|
|
643
|
+
terminalName;
|
|
644
|
+
cardNumber;
|
|
645
|
+
};
|
|
646
|
+
__decorateClass([
|
|
647
|
+
IsString(),
|
|
648
|
+
IsNotEmpty()
|
|
649
|
+
], RefundPOSDocument.prototype, "authId");
|
|
650
|
+
__decorateClass([
|
|
651
|
+
IsString(),
|
|
652
|
+
IsNotEmpty()
|
|
653
|
+
], RefundPOSDocument.prototype, "terminalId");
|
|
654
|
+
__decorateClass([
|
|
655
|
+
IsString(),
|
|
656
|
+
IsOptional()
|
|
657
|
+
], RefundPOSDocument.prototype, "terminalName");
|
|
658
|
+
__decorateClass([
|
|
659
|
+
IsString(),
|
|
660
|
+
IsNotEmpty()
|
|
661
|
+
], RefundPOSDocument.prototype, "cardNumber");
|
|
662
|
+
var RefundsPOSExportDto = class {
|
|
663
|
+
data;
|
|
664
|
+
};
|
|
665
|
+
__decorateClass([
|
|
666
|
+
IsArray(),
|
|
667
|
+
ValidateNested({ each: true }),
|
|
668
|
+
Type(() => RefundPOSDocument),
|
|
669
|
+
IsNotEmpty(),
|
|
670
|
+
IsDefined()
|
|
671
|
+
], RefundsPOSExportDto.prototype, "data");
|
|
672
|
+
var TerminalDocument = class {
|
|
673
|
+
id;
|
|
674
|
+
mid;
|
|
675
|
+
merchantName;
|
|
676
|
+
bankProfit;
|
|
677
|
+
ecomProfit;
|
|
678
|
+
status;
|
|
679
|
+
};
|
|
680
|
+
__decorateClass([
|
|
681
|
+
IsString(),
|
|
682
|
+
IsNotEmpty()
|
|
683
|
+
], TerminalDocument.prototype, "id");
|
|
684
|
+
__decorateClass([
|
|
685
|
+
IsString(),
|
|
686
|
+
IsNotEmpty()
|
|
687
|
+
], TerminalDocument.prototype, "mid");
|
|
688
|
+
__decorateClass([
|
|
689
|
+
IsString(),
|
|
690
|
+
IsNotEmpty()
|
|
691
|
+
], TerminalDocument.prototype, "merchantName");
|
|
692
|
+
__decorateClass([
|
|
693
|
+
Transform(({ value }) => Number(value).toFixed(3)),
|
|
694
|
+
IsNumberString(),
|
|
695
|
+
IsNotEmpty()
|
|
696
|
+
], TerminalDocument.prototype, "bankProfit");
|
|
697
|
+
__decorateClass([
|
|
698
|
+
Transform(({ value }) => Number(value).toFixed(3)),
|
|
699
|
+
IsNumberString(),
|
|
700
|
+
IsNotEmpty()
|
|
701
|
+
], TerminalDocument.prototype, "ecomProfit");
|
|
702
|
+
__decorateClass([
|
|
703
|
+
IsString(),
|
|
704
|
+
IsNotEmpty()
|
|
705
|
+
], TerminalDocument.prototype, "status");
|
|
706
|
+
var TerminalsExportDto = class {
|
|
707
|
+
data;
|
|
708
|
+
};
|
|
709
|
+
__decorateClass([
|
|
710
|
+
IsArray(),
|
|
711
|
+
ValidateNested({ each: true }),
|
|
712
|
+
Type(() => TerminalDocument),
|
|
713
|
+
IsNotEmpty(),
|
|
714
|
+
IsDefined()
|
|
715
|
+
], TerminalsExportDto.prototype, "data");
|
|
716
|
+
var TransactionPOSDocument = class {
|
|
717
|
+
createdAt;
|
|
718
|
+
id;
|
|
719
|
+
ecomReference;
|
|
720
|
+
merchantName;
|
|
721
|
+
amount;
|
|
722
|
+
paymentMethod;
|
|
723
|
+
authCode;
|
|
724
|
+
terminalId;
|
|
725
|
+
terminalName;
|
|
726
|
+
cardNumber;
|
|
727
|
+
};
|
|
728
|
+
__decorateClass([
|
|
729
|
+
IsNotEmpty()
|
|
730
|
+
], TransactionPOSDocument.prototype, "createdAt");
|
|
731
|
+
__decorateClass([
|
|
732
|
+
IsNotEmpty()
|
|
733
|
+
], TransactionPOSDocument.prototype, "id");
|
|
734
|
+
__decorateClass([
|
|
735
|
+
IsNotEmpty(),
|
|
736
|
+
IsString()
|
|
737
|
+
], TransactionPOSDocument.prototype, "ecomReference");
|
|
738
|
+
__decorateClass([
|
|
739
|
+
IsString(),
|
|
740
|
+
IsOptional()
|
|
741
|
+
], TransactionPOSDocument.prototype, "merchantName");
|
|
742
|
+
__decorateClass([
|
|
743
|
+
Transform(({ value }) => Number(value).toFixed(3)),
|
|
744
|
+
IsNumberString(),
|
|
745
|
+
IsNotEmpty()
|
|
746
|
+
], TransactionPOSDocument.prototype, "amount");
|
|
747
|
+
__decorateClass([
|
|
748
|
+
IsString(),
|
|
749
|
+
IsNotEmpty()
|
|
750
|
+
], TransactionPOSDocument.prototype, "paymentMethod");
|
|
751
|
+
__decorateClass([
|
|
752
|
+
IsString(),
|
|
753
|
+
IsNotEmpty()
|
|
754
|
+
], TransactionPOSDocument.prototype, "authCode");
|
|
755
|
+
__decorateClass([
|
|
756
|
+
IsString(),
|
|
757
|
+
IsNotEmpty()
|
|
758
|
+
], TransactionPOSDocument.prototype, "terminalId");
|
|
759
|
+
__decorateClass([
|
|
760
|
+
IsString(),
|
|
761
|
+
IsOptional()
|
|
762
|
+
], TransactionPOSDocument.prototype, "terminalName");
|
|
763
|
+
__decorateClass([
|
|
764
|
+
IsString(),
|
|
765
|
+
IsOptional()
|
|
766
|
+
], TransactionPOSDocument.prototype, "cardNumber");
|
|
767
|
+
var TransactionsPOSExportDto = class {
|
|
768
|
+
data;
|
|
769
|
+
};
|
|
770
|
+
__decorateClass([
|
|
771
|
+
IsArray(),
|
|
772
|
+
IsNotEmpty(),
|
|
773
|
+
IsDefined()
|
|
774
|
+
], TransactionsPOSExportDto.prototype, "data");
|
|
775
|
+
|
|
672
776
|
// src/dtos/dto-map.ts
|
|
673
777
|
var DocumentPayloadMap = {
|
|
674
778
|
// transactions microservice dtos
|
|
@@ -686,7 +790,9 @@ var DocumentPayloadMap = {
|
|
|
686
790
|
[DocumentType.EXCEPTIONS]: ExceptionExportDto,
|
|
687
791
|
// pos microservice dtos
|
|
688
792
|
[DocumentType.REFUNDS_POS]: RefundsPOSExportDto,
|
|
689
|
-
[DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto
|
|
793
|
+
[DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto,
|
|
794
|
+
[DocumentType.POS_TRANSACTIONS]: TransactionsPOSExportDto,
|
|
795
|
+
[DocumentType.TERMINALS]: TerminalsExportDto
|
|
690
796
|
// elinks microservice dtos
|
|
691
797
|
};
|
|
692
798
|
|
|
@@ -761,6 +867,8 @@ var DocumentExportClient = class {
|
|
|
761
867
|
constructor(documentMsBaseUrl, documentMSCommunicationKey) {
|
|
762
868
|
this.client = axios.create({
|
|
763
869
|
baseURL: documentMsBaseUrl,
|
|
870
|
+
// time out , 1 minute
|
|
871
|
+
timeout: 1e3 * 60,
|
|
764
872
|
headers: {
|
|
765
873
|
"Content-Type": "application/json",
|
|
766
874
|
"x-communication-key": documentMSCommunicationKey || ""
|
|
@@ -1110,6 +1218,6 @@ __decorateClass([
|
|
|
1110
1218
|
IsDefined()
|
|
1111
1219
|
], InvoiceHistoryExportDto.prototype, "data");
|
|
1112
1220
|
|
|
1113
|
-
export { DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceExportDto, InvoiceHistoryExportDto, MerchantDetailsHeaderExportDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TransactionsExportDto, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
|
|
1221
|
+
export { DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceExportDto, InvoiceHistoryExportDto, MerchantDetailsHeaderExportDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundBaseDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TerminalsExportDto, TransactionsExportDto, TransactionsPOSExportDto, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
|
|
1114
1222
|
//# sourceMappingURL=index.mjs.map
|
|
1115
1223
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/enums/document-type.enum.ts","../src/enums/fileFormat.enum.ts","../src/dtos/transactions-ms/exceptions-document.request.dto.ts","../src/dtos/transactions-ms/payment-method.request.dto.ts","../src/dtos/transactions-ms/payout-document.request.dto.ts","../src/dtos/transactions-ms/profit-fees-document.request.dto.ts","../src/dtos/transactions-ms/refund-document.request.dto.ts","../src/dtos/transactions-ms/settlement-document.request.dto.ts","../src/dtos/transactions-ms/statement-document.request.dto.ts","../src/dtos/transactions-ms/transaction-document-template.request.dto.ts","../src/dtos/transactions-ms/vendor-sales-document.request.dto.ts","../src/dtos/dto-map.ts","../src/validators/document-validator.ts","../src/client/document-client.ts","../src/client/errors/document-error.ts","../src/client/errors/validation-error.ts","../src/dtos/base/date-range.ts","../src/utils/chunked-fetcher.util.ts","../src/utils/mask-account-number.ts","../src/dtos/base/merchant-headers.ts","../src/dtos/base/document-generation.request.dto.ts","../src/dtos/base/document-path.response.dto.ts","../src/dtos/elinks-ms/invoice-document.request.dto.ts"],"names":["IsString","IsNotEmpty","Transform","IsNumberString","IsArray","ValidateNested","Type","IsDefined","IsOptional"],"mappings":"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","file":"index.mjs","sourcesContent":["import { ValueOf } from '../utils';\n\nexport const DocumentType = {\n STATEMENTS: 'STATEMENTS',\n PAYOUTS: 'PAYOUTS',\n SETTLEMENTS: 'SETTLEMENTS',\n TRANSACTIONS: 'TRANSACTIONS',\n TRANSACTIONS_INTERNAL: 'TRANSACTIONS_INTERNAL',\n REFUNDS: 'REFUNDS',\n REFUNDS_INTERNAL_GATEWAY: 'REFUNDS_INTERNAL_GATEWAY',\n\n PROFIT_FEES: 'PROFIT_FEES',\n PAYMENT_METHODS: 'PAYMENT_METHODS',\n\n VENDOR_LIST: 'VENDOR_LIST',\n VENDOR_SALES: 'VENDOR_SALES',\n EXCEPTIONS: 'EXCEPTIONS',\n\n REFUNDS_POS: 'REFUNDS_POS',\n REFUNDS_INTERNAL_POS: 'REFUNDS_INTERNAL_POS',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // BULK_INVOICE_CUSTOMERS: 'BULK_INVOICE_CUSTOMERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n // CUSTOMERS: 'CUSTOMERS',\n // TERMINAL: 'TERMINAL',\n // INVOICES: 'INVOICES',\n // INVOICE_HISTORY: 'INVOICE_HISTORY',\n // USERS: 'USERS',\n // UNPAID_INVOICES: 'UNPAID_INVOICES',\n\n // TERMINALS: 'TERMINALS',\n // POS_TRANSACTIONS: 'POS_TRANSACTIONS',\n // POS_MERCHANT_TRANSACTIONS: 'POS_MERCHANT_TRANSACTIONS',\n // POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',\n // BULK_INVOICES_INVALID: 'BULK_INVOICES_INVALID',\n // BLACKLIST_INVALID: 'BLACKLIST_INVALID',\n // BLACKLIST: 'BLACKLIST',\n // PARTNERS: 'PARTNERS',\n} as const;\n\nexport type DocumentType = ValueOf<typeof DocumentType>;\n","import { ValueOf } from '../utils';\n\nexport const FileFormat = {\n PDF: 'pdf',\n CSV: 'csv',\n XLSX: 'xlsx',\n} as const;\n\nexport type FileFormat = ValueOf<typeof FileFormat>;\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ExceptionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantRisk!: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n cardIssuer!: string;\n\n @IsString()\n @IsNotEmpty()\n cardHolderName!: string;\n\n @IsString()\n @IsNotEmpty()\n payerIpAddress!: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n}\n\nexport class ExceptionExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ExceptionDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ExceptionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PaymentMethodDocument {\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n percentageOfTotal!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n txnCount!: number | string;\n}\n\nexport class PaymentMethodsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PaymentMethodDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PaymentMethodDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PayoutDocument {\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @IsString()\n @IsNotEmpty()\n notes!: string;\n\n @IsNotEmpty()\n createdAt!: string | Date;\n}\n\nexport class PayoutsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PayoutDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PayoutDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ProfitFeesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalProfitAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n type!: 'PROFIT' | 'FEES';\n}\n\nexport class ProfitFeesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ProfitFeesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ProfitFeesDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass RefundBaseDto {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsOptional()\n refundedAt?: string | Date;\n\n @IsOptional()\n rejectedAt?: string | Date;\n\n @IsString()\n @IsOptional()\n ecomReference?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsNotEmpty()\n originalTxnId!: string;\n\n @IsNotEmpty()\n originalTxnDate!: string | Date;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n originalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n}\n\nclass RefundDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n type!: string;\n\n @IsString()\n @IsNotEmpty()\n requestedBy?: string;\n}\n\nclass RefundPOSDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n authId!: string | null;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n}\n\nexport class RefundsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundDocument[];\n}\n\nexport class RefundsPOSExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundPOSDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundPOSDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass SettlementDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsOptional()\n bank?: string;\n\n @IsString()\n @IsOptional()\n holderName?: string;\n\n @IsString()\n @IsOptional()\n iban?: string;\n\n @IsString()\n @IsOptional()\n accountNumber?: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsNumberString()\n @IsNotEmpty()\n totalTxnCount!: number | string;\n\n @IsOptional()\n settlementDate?: string | null;\n}\n\nexport class SettlementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => SettlementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: SettlementDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass StatementDocument {\n @IsNotEmpty()\n createdAt!: Date | string;\n\n @IsString()\n @IsOptional()\n transactionId?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n invoiceId?: string;\n\n @IsString()\n @IsOptional()\n description?: string;\n\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n type!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n balanceAfter!: number | string;\n}\nexport class StatementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => StatementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: StatementDocument[];\n}\n","import { Transform } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString } from 'class-validator';\n\nclass TransactionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n id!: string;\n\n @IsNotEmpty()\n @IsString()\n ecomReference!: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n merchantName?: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsNotEmpty()\n @IsString()\n customerName!: string;\n\n @IsNotEmpty()\n @IsString()\n customerPhone!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n product!: string;\n\n @IsNotEmpty()\n @IsString()\n paymentMethod!: string;\n\n @IsNotEmpty()\n @IsString()\n status!: string;\n\n @IsString()\n @IsOptional()\n authCode?: string;\n\n @IsString()\n @IsOptional()\n terminalId?: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsOptional()\n cardNumber?: string;\n}\n\nexport class TransactionsExportDto {\n @IsArray()\n @IsNotEmpty()\n @IsDefined()\n data!: TransactionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass VendorSalesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n}\n\nclass VendorListDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @IsString()\n @IsNotEmpty()\n email!: string;\n\n @IsString()\n @IsNotEmpty()\n bank!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @IsNotEmpty()\n commission!: number | string;\n}\n\nexport class VendorSalesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorSalesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorSalesDocument[];\n}\n\nexport class VendorListExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorListDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorListDocument[];\n}\n","import { DocumentType } from '../enums';\nimport {\n ExceptionExportDto,\n PaymentMethodsExportDto,\n PayoutsExportDto,\n ProfitFeesExportDto,\n RefundsExportDto,\n RefundsPOSExportDto,\n SettlementsExportDto,\n StatementsExportDto,\n TransactionsExportDto,\n VendorListExportDto,\n VendorSalesExportDto,\n} from './transactions-ms';\n\nexport const DocumentPayloadMap = {\n // transactions microservice dtos\n [DocumentType.STATEMENTS]: StatementsExportDto,\n [DocumentType.PAYOUTS]: PayoutsExportDto,\n [DocumentType.SETTLEMENTS]: SettlementsExportDto,\n [DocumentType.TRANSACTIONS]: TransactionsExportDto,\n [DocumentType.TRANSACTIONS_INTERNAL]: TransactionsExportDto,\n [DocumentType.REFUNDS]: RefundsExportDto,\n [DocumentType.REFUNDS_INTERNAL_GATEWAY]: RefundsExportDto,\n [DocumentType.PROFIT_FEES]: ProfitFeesExportDto,\n [DocumentType.PAYMENT_METHODS]: PaymentMethodsExportDto,\n [DocumentType.VENDOR_LIST]: VendorListExportDto,\n [DocumentType.VENDOR_SALES]: VendorSalesExportDto,\n [DocumentType.EXCEPTIONS]: ExceptionExportDto,\n\n // pos microservice dtos\n [DocumentType.REFUNDS_POS]: RefundsPOSExportDto,\n [DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto,\n\n // elinks microservice dtos\n} as const;\n","/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nimport { ClassConstructor, plainToInstance } from 'class-transformer';\nimport { ValidationError, validate } from 'class-validator';\nimport { DocumentPayloadMap } from '../dtos/dto-map';\nimport { DocumentType } from '../enums/document-type.enum';\n\n/**\n * Validation result interface\n */\nexport interface ValidationResult<T = any> {\n isValid: boolean;\n errors?: ValidationError[];\n validatedPayload?: T;\n errorMessage?: string;\n}\n\n/**\n * Document payload validator\n */\nexport class DocumentValidator {\n /**\n * Validate a document payload based on its type\n * @param type - Document type\n * @param payload - Raw payload data\n * @returns Validation result with typed payload or errors\n */\n static async validatePayload(type: DocumentType, payload: any): Promise<ValidationResult> {\n // Get the DTO class for this document type\n const DtoClass = DocumentPayloadMap[type];\n\n if (!DtoClass) {\n return {\n isValid: false,\n errorMessage: `Unknown document type: ${type}`,\n errors: [\n {\n property: 'type',\n constraints: { invalid: `Unknown document type: ${type}` },\n } as ValidationError,\n ],\n };\n }\n\n // Transform plain object to class instance\n const instance = plainToInstance(DtoClass as ClassConstructor<any>, payload);\n\n // Validate the instance\n const errors = await validate(instance, {\n whitelist: true,\n validationError: {\n target: false,\n value: true,\n },\n });\n\n if (errors.length > 0) {\n return {\n isValid: false,\n errors,\n errorMessage: 'Payload validation failed',\n };\n }\n\n return {\n isValid: true,\n validatedPayload: instance,\n };\n }\n\n /**\n * Format validation errors into human-readable messages\n * @param errors - Array of validation errors\n * @returns Formatted error messages\n */\n static formatErrors(errors: ValidationError[]): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ValidationError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((message) => {\n messages.push(`${currentPath}: ${message}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n errors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import axios from 'axios';\nimport {\n DateRangeExportDto,\n DocumentGenerationRequestDto,\n DocumentPathResponseDto,\n MerchantDetailsHeaderExportDto,\n} from '../dtos/base';\nimport { FileFormat } from '../enums';\nimport { DocumentType } from '../enums/document-type.enum';\nimport { DocumentValidator } from '../validators/document-validator';\n\n/**\n * Client for interacting with document microservice\n */\nexport class DocumentExportClient {\n client: ReturnType<typeof axios.create>;\n\n constructor(documentMsBaseUrl: string, documentMSCommunicationKey: string) {\n this.client = axios.create({\n baseURL: documentMsBaseUrl,\n headers: {\n 'Content-Type': 'application/json',\n 'x-communication-key': documentMSCommunicationKey || '',\n },\n });\n }\n\n /**\n * Generate a document with type-safe payload\n * @param type - Document type\n * @param payload - Typed payload for the document\n * @returns Document generation response\n */\n async generateDocument(\n documentFormat: FileFormat,\n documentType: DocumentType,\n dateRange: DateRangeExportDto,\n payload: { data: object[] },\n merchantInfo: MerchantDetailsHeaderExportDto,\n presignedURL: boolean = false,\n ): Promise<DocumentPathResponseDto> {\n try {\n // Validate payload before sending if enabled\n\n const validation = await DocumentValidator.validatePayload(documentType, payload);\n\n if (!validation.isValid) {\n const messages = DocumentValidator.formatErrors(validation.errors || []);\n const firstMessage = messages[0];\n throw new Error(`Document payload validation failed: ${firstMessage}`);\n }\n\n // Construct request\n const request: DocumentGenerationRequestDto = {\n documentFormat,\n documentType,\n dateRange,\n merchantInfo,\n data: validation?.validatedPayload?.data,\n presignedURL,\n };\n\n // Send request\n const response = await this.client.post<DocumentPathResponseDto>('/v2/document-generation', request);\n\n return response.data;\n } catch (error: any) {\n // if (error instanceof AxiosError) {\n // console.log(error.response?.data);\n // }\n console.log(error.response?.data || error?.message);\n return Promise.reject(error);\n }\n }\n}\n","/**\n * Base error for document operations\n */\n/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nexport class DocumentError extends Error {\n constructor(\n message: string,\n public code: string,\n public statusCode?: number,\n public details?: any,\n ) {\n super(message);\n this.name = 'DocumentError';\n Error.captureStackTrace(this, this.constructor);\n }\n}\n\n/**\n * Error thrown when document generation fails\n */\nexport class DocumentGenerationError extends DocumentError {\n constructor(message: string, details?: any) {\n super(message, 'DOCUMENT_GENERATION_ERROR', 500, details);\n this.name = 'DocumentGenerationError';\n }\n}\n\n/**\n * Error thrown when network request fails\n */\nexport class DocumentNetworkError extends DocumentError {\n constructor(message: string, statusCode?: number, details?: any) {\n super(message, 'NETWORK_ERROR', statusCode, details);\n this.name = 'DocumentNetworkError';\n }\n}\n","import { ValidationError as ClassValidatorError } from 'class-validator';\nimport { DocumentError } from './document-error';\n\n/**\n * Error thrown when payload validation fails\n */\nexport class DocumentValidationError extends DocumentError {\n constructor(\n message: string,\n public validationErrors: ClassValidatorError[],\n ) {\n super(message, 'VALIDATION_ERROR', 400, { validationErrors });\n this.name = 'DocumentValidationError';\n }\n\n /**\n * Get formatted validation error messages\n */\n getMessages(): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ClassValidatorError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((msg) => {\n messages.push(`${currentPath}: ${msg}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n this.validationErrors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import { IsNotEmpty } from 'class-validator';\n\nexport class DateRangeExportDto {\n @IsNotEmpty()\n from!: string | Date;\n\n @IsNotEmpty()\n to!: string | Date;\n}\n","export interface PageOptionsDto {\n page?: number;\n limit?: number;\n skip: number;\n take?: number;\n order?: 'ASC' | 'DESC';\n}\n\n/**\n * Configuration for chunked data fetching\n */\nexport interface ChunkedFetchConfig<T> {\n /**\n * The query function that accepts PageOptionsDto and returns [data, total]\n */\n queryFn: (pageOptions: PageOptionsDto) => Promise<[T[], number]>;\n\n /**\n * Original pagination options (will be overridden for chunking)\n */\n pageOptions: PageOptionsDto;\n\n /**\n * Maximum records per chunk (default: 200)\n */\n chunkSize?: number;\n}\n\n/**\n * Use this if you want to process records as they're fetched\n * const transactions = await fetchDBQueryInChunks({\n * queryFn: (pageOptions) => this.repository.findAndCount(pageOptions, filters, mid),\n * pageOptions: pageOptionsDto,\n * chunkSize: 200,\n * });\n */\nconst MAX_EXPORT_RECORDS = 5000;\nexport async function fetchDBQueryInChunks<T>(config: ChunkedFetchConfig<T>): Promise<T[]> {\n const { queryFn, pageOptions, chunkSize = 200 } = config;\n\n // First fetch to get total count\n const firstPageOptions: PageOptionsDto = {\n ...pageOptions,\n take: chunkSize,\n skip: 0,\n };\n\n const [firstRecords, totalRecords] = await queryFn(firstPageOptions);\n\n // If all data fits in first chunk, return immediately\n if (firstRecords.length >= totalRecords || firstRecords.length < chunkSize) {\n return firstRecords;\n }\n\n // Pre-allocate array with exact size for better memory performance\n // This avoids dynamic array resizing and memory fragmentation\n const allRecords: T[] = new Array(totalRecords);\n\n // Copy first chunk\n for (let i = 0; i < firstRecords.length; i++) {\n allRecords[i] = firstRecords[i];\n }\n\n let currentIndex = firstRecords.length;\n let skip = chunkSize;\n\n // Fetch remaining chunks\n while (currentIndex < totalRecords) {\n const chunkPageOptions: PageOptionsDto = {\n ...pageOptions,\n take: chunkSize,\n skip,\n };\n\n const [records] = await queryFn(chunkPageOptions);\n\n // Break if no more records\n if (records.length === 0) {\n break;\n }\n\n // Copy records directly to pre-allocated positions\n for (let i = 0; i < records.length; i++) {\n allRecords[currentIndex++] = records[i];\n }\n\n // Break if we got fewer records than requested (last chunk)\n if (records.length < chunkSize) {\n break;\n }\n\n skip += chunkSize;\n\n // max 5000 records\n if (skip >= MAX_EXPORT_RECORDS) {\n break;\n }\n }\n\n // If actual records are less than total (edge case), trim array\n if (currentIndex < totalRecords) {\n allRecords.length = currentIndex;\n }\n\n return allRecords;\n}\n","export function maskAccountNumber(str: string): string {\n if (!str) return '';\n const lastFourDigits = str.slice(-4);\n const maskedPart = str.slice(0, -4).replace(/\\d/g, 'x');\n return maskedPart + lastFourDigits || '';\n}\n","import { Transform } from 'class-transformer';\nimport { IsNotEmpty, IsNumberString, IsOptional, IsString, IsUrl } from 'class-validator';\nimport { maskAccountNumber } from '../../utils';\n\nexport class MerchantDetailsHeaderExportDto {\n @IsString()\n @IsNotEmpty()\n name!: string;\n\n @IsUrl({ protocols: ['https'] })\n @IsOptional()\n profile?: string;\n\n @Transform(({ value }) => maskAccountNumber(value))\n @IsString()\n @IsNotEmpty()\n accountNumber!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n availableBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n pendingBalance!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n}\n","import { Type } from 'class-transformer';\nimport { IsEnum, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { DocumentType, FileFormat } from '../../enums';\nimport { DateRangeExportDto } from './index';\nimport { MerchantDetailsHeaderExportDto } from './merchant-headers';\n\n// biome-ignore lint/suspicious/noExplicitAny: false positive\nexport class DocumentGenerationRequestDto<T = any> {\n @IsEnum(FileFormat, { message: 'document format must be one of: pdf, csv, xlsx' })\n @IsNotEmpty()\n documentFormat!: FileFormat;\n\n @IsString()\n @IsNotEmpty()\n documentType!: DocumentType;\n\n @Type(() => MerchantDetailsHeaderExportDto)\n @ValidateNested()\n // make it optional in the validator , but not in the runtime / if it needed so pass it with null , but it must be there\n @IsOptional()\n merchantInfo?: MerchantDetailsHeaderExportDto;\n\n @Type(() => DateRangeExportDto)\n @ValidateNested()\n @IsNotEmpty()\n dateRange!: DateRangeExportDto;\n\n @IsNotEmpty()\n data!: T[];\n\n @IsNotEmpty()\n presignedURL?: boolean = false;\n}\n","export class DocumentPathResponseDto {\n name: string;\n\n path: string;\n\n s3Result: object;\n\n constructor(name: string, path: string, commandResult: object) {\n this.name = name;\n this.path = path;\n this.s3Result = commandResult;\n }\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n paidAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantReference!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsOptional()\n transactionId: string = '';\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n}\n\nclass InvoiceHistoryDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsNotEmpty()\n invoiceId!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsOptional()\n paymentMethodBrand!: string;\n}\n\nexport class InvoiceExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceDocument[];\n}\n\nexport class InvoiceHistoryExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceHistoryDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceHistoryDocument[];\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/enums/document-type.enum.ts","../src/enums/fileFormat.enum.ts","../src/dtos/transactions-ms/exceptions-document.request.dto.ts","../src/dtos/transactions-ms/payment-method.request.dto.ts","../src/dtos/transactions-ms/payout-document.request.dto.ts","../src/dtos/transactions-ms/profit-fees-document.request.dto.ts","../src/dtos/transactions-ms/refund-document.request.dto.ts","../src/dtos/transactions-ms/settlement-document.request.dto.ts","../src/dtos/transactions-ms/statement-document.request.dto.ts","../src/dtos/transactions-ms/transaction-document-template.request.dto.ts","../src/dtos/transactions-ms/vendor-sales-document.request.dto.ts","../src/dtos/epos-ms/refund-pos-document.request.dto.ts","../src/dtos/epos-ms/terminal-document.request.dto.ts","../src/dtos/epos-ms/transaction-pos-document.request.dto.ts","../src/dtos/dto-map.ts","../src/validators/document-validator.ts","../src/client/document-client.ts","../src/client/errors/document-error.ts","../src/client/errors/validation-error.ts","../src/dtos/base/date-range.ts","../src/utils/chunked-fetcher.util.ts","../src/utils/mask-account-number.ts","../src/dtos/base/merchant-headers.ts","../src/dtos/base/document-generation.request.dto.ts","../src/dtos/base/document-path.response.dto.ts","../src/dtos/elinks-ms/invoice-document.request.dto.ts"],"names":["IsString","IsNotEmpty","Transform","IsNumberString","IsArray","ValidateNested","Type","IsDefined","IsOptional"],"mappings":";;;;;;;;;;;;;;;AAEO,IAAM,YAAA,GAAe;AAAA,EAC1B,UAAA,EAAY,YAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,WAAA,EAAa,aAAA;AAAA,EACb,YAAA,EAAc,cAAA;AAAA,EACd,qBAAA,EAAuB,uBAAA;AAAA,EACvB,OAAA,EAAS,SAAA;AAAA,EACT,wBAAA,EAA0B,0BAAA;AAAA,EAE1B,WAAA,EAAa,aAAA;AAAA,EACb,eAAA,EAAiB,iBAAA;AAAA,EAEjB,WAAA,EAAa,aAAA;AAAA,EACb,YAAA,EAAc,cAAA;AAAA,EACd,UAAA,EAAY,YAAA;AAAA,EAEZ,SAAA,EAAW,WAAA;AAAA,EACX,WAAA,EAAa,aAAA;AAAA,EACb,oBAAA,EAAsB,sBAAA;AAAA,EACtB,gBAAA,EAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBpB;;;ACtCO,IAAM,UAAA,GAAa;AAAA,EACxB,GAAA,EAAK,KAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM;AACR;ACHA,IAAM,oBAAN,MAAwB;AAAA,EAEtB,SAAA;AAAA,EAIA,YAAA;AAAA,EAIA,YAAA;AAAA,EAIA,UAAA;AAAA,EAIA,UAAA;AAAA,EAIA,cAAA;AAAA,EAIA,cAAA;AAAA,EAIA,OAAA;AAAA,EAIA,aAAA;AAAA,EAKA,MAAA;AAAA,EAIA,MAAA;AACF,CAAA;AA1CE,eAAA,CAAA;AAAA,EADC,UAAA;AAAW,CAAA,EADR,iBAAA,CAEJ,SAAA,EAAA,WAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFC,QAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EALR,iBAAA,CAMJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFC,QAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EATR,iBAAA,CAUJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFC,QAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EAbR,iBAAA,CAcJ,SAAA,EAAA,YAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFC,QAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EAjBR,iBAAA,CAkBJ,SAAA,EAAA,YAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFC,QAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EArBR,iBAAA,CAsBJ,SAAA,EAAA,gBAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFC,QAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EAzBR,iBAAA,CA0BJ,SAAA,EAAA,gBAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFC,QAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EA7BR,iBAAA,CA8BJ,SAAA,EAAA,SAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFC,QAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EAjCR,iBAAA,CAkCJ,SAAA,EAAA,eAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHC,SAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjD,cAAA,EAAe;AAAA,EACf,UAAA;AAAW,CAAA,EAtCR,iBAAA,CAuCJ,SAAA,EAAA,QAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFC,QAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EA1CR,iBAAA,CA2CJ,SAAA,EAAA,QAAA,CAAA;AAGK,IAAM,qBAAN,MAAyB;AAAA,EAM9B,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALC,OAAA,EAAQ;AAAA,EACR,cAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7B,IAAA,CAAK,MAAM,iBAAiB,CAAA;AAAA,EAC5B,UAAA,EAAW;AAAA,EACX,SAAA;AAAU,CAAA,EALA,kBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;ACpDF,IAAM,wBAAN,MAA4B;AAAA,EAG1B,aAAA;AAAA,EAKA,WAAA;AAAA,EAIA,iBAAA;AAAA,EAIA,QAAA;AACF,CAAA;AAdE,eAAA,CAAA;AAAA,EAFCA,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAFR,qBAAA,CAGJ,SAAA,EAAA,eAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAPR,qBAAA,CAQJ,SAAA,EAAA,aAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAXR,qBAAA,CAYJ,SAAA,EAAA,mBAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCE,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAfR,qBAAA,CAgBJ,SAAA,EAAA,UAAA,CAAA;AAGK,IAAM,0BAAN,MAA8B;AAAA,EAMnC,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCG,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,qBAAqB,CAAA;AAAA,EAChCL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,uBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;ACzBF,IAAM,iBAAN,MAAqB;AAAA,EAGnB,EAAA;AAAA,EAIA,GAAA;AAAA,EAIA,IAAA;AAAA,EAKA,MAAA;AAAA,EAIA,QAAA;AAAA,EAIA,QAAA;AAAA,EAIA,KAAA;AAAA,EAGA,SAAA;AACF,CAAA;AA7BE,eAAA,CAAA;AAAA,EAFCP,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAFR,cAAA,CAGJ,SAAA,EAAA,IAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EANR,cAAA,CAOJ,SAAA,EAAA,KAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAVR,cAAA,CAWJ,SAAA,EAAA,MAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAfR,cAAA,CAgBJ,SAAA,EAAA,QAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAnBR,cAAA,CAoBJ,SAAA,EAAA,UAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCE,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAvBR,cAAA,CAwBJ,SAAA,EAAA,UAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EA3BR,cAAA,CA4BJ,SAAA,EAAA,OAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EA9BR,cAAA,CA+BJ,SAAA,EAAA,WAAA,CAAA;AAGK,IAAM,mBAAN,MAAuB;AAAA,EAM5B,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCG,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,cAAc,CAAA;AAAA,EACzBL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,gBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;ACxCF,IAAM,qBAAN,MAAyB;AAAA,EAGvB,GAAA;AAAA,EAIA,YAAA;AAAA,EAIA,QAAA;AAAA,EAKA,cAAA;AAAA,EAKA,iBAAA;AAAA,EAIA,IAAA;AACF,CAAA;AAvBE,eAAA,CAAA;AAAA,EAFCP,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAFR,kBAAA,CAGJ,SAAA,EAAA,KAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EANR,kBAAA,CAOJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCE,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAVR,kBAAA,CAWJ,SAAA,EAAA,UAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAfR,kBAAA,CAgBJ,SAAA,EAAA,gBAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EApBR,kBAAA,CAqBJ,SAAA,EAAA,mBAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAxBR,kBAAA,CAyBJ,SAAA,EAAA,MAAA,CAAA;AAGK,IAAM,sBAAN,MAA0B;AAAA,EAM/B,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCG,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,kBAAkB,CAAA;AAAA,EAC7BL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,mBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;AClCK,IAAM,gBAAN,MAAoB;AAAA,EAEzB,SAAA;AAAA,EAGA,UAAA;AAAA,EAGA,UAAA;AAAA,EAIA,aAAA;AAAA,EAIA,iBAAA;AAAA,EAIA,aAAA;AAAA,EAGA,eAAA;AAAA,EAKA,iBAAA;AAAA,EAKA,MAAA;AAAA,EAIA,aAAA;AAAA,EAIA,MAAA;AAAA,EAIA,GAAA;AAAA,EAIA,YAAA;AACF;AAhDE,eAAA,CAAA;AAAA,EADCN,UAAAA;AAAW,CAAA,EADD,aAAA,CAEX,SAAA,EAAA,WAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADC,UAAA;AAAW,CAAA,EAJD,aAAA,CAKX,SAAA,EAAA,YAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADC,UAAA;AAAW,CAAA,EAPD,aAAA,CAQX,SAAA,EAAA,YAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EAXD,aAAA,CAYX,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCA,QAAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EAfD,aAAA,CAgBX,SAAA,EAAA,mBAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCA,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAnBD,aAAA,CAoBX,SAAA,EAAA,eAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EAtBD,aAAA,CAuBX,SAAA,EAAA,iBAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EA3BD,aAAA,CA4BX,SAAA,EAAA,mBAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAhCD,aAAA,CAiCX,SAAA,EAAA,QAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EApCD,aAAA,CAqCX,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAxCD,aAAA,CAyCX,SAAA,EAAA,QAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EA5CD,aAAA,CA6CX,SAAA,EAAA,KAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAhDD,aAAA,CAiDX,SAAA,EAAA,cAAA,CAAA;AAGF,IAAM,cAAA,GAAN,cAA6B,aAAA,CAAc;AAAA,EAGzC,YAAA;AAAA,EAIA,aAAA;AAAA,EAIA,aAAA;AAAA,EAIA,OAAA;AAAA,EAIA,IAAA;AAAA,EAIA,WAAA;AACF,CAAA;AArBE,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAFR,cAAA,CAGJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EANR,cAAA,CAOJ,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACT,UAAA;AAAW,CAAA,EAVR,cAAA,CAWJ,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCA,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAdR,cAAA,CAeJ,SAAA,EAAA,SAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAlBR,cAAA,CAmBJ,SAAA,EAAA,MAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAtBR,cAAA,CAuBJ,SAAA,EAAA,aAAA,CAAA;AAGK,IAAM,mBAAN,MAAuB;AAAA,EAM5B,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCG,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,cAAc,CAAA;AAAA,EACzBL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,gBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;ACpFF,IAAM,qBAAN,MAAyB;AAAA,EAGvB,GAAA;AAAA,EAIA,YAAA;AAAA,EAGA,IAAA;AAAA,EAIA,UAAA;AAAA,EAIA,IAAA;AAAA,EAIA,aAAA;AAAA,EAKA,WAAA;AAAA,EAIA,aAAA;AAAA,EAGA,cAAA;AACF,CAAA;AAhCE,eAAA,CAAA;AAAA,EAFCP,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAFR,kBAAA,CAGJ,SAAA,EAAA,KAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EANR,kBAAA,CAOJ,SAAA,EAAA,cAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCO,UAAAA;AAAW,CAAA,EATR,kBAAA,CAUJ,SAAA,EAAA,MAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EAbR,kBAAA,CAcJ,SAAA,EAAA,YAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EAjBR,kBAAA,CAkBJ,SAAA,EAAA,MAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EArBR,kBAAA,CAsBJ,SAAA,EAAA,eAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCN,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EA1BR,kBAAA,CA2BJ,SAAA,EAAA,aAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCE,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EA9BR,kBAAA,CA+BJ,SAAA,EAAA,eAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCO,UAAAA;AAAW,CAAA,EAjCR,kBAAA,CAkCJ,SAAA,EAAA,gBAAA,CAAA;AAGK,IAAM,uBAAN,MAA2B;AAAA,EAMhC,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCJ,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,kBAAkB,CAAA;AAAA,EAC7BL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,oBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;AC3CF,IAAM,oBAAN,MAAwB;AAAA,EAEtB,SAAA;AAAA,EAIA,aAAA;AAAA,EAIA,iBAAA;AAAA,EAIA,SAAA;AAAA,EAIA,WAAA;AAAA,EAGA,aAAA;AAAA,EAKA,MAAA;AAAA,EAGA,IAAA;AAAA,EAKA,YAAA;AACF,CAAA;AAjCE,eAAA,CAAA;AAAA,EADCN,UAAAA;AAAW,CAAA,EADR,iBAAA,CAEJ,SAAA,EAAA,WAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EALR,iBAAA,CAMJ,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EATR,iBAAA,CAUJ,SAAA,EAAA,mBAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EAbR,iBAAA,CAcJ,SAAA,EAAA,WAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EAjBR,iBAAA,CAkBJ,SAAA,EAAA,aAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCP,UAAAA;AAAW,CAAA,EApBR,iBAAA,CAqBJ,SAAA,EAAA,eAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAzBR,iBAAA,CA0BJ,SAAA,EAAA,QAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EA5BR,iBAAA,CA6BJ,SAAA,EAAA,MAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAjCR,iBAAA,CAkCJ,SAAA,EAAA,cAAA,CAAA;AAEK,IAAM,sBAAN,MAA0B;AAAA,EAM/B,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCG,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,iBAAiB,CAAA;AAAA,EAC5BL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,mBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;AC1CF,IAAM,sBAAN,MAA0B;AAAA,EAExB,SAAA;AAAA,EAGA,EAAA;AAAA,EAIA,aAAA;AAAA,EAIA,iBAAA;AAAA,EAIA,YAAA;AAAA,EAIA,aAAA;AAAA,EAIA,YAAA;AAAA,EAIA,aAAA;AAAA,EAKA,MAAA;AAAA,EAGA,OAAA;AAAA,EAIA,aAAA;AAAA,EAIA,MAAA;AAAA,EAIA,QAAA;AAAA,EAIA,UAAA;AAAA,EAIA,YAAA;AAAA,EAIA,UAAA;AACF,CAAA;AA5DE,eAAA,CAAA;AAAA,EADCN,UAAAA;AAAW,CAAA,EADR,mBAAA,CAEJ,SAAA,EAAA,WAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EAJR,mBAAA,CAKJ,SAAA,EAAA,IAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCA,UAAAA,EAAW;AAAA,EACXD,QAAAA;AAAS,CAAA,EARN,mBAAA,CASJ,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCA,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EAZR,mBAAA,CAaJ,SAAA,EAAA,mBAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EAhBR,mBAAA,CAiBJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EApBR,mBAAA,CAqBJ,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCP,UAAAA,EAAW;AAAA,EACXD,QAAAA;AAAS,CAAA,EAxBN,mBAAA,CAyBJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCC,UAAAA,EAAW;AAAA,EACXD,QAAAA;AAAS,CAAA,EA5BN,mBAAA,CA6BJ,SAAA,EAAA,eAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCE,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAjCR,mBAAA,CAkCJ,SAAA,EAAA,QAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EApCR,mBAAA,CAqCJ,SAAA,EAAA,SAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCA,UAAAA,EAAW;AAAA,EACXD,QAAAA;AAAS,CAAA,EAxCN,mBAAA,CAyCJ,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCC,UAAAA,EAAW;AAAA,EACXD,QAAAA;AAAS,CAAA,EA5CN,mBAAA,CA6CJ,SAAA,EAAA,QAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCA,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EAhDR,mBAAA,CAiDJ,SAAA,EAAA,UAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EApDR,mBAAA,CAqDJ,SAAA,EAAA,YAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EAxDR,mBAAA,CAyDJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EA5DR,mBAAA,CA6DJ,SAAA,EAAA,YAAA,CAAA;AAGK,IAAM,wBAAN,MAA4B;AAAA,EAIjC,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EAHCJ,OAAAA,EAAQ;AAAA,EACRH,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EAHA,qBAAA,CAIX,SAAA,EAAA,MAAA,CAAA;ACpEF,IAAM,sBAAN,MAA0B;AAAA,EAGxB,GAAA;AAAA,EAIA,YAAA;AAAA,EAIA,UAAA;AAAA,EAKA,cAAA;AACF,CAAA;AAdE,eAAA,CAAA;AAAA,EAFCP,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAFR,mBAAA,CAGJ,SAAA,EAAA,KAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EANR,mBAAA,CAOJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAVR,mBAAA,CAWJ,SAAA,EAAA,YAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAfR,mBAAA,CAgBJ,SAAA,EAAA,gBAAA,CAAA;AAGF,IAAM,qBAAN,MAAyB;AAAA,EAGvB,GAAA;AAAA,EAIA,YAAA;AAAA,EAIA,UAAA;AAAA,EAIA,KAAA;AAAA,EAIA,IAAA;AAAA,EAIA,IAAA;AAAA,EAGA,UAAA;AACF,CAAA;AAxBE,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAFR,kBAAA,CAGJ,SAAA,EAAA,KAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EANR,kBAAA,CAOJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAVR,kBAAA,CAWJ,SAAA,EAAA,YAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAdR,kBAAA,CAeJ,SAAA,EAAA,OAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAlBR,kBAAA,CAmBJ,SAAA,EAAA,MAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAtBR,kBAAA,CAuBJ,SAAA,EAAA,MAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EAzBR,kBAAA,CA0BJ,SAAA,EAAA,YAAA,CAAA;AAGK,IAAM,uBAAN,MAA2B;AAAA,EAMhC,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCG,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,mBAAmB,CAAA;AAAA,EAC9BL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,oBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;AAGK,IAAM,sBAAN,MAA0B;AAAA,EAM/B,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCH,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,kBAAkB,CAAA;AAAA,EAC7BL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,mBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;;;AC9DF,IAAM,iBAAA,GAAN,cAAgC,aAAA,CAAc;AAAA,EAG5C,MAAA;AAAA,EAIA,UAAA;AAAA,EAIA,YAAA;AAAA,EAIA,UAAA;AACF,CAAA;AAbE,eAAA,CAAA;AAAA,EAFCP,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAFR,iBAAA,CAGJ,SAAA,EAAA,QAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EANR,iBAAA,CAOJ,SAAA,EAAA,YAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EAVR,iBAAA,CAWJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAdR,iBAAA,CAeJ,SAAA,EAAA,YAAA,CAAA;AAGK,IAAM,sBAAN,MAA0B;AAAA,EAM/B,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCG,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,iBAAiB,CAAA;AAAA,EAC5BL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,mBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;ACzBF,IAAM,mBAAN,MAAuB;AAAA,EAGrB,EAAA;AAAA,EAIA,GAAA;AAAA,EAIA,YAAA;AAAA,EAKA,UAAA;AAAA,EAKA,UAAA;AAAA,EAIA,MAAA;AACF,CAAA;AAvBE,eAAA,CAAA;AAAA,EAFCP,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAFR,gBAAA,CAGJ,SAAA,EAAA,IAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EANR,gBAAA,CAOJ,SAAA,EAAA,KAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAVR,gBAAA,CAWJ,SAAA,EAAA,cAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAfR,gBAAA,CAgBJ,SAAA,EAAA,YAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EApBR,gBAAA,CAqBJ,SAAA,EAAA,YAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAxBR,gBAAA,CAyBJ,SAAA,EAAA,QAAA,CAAA;AAGK,IAAM,qBAAN,MAAyB;AAAA,EAM9B,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCG,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,gBAAgB,CAAA;AAAA,EAC3BL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,kBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;AClCF,IAAM,yBAAN,MAA6B;AAAA,EAE3B,SAAA;AAAA,EAGA,EAAA;AAAA,EAIA,aAAA;AAAA,EAIA,YAAA;AAAA,EAKA,MAAA;AAAA,EAIA,aAAA;AAAA,EAIA,QAAA;AAAA,EAIA,UAAA;AAAA,EAIA,YAAA;AAAA,EAIA,UAAA;AACF,CAAA;AArCE,eAAA,CAAA;AAAA,EADCN,UAAAA;AAAW,CAAA,EADR,sBAAA,CAEJ,SAAA,EAAA,WAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EAJR,sBAAA,CAKJ,SAAA,EAAA,IAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCA,UAAAA,EAAW;AAAA,EACXD,QAAAA;AAAS,CAAA,EARN,sBAAA,CASJ,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCA,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EAZR,sBAAA,CAaJ,SAAA,EAAA,cAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCN,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAjBR,sBAAA,CAkBJ,SAAA,EAAA,QAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EArBR,sBAAA,CAsBJ,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAzBR,sBAAA,CA0BJ,SAAA,EAAA,UAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EA7BR,sBAAA,CA8BJ,SAAA,EAAA,YAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EAjCR,sBAAA,CAkCJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EArCR,sBAAA,CAsCJ,SAAA,EAAA,YAAA,CAAA;AAGK,IAAM,2BAAN,MAA+B;AAAA,EAIpC,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EAHCJ,OAAAA,EAAQ;AAAA,EACRH,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EAHA,wBAAA,CAIX,SAAA,EAAA,MAAA,CAAA;;;ACjCK,IAAM,kBAAA,GAAqB;AAAA;AAAA,EAEhC,CAAC,YAAA,CAAa,UAAU,GAAG,mBAAA;AAAA,EAC3B,CAAC,YAAA,CAAa,OAAO,GAAG,gBAAA;AAAA,EACxB,CAAC,YAAA,CAAa,WAAW,GAAG,oBAAA;AAAA,EAC5B,CAAC,YAAA,CAAa,YAAY,GAAG,qBAAA;AAAA,EAC7B,CAAC,YAAA,CAAa,qBAAqB,GAAG,qBAAA;AAAA,EACtC,CAAC,YAAA,CAAa,OAAO,GAAG,gBAAA;AAAA,EACxB,CAAC,YAAA,CAAa,wBAAwB,GAAG,gBAAA;AAAA,EACzC,CAAC,YAAA,CAAa,WAAW,GAAG,mBAAA;AAAA,EAC5B,CAAC,YAAA,CAAa,eAAe,GAAG,uBAAA;AAAA,EAChC,CAAC,YAAA,CAAa,WAAW,GAAG,mBAAA;AAAA,EAC5B,CAAC,YAAA,CAAa,YAAY,GAAG,oBAAA;AAAA,EAC7B,CAAC,YAAA,CAAa,UAAU,GAAG,kBAAA;AAAA;AAAA,EAG3B,CAAC,YAAA,CAAa,WAAW,GAAG,mBAAA;AAAA,EAC5B,CAAC,YAAA,CAAa,oBAAoB,GAAG,mBAAA;AAAA,EACrC,CAAC,YAAA,CAAa,gBAAgB,GAAG,wBAAA;AAAA,EACjC,CAAC,YAAA,CAAa,SAAS,GAAG;AAAA;AAG5B;;;AClBO,IAAM,oBAAN,MAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO7B,aAAa,eAAA,CAAgB,IAAA,EAAoB,OAAA,EAAyC;AAExF,IAAA,MAAM,QAAA,GAAW,mBAAmB,IAAI,CAAA;AAExC,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,KAAA;AAAA,QACT,YAAA,EAAc,0BAA0B,IAAI,CAAA,CAAA;AAAA,QAC5C,MAAA,EAAQ;AAAA,UACN;AAAA,YACE,QAAA,EAAU,MAAA;AAAA,YACV,WAAA,EAAa,EAAE,OAAA,EAAS,CAAA,uBAAA,EAA0B,IAAI,CAAA,CAAA;AAAG;AAC3D;AACF,OACF;AAAA,IACF;AAGA,IAAA,MAAM,QAAA,GAAW,eAAA,CAAgB,QAAA,EAAmC,OAAO,CAAA;AAG3E,IAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,QAAA,EAAU;AAAA,MACtC,SAAA,EAAW,IAAA;AAAA,MACX,eAAA,EAAiB;AAAA,QACf,MAAA,EAAQ,KAAA;AAAA,QACR,KAAA,EAAO;AAAA;AACT,KACD,CAAA;AAED,IAAA,IAAI,MAAA,CAAO,SAAS,CAAA,EAAG;AACrB,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,KAAA;AAAA,QACT,MAAA;AAAA,QACA,YAAA,EAAc;AAAA,OAChB;AAAA,IACF;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,gBAAA,EAAkB;AAAA,KACpB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,aAAa,MAAA,EAAqC;AACvD,IAAA,MAAM,WAAqB,EAAC;AAE5B,IAAA,MAAM,WAAA,GAAc,CAAC,KAAA,EAAwB,IAAA,GAAe,EAAA,KAAa;AACvE,MAAA,MAAM,WAAA,GAAc,OAAO,CAAA,EAAG,IAAI,IAAI,KAAA,CAAM,QAAQ,KAAK,KAAA,CAAM,QAAA;AAE/D,MAAA,IAAI,MAAM,WAAA,EAAa;AACrB,QAAA,MAAA,CAAO,OAAO,KAAA,CAAM,WAAW,CAAA,CAAE,OAAA,CAAQ,CAAC,OAAA,KAAY;AACpD,UAAA,QAAA,CAAS,IAAA,CAAK,CAAA,EAAG,WAAW,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAA;AAAA,QAC5C,CAAC,CAAA;AAAA,MACH;AAEA,MAAA,IAAI,KAAA,CAAM,QAAA,IAAY,KAAA,CAAM,QAAA,CAAS,SAAS,CAAA,EAAG;AAC/C,QAAA,KAAA,CAAM,SAAS,OAAA,CAAQ,CAAC,UAAU,WAAA,CAAY,KAAA,EAAO,WAAW,CAAC,CAAA;AAAA,MACnE;AAAA,IACF,CAAA;AAEA,IAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,KAAA,KAAU,WAAA,CAAY,KAAK,CAAC,CAAA;AAC5C,IAAA,OAAO,QAAA;AAAA,EACT;AACF;;;AChFO,IAAM,uBAAN,MAA2B;AAAA,EAChC,MAAA;AAAA,EAEA,WAAA,CAAY,mBAA2B,0BAAA,EAAoC;AACzE,IAAA,IAAA,CAAK,MAAA,GAAS,MAAM,MAAA,CAAO;AAAA,MACzB,OAAA,EAAS,iBAAA;AAAA;AAAA,MAET,SAAS,GAAA,GAAO,EAAA;AAAA,MAChB,OAAA,EAAS;AAAA,QACP,cAAA,EAAgB,kBAAA;AAAA,QAChB,uBAAuB,0BAAA,IAA8B;AAAA;AACvD,KACD,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,iBACJ,cAAA,EACA,YAAA,EACA,WACA,OAAA,EACA,YAAA,EACA,eAAwB,KAAA,EACU;AAClC,IAAA,IAAI;AAGF,MAAA,MAAM,UAAA,GAAa,MAAM,iBAAA,CAAkB,eAAA,CAAgB,cAAc,OAAO,CAAA;AAEhF,MAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACvB,QAAA,MAAM,WAAW,iBAAA,CAAkB,YAAA,CAAa,UAAA,CAAW,MAAA,IAAU,EAAE,CAAA;AACvE,QAAA,MAAM,YAAA,GAAe,SAAS,CAAC,CAAA;AAC/B,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oCAAA,EAAuC,YAAY,CAAA,CAAE,CAAA;AAAA,MACvE;AAGA,MAAA,MAAM,OAAA,GAAwC;AAAA,QAC5C,cAAA;AAAA,QACA,YAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA;AAAA,QACA,IAAA,EAAM,YAAY,gBAAA,EAAkB,IAAA;AAAA,QACpC;AAAA,OACF;AAGA,MAAA,MAAM,WAAW,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA,CAA8B,2BAA2B,OAAO,CAAA;AAEnG,MAAA,OAAO,QAAA,CAAS,IAAA;AAAA,IAClB,SAAS,KAAA,EAAY;AAInB,MAAA,OAAA,CAAQ,GAAA,CAAI,KAAA,CAAM,QAAA,EAAU,IAAA,IAAQ,OAAO,OAAO,CAAA;AAClD,MAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,IAC7B;AAAA,EACF;AACF;;;ACxEO,IAAM,aAAA,GAAN,cAA4B,KAAA,CAAM;AAAA,EACvC,WAAA,CACE,OAAA,EACO,IAAA,EACA,UAAA,EACA,OAAA,EACP;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAJN,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AACA,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAGP,IAAA,IAAA,CAAK,IAAA,GAAO,eAAA;AACZ,IAAA,KAAA,CAAM,iBAAA,CAAkB,IAAA,EAAM,IAAA,CAAK,WAAW,CAAA;AAAA,EAChD;AACF;AAKO,IAAM,uBAAA,GAAN,cAAsC,aAAA,CAAc;AAAA,EACzD,WAAA,CAAY,SAAiB,OAAA,EAAe;AAC1C,IAAA,KAAA,CAAM,OAAA,EAAS,2BAAA,EAA6B,GAAA,EAAK,OAAO,CAAA;AACxD,IAAA,IAAA,CAAK,IAAA,GAAO,yBAAA;AAAA,EACd;AACF;AAKO,IAAM,oBAAA,GAAN,cAAmC,aAAA,CAAc;AAAA,EACtD,WAAA,CAAY,OAAA,EAAiB,UAAA,EAAqB,OAAA,EAAe;AAC/D,IAAA,KAAA,CAAM,OAAA,EAAS,eAAA,EAAiB,UAAA,EAAY,OAAO,CAAA;AACnD,IAAA,IAAA,CAAK,IAAA,GAAO,sBAAA;AAAA,EACd;AACF;;;AC7BO,IAAM,uBAAA,GAAN,cAAsC,aAAA,CAAc;AAAA,EACzD,WAAA,CACE,SACO,gBAAA,EACP;AACA,IAAA,KAAA,CAAM,OAAA,EAAS,kBAAA,EAAoB,GAAA,EAAK,EAAE,kBAAkB,CAAA;AAFrD,IAAA,IAAA,CAAA,gBAAA,GAAA,gBAAA;AAGP,IAAA,IAAA,CAAK,IAAA,GAAO,yBAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,WAAA,GAAwB;AACtB,IAAA,MAAM,WAAqB,EAAC;AAE5B,IAAA,MAAM,WAAA,GAAc,CAAC,KAAA,EAA4B,IAAA,GAAe,EAAA,KAAa;AAC3E,MAAA,MAAM,WAAA,GAAc,OAAO,CAAA,EAAG,IAAI,IAAI,KAAA,CAAM,QAAQ,KAAK,KAAA,CAAM,QAAA;AAE/D,MAAA,IAAI,MAAM,WAAA,EAAa;AACrB,QAAA,MAAA,CAAO,OAAO,KAAA,CAAM,WAAW,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,KAAQ;AAChD,UAAA,QAAA,CAAS,IAAA,CAAK,CAAA,EAAG,WAAW,CAAA,EAAA,EAAK,GAAG,CAAA,CAAE,CAAA;AAAA,QACxC,CAAC,CAAA;AAAA,MACH;AAEA,MAAA,IAAI,KAAA,CAAM,QAAA,IAAY,KAAA,CAAM,QAAA,CAAS,SAAS,CAAA,EAAG;AAC/C,QAAA,KAAA,CAAM,SAAS,OAAA,CAAQ,CAAC,UAAU,WAAA,CAAY,KAAA,EAAO,WAAW,CAAC,CAAA;AAAA,MACnE;AAAA,IACF,CAAA;AAEA,IAAA,IAAA,CAAK,iBAAiB,OAAA,CAAQ,CAAC,KAAA,KAAU,WAAA,CAAY,KAAK,CAAC,CAAA;AAC3D,IAAA,OAAO,QAAA;AAAA,EACT;AACF;ACpCO,IAAM,qBAAN,MAAyB;AAAA,EAE9B,IAAA;AAAA,EAGA,EAAA;AACF;AAJE,eAAA,CAAA;AAAA,EADCN,UAAAA;AAAW,CAAA,EADD,kBAAA,CAEX,SAAA,EAAA,MAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EAJD,kBAAA,CAKX,SAAA,EAAA,IAAA,CAAA;;;AC6BF,IAAM,kBAAA,GAAqB,GAAA;AAC3B,eAAsB,qBAAwB,MAAA,EAA6C;AACzF,EAAA,MAAM,EAAE,OAAA,EAAS,WAAA,EAAa,SAAA,GAAY,KAAI,GAAI,MAAA;AAGlD,EAAA,MAAM,gBAAA,GAAmC;AAAA,IACvC,GAAG,WAAA;AAAA,IACH,IAAA,EAAM,SAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAEA,EAAA,MAAM,CAAC,YAAA,EAAc,YAAY,CAAA,GAAI,MAAM,QAAQ,gBAAgB,CAAA;AAGnE,EAAA,IAAI,YAAA,CAAa,MAAA,IAAU,YAAA,IAAgB,YAAA,CAAa,SAAS,SAAA,EAAW;AAC1E,IAAA,OAAO,YAAA;AAAA,EACT;AAIA,EAAA,MAAM,UAAA,GAAkB,IAAI,KAAA,CAAM,YAAY,CAAA;AAG9C,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,YAAA,CAAa,QAAQ,CAAA,EAAA,EAAK;AAC5C,IAAA,UAAA,CAAW,CAAC,CAAA,GAAI,YAAA,CAAa,CAAC,CAAA;AAAA,EAChC;AAEA,EAAA,IAAI,eAAe,YAAA,CAAa,MAAA;AAChC,EAAA,IAAI,IAAA,GAAO,SAAA;AAGX,EAAA,OAAO,eAAe,YAAA,EAAc;AAClC,IAAA,MAAM,gBAAA,GAAmC;AAAA,MACvC,GAAG,WAAA;AAAA,MACH,IAAA,EAAM,SAAA;AAAA,MACN;AAAA,KACF;AAEA,IAAA,MAAM,CAAC,OAAO,CAAA,GAAI,MAAM,QAAQ,gBAAgB,CAAA;AAGhD,IAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,MAAA;AAAA,IACF;AAGA,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACvC,MAAA,UAAA,CAAW,YAAA,EAAc,CAAA,GAAI,OAAA,CAAQ,CAAC,CAAA;AAAA,IACxC;AAGA,IAAA,IAAI,OAAA,CAAQ,SAAS,SAAA,EAAW;AAC9B,MAAA;AAAA,IACF;AAEA,IAAA,IAAA,IAAQ,SAAA;AAGR,IAAA,IAAI,QAAQ,kBAAA,EAAoB;AAC9B,MAAA;AAAA,IACF;AAAA,EACF;AAGA,EAAA,IAAI,eAAe,YAAA,EAAc;AAC/B,IAAA,UAAA,CAAW,MAAA,GAAS,YAAA;AAAA,EACtB;AAEA,EAAA,OAAO,UAAA;AACT;;;ACzGO,SAAS,kBAAkB,GAAA,EAAqB;AACrD,EAAA,IAAI,CAAC,KAAK,OAAO,EAAA;AACjB,EAAA,MAAM,cAAA,GAAiB,GAAA,CAAI,KAAA,CAAM,EAAE,CAAA;AACnC,EAAA,MAAM,UAAA,GAAa,IAAI,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,CAAE,OAAA,CAAQ,OAAO,GAAG,CAAA;AACtD,EAAA,OAAO,aAAa,cAAA,IAAkB,EAAA;AACxC;;;ACDO,IAAM,iCAAN,MAAqC;AAAA,EAG1C,IAAA;AAAA,EAIA,OAAA;AAAA,EAKA,aAAA;AAAA,EAKA,YAAA;AAAA,EAKA,gBAAA;AAAA,EAKA,cAAA;AAAA,EAIA,QAAA;AACF;AA7BE,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAFD,8BAAA,CAGX,SAAA,EAAA,MAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFC,MAAM,EAAE,SAAA,EAAW,CAAC,OAAO,GAAG,CAAA;AAAA,EAC9BO,UAAAA;AAAW,CAAA,EAND,8BAAA,CAOX,SAAA,EAAA,SAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCN,UAAU,CAAC,EAAE,OAAM,KAAM,iBAAA,CAAkB,KAAK,CAAC,CAAA;AAAA,EACjDF,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAXD,8BAAA,CAYX,SAAA,EAAA,eAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EAhBD,8BAAA,CAiBX,SAAA,EAAA,cAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EArBD,8BAAA,CAsBX,SAAA,EAAA,kBAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EA1BD,8BAAA,CA2BX,SAAA,EAAA,gBAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EA9BD,8BAAA,CA+BX,SAAA,EAAA,UAAA,CAAA;;;AC5BK,IAAM,+BAAN,MAA4C;AAAA,EAGjD,cAAA;AAAA,EAIA,YAAA;AAAA,EAMA,YAAA;AAAA,EAKA,SAAA;AAAA,EAGA,IAAA;AAAA,EAGA,YAAA,GAAyB,KAAA;AAC3B;AAtBE,eAAA,CAAA;AAAA,EAFC,MAAA,CAAO,UAAA,EAAY,EAAE,OAAA,EAAS,kDAAkD,CAAA;AAAA,EAChFA,UAAAA;AAAW,CAAA,EAFD,4BAAA,CAGX,SAAA,EAAA,gBAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAND,4BAAA,CAOX,SAAA,EAAA,cAAA,CAAA;AAMA,eAAA,CAAA;AAAA,EAJCK,IAAAA,CAAK,MAAM,8BAA8B,CAAA;AAAA,EACzCD,cAAAA,EAAe;AAAA,EAEfG,UAAAA;AAAW,CAAA,EAZD,4BAAA,CAaX,SAAA,EAAA,cAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCF,IAAAA,CAAK,MAAM,kBAAkB,CAAA;AAAA,EAC7BD,cAAAA,EAAe;AAAA,EACfJ,UAAAA;AAAW,CAAA,EAjBD,4BAAA,CAkBX,SAAA,EAAA,WAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EApBD,4BAAA,CAqBX,SAAA,EAAA,MAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EAvBD,4BAAA,CAwBX,SAAA,EAAA,cAAA,CAAA;;;AC/BK,IAAM,0BAAN,MAA8B;AAAA,EACnC,IAAA;AAAA,EAEA,IAAA;AAAA,EAEA,QAAA;AAAA,EAEA,WAAA,CAAY,IAAA,EAAc,IAAA,EAAc,aAAA,EAAuB;AAC7D,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,QAAA,GAAW,aAAA;AAAA,EAClB;AACF;ACTA,IAAM,kBAAN,MAAsB;AAAA,EAEpB,SAAA;AAAA,EAGA,MAAA;AAAA,EAIA,YAAA;AAAA,EAIA,aAAA;AAAA,EAIA,EAAA;AAAA,EAIA,iBAAA;AAAA,EAIA,SAAA;AAAA,EAIA,aAAA,GAAwB,EAAA;AAAA,EAIxB,MAAA;AAAA,EAKA,MAAA;AAAA,EAIA,aAAA;AACF,CAAA;AAzCE,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EADR,eAAA,CAEJ,SAAA,EAAA,WAAA,CAAA;AAGA,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EAJR,eAAA,CAKJ,SAAA,EAAA,QAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EARR,eAAA,CASJ,SAAA,EAAA,cAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAZR,eAAA,CAaJ,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAhBR,eAAA,CAiBJ,SAAA,EAAA,IAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EApBR,eAAA,CAqBJ,SAAA,EAAA,mBAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAxBR,eAAA,CAyBJ,SAAA,EAAA,WAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EA5BR,eAAA,CA6BJ,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCR,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAhCR,eAAA,CAiCJ,SAAA,EAAA,QAAA,CAAA;AAKA,eAAA,CAAA;AAAA,EAHCC,SAAAA,CAAU,CAAC,EAAE,KAAA,EAAM,KAAM,OAAO,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,EACjDC,cAAAA,EAAe;AAAA,EACfF,UAAAA;AAAW,CAAA,EArCR,eAAA,CAsCJ,SAAA,EAAA,QAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAzCR,eAAA,CA0CJ,SAAA,EAAA,eAAA,CAAA;AAGF,IAAM,yBAAN,MAA6B;AAAA,EAE3B,SAAA;AAAA,EAIA,MAAA;AAAA,EAIA,SAAA;AAAA,EAIA,SAAA;AAAA,EAIA,aAAA;AAAA,EAIA,kBAAA;AACF,CAAA;AArBE,eAAA,CAAA;AAAA,EADCA,UAAAA;AAAW,CAAA,EADR,sBAAA,CAEJ,SAAA,EAAA,WAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EALR,sBAAA,CAMJ,SAAA,EAAA,QAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EATR,sBAAA,CAUJ,SAAA,EAAA,WAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAbR,sBAAA,CAcJ,SAAA,EAAA,WAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTC,UAAAA;AAAW,CAAA,EAjBR,sBAAA,CAkBJ,SAAA,EAAA,eAAA,CAAA;AAIA,eAAA,CAAA;AAAA,EAFCD,QAAAA,EAAS;AAAA,EACTQ,UAAAA;AAAW,CAAA,EArBR,sBAAA,CAsBJ,SAAA,EAAA,oBAAA,CAAA;AAGK,IAAM,mBAAN,MAAuB;AAAA,EAM5B,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCJ,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,eAAe,CAAA;AAAA,EAC1BL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,gBAAA,CAMX,SAAA,EAAA,MAAA,CAAA;AAGK,IAAM,0BAAN,MAA8B;AAAA,EAMnC,IAAA;AACF;AADE,eAAA,CAAA;AAAA,EALCH,OAAAA,EAAQ;AAAA,EACRC,cAAAA,CAAe,EAAE,IAAA,EAAM,IAAA,EAAM,CAAA;AAAA,EAC7BC,IAAAA,CAAK,MAAM,sBAAsB,CAAA;AAAA,EACjCL,UAAAA,EAAW;AAAA,EACXM,SAAAA;AAAU,CAAA,EALA,uBAAA,CAMX,SAAA,EAAA,MAAA,CAAA","file":"index.mjs","sourcesContent":["import { ValueOf } from '../utils';\n\nexport const DocumentType = {\n STATEMENTS: 'STATEMENTS',\n PAYOUTS: 'PAYOUTS',\n SETTLEMENTS: 'SETTLEMENTS',\n TRANSACTIONS: 'TRANSACTIONS',\n TRANSACTIONS_INTERNAL: 'TRANSACTIONS_INTERNAL',\n REFUNDS: 'REFUNDS',\n REFUNDS_INTERNAL_GATEWAY: 'REFUNDS_INTERNAL_GATEWAY',\n\n PROFIT_FEES: 'PROFIT_FEES',\n PAYMENT_METHODS: 'PAYMENT_METHODS',\n\n VENDOR_LIST: 'VENDOR_LIST',\n VENDOR_SALES: 'VENDOR_SALES',\n EXCEPTIONS: 'EXCEPTIONS',\n\n TERMINALS: 'TERMINALS',\n REFUNDS_POS: 'REFUNDS_POS',\n REFUNDS_INTERNAL_POS: 'REFUNDS_INTERNAL_POS',\n POS_TRANSACTIONS: 'POS_TRANSACTIONS',\n\n // POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // BULK_INVOICE_CUSTOMERS: 'BULK_INVOICE_CUSTOMERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n // CUSTOMERS: 'CUSTOMERS',\n // TERMINAL: 'TERMINAL',\n // INVOICES: 'INVOICES',\n // INVOICE_HISTORY: 'INVOICE_HISTORY',\n // USERS: 'USERS',\n // UNPAID_INVOICES: 'UNPAID_INVOICES',\n\n // BULK_INVOICES_INVALID: 'BULK_INVOICES_INVALID',\n // BLACKLIST_INVALID: 'BLACKLIST_INVALID',\n // BLACKLIST: 'BLACKLIST',\n // PARTNERS: 'PARTNERS',\n} as const;\n\nexport type DocumentType = ValueOf<typeof DocumentType>;\n","import { ValueOf } from '../utils';\n\nexport const FileFormat = {\n PDF: 'pdf',\n CSV: 'csv',\n XLSX: 'xlsx',\n} as const;\n\nexport type FileFormat = ValueOf<typeof FileFormat>;\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ExceptionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantRisk!: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n cardIssuer!: string;\n\n @IsString()\n @IsNotEmpty()\n cardHolderName!: string;\n\n @IsString()\n @IsNotEmpty()\n payerIpAddress!: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n}\n\nexport class ExceptionExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ExceptionDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ExceptionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PaymentMethodDocument {\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n percentageOfTotal!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n txnCount!: number | string;\n}\n\nexport class PaymentMethodsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PaymentMethodDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PaymentMethodDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PayoutDocument {\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @IsString()\n @IsNotEmpty()\n notes!: string;\n\n @IsNotEmpty()\n createdAt!: string | Date;\n}\n\nexport class PayoutsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PayoutDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PayoutDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ProfitFeesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalProfitAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n type!: 'PROFIT' | 'FEES';\n}\n\nexport class ProfitFeesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ProfitFeesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ProfitFeesDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nexport class RefundBaseDto {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsOptional()\n refundedAt?: string | Date;\n\n @IsOptional()\n rejectedAt?: string | Date;\n\n @IsString()\n @IsOptional()\n ecomReference?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsNotEmpty()\n originalTxnId!: string;\n\n @IsNotEmpty()\n originalTxnDate!: string | Date;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n originalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n}\n\nclass RefundDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n type!: string;\n\n @IsString()\n @IsNotEmpty()\n requestedBy?: string;\n}\n\nexport class RefundsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass SettlementDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsOptional()\n bank?: string;\n\n @IsString()\n @IsOptional()\n holderName?: string;\n\n @IsString()\n @IsOptional()\n iban?: string;\n\n @IsString()\n @IsOptional()\n accountNumber?: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsNumberString()\n @IsNotEmpty()\n totalTxnCount!: number | string;\n\n @IsOptional()\n settlementDate?: string | null;\n}\n\nexport class SettlementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => SettlementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: SettlementDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass StatementDocument {\n @IsNotEmpty()\n createdAt!: Date | string;\n\n @IsString()\n @IsOptional()\n transactionId?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n invoiceId?: string;\n\n @IsString()\n @IsOptional()\n description?: string;\n\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n type!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n balanceAfter!: number | string;\n}\nexport class StatementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => StatementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: StatementDocument[];\n}\n","import { Transform } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString } from 'class-validator';\n\nclass TransactionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n id!: string;\n\n @IsNotEmpty()\n @IsString()\n ecomReference!: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n merchantName?: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsNotEmpty()\n @IsString()\n customerName!: string;\n\n @IsNotEmpty()\n @IsString()\n customerPhone!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n product!: string;\n\n @IsNotEmpty()\n @IsString()\n paymentMethod!: string;\n\n @IsNotEmpty()\n @IsString()\n status!: string;\n\n @IsString()\n @IsOptional()\n authCode?: string;\n\n @IsString()\n @IsOptional()\n terminalId?: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsOptional()\n cardNumber?: string;\n}\n\nexport class TransactionsExportDto {\n @IsArray()\n @IsNotEmpty()\n @IsDefined()\n data!: TransactionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass VendorSalesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n}\n\nclass VendorListDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @IsString()\n @IsNotEmpty()\n email!: string;\n\n @IsString()\n @IsNotEmpty()\n bank!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @IsNotEmpty()\n commission!: number | string;\n}\n\nexport class VendorSalesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorSalesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorSalesDocument[];\n}\n\nexport class VendorListExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorListDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorListDocument[];\n}\n","import { Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { RefundBaseDto } from '../transactions-ms';\n\nclass RefundPOSDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n authId!: string | null;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n}\n\nexport class RefundsPOSExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundPOSDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundPOSDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass TerminalDocument {\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n bankProfit!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n ecomProfit!: number | string;\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n}\n\nexport class TerminalsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => TerminalDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: TerminalDocument[];\n}\n","import { Transform } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString } from 'class-validator';\n\nclass TransactionPOSDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n id!: string;\n\n @IsNotEmpty()\n @IsString()\n ecomReference!: string;\n\n @IsString()\n @IsOptional()\n merchantName?: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsNotEmpty()\n authCode!: string;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsOptional()\n cardNumber?: string;\n}\n\nexport class TransactionsPOSExportDto {\n @IsArray()\n @IsNotEmpty()\n @IsDefined()\n data!: TransactionPOSDocument[];\n}\n","import { DocumentType } from '../enums';\nimport { RefundsPOSExportDto, TerminalsExportDto, TransactionsPOSExportDto } from './epos-ms';\nimport {\n ExceptionExportDto,\n PaymentMethodsExportDto,\n PayoutsExportDto,\n ProfitFeesExportDto,\n RefundsExportDto,\n SettlementsExportDto,\n StatementsExportDto,\n TransactionsExportDto,\n VendorListExportDto,\n VendorSalesExportDto,\n} from './transactions-ms';\n\nexport const DocumentPayloadMap = {\n // transactions microservice dtos\n [DocumentType.STATEMENTS]: StatementsExportDto,\n [DocumentType.PAYOUTS]: PayoutsExportDto,\n [DocumentType.SETTLEMENTS]: SettlementsExportDto,\n [DocumentType.TRANSACTIONS]: TransactionsExportDto,\n [DocumentType.TRANSACTIONS_INTERNAL]: TransactionsExportDto,\n [DocumentType.REFUNDS]: RefundsExportDto,\n [DocumentType.REFUNDS_INTERNAL_GATEWAY]: RefundsExportDto,\n [DocumentType.PROFIT_FEES]: ProfitFeesExportDto,\n [DocumentType.PAYMENT_METHODS]: PaymentMethodsExportDto,\n [DocumentType.VENDOR_LIST]: VendorListExportDto,\n [DocumentType.VENDOR_SALES]: VendorSalesExportDto,\n [DocumentType.EXCEPTIONS]: ExceptionExportDto,\n\n // pos microservice dtos\n [DocumentType.REFUNDS_POS]: RefundsPOSExportDto,\n [DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto,\n [DocumentType.POS_TRANSACTIONS]: TransactionsPOSExportDto,\n [DocumentType.TERMINALS]: TerminalsExportDto,\n\n // elinks microservice dtos\n} as const;\n","/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nimport { ClassConstructor, plainToInstance } from 'class-transformer';\nimport { ValidationError, validate } from 'class-validator';\nimport { DocumentPayloadMap } from '../dtos/dto-map';\nimport { DocumentType } from '../enums/document-type.enum';\n\n/**\n * Validation result interface\n */\nexport interface ValidationResult<T = any> {\n isValid: boolean;\n errors?: ValidationError[];\n validatedPayload?: T;\n errorMessage?: string;\n}\n\n/**\n * Document payload validator\n */\nexport class DocumentValidator {\n /**\n * Validate a document payload based on its type\n * @param type - Document type\n * @param payload - Raw payload data\n * @returns Validation result with typed payload or errors\n */\n static async validatePayload(type: DocumentType, payload: any): Promise<ValidationResult> {\n // Get the DTO class for this document type\n const DtoClass = DocumentPayloadMap[type];\n\n if (!DtoClass) {\n return {\n isValid: false,\n errorMessage: `Unknown document type: ${type}`,\n errors: [\n {\n property: 'type',\n constraints: { invalid: `Unknown document type: ${type}` },\n } as ValidationError,\n ],\n };\n }\n\n // Transform plain object to class instance\n const instance = plainToInstance(DtoClass as ClassConstructor<any>, payload);\n\n // Validate the instance\n const errors = await validate(instance, {\n whitelist: true,\n validationError: {\n target: false,\n value: true,\n },\n });\n\n if (errors.length > 0) {\n return {\n isValid: false,\n errors,\n errorMessage: 'Payload validation failed',\n };\n }\n\n return {\n isValid: true,\n validatedPayload: instance,\n };\n }\n\n /**\n * Format validation errors into human-readable messages\n * @param errors - Array of validation errors\n * @returns Formatted error messages\n */\n static formatErrors(errors: ValidationError[]): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ValidationError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((message) => {\n messages.push(`${currentPath}: ${message}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n errors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import axios from 'axios';\nimport {\n DateRangeExportDto,\n DocumentGenerationRequestDto,\n DocumentPathResponseDto,\n MerchantDetailsHeaderExportDto,\n} from '../dtos/base';\nimport { FileFormat } from '../enums';\nimport { DocumentType } from '../enums/document-type.enum';\nimport { DocumentValidator } from '../validators/document-validator';\n\n/**\n * Client for interacting with document microservice\n */\nexport class DocumentExportClient {\n client: ReturnType<typeof axios.create>;\n\n constructor(documentMsBaseUrl: string, documentMSCommunicationKey: string) {\n this.client = axios.create({\n baseURL: documentMsBaseUrl,\n // time out , 1 minute\n timeout: 1000 * 60,\n headers: {\n 'Content-Type': 'application/json',\n 'x-communication-key': documentMSCommunicationKey || '',\n },\n });\n }\n\n /**\n * Generate a document with type-safe payload\n * @param type - Document type\n * @param payload - Typed payload for the document\n * @returns Document generation response\n */\n async generateDocument(\n documentFormat: FileFormat,\n documentType: DocumentType,\n dateRange: DateRangeExportDto,\n payload: { data: object[] },\n merchantInfo: MerchantDetailsHeaderExportDto,\n presignedURL: boolean = false,\n ): Promise<DocumentPathResponseDto> {\n try {\n // Validate payload before sending if enabled\n\n const validation = await DocumentValidator.validatePayload(documentType, payload);\n\n if (!validation.isValid) {\n const messages = DocumentValidator.formatErrors(validation.errors || []);\n const firstMessage = messages[0];\n throw new Error(`Document payload validation failed: ${firstMessage}`);\n }\n\n // Construct request\n const request: DocumentGenerationRequestDto = {\n documentFormat,\n documentType,\n dateRange,\n merchantInfo,\n data: validation?.validatedPayload?.data,\n presignedURL,\n };\n\n // Send request\n const response = await this.client.post<DocumentPathResponseDto>('/v2/document-generation', request);\n\n return response.data;\n } catch (error: any) {\n // if (error instanceof AxiosError) {\n // console.log(error.response?.data);\n // }\n console.log(error.response?.data || error?.message);\n return Promise.reject(error);\n }\n }\n}\n","/**\n * Base error for document operations\n */\n/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nexport class DocumentError extends Error {\n constructor(\n message: string,\n public code: string,\n public statusCode?: number,\n public details?: any,\n ) {\n super(message);\n this.name = 'DocumentError';\n Error.captureStackTrace(this, this.constructor);\n }\n}\n\n/**\n * Error thrown when document generation fails\n */\nexport class DocumentGenerationError extends DocumentError {\n constructor(message: string, details?: any) {\n super(message, 'DOCUMENT_GENERATION_ERROR', 500, details);\n this.name = 'DocumentGenerationError';\n }\n}\n\n/**\n * Error thrown when network request fails\n */\nexport class DocumentNetworkError extends DocumentError {\n constructor(message: string, statusCode?: number, details?: any) {\n super(message, 'NETWORK_ERROR', statusCode, details);\n this.name = 'DocumentNetworkError';\n }\n}\n","import { ValidationError as ClassValidatorError } from 'class-validator';\nimport { DocumentError } from './document-error';\n\n/**\n * Error thrown when payload validation fails\n */\nexport class DocumentValidationError extends DocumentError {\n constructor(\n message: string,\n public validationErrors: ClassValidatorError[],\n ) {\n super(message, 'VALIDATION_ERROR', 400, { validationErrors });\n this.name = 'DocumentValidationError';\n }\n\n /**\n * Get formatted validation error messages\n */\n getMessages(): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ClassValidatorError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((msg) => {\n messages.push(`${currentPath}: ${msg}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n this.validationErrors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import { IsNotEmpty } from 'class-validator';\n\nexport class DateRangeExportDto {\n @IsNotEmpty()\n from!: string | Date;\n\n @IsNotEmpty()\n to!: string | Date;\n}\n","export interface PageOptionsDto {\n page?: number;\n limit?: number;\n skip: number;\n take?: number;\n order?: 'ASC' | 'DESC';\n}\n\n/**\n * Configuration for chunked data fetching\n */\nexport interface ChunkedFetchConfig<T> {\n /**\n * The query function that accepts PageOptionsDto and returns [data, total]\n */\n queryFn: (pageOptions: PageOptionsDto) => Promise<[T[], number]>;\n\n /**\n * Original pagination options (will be overridden for chunking)\n */\n pageOptions: PageOptionsDto;\n\n /**\n * Maximum records per chunk (default: 200)\n */\n chunkSize?: number;\n}\n\n/**\n * Use this if you want to process records as they're fetched\n * const transactions = await fetchDBQueryInChunks({\n * queryFn: (pageOptions) => this.repository.findAndCount(pageOptions, filters, mid),\n * pageOptions: pageOptionsDto,\n * chunkSize: 200,\n * });\n */\nconst MAX_EXPORT_RECORDS = 5000;\nexport async function fetchDBQueryInChunks<T>(config: ChunkedFetchConfig<T>): Promise<T[]> {\n const { queryFn, pageOptions, chunkSize = 200 } = config;\n\n // First fetch to get total count\n const firstPageOptions: PageOptionsDto = {\n ...pageOptions,\n take: chunkSize,\n skip: 0,\n };\n\n const [firstRecords, totalRecords] = await queryFn(firstPageOptions);\n\n // If all data fits in first chunk, return immediately\n if (firstRecords.length >= totalRecords || firstRecords.length < chunkSize) {\n return firstRecords;\n }\n\n // Pre-allocate array with exact size for better memory performance\n // This avoids dynamic array resizing and memory fragmentation\n const allRecords: T[] = new Array(totalRecords);\n\n // Copy first chunk\n for (let i = 0; i < firstRecords.length; i++) {\n allRecords[i] = firstRecords[i];\n }\n\n let currentIndex = firstRecords.length;\n let skip = chunkSize;\n\n // Fetch remaining chunks\n while (currentIndex < totalRecords) {\n const chunkPageOptions: PageOptionsDto = {\n ...pageOptions,\n take: chunkSize,\n skip,\n };\n\n const [records] = await queryFn(chunkPageOptions);\n\n // Break if no more records\n if (records.length === 0) {\n break;\n }\n\n // Copy records directly to pre-allocated positions\n for (let i = 0; i < records.length; i++) {\n allRecords[currentIndex++] = records[i];\n }\n\n // Break if we got fewer records than requested (last chunk)\n if (records.length < chunkSize) {\n break;\n }\n\n skip += chunkSize;\n\n // max 5000 records\n if (skip >= MAX_EXPORT_RECORDS) {\n break;\n }\n }\n\n // If actual records are less than total (edge case), trim array\n if (currentIndex < totalRecords) {\n allRecords.length = currentIndex;\n }\n\n return allRecords;\n}\n","export function maskAccountNumber(str: string): string {\n if (!str) return '';\n const lastFourDigits = str.slice(-4);\n const maskedPart = str.slice(0, -4).replace(/\\d/g, 'x');\n return maskedPart + lastFourDigits || '';\n}\n","import { Transform } from 'class-transformer';\nimport { IsNotEmpty, IsNumberString, IsOptional, IsString, IsUrl } from 'class-validator';\nimport { maskAccountNumber } from '../../utils';\n\nexport class MerchantDetailsHeaderExportDto {\n @IsString()\n @IsNotEmpty()\n name!: string;\n\n @IsUrl({ protocols: ['https'] })\n @IsOptional()\n profile?: string;\n\n @Transform(({ value }) => maskAccountNumber(value))\n @IsString()\n @IsNotEmpty()\n accountNumber!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n availableBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n pendingBalance!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n}\n","import { Type } from 'class-transformer';\nimport { IsEnum, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { DocumentType, FileFormat } from '../../enums';\nimport { DateRangeExportDto } from './index';\nimport { MerchantDetailsHeaderExportDto } from './merchant-headers';\n\n// biome-ignore lint/suspicious/noExplicitAny: false positive\nexport class DocumentGenerationRequestDto<T = any> {\n @IsEnum(FileFormat, { message: 'document format must be one of: pdf, csv, xlsx' })\n @IsNotEmpty()\n documentFormat!: FileFormat;\n\n @IsString()\n @IsNotEmpty()\n documentType!: DocumentType;\n\n @Type(() => MerchantDetailsHeaderExportDto)\n @ValidateNested()\n // make it optional in the validator , but not in the runtime / if it needed so pass it with null , but it must be there\n @IsOptional()\n merchantInfo?: MerchantDetailsHeaderExportDto;\n\n @Type(() => DateRangeExportDto)\n @ValidateNested()\n @IsNotEmpty()\n dateRange!: DateRangeExportDto;\n\n @IsNotEmpty()\n data!: T[];\n\n @IsNotEmpty()\n presignedURL?: boolean = false;\n}\n","export class DocumentPathResponseDto {\n name: string;\n\n path: string;\n\n s3Result: object;\n\n constructor(name: string, path: string, commandResult: object) {\n this.name = name;\n this.path = path;\n this.s3Result = commandResult;\n }\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n paidAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantReference!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsOptional()\n transactionId: string = '';\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n}\n\nclass InvoiceHistoryDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsNotEmpty()\n invoiceId!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsOptional()\n paymentMethodBrand!: string;\n}\n\nexport class InvoiceExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceDocument[];\n}\n\nexport class InvoiceHistoryExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceHistoryDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceHistoryDocument[];\n}\n"]}
|