ecom-documents 1.0.1 → 1.0.2

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
@@ -53,16 +53,16 @@ declare class MerchantDetailsHeaderExportDto {
53
53
  name: string;
54
54
  profile?: string;
55
55
  accountNumber: string;
56
- totalBalance: number;
57
- availableBalance: number;
58
- pendingBalance: number;
56
+ totalBalance: number | string;
57
+ availableBalance: number | string;
58
+ pendingBalance: number | string;
59
59
  currency: string;
60
60
  }
61
61
 
62
62
  declare class DocumentGenerationRequestDto<T = any> {
63
63
  documentFormat: FileFormat;
64
64
  documentType: DocumentType;
65
- merchantInfo: MerchantDetailsHeaderExportDto;
65
+ merchantInfo?: MerchantDetailsHeaderExportDto;
66
66
  dateRange: DateRangeExportDto;
67
67
  data: T[];
68
68
  presignedURL?: boolean;
@@ -121,9 +121,9 @@ declare class ExceptionExportDto {
121
121
 
122
122
  declare class PaymentMethodDocument {
123
123
  paymentMethod: string;
124
- totalAmount: number;
124
+ totalAmount: number | string;
125
125
  percentageOfTotal: string;
126
- txnCount: number;
126
+ txnCount: number | string;
127
127
  }
128
128
  declare class PaymentMethodsExportDto {
129
129
  data: PaymentMethodDocument[];
@@ -133,9 +133,9 @@ declare class PayoutDocument {
133
133
  id: string;
134
134
  mid: string;
135
135
  iban: string;
136
- amount: number;
136
+ amount: number | string;
137
137
  currency: string;
138
- numOfTxn: number;
138
+ numOfTxn: number | string;
139
139
  notes: string;
140
140
  createdAt: string | Date;
141
141
  }
@@ -146,9 +146,9 @@ declare class PayoutsExportDto {
146
146
  declare class ProfitFeesDocument {
147
147
  mid: string;
148
148
  merchantName: string;
149
- numOfTxn: number;
150
- totalTxnAmount: number;
151
- totalProfitAmount: number;
149
+ numOfTxn: number | string;
150
+ totalTxnAmount: number | string;
151
+ totalProfitAmount: number | string;
152
152
  type: 'PROFIT' | 'FEES';
153
153
  }
154
154
  declare class ProfitFeesExportDto {
@@ -163,8 +163,8 @@ declare class RefundBaseDto {
163
163
  merchantReference?: string;
164
164
  originalTxnId: string;
165
165
  originalTxnDate: string | Date;
166
- originalTxnAmount: number;
167
- amount: number;
166
+ originalTxnAmount: number | string;
167
+ amount: number | string;
168
168
  paymentMethod: string;
169
169
  status: string;
170
170
  mid: string;
@@ -198,8 +198,8 @@ declare class SettlementDocument {
198
198
  holderName?: string;
199
199
  iban?: string;
200
200
  accountNumber?: string;
201
- totalAmount: number;
202
- totalTxnCount: number;
201
+ totalAmount: number | string;
202
+ totalTxnCount: number | string;
203
203
  settlementDate?: string | null;
204
204
  }
205
205
  declare class SettlementsExportDto {
@@ -213,9 +213,9 @@ declare class StatementDocument {
213
213
  invoiceId?: string;
214
214
  description?: string;
215
215
  paymentMethod: string;
216
- amount: number;
216
+ amount: number | string;
217
217
  type: string;
218
- balanceAfter: number;
218
+ balanceAfter: number | string;
219
219
  }
220
220
  declare class StatementsExportDto {
221
221
  data: StatementDocument[];
@@ -230,7 +230,7 @@ declare class TransactionDocument {
230
230
  invoiceNumber?: string;
231
231
  customerName: string;
232
232
  customerPhone: string;
233
- amount: number;
233
+ amount: number | string;
234
234
  product: string;
235
235
  paymentMethod: string;
236
236
  status: string;
@@ -247,7 +247,7 @@ declare class VendorSalesDocument {
247
247
  mid: string;
248
248
  vendorNumber: string;
249
249
  vendorName: string;
250
- totalTxnAmount: number;
250
+ totalTxnAmount: number | string;
251
251
  }
252
252
  declare class VendorListDocument {
253
253
  mid: string;
@@ -292,7 +292,7 @@ declare class InvoiceDocument {
292
292
  createdBy: string;
293
293
  transactionId: string;
294
294
  status: string;
295
- amount: number;
295
+ amount: number | string;
296
296
  paymentMethod: string;
297
297
  }
298
298
  declare class InvoiceHistoryDocument {
package/dist/index.d.ts CHANGED
@@ -53,16 +53,16 @@ declare class MerchantDetailsHeaderExportDto {
53
53
  name: string;
54
54
  profile?: string;
55
55
  accountNumber: string;
56
- totalBalance: number;
57
- availableBalance: number;
58
- pendingBalance: number;
56
+ totalBalance: number | string;
57
+ availableBalance: number | string;
58
+ pendingBalance: number | string;
59
59
  currency: string;
60
60
  }
61
61
 
62
62
  declare class DocumentGenerationRequestDto<T = any> {
63
63
  documentFormat: FileFormat;
64
64
  documentType: DocumentType;
65
- merchantInfo: MerchantDetailsHeaderExportDto;
65
+ merchantInfo?: MerchantDetailsHeaderExportDto;
66
66
  dateRange: DateRangeExportDto;
67
67
  data: T[];
68
68
  presignedURL?: boolean;
@@ -121,9 +121,9 @@ declare class ExceptionExportDto {
121
121
 
122
122
  declare class PaymentMethodDocument {
123
123
  paymentMethod: string;
124
- totalAmount: number;
124
+ totalAmount: number | string;
125
125
  percentageOfTotal: string;
126
- txnCount: number;
126
+ txnCount: number | string;
127
127
  }
128
128
  declare class PaymentMethodsExportDto {
129
129
  data: PaymentMethodDocument[];
@@ -133,9 +133,9 @@ declare class PayoutDocument {
133
133
  id: string;
134
134
  mid: string;
135
135
  iban: string;
136
- amount: number;
136
+ amount: number | string;
137
137
  currency: string;
138
- numOfTxn: number;
138
+ numOfTxn: number | string;
139
139
  notes: string;
140
140
  createdAt: string | Date;
141
141
  }
@@ -146,9 +146,9 @@ declare class PayoutsExportDto {
146
146
  declare class ProfitFeesDocument {
147
147
  mid: string;
148
148
  merchantName: string;
149
- numOfTxn: number;
150
- totalTxnAmount: number;
151
- totalProfitAmount: number;
149
+ numOfTxn: number | string;
150
+ totalTxnAmount: number | string;
151
+ totalProfitAmount: number | string;
152
152
  type: 'PROFIT' | 'FEES';
153
153
  }
154
154
  declare class ProfitFeesExportDto {
@@ -163,8 +163,8 @@ declare class RefundBaseDto {
163
163
  merchantReference?: string;
164
164
  originalTxnId: string;
165
165
  originalTxnDate: string | Date;
166
- originalTxnAmount: number;
167
- amount: number;
166
+ originalTxnAmount: number | string;
167
+ amount: number | string;
168
168
  paymentMethod: string;
169
169
  status: string;
170
170
  mid: string;
@@ -198,8 +198,8 @@ declare class SettlementDocument {
198
198
  holderName?: string;
199
199
  iban?: string;
200
200
  accountNumber?: string;
201
- totalAmount: number;
202
- totalTxnCount: number;
201
+ totalAmount: number | string;
202
+ totalTxnCount: number | string;
203
203
  settlementDate?: string | null;
204
204
  }
205
205
  declare class SettlementsExportDto {
@@ -213,9 +213,9 @@ declare class StatementDocument {
213
213
  invoiceId?: string;
214
214
  description?: string;
215
215
  paymentMethod: string;
216
- amount: number;
216
+ amount: number | string;
217
217
  type: string;
218
- balanceAfter: number;
218
+ balanceAfter: number | string;
219
219
  }
220
220
  declare class StatementsExportDto {
221
221
  data: StatementDocument[];
@@ -230,7 +230,7 @@ declare class TransactionDocument {
230
230
  invoiceNumber?: string;
231
231
  customerName: string;
232
232
  customerPhone: string;
233
- amount: number;
233
+ amount: number | string;
234
234
  product: string;
235
235
  paymentMethod: string;
236
236
  status: string;
@@ -247,7 +247,7 @@ declare class VendorSalesDocument {
247
247
  mid: string;
248
248
  vendorNumber: string;
249
249
  vendorName: string;
250
- totalTxnAmount: number;
250
+ totalTxnAmount: number | string;
251
251
  }
252
252
  declare class VendorListDocument {
253
253
  mid: string;
@@ -292,7 +292,7 @@ declare class InvoiceDocument {
292
292
  createdBy: string;
293
293
  transactionId: string;
294
294
  status: string;
295
- amount: number;
295
+ amount: number | string;
296
296
  paymentMethod: string;
297
297
  }
298
298
  declare class InvoiceHistoryDocument {
package/dist/index.js CHANGED
@@ -74,7 +74,6 @@ var ExceptionDocument = class {
74
74
  action;
75
75
  };
76
76
  __decorateClass([
77
- classValidator.IsString(),
78
77
  classValidator.IsNotEmpty()
79
78
  ], ExceptionDocument.prototype, "createdAt");
80
79
  __decorateClass([
@@ -111,7 +110,7 @@ __decorateClass([
111
110
  ], ExceptionDocument.prototype, "paymentMethod");
112
111
  __decorateClass([
113
112
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
114
- classValidator.IsNumber(),
113
+ classValidator.IsNumberString(),
115
114
  classValidator.IsNotEmpty()
116
115
  ], ExceptionDocument.prototype, "amount");
117
116
  __decorateClass([
@@ -140,7 +139,7 @@ __decorateClass([
140
139
  ], PaymentMethodDocument.prototype, "paymentMethod");
141
140
  __decorateClass([
142
141
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
143
- classValidator.IsNumber(),
142
+ classValidator.IsNumberString(),
144
143
  classValidator.IsNotEmpty()
145
144
  ], PaymentMethodDocument.prototype, "totalAmount");
146
145
  __decorateClass([
@@ -148,7 +147,7 @@ __decorateClass([
148
147
  classValidator.IsNotEmpty()
149
148
  ], PaymentMethodDocument.prototype, "percentageOfTotal");
150
149
  __decorateClass([
151
- classValidator.IsNumber(),
150
+ classValidator.IsNumberString(),
152
151
  classValidator.IsNotEmpty()
153
152
  ], PaymentMethodDocument.prototype, "txnCount");
154
153
  var PaymentMethodsExportDto = class {
@@ -185,7 +184,7 @@ __decorateClass([
185
184
  ], PayoutDocument.prototype, "iban");
186
185
  __decorateClass([
187
186
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
188
- classValidator.IsNumber(),
187
+ classValidator.IsNumberString(),
189
188
  classValidator.IsNotEmpty()
190
189
  ], PayoutDocument.prototype, "amount");
191
190
  __decorateClass([
@@ -193,7 +192,7 @@ __decorateClass([
193
192
  classValidator.IsNotEmpty()
194
193
  ], PayoutDocument.prototype, "currency");
195
194
  __decorateClass([
196
- classValidator.IsNumber(),
195
+ classValidator.IsNumberString(),
197
196
  classValidator.IsNotEmpty()
198
197
  ], PayoutDocument.prototype, "numOfTxn");
199
198
  __decorateClass([
@@ -201,7 +200,6 @@ __decorateClass([
201
200
  classValidator.IsNotEmpty()
202
201
  ], PayoutDocument.prototype, "notes");
203
202
  __decorateClass([
204
- classValidator.IsString(),
205
203
  classValidator.IsNotEmpty()
206
204
  ], PayoutDocument.prototype, "createdAt");
207
205
  var PayoutsExportDto = class {
@@ -231,17 +229,17 @@ __decorateClass([
231
229
  classValidator.IsNotEmpty()
232
230
  ], ProfitFeesDocument.prototype, "merchantName");
233
231
  __decorateClass([
234
- classValidator.IsNumber(),
232
+ classValidator.IsNumberString(),
235
233
  classValidator.IsNotEmpty()
236
234
  ], ProfitFeesDocument.prototype, "numOfTxn");
237
235
  __decorateClass([
238
236
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
239
- classValidator.IsNumber(),
237
+ classValidator.IsNumberString(),
240
238
  classValidator.IsNotEmpty()
241
239
  ], ProfitFeesDocument.prototype, "totalTxnAmount");
242
240
  __decorateClass([
243
241
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
244
- classValidator.IsNumber(),
242
+ classValidator.IsNumberString(),
245
243
  classValidator.IsNotEmpty()
246
244
  ], ProfitFeesDocument.prototype, "totalProfitAmount");
247
245
  __decorateClass([
@@ -295,17 +293,16 @@ __decorateClass([
295
293
  classValidator.IsNotEmpty()
296
294
  ], RefundBaseDto.prototype, "originalTxnId");
297
295
  __decorateClass([
298
- classValidator.IsString(),
299
296
  classValidator.IsNotEmpty()
300
297
  ], RefundBaseDto.prototype, "originalTxnDate");
301
298
  __decorateClass([
302
299
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
303
- classValidator.IsNumber(),
300
+ classValidator.IsNumberString(),
304
301
  classValidator.IsNotEmpty()
305
302
  ], RefundBaseDto.prototype, "originalTxnAmount");
306
303
  __decorateClass([
307
304
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
308
- classValidator.IsNumber(),
305
+ classValidator.IsNumberString(),
309
306
  classValidator.IsNotEmpty()
310
307
  ], RefundBaseDto.prototype, "amount");
311
308
  __decorateClass([
@@ -434,11 +431,11 @@ __decorateClass([
434
431
  ], SettlementDocument.prototype, "accountNumber");
435
432
  __decorateClass([
436
433
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
437
- classValidator.IsNumber(),
434
+ classValidator.IsNumberString(),
438
435
  classValidator.IsNotEmpty()
439
436
  ], SettlementDocument.prototype, "totalAmount");
440
437
  __decorateClass([
441
- classValidator.IsNumber(),
438
+ classValidator.IsNumberString(),
442
439
  classValidator.IsNotEmpty()
443
440
  ], SettlementDocument.prototype, "totalTxnCount");
444
441
  __decorateClass([
@@ -489,7 +486,7 @@ __decorateClass([
489
486
  ], StatementDocument.prototype, "paymentMethod");
490
487
  __decorateClass([
491
488
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
492
- classValidator.IsNumber(),
489
+ classValidator.IsNumberString(),
493
490
  classValidator.IsNotEmpty()
494
491
  ], StatementDocument.prototype, "amount");
495
492
  __decorateClass([
@@ -497,7 +494,7 @@ __decorateClass([
497
494
  ], StatementDocument.prototype, "type");
498
495
  __decorateClass([
499
496
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
500
- classValidator.IsNumber(),
497
+ classValidator.IsNumberString(),
501
498
  classValidator.IsNotEmpty()
502
499
  ], StatementDocument.prototype, "balanceAfter");
503
500
  var StatementsExportDto = class {
@@ -560,8 +557,8 @@ __decorateClass([
560
557
  ], TransactionDocument.prototype, "customerPhone");
561
558
  __decorateClass([
562
559
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
563
- classValidator.IsNotEmpty(),
564
- classValidator.IsNumber()
560
+ classValidator.IsNumberString(),
561
+ classValidator.IsNotEmpty()
565
562
  ], TransactionDocument.prototype, "amount");
566
563
  __decorateClass([
567
564
  classValidator.IsNotEmpty()
@@ -618,7 +615,7 @@ __decorateClass([
618
615
  ], VendorSalesDocument.prototype, "vendorName");
619
616
  __decorateClass([
620
617
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
621
- classValidator.IsNumber(),
618
+ classValidator.IsNumberString(),
622
619
  classValidator.IsNotEmpty()
623
620
  ], VendorSalesDocument.prototype, "totalTxnAmount");
624
621
  var VendorListDocument = class {
@@ -787,7 +784,8 @@ var DocumentExportClient = class {
787
784
  const validation = await DocumentValidator.validatePayload(documentType, payload);
788
785
  if (!validation.isValid) {
789
786
  const messages = DocumentValidator.formatErrors(validation.errors || []);
790
- throw new Error(`Document payload validation failed: ${messages.join("; ")}`);
787
+ const firstMessage = messages[0];
788
+ throw new Error(`Document payload validation failed: ${firstMessage}`);
791
789
  }
792
790
  const request = {
793
791
  documentFormat,
@@ -800,6 +798,7 @@ var DocumentExportClient = class {
800
798
  const response = await this.client.post("/v2/document-generation", request);
801
799
  return response.data;
802
800
  } catch (error) {
801
+ console.log(error.response?.data || error?.message);
803
802
  return Promise.reject(error);
804
803
  }
805
804
  }
@@ -861,11 +860,9 @@ var DateRangeExportDto = class {
861
860
  to;
862
861
  };
863
862
  __decorateClass([
864
- classValidator.IsDateString(),
865
863
  classValidator.IsNotEmpty()
866
864
  ], DateRangeExportDto.prototype, "from");
867
865
  __decorateClass([
868
- classValidator.IsDateString(),
869
866
  classValidator.IsNotEmpty()
870
867
  ], DateRangeExportDto.prototype, "to");
871
868
 
@@ -944,17 +941,17 @@ __decorateClass([
944
941
  ], MerchantDetailsHeaderExportDto.prototype, "accountNumber");
945
942
  __decorateClass([
946
943
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
947
- classValidator.IsNumber(),
944
+ classValidator.IsNumberString(),
948
945
  classValidator.IsNotEmpty()
949
946
  ], MerchantDetailsHeaderExportDto.prototype, "totalBalance");
950
947
  __decorateClass([
951
948
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
952
- classValidator.IsNumber(),
949
+ classValidator.IsNumberString(),
953
950
  classValidator.IsNotEmpty()
954
951
  ], MerchantDetailsHeaderExportDto.prototype, "availableBalance");
955
952
  __decorateClass([
956
953
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
957
- classValidator.IsNumber(),
954
+ classValidator.IsNumberString(),
958
955
  classValidator.IsNotEmpty()
959
956
  ], MerchantDetailsHeaderExportDto.prototype, "pendingBalance");
960
957
  __decorateClass([
@@ -1021,11 +1018,9 @@ var InvoiceDocument = class {
1021
1018
  paymentMethod;
1022
1019
  };
1023
1020
  __decorateClass([
1024
- classValidator.IsString(),
1025
1021
  classValidator.IsNotEmpty()
1026
1022
  ], InvoiceDocument.prototype, "createdAt");
1027
1023
  __decorateClass([
1028
- classValidator.IsString(),
1029
1024
  classValidator.IsNotEmpty()
1030
1025
  ], InvoiceDocument.prototype, "paidAt");
1031
1026
  __decorateClass([
@@ -1058,7 +1053,7 @@ __decorateClass([
1058
1053
  ], InvoiceDocument.prototype, "status");
1059
1054
  __decorateClass([
1060
1055
  classTransformer.Transform(({ value }) => Number(value).toFixed(3)),
1061
- classValidator.IsNumber(),
1056
+ classValidator.IsNumberString(),
1062
1057
  classValidator.IsNotEmpty()
1063
1058
  ], InvoiceDocument.prototype, "amount");
1064
1059
  __decorateClass([
@@ -1074,7 +1069,6 @@ var InvoiceHistoryDocument = class {
1074
1069
  paymentMethodBrand;
1075
1070
  };
1076
1071
  __decorateClass([
1077
- classValidator.IsString(),
1078
1072
  classValidator.IsNotEmpty()
1079
1073
  ], InvoiceHistoryDocument.prototype, "createdAt");
1080
1074
  __decorateClass([
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/enums/document-type.enum.ts","../src/enums/fileFormat.enum.ts","../src/dtos/transactions-ms/exceptions-document.request.dto.ts","../src/dtos/transactions-ms/payment-method.request.dto.ts","../src/dtos/transactions-ms/payout-document.request.dto.ts","../src/dtos/transactions-ms/profit-fees-document.request.dto.ts","../src/dtos/transactions-ms/refund-document.request.dto.ts","../src/dtos/transactions-ms/settlement-document.request.dto.ts","../src/dtos/transactions-ms/statement-document.request.dto.ts","../src/dtos/transactions-ms/transaction-document-template.request.dto.ts","../src/dtos/transactions-ms/vendor-sales-document.request.dto.ts","../src/dtos/dto-map.ts","../src/validators/document-validator.ts","../src/client/document-client.ts","../src/client/errors/document-error.ts","../src/client/errors/validation-error.ts","../src/dtos/base/date-range.ts","../src/utils/chunked-fetcher.util.ts","../src/utils/mask-account-number.ts","../src/dtos/base/merchant-headers.ts","../src/dtos/base/document-generation.request.dto.ts","../src/dtos/base/document-path.response.dto.ts","../src/dtos/elinks-ms/invoice-document.request.dto.ts"],"names":["IsString","IsNotEmpty","Transform","IsNumber","IsArray","ValidateNested","Type","IsDefined","IsOptional","plainToInstance","validate","axios","IsDateString","IsUrl","IsEnum"],"mappings":"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","file":"index.js","sourcesContent":["import { ValueOf } from '../utils';\n\nexport const DocumentType = {\n STATEMENTS: 'STATEMENTS',\n PAYOUTS: 'PAYOUTS',\n SETTLEMENTS: 'SETTLEMENTS',\n TRANSACTIONS: 'TRANSACTIONS',\n TRANSACTIONS_INTERNAL: 'TRANSACTIONS_INTERNAL',\n REFUNDS: 'REFUNDS',\n REFUNDS_INTERNAL_GATEWAY: 'REFUNDS_INTERNAL_GATEWAY',\n\n PROFIT_FEES: 'PROFIT_FEES',\n PAYMENT_METHODS: 'PAYMENT_METHODS',\n\n VENDOR_LIST: 'VENDOR_LIST',\n VENDOR_SALES: 'VENDOR_SALES',\n EXCEPTIONS: 'EXCEPTIONS',\n\n REFUNDS_POS: 'REFUNDS_POS',\n REFUNDS_INTERNAL_POS: 'REFUNDS_INTERNAL_POS',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // BULK_INVOICE_CUSTOMERS: 'BULK_INVOICE_CUSTOMERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n // CUSTOMERS: 'CUSTOMERS',\n // TERMINAL: 'TERMINAL',\n // INVOICES: 'INVOICES',\n // INVOICE_HISTORY: 'INVOICE_HISTORY',\n // USERS: 'USERS',\n // UNPAID_INVOICES: 'UNPAID_INVOICES',\n\n // TERMINALS: 'TERMINALS',\n // POS_TRANSACTIONS: 'POS_TRANSACTIONS',\n // POS_MERCHANT_TRANSACTIONS: 'POS_MERCHANT_TRANSACTIONS',\n // POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',\n // BULK_INVOICES_INVALID: 'BULK_INVOICES_INVALID',\n // BLACKLIST_INVALID: 'BLACKLIST_INVALID',\n // BLACKLIST: 'BLACKLIST',\n // PARTNERS: 'PARTNERS',\n} as const;\n\nexport type DocumentType = ValueOf<typeof DocumentType>;\n","import { ValueOf } from '../utils';\n\nexport const FileFormat = {\n PDF: 'pdf',\n CSV: 'csv',\n XLSX: 'xlsx',\n} as const;\n\nexport type FileFormat = ValueOf<typeof FileFormat>;\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumber, IsString, ValidateNested } from 'class-validator';\n\nclass ExceptionDocument {\n @IsString()\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 @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 @IsNumber()\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, IsNumber, IsString, ValidateNested } from 'class-validator';\n\nclass PaymentMethodDocument {\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n totalAmount!: number;\n\n @IsString()\n @IsNotEmpty()\n percentageOfTotal!: string;\n\n @IsNumber()\n @IsNotEmpty()\n txnCount!: number;\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, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n amount!: number;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n\n @IsNumber()\n @IsNotEmpty()\n numOfTxn!: number;\n\n @IsString()\n @IsNotEmpty()\n notes!: string;\n\n @IsString()\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, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n numOfTxn!: number;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n totalTxnAmount!: number;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n totalProfitAmount!: number;\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, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass RefundBaseDto {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsOptional()\n refundedAt?: string | Date;\n\n @IsOptional()\n rejectedAt?: string | Date;\n\n @IsString()\n @IsOptional()\n ecomReference?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsNotEmpty()\n originalTxnId!: string;\n\n @IsString()\n @IsNotEmpty()\n originalTxnDate!: string | Date;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n originalTxnAmount!: number;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n amount!: number;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n}\n\nclass RefundDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n type!: string;\n\n @IsString()\n @IsNotEmpty()\n requestedBy?: string;\n}\n\nclass RefundPOSDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n authId!: string | null;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n}\n\nexport class RefundsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundDocument[];\n}\n\nexport class RefundsPOSExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundPOSDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundPOSDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n totalAmount!: number;\n\n @IsNumber()\n @IsNotEmpty()\n totalTxnCount!: number;\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, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n amount!: number;\n\n @IsNotEmpty()\n type!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n balanceAfter!: number;\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, IsNumber, 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 @IsNotEmpty()\n @IsNumber()\n amount!: number;\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, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n totalTxnAmount!: number;\n}\n\nclass VendorListDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @IsString()\n @IsNotEmpty()\n email!: string;\n\n @IsString()\n @IsNotEmpty()\n bank!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @IsNotEmpty()\n commission!: number | string;\n}\n\nexport class VendorSalesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorSalesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorSalesDocument[];\n}\n\nexport class VendorListExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorListDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorListDocument[];\n}\n","import { DocumentType } from '../enums';\nimport {\n ExceptionExportDto,\n PaymentMethodsExportDto,\n PayoutsExportDto,\n ProfitFeesExportDto,\n RefundsExportDto,\n RefundsPOSExportDto,\n SettlementsExportDto,\n StatementsExportDto,\n TransactionsExportDto,\n VendorListExportDto,\n VendorSalesExportDto,\n} from './transactions-ms';\n\nexport const DocumentPayloadMap = {\n // transactions microservice dtos\n [DocumentType.STATEMENTS]: StatementsExportDto,\n [DocumentType.PAYOUTS]: PayoutsExportDto,\n [DocumentType.SETTLEMENTS]: SettlementsExportDto,\n [DocumentType.TRANSACTIONS]: TransactionsExportDto,\n [DocumentType.TRANSACTIONS_INTERNAL]: TransactionsExportDto,\n [DocumentType.REFUNDS]: RefundsExportDto,\n [DocumentType.REFUNDS_INTERNAL_GATEWAY]: RefundsExportDto,\n [DocumentType.PROFIT_FEES]: ProfitFeesExportDto,\n [DocumentType.PAYMENT_METHODS]: PaymentMethodsExportDto,\n [DocumentType.VENDOR_LIST]: VendorListExportDto,\n [DocumentType.VENDOR_SALES]: VendorSalesExportDto,\n [DocumentType.EXCEPTIONS]: ExceptionExportDto,\n\n // pos microservice dtos\n [DocumentType.REFUNDS_POS]: RefundsPOSExportDto,\n [DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto,\n\n // elinks microservice dtos\n} as const;\n","/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nimport { ClassConstructor, plainToInstance } from 'class-transformer';\nimport { ValidationError, validate } from 'class-validator';\nimport { DocumentPayloadMap } from '../dtos/dto-map';\nimport { DocumentType } from '../enums/document-type.enum';\n\n/**\n * Validation result interface\n */\nexport interface ValidationResult<T = any> {\n isValid: boolean;\n errors?: ValidationError[];\n validatedPayload?: T;\n errorMessage?: string;\n}\n\n/**\n * Document payload validator\n */\nexport class DocumentValidator {\n /**\n * Validate a document payload based on its type\n * @param type - Document type\n * @param payload - Raw payload data\n * @returns Validation result with typed payload or errors\n */\n static async validatePayload(type: DocumentType, payload: any): Promise<ValidationResult> {\n // Get the DTO class for this document type\n const DtoClass = DocumentPayloadMap[type];\n\n if (!DtoClass) {\n return {\n isValid: false,\n errorMessage: `Unknown document type: ${type}`,\n errors: [\n {\n property: 'type',\n constraints: { invalid: `Unknown document type: ${type}` },\n } as ValidationError,\n ],\n };\n }\n\n // Transform plain object to class instance\n const instance = plainToInstance(DtoClass as ClassConstructor<any>, payload);\n\n // Validate the instance\n const errors = await validate(instance, {\n whitelist: true,\n validationError: {\n target: false,\n value: true,\n },\n });\n\n if (errors.length > 0) {\n return {\n isValid: false,\n errors,\n errorMessage: 'Payload validation failed',\n };\n }\n\n return {\n isValid: true,\n validatedPayload: instance,\n };\n }\n\n /**\n * Format validation errors into human-readable messages\n * @param errors - Array of validation errors\n * @returns Formatted error messages\n */\n static formatErrors(errors: ValidationError[]): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ValidationError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((message) => {\n messages.push(`${currentPath}: ${message}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n errors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import axios from 'axios';\nimport {\n DateRangeExportDto,\n DocumentGenerationRequestDto,\n DocumentPathResponseDto,\n MerchantDetailsHeaderExportDto,\n} from '../dtos/base';\nimport { FileFormat } from '../enums';\nimport { DocumentType } from '../enums/document-type.enum';\nimport { DocumentValidator } from '../validators/document-validator';\n\n/**\n * Client for interacting with document microservice\n */\nexport class DocumentExportClient {\n client: ReturnType<typeof axios.create>;\n\n constructor(documentMsBaseUrl: string, documentMSCommunicationKey: string) {\n this.client = axios.create({\n baseURL: documentMsBaseUrl,\n headers: {\n 'Content-Type': 'application/json',\n 'x-communication-key': documentMSCommunicationKey || '',\n },\n });\n }\n\n /**\n * Generate a document with type-safe payload\n * @param type - Document type\n * @param payload - Typed payload for the document\n * @returns Document generation response\n */\n async generateDocument(\n documentFormat: FileFormat,\n documentType: DocumentType,\n dateRange: DateRangeExportDto,\n payload: { data: object[] },\n merchantInfo: MerchantDetailsHeaderExportDto,\n presignedURL: boolean = false,\n ): Promise<DocumentPathResponseDto> {\n try {\n // Validate payload before sending if enabled\n\n const validation = await DocumentValidator.validatePayload(documentType, payload);\n\n if (!validation.isValid) {\n const messages = DocumentValidator.formatErrors(validation.errors || []);\n throw new Error(`Document payload validation failed: ${messages.join('; ')}`);\n }\n\n // Construct request\n const request: DocumentGenerationRequestDto = {\n documentFormat,\n documentType,\n dateRange,\n merchantInfo,\n data: payload.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) {\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 { IsDateString, IsNotEmpty } from 'class-validator';\n\nexport class DateRangeExportDto {\n @IsDateString()\n @IsNotEmpty()\n from!: string | Date;\n\n @IsDateString()\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 */\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\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, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n totalBalance!: number;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n availableBalance!: number;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n pendingBalance!: number;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n}\n","import { Type } from 'class-transformer';\nimport { IsEnum, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { DocumentType, FileFormat } from '../../enums';\nimport { DateRangeExportDto } from './index';\nimport { MerchantDetailsHeaderExportDto } from './merchant-headers';\n\n// biome-ignore lint/suspicious/noExplicitAny: false positive\nexport class DocumentGenerationRequestDto<T = any> {\n @IsEnum(FileFormat, { message: 'document format must be one of: pdf, csv, xlsx' })\n @IsNotEmpty()\n documentFormat!: FileFormat;\n\n @IsString()\n @IsNotEmpty()\n documentType!: DocumentType;\n\n @Type(() => MerchantDetailsHeaderExportDto)\n @ValidateNested()\n // make it optional in the validator , but not in the runtime / if it needed so pass it with null , but it must be there\n @IsOptional()\n merchantInfo!: MerchantDetailsHeaderExportDto;\n\n @Type(() => DateRangeExportDto)\n @ValidateNested()\n @IsNotEmpty()\n dateRange!: DateRangeExportDto;\n\n @IsNotEmpty()\n data!: T[];\n\n @IsNotEmpty()\n presignedURL?: boolean = false;\n}\n","export class DocumentPathResponseDto {\n name: string;\n\n path: string;\n\n s3Result: object;\n\n constructor(name: string, path: string, commandResult: object) {\n this.name = name;\n this.path = path;\n this.s3Result = commandResult;\n }\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceDocument {\n @IsString()\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n paidAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantReference!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsOptional()\n transactionId: string = '';\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n amount!: number;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n}\n\nclass InvoiceHistoryDocument {\n @IsString()\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsNotEmpty()\n invoiceId!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsOptional()\n paymentMethodBrand!: string;\n}\n\nexport class InvoiceExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceDocument[];\n}\n\nexport class InvoiceHistoryExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceHistoryDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceHistoryDocument[];\n}\n"]}
1
+ {"version":3,"sources":["../src/enums/document-type.enum.ts","../src/enums/fileFormat.enum.ts","../src/dtos/transactions-ms/exceptions-document.request.dto.ts","../src/dtos/transactions-ms/payment-method.request.dto.ts","../src/dtos/transactions-ms/payout-document.request.dto.ts","../src/dtos/transactions-ms/profit-fees-document.request.dto.ts","../src/dtos/transactions-ms/refund-document.request.dto.ts","../src/dtos/transactions-ms/settlement-document.request.dto.ts","../src/dtos/transactions-ms/statement-document.request.dto.ts","../src/dtos/transactions-ms/transaction-document-template.request.dto.ts","../src/dtos/transactions-ms/vendor-sales-document.request.dto.ts","../src/dtos/dto-map.ts","../src/validators/document-validator.ts","../src/client/document-client.ts","../src/client/errors/document-error.ts","../src/client/errors/validation-error.ts","../src/dtos/base/date-range.ts","../src/utils/chunked-fetcher.util.ts","../src/utils/mask-account-number.ts","../src/dtos/base/merchant-headers.ts","../src/dtos/base/document-generation.request.dto.ts","../src/dtos/base/document-path.response.dto.ts","../src/dtos/elinks-ms/invoice-document.request.dto.ts"],"names":["IsNotEmpty","IsString","Transform","IsNumberString","IsArray","ValidateNested","Type","IsDefined","IsOptional","plainToInstance","validate","axios","IsUrl","IsEnum"],"mappings":"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","file":"index.js","sourcesContent":["import { ValueOf } from '../utils';\n\nexport const DocumentType = {\n STATEMENTS: 'STATEMENTS',\n PAYOUTS: 'PAYOUTS',\n SETTLEMENTS: 'SETTLEMENTS',\n TRANSACTIONS: 'TRANSACTIONS',\n TRANSACTIONS_INTERNAL: 'TRANSACTIONS_INTERNAL',\n REFUNDS: 'REFUNDS',\n REFUNDS_INTERNAL_GATEWAY: 'REFUNDS_INTERNAL_GATEWAY',\n\n PROFIT_FEES: 'PROFIT_FEES',\n PAYMENT_METHODS: 'PAYMENT_METHODS',\n\n VENDOR_LIST: 'VENDOR_LIST',\n VENDOR_SALES: 'VENDOR_SALES',\n EXCEPTIONS: 'EXCEPTIONS',\n\n REFUNDS_POS: 'REFUNDS_POS',\n REFUNDS_INTERNAL_POS: 'REFUNDS_INTERNAL_POS',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // BULK_INVOICE_CUSTOMERS: 'BULK_INVOICE_CUSTOMERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n // CUSTOMERS: 'CUSTOMERS',\n // TERMINAL: 'TERMINAL',\n // INVOICES: 'INVOICES',\n // INVOICE_HISTORY: 'INVOICE_HISTORY',\n // USERS: 'USERS',\n // UNPAID_INVOICES: 'UNPAID_INVOICES',\n\n // TERMINALS: 'TERMINALS',\n // POS_TRANSACTIONS: 'POS_TRANSACTIONS',\n // POS_MERCHANT_TRANSACTIONS: 'POS_MERCHANT_TRANSACTIONS',\n // POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',\n // BULK_INVOICES_INVALID: 'BULK_INVOICES_INVALID',\n // BLACKLIST_INVALID: 'BLACKLIST_INVALID',\n // BLACKLIST: 'BLACKLIST',\n // PARTNERS: 'PARTNERS',\n} as const;\n\nexport type DocumentType = ValueOf<typeof DocumentType>;\n","import { ValueOf } from '../utils';\n\nexport const FileFormat = {\n PDF: 'pdf',\n CSV: 'csv',\n XLSX: 'xlsx',\n} as const;\n\nexport type FileFormat = ValueOf<typeof FileFormat>;\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ExceptionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantRisk!: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n cardIssuer!: string;\n\n @IsString()\n @IsNotEmpty()\n cardHolderName!: string;\n\n @IsString()\n @IsNotEmpty()\n payerIpAddress!: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n}\n\nexport class ExceptionExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ExceptionDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ExceptionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PaymentMethodDocument {\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n percentageOfTotal!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n txnCount!: number | string;\n}\n\nexport class PaymentMethodsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PaymentMethodDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PaymentMethodDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PayoutDocument {\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @IsString()\n @IsNotEmpty()\n notes!: string;\n\n @IsNotEmpty()\n createdAt!: string | Date;\n}\n\nexport class PayoutsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PayoutDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PayoutDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ProfitFeesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalProfitAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n type!: 'PROFIT' | 'FEES';\n}\n\nexport class ProfitFeesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ProfitFeesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ProfitFeesDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass RefundBaseDto {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsOptional()\n refundedAt?: string | Date;\n\n @IsOptional()\n rejectedAt?: string | Date;\n\n @IsString()\n @IsOptional()\n ecomReference?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsNotEmpty()\n originalTxnId!: string;\n\n @IsNotEmpty()\n originalTxnDate!: string | Date;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n originalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n}\n\nclass RefundDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n type!: string;\n\n @IsString()\n @IsNotEmpty()\n requestedBy?: string;\n}\n\nclass RefundPOSDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n authId!: string | null;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n}\n\nexport class RefundsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundDocument[];\n}\n\nexport class RefundsPOSExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundPOSDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundPOSDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass SettlementDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsOptional()\n bank?: string;\n\n @IsString()\n @IsOptional()\n holderName?: string;\n\n @IsString()\n @IsOptional()\n iban?: string;\n\n @IsString()\n @IsOptional()\n accountNumber?: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsNumberString()\n @IsNotEmpty()\n totalTxnCount!: number | string;\n\n @IsOptional()\n settlementDate?: string | null;\n}\n\nexport class SettlementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => SettlementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: SettlementDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass StatementDocument {\n @IsNotEmpty()\n createdAt!: Date | string;\n\n @IsString()\n @IsOptional()\n transactionId?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n invoiceId?: string;\n\n @IsString()\n @IsOptional()\n description?: string;\n\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n type!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n balanceAfter!: number | string;\n}\nexport class StatementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => StatementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: StatementDocument[];\n}\n","import { Transform } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString } from 'class-validator';\n\nclass TransactionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n id!: string;\n\n @IsNotEmpty()\n @IsString()\n ecomReference!: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n merchantName?: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsNotEmpty()\n @IsString()\n customerName!: string;\n\n @IsNotEmpty()\n @IsString()\n customerPhone!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n product!: string;\n\n @IsNotEmpty()\n @IsString()\n paymentMethod!: string;\n\n @IsNotEmpty()\n @IsString()\n status!: string;\n\n @IsString()\n @IsOptional()\n authCode?: string;\n\n @IsString()\n @IsOptional()\n terminalId?: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsOptional()\n cardNumber?: string;\n}\n\nexport class TransactionsExportDto {\n @IsArray()\n @IsNotEmpty()\n @IsDefined()\n data!: TransactionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass VendorSalesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n}\n\nclass VendorListDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @IsString()\n @IsNotEmpty()\n email!: string;\n\n @IsString()\n @IsNotEmpty()\n bank!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @IsNotEmpty()\n commission!: number | string;\n}\n\nexport class VendorSalesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorSalesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorSalesDocument[];\n}\n\nexport class VendorListExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorListDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorListDocument[];\n}\n","import { DocumentType } from '../enums';\nimport {\n ExceptionExportDto,\n PaymentMethodsExportDto,\n PayoutsExportDto,\n ProfitFeesExportDto,\n RefundsExportDto,\n RefundsPOSExportDto,\n SettlementsExportDto,\n StatementsExportDto,\n TransactionsExportDto,\n VendorListExportDto,\n VendorSalesExportDto,\n} from './transactions-ms';\n\nexport const DocumentPayloadMap = {\n // transactions microservice dtos\n [DocumentType.STATEMENTS]: StatementsExportDto,\n [DocumentType.PAYOUTS]: PayoutsExportDto,\n [DocumentType.SETTLEMENTS]: SettlementsExportDto,\n [DocumentType.TRANSACTIONS]: TransactionsExportDto,\n [DocumentType.TRANSACTIONS_INTERNAL]: TransactionsExportDto,\n [DocumentType.REFUNDS]: RefundsExportDto,\n [DocumentType.REFUNDS_INTERNAL_GATEWAY]: RefundsExportDto,\n [DocumentType.PROFIT_FEES]: ProfitFeesExportDto,\n [DocumentType.PAYMENT_METHODS]: PaymentMethodsExportDto,\n [DocumentType.VENDOR_LIST]: VendorListExportDto,\n [DocumentType.VENDOR_SALES]: VendorSalesExportDto,\n [DocumentType.EXCEPTIONS]: ExceptionExportDto,\n\n // pos microservice dtos\n [DocumentType.REFUNDS_POS]: RefundsPOSExportDto,\n [DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto,\n\n // elinks microservice dtos\n} as const;\n","/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nimport { ClassConstructor, plainToInstance } from 'class-transformer';\nimport { ValidationError, validate } from 'class-validator';\nimport { DocumentPayloadMap } from '../dtos/dto-map';\nimport { DocumentType } from '../enums/document-type.enum';\n\n/**\n * Validation result interface\n */\nexport interface ValidationResult<T = any> {\n isValid: boolean;\n errors?: ValidationError[];\n validatedPayload?: T;\n errorMessage?: string;\n}\n\n/**\n * Document payload validator\n */\nexport class DocumentValidator {\n /**\n * Validate a document payload based on its type\n * @param type - Document type\n * @param payload - Raw payload data\n * @returns Validation result with typed payload or errors\n */\n static async validatePayload(type: DocumentType, payload: any): Promise<ValidationResult> {\n // Get the DTO class for this document type\n const DtoClass = DocumentPayloadMap[type];\n\n if (!DtoClass) {\n return {\n isValid: false,\n errorMessage: `Unknown document type: ${type}`,\n errors: [\n {\n property: 'type',\n constraints: { invalid: `Unknown document type: ${type}` },\n } as ValidationError,\n ],\n };\n }\n\n // Transform plain object to class instance\n const instance = plainToInstance(DtoClass as ClassConstructor<any>, payload);\n\n // Validate the instance\n const errors = await validate(instance, {\n whitelist: true,\n validationError: {\n target: false,\n value: true,\n },\n });\n\n if (errors.length > 0) {\n return {\n isValid: false,\n errors,\n errorMessage: 'Payload validation failed',\n };\n }\n\n return {\n isValid: true,\n validatedPayload: instance,\n };\n }\n\n /**\n * Format validation errors into human-readable messages\n * @param errors - Array of validation errors\n * @returns Formatted error messages\n */\n static formatErrors(errors: ValidationError[]): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ValidationError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((message) => {\n messages.push(`${currentPath}: ${message}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n errors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import axios from 'axios';\nimport {\n DateRangeExportDto,\n DocumentGenerationRequestDto,\n DocumentPathResponseDto,\n MerchantDetailsHeaderExportDto,\n} from '../dtos/base';\nimport { FileFormat } from '../enums';\nimport { DocumentType } from '../enums/document-type.enum';\nimport { DocumentValidator } from '../validators/document-validator';\n\n/**\n * Client for interacting with document microservice\n */\nexport class DocumentExportClient {\n client: ReturnType<typeof axios.create>;\n\n constructor(documentMsBaseUrl: string, documentMSCommunicationKey: string) {\n this.client = axios.create({\n baseURL: documentMsBaseUrl,\n headers: {\n 'Content-Type': 'application/json',\n 'x-communication-key': documentMSCommunicationKey || '',\n },\n });\n }\n\n /**\n * Generate a document with type-safe payload\n * @param type - Document type\n * @param payload - Typed payload for the document\n * @returns Document generation response\n */\n async generateDocument(\n documentFormat: FileFormat,\n documentType: DocumentType,\n dateRange: DateRangeExportDto,\n payload: { data: object[] },\n merchantInfo: MerchantDetailsHeaderExportDto,\n presignedURL: boolean = false,\n ): Promise<DocumentPathResponseDto> {\n try {\n // Validate payload before sending if enabled\n\n const validation = await DocumentValidator.validatePayload(documentType, payload);\n\n if (!validation.isValid) {\n const messages = DocumentValidator.formatErrors(validation.errors || []);\n const firstMessage = messages[0];\n throw new Error(`Document payload validation failed: ${firstMessage}`);\n }\n\n // Construct request\n const request: DocumentGenerationRequestDto = {\n documentFormat,\n documentType,\n dateRange,\n merchantInfo,\n data: payload.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 */\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\n // If actual records are less than total (edge case), trim array\n if (currentIndex < totalRecords) {\n allRecords.length = currentIndex;\n }\n\n return allRecords;\n}\n","export function maskAccountNumber(str: string): string {\n if (!str) return '';\n const lastFourDigits = str.slice(-4);\n const maskedPart = str.slice(0, -4).replace(/\\d/g, 'x');\n return maskedPart + lastFourDigits || '';\n}\n","import { Transform } from 'class-transformer';\nimport { IsNotEmpty, IsNumberString, IsOptional, IsString, IsUrl } from 'class-validator';\nimport { maskAccountNumber } from '../../utils';\n\nexport class MerchantDetailsHeaderExportDto {\n @IsString()\n @IsNotEmpty()\n name!: string;\n\n @IsUrl({ protocols: ['https'] })\n @IsOptional()\n profile?: string;\n\n @Transform(({ value }) => maskAccountNumber(value))\n @IsString()\n @IsNotEmpty()\n accountNumber!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n availableBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n pendingBalance!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n}\n","import { Type } from 'class-transformer';\nimport { IsEnum, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { DocumentType, FileFormat } from '../../enums';\nimport { DateRangeExportDto } from './index';\nimport { MerchantDetailsHeaderExportDto } from './merchant-headers';\n\n// biome-ignore lint/suspicious/noExplicitAny: false positive\nexport class DocumentGenerationRequestDto<T = any> {\n @IsEnum(FileFormat, { message: 'document format must be one of: pdf, csv, xlsx' })\n @IsNotEmpty()\n documentFormat!: FileFormat;\n\n @IsString()\n @IsNotEmpty()\n documentType!: DocumentType;\n\n @Type(() => MerchantDetailsHeaderExportDto)\n @ValidateNested()\n // make it optional in the validator , but not in the runtime / if it needed so pass it with null , but it must be there\n @IsOptional()\n merchantInfo?: MerchantDetailsHeaderExportDto;\n\n @Type(() => DateRangeExportDto)\n @ValidateNested()\n @IsNotEmpty()\n dateRange!: DateRangeExportDto;\n\n @IsNotEmpty()\n data!: T[];\n\n @IsNotEmpty()\n presignedURL?: boolean = false;\n}\n","export class DocumentPathResponseDto {\n name: string;\n\n path: string;\n\n s3Result: object;\n\n constructor(name: string, path: string, commandResult: object) {\n this.name = name;\n this.path = path;\n this.s3Result = commandResult;\n }\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n paidAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantReference!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsOptional()\n transactionId: string = '';\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n}\n\nclass InvoiceHistoryDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsNotEmpty()\n invoiceId!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsOptional()\n paymentMethodBrand!: string;\n}\n\nexport class InvoiceExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceDocument[];\n}\n\nexport class InvoiceHistoryExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceHistoryDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceHistoryDocument[];\n}\n"]}
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import axios from 'axios';
2
2
  import { Transform, Type, plainToInstance } from 'class-transformer';
3
- import { IsString, IsNotEmpty, IsNumber, IsArray, ValidateNested, IsDefined, IsOptional, IsDateString, IsUrl, IsEnum, validate } from 'class-validator';
3
+ import { IsNotEmpty, IsString, IsNumberString, IsArray, ValidateNested, IsDefined, IsOptional, IsUrl, IsEnum, validate } from 'class-validator';
4
4
 
5
5
  var __defProp = Object.defineProperty;
6
6
  var __decorateClass = (decorators, target, key, kind) => {
@@ -68,7 +68,6 @@ var ExceptionDocument = class {
68
68
  action;
69
69
  };
70
70
  __decorateClass([
71
- IsString(),
72
71
  IsNotEmpty()
73
72
  ], ExceptionDocument.prototype, "createdAt");
74
73
  __decorateClass([
@@ -105,7 +104,7 @@ __decorateClass([
105
104
  ], ExceptionDocument.prototype, "paymentMethod");
106
105
  __decorateClass([
107
106
  Transform(({ value }) => Number(value).toFixed(3)),
108
- IsNumber(),
107
+ IsNumberString(),
109
108
  IsNotEmpty()
110
109
  ], ExceptionDocument.prototype, "amount");
111
110
  __decorateClass([
@@ -134,7 +133,7 @@ __decorateClass([
134
133
  ], PaymentMethodDocument.prototype, "paymentMethod");
135
134
  __decorateClass([
136
135
  Transform(({ value }) => Number(value).toFixed(3)),
137
- IsNumber(),
136
+ IsNumberString(),
138
137
  IsNotEmpty()
139
138
  ], PaymentMethodDocument.prototype, "totalAmount");
140
139
  __decorateClass([
@@ -142,7 +141,7 @@ __decorateClass([
142
141
  IsNotEmpty()
143
142
  ], PaymentMethodDocument.prototype, "percentageOfTotal");
144
143
  __decorateClass([
145
- IsNumber(),
144
+ IsNumberString(),
146
145
  IsNotEmpty()
147
146
  ], PaymentMethodDocument.prototype, "txnCount");
148
147
  var PaymentMethodsExportDto = class {
@@ -179,7 +178,7 @@ __decorateClass([
179
178
  ], PayoutDocument.prototype, "iban");
180
179
  __decorateClass([
181
180
  Transform(({ value }) => Number(value).toFixed(3)),
182
- IsNumber(),
181
+ IsNumberString(),
183
182
  IsNotEmpty()
184
183
  ], PayoutDocument.prototype, "amount");
185
184
  __decorateClass([
@@ -187,7 +186,7 @@ __decorateClass([
187
186
  IsNotEmpty()
188
187
  ], PayoutDocument.prototype, "currency");
189
188
  __decorateClass([
190
- IsNumber(),
189
+ IsNumberString(),
191
190
  IsNotEmpty()
192
191
  ], PayoutDocument.prototype, "numOfTxn");
193
192
  __decorateClass([
@@ -195,7 +194,6 @@ __decorateClass([
195
194
  IsNotEmpty()
196
195
  ], PayoutDocument.prototype, "notes");
197
196
  __decorateClass([
198
- IsString(),
199
197
  IsNotEmpty()
200
198
  ], PayoutDocument.prototype, "createdAt");
201
199
  var PayoutsExportDto = class {
@@ -225,17 +223,17 @@ __decorateClass([
225
223
  IsNotEmpty()
226
224
  ], ProfitFeesDocument.prototype, "merchantName");
227
225
  __decorateClass([
228
- IsNumber(),
226
+ IsNumberString(),
229
227
  IsNotEmpty()
230
228
  ], ProfitFeesDocument.prototype, "numOfTxn");
231
229
  __decorateClass([
232
230
  Transform(({ value }) => Number(value).toFixed(3)),
233
- IsNumber(),
231
+ IsNumberString(),
234
232
  IsNotEmpty()
235
233
  ], ProfitFeesDocument.prototype, "totalTxnAmount");
236
234
  __decorateClass([
237
235
  Transform(({ value }) => Number(value).toFixed(3)),
238
- IsNumber(),
236
+ IsNumberString(),
239
237
  IsNotEmpty()
240
238
  ], ProfitFeesDocument.prototype, "totalProfitAmount");
241
239
  __decorateClass([
@@ -289,17 +287,16 @@ __decorateClass([
289
287
  IsNotEmpty()
290
288
  ], RefundBaseDto.prototype, "originalTxnId");
291
289
  __decorateClass([
292
- IsString(),
293
290
  IsNotEmpty()
294
291
  ], RefundBaseDto.prototype, "originalTxnDate");
295
292
  __decorateClass([
296
293
  Transform(({ value }) => Number(value).toFixed(3)),
297
- IsNumber(),
294
+ IsNumberString(),
298
295
  IsNotEmpty()
299
296
  ], RefundBaseDto.prototype, "originalTxnAmount");
300
297
  __decorateClass([
301
298
  Transform(({ value }) => Number(value).toFixed(3)),
302
- IsNumber(),
299
+ IsNumberString(),
303
300
  IsNotEmpty()
304
301
  ], RefundBaseDto.prototype, "amount");
305
302
  __decorateClass([
@@ -428,11 +425,11 @@ __decorateClass([
428
425
  ], SettlementDocument.prototype, "accountNumber");
429
426
  __decorateClass([
430
427
  Transform(({ value }) => Number(value).toFixed(3)),
431
- IsNumber(),
428
+ IsNumberString(),
432
429
  IsNotEmpty()
433
430
  ], SettlementDocument.prototype, "totalAmount");
434
431
  __decorateClass([
435
- IsNumber(),
432
+ IsNumberString(),
436
433
  IsNotEmpty()
437
434
  ], SettlementDocument.prototype, "totalTxnCount");
438
435
  __decorateClass([
@@ -483,7 +480,7 @@ __decorateClass([
483
480
  ], StatementDocument.prototype, "paymentMethod");
484
481
  __decorateClass([
485
482
  Transform(({ value }) => Number(value).toFixed(3)),
486
- IsNumber(),
483
+ IsNumberString(),
487
484
  IsNotEmpty()
488
485
  ], StatementDocument.prototype, "amount");
489
486
  __decorateClass([
@@ -491,7 +488,7 @@ __decorateClass([
491
488
  ], StatementDocument.prototype, "type");
492
489
  __decorateClass([
493
490
  Transform(({ value }) => Number(value).toFixed(3)),
494
- IsNumber(),
491
+ IsNumberString(),
495
492
  IsNotEmpty()
496
493
  ], StatementDocument.prototype, "balanceAfter");
497
494
  var StatementsExportDto = class {
@@ -554,8 +551,8 @@ __decorateClass([
554
551
  ], TransactionDocument.prototype, "customerPhone");
555
552
  __decorateClass([
556
553
  Transform(({ value }) => Number(value).toFixed(3)),
557
- IsNotEmpty(),
558
- IsNumber()
554
+ IsNumberString(),
555
+ IsNotEmpty()
559
556
  ], TransactionDocument.prototype, "amount");
560
557
  __decorateClass([
561
558
  IsNotEmpty()
@@ -612,7 +609,7 @@ __decorateClass([
612
609
  ], VendorSalesDocument.prototype, "vendorName");
613
610
  __decorateClass([
614
611
  Transform(({ value }) => Number(value).toFixed(3)),
615
- IsNumber(),
612
+ IsNumberString(),
616
613
  IsNotEmpty()
617
614
  ], VendorSalesDocument.prototype, "totalTxnAmount");
618
615
  var VendorListDocument = class {
@@ -781,7 +778,8 @@ var DocumentExportClient = class {
781
778
  const validation = await DocumentValidator.validatePayload(documentType, payload);
782
779
  if (!validation.isValid) {
783
780
  const messages = DocumentValidator.formatErrors(validation.errors || []);
784
- throw new Error(`Document payload validation failed: ${messages.join("; ")}`);
781
+ const firstMessage = messages[0];
782
+ throw new Error(`Document payload validation failed: ${firstMessage}`);
785
783
  }
786
784
  const request = {
787
785
  documentFormat,
@@ -794,6 +792,7 @@ var DocumentExportClient = class {
794
792
  const response = await this.client.post("/v2/document-generation", request);
795
793
  return response.data;
796
794
  } catch (error) {
795
+ console.log(error.response?.data || error?.message);
797
796
  return Promise.reject(error);
798
797
  }
799
798
  }
@@ -855,11 +854,9 @@ var DateRangeExportDto = class {
855
854
  to;
856
855
  };
857
856
  __decorateClass([
858
- IsDateString(),
859
857
  IsNotEmpty()
860
858
  ], DateRangeExportDto.prototype, "from");
861
859
  __decorateClass([
862
- IsDateString(),
863
860
  IsNotEmpty()
864
861
  ], DateRangeExportDto.prototype, "to");
865
862
 
@@ -938,17 +935,17 @@ __decorateClass([
938
935
  ], MerchantDetailsHeaderExportDto.prototype, "accountNumber");
939
936
  __decorateClass([
940
937
  Transform(({ value }) => Number(value).toFixed(3)),
941
- IsNumber(),
938
+ IsNumberString(),
942
939
  IsNotEmpty()
943
940
  ], MerchantDetailsHeaderExportDto.prototype, "totalBalance");
944
941
  __decorateClass([
945
942
  Transform(({ value }) => Number(value).toFixed(3)),
946
- IsNumber(),
943
+ IsNumberString(),
947
944
  IsNotEmpty()
948
945
  ], MerchantDetailsHeaderExportDto.prototype, "availableBalance");
949
946
  __decorateClass([
950
947
  Transform(({ value }) => Number(value).toFixed(3)),
951
- IsNumber(),
948
+ IsNumberString(),
952
949
  IsNotEmpty()
953
950
  ], MerchantDetailsHeaderExportDto.prototype, "pendingBalance");
954
951
  __decorateClass([
@@ -1015,11 +1012,9 @@ var InvoiceDocument = class {
1015
1012
  paymentMethod;
1016
1013
  };
1017
1014
  __decorateClass([
1018
- IsString(),
1019
1015
  IsNotEmpty()
1020
1016
  ], InvoiceDocument.prototype, "createdAt");
1021
1017
  __decorateClass([
1022
- IsString(),
1023
1018
  IsNotEmpty()
1024
1019
  ], InvoiceDocument.prototype, "paidAt");
1025
1020
  __decorateClass([
@@ -1052,7 +1047,7 @@ __decorateClass([
1052
1047
  ], InvoiceDocument.prototype, "status");
1053
1048
  __decorateClass([
1054
1049
  Transform(({ value }) => Number(value).toFixed(3)),
1055
- IsNumber(),
1050
+ IsNumberString(),
1056
1051
  IsNotEmpty()
1057
1052
  ], InvoiceDocument.prototype, "amount");
1058
1053
  __decorateClass([
@@ -1068,7 +1063,6 @@ var InvoiceHistoryDocument = class {
1068
1063
  paymentMethodBrand;
1069
1064
  };
1070
1065
  __decorateClass([
1071
- IsString(),
1072
1066
  IsNotEmpty()
1073
1067
  ], InvoiceHistoryDocument.prototype, "createdAt");
1074
1068
  __decorateClass([
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/enums/document-type.enum.ts","../src/enums/fileFormat.enum.ts","../src/dtos/transactions-ms/exceptions-document.request.dto.ts","../src/dtos/transactions-ms/payment-method.request.dto.ts","../src/dtos/transactions-ms/payout-document.request.dto.ts","../src/dtos/transactions-ms/profit-fees-document.request.dto.ts","../src/dtos/transactions-ms/refund-document.request.dto.ts","../src/dtos/transactions-ms/settlement-document.request.dto.ts","../src/dtos/transactions-ms/statement-document.request.dto.ts","../src/dtos/transactions-ms/transaction-document-template.request.dto.ts","../src/dtos/transactions-ms/vendor-sales-document.request.dto.ts","../src/dtos/dto-map.ts","../src/validators/document-validator.ts","../src/client/document-client.ts","../src/client/errors/document-error.ts","../src/client/errors/validation-error.ts","../src/dtos/base/date-range.ts","../src/utils/chunked-fetcher.util.ts","../src/utils/mask-account-number.ts","../src/dtos/base/merchant-headers.ts","../src/dtos/base/document-generation.request.dto.ts","../src/dtos/base/document-path.response.dto.ts","../src/dtos/elinks-ms/invoice-document.request.dto.ts"],"names":["IsString","IsNotEmpty","Transform","IsNumber","IsArray","ValidateNested","Type","IsDefined","IsOptional"],"mappings":"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","file":"index.mjs","sourcesContent":["import { ValueOf } from '../utils';\n\nexport const DocumentType = {\n STATEMENTS: 'STATEMENTS',\n PAYOUTS: 'PAYOUTS',\n SETTLEMENTS: 'SETTLEMENTS',\n TRANSACTIONS: 'TRANSACTIONS',\n TRANSACTIONS_INTERNAL: 'TRANSACTIONS_INTERNAL',\n REFUNDS: 'REFUNDS',\n REFUNDS_INTERNAL_GATEWAY: 'REFUNDS_INTERNAL_GATEWAY',\n\n PROFIT_FEES: 'PROFIT_FEES',\n PAYMENT_METHODS: 'PAYMENT_METHODS',\n\n VENDOR_LIST: 'VENDOR_LIST',\n VENDOR_SALES: 'VENDOR_SALES',\n EXCEPTIONS: 'EXCEPTIONS',\n\n REFUNDS_POS: 'REFUNDS_POS',\n REFUNDS_INTERNAL_POS: 'REFUNDS_INTERNAL_POS',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // BULK_INVOICE_CUSTOMERS: 'BULK_INVOICE_CUSTOMERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n // CUSTOMERS: 'CUSTOMERS',\n // TERMINAL: 'TERMINAL',\n // INVOICES: 'INVOICES',\n // INVOICE_HISTORY: 'INVOICE_HISTORY',\n // USERS: 'USERS',\n // UNPAID_INVOICES: 'UNPAID_INVOICES',\n\n // TERMINALS: 'TERMINALS',\n // POS_TRANSACTIONS: 'POS_TRANSACTIONS',\n // POS_MERCHANT_TRANSACTIONS: 'POS_MERCHANT_TRANSACTIONS',\n // POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',\n // BULK_INVOICES_INVALID: 'BULK_INVOICES_INVALID',\n // BLACKLIST_INVALID: 'BLACKLIST_INVALID',\n // BLACKLIST: 'BLACKLIST',\n // PARTNERS: 'PARTNERS',\n} as const;\n\nexport type DocumentType = ValueOf<typeof DocumentType>;\n","import { ValueOf } from '../utils';\n\nexport const FileFormat = {\n PDF: 'pdf',\n CSV: 'csv',\n XLSX: 'xlsx',\n} as const;\n\nexport type FileFormat = ValueOf<typeof FileFormat>;\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumber, IsString, ValidateNested } from 'class-validator';\n\nclass ExceptionDocument {\n @IsString()\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 @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 @IsNumber()\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, IsNumber, IsString, ValidateNested } from 'class-validator';\n\nclass PaymentMethodDocument {\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n totalAmount!: number;\n\n @IsString()\n @IsNotEmpty()\n percentageOfTotal!: string;\n\n @IsNumber()\n @IsNotEmpty()\n txnCount!: number;\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, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n amount!: number;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n\n @IsNumber()\n @IsNotEmpty()\n numOfTxn!: number;\n\n @IsString()\n @IsNotEmpty()\n notes!: string;\n\n @IsString()\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, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n numOfTxn!: number;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n totalTxnAmount!: number;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n totalProfitAmount!: number;\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, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass RefundBaseDto {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsOptional()\n refundedAt?: string | Date;\n\n @IsOptional()\n rejectedAt?: string | Date;\n\n @IsString()\n @IsOptional()\n ecomReference?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsNotEmpty()\n originalTxnId!: string;\n\n @IsString()\n @IsNotEmpty()\n originalTxnDate!: string | Date;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n originalTxnAmount!: number;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n amount!: number;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n}\n\nclass RefundDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n type!: string;\n\n @IsString()\n @IsNotEmpty()\n requestedBy?: string;\n}\n\nclass RefundPOSDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n authId!: string | null;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n}\n\nexport class RefundsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundDocument[];\n}\n\nexport class RefundsPOSExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundPOSDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundPOSDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n totalAmount!: number;\n\n @IsNumber()\n @IsNotEmpty()\n totalTxnCount!: number;\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, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n amount!: number;\n\n @IsNotEmpty()\n type!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n balanceAfter!: number;\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, IsNumber, 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 @IsNotEmpty()\n @IsNumber()\n amount!: number;\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, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n totalTxnAmount!: number;\n}\n\nclass VendorListDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @IsString()\n @IsNotEmpty()\n email!: string;\n\n @IsString()\n @IsNotEmpty()\n bank!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @IsNotEmpty()\n commission!: number | string;\n}\n\nexport class VendorSalesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorSalesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorSalesDocument[];\n}\n\nexport class VendorListExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorListDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorListDocument[];\n}\n","import { DocumentType } from '../enums';\nimport {\n ExceptionExportDto,\n PaymentMethodsExportDto,\n PayoutsExportDto,\n ProfitFeesExportDto,\n RefundsExportDto,\n RefundsPOSExportDto,\n SettlementsExportDto,\n StatementsExportDto,\n TransactionsExportDto,\n VendorListExportDto,\n VendorSalesExportDto,\n} from './transactions-ms';\n\nexport const DocumentPayloadMap = {\n // transactions microservice dtos\n [DocumentType.STATEMENTS]: StatementsExportDto,\n [DocumentType.PAYOUTS]: PayoutsExportDto,\n [DocumentType.SETTLEMENTS]: SettlementsExportDto,\n [DocumentType.TRANSACTIONS]: TransactionsExportDto,\n [DocumentType.TRANSACTIONS_INTERNAL]: TransactionsExportDto,\n [DocumentType.REFUNDS]: RefundsExportDto,\n [DocumentType.REFUNDS_INTERNAL_GATEWAY]: RefundsExportDto,\n [DocumentType.PROFIT_FEES]: ProfitFeesExportDto,\n [DocumentType.PAYMENT_METHODS]: PaymentMethodsExportDto,\n [DocumentType.VENDOR_LIST]: VendorListExportDto,\n [DocumentType.VENDOR_SALES]: VendorSalesExportDto,\n [DocumentType.EXCEPTIONS]: ExceptionExportDto,\n\n // pos microservice dtos\n [DocumentType.REFUNDS_POS]: RefundsPOSExportDto,\n [DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto,\n\n // elinks microservice dtos\n} as const;\n","/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nimport { ClassConstructor, plainToInstance } from 'class-transformer';\nimport { ValidationError, validate } from 'class-validator';\nimport { DocumentPayloadMap } from '../dtos/dto-map';\nimport { DocumentType } from '../enums/document-type.enum';\n\n/**\n * Validation result interface\n */\nexport interface ValidationResult<T = any> {\n isValid: boolean;\n errors?: ValidationError[];\n validatedPayload?: T;\n errorMessage?: string;\n}\n\n/**\n * Document payload validator\n */\nexport class DocumentValidator {\n /**\n * Validate a document payload based on its type\n * @param type - Document type\n * @param payload - Raw payload data\n * @returns Validation result with typed payload or errors\n */\n static async validatePayload(type: DocumentType, payload: any): Promise<ValidationResult> {\n // Get the DTO class for this document type\n const DtoClass = DocumentPayloadMap[type];\n\n if (!DtoClass) {\n return {\n isValid: false,\n errorMessage: `Unknown document type: ${type}`,\n errors: [\n {\n property: 'type',\n constraints: { invalid: `Unknown document type: ${type}` },\n } as ValidationError,\n ],\n };\n }\n\n // Transform plain object to class instance\n const instance = plainToInstance(DtoClass as ClassConstructor<any>, payload);\n\n // Validate the instance\n const errors = await validate(instance, {\n whitelist: true,\n validationError: {\n target: false,\n value: true,\n },\n });\n\n if (errors.length > 0) {\n return {\n isValid: false,\n errors,\n errorMessage: 'Payload validation failed',\n };\n }\n\n return {\n isValid: true,\n validatedPayload: instance,\n };\n }\n\n /**\n * Format validation errors into human-readable messages\n * @param errors - Array of validation errors\n * @returns Formatted error messages\n */\n static formatErrors(errors: ValidationError[]): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ValidationError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((message) => {\n messages.push(`${currentPath}: ${message}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n errors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import axios from 'axios';\nimport {\n DateRangeExportDto,\n DocumentGenerationRequestDto,\n DocumentPathResponseDto,\n MerchantDetailsHeaderExportDto,\n} from '../dtos/base';\nimport { FileFormat } from '../enums';\nimport { DocumentType } from '../enums/document-type.enum';\nimport { DocumentValidator } from '../validators/document-validator';\n\n/**\n * Client for interacting with document microservice\n */\nexport class DocumentExportClient {\n client: ReturnType<typeof axios.create>;\n\n constructor(documentMsBaseUrl: string, documentMSCommunicationKey: string) {\n this.client = axios.create({\n baseURL: documentMsBaseUrl,\n headers: {\n 'Content-Type': 'application/json',\n 'x-communication-key': documentMSCommunicationKey || '',\n },\n });\n }\n\n /**\n * Generate a document with type-safe payload\n * @param type - Document type\n * @param payload - Typed payload for the document\n * @returns Document generation response\n */\n async generateDocument(\n documentFormat: FileFormat,\n documentType: DocumentType,\n dateRange: DateRangeExportDto,\n payload: { data: object[] },\n merchantInfo: MerchantDetailsHeaderExportDto,\n presignedURL: boolean = false,\n ): Promise<DocumentPathResponseDto> {\n try {\n // Validate payload before sending if enabled\n\n const validation = await DocumentValidator.validatePayload(documentType, payload);\n\n if (!validation.isValid) {\n const messages = DocumentValidator.formatErrors(validation.errors || []);\n throw new Error(`Document payload validation failed: ${messages.join('; ')}`);\n }\n\n // Construct request\n const request: DocumentGenerationRequestDto = {\n documentFormat,\n documentType,\n dateRange,\n merchantInfo,\n data: payload.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) {\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 { IsDateString, IsNotEmpty } from 'class-validator';\n\nexport class DateRangeExportDto {\n @IsDateString()\n @IsNotEmpty()\n from!: string | Date;\n\n @IsDateString()\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 */\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\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, IsNumber, 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 @IsNumber()\n @IsNotEmpty()\n totalBalance!: number;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n availableBalance!: number;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n pendingBalance!: number;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n}\n","import { Type } from 'class-transformer';\nimport { IsEnum, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { DocumentType, FileFormat } from '../../enums';\nimport { DateRangeExportDto } from './index';\nimport { MerchantDetailsHeaderExportDto } from './merchant-headers';\n\n// biome-ignore lint/suspicious/noExplicitAny: false positive\nexport class DocumentGenerationRequestDto<T = any> {\n @IsEnum(FileFormat, { message: 'document format must be one of: pdf, csv, xlsx' })\n @IsNotEmpty()\n documentFormat!: FileFormat;\n\n @IsString()\n @IsNotEmpty()\n documentType!: DocumentType;\n\n @Type(() => MerchantDetailsHeaderExportDto)\n @ValidateNested()\n // make it optional in the validator , but not in the runtime / if it needed so pass it with null , but it must be there\n @IsOptional()\n merchantInfo!: MerchantDetailsHeaderExportDto;\n\n @Type(() => DateRangeExportDto)\n @ValidateNested()\n @IsNotEmpty()\n dateRange!: DateRangeExportDto;\n\n @IsNotEmpty()\n data!: T[];\n\n @IsNotEmpty()\n presignedURL?: boolean = false;\n}\n","export class DocumentPathResponseDto {\n name: string;\n\n path: string;\n\n s3Result: object;\n\n constructor(name: string, path: string, commandResult: object) {\n this.name = name;\n this.path = path;\n this.s3Result = commandResult;\n }\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceDocument {\n @IsString()\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n paidAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantReference!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsOptional()\n transactionId: string = '';\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumber()\n @IsNotEmpty()\n amount!: number;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n}\n\nclass InvoiceHistoryDocument {\n @IsString()\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsNotEmpty()\n invoiceId!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsOptional()\n paymentMethodBrand!: string;\n}\n\nexport class InvoiceExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceDocument[];\n}\n\nexport class InvoiceHistoryExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceHistoryDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceHistoryDocument[];\n}\n"]}
1
+ {"version":3,"sources":["../src/enums/document-type.enum.ts","../src/enums/fileFormat.enum.ts","../src/dtos/transactions-ms/exceptions-document.request.dto.ts","../src/dtos/transactions-ms/payment-method.request.dto.ts","../src/dtos/transactions-ms/payout-document.request.dto.ts","../src/dtos/transactions-ms/profit-fees-document.request.dto.ts","../src/dtos/transactions-ms/refund-document.request.dto.ts","../src/dtos/transactions-ms/settlement-document.request.dto.ts","../src/dtos/transactions-ms/statement-document.request.dto.ts","../src/dtos/transactions-ms/transaction-document-template.request.dto.ts","../src/dtos/transactions-ms/vendor-sales-document.request.dto.ts","../src/dtos/dto-map.ts","../src/validators/document-validator.ts","../src/client/document-client.ts","../src/client/errors/document-error.ts","../src/client/errors/validation-error.ts","../src/dtos/base/date-range.ts","../src/utils/chunked-fetcher.util.ts","../src/utils/mask-account-number.ts","../src/dtos/base/merchant-headers.ts","../src/dtos/base/document-generation.request.dto.ts","../src/dtos/base/document-path.response.dto.ts","../src/dtos/elinks-ms/invoice-document.request.dto.ts"],"names":["IsString","IsNotEmpty","Transform","IsNumberString","IsArray","ValidateNested","Type","IsDefined","IsOptional"],"mappings":"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","file":"index.mjs","sourcesContent":["import { ValueOf } from '../utils';\n\nexport const DocumentType = {\n STATEMENTS: 'STATEMENTS',\n PAYOUTS: 'PAYOUTS',\n SETTLEMENTS: 'SETTLEMENTS',\n TRANSACTIONS: 'TRANSACTIONS',\n TRANSACTIONS_INTERNAL: 'TRANSACTIONS_INTERNAL',\n REFUNDS: 'REFUNDS',\n REFUNDS_INTERNAL_GATEWAY: 'REFUNDS_INTERNAL_GATEWAY',\n\n PROFIT_FEES: 'PROFIT_FEES',\n PAYMENT_METHODS: 'PAYMENT_METHODS',\n\n VENDOR_LIST: 'VENDOR_LIST',\n VENDOR_SALES: 'VENDOR_SALES',\n EXCEPTIONS: 'EXCEPTIONS',\n\n REFUNDS_POS: 'REFUNDS_POS',\n REFUNDS_INTERNAL_POS: 'REFUNDS_INTERNAL_POS',\n\n // MERCHANT_USERS: 'MERCHANT_USERS',\n // INTERNAL_USERS: 'INTERNAL_USERS',\n // BULK_INVOICE_CUSTOMERS: 'BULK_INVOICE_CUSTOMERS',\n // USERS_AND_AGENTS: 'USERS_AND_AGENTS',\n // CUSTOMERS: 'CUSTOMERS',\n // TERMINAL: 'TERMINAL',\n // INVOICES: 'INVOICES',\n // INVOICE_HISTORY: 'INVOICE_HISTORY',\n // USERS: 'USERS',\n // UNPAID_INVOICES: 'UNPAID_INVOICES',\n\n // TERMINALS: 'TERMINALS',\n // POS_TRANSACTIONS: 'POS_TRANSACTIONS',\n // POS_MERCHANT_TRANSACTIONS: 'POS_MERCHANT_TRANSACTIONS',\n // POS_TRANSACTIONS_INVALID: 'POS_TRANSACTIONS_INVALID',\n // BULK_INVOICES_INVALID: 'BULK_INVOICES_INVALID',\n // BLACKLIST_INVALID: 'BLACKLIST_INVALID',\n // BLACKLIST: 'BLACKLIST',\n // PARTNERS: 'PARTNERS',\n} as const;\n\nexport type DocumentType = ValueOf<typeof DocumentType>;\n","import { ValueOf } from '../utils';\n\nexport const FileFormat = {\n PDF: 'pdf',\n CSV: 'csv',\n XLSX: 'xlsx',\n} as const;\n\nexport type FileFormat = ValueOf<typeof FileFormat>;\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ExceptionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantRisk!: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n cardIssuer!: string;\n\n @IsString()\n @IsNotEmpty()\n cardHolderName!: string;\n\n @IsString()\n @IsNotEmpty()\n payerIpAddress!: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n}\n\nexport class ExceptionExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ExceptionDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ExceptionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PaymentMethodDocument {\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n percentageOfTotal!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n txnCount!: number | string;\n}\n\nexport class PaymentMethodsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PaymentMethodDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PaymentMethodDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass PayoutDocument {\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @IsString()\n @IsNotEmpty()\n notes!: string;\n\n @IsNotEmpty()\n createdAt!: string | Date;\n}\n\nexport class PayoutsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => PayoutDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: PayoutDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass ProfitFeesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsNumberString()\n @IsNotEmpty()\n numOfTxn!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalProfitAmount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n type!: 'PROFIT' | 'FEES';\n}\n\nexport class ProfitFeesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ProfitFeesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: ProfitFeesDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass RefundBaseDto {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsOptional()\n refundedAt?: string | Date;\n\n @IsOptional()\n rejectedAt?: string | Date;\n\n @IsString()\n @IsOptional()\n ecomReference?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsNotEmpty()\n originalTxnId!: string;\n\n @IsNotEmpty()\n originalTxnDate!: string | Date;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n originalTxnAmount!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n}\n\nclass RefundDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsString()\n @IsNotEmpty()\n product!: string;\n\n @IsString()\n @IsNotEmpty()\n type!: string;\n\n @IsString()\n @IsNotEmpty()\n requestedBy?: string;\n}\n\nclass RefundPOSDocument extends RefundBaseDto {\n @IsString()\n @IsNotEmpty()\n authId!: string | null;\n\n @IsString()\n @IsNotEmpty()\n terminalId!: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsNotEmpty()\n cardNumber!: string;\n}\n\nexport class RefundsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundDocument[];\n}\n\nexport class RefundsPOSExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RefundPOSDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: RefundPOSDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass SettlementDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantName!: string;\n\n @IsOptional()\n bank?: string;\n\n @IsString()\n @IsOptional()\n holderName?: string;\n\n @IsString()\n @IsOptional()\n iban?: string;\n\n @IsString()\n @IsOptional()\n accountNumber?: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalAmount!: number | string;\n\n @IsNumberString()\n @IsNotEmpty()\n totalTxnCount!: number | string;\n\n @IsOptional()\n settlementDate?: string | null;\n}\n\nexport class SettlementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => SettlementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: SettlementDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass StatementDocument {\n @IsNotEmpty()\n createdAt!: Date | string;\n\n @IsString()\n @IsOptional()\n transactionId?: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n invoiceId?: string;\n\n @IsString()\n @IsOptional()\n description?: string;\n\n @IsNotEmpty()\n paymentMethod!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n type!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n balanceAfter!: number | string;\n}\nexport class StatementsExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => StatementDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: StatementDocument[];\n}\n","import { Transform } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString } from 'class-validator';\n\nclass TransactionDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n id!: string;\n\n @IsNotEmpty()\n @IsString()\n ecomReference!: string;\n\n @IsString()\n @IsOptional()\n merchantReference?: string;\n\n @IsString()\n @IsOptional()\n merchantName?: string;\n\n @IsString()\n @IsOptional()\n invoiceNumber?: string;\n\n @IsNotEmpty()\n @IsString()\n customerName!: string;\n\n @IsNotEmpty()\n @IsString()\n customerPhone!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsNotEmpty()\n product!: string;\n\n @IsNotEmpty()\n @IsString()\n paymentMethod!: string;\n\n @IsNotEmpty()\n @IsString()\n status!: string;\n\n @IsString()\n @IsOptional()\n authCode?: string;\n\n @IsString()\n @IsOptional()\n terminalId?: string;\n\n @IsString()\n @IsOptional()\n terminalName?: string;\n\n @IsString()\n @IsOptional()\n cardNumber?: string;\n}\n\nexport class TransactionsExportDto {\n @IsArray()\n @IsNotEmpty()\n @IsDefined()\n data!: TransactionDocument[];\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsString, ValidateNested } from 'class-validator';\n\nclass VendorSalesDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalTxnAmount!: number | string;\n}\n\nclass VendorListDocument {\n @IsString()\n @IsNotEmpty()\n mid!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorNumber!: string;\n\n @IsString()\n @IsNotEmpty()\n vendorName!: string;\n\n @IsString()\n @IsNotEmpty()\n email!: string;\n\n @IsString()\n @IsNotEmpty()\n bank!: string;\n\n @IsString()\n @IsNotEmpty()\n iban!: string;\n\n @IsNotEmpty()\n commission!: number | string;\n}\n\nexport class VendorSalesExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorSalesDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorSalesDocument[];\n}\n\nexport class VendorListExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => VendorListDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: VendorListDocument[];\n}\n","import { DocumentType } from '../enums';\nimport {\n ExceptionExportDto,\n PaymentMethodsExportDto,\n PayoutsExportDto,\n ProfitFeesExportDto,\n RefundsExportDto,\n RefundsPOSExportDto,\n SettlementsExportDto,\n StatementsExportDto,\n TransactionsExportDto,\n VendorListExportDto,\n VendorSalesExportDto,\n} from './transactions-ms';\n\nexport const DocumentPayloadMap = {\n // transactions microservice dtos\n [DocumentType.STATEMENTS]: StatementsExportDto,\n [DocumentType.PAYOUTS]: PayoutsExportDto,\n [DocumentType.SETTLEMENTS]: SettlementsExportDto,\n [DocumentType.TRANSACTIONS]: TransactionsExportDto,\n [DocumentType.TRANSACTIONS_INTERNAL]: TransactionsExportDto,\n [DocumentType.REFUNDS]: RefundsExportDto,\n [DocumentType.REFUNDS_INTERNAL_GATEWAY]: RefundsExportDto,\n [DocumentType.PROFIT_FEES]: ProfitFeesExportDto,\n [DocumentType.PAYMENT_METHODS]: PaymentMethodsExportDto,\n [DocumentType.VENDOR_LIST]: VendorListExportDto,\n [DocumentType.VENDOR_SALES]: VendorSalesExportDto,\n [DocumentType.EXCEPTIONS]: ExceptionExportDto,\n\n // pos microservice dtos\n [DocumentType.REFUNDS_POS]: RefundsPOSExportDto,\n [DocumentType.REFUNDS_INTERNAL_POS]: RefundsPOSExportDto,\n\n // elinks microservice dtos\n} as const;\n","/** biome-ignore-all lint/suspicious/noExplicitAny: false positive */\nimport { ClassConstructor, plainToInstance } from 'class-transformer';\nimport { ValidationError, validate } from 'class-validator';\nimport { DocumentPayloadMap } from '../dtos/dto-map';\nimport { DocumentType } from '../enums/document-type.enum';\n\n/**\n * Validation result interface\n */\nexport interface ValidationResult<T = any> {\n isValid: boolean;\n errors?: ValidationError[];\n validatedPayload?: T;\n errorMessage?: string;\n}\n\n/**\n * Document payload validator\n */\nexport class DocumentValidator {\n /**\n * Validate a document payload based on its type\n * @param type - Document type\n * @param payload - Raw payload data\n * @returns Validation result with typed payload or errors\n */\n static async validatePayload(type: DocumentType, payload: any): Promise<ValidationResult> {\n // Get the DTO class for this document type\n const DtoClass = DocumentPayloadMap[type];\n\n if (!DtoClass) {\n return {\n isValid: false,\n errorMessage: `Unknown document type: ${type}`,\n errors: [\n {\n property: 'type',\n constraints: { invalid: `Unknown document type: ${type}` },\n } as ValidationError,\n ],\n };\n }\n\n // Transform plain object to class instance\n const instance = plainToInstance(DtoClass as ClassConstructor<any>, payload);\n\n // Validate the instance\n const errors = await validate(instance, {\n whitelist: true,\n validationError: {\n target: false,\n value: true,\n },\n });\n\n if (errors.length > 0) {\n return {\n isValid: false,\n errors,\n errorMessage: 'Payload validation failed',\n };\n }\n\n return {\n isValid: true,\n validatedPayload: instance,\n };\n }\n\n /**\n * Format validation errors into human-readable messages\n * @param errors - Array of validation errors\n * @returns Formatted error messages\n */\n static formatErrors(errors: ValidationError[]): string[] {\n const messages: string[] = [];\n\n const formatError = (error: ValidationError, path: string = ''): void => {\n const currentPath = path ? `${path}.${error.property}` : error.property;\n\n if (error.constraints) {\n Object.values(error.constraints).forEach((message) => {\n messages.push(`${currentPath}: ${message}`);\n });\n }\n\n if (error.children && error.children.length > 0) {\n error.children.forEach((child) => formatError(child, currentPath));\n }\n };\n\n errors.forEach((error) => formatError(error));\n return messages;\n }\n}\n","import axios from 'axios';\nimport {\n DateRangeExportDto,\n DocumentGenerationRequestDto,\n DocumentPathResponseDto,\n MerchantDetailsHeaderExportDto,\n} from '../dtos/base';\nimport { FileFormat } from '../enums';\nimport { DocumentType } from '../enums/document-type.enum';\nimport { DocumentValidator } from '../validators/document-validator';\n\n/**\n * Client for interacting with document microservice\n */\nexport class DocumentExportClient {\n client: ReturnType<typeof axios.create>;\n\n constructor(documentMsBaseUrl: string, documentMSCommunicationKey: string) {\n this.client = axios.create({\n baseURL: documentMsBaseUrl,\n headers: {\n 'Content-Type': 'application/json',\n 'x-communication-key': documentMSCommunicationKey || '',\n },\n });\n }\n\n /**\n * Generate a document with type-safe payload\n * @param type - Document type\n * @param payload - Typed payload for the document\n * @returns Document generation response\n */\n async generateDocument(\n documentFormat: FileFormat,\n documentType: DocumentType,\n dateRange: DateRangeExportDto,\n payload: { data: object[] },\n merchantInfo: MerchantDetailsHeaderExportDto,\n presignedURL: boolean = false,\n ): Promise<DocumentPathResponseDto> {\n try {\n // Validate payload before sending if enabled\n\n const validation = await DocumentValidator.validatePayload(documentType, payload);\n\n if (!validation.isValid) {\n const messages = DocumentValidator.formatErrors(validation.errors || []);\n const firstMessage = messages[0];\n throw new Error(`Document payload validation failed: ${firstMessage}`);\n }\n\n // Construct request\n const request: DocumentGenerationRequestDto = {\n documentFormat,\n documentType,\n dateRange,\n merchantInfo,\n data: payload.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 */\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\n // If actual records are less than total (edge case), trim array\n if (currentIndex < totalRecords) {\n allRecords.length = currentIndex;\n }\n\n return allRecords;\n}\n","export function maskAccountNumber(str: string): string {\n if (!str) return '';\n const lastFourDigits = str.slice(-4);\n const maskedPart = str.slice(0, -4).replace(/\\d/g, 'x');\n return maskedPart + lastFourDigits || '';\n}\n","import { Transform } from 'class-transformer';\nimport { IsNotEmpty, IsNumberString, IsOptional, IsString, IsUrl } from 'class-validator';\nimport { maskAccountNumber } from '../../utils';\n\nexport class MerchantDetailsHeaderExportDto {\n @IsString()\n @IsNotEmpty()\n name!: string;\n\n @IsUrl({ protocols: ['https'] })\n @IsOptional()\n profile?: string;\n\n @Transform(({ value }) => maskAccountNumber(value))\n @IsString()\n @IsNotEmpty()\n accountNumber!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n totalBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n availableBalance!: number | string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n pendingBalance!: number | string;\n\n @IsString()\n @IsNotEmpty()\n currency!: string;\n}\n","import { Type } from 'class-transformer';\nimport { IsEnum, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { DocumentType, FileFormat } from '../../enums';\nimport { DateRangeExportDto } from './index';\nimport { MerchantDetailsHeaderExportDto } from './merchant-headers';\n\n// biome-ignore lint/suspicious/noExplicitAny: false positive\nexport class DocumentGenerationRequestDto<T = any> {\n @IsEnum(FileFormat, { message: 'document format must be one of: pdf, csv, xlsx' })\n @IsNotEmpty()\n documentFormat!: FileFormat;\n\n @IsString()\n @IsNotEmpty()\n documentType!: DocumentType;\n\n @Type(() => MerchantDetailsHeaderExportDto)\n @ValidateNested()\n // make it optional in the validator , but not in the runtime / if it needed so pass it with null , but it must be there\n @IsOptional()\n merchantInfo?: MerchantDetailsHeaderExportDto;\n\n @Type(() => DateRangeExportDto)\n @ValidateNested()\n @IsNotEmpty()\n dateRange!: DateRangeExportDto;\n\n @IsNotEmpty()\n data!: T[];\n\n @IsNotEmpty()\n presignedURL?: boolean = false;\n}\n","export class DocumentPathResponseDto {\n name: string;\n\n path: string;\n\n s3Result: object;\n\n constructor(name: string, path: string, commandResult: object) {\n this.name = name;\n this.path = path;\n this.s3Result = commandResult;\n }\n}\n","import { Transform, Type } from 'class-transformer';\nimport { IsArray, IsDefined, IsNotEmpty, IsNumberString, IsOptional, IsString, ValidateNested } from 'class-validator';\n\nclass InvoiceDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsNotEmpty()\n paidAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n customerName!: string;\n\n @IsString()\n @IsNotEmpty()\n customerPhone!: string;\n\n @IsString()\n @IsNotEmpty()\n id!: string;\n\n @IsString()\n @IsNotEmpty()\n merchantReference!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsOptional()\n transactionId: string = '';\n\n @IsString()\n @IsNotEmpty()\n status!: string;\n\n @Transform(({ value }) => Number(value).toFixed(3))\n @IsNumberString()\n @IsNotEmpty()\n amount!: number | string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n}\n\nclass InvoiceHistoryDocument {\n @IsNotEmpty()\n createdAt!: string | Date;\n\n @IsString()\n @IsNotEmpty()\n action!: string;\n\n @IsString()\n @IsNotEmpty()\n createdBy!: string;\n\n @IsString()\n @IsNotEmpty()\n invoiceId!: string;\n\n @IsString()\n @IsNotEmpty()\n paymentMethod!: string;\n\n @IsString()\n @IsOptional()\n paymentMethodBrand!: string;\n}\n\nexport class InvoiceExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceDocument[];\n}\n\nexport class InvoiceHistoryExportDto {\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => InvoiceHistoryDocument)\n @IsNotEmpty()\n @IsDefined()\n data!: InvoiceHistoryDocument[];\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ecom-documents",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "TypeScript contracts and client SDK for document microservice",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",