ecom-documents 1.0.9 → 1.0.10

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 CHANGED
@@ -2,8 +2,8 @@ import axios from 'axios';
2
2
  import { ValidationError } from 'class-validator';
3
3
 
4
4
  declare class DateRangeExportDto {
5
- from: string | Date;
6
- to: string | Date;
5
+ from?: string | Date;
6
+ to?: string | Date;
7
7
  }
8
8
 
9
9
  interface PageOptionsDto {
@@ -43,6 +43,7 @@ declare const DocumentType: {
43
43
  readonly POS_TRANSACTIONS: "POS_TRANSACTIONS";
44
44
  readonly INVOICES: "INVOICES";
45
45
  readonly INVOICE_USERS: "INVOICE_USERS";
46
+ readonly INVOICE_BULK_INVALID: "INVOICE_BULK_INVALID";
46
47
  };
47
48
  type DocumentType = ValueOf<typeof DocumentType>;
48
49
 
@@ -106,6 +107,19 @@ declare class DocumentValidationError extends DocumentError {
106
107
  getMessages(): string[];
107
108
  }
108
109
 
110
+ declare class InvoiceBulkInvalidDocument {
111
+ customerName?: string;
112
+ customerPhone?: string;
113
+ customerEmail?: string;
114
+ merchantReference?: string;
115
+ description?: string;
116
+ amount?: number | string;
117
+ language?: string;
118
+ }
119
+ declare class InvoiceBulkInvalidExportDto {
120
+ data: InvoiceBulkInvalidDocument[];
121
+ }
122
+
109
123
  declare class InvoiceDocument {
110
124
  createdAt: string | Date;
111
125
  paidAt?: string | Date;
@@ -337,6 +351,20 @@ declare class TransactionsPOSExportDto {
337
351
  data: TransactionPOSDocument[];
338
352
  }
339
353
 
354
+ declare class TransactionPOSInvalidDocument {
355
+ sequenceNumber: string;
356
+ network: string;
357
+ cardCategory: string;
358
+ cardNumber: string;
359
+ authCode: string;
360
+ amount: number;
361
+ terminalId: string;
362
+ transactionDateTime: Date | string;
363
+ }
364
+ declare class TransactionPOSInvalidExportDto {
365
+ data: TransactionPOSInvalidDocument[];
366
+ }
367
+
340
368
  declare const DocumentPayloadMap: {
341
369
  readonly STATEMENTS: typeof StatementsExportDto;
342
370
  readonly PAYOUTS: typeof PayoutsExportDto;
@@ -356,6 +384,7 @@ declare const DocumentPayloadMap: {
356
384
  readonly TERMINALS: typeof TerminalsExportDto;
357
385
  readonly INVOICES: typeof InvoiceExportDto;
358
386
  readonly INVOICE_USERS: typeof InvoiceUserExportDto;
387
+ readonly INVOICE_BULK_INVALID: typeof InvoiceBulkInvalidExportDto;
359
388
  };
360
389
 
361
390
  interface ValidationResult<T = any> {
@@ -369,4 +398,4 @@ declare class DocumentValidator {
369
398
  static formatErrors(errors: ValidationError[]): string[];
370
399
  }
371
400
 
372
- export { type ChunkedFetchConfig, DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceExportDto, InvoiceHistoryExportDto, InvoiceUserExportDto, MerchantDetailsHeaderExportDto, type PageOptionsDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundBaseDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TerminalsExportDto, TransactionsExportDto, TransactionsPOSExportDto, type ValidationResult, type ValueOf, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
401
+ export { type ChunkedFetchConfig, DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceBulkInvalidExportDto, InvoiceExportDto, InvoiceHistoryExportDto, InvoiceUserExportDto, MerchantDetailsHeaderExportDto, type PageOptionsDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundBaseDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TerminalsExportDto, TransactionPOSInvalidExportDto, TransactionsExportDto, TransactionsPOSExportDto, type ValidationResult, type ValueOf, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ import axios from 'axios';
2
2
  import { ValidationError } from 'class-validator';
3
3
 
4
4
  declare class DateRangeExportDto {
5
- from: string | Date;
6
- to: string | Date;
5
+ from?: string | Date;
6
+ to?: string | Date;
7
7
  }
8
8
 
9
9
  interface PageOptionsDto {
@@ -43,6 +43,7 @@ declare const DocumentType: {
43
43
  readonly POS_TRANSACTIONS: "POS_TRANSACTIONS";
44
44
  readonly INVOICES: "INVOICES";
45
45
  readonly INVOICE_USERS: "INVOICE_USERS";
46
+ readonly INVOICE_BULK_INVALID: "INVOICE_BULK_INVALID";
46
47
  };
47
48
  type DocumentType = ValueOf<typeof DocumentType>;
48
49
 
@@ -106,6 +107,19 @@ declare class DocumentValidationError extends DocumentError {
106
107
  getMessages(): string[];
107
108
  }
108
109
 
110
+ declare class InvoiceBulkInvalidDocument {
111
+ customerName?: string;
112
+ customerPhone?: string;
113
+ customerEmail?: string;
114
+ merchantReference?: string;
115
+ description?: string;
116
+ amount?: number | string;
117
+ language?: string;
118
+ }
119
+ declare class InvoiceBulkInvalidExportDto {
120
+ data: InvoiceBulkInvalidDocument[];
121
+ }
122
+
109
123
  declare class InvoiceDocument {
110
124
  createdAt: string | Date;
111
125
  paidAt?: string | Date;
@@ -337,6 +351,20 @@ declare class TransactionsPOSExportDto {
337
351
  data: TransactionPOSDocument[];
338
352
  }
339
353
 
354
+ declare class TransactionPOSInvalidDocument {
355
+ sequenceNumber: string;
356
+ network: string;
357
+ cardCategory: string;
358
+ cardNumber: string;
359
+ authCode: string;
360
+ amount: number;
361
+ terminalId: string;
362
+ transactionDateTime: Date | string;
363
+ }
364
+ declare class TransactionPOSInvalidExportDto {
365
+ data: TransactionPOSInvalidDocument[];
366
+ }
367
+
340
368
  declare const DocumentPayloadMap: {
341
369
  readonly STATEMENTS: typeof StatementsExportDto;
342
370
  readonly PAYOUTS: typeof PayoutsExportDto;
@@ -356,6 +384,7 @@ declare const DocumentPayloadMap: {
356
384
  readonly TERMINALS: typeof TerminalsExportDto;
357
385
  readonly INVOICES: typeof InvoiceExportDto;
358
386
  readonly INVOICE_USERS: typeof InvoiceUserExportDto;
387
+ readonly INVOICE_BULK_INVALID: typeof InvoiceBulkInvalidExportDto;
359
388
  };
360
389
 
361
390
  interface ValidationResult<T = any> {
@@ -369,4 +398,4 @@ declare class DocumentValidator {
369
398
  static formatErrors(errors: ValidationError[]): string[];
370
399
  }
371
400
 
372
- export { type ChunkedFetchConfig, DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceExportDto, InvoiceHistoryExportDto, InvoiceUserExportDto, MerchantDetailsHeaderExportDto, type PageOptionsDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundBaseDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TerminalsExportDto, TransactionsExportDto, TransactionsPOSExportDto, type ValidationResult, type ValueOf, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
401
+ export { type ChunkedFetchConfig, DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceBulkInvalidExportDto, InvoiceExportDto, InvoiceHistoryExportDto, InvoiceUserExportDto, MerchantDetailsHeaderExportDto, type PageOptionsDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundBaseDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TerminalsExportDto, TransactionPOSInvalidExportDto, TransactionsExportDto, TransactionsPOSExportDto, type ValidationResult, type ValueOf, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
package/dist/index.js CHANGED
@@ -40,7 +40,8 @@ var DocumentType = {
40
40
  // POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',
41
41
  // elinks
42
42
  INVOICES: "INVOICES",
43
- INVOICE_USERS: "INVOICE_USERS"
43
+ INVOICE_USERS: "INVOICE_USERS",
44
+ INVOICE_BULK_INVALID: "INVOICE_BULK_INVALID"
44
45
  // MERCHANT_USERS: 'MERCHANT_USERS',
45
46
  // INTERNAL_USERS: 'INTERNAL_USERS',
46
47
  // USERS_AND_AGENTS: 'USERS_AND_AGENTS',
@@ -56,6 +57,53 @@ var FileFormat = {
56
57
  CSV: "csv",
57
58
  XLSX: "xlsx"
58
59
  };
60
+ var InvoiceBulkInvalidDocument = class {
61
+ customerName;
62
+ customerPhone;
63
+ customerEmail;
64
+ merchantReference;
65
+ description;
66
+ amount;
67
+ language;
68
+ };
69
+ __decorateClass([
70
+ classValidator.IsString(),
71
+ classValidator.IsOptional()
72
+ ], InvoiceBulkInvalidDocument.prototype, "customerName");
73
+ __decorateClass([
74
+ classValidator.IsString(),
75
+ classValidator.IsOptional()
76
+ ], InvoiceBulkInvalidDocument.prototype, "customerPhone");
77
+ __decorateClass([
78
+ classValidator.IsString(),
79
+ classValidator.IsOptional()
80
+ ], InvoiceBulkInvalidDocument.prototype, "customerEmail");
81
+ __decorateClass([
82
+ classValidator.IsString(),
83
+ classValidator.IsOptional()
84
+ ], InvoiceBulkInvalidDocument.prototype, "merchantReference");
85
+ __decorateClass([
86
+ classValidator.IsString(),
87
+ classValidator.IsOptional()
88
+ ], InvoiceBulkInvalidDocument.prototype, "description");
89
+ __decorateClass([
90
+ classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
91
+ classValidator.IsOptional()
92
+ ], InvoiceBulkInvalidDocument.prototype, "amount");
93
+ __decorateClass([
94
+ classValidator.IsString(),
95
+ classValidator.IsOptional()
96
+ ], InvoiceBulkInvalidDocument.prototype, "language");
97
+ var InvoiceBulkInvalidExportDto = class {
98
+ data;
99
+ };
100
+ __decorateClass([
101
+ classValidator.IsArray(),
102
+ classValidator.ValidateNested({ each: true }),
103
+ classTransformer.Type(() => InvoiceBulkInvalidDocument),
104
+ classValidator.IsNotEmpty(),
105
+ classValidator.IsDefined()
106
+ ], InvoiceBulkInvalidExportDto.prototype, "data");
59
107
  var InvoiceDocument = class {
60
108
  createdAt;
61
109
  paidAt;
@@ -920,6 +968,58 @@ __decorateClass([
920
968
  classValidator.IsNotEmpty(),
921
969
  classValidator.IsDefined()
922
970
  ], TransactionsPOSExportDto.prototype, "data");
971
+ var TransactionPOSInvalidDocument = class {
972
+ sequenceNumber;
973
+ network;
974
+ cardCategory;
975
+ cardNumber;
976
+ authCode;
977
+ amount;
978
+ terminalId;
979
+ transactionDateTime;
980
+ };
981
+ __decorateClass([
982
+ classValidator.IsString(),
983
+ classValidator.IsNotEmpty()
984
+ ], TransactionPOSInvalidDocument.prototype, "sequenceNumber");
985
+ __decorateClass([
986
+ classValidator.IsString(),
987
+ classValidator.IsNotEmpty()
988
+ ], TransactionPOSInvalidDocument.prototype, "network");
989
+ __decorateClass([
990
+ classValidator.IsString(),
991
+ classValidator.IsNotEmpty()
992
+ ], TransactionPOSInvalidDocument.prototype, "cardCategory");
993
+ __decorateClass([
994
+ classValidator.IsString(),
995
+ classValidator.IsNotEmpty()
996
+ ], TransactionPOSInvalidDocument.prototype, "cardNumber");
997
+ __decorateClass([
998
+ classValidator.IsString(),
999
+ classValidator.IsNotEmpty()
1000
+ ], TransactionPOSInvalidDocument.prototype, "authCode");
1001
+ __decorateClass([
1002
+ classValidator.IsString(),
1003
+ classValidator.IsNotEmpty()
1004
+ ], TransactionPOSInvalidDocument.prototype, "amount");
1005
+ __decorateClass([
1006
+ classValidator.IsString(),
1007
+ classValidator.IsNotEmpty()
1008
+ ], TransactionPOSInvalidDocument.prototype, "terminalId");
1009
+ __decorateClass([
1010
+ classValidator.IsString(),
1011
+ classValidator.IsNotEmpty()
1012
+ ], TransactionPOSInvalidDocument.prototype, "transactionDateTime");
1013
+ var TransactionPOSInvalidExportDto = class {
1014
+ data;
1015
+ };
1016
+ __decorateClass([
1017
+ classValidator.IsArray(),
1018
+ classValidator.ValidateNested({ each: true }),
1019
+ classTransformer.Type(() => TransactionPOSInvalidDocument),
1020
+ classValidator.IsNotEmpty(),
1021
+ classValidator.IsDefined()
1022
+ ], TransactionPOSInvalidExportDto.prototype, "data");
923
1023
 
924
1024
  // src/dtos/dto-map.ts
925
1025
  var DocumentPayloadMap = {
@@ -943,7 +1043,8 @@ var DocumentPayloadMap = {
943
1043
  [DocumentType.TERMINALS]: TerminalsExportDto,
944
1044
  // elinks microservice dtos
945
1045
  [DocumentType.INVOICES]: InvoiceExportDto,
946
- [DocumentType.INVOICE_USERS]: InvoiceUserExportDto
1046
+ [DocumentType.INVOICE_USERS]: InvoiceUserExportDto,
1047
+ [DocumentType.INVOICE_BULK_INVALID]: InvoiceBulkInvalidExportDto
947
1048
  };
948
1049
 
949
1050
  // src/validators/document-validator.ts
@@ -1112,10 +1213,10 @@ var DateRangeExportDto = class {
1112
1213
  to;
1113
1214
  };
1114
1215
  __decorateClass([
1115
- classValidator.IsNotEmpty()
1216
+ classValidator.IsOptional()
1116
1217
  ], DateRangeExportDto.prototype, "from");
1117
1218
  __decorateClass([
1118
- classValidator.IsNotEmpty()
1219
+ classValidator.IsOptional()
1119
1220
  ], DateRangeExportDto.prototype, "to");
1120
1221
 
1121
1222
  // src/utils/chunked-fetcher.util.ts
@@ -1274,6 +1375,7 @@ exports.DocumentValidationError = DocumentValidationError;
1274
1375
  exports.DocumentValidator = DocumentValidator;
1275
1376
  exports.ExceptionExportDto = ExceptionExportDto;
1276
1377
  exports.FileFormat = FileFormat;
1378
+ exports.InvoiceBulkInvalidExportDto = InvoiceBulkInvalidExportDto;
1277
1379
  exports.InvoiceExportDto = InvoiceExportDto;
1278
1380
  exports.InvoiceHistoryExportDto = InvoiceHistoryExportDto;
1279
1381
  exports.InvoiceUserExportDto = InvoiceUserExportDto;
@@ -1287,6 +1389,7 @@ exports.RefundsPOSExportDto = RefundsPOSExportDto;
1287
1389
  exports.SettlementsExportDto = SettlementsExportDto;
1288
1390
  exports.StatementsExportDto = StatementsExportDto;
1289
1391
  exports.TerminalsExportDto = TerminalsExportDto;
1392
+ exports.TransactionPOSInvalidExportDto = TransactionPOSInvalidExportDto;
1290
1393
  exports.TransactionsExportDto = TransactionsExportDto;
1291
1394
  exports.TransactionsPOSExportDto = TransactionsPOSExportDto;
1292
1395
  exports.VendorListExportDto = VendorListExportDto;
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/elinks-ms/invoice-document.request.dto.ts","../src/dtos/elinks-ms/invoice-user-document.request.dto.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"],"names":["IsNotEmpty","IsOptional","IsString","Transform","IsNumberString","IsArray","ValidateNested","Type","IsDefined","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 // epos\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 // elinks\n\n INVOICES: 'INVOICES',\n INVOICE_USERS: 'INVOICE_USERS',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n\n // USERS: 'USERS',\n\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, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsOptional()\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","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceUserDocument {\n @IsString()\n @IsNotEmpty()\n name!: string;\n\n @IsString()\n @IsNotEmpty()\n role!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @Transform(({ value }) => Number(value))\n @IsNumberString()\n @IsNotEmpty()\n numberOfInvoices!: number | string;\n}\n\nexport class InvoiceUserExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceUserDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceUserDocument[];\n}\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 paidAt!: 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 { InvoiceExportDto, InvoiceUserExportDto } from './elinks-ms';\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 [DocumentType.INVOICES]: InvoiceExportDto,\n [DocumentType.INVOICE_USERS]: InvoiceUserExportDto,\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"]}
1
+ {"version":3,"sources":["../src/enums/document-type.enum.ts","../src/enums/fileFormat.enum.ts","../src/dtos/elinks-ms/invoice-bulk-invalid-document.request.dto.ts","../src/dtos/elinks-ms/invoice-document.request.dto.ts","../src/dtos/elinks-ms/invoice-user-document.request.dto.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/epos-ms/transaction-pos-invalid-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"],"names":["IsString","IsOptional","Transform","IsArray","ValidateNested","Type","IsNotEmpty","IsDefined","IsNumberString","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 // epos\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 // elinks\n\n INVOICES: 'INVOICES',\n INVOICE_USERS: 'INVOICE_USERS',\n INVOICE_BULK_INVALID: 'INVOICE_BULK_INVALID',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n\n // USERS: 'USERS',\n\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, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceBulkInvalidDocument {\n @IsString()\n @IsOptional()\n customerName?: string;\n\n @IsString()\n @IsOptional()\n customerPhone?: string;\n\n @IsString()\n @IsOptional()\n customerEmail?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n description?: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsOptional()\n amount?: number | string;\n\n @IsString()\n @IsOptional()\n language?: string;\n}\n\nexport class InvoiceBulkInvalidExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceBulkInvalidDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceBulkInvalidDocument[];\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 @IsOptional()\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","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceUserDocument {\n @IsString()\n @IsNotEmpty()\n name!: string;\n\n @IsString()\n @IsNotEmpty()\n role!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @Transform(({ value }) => Number(value))\n @IsNumberString()\n @IsNotEmpty()\n numberOfInvoices!: number | string;\n}\n\nexport class InvoiceUserExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceUserDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceUserDocument[];\n}\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 paidAt!: 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 { Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsString, ValidateNested } from 'class-validator';\n\nclass TransactionPOSInvalidDocument {\n @IsString()\n @IsNotEmpty()\n sequenceNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n network!: string;\n\n @IsString()\n @IsNotEmpty()\n cardCategory!: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n authCode!: string;\n\n @IsString()\n @IsNotEmpty()\n amount!: number;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsNotEmpty()\n transactionDateTime!: Date | string;\n}\n\nexport class TransactionPOSInvalidExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => TransactionPOSInvalidDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: TransactionPOSInvalidDocument[];\n}\n","import { DocumentType } from '../enums';\nimport { InvoiceBulkInvalidExportDto, InvoiceExportDto, InvoiceUserExportDto } from './elinks-ms';\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 [DocumentType.INVOICES]: InvoiceExportDto,\n [DocumentType.INVOICE_USERS]: InvoiceUserExportDto,\n [DocumentType.INVOICE_BULK_INVALID]: InvoiceBulkInvalidExportDto,\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 { IsOptional } from 'class-validator';\n\nexport class DateRangeExportDto {\n @IsOptional()\n from?: string | Date;\n\n @IsOptional()\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"]}
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import axios from 'axios';
2
2
  import { Transform, Type, plainToInstance } from 'class-transformer';
3
- import { IsNotEmpty, IsOptional, IsString, IsNumberString, IsArray, ValidateNested, IsDefined, IsUrl, IsEnum, validate } from 'class-validator';
3
+ import { IsString, IsOptional, IsArray, ValidateNested, IsNotEmpty, IsDefined, IsNumberString, IsUrl, IsEnum, validate } from 'class-validator';
4
4
 
5
5
  var __defProp = Object.defineProperty;
6
6
  var __decorateClass = (decorators, target, key, kind) => {
@@ -34,7 +34,8 @@ var DocumentType = {
34
34
  // POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',
35
35
  // elinks
36
36
  INVOICES: "INVOICES",
37
- INVOICE_USERS: "INVOICE_USERS"
37
+ INVOICE_USERS: "INVOICE_USERS",
38
+ INVOICE_BULK_INVALID: "INVOICE_BULK_INVALID"
38
39
  // MERCHANT_USERS: 'MERCHANT_USERS',
39
40
  // INTERNAL_USERS: 'INTERNAL_USERS',
40
41
  // USERS_AND_AGENTS: 'USERS_AND_AGENTS',
@@ -50,6 +51,53 @@ var FileFormat = {
50
51
  CSV: "csv",
51
52
  XLSX: "xlsx"
52
53
  };
54
+ var InvoiceBulkInvalidDocument = class {
55
+ customerName;
56
+ customerPhone;
57
+ customerEmail;
58
+ merchantReference;
59
+ description;
60
+ amount;
61
+ language;
62
+ };
63
+ __decorateClass([
64
+ IsString(),
65
+ IsOptional()
66
+ ], InvoiceBulkInvalidDocument.prototype, "customerName");
67
+ __decorateClass([
68
+ IsString(),
69
+ IsOptional()
70
+ ], InvoiceBulkInvalidDocument.prototype, "customerPhone");
71
+ __decorateClass([
72
+ IsString(),
73
+ IsOptional()
74
+ ], InvoiceBulkInvalidDocument.prototype, "customerEmail");
75
+ __decorateClass([
76
+ IsString(),
77
+ IsOptional()
78
+ ], InvoiceBulkInvalidDocument.prototype, "merchantReference");
79
+ __decorateClass([
80
+ IsString(),
81
+ IsOptional()
82
+ ], InvoiceBulkInvalidDocument.prototype, "description");
83
+ __decorateClass([
84
+ Transform(({ value }) => Number(value).toFixed(3)),
85
+ IsOptional()
86
+ ], InvoiceBulkInvalidDocument.prototype, "amount");
87
+ __decorateClass([
88
+ IsString(),
89
+ IsOptional()
90
+ ], InvoiceBulkInvalidDocument.prototype, "language");
91
+ var InvoiceBulkInvalidExportDto = class {
92
+ data;
93
+ };
94
+ __decorateClass([
95
+ IsArray(),
96
+ ValidateNested({ each: true }),
97
+ Type(() => InvoiceBulkInvalidDocument),
98
+ IsNotEmpty(),
99
+ IsDefined()
100
+ ], InvoiceBulkInvalidExportDto.prototype, "data");
53
101
  var InvoiceDocument = class {
54
102
  createdAt;
55
103
  paidAt;
@@ -914,6 +962,58 @@ __decorateClass([
914
962
  IsNotEmpty(),
915
963
  IsDefined()
916
964
  ], TransactionsPOSExportDto.prototype, "data");
965
+ var TransactionPOSInvalidDocument = class {
966
+ sequenceNumber;
967
+ network;
968
+ cardCategory;
969
+ cardNumber;
970
+ authCode;
971
+ amount;
972
+ terminalId;
973
+ transactionDateTime;
974
+ };
975
+ __decorateClass([
976
+ IsString(),
977
+ IsNotEmpty()
978
+ ], TransactionPOSInvalidDocument.prototype, "sequenceNumber");
979
+ __decorateClass([
980
+ IsString(),
981
+ IsNotEmpty()
982
+ ], TransactionPOSInvalidDocument.prototype, "network");
983
+ __decorateClass([
984
+ IsString(),
985
+ IsNotEmpty()
986
+ ], TransactionPOSInvalidDocument.prototype, "cardCategory");
987
+ __decorateClass([
988
+ IsString(),
989
+ IsNotEmpty()
990
+ ], TransactionPOSInvalidDocument.prototype, "cardNumber");
991
+ __decorateClass([
992
+ IsString(),
993
+ IsNotEmpty()
994
+ ], TransactionPOSInvalidDocument.prototype, "authCode");
995
+ __decorateClass([
996
+ IsString(),
997
+ IsNotEmpty()
998
+ ], TransactionPOSInvalidDocument.prototype, "amount");
999
+ __decorateClass([
1000
+ IsString(),
1001
+ IsNotEmpty()
1002
+ ], TransactionPOSInvalidDocument.prototype, "terminalId");
1003
+ __decorateClass([
1004
+ IsString(),
1005
+ IsNotEmpty()
1006
+ ], TransactionPOSInvalidDocument.prototype, "transactionDateTime");
1007
+ var TransactionPOSInvalidExportDto = class {
1008
+ data;
1009
+ };
1010
+ __decorateClass([
1011
+ IsArray(),
1012
+ ValidateNested({ each: true }),
1013
+ Type(() => TransactionPOSInvalidDocument),
1014
+ IsNotEmpty(),
1015
+ IsDefined()
1016
+ ], TransactionPOSInvalidExportDto.prototype, "data");
917
1017
 
918
1018
  // src/dtos/dto-map.ts
919
1019
  var DocumentPayloadMap = {
@@ -937,7 +1037,8 @@ var DocumentPayloadMap = {
937
1037
  [DocumentType.TERMINALS]: TerminalsExportDto,
938
1038
  // elinks microservice dtos
939
1039
  [DocumentType.INVOICES]: InvoiceExportDto,
940
- [DocumentType.INVOICE_USERS]: InvoiceUserExportDto
1040
+ [DocumentType.INVOICE_USERS]: InvoiceUserExportDto,
1041
+ [DocumentType.INVOICE_BULK_INVALID]: InvoiceBulkInvalidExportDto
941
1042
  };
942
1043
 
943
1044
  // src/validators/document-validator.ts
@@ -1106,10 +1207,10 @@ var DateRangeExportDto = class {
1106
1207
  to;
1107
1208
  };
1108
1209
  __decorateClass([
1109
- IsNotEmpty()
1210
+ IsOptional()
1110
1211
  ], DateRangeExportDto.prototype, "from");
1111
1212
  __decorateClass([
1112
- IsNotEmpty()
1213
+ IsOptional()
1113
1214
  ], DateRangeExportDto.prototype, "to");
1114
1215
 
1115
1216
  // src/utils/chunked-fetcher.util.ts
@@ -1255,6 +1356,6 @@ var DocumentPathResponseDto = class {
1255
1356
  }
1256
1357
  };
1257
1358
 
1258
- export { DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceExportDto, InvoiceHistoryExportDto, InvoiceUserExportDto, MerchantDetailsHeaderExportDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundBaseDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TerminalsExportDto, TransactionsExportDto, TransactionsPOSExportDto, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
1359
+ export { DateRangeExportDto, DocumentError, DocumentExportClient, DocumentGenerationError, DocumentGenerationRequestDto, DocumentNetworkError, DocumentPathResponseDto, DocumentPayloadMap, DocumentType, DocumentValidationError, DocumentValidator, ExceptionExportDto, FileFormat, InvoiceBulkInvalidExportDto, InvoiceExportDto, InvoiceHistoryExportDto, InvoiceUserExportDto, MerchantDetailsHeaderExportDto, PaymentMethodsExportDto, PayoutsExportDto, ProfitFeesExportDto, RefundBaseDto, RefundsExportDto, RefundsPOSExportDto, SettlementsExportDto, StatementsExportDto, TerminalsExportDto, TransactionPOSInvalidExportDto, TransactionsExportDto, TransactionsPOSExportDto, VendorListExportDto, VendorSalesExportDto, fetchDBQueryInChunks, maskAccountNumber };
1259
1360
  //# sourceMappingURL=index.mjs.map
1260
1361
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/enums/document-type.enum.ts","../src/enums/fileFormat.enum.ts","../src/dtos/elinks-ms/invoice-document.request.dto.ts","../src/dtos/elinks-ms/invoice-user-document.request.dto.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"],"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 // epos\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 // elinks\n\n INVOICES: 'INVOICES',\n INVOICE_USERS: 'INVOICE_USERS',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n\n // USERS: 'USERS',\n\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, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsOptional()\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","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceUserDocument {\n @IsString()\n @IsNotEmpty()\n name!: string;\n\n @IsString()\n @IsNotEmpty()\n role!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @Transform(({ value }) => Number(value))\n @IsNumberString()\n @IsNotEmpty()\n numberOfInvoices!: number | string;\n}\n\nexport class InvoiceUserExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceUserDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceUserDocument[];\n}\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 paidAt!: 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 { InvoiceExportDto, InvoiceUserExportDto } from './elinks-ms';\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 [DocumentType.INVOICES]: InvoiceExportDto,\n [DocumentType.INVOICE_USERS]: InvoiceUserExportDto,\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"]}
1
+ {"version":3,"sources":["../src/enums/document-type.enum.ts","../src/enums/fileFormat.enum.ts","../src/dtos/elinks-ms/invoice-bulk-invalid-document.request.dto.ts","../src/dtos/elinks-ms/invoice-document.request.dto.ts","../src/dtos/elinks-ms/invoice-user-document.request.dto.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/epos-ms/transaction-pos-invalid-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"],"names":["IsNotEmpty","IsOptional","IsString","Transform","IsArray","ValidateNested","Type","IsDefined","IsNumberString"],"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 // epos\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 // elinks\n\n INVOICES: 'INVOICES',\n INVOICE_USERS: 'INVOICE_USERS',\n INVOICE_BULK_INVALID: 'INVOICE_BULK_INVALID',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n\n // USERS: 'USERS',\n\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, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceBulkInvalidDocument {\n @IsString()\n @IsOptional()\n customerName?: string;\n\n @IsString()\n @IsOptional()\n customerPhone?: string;\n\n @IsString()\n @IsOptional()\n customerEmail?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n description?: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsOptional()\n amount?: number | string;\n\n @IsString()\n @IsOptional()\n language?: string;\n}\n\nexport class InvoiceBulkInvalidExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceBulkInvalidDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceBulkInvalidDocument[];\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 @IsOptional()\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","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceUserDocument {\n @IsString()\n @IsNotEmpty()\n name!: string;\n\n @IsString()\n @IsNotEmpty()\n role!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @Transform(({ value }) => Number(value))\n @IsNumberString()\n @IsNotEmpty()\n numberOfInvoices!: number | string;\n}\n\nexport class InvoiceUserExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceUserDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceUserDocument[];\n}\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 paidAt!: 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 { Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsString, ValidateNested } from 'class-validator';\n\nclass TransactionPOSInvalidDocument {\n @IsString()\n @IsNotEmpty()\n sequenceNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n network!: string;\n\n @IsString()\n @IsNotEmpty()\n cardCategory!: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n authCode!: string;\n\n @IsString()\n @IsNotEmpty()\n amount!: number;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsNotEmpty()\n transactionDateTime!: Date | string;\n}\n\nexport class TransactionPOSInvalidExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => TransactionPOSInvalidDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: TransactionPOSInvalidDocument[];\n}\n","import { DocumentType } from '../enums';\nimport { InvoiceBulkInvalidExportDto, InvoiceExportDto, InvoiceUserExportDto } from './elinks-ms';\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 [DocumentType.INVOICES]: InvoiceExportDto,\n [DocumentType.INVOICE_USERS]: InvoiceUserExportDto,\n [DocumentType.INVOICE_BULK_INVALID]: InvoiceBulkInvalidExportDto,\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 { IsOptional } from 'class-validator';\n\nexport class DateRangeExportDto {\n @IsOptional()\n from?: string | Date;\n\n @IsOptional()\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ecom-documents",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "TypeScript contracts and client SDK for document microservice",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",