ecom-documents 1.0.4 → 1.0.6

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