@infrab4a/connect 4.18.0-beta.0 → 4.18.0-beta.1

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.
Files changed (69) hide show
  1. package/index.cjs.js +122 -752
  2. package/index.esm.js +125 -729
  3. package/package.json +1 -1
  4. package/src/domain/general/models/index.d.ts +0 -1
  5. package/src/domain/general/repositories/index.d.ts +0 -1
  6. package/src/domain/shopping/index.d.ts +0 -4
  7. package/src/domain/shopping/models/coupons/coupon.d.ts +6 -2
  8. package/src/domain/shopping/models/coupons/enums/coupon-category.enum.d.ts +24 -0
  9. package/src/domain/shopping/models/coupons/enums/coupon-channels.enum.d.ts +10 -0
  10. package/src/domain/shopping/models/coupons/enums/index.d.ts +1 -0
  11. package/src/domain/shopping/models/coupons/types/coupon-category.type.d.ts +2 -0
  12. package/src/domain/shopping/models/coupons/types/coupon-channel.type.d.ts +2 -0
  13. package/src/domain/shopping/models/coupons/types/index.d.ts +2 -0
  14. package/src/domain/shopping/models/index.d.ts +0 -1
  15. package/src/domain/shopping/models/order.d.ts +2 -2
  16. package/src/domain/shopping/models/payment.d.ts +63 -10
  17. package/src/domain/shopping/models/types/index.d.ts +4 -4
  18. package/src/domain/shopping/types/index.d.ts +0 -5
  19. package/src/errors/index.d.ts +2 -7
  20. package/src/infra/firebase/firestore/repositories/general/index.d.ts +0 -1
  21. package/src/infra/firebase/firestore/repositories/shopping/index.d.ts +1 -1
  22. package/src/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +1 -0
  23. package/src/utils/index.d.ts +2 -2
  24. package/src/domain/general/models/sequences.d.ts +0 -9
  25. package/src/domain/general/repositories/sequences.repository.d.ts +0 -4
  26. package/src/domain/shopping/enums/antifraud-providers.enum.d.ts +0 -6
  27. package/src/domain/shopping/enums/index.d.ts +0 -3
  28. package/src/domain/shopping/enums/payment-methods.enum.d.ts +0 -6
  29. package/src/domain/shopping/enums/payment-providers.enum.d.ts +0 -5
  30. package/src/domain/shopping/factories/adyen-payment-method.factory.d.ts +0 -8
  31. package/src/domain/shopping/factories/antifraud-provider.factory.d.ts +0 -15
  32. package/src/domain/shopping/factories/base-payment-method.factory.d.ts +0 -7
  33. package/src/domain/shopping/factories/glampoints-payment-method.factory.d.ts +0 -8
  34. package/src/domain/shopping/factories/index.d.ts +0 -5
  35. package/src/domain/shopping/factories/pagarme-payment-method.factory.d.ts +0 -10
  36. package/src/domain/shopping/factories/payment-provider.factory.d.ts +0 -15
  37. package/src/domain/shopping/interfaces/antifraud-method-factory.interface.d.ts +0 -11
  38. package/src/domain/shopping/interfaces/antifraud-provider.interface.d.ts +0 -5
  39. package/src/domain/shopping/interfaces/index.d.ts +0 -7
  40. package/src/domain/shopping/interfaces/payment-method-factory.interface.d.ts +0 -14
  41. package/src/domain/shopping/interfaces/payment-provider-bank-slip.interface.d.ts +0 -5
  42. package/src/domain/shopping/interfaces/payment-provider-card.interface.d.ts +0 -7
  43. package/src/domain/shopping/interfaces/payment-provider-glampoints.interface.d.ts +0 -5
  44. package/src/domain/shopping/interfaces/payment-provider-pix.interface.d.ts +0 -5
  45. package/src/domain/shopping/models/payment-transaction.d.ts +0 -67
  46. package/src/domain/shopping/services/adyen-card-payment.service.d.ts +0 -13
  47. package/src/domain/shopping/services/antifraud-bankslip.service.d.ts +0 -9
  48. package/src/domain/shopping/services/antifraud-card.service.d.ts +0 -18
  49. package/src/domain/shopping/services/antifraud-glampoints.service.d.ts +0 -6
  50. package/src/domain/shopping/services/antifraud-pix.service.d.ts +0 -6
  51. package/src/domain/shopping/services/glampoints-payment.service.d.ts +0 -8
  52. package/src/domain/shopping/services/index.d.ts +0 -9
  53. package/src/domain/shopping/services/pagarme-bank-slip-payment.service.d.ts +0 -11
  54. package/src/domain/shopping/services/pagarme-card-payment.service.d.ts +0 -13
  55. package/src/domain/shopping/services/pagarme-pix-payment.service.d.ts +0 -11
  56. package/src/domain/shopping/types/adyen-credentials.type.d.ts +0 -6
  57. package/src/domain/shopping/types/antifraud-provider.type.d.ts +0 -2
  58. package/src/domain/shopping/types/pagarme-credentials.type.d.ts +0 -5
  59. package/src/domain/shopping/types/payment-method.type.d.ts +0 -2
  60. package/src/domain/shopping/types/payment-provider.type.d.ts +0 -2
  61. package/src/errors/business.error.d.ts +0 -7
  62. package/src/errors/fraud-validation.error.d.ts +0 -7
  63. package/src/errors/payment.error.d.ts +0 -7
  64. package/src/errors/stock-limit.error.d.ts +0 -5
  65. package/src/errors/stock-out.error.d.ts +0 -5
  66. package/src/errors/types/checkout-additional-data-erro.type.d.ts +0 -5
  67. package/src/errors/types/index.d.ts +0 -1
  68. package/src/infra/firebase/firestore/repositories/general/sequences-firestore.repository.d.ts +0 -7
  69. package/src/infra/firebase/firestore/repositories/shopping/order-blocked-firestore.repository.d.ts +0 -9
package/index.esm.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import 'reflect-metadata';
2
2
  import { __decorate, __metadata, __values, __spreadArray, __read, __extends, __rest } from 'tslib';
3
3
  import { plainToInstance, instanceToPlain, Type, Expose } from 'class-transformer';
4
- import { parseISO, format, startOfDay, endOfDay, subDays, addDays } from 'date-fns';
5
- export { add, addBusinessDays, addDays, addMonths, addYears, endOfDay, format, formatISO9075, parseISO, startOfDay, sub, subDays } from 'date-fns';
4
+ import { parseISO } from 'date-fns';
5
+ export { add, addBusinessDays, addDays, addMonths, addYears, endOfDay, format, formatISO9075, parseISO, startOfDay, sub } from 'date-fns';
6
6
  import { isNil, isArray, first, last, flatten, compact, get, isString, each, unset, isObject, set, isNumber, chunk, isEmpty, isDate, isBoolean, isInteger, isNaN as isNaN$1, sortBy, omit } from 'lodash';
7
7
  export { chunk, each, get, isBoolean, isDate, isEmpty, isInteger, isNaN, isNil, isNumber, isObject, isString, now, omit, pick, set, sortBy, unset } from 'lodash';
8
8
  import { debug } from 'debug';
@@ -13,65 +13,6 @@ import { deleteField, arrayUnion, arrayRemove, Timestamp, doc, getDoc, updateDoc
13
13
  import { ref, uploadBytes } from 'firebase/storage';
14
14
  import { mutation, query as query$1 } from 'gql-query-builder';
15
15
 
16
- var AntifraudProviders;
17
- (function (AntifraudProviders) {
18
- AntifraudProviders["BANKSLIP"] = "bankSlip";
19
- AntifraudProviders["CARD"] = "card";
20
- AntifraudProviders["PIX"] = "pix";
21
- AntifraudProviders["POINTS"] = "glampoints";
22
- })(AntifraudProviders || (AntifraudProviders = {}));
23
-
24
- var PaymentMethods;
25
- (function (PaymentMethods) {
26
- PaymentMethods["CARD"] = "card";
27
- PaymentMethods["BANKSLIP"] = "bankSlip";
28
- PaymentMethods["PIX"] = "pix";
29
- PaymentMethods["POINTS"] = "glampoints";
30
- })(PaymentMethods || (PaymentMethods = {}));
31
-
32
- var PaymentProviders;
33
- (function (PaymentProviders) {
34
- PaymentProviders["PAGARME"] = "pagarMe";
35
- PaymentProviders["ADYEN"] = "adyen";
36
- PaymentProviders["GLAMPOINTS"] = "glampoints";
37
- })(PaymentProviders || (PaymentProviders = {}));
38
-
39
- class BasePaymentMethodFactory {
40
- constructor(methods) {
41
- this.methods = methods;
42
- }
43
- build(method) {
44
- return this.methods[method];
45
- }
46
- }
47
-
48
- class AdyenPaymentMethodFactory extends BasePaymentMethodFactory {
49
- }
50
-
51
- class AntifraudProviderFactory {
52
- constructor(antifraudProviders) {
53
- this.antifraudProviders = antifraudProviders;
54
- }
55
- build(provider) {
56
- return this.antifraudProviders[provider];
57
- }
58
- }
59
-
60
- class GlampointsPaymentMethodFactory extends BasePaymentMethodFactory {
61
- }
62
-
63
- class PagarmePaymentMethodFactory extends BasePaymentMethodFactory {
64
- }
65
-
66
- class PaymentProviderFactory {
67
- constructor(paymentProviders) {
68
- this.paymentProviders = paymentProviders;
69
- }
70
- build(provider) {
71
- return this.paymentProviders[provider];
72
- }
73
- }
74
-
75
16
  class BaseModel {
76
17
  get identifier() {
77
18
  const fields = this.constructor.identifiersFields.filter((field) => field !== 'identifier');
@@ -618,182 +559,175 @@ var Status;
618
559
  Status["CANCELLED"] = "Cancelado";
619
560
  })(Status || (Status = {}));
620
561
 
621
- class PaymentTransaction extends BaseModel {
562
+ class Payment extends BaseModel {
563
+ static get identifiersFields() {
564
+ return ['id'];
565
+ }
622
566
  }
623
567
  __decorate([
624
568
  Expose({ name: 'refuse_reason' }),
625
569
  __metadata("design:type", String)
626
- ], PaymentTransaction.prototype, "refuseReason", void 0);
570
+ ], Payment.prototype, "refuseReason", void 0);
627
571
  __decorate([
628
572
  Expose({ name: 'status_reason' }),
629
573
  __metadata("design:type", String)
630
- ], PaymentTransaction.prototype, "statusReason", void 0);
574
+ ], Payment.prototype, "statusReason", void 0);
631
575
  __decorate([
632
576
  Expose({ name: 'acquirer_response_code' }),
633
577
  __metadata("design:type", String)
634
- ], PaymentTransaction.prototype, "acquirerResponseCode", void 0);
578
+ ], Payment.prototype, "acquirerResponseCode", void 0);
635
579
  __decorate([
636
580
  Expose({ name: 'acquirer_name' }),
637
581
  __metadata("design:type", String)
638
- ], PaymentTransaction.prototype, "acquirerName", void 0);
582
+ ], Payment.prototype, "acquirerName", void 0);
639
583
  __decorate([
640
584
  Expose({ name: 'acquirer_id' }),
641
585
  __metadata("design:type", String)
642
- ], PaymentTransaction.prototype, "acquirerId", void 0);
586
+ ], Payment.prototype, "acquirerId", void 0);
643
587
  __decorate([
644
588
  Expose({ name: 'authorization_code' }),
645
589
  __metadata("design:type", String)
646
- ], PaymentTransaction.prototype, "authorizationCode", void 0);
590
+ ], Payment.prototype, "authorizationCode", void 0);
647
591
  __decorate([
648
592
  Expose({ name: 'soft_descriptor' }),
649
593
  __metadata("design:type", String)
650
- ], PaymentTransaction.prototype, "softDescriptor", void 0);
594
+ ], Payment.prototype, "softDescriptor", void 0);
651
595
  __decorate([
652
596
  Expose({ name: 'date_created' }),
653
597
  __metadata("design:type", String)
654
- ], PaymentTransaction.prototype, "dateCreated", void 0);
598
+ ], Payment.prototype, "dateCreated", void 0);
655
599
  __decorate([
656
600
  Expose({ name: 'date_updated' }),
657
601
  __metadata("design:type", String)
658
- ], PaymentTransaction.prototype, "dateUpdated", void 0);
602
+ ], Payment.prototype, "dateUpdated", void 0);
659
603
  __decorate([
660
604
  Expose({ name: 'authorized_amount' }),
661
605
  __metadata("design:type", Number)
662
- ], PaymentTransaction.prototype, "authorizedAmount", void 0);
606
+ ], Payment.prototype, "authorizedAmount", void 0);
663
607
  __decorate([
664
608
  Expose({ name: 'paid_amount' }),
665
609
  __metadata("design:type", Number)
666
- ], PaymentTransaction.prototype, "paidAmount", void 0);
610
+ ], Payment.prototype, "paidAmount", void 0);
667
611
  __decorate([
668
612
  Expose({ name: 'paid_at' }),
669
613
  __metadata("design:type", String)
670
- ], PaymentTransaction.prototype, "paidAt", void 0);
614
+ ], Payment.prototype, "paidAt", void 0);
671
615
  __decorate([
672
616
  Expose({ name: 'refunded_amount' }),
673
617
  __metadata("design:type", Number)
674
- ], PaymentTransaction.prototype, "refundedAmount", void 0);
618
+ ], Payment.prototype, "refundedAmount", void 0);
675
619
  __decorate([
676
620
  Expose({ name: 'card_holder_name' }),
677
621
  __metadata("design:type", String)
678
- ], PaymentTransaction.prototype, "cardHolderName", void 0);
622
+ ], Payment.prototype, "cardHolderName", void 0);
679
623
  __decorate([
680
624
  Expose({ name: 'card_last_digits' }),
681
625
  __metadata("design:type", String)
682
- ], PaymentTransaction.prototype, "cardLastDigits", void 0);
626
+ ], Payment.prototype, "cardLastDigits", void 0);
683
627
  __decorate([
684
628
  Expose({ name: 'card_first_digits' }),
685
629
  __metadata("design:type", String)
686
- ], PaymentTransaction.prototype, "cardFirstDigits", void 0);
630
+ ], Payment.prototype, "cardFirstDigits", void 0);
687
631
  __decorate([
688
632
  Expose({ name: 'card_brand' }),
689
633
  __metadata("design:type", String)
690
- ], PaymentTransaction.prototype, "cardBrand", void 0);
634
+ ], Payment.prototype, "cardBrand", void 0);
691
635
  __decorate([
692
636
  Expose({ name: 'card_pin_mode' }),
693
637
  __metadata("design:type", String)
694
- ], PaymentTransaction.prototype, "cardPinMode", void 0);
638
+ ], Payment.prototype, "cardPinMode", void 0);
695
639
  __decorate([
696
640
  Expose({ name: 'card_magstripe_fallback' }),
697
641
  __metadata("design:type", Boolean)
698
- ], PaymentTransaction.prototype, "cardMagstripeFallback", void 0);
642
+ ], Payment.prototype, "cardMagstripeFallback", void 0);
699
643
  __decorate([
700
644
  Expose({ name: 'cvm_pin' }),
701
645
  __metadata("design:type", Boolean)
702
- ], PaymentTransaction.prototype, "cvmPin", void 0);
646
+ ], Payment.prototype, "cvmPin", void 0);
703
647
  __decorate([
704
648
  Expose({ name: 'postback_url' }),
705
649
  __metadata("design:type", String)
706
- ], PaymentTransaction.prototype, "postbackUrl", void 0);
650
+ ], Payment.prototype, "postbackUrl", void 0);
707
651
  __decorate([
708
652
  Expose({ name: 'payment_method' }),
709
653
  __metadata("design:type", String)
710
- ], PaymentTransaction.prototype, "paymentMethod", void 0);
654
+ ], Payment.prototype, "paymentMethod", void 0);
711
655
  __decorate([
712
656
  Expose({ name: 'capture_method' }),
713
657
  __metadata("design:type", String)
714
- ], PaymentTransaction.prototype, "captureMethod", void 0);
658
+ ], Payment.prototype, "captureMethod", void 0);
715
659
  __decorate([
716
660
  Expose({ name: 'antifraud_score' }),
717
661
  __metadata("design:type", String)
718
- ], PaymentTransaction.prototype, "antifraudScore", void 0);
662
+ ], Payment.prototype, "antifraudScore", void 0);
719
663
  __decorate([
720
664
  Expose({ name: 'boleto_url' }),
721
665
  __metadata("design:type", String)
722
- ], PaymentTransaction.prototype, "boletoUrl", void 0);
666
+ ], Payment.prototype, "boletoUrl", void 0);
723
667
  __decorate([
724
668
  Expose({ name: 'boleto_barcode' }),
725
669
  __metadata("design:type", String)
726
- ], PaymentTransaction.prototype, "boletoBarcode", void 0);
670
+ ], Payment.prototype, "boletoBarcode", void 0);
727
671
  __decorate([
728
672
  Expose({ name: 'boleto_expiration_date' }),
729
673
  __metadata("design:type", String)
730
- ], PaymentTransaction.prototype, "boletoExpirationDate", void 0);
674
+ ], Payment.prototype, "boletoExpirationDate", void 0);
731
675
  __decorate([
732
676
  Expose({ name: 'subscription_id' }),
733
677
  __metadata("design:type", String)
734
- ], PaymentTransaction.prototype, "subscriptionId", void 0);
678
+ ], Payment.prototype, "subscriptionId", void 0);
735
679
  __decorate([
736
680
  Expose({ name: 'split_rules' }),
737
681
  __metadata("design:type", String)
738
- ], PaymentTransaction.prototype, "splitRules", void 0);
682
+ ], Payment.prototype, "splitRules", void 0);
739
683
  __decorate([
740
684
  Expose({ name: 'antifraud_metadata' }),
741
685
  __metadata("design:type", Object)
742
- ], PaymentTransaction.prototype, "antifraudMetadata", void 0);
686
+ ], Payment.prototype, "antifraudMetadata", void 0);
743
687
  __decorate([
744
688
  Expose({ name: 'reference_key' }),
745
689
  __metadata("design:type", String)
746
- ], PaymentTransaction.prototype, "referenceKey", void 0);
690
+ ], Payment.prototype, "referenceKey", void 0);
747
691
  __decorate([
748
692
  Expose({ name: 'local_transaction_id' }),
749
693
  __metadata("design:type", String)
750
- ], PaymentTransaction.prototype, "localTransactionId", void 0);
694
+ ], Payment.prototype, "localTransactionId", void 0);
751
695
  __decorate([
752
696
  Expose({ name: 'local_time' }),
753
697
  __metadata("design:type", String)
754
- ], PaymentTransaction.prototype, "localTime", void 0);
698
+ ], Payment.prototype, "localTime", void 0);
755
699
  __decorate([
756
700
  Expose({ name: 'fraud_covered' }),
757
701
  __metadata("design:type", Boolean)
758
- ], PaymentTransaction.prototype, "fraudCovered", void 0);
702
+ ], Payment.prototype, "fraudCovered", void 0);
759
703
  __decorate([
760
704
  Expose({ name: 'fraud_reimbursed' }),
761
705
  __metadata("design:type", String)
762
- ], PaymentTransaction.prototype, "fraudReimbursed", void 0);
706
+ ], Payment.prototype, "fraudReimbursed", void 0);
763
707
  __decorate([
764
708
  Expose({ name: 'order_id' }),
765
709
  __metadata("design:type", String)
766
- ], PaymentTransaction.prototype, "orderId", void 0);
710
+ ], Payment.prototype, "orderId", void 0);
767
711
  __decorate([
768
712
  Expose({ name: 'risk_level' }),
769
713
  __metadata("design:type", String)
770
- ], PaymentTransaction.prototype, "riskLevel", void 0);
714
+ ], Payment.prototype, "riskLevel", void 0);
771
715
  __decorate([
772
716
  Expose({ name: 'receipt_url' }),
773
717
  __metadata("design:type", String)
774
- ], PaymentTransaction.prototype, "receiptUrl", void 0);
718
+ ], Payment.prototype, "receiptUrl", void 0);
775
719
  __decorate([
776
720
  Expose({ name: 'private_label' }),
777
721
  __metadata("design:type", String)
778
- ], PaymentTransaction.prototype, "privateLabel", void 0);
722
+ ], Payment.prototype, "privateLabel", void 0);
779
723
  __decorate([
780
724
  Expose({ name: 'pix_qr_code' }),
781
725
  __metadata("design:type", String)
782
- ], PaymentTransaction.prototype, "pixQrCode", void 0);
726
+ ], Payment.prototype, "pixQrCode", void 0);
783
727
  __decorate([
784
728
  Expose({ name: 'pix_expiration_date' }),
785
729
  __metadata("design:type", String)
786
- ], PaymentTransaction.prototype, "pixExpirationDate", void 0);
787
-
788
- class Payment extends BaseModel {
789
- static get identifiersFields() {
790
- return ['id'];
791
- }
792
- }
793
- __decorate([
794
- Type(() => PaymentTransaction),
795
- __metadata("design:type", PaymentTransaction)
796
- ], Payment.prototype, "transaction", void 0);
730
+ ], Payment.prototype, "pixExpirationDate", void 0);
797
731
 
798
732
  class SubscriptionPayment extends BaseModel {
799
733
  static get identifiersFields() {
@@ -2210,7 +2144,45 @@ var CouponCategory;
2210
2144
  CouponCategory["CRM"] = "CRM";
2211
2145
  CouponCategory["LOJAUNICO"] = "Loja \u00FAnico";
2212
2146
  CouponCategory["Outros"] = "Outros";
2213
- })(CouponCategory || (CouponCategory = {}));
2147
+ })(CouponCategory || (CouponCategory = {}));
2148
+ var CouponOldCategories;
2149
+ (function (CouponOldCategories) {
2150
+ CouponOldCategories["Reembolso"] = "Reembolso";
2151
+ CouponOldCategories["Desculpas"] = "Desculpas";
2152
+ CouponOldCategories["BFlu"] = "BFlu";
2153
+ CouponOldCategories["ROYAL"] = "Royal";
2154
+ CouponOldCategories["Glamqueen"] = "Glamqueen";
2155
+ CouponOldCategories["Glampartner"] = "Glampartner";
2156
+ CouponOldCategories["Glamgirl"] = "Glamgirl";
2157
+ CouponOldCategories["Glamdiva"] = "Glamdiva";
2158
+ CouponOldCategories["Impulsionamento"] = "Impulsionamento";
2159
+ CouponOldCategories["PaidMedia"] = "Paid Media";
2160
+ CouponOldCategories["Organic"] = "Organic";
2161
+ CouponOldCategories["Direct"] = "Direct";
2162
+ CouponOldCategories["CRM"] = "CRM";
2163
+ CouponOldCategories["LOJAUNICO"] = "Loja \u00FAnico";
2164
+ CouponOldCategories["Outros"] = "Outros";
2165
+ })(CouponOldCategories || (CouponOldCategories = {}));
2166
+ var CouponCategories;
2167
+ (function (CouponCategories) {
2168
+ CouponCategories["API_LOJAUNICA"] = "API_LOJAUNICA";
2169
+ CouponCategories["COMPRE_E_GANHE"] = "COMPRE_E_GANHE";
2170
+ CouponCategories["DESCONTO"] = "DESCONTO";
2171
+ CouponCategories["REEMBOLSO"] = "REEMBOLSO";
2172
+ CouponCategories["DESCULPAS"] = "DESCULPAS";
2173
+ })(CouponCategories || (CouponCategories = {}));
2174
+
2175
+ var CouponChannels;
2176
+ (function (CouponChannels) {
2177
+ CouponChannels["BANNER"] = "7";
2178
+ CouponChannels["BFLUENCE"] = "3";
2179
+ CouponChannels["CRM"] = "2";
2180
+ CouponChannels["GLAMGIRL"] = "0";
2181
+ CouponChannels["PAID"] = "4";
2182
+ CouponChannels["ROYAL"] = "1";
2183
+ CouponChannels["SAC"] = "8";
2184
+ CouponChannels["SOCIAL"] = "5";
2185
+ })(CouponChannels || (CouponChannels = {}));
2214
2186
 
2215
2187
  var CouponSubtypes;
2216
2188
  (function (CouponSubtypes) {
@@ -2257,8 +2229,8 @@ var OrderStatus;
2257
2229
  class Order extends Checkout {
2258
2230
  }
2259
2231
  __decorate([
2260
- Type(() => PaymentTransaction),
2261
- __metadata("design:type", PaymentTransaction)
2232
+ Type(() => Payment),
2233
+ __metadata("design:type", Payment)
2262
2234
  ], Order.prototype, "payment", void 0);
2263
2235
 
2264
2236
  class OrderBlocked extends BaseModel {
@@ -2289,592 +2261,6 @@ __decorate([
2289
2261
  __metadata("design:type", Coupon)
2290
2262
  ], CheckoutSubscription.prototype, "coupon", void 0);
2291
2263
 
2292
- class BusinessError extends CustomError {
2293
- constructor(message, additionalData, type = '') {
2294
- super(message);
2295
- this.additionalData = additionalData;
2296
- this.type = type;
2297
- }
2298
- }
2299
-
2300
- class DuplicatedResultsError extends CustomError {
2301
- constructor(message) {
2302
- super(message);
2303
- }
2304
- }
2305
-
2306
- class FraudValidationError extends CustomError {
2307
- constructor(message, additionalData) {
2308
- super(message);
2309
- this.additionalData = additionalData;
2310
- this.type = 'antifraud';
2311
- }
2312
- }
2313
-
2314
- class InvalidArgumentError extends CustomError {
2315
- constructor(message) {
2316
- super(message);
2317
- }
2318
- }
2319
-
2320
- class NotFoundError extends CustomError {
2321
- constructor(message) {
2322
- super(message);
2323
- }
2324
- }
2325
-
2326
- class PaymentError extends CustomError {
2327
- constructor(message, additionalData) {
2328
- super(message);
2329
- this.additionalData = additionalData;
2330
- this.type = 'payment';
2331
- }
2332
- }
2333
-
2334
- class RequiredArgumentError extends CustomError {
2335
- constructor(args) {
2336
- super(`Required arguments: ${args.join(', ')}`);
2337
- this.args = args;
2338
- this.arguments = args;
2339
- }
2340
- }
2341
-
2342
- class StockLimitError extends BusinessError {
2343
- constructor(message, additionalData) {
2344
- super(message, additionalData);
2345
- this.type = 'stock-limit';
2346
- }
2347
- }
2348
-
2349
- class StockOutError extends BusinessError {
2350
- constructor(message, additionalData) {
2351
- super(message, additionalData);
2352
- this.type = 'stock-out';
2353
- }
2354
- }
2355
-
2356
- class AdyenCardService {
2357
- constructor(credentials, paymentRepository, orderBlockedRepository) {
2358
- this.credentials = credentials;
2359
- this.paymentRepository = paymentRepository;
2360
- this.orderBlockedRepository = orderBlockedRepository;
2361
- }
2362
- async pay(checkout, card) {
2363
- try {
2364
- const result = await axios({
2365
- method: 'POST',
2366
- url: this.credentials.URL_TRANSACTION,
2367
- headers: {
2368
- 'x-api-key': this.credentials.API_KEY,
2369
- 'content-type': 'application/json',
2370
- },
2371
- data: this.createCardPayment(checkout, card),
2372
- });
2373
- if (result.data.resultCode !== 'Authorised') {
2374
- this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'Card not authorized', 'Card', 'day', card);
2375
- return Promise.reject(new PaymentError(`Seu pagamento com cartão não foi autorizado. Para não perder seus produtos, pague com PIX ou outro cartão de crédito`, {
2376
- checkoutId: checkout.id,
2377
- userEmail: checkout.user.email,
2378
- info: result.data,
2379
- }));
2380
- }
2381
- const payment = await this.paymentRepository.create(Payment.toInstance({
2382
- createdAt: new Date(),
2383
- updatedAt: new Date(),
2384
- userId: checkout.user.id,
2385
- checkoutId: checkout.id,
2386
- totalPrice: checkout.totalPrice,
2387
- paymentProvider: 'adyen',
2388
- transaction: Object.assign(Object.assign({}, result.data), { status: 'paid' }),
2389
- }));
2390
- return payment;
2391
- }
2392
- catch (error) {
2393
- throw new PaymentError('Seu pagamento com cartão não foi autorizado. Para não perder seus produtos, pague com PIX ou outro cartão de crédito', {
2394
- checkoutId: checkout.id,
2395
- userEmail: checkout.user.email,
2396
- info: error.message,
2397
- });
2398
- }
2399
- }
2400
- createCardPayment(checkout, card) {
2401
- return {
2402
- amount: {
2403
- currency: 'BRL',
2404
- value: ((checkout === null || checkout === void 0 ? void 0 : checkout.totalPrice) || 0) * 100,
2405
- },
2406
- paymentMethod: {
2407
- type: 'scheme',
2408
- storedPaymentMethodId: card.cardId,
2409
- },
2410
- reference: checkout.id,
2411
- shopperInteraction: 'Ecommerce',
2412
- merchantAccount: this.credentials.MERCHANT_ACCOUNT,
2413
- shopperReference: checkout.user.id,
2414
- recurringProcessingModel: 'CardOnFile',
2415
- returnUrl: this.credentials.URL_POSTBACK,
2416
- installments: {
2417
- value: card.installments,
2418
- },
2419
- };
2420
- }
2421
- addCard() {
2422
- throw new Error('Method not implemented.');
2423
- }
2424
- }
2425
-
2426
- class AntifraudBankSlipService {
2427
- constructor(orderBlockedRepository) {
2428
- this.orderBlockedRepository = orderBlockedRepository;
2429
- this.MAX_ORDER_VALUE = 5000;
2430
- }
2431
- async validate(checkout) {
2432
- var _a, _b;
2433
- if (checkout.totalPrice && checkout.totalPrice > this.MAX_ORDER_VALUE && !((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.isSubscriber)) {
2434
- await this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'Boleto not authorized', 'Boleto', 'day');
2435
- throw new FraudValidationError('Boleto não autorizado para cliente não assinante', {
2436
- checkoutId: checkout.id,
2437
- userEmail: checkout.user.email,
2438
- info: {
2439
- isSubscriber: (_b = checkout.user) === null || _b === void 0 ? void 0 : _b.isSubscriber,
2440
- subtotal: checkout.subTotalPrice,
2441
- total: checkout.totalPrice,
2442
- },
2443
- });
2444
- }
2445
- return true;
2446
- }
2447
- }
2448
-
2449
- class AntifraudCardService {
2450
- constructor(orderRepository, orderBlockedRepository) {
2451
- this.orderRepository = orderRepository;
2452
- this.orderBlockedRepository = orderBlockedRepository;
2453
- this.LIMIT_ORDERS_DAY = 2;
2454
- this.LIMIT_ORDERS_WEEK = 7;
2455
- this.LIMIT_BLOCKED_ORDERS_DAY = 5;
2456
- }
2457
- async validate(checkout, card) {
2458
- var _a, _b;
2459
- if (!(await this.verifyBlockedOrderAttempts(checkout, card)))
2460
- throw new FraudValidationError('Cliente com mais de 5 compras negadas/bloqueadas no dia', {
2461
- checkoutId: checkout.id,
2462
- userEmail: checkout.user.email,
2463
- info: {
2464
- isSubscriber: (_a = checkout.user) === null || _a === void 0 ? void 0 : _a.isSubscriber,
2465
- subtotal: checkout.subTotalPrice,
2466
- total: checkout.totalPrice,
2467
- },
2468
- });
2469
- if (!(await this.verifyDayAndWeekOrders(checkout, card)))
2470
- throw new FraudValidationError('Cliente tentando comprar mais de 2 vezes no dia ou 7 vezes na semana', {
2471
- checkoutId: checkout.id,
2472
- userEmail: checkout.user.email,
2473
- info: {
2474
- isSubscriber: (_b = checkout.user) === null || _b === void 0 ? void 0 : _b.isSubscriber,
2475
- subtotal: checkout.subTotalPrice,
2476
- total: checkout.totalPrice,
2477
- },
2478
- });
2479
- return true;
2480
- }
2481
- async verifyBlockedOrderAttempts(checkout, card) {
2482
- var _a, _b, _c, _d;
2483
- const day = `${format(new Date(), 'YYYY-MM-DD')}T00:00:00`;
2484
- const endOfDay = `${format(new Date(), 'YYYY-MM-DD')}T23:59:59`;
2485
- const ordersBlockedWithCpf = await this.orderBlockedRepository
2486
- .find({
2487
- filters: {
2488
- customer: { cpf: { operator: Where.EQUALS, value: (_a = checkout.user) === null || _a === void 0 ? void 0 : _a.cpf } },
2489
- date: [
2490
- { operator: Where.GTE, value: new Date(day) },
2491
- { operator: Where.LTE, value: new Date(endOfDay) },
2492
- ],
2493
- },
2494
- })
2495
- .then((data) => data.data);
2496
- const ordersBlockedWithEmail = await this.orderBlockedRepository
2497
- .find({
2498
- filters: {
2499
- customer: { email: { operator: Where.EQUALS, value: (_b = checkout.user) === null || _b === void 0 ? void 0 : _b.email } },
2500
- date: [
2501
- { operator: Where.GTE, value: new Date(day) },
2502
- { operator: Where.LTE, value: new Date(endOfDay) },
2503
- ],
2504
- },
2505
- })
2506
- .then((data) => data.data);
2507
- const ordersBlockedWithCep = await this.orderBlockedRepository
2508
- .find({
2509
- filters: {
2510
- customer: { shippingAddress: { zip: { operator: Where.EQUALS, value: (_c = checkout.shippingAddress) === null || _c === void 0 ? void 0 : _c.zip } } },
2511
- date: [
2512
- { operator: Where.GTE, value: new Date(day) },
2513
- { operator: Where.LTE, value: new Date(endOfDay) },
2514
- ],
2515
- },
2516
- })
2517
- .then((data) => data.data);
2518
- const ordersBlockedWithPhone = await this.orderBlockedRepository
2519
- .find({
2520
- filters: {
2521
- customer: { phoneNumber: { operator: Where.EQUALS, value: (_d = checkout.user) === null || _d === void 0 ? void 0 : _d.phone } },
2522
- date: [
2523
- { operator: Where.GTE, value: new Date(day) },
2524
- { operator: Where.LTE, value: new Date(endOfDay) },
2525
- ],
2526
- },
2527
- })
2528
- .then((data) => data.data);
2529
- const blockedUniqueEmails = ordersBlockedWithEmail.filter((e) => {
2530
- var _a;
2531
- return e.customer.cpf !== ((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.cpf);
2532
- });
2533
- const blockedUniqueCeps = ordersBlockedWithCep.filter((e) => {
2534
- var _a, _b;
2535
- return e.customer.cpf !== ((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.cpf) && e.customer.email !== ((_b = checkout.user) === null || _b === void 0 ? void 0 : _b.email);
2536
- });
2537
- const blockedUniquePhone = ordersBlockedWithPhone.filter((e) => {
2538
- var _a, _b, _c, _d, _e, _f;
2539
- return (e.customer.cpf !== ((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.cpf) &&
2540
- e.customer.email !== ((_b = checkout.user) === null || _b === void 0 ? void 0 : _b.email) &&
2541
- ((_d = (_c = e.customer.shippingAddress) === null || _c === void 0 ? void 0 : _c.zip) === null || _d === void 0 ? void 0 : _d.toString()) !== ((_f = (_e = checkout.shippingAddress) === null || _e === void 0 ? void 0 : _e.zip) === null || _f === void 0 ? void 0 : _f.toString()));
2542
- });
2543
- const blockedAttempts = ordersBlockedWithCpf
2544
- .concat(blockedUniqueEmails)
2545
- .concat(blockedUniqueCeps)
2546
- .concat(blockedUniquePhone);
2547
- if (blockedAttempts.length >= this.LIMIT_BLOCKED_ORDERS_DAY) {
2548
- await this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'More than 5 attempts have failed', 'Failed attempts', 'day', card || null);
2549
- return false;
2550
- }
2551
- return true;
2552
- }
2553
- async verifyDayAndWeekOrders(checkout, card) {
2554
- var _a, _b, _c, _d, _e, _f, _g, _h;
2555
- const ordersPerDay = await this.validateOrdersByRange((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.cpf, (_b = checkout.user) === null || _b === void 0 ? void 0 : _b.email, (_c = checkout.user) === null || _c === void 0 ? void 0 : _c.phone, (_d = checkout.shippingAddress) === null || _d === void 0 ? void 0 : _d.zip, card, this.getDateRange('day'));
2556
- for (const key in ordersPerDay) {
2557
- if (ordersPerDay[key] > this.LIMIT_ORDERS_DAY) {
2558
- await this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'Order limit', key, 'day');
2559
- return false;
2560
- }
2561
- }
2562
- const ordersPerWeek = await this.validateOrdersByRange((_e = checkout.user) === null || _e === void 0 ? void 0 : _e.cpf, (_f = checkout.user) === null || _f === void 0 ? void 0 : _f.email, (_g = checkout.user) === null || _g === void 0 ? void 0 : _g.phone, (_h = checkout.shippingAddress) === null || _h === void 0 ? void 0 : _h.zip, card, this.getDateRange('week'));
2563
- for (const key in ordersPerWeek) {
2564
- if (ordersPerDay[key] > this.LIMIT_ORDERS_WEEK) {
2565
- await this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'Order limit', key, 'week');
2566
- return false;
2567
- }
2568
- }
2569
- return true;
2570
- }
2571
- async validateOrdersByRange(cpf, email, phone, zip, card, range) {
2572
- const ordersCpf = await this.countOrdersByField('user', 'cpf', cpf, range);
2573
- const ordersByEmail = await this.countOrdersByField('user', 'email', email, range);
2574
- const ordersByPhone = await this.countOrdersByField('user', 'phone', phone, range);
2575
- const ordersByZip = await this.countOrdersByField('shippingAddress', 'zip', zip, range);
2576
- return {
2577
- cpf: ordersCpf,
2578
- email: ordersByEmail,
2579
- phone: ordersByPhone,
2580
- zip: ordersByZip,
2581
- };
2582
- }
2583
- async countOrdersByField(property, field, value, range) {
2584
- const filters = {
2585
- [property]: {
2586
- [field]: value,
2587
- },
2588
- ['createdAt']: [
2589
- { operator: Where.GTE, value: range.firstDate },
2590
- { operator: Where.LTE, value: range.lastDate },
2591
- ],
2592
- };
2593
- const docs = await (await this.orderRepository.find({ filters })).count;
2594
- return docs;
2595
- }
2596
- getDateRange(range = 'day') {
2597
- switch (range) {
2598
- case 'day':
2599
- return {
2600
- firstDate: startOfDay(new Date()).getTime(),
2601
- lastDate: endOfDay(new Date()).getTime(),
2602
- };
2603
- case 'week':
2604
- return {
2605
- firstDate: startOfDay(subDays(new Date(), 7)).getTime(),
2606
- lastDate: endOfDay(new Date()).getTime(),
2607
- };
2608
- default:
2609
- return {
2610
- firstDate: startOfDay(new Date()).getTime(),
2611
- lastDate: endOfDay(new Date()).getTime(),
2612
- };
2613
- }
2614
- }
2615
- }
2616
-
2617
- class AntifraudGlampointsService {
2618
- constructor() { }
2619
- async validate(checkout) {
2620
- return true;
2621
- }
2622
- }
2623
-
2624
- class AntifraudPixService {
2625
- constructor() { }
2626
- async validate(checkout) {
2627
- return true;
2628
- }
2629
- }
2630
-
2631
- class GlampointsPaymentService {
2632
- constructor(paymentRepository) {
2633
- this.paymentRepository = paymentRepository;
2634
- }
2635
- async pay(checkout) {
2636
- const payment = await this.paymentRepository.create(Payment.toInstance({
2637
- createdAt: new Date(),
2638
- updatedAt: new Date(),
2639
- userId: checkout.user.id,
2640
- checkoutId: checkout.id,
2641
- totalPrice: checkout.totalPrice,
2642
- paymentProvider: 'glampoints',
2643
- transaction: {
2644
- amount: 0,
2645
- acquirerResponseCode: '0000',
2646
- acquirerName: 'glampoints',
2647
- authorizedAmount: 0,
2648
- captureMethod: 'ecommerce',
2649
- installments: 1,
2650
- cost: 0,
2651
- paidAmount: 0,
2652
- paidAt: new Date().toISOString(),
2653
- paymentMethod: 'glampoints',
2654
- referer: 'api_key',
2655
- refundedAmount: 0,
2656
- status: 'paid',
2657
- statusReason: 'acquirer',
2658
- },
2659
- }));
2660
- return payment;
2661
- }
2662
- }
2663
-
2664
- class PagarmeBankSlipService {
2665
- constructor(credentials, paymentRepository) {
2666
- this.credentials = credentials;
2667
- this.paymentRepository = paymentRepository;
2668
- }
2669
- async pay(checkout) {
2670
- try {
2671
- const result = await axios({
2672
- method: 'POST',
2673
- url: this.credentials.URL_TRANSACTION,
2674
- data: this.createBoletoPayment(checkout),
2675
- });
2676
- if (result.data.status !== 'processing') {
2677
- return Promise.reject(new PaymentError(`Houve uma falha ao gerar o boleto. Tente novamente`, {
2678
- checkoutId: checkout.id,
2679
- userEmail: checkout.user.email,
2680
- info: result.data,
2681
- }));
2682
- }
2683
- const payment = await this.paymentRepository.create(Payment.toInstance({
2684
- createdAt: new Date(),
2685
- updatedAt: new Date(),
2686
- userId: checkout.user.id,
2687
- checkoutId: checkout.id,
2688
- totalPrice: checkout.totalPrice,
2689
- paymentProvider: 'pagarMe',
2690
- transaction: result.data,
2691
- }));
2692
- return payment;
2693
- }
2694
- catch (error) {
2695
- throw new PaymentError('Houve uma falha ao gerar o boleto. Tente novamente', {
2696
- checkoutId: checkout.id,
2697
- userEmail: checkout.user.email,
2698
- info: error.response.data,
2699
- });
2700
- }
2701
- }
2702
- createBoletoPayment(checkout) {
2703
- return {
2704
- api_key: this.credentials.API_KEY,
2705
- amount: Math.floor(checkout.totalPrice * 100),
2706
- boleto_rules: ['strict_expiration_date'],
2707
- boleto_instructions: 'Sr. Caixa, NÃO aceitar o pagamento após o vencimento.',
2708
- boleto_expiration_date: format(addDays(new Date(), 3), 'yyyy-MM-dd'),
2709
- payment_method: 'boleto',
2710
- postback_url: this.credentials.URL_POSTBACK,
2711
- customer: {
2712
- external_id: checkout.user.id,
2713
- type: 'individual',
2714
- country: 'br',
2715
- name: checkout.user.displayName,
2716
- documents: [
2717
- {
2718
- type: 'cpf',
2719
- number: checkout.user.cpf,
2720
- },
2721
- ],
2722
- },
2723
- };
2724
- }
2725
- }
2726
-
2727
- class PagarmeCardService {
2728
- constructor(credentials, paymentRepository, orderBlockedRepository) {
2729
- this.credentials = credentials;
2730
- this.paymentRepository = paymentRepository;
2731
- this.orderBlockedRepository = orderBlockedRepository;
2732
- }
2733
- async pay(checkout, card) {
2734
- var _a;
2735
- try {
2736
- const result = await axios({
2737
- method: 'POST',
2738
- url: this.credentials.URL_TRANSACTION,
2739
- data: this.createCardPayment(checkout, card),
2740
- });
2741
- if (result.data.status !== 'paid') {
2742
- await this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'Card not authorized', 'Card', 'day', card);
2743
- return Promise.reject(new PaymentError(`Seu pagamento com cartão não foi autorizado. Para não perder seus produtos, pague com PIX ou outro cartão de crédito`, {
2744
- checkoutId: checkout.id,
2745
- userEmail: checkout.user.email,
2746
- info: result.data,
2747
- }));
2748
- }
2749
- const payment = await this.paymentRepository.create(Payment.toInstance({
2750
- createdAt: new Date(),
2751
- updatedAt: new Date(),
2752
- userId: checkout.user.id,
2753
- checkoutId: checkout.id,
2754
- totalPrice: checkout.totalPrice,
2755
- paymentProvider: PaymentProviders.PAGARME,
2756
- transaction: Object.assign(Object.assign({}, result.data), { paidAt: new Date() }),
2757
- }));
2758
- return payment;
2759
- }
2760
- catch (error) {
2761
- throw new PaymentError('Seu pagamento com cartão não foi autorizado. Para não perder seus produtos, pague com PIX ou outro cartão de crédito', {
2762
- checkoutId: checkout.id,
2763
- userEmail: checkout.user.email,
2764
- info: (_a = error.response) === null || _a === void 0 ? void 0 : _a.data,
2765
- });
2766
- }
2767
- }
2768
- addCard() {
2769
- throw new Error('Method not implemented.');
2770
- }
2771
- createCardPayment(checkout, card) {
2772
- var _a, _b, _c, _d, _e, _f;
2773
- return {
2774
- api_key: this.credentials.API_KEY,
2775
- amount: Math.floor(checkout.totalPrice * 100),
2776
- card_id: card.cardId,
2777
- payment_method: 'credit_card',
2778
- installments: card.installments,
2779
- soft_descriptor: checkout.shop === Shops.GLAMSHOP ? 'Glam' : "Men's Market",
2780
- customer: {
2781
- external_id: checkout.user.id,
2782
- name: checkout.user.displayName,
2783
- type: 'individual',
2784
- country: 'br',
2785
- email: checkout.user.email,
2786
- phone_numbers: checkout.user.phone ? ['+55' + checkout.user.phone] : '',
2787
- documents: [
2788
- {
2789
- type: 'cpf',
2790
- number: checkout.user.cpf,
2791
- },
2792
- ],
2793
- },
2794
- billing: {
2795
- name: checkout.user.displayName,
2796
- address: {
2797
- country: 'br',
2798
- state: checkout.billingAddress ? checkout.billingAddress.state : (_a = checkout.shippingAddress) === null || _a === void 0 ? void 0 : _a.state,
2799
- city: checkout.billingAddress ? checkout.billingAddress.city : (_b = checkout.shippingAddress) === null || _b === void 0 ? void 0 : _b.city,
2800
- neighborhood: checkout.billingAddress ? checkout.billingAddress.district : (_c = checkout.shippingAddress) === null || _c === void 0 ? void 0 : _c.district,
2801
- street: checkout.billingAddress ? checkout.billingAddress.street : (_d = checkout.shippingAddress) === null || _d === void 0 ? void 0 : _d.street,
2802
- street_number: checkout.billingAddress ? checkout.billingAddress.number : (_e = checkout.shippingAddress) === null || _e === void 0 ? void 0 : _e.number,
2803
- zipcode: checkout.billingAddress
2804
- ? checkout.billingAddress.zip.replace('-', '')
2805
- : (_f = checkout.shippingAddress) === null || _f === void 0 ? void 0 : _f.zip.replace('-', ''),
2806
- },
2807
- },
2808
- items: checkout.lineItems.map((item) => {
2809
- return {
2810
- id: item.id,
2811
- title: checkout.user.isSubscriber ? `${item.name} - ASSINANTE` : item.name,
2812
- unit_price: Math.floor(item.pricePaid * 100),
2813
- quantity: item.quantity,
2814
- tangible: true,
2815
- };
2816
- }),
2817
- };
2818
- }
2819
- }
2820
-
2821
- class PagarmePixService {
2822
- constructor(credentials, paymentRepository) {
2823
- this.credentials = credentials;
2824
- this.paymentRepository = paymentRepository;
2825
- }
2826
- async pay(checkout) {
2827
- var _a;
2828
- try {
2829
- const result = await axios({
2830
- method: 'POST',
2831
- url: this.credentials.URL_TRANSACTION,
2832
- data: this.createPixPayment(checkout),
2833
- });
2834
- const payment = await this.paymentRepository.create(Payment.toInstance({
2835
- createdAt: new Date(),
2836
- updatedAt: new Date(),
2837
- userId: checkout.user.id,
2838
- checkoutId: checkout.id,
2839
- totalPrice: checkout.totalPrice,
2840
- paymentProvider: 'pagarMe',
2841
- transaction: Object.assign(Object.assign({}, result.data), { paidAt: new Date() }),
2842
- }));
2843
- return payment;
2844
- }
2845
- catch (error) {
2846
- throw new PaymentError('Houve uma falha ao processar pagamento com pix', {
2847
- checkoutId: checkout.id,
2848
- userEmail: checkout.user.email,
2849
- info: (_a = error.response) === null || _a === void 0 ? void 0 : _a.data,
2850
- });
2851
- }
2852
- }
2853
- createPixPayment(checkout) {
2854
- return {
2855
- payment_method: 'pix',
2856
- amount: Math.floor(checkout.totalPrice * 100),
2857
- api_key: this.credentials.API_KEY,
2858
- postback_url: this.credentials.URL_POSTBACK,
2859
- pix_expiration_date: format(addDays(new Date(), 1), 'yyyy-MM-dd'),
2860
- customer: {
2861
- external_id: checkout.user.id,
2862
- type: 'individual',
2863
- country: 'br',
2864
- name: checkout.user.displayName,
2865
- email: checkout.user.email.trim(),
2866
- phone_numbers: checkout.user.phone ? ['+55' + checkout.user.phone] : '',
2867
- documents: [
2868
- {
2869
- type: 'cpf',
2870
- number: checkout.user.cpf,
2871
- },
2872
- ],
2873
- },
2874
- };
2875
- }
2876
- }
2877
-
2878
2264
  class RoundProductPricesHelper {
2879
2265
  static roundProductPrices(product) {
2880
2266
  product.price.price = Number(product.price.price.toFixed(2));
@@ -2895,12 +2281,6 @@ class LogDocument extends BaseModel {
2895
2281
  }
2896
2282
  }
2897
2283
 
2898
- class Sequence extends BaseModel {
2899
- static get identifiersFields() {
2900
- return ['id'];
2901
- }
2902
- }
2903
-
2904
2284
  var FilterType;
2905
2285
  (function (FilterType) {
2906
2286
  FilterType["ACCESSORY_IMPORTANCE"] = "accessoryImportance";
@@ -3039,6 +2419,32 @@ class ShopSettings extends BaseModel {
3039
2419
  }
3040
2420
  }
3041
2421
 
2422
+ class InvalidArgumentError extends CustomError {
2423
+ constructor(message) {
2424
+ super(message);
2425
+ }
2426
+ }
2427
+
2428
+ class RequiredArgumentError extends CustomError {
2429
+ constructor(args) {
2430
+ super(`Required arguments: ${args.join(', ')}`);
2431
+ this.args = args;
2432
+ this.arguments = args;
2433
+ }
2434
+ }
2435
+
2436
+ class NotFoundError extends CustomError {
2437
+ constructor(message) {
2438
+ super(message);
2439
+ }
2440
+ }
2441
+
2442
+ class DuplicatedResultsError extends CustomError {
2443
+ constructor(message) {
2444
+ super(message);
2445
+ }
2446
+ }
2447
+
3042
2448
  class AxiosAdapter {
3043
2449
  constructor(config) {
3044
2450
  this.config = config;
@@ -3937,17 +3343,6 @@ class LogFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore
3937
3343
  }
3938
3344
  }
3939
3345
 
3940
- class SequenceFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
3941
- constructor({ firestore, interceptors }) {
3942
- super({
3943
- firestore,
3944
- collectionName: 'sequences',
3945
- model: Sequence,
3946
- interceptors,
3947
- });
3948
- }
3949
- }
3950
-
3951
3346
  class HomeFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
3952
3347
  constructor({ firestore, interceptors }) {
3953
3348
  super({
@@ -5089,6 +4484,7 @@ const withFindHasuraGraphQL = (MixinBase) => {
5089
4484
  return class FindHasuraGraphQLMixin extends MixinBase {
5090
4485
  constructor() {
5091
4486
  super(...arguments);
4487
+ this.lastDistinct = {};
5092
4488
  this.bindOrderByAttributes = (orderBy, fields) => Object.keys(orderBy).reduce((acc, current) => [
5093
4489
  ...acc,
5094
4490
  {
@@ -5124,9 +4520,10 @@ const withFindHasuraGraphQL = (MixinBase) => {
5124
4520
  });
5125
4521
  }
5126
4522
  async find(params) {
5127
- var _a, _b, _c, _d, _e, _f, _g, _h;
4523
+ var _a, _b, _c, _d, _e, _f, _g;
5128
4524
  this.logger = DebugHelper.from(this, 'find');
5129
4525
  const { filters, limits, orderBy, options } = params || {};
4526
+ const tableFiltersNamed = `${this.tableName}:${JSON.stringify(filters)}`;
5130
4527
  const enableCount = (_a = options === null || options === void 0 ? void 0 : options.enableCount) !== null && _a !== void 0 ? _a : true;
5131
4528
  const variablesFilters = isNil(filters)
5132
4529
  ? {}
@@ -5177,8 +4574,8 @@ const withFindHasuraGraphQL = (MixinBase) => {
5177
4574
  },
5178
4575
  ]
5179
4576
  : []),
5180
- ...((!((_b = params.limits) === null || _b === void 0 ? void 0 : _b.offset) &&
5181
- ((_d = (_c = params.options) === null || _c === void 0 ? void 0 : _c.distinct) === null || _d === void 0 ? void 0 : _d.map((distinct) => {
4577
+ ...((!this.lastDistinct[tableFiltersNamed] &&
4578
+ ((_c = (_b = params.options) === null || _b === void 0 ? void 0 : _b.distinct) === null || _c === void 0 ? void 0 : _c.map((distinct) => {
5182
4579
  var _a, _b;
5183
4580
  const distinctOption = (_a = this.fields.find((fieldOption) => fieldOption === distinct)) !== null && _a !== void 0 ? _a : this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === distinct);
5184
4581
  const fieldName = ((_b = Object.values(distinctOption).shift()) === null || _b === void 0 ? void 0 : _b.columnName) || distinct;
@@ -5199,28 +4596,27 @@ const withFindHasuraGraphQL = (MixinBase) => {
5199
4596
  []),
5200
4597
  ]);
5201
4598
  const data = result[this.tableName].map((row) => this.convertDataFromHasura(row));
5202
- return Object.assign(Object.assign(Object.assign({ data, count: enableCount ? result[`${this.tableName}_aggregate`].aggregate.count : Infinity }, (((_e = options === null || options === void 0 ? void 0 : options.minimal) === null || _e === void 0 ? void 0 : _e.length)
4599
+ return Object.assign(Object.assign(Object.assign({ data, count: enableCount ? result[`${this.tableName}_aggregate`].aggregate.count : Infinity }, (((_d = options === null || options === void 0 ? void 0 : options.minimal) === null || _d === void 0 ? void 0 : _d.length)
5203
4600
  ? {
5204
4601
  minimal: options.minimal.reduce((minimals, current) => {
5205
4602
  var _a;
5206
4603
  return (Object.assign(Object.assign({}, minimals), set(minimals, current, result[`${this.tableName}_aggregate`].aggregate.min[((_a = AttributeOptionHelper.FindByAttribute(current.toString().split('.').pop(), this.fields)) === null || _a === void 0 ? void 0 : _a.columnName) || current])));
5207
4604
  }, {}),
5208
4605
  }
5209
- : {})), (((_f = options === null || options === void 0 ? void 0 : options.maximum) === null || _f === void 0 ? void 0 : _f.length)
4606
+ : {})), (((_e = options === null || options === void 0 ? void 0 : options.maximum) === null || _e === void 0 ? void 0 : _e.length)
5210
4607
  ? {
5211
4608
  maximum: options.maximum.reduce((maximums, current) => {
5212
4609
  var _a;
5213
4610
  return (Object.assign(Object.assign({}, maximums), set(maximums, current, result[`${this.tableName}_aggregate`].aggregate.max[((_a = AttributeOptionHelper.FindByAttribute(current.toString().split('.').pop(), this.fields)) === null || _a === void 0 ? void 0 : _a.columnName) || current])));
5214
4611
  }, {}),
5215
4612
  }
5216
- : {})), (!((_g = params.limits) === null || _g === void 0 ? void 0 : _g.offset) &&
5217
- ((_h = options === null || options === void 0 ? void 0 : options.distinct) === null || _h === void 0 ? void 0 : _h.length) && {
5218
- distinct: options === null || options === void 0 ? void 0 : options.distinct.reduce((distinct, current) => {
4613
+ : {})), (((_f = options === null || options === void 0 ? void 0 : options.distinct) === null || _f === void 0 ? void 0 : _f.length) && {
4614
+ distinct: (_g = this.lastDistinct[tableFiltersNamed]) !== null && _g !== void 0 ? _g : (this.lastDistinct[tableFiltersNamed] = options === null || options === void 0 ? void 0 : options.distinct.reduce((distinct, current) => {
5219
4615
  var _a, _b;
5220
4616
  const distinctOption = (_a = this.fields.find((fieldOption) => fieldOption === current)) !== null && _a !== void 0 ? _a : this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === current);
5221
4617
  const fieldName = ((_b = Object.values(distinctOption).shift()) === null || _b === void 0 ? void 0 : _b.columnName) || current;
5222
4618
  return Object.assign(Object.assign({}, distinct), { [current.toString()]: result[`${this.tableName}_${current.toString()}_distinct`].map((obj) => obj[fieldName]) });
5223
- }, {}),
4619
+ }, {})),
5224
4620
  }));
5225
4621
  }
5226
4622
  };
@@ -7243,4 +6639,4 @@ class ProductsVertexSearch {
7243
6639
  }
7244
6640
  }
7245
6641
 
7246
- export { AccessoryImportances, Address, AdyenCardService, AdyenPaymentMethodFactory, AntifraudBankSlipService, AntifraudCardService, AntifraudGlampointsService, AntifraudPixService, AntifraudProviderFactory, AntifraudProviders, Area, Authentication, AuthenticationFirebaseAuthService, AxiosAdapter, Base, BaseModel, BeardProblems, BeardSizes, BeautyProductImportances, BeautyProfile, BeautyQuestionsHelper, BillingStatus, BodyProblems, BodyShapes, BodyTattoos, BusinessError, Buy2Win, Buy2WinFirestoreRepository, Campaign, CampaignBanner, CampaignDashboard, CampaignDashboardFirestoreRepository, CampaignHashtag, CampaignHashtagFirestoreRepository, Category, CategoryCollectionChildren, CategoryCollectionChildrenHasuraGraphQLRepository, CategoryFilter, CategoryFilterHasuraGraphQLRepository, CategoryFirestoreRepository, CategoryHasuraGraphQL, CategoryHasuraGraphQLRepository, Checkout, CheckoutFirestoreRepository, CheckoutSubscription, CheckoutSubscriptionFirestoreRepository, CheckoutTypes, ClassNameHelper, ConnectBaseDocumentSnapshot, ConnectCollectionService, ConnectDocumentService, ConnectFirestoreService, Coupon, CouponCategory, CouponFirestoreRepository, CouponSubtypes, CouponTypes, Debug, DebugDecoratorHelper, DebugHelper, DebugNamespaces, DuplicatedResultsError, Edition, EditionStatus, Exclusivities, FaceSkinOilinesses, FaceSkinProblems, FaceSkinTones, FamilyIncomes, Filter, FilterHasuraGraphQLRepository, FilterOption, FilterOptionHasuraGraphQLRepository, FilterType, FirebaseFileUploaderService, FragranceImportances, FraudValidationError, GenderDestination, GlampointsPaymentMethodFactory, GlampointsPaymentService, HairColors, HairProblems, HairStrands, HairTypes, Home, HomeFirestoreRepository, InvalidArgumentError, KitProduct, KitProductHasuraGraphQL, Lead, LeadFirestoreRepository, LegacyOrderFirestoreRepository, LineItem, Log, LogDocument, LogFirestoreRepository, Logger, NotFoundError, OfficePosition, Order, OrderBlocked, OrderBlockedFirestoreRepository, OrderFirestoreRepository, OrderStatus, PagarmeBankSlipService, PagarmeCardService, PagarmePaymentMethodFactory, PagarmePixService, Payment, PaymentError, PaymentFirestoreRepository, PaymentMethods, PaymentProviderFactory, PaymentProviders, PaymentTransaction, PaymentType, PersonTypes, Plans, Product, ProductFirestoreRepository, ProductHasuraGraphQL, ProductHasuraGraphQLRepository, ProductReviews, ProductReviewsHasuraGraphQLRepository, ProductSpents, ProductStockNotification, ProductStockNotificationHasuraGraphQLRepository, ProductVariantFirestoreRepository, ProductsIndex, ProductsVertexSearch, QuestionsFilters, RecoveryPassword, ReflectHelper, Register, RegisterFirebaseAuthService, RequiredArgumentError, RoundProductPricesHelper, Sequence, SequenceFirestoreRepository, ShippingMethod, ShopMenu, ShopMenuFirestoreRepository, ShopPageName, ShopSettings, ShopSettingsFirestoreRepository, Shops, SignInMethods, SignOut, Status, StockLimitError, StockOutError, Subscription, SubscriptionEditionFirestoreRepository, SubscriptionFirestoreRepository, SubscriptionMaterialization, SubscriptionMaterializationFirestoreRepository, SubscriptionPayment, SubscriptionPaymentFirestoreRepository, SubscriptionPlan, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionSummary, SubscriptionSummaryFirestoreRepository, Trace, UnauthorizedError, UpdateOptionActions, UpdateUserImage, User, UserAddress, UserAddressFirestoreRepository, UserAlreadyRegisteredError, UserBeautyProfileFirestoreRepository, UserFirestoreRepository, UserPaymentMethod, UserPaymentMethodFirestoreRepository, UserType, Variant, VariantHasuraGraphQL, VariantHasuraGraphQLRepository, VertexAxiosAdapter, WeakPasswordError, Where, Wishlist, WishlistHasuraGraphQLRepository, WishlistLogType, is, isDebuggable, isUUID, parseDateTime, withCreateFirestore, withCreateHasuraGraphQL, withCrudFirestore, withCrudHasuraGraphQL, withDeleteFirestore, withDeleteHasuraGraphQL, withFindFirestore, withFindHasuraGraphQL, withFirestore, withGetFirestore, withGetHasuraGraphQL, withHasuraGraphQL, withHelpers, withSubCollection, withUpdateFirestore, withUpdateHasuraGraphQL };
6642
+ export { AccessoryImportances, Address, Area, Authentication, AuthenticationFirebaseAuthService, AxiosAdapter, Base, BaseModel, BeardProblems, BeardSizes, BeautyProductImportances, BeautyProfile, BeautyQuestionsHelper, BillingStatus, BodyProblems, BodyShapes, BodyTattoos, Buy2Win, Buy2WinFirestoreRepository, Campaign, CampaignBanner, CampaignDashboard, CampaignDashboardFirestoreRepository, CampaignHashtag, CampaignHashtagFirestoreRepository, Category, CategoryCollectionChildren, CategoryCollectionChildrenHasuraGraphQLRepository, CategoryFilter, CategoryFilterHasuraGraphQLRepository, CategoryFirestoreRepository, CategoryHasuraGraphQL, CategoryHasuraGraphQLRepository, Checkout, CheckoutFirestoreRepository, CheckoutSubscription, CheckoutSubscriptionFirestoreRepository, CheckoutTypes, ClassNameHelper, ConnectBaseDocumentSnapshot, ConnectCollectionService, ConnectDocumentService, ConnectFirestoreService, Coupon, CouponCategories, CouponCategory, CouponChannels, CouponFirestoreRepository, CouponOldCategories, CouponSubtypes, CouponTypes, Debug, DebugDecoratorHelper, DebugHelper, DebugNamespaces, DuplicatedResultsError, Edition, EditionStatus, Exclusivities, FaceSkinOilinesses, FaceSkinProblems, FaceSkinTones, FamilyIncomes, Filter, FilterHasuraGraphQLRepository, FilterOption, FilterOptionHasuraGraphQLRepository, FilterType, FirebaseFileUploaderService, FragranceImportances, GenderDestination, HairColors, HairProblems, HairStrands, HairTypes, Home, HomeFirestoreRepository, InvalidArgumentError, KitProduct, KitProductHasuraGraphQL, Lead, LeadFirestoreRepository, LegacyOrderFirestoreRepository, LineItem, Log, LogDocument, LogFirestoreRepository, Logger, NotFoundError, OfficePosition, Order, OrderBlocked, OrderBlockedFirestoreRepository, OrderFirestoreRepository, OrderStatus, Payment, PaymentFirestoreRepository, PaymentType, PersonTypes, Plans, Product, ProductFirestoreRepository, ProductHasuraGraphQL, ProductHasuraGraphQLRepository, ProductReviews, ProductReviewsHasuraGraphQLRepository, ProductSpents, ProductStockNotification, ProductStockNotificationHasuraGraphQLRepository, ProductVariantFirestoreRepository, ProductsIndex, ProductsVertexSearch, QuestionsFilters, RecoveryPassword, ReflectHelper, Register, RegisterFirebaseAuthService, RequiredArgumentError, RoundProductPricesHelper, ShippingMethod, ShopMenu, ShopMenuFirestoreRepository, ShopPageName, ShopSettings, ShopSettingsFirestoreRepository, Shops, SignInMethods, SignOut, Status, Subscription, SubscriptionEditionFirestoreRepository, SubscriptionFirestoreRepository, SubscriptionMaterialization, SubscriptionMaterializationFirestoreRepository, SubscriptionPayment, SubscriptionPaymentFirestoreRepository, SubscriptionPlan, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionSummary, SubscriptionSummaryFirestoreRepository, Trace, UnauthorizedError, UpdateOptionActions, UpdateUserImage, User, UserAddress, UserAddressFirestoreRepository, UserAlreadyRegisteredError, UserBeautyProfileFirestoreRepository, UserFirestoreRepository, UserPaymentMethod, UserPaymentMethodFirestoreRepository, UserType, Variant, VariantHasuraGraphQL, VariantHasuraGraphQLRepository, VertexAxiosAdapter, WeakPasswordError, Where, Wishlist, WishlistHasuraGraphQLRepository, WishlistLogType, is, isDebuggable, isUUID, parseDateTime, withCreateFirestore, withCreateHasuraGraphQL, withCrudFirestore, withCrudHasuraGraphQL, withDeleteFirestore, withDeleteHasuraGraphQL, withFindFirestore, withFindHasuraGraphQL, withFirestore, withGetFirestore, withGetHasuraGraphQL, withHasuraGraphQL, withHelpers, withSubCollection, withUpdateFirestore, withUpdateHasuraGraphQL };