@infrab4a/connect 4.11.2 → 4.12.0-beta.0
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/index.cjs.js +1003 -342
- package/index.esm.js +980 -345
- package/package.json +1 -1
- package/src/domain/general/index.d.ts +2 -0
- package/src/domain/general/models/index.d.ts +1 -0
- package/src/domain/general/models/sequences.d.ts +9 -0
- package/src/domain/general/repositories/index.d.ts +1 -0
- package/src/domain/general/repositories/sequences.repository.d.ts +4 -0
- package/src/domain/shopping/enums/antifraud-providers.enum.d.ts +6 -0
- package/src/domain/shopping/enums/index.d.ts +3 -0
- package/src/domain/shopping/enums/payment-methods.enum.d.ts +6 -0
- package/src/domain/shopping/enums/payment-providers.enum.d.ts +5 -0
- package/src/domain/shopping/factories/adyen-payment-method.factory.d.ts +8 -0
- package/src/domain/shopping/factories/antifraud-provider.factory.d.ts +15 -0
- package/src/domain/shopping/factories/base-payment-method.factory.d.ts +7 -0
- package/src/domain/shopping/factories/glampoints-payment-method.factory.d.ts +8 -0
- package/src/domain/shopping/factories/index.d.ts +5 -0
- package/src/domain/shopping/factories/pagarme-payment-method.factory.d.ts +10 -0
- package/src/domain/shopping/factories/payment-provider.factory.d.ts +15 -0
- package/src/domain/shopping/index.d.ts +4 -0
- package/src/domain/shopping/interfaces/antifraud-method-factory.interface.d.ts +11 -0
- package/src/domain/shopping/interfaces/antifraud-provider.interface.d.ts +5 -0
- package/src/domain/shopping/interfaces/index.d.ts +7 -0
- package/src/domain/shopping/interfaces/payment-method-factory.interface.d.ts +14 -0
- package/src/domain/shopping/interfaces/payment-provider-bank-slip.interface.d.ts +5 -0
- package/src/domain/shopping/interfaces/payment-provider-card.interface.d.ts +7 -0
- package/src/domain/shopping/interfaces/payment-provider-glampoints.interface.d.ts +5 -0
- package/src/domain/shopping/interfaces/payment-provider-pix.interface.d.ts +5 -0
- package/src/domain/shopping/models/index.d.ts +1 -0
- package/src/domain/shopping/models/order.d.ts +2 -2
- package/src/domain/shopping/models/payment-transaction.d.ts +67 -0
- package/src/domain/shopping/models/payment.d.ts +10 -63
- package/src/domain/shopping/models/types/index.d.ts +4 -4
- package/src/domain/shopping/services/adyen-card-payment.service.d.ts +13 -0
- package/src/domain/shopping/services/antifraud-bankslip.service.d.ts +9 -0
- package/src/domain/shopping/services/antifraud-card.service.d.ts +18 -0
- package/src/domain/shopping/services/antifraud-glampoints.service.d.ts +6 -0
- package/src/domain/shopping/services/antifraud-pix.service.d.ts +6 -0
- package/src/domain/shopping/services/glampoints-payment.service.d.ts +8 -0
- package/src/domain/shopping/services/index.d.ts +9 -0
- package/src/domain/shopping/services/pagarme-bank-slip-payment.service.d.ts +11 -0
- package/src/domain/shopping/services/pagarme-card-payment.service.d.ts +13 -0
- package/src/domain/shopping/services/pagarme-pix-payment.service.d.ts +11 -0
- package/src/domain/shopping/types/adyen-credentials.type.d.ts +6 -0
- package/src/domain/shopping/types/antifraud-provider.type.d.ts +2 -0
- package/src/domain/shopping/types/index.d.ts +5 -0
- package/src/domain/shopping/types/pagarme-credentials.type.d.ts +5 -0
- package/src/domain/shopping/types/payment-method.type.d.ts +2 -0
- package/src/domain/shopping/types/payment-provider.type.d.ts +2 -0
- package/src/errors/business.error.d.ts +7 -0
- package/src/errors/fraud-validation.error.d.ts +7 -0
- package/src/errors/index.d.ts +7 -2
- package/src/errors/payment.error.d.ts +7 -0
- package/src/errors/stock-limit.error.d.ts +5 -0
- package/src/errors/stock-out.error.d.ts +5 -0
- package/src/errors/types/checkout-additional-data-erro.type.d.ts +5 -0
- package/src/errors/types/index.d.ts +1 -0
- package/src/infra/elasticsearch/indexes/products-index.d.ts +1 -1
- package/src/infra/firebase/firestore/repositories/general/index.d.ts +1 -0
- package/src/infra/firebase/firestore/repositories/general/sequences-firestore.repository.d.ts +7 -0
- package/src/infra/firebase/firestore/repositories/index.d.ts +3 -2
- package/src/infra/firebase/firestore/repositories/shopping/index.d.ts +1 -1
- package/src/infra/firebase/firestore/repositories/shopping/order-blocked-firestore.repository.d.ts +9 -0
- package/src/utils/index.d.ts +2 -2
package/index.cjs.js
CHANGED
|
@@ -19,6 +19,65 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
19
19
|
|
|
20
20
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
21
21
|
|
|
22
|
+
exports.AntifraudProviders = void 0;
|
|
23
|
+
(function (AntifraudProviders) {
|
|
24
|
+
AntifraudProviders["BANKSLIP"] = "bankSlip";
|
|
25
|
+
AntifraudProviders["CARD"] = "card";
|
|
26
|
+
AntifraudProviders["PIX"] = "pix";
|
|
27
|
+
AntifraudProviders["POINTS"] = "glampoints";
|
|
28
|
+
})(exports.AntifraudProviders || (exports.AntifraudProviders = {}));
|
|
29
|
+
|
|
30
|
+
exports.PaymentMethods = void 0;
|
|
31
|
+
(function (PaymentMethods) {
|
|
32
|
+
PaymentMethods["CARD"] = "card";
|
|
33
|
+
PaymentMethods["BANKSLIP"] = "bankSlip";
|
|
34
|
+
PaymentMethods["PIX"] = "pix";
|
|
35
|
+
PaymentMethods["POINTS"] = "glampoints";
|
|
36
|
+
})(exports.PaymentMethods || (exports.PaymentMethods = {}));
|
|
37
|
+
|
|
38
|
+
exports.PaymentProviders = void 0;
|
|
39
|
+
(function (PaymentProviders) {
|
|
40
|
+
PaymentProviders["PAGARME"] = "pagarMe";
|
|
41
|
+
PaymentProviders["ADYEN"] = "adyen";
|
|
42
|
+
PaymentProviders["GLAMPOINTS"] = "glampoints";
|
|
43
|
+
})(exports.PaymentProviders || (exports.PaymentProviders = {}));
|
|
44
|
+
|
|
45
|
+
class BasePaymentMethodFactory {
|
|
46
|
+
constructor(methods) {
|
|
47
|
+
this.methods = methods;
|
|
48
|
+
}
|
|
49
|
+
build(method) {
|
|
50
|
+
return this.methods[method];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
class AdyenPaymentMethodFactory extends BasePaymentMethodFactory {
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
class AntifraudProviderFactory {
|
|
58
|
+
constructor(antifraudProviders) {
|
|
59
|
+
this.antifraudProviders = antifraudProviders;
|
|
60
|
+
}
|
|
61
|
+
build(provider) {
|
|
62
|
+
return this.antifraudProviders[provider];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
class GlampointsPaymentMethodFactory extends BasePaymentMethodFactory {
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
class PagarmePaymentMethodFactory extends BasePaymentMethodFactory {
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
class PaymentProviderFactory {
|
|
73
|
+
constructor(paymentProviders) {
|
|
74
|
+
this.paymentProviders = paymentProviders;
|
|
75
|
+
}
|
|
76
|
+
build(provider) {
|
|
77
|
+
return this.paymentProviders[provider];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
22
81
|
class BaseModel {
|
|
23
82
|
get identifier() {
|
|
24
83
|
const fields = this.constructor.identifiersFields.filter((field) => field !== 'identifier');
|
|
@@ -556,175 +615,182 @@ exports.Status = void 0;
|
|
|
556
615
|
Status["CANCELLED"] = "Cancelado";
|
|
557
616
|
})(exports.Status || (exports.Status = {}));
|
|
558
617
|
|
|
559
|
-
class
|
|
560
|
-
static get identifiersFields() {
|
|
561
|
-
return ['id'];
|
|
562
|
-
}
|
|
618
|
+
class PaymentTransaction extends BaseModel {
|
|
563
619
|
}
|
|
564
620
|
tslib.__decorate([
|
|
565
621
|
classTransformer.Expose({ name: 'refuse_reason' }),
|
|
566
622
|
tslib.__metadata("design:type", String)
|
|
567
|
-
],
|
|
623
|
+
], PaymentTransaction.prototype, "refuseReason", void 0);
|
|
568
624
|
tslib.__decorate([
|
|
569
625
|
classTransformer.Expose({ name: 'status_reason' }),
|
|
570
626
|
tslib.__metadata("design:type", String)
|
|
571
|
-
],
|
|
627
|
+
], PaymentTransaction.prototype, "statusReason", void 0);
|
|
572
628
|
tslib.__decorate([
|
|
573
629
|
classTransformer.Expose({ name: 'acquirer_response_code' }),
|
|
574
630
|
tslib.__metadata("design:type", String)
|
|
575
|
-
],
|
|
631
|
+
], PaymentTransaction.prototype, "acquirerResponseCode", void 0);
|
|
576
632
|
tslib.__decorate([
|
|
577
633
|
classTransformer.Expose({ name: 'acquirer_name' }),
|
|
578
634
|
tslib.__metadata("design:type", String)
|
|
579
|
-
],
|
|
635
|
+
], PaymentTransaction.prototype, "acquirerName", void 0);
|
|
580
636
|
tslib.__decorate([
|
|
581
637
|
classTransformer.Expose({ name: 'acquirer_id' }),
|
|
582
638
|
tslib.__metadata("design:type", String)
|
|
583
|
-
],
|
|
639
|
+
], PaymentTransaction.prototype, "acquirerId", void 0);
|
|
584
640
|
tslib.__decorate([
|
|
585
641
|
classTransformer.Expose({ name: 'authorization_code' }),
|
|
586
642
|
tslib.__metadata("design:type", String)
|
|
587
|
-
],
|
|
643
|
+
], PaymentTransaction.prototype, "authorizationCode", void 0);
|
|
588
644
|
tslib.__decorate([
|
|
589
645
|
classTransformer.Expose({ name: 'soft_descriptor' }),
|
|
590
646
|
tslib.__metadata("design:type", String)
|
|
591
|
-
],
|
|
647
|
+
], PaymentTransaction.prototype, "softDescriptor", void 0);
|
|
592
648
|
tslib.__decorate([
|
|
593
649
|
classTransformer.Expose({ name: 'date_created' }),
|
|
594
650
|
tslib.__metadata("design:type", String)
|
|
595
|
-
],
|
|
651
|
+
], PaymentTransaction.prototype, "dateCreated", void 0);
|
|
596
652
|
tslib.__decorate([
|
|
597
653
|
classTransformer.Expose({ name: 'date_updated' }),
|
|
598
654
|
tslib.__metadata("design:type", String)
|
|
599
|
-
],
|
|
655
|
+
], PaymentTransaction.prototype, "dateUpdated", void 0);
|
|
600
656
|
tslib.__decorate([
|
|
601
657
|
classTransformer.Expose({ name: 'authorized_amount' }),
|
|
602
658
|
tslib.__metadata("design:type", Number)
|
|
603
|
-
],
|
|
659
|
+
], PaymentTransaction.prototype, "authorizedAmount", void 0);
|
|
604
660
|
tslib.__decorate([
|
|
605
661
|
classTransformer.Expose({ name: 'paid_amount' }),
|
|
606
662
|
tslib.__metadata("design:type", Number)
|
|
607
|
-
],
|
|
663
|
+
], PaymentTransaction.prototype, "paidAmount", void 0);
|
|
608
664
|
tslib.__decorate([
|
|
609
665
|
classTransformer.Expose({ name: 'paid_at' }),
|
|
610
666
|
tslib.__metadata("design:type", String)
|
|
611
|
-
],
|
|
667
|
+
], PaymentTransaction.prototype, "paidAt", void 0);
|
|
612
668
|
tslib.__decorate([
|
|
613
669
|
classTransformer.Expose({ name: 'refunded_amount' }),
|
|
614
670
|
tslib.__metadata("design:type", Number)
|
|
615
|
-
],
|
|
671
|
+
], PaymentTransaction.prototype, "refundedAmount", void 0);
|
|
616
672
|
tslib.__decorate([
|
|
617
673
|
classTransformer.Expose({ name: 'card_holder_name' }),
|
|
618
674
|
tslib.__metadata("design:type", String)
|
|
619
|
-
],
|
|
675
|
+
], PaymentTransaction.prototype, "cardHolderName", void 0);
|
|
620
676
|
tslib.__decorate([
|
|
621
677
|
classTransformer.Expose({ name: 'card_last_digits' }),
|
|
622
678
|
tslib.__metadata("design:type", String)
|
|
623
|
-
],
|
|
679
|
+
], PaymentTransaction.prototype, "cardLastDigits", void 0);
|
|
624
680
|
tslib.__decorate([
|
|
625
681
|
classTransformer.Expose({ name: 'card_first_digits' }),
|
|
626
682
|
tslib.__metadata("design:type", String)
|
|
627
|
-
],
|
|
683
|
+
], PaymentTransaction.prototype, "cardFirstDigits", void 0);
|
|
628
684
|
tslib.__decorate([
|
|
629
685
|
classTransformer.Expose({ name: 'card_brand' }),
|
|
630
686
|
tslib.__metadata("design:type", String)
|
|
631
|
-
],
|
|
687
|
+
], PaymentTransaction.prototype, "cardBrand", void 0);
|
|
632
688
|
tslib.__decorate([
|
|
633
689
|
classTransformer.Expose({ name: 'card_pin_mode' }),
|
|
634
690
|
tslib.__metadata("design:type", String)
|
|
635
|
-
],
|
|
691
|
+
], PaymentTransaction.prototype, "cardPinMode", void 0);
|
|
636
692
|
tslib.__decorate([
|
|
637
693
|
classTransformer.Expose({ name: 'card_magstripe_fallback' }),
|
|
638
694
|
tslib.__metadata("design:type", Boolean)
|
|
639
|
-
],
|
|
695
|
+
], PaymentTransaction.prototype, "cardMagstripeFallback", void 0);
|
|
640
696
|
tslib.__decorate([
|
|
641
697
|
classTransformer.Expose({ name: 'cvm_pin' }),
|
|
642
698
|
tslib.__metadata("design:type", Boolean)
|
|
643
|
-
],
|
|
699
|
+
], PaymentTransaction.prototype, "cvmPin", void 0);
|
|
644
700
|
tslib.__decorate([
|
|
645
701
|
classTransformer.Expose({ name: 'postback_url' }),
|
|
646
702
|
tslib.__metadata("design:type", String)
|
|
647
|
-
],
|
|
703
|
+
], PaymentTransaction.prototype, "postbackUrl", void 0);
|
|
648
704
|
tslib.__decorate([
|
|
649
705
|
classTransformer.Expose({ name: 'payment_method' }),
|
|
650
706
|
tslib.__metadata("design:type", String)
|
|
651
|
-
],
|
|
707
|
+
], PaymentTransaction.prototype, "paymentMethod", void 0);
|
|
652
708
|
tslib.__decorate([
|
|
653
709
|
classTransformer.Expose({ name: 'capture_method' }),
|
|
654
710
|
tslib.__metadata("design:type", String)
|
|
655
|
-
],
|
|
711
|
+
], PaymentTransaction.prototype, "captureMethod", void 0);
|
|
656
712
|
tslib.__decorate([
|
|
657
713
|
classTransformer.Expose({ name: 'antifraud_score' }),
|
|
658
714
|
tslib.__metadata("design:type", String)
|
|
659
|
-
],
|
|
715
|
+
], PaymentTransaction.prototype, "antifraudScore", void 0);
|
|
660
716
|
tslib.__decorate([
|
|
661
717
|
classTransformer.Expose({ name: 'boleto_url' }),
|
|
662
718
|
tslib.__metadata("design:type", String)
|
|
663
|
-
],
|
|
719
|
+
], PaymentTransaction.prototype, "boletoUrl", void 0);
|
|
664
720
|
tslib.__decorate([
|
|
665
721
|
classTransformer.Expose({ name: 'boleto_barcode' }),
|
|
666
722
|
tslib.__metadata("design:type", String)
|
|
667
|
-
],
|
|
723
|
+
], PaymentTransaction.prototype, "boletoBarcode", void 0);
|
|
668
724
|
tslib.__decorate([
|
|
669
725
|
classTransformer.Expose({ name: 'boleto_expiration_date' }),
|
|
670
726
|
tslib.__metadata("design:type", String)
|
|
671
|
-
],
|
|
727
|
+
], PaymentTransaction.prototype, "boletoExpirationDate", void 0);
|
|
672
728
|
tslib.__decorate([
|
|
673
729
|
classTransformer.Expose({ name: 'subscription_id' }),
|
|
674
730
|
tslib.__metadata("design:type", String)
|
|
675
|
-
],
|
|
731
|
+
], PaymentTransaction.prototype, "subscriptionId", void 0);
|
|
676
732
|
tslib.__decorate([
|
|
677
733
|
classTransformer.Expose({ name: 'split_rules' }),
|
|
678
734
|
tslib.__metadata("design:type", String)
|
|
679
|
-
],
|
|
735
|
+
], PaymentTransaction.prototype, "splitRules", void 0);
|
|
680
736
|
tslib.__decorate([
|
|
681
737
|
classTransformer.Expose({ name: 'antifraud_metadata' }),
|
|
682
738
|
tslib.__metadata("design:type", Object)
|
|
683
|
-
],
|
|
739
|
+
], PaymentTransaction.prototype, "antifraudMetadata", void 0);
|
|
684
740
|
tslib.__decorate([
|
|
685
741
|
classTransformer.Expose({ name: 'reference_key' }),
|
|
686
742
|
tslib.__metadata("design:type", String)
|
|
687
|
-
],
|
|
743
|
+
], PaymentTransaction.prototype, "referenceKey", void 0);
|
|
688
744
|
tslib.__decorate([
|
|
689
745
|
classTransformer.Expose({ name: 'local_transaction_id' }),
|
|
690
746
|
tslib.__metadata("design:type", String)
|
|
691
|
-
],
|
|
747
|
+
], PaymentTransaction.prototype, "localTransactionId", void 0);
|
|
692
748
|
tslib.__decorate([
|
|
693
749
|
classTransformer.Expose({ name: 'local_time' }),
|
|
694
750
|
tslib.__metadata("design:type", String)
|
|
695
|
-
],
|
|
751
|
+
], PaymentTransaction.prototype, "localTime", void 0);
|
|
696
752
|
tslib.__decorate([
|
|
697
753
|
classTransformer.Expose({ name: 'fraud_covered' }),
|
|
698
754
|
tslib.__metadata("design:type", Boolean)
|
|
699
|
-
],
|
|
755
|
+
], PaymentTransaction.prototype, "fraudCovered", void 0);
|
|
700
756
|
tslib.__decorate([
|
|
701
757
|
classTransformer.Expose({ name: 'fraud_reimbursed' }),
|
|
702
758
|
tslib.__metadata("design:type", String)
|
|
703
|
-
],
|
|
759
|
+
], PaymentTransaction.prototype, "fraudReimbursed", void 0);
|
|
704
760
|
tslib.__decorate([
|
|
705
761
|
classTransformer.Expose({ name: 'order_id' }),
|
|
706
762
|
tslib.__metadata("design:type", String)
|
|
707
|
-
],
|
|
763
|
+
], PaymentTransaction.prototype, "orderId", void 0);
|
|
708
764
|
tslib.__decorate([
|
|
709
765
|
classTransformer.Expose({ name: 'risk_level' }),
|
|
710
766
|
tslib.__metadata("design:type", String)
|
|
711
|
-
],
|
|
767
|
+
], PaymentTransaction.prototype, "riskLevel", void 0);
|
|
712
768
|
tslib.__decorate([
|
|
713
769
|
classTransformer.Expose({ name: 'receipt_url' }),
|
|
714
770
|
tslib.__metadata("design:type", String)
|
|
715
|
-
],
|
|
771
|
+
], PaymentTransaction.prototype, "receiptUrl", void 0);
|
|
716
772
|
tslib.__decorate([
|
|
717
773
|
classTransformer.Expose({ name: 'private_label' }),
|
|
718
774
|
tslib.__metadata("design:type", String)
|
|
719
|
-
],
|
|
775
|
+
], PaymentTransaction.prototype, "privateLabel", void 0);
|
|
720
776
|
tslib.__decorate([
|
|
721
777
|
classTransformer.Expose({ name: 'pix_qr_code' }),
|
|
722
778
|
tslib.__metadata("design:type", String)
|
|
723
|
-
],
|
|
779
|
+
], PaymentTransaction.prototype, "pixQrCode", void 0);
|
|
724
780
|
tslib.__decorate([
|
|
725
781
|
classTransformer.Expose({ name: 'pix_expiration_date' }),
|
|
726
782
|
tslib.__metadata("design:type", String)
|
|
727
|
-
],
|
|
783
|
+
], PaymentTransaction.prototype, "pixExpirationDate", void 0);
|
|
784
|
+
|
|
785
|
+
class Payment extends BaseModel {
|
|
786
|
+
static get identifiersFields() {
|
|
787
|
+
return ['id'];
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
tslib.__decorate([
|
|
791
|
+
classTransformer.Type(() => PaymentTransaction),
|
|
792
|
+
tslib.__metadata("design:type", PaymentTransaction)
|
|
793
|
+
], Payment.prototype, "transaction", void 0);
|
|
728
794
|
|
|
729
795
|
class SubscriptionPayment extends BaseModel {
|
|
730
796
|
static get identifiersFields() {
|
|
@@ -2197,8 +2263,8 @@ exports.OrderStatus = void 0;
|
|
|
2197
2263
|
class Order extends Checkout {
|
|
2198
2264
|
}
|
|
2199
2265
|
tslib.__decorate([
|
|
2200
|
-
classTransformer.Type(() =>
|
|
2201
|
-
tslib.__metadata("design:type",
|
|
2266
|
+
classTransformer.Type(() => PaymentTransaction),
|
|
2267
|
+
tslib.__metadata("design:type", PaymentTransaction)
|
|
2202
2268
|
], Order.prototype, "payment", void 0);
|
|
2203
2269
|
|
|
2204
2270
|
class OrderBlocked extends BaseModel {
|
|
@@ -2229,6 +2295,592 @@ tslib.__decorate([
|
|
|
2229
2295
|
tslib.__metadata("design:type", Coupon)
|
|
2230
2296
|
], CheckoutSubscription.prototype, "coupon", void 0);
|
|
2231
2297
|
|
|
2298
|
+
class BusinessError extends tsCustomError.CustomError {
|
|
2299
|
+
constructor(message, additionalData, type = '') {
|
|
2300
|
+
super(message);
|
|
2301
|
+
this.additionalData = additionalData;
|
|
2302
|
+
this.type = type;
|
|
2303
|
+
}
|
|
2304
|
+
}
|
|
2305
|
+
|
|
2306
|
+
class DuplicatedResultsError extends tsCustomError.CustomError {
|
|
2307
|
+
constructor(message) {
|
|
2308
|
+
super(message);
|
|
2309
|
+
}
|
|
2310
|
+
}
|
|
2311
|
+
|
|
2312
|
+
class FraudValidationError extends tsCustomError.CustomError {
|
|
2313
|
+
constructor(message, additionalData) {
|
|
2314
|
+
super(message);
|
|
2315
|
+
this.additionalData = additionalData;
|
|
2316
|
+
this.type = 'antifraud';
|
|
2317
|
+
}
|
|
2318
|
+
}
|
|
2319
|
+
|
|
2320
|
+
class InvalidArgumentError extends tsCustomError.CustomError {
|
|
2321
|
+
constructor(message) {
|
|
2322
|
+
super(message);
|
|
2323
|
+
}
|
|
2324
|
+
}
|
|
2325
|
+
|
|
2326
|
+
class NotFoundError extends tsCustomError.CustomError {
|
|
2327
|
+
constructor(message) {
|
|
2328
|
+
super(message);
|
|
2329
|
+
}
|
|
2330
|
+
}
|
|
2331
|
+
|
|
2332
|
+
class PaymentError extends tsCustomError.CustomError {
|
|
2333
|
+
constructor(message, additionalData) {
|
|
2334
|
+
super(message);
|
|
2335
|
+
this.additionalData = additionalData;
|
|
2336
|
+
this.type = 'payment';
|
|
2337
|
+
}
|
|
2338
|
+
}
|
|
2339
|
+
|
|
2340
|
+
class RequiredArgumentError extends tsCustomError.CustomError {
|
|
2341
|
+
constructor(args) {
|
|
2342
|
+
super(`Required arguments: ${args.join(', ')}`);
|
|
2343
|
+
this.args = args;
|
|
2344
|
+
this.arguments = args;
|
|
2345
|
+
}
|
|
2346
|
+
}
|
|
2347
|
+
|
|
2348
|
+
class StockLimitError extends BusinessError {
|
|
2349
|
+
constructor(message, additionalData) {
|
|
2350
|
+
super(message, additionalData);
|
|
2351
|
+
this.type = 'stock-limit';
|
|
2352
|
+
}
|
|
2353
|
+
}
|
|
2354
|
+
|
|
2355
|
+
class StockOutError extends BusinessError {
|
|
2356
|
+
constructor(message, additionalData) {
|
|
2357
|
+
super(message, additionalData);
|
|
2358
|
+
this.type = 'stock-out';
|
|
2359
|
+
}
|
|
2360
|
+
}
|
|
2361
|
+
|
|
2362
|
+
class AdyenCardService {
|
|
2363
|
+
constructor(credentials, paymentRepository, orderBlockedRepository) {
|
|
2364
|
+
this.credentials = credentials;
|
|
2365
|
+
this.paymentRepository = paymentRepository;
|
|
2366
|
+
this.orderBlockedRepository = orderBlockedRepository;
|
|
2367
|
+
}
|
|
2368
|
+
async pay(checkout, card) {
|
|
2369
|
+
try {
|
|
2370
|
+
const result = await axios__default["default"]({
|
|
2371
|
+
method: 'POST',
|
|
2372
|
+
url: this.credentials.URL_TRANSACTION,
|
|
2373
|
+
headers: {
|
|
2374
|
+
'x-api-key': this.credentials.API_KEY,
|
|
2375
|
+
'content-type': 'application/json',
|
|
2376
|
+
},
|
|
2377
|
+
data: this.createCardPayment(checkout, card),
|
|
2378
|
+
});
|
|
2379
|
+
if (result.data.resultCode !== 'Authorised') {
|
|
2380
|
+
this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'Card not authorized', 'Card', 'day', card);
|
|
2381
|
+
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`, {
|
|
2382
|
+
checkoutId: checkout.id,
|
|
2383
|
+
userEmail: checkout.user.email,
|
|
2384
|
+
info: result.data,
|
|
2385
|
+
}));
|
|
2386
|
+
}
|
|
2387
|
+
const payment = await this.paymentRepository.create(Payment.toInstance({
|
|
2388
|
+
createdAt: new Date(),
|
|
2389
|
+
updatedAt: new Date(),
|
|
2390
|
+
userId: checkout.user.id,
|
|
2391
|
+
checkoutId: checkout.id,
|
|
2392
|
+
totalPrice: checkout.totalPrice,
|
|
2393
|
+
paymentProvider: 'adyen',
|
|
2394
|
+
transaction: Object.assign(Object.assign({}, result.data), { status: 'paid' }),
|
|
2395
|
+
}));
|
|
2396
|
+
return payment;
|
|
2397
|
+
}
|
|
2398
|
+
catch (error) {
|
|
2399
|
+
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', {
|
|
2400
|
+
checkoutId: checkout.id,
|
|
2401
|
+
userEmail: checkout.user.email,
|
|
2402
|
+
info: error.message,
|
|
2403
|
+
});
|
|
2404
|
+
}
|
|
2405
|
+
}
|
|
2406
|
+
createCardPayment(checkout, card) {
|
|
2407
|
+
return {
|
|
2408
|
+
amount: {
|
|
2409
|
+
currency: 'BRL',
|
|
2410
|
+
value: ((checkout === null || checkout === void 0 ? void 0 : checkout.totalPrice) || 0) * 100,
|
|
2411
|
+
},
|
|
2412
|
+
paymentMethod: {
|
|
2413
|
+
type: 'scheme',
|
|
2414
|
+
storedPaymentMethodId: card.cardId,
|
|
2415
|
+
},
|
|
2416
|
+
reference: checkout.id,
|
|
2417
|
+
shopperInteraction: 'Ecommerce',
|
|
2418
|
+
merchantAccount: this.credentials.MERCHANT_ACCOUNT,
|
|
2419
|
+
shopperReference: checkout.user.id,
|
|
2420
|
+
recurringProcessingModel: 'CardOnFile',
|
|
2421
|
+
returnUrl: this.credentials.URL_POSTBACK,
|
|
2422
|
+
installments: {
|
|
2423
|
+
value: card.installments,
|
|
2424
|
+
},
|
|
2425
|
+
};
|
|
2426
|
+
}
|
|
2427
|
+
addCard() {
|
|
2428
|
+
throw new Error('Method not implemented.');
|
|
2429
|
+
}
|
|
2430
|
+
}
|
|
2431
|
+
|
|
2432
|
+
class AntifraudBankSlipService {
|
|
2433
|
+
constructor(orderBlockedRepository) {
|
|
2434
|
+
this.orderBlockedRepository = orderBlockedRepository;
|
|
2435
|
+
this.MAX_ORDER_VALUE = 5000;
|
|
2436
|
+
}
|
|
2437
|
+
async validate(checkout) {
|
|
2438
|
+
var _a, _b;
|
|
2439
|
+
if (checkout.totalPrice && checkout.totalPrice > this.MAX_ORDER_VALUE && !((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.isSubscriber)) {
|
|
2440
|
+
await this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'Boleto not authorized', 'Boleto', 'day');
|
|
2441
|
+
throw new FraudValidationError('Boleto não autorizado para cliente não assinante', {
|
|
2442
|
+
checkoutId: checkout.id,
|
|
2443
|
+
userEmail: checkout.user.email,
|
|
2444
|
+
info: {
|
|
2445
|
+
isSubscriber: (_b = checkout.user) === null || _b === void 0 ? void 0 : _b.isSubscriber,
|
|
2446
|
+
subtotal: checkout.subTotalPrice,
|
|
2447
|
+
total: checkout.totalPrice,
|
|
2448
|
+
},
|
|
2449
|
+
});
|
|
2450
|
+
}
|
|
2451
|
+
return true;
|
|
2452
|
+
}
|
|
2453
|
+
}
|
|
2454
|
+
|
|
2455
|
+
class AntifraudCardService {
|
|
2456
|
+
constructor(orderRepository, orderBlockedRepository) {
|
|
2457
|
+
this.orderRepository = orderRepository;
|
|
2458
|
+
this.orderBlockedRepository = orderBlockedRepository;
|
|
2459
|
+
this.LIMIT_ORDERS_DAY = 2;
|
|
2460
|
+
this.LIMIT_ORDERS_WEEK = 7;
|
|
2461
|
+
this.LIMIT_BLOCKED_ORDERS_DAY = 5;
|
|
2462
|
+
}
|
|
2463
|
+
async validate(checkout, card) {
|
|
2464
|
+
var _a, _b;
|
|
2465
|
+
if (!(await this.verifyBlockedOrderAttempts(checkout, card)))
|
|
2466
|
+
throw new FraudValidationError('Cliente com mais de 5 compras negadas/bloqueadas no dia', {
|
|
2467
|
+
checkoutId: checkout.id,
|
|
2468
|
+
userEmail: checkout.user.email,
|
|
2469
|
+
info: {
|
|
2470
|
+
isSubscriber: (_a = checkout.user) === null || _a === void 0 ? void 0 : _a.isSubscriber,
|
|
2471
|
+
subtotal: checkout.subTotalPrice,
|
|
2472
|
+
total: checkout.totalPrice,
|
|
2473
|
+
},
|
|
2474
|
+
});
|
|
2475
|
+
if (!(await this.verifyDayAndWeekOrders(checkout, card)))
|
|
2476
|
+
throw new FraudValidationError('Cliente tentando comprar mais de 2 vezes no dia ou 7 vezes na semana', {
|
|
2477
|
+
checkoutId: checkout.id,
|
|
2478
|
+
userEmail: checkout.user.email,
|
|
2479
|
+
info: {
|
|
2480
|
+
isSubscriber: (_b = checkout.user) === null || _b === void 0 ? void 0 : _b.isSubscriber,
|
|
2481
|
+
subtotal: checkout.subTotalPrice,
|
|
2482
|
+
total: checkout.totalPrice,
|
|
2483
|
+
},
|
|
2484
|
+
});
|
|
2485
|
+
return true;
|
|
2486
|
+
}
|
|
2487
|
+
async verifyBlockedOrderAttempts(checkout, card) {
|
|
2488
|
+
var _a, _b, _c, _d;
|
|
2489
|
+
const day = `${dateFns.format(new Date(), 'YYYY-MM-DD')}T00:00:00`;
|
|
2490
|
+
const endOfDay = `${dateFns.format(new Date(), 'YYYY-MM-DD')}T23:59:59`;
|
|
2491
|
+
const ordersBlockedWithCpf = await this.orderBlockedRepository
|
|
2492
|
+
.find({
|
|
2493
|
+
filters: {
|
|
2494
|
+
customer: { cpf: { operator: exports.Where.EQUALS, value: (_a = checkout.user) === null || _a === void 0 ? void 0 : _a.cpf } },
|
|
2495
|
+
date: [
|
|
2496
|
+
{ operator: exports.Where.GTE, value: new Date(day) },
|
|
2497
|
+
{ operator: exports.Where.LTE, value: new Date(endOfDay) },
|
|
2498
|
+
],
|
|
2499
|
+
},
|
|
2500
|
+
})
|
|
2501
|
+
.then((data) => data.data);
|
|
2502
|
+
const ordersBlockedWithEmail = await this.orderBlockedRepository
|
|
2503
|
+
.find({
|
|
2504
|
+
filters: {
|
|
2505
|
+
customer: { email: { operator: exports.Where.EQUALS, value: (_b = checkout.user) === null || _b === void 0 ? void 0 : _b.email } },
|
|
2506
|
+
date: [
|
|
2507
|
+
{ operator: exports.Where.GTE, value: new Date(day) },
|
|
2508
|
+
{ operator: exports.Where.LTE, value: new Date(endOfDay) },
|
|
2509
|
+
],
|
|
2510
|
+
},
|
|
2511
|
+
})
|
|
2512
|
+
.then((data) => data.data);
|
|
2513
|
+
const ordersBlockedWithCep = await this.orderBlockedRepository
|
|
2514
|
+
.find({
|
|
2515
|
+
filters: {
|
|
2516
|
+
customer: { shippingAddress: { zip: { operator: exports.Where.EQUALS, value: (_c = checkout.shippingAddress) === null || _c === void 0 ? void 0 : _c.zip } } },
|
|
2517
|
+
date: [
|
|
2518
|
+
{ operator: exports.Where.GTE, value: new Date(day) },
|
|
2519
|
+
{ operator: exports.Where.LTE, value: new Date(endOfDay) },
|
|
2520
|
+
],
|
|
2521
|
+
},
|
|
2522
|
+
})
|
|
2523
|
+
.then((data) => data.data);
|
|
2524
|
+
const ordersBlockedWithPhone = await this.orderBlockedRepository
|
|
2525
|
+
.find({
|
|
2526
|
+
filters: {
|
|
2527
|
+
customer: { phoneNumber: { operator: exports.Where.EQUALS, value: (_d = checkout.user) === null || _d === void 0 ? void 0 : _d.phone } },
|
|
2528
|
+
date: [
|
|
2529
|
+
{ operator: exports.Where.GTE, value: new Date(day) },
|
|
2530
|
+
{ operator: exports.Where.LTE, value: new Date(endOfDay) },
|
|
2531
|
+
],
|
|
2532
|
+
},
|
|
2533
|
+
})
|
|
2534
|
+
.then((data) => data.data);
|
|
2535
|
+
const blockedUniqueEmails = ordersBlockedWithEmail.filter((e) => {
|
|
2536
|
+
var _a;
|
|
2537
|
+
return e.customer.cpf !== ((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.cpf);
|
|
2538
|
+
});
|
|
2539
|
+
const blockedUniqueCeps = ordersBlockedWithCep.filter((e) => {
|
|
2540
|
+
var _a, _b;
|
|
2541
|
+
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);
|
|
2542
|
+
});
|
|
2543
|
+
const blockedUniquePhone = ordersBlockedWithPhone.filter((e) => {
|
|
2544
|
+
var _a, _b, _c, _d, _e, _f;
|
|
2545
|
+
return (e.customer.cpf !== ((_a = checkout.user) === null || _a === void 0 ? void 0 : _a.cpf) &&
|
|
2546
|
+
e.customer.email !== ((_b = checkout.user) === null || _b === void 0 ? void 0 : _b.email) &&
|
|
2547
|
+
((_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()));
|
|
2548
|
+
});
|
|
2549
|
+
const blockedAttempts = ordersBlockedWithCpf
|
|
2550
|
+
.concat(blockedUniqueEmails)
|
|
2551
|
+
.concat(blockedUniqueCeps)
|
|
2552
|
+
.concat(blockedUniquePhone);
|
|
2553
|
+
if (blockedAttempts.length >= this.LIMIT_BLOCKED_ORDERS_DAY) {
|
|
2554
|
+
await this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'More than 5 attempts have failed', 'Failed attempts', 'day', card || null);
|
|
2555
|
+
return false;
|
|
2556
|
+
}
|
|
2557
|
+
return true;
|
|
2558
|
+
}
|
|
2559
|
+
async verifyDayAndWeekOrders(checkout, card) {
|
|
2560
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2561
|
+
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'));
|
|
2562
|
+
for (const key in ordersPerDay) {
|
|
2563
|
+
if (ordersPerDay[key] > this.LIMIT_ORDERS_DAY) {
|
|
2564
|
+
await this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'Order limit', key, 'day');
|
|
2565
|
+
return false;
|
|
2566
|
+
}
|
|
2567
|
+
}
|
|
2568
|
+
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'));
|
|
2569
|
+
for (const key in ordersPerWeek) {
|
|
2570
|
+
if (ordersPerDay[key] > this.LIMIT_ORDERS_WEEK) {
|
|
2571
|
+
await this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'Order limit', key, 'week');
|
|
2572
|
+
return false;
|
|
2573
|
+
}
|
|
2574
|
+
}
|
|
2575
|
+
return true;
|
|
2576
|
+
}
|
|
2577
|
+
async validateOrdersByRange(cpf, email, phone, zip, card, range) {
|
|
2578
|
+
const ordersCpf = await this.countOrdersByField('user', 'cpf', cpf, range);
|
|
2579
|
+
const ordersByEmail = await this.countOrdersByField('user', 'email', email, range);
|
|
2580
|
+
const ordersByPhone = await this.countOrdersByField('user', 'phone', phone, range);
|
|
2581
|
+
const ordersByZip = await this.countOrdersByField('shippingAddress', 'zip', zip, range);
|
|
2582
|
+
return {
|
|
2583
|
+
cpf: ordersCpf,
|
|
2584
|
+
email: ordersByEmail,
|
|
2585
|
+
phone: ordersByPhone,
|
|
2586
|
+
zip: ordersByZip,
|
|
2587
|
+
};
|
|
2588
|
+
}
|
|
2589
|
+
async countOrdersByField(property, field, value, range) {
|
|
2590
|
+
const filters = {
|
|
2591
|
+
[property]: {
|
|
2592
|
+
[field]: value,
|
|
2593
|
+
},
|
|
2594
|
+
['createdAt']: [
|
|
2595
|
+
{ operator: exports.Where.GTE, value: range.firstDate },
|
|
2596
|
+
{ operator: exports.Where.LTE, value: range.lastDate },
|
|
2597
|
+
],
|
|
2598
|
+
};
|
|
2599
|
+
const docs = await (await this.orderRepository.find({ filters })).count;
|
|
2600
|
+
return docs;
|
|
2601
|
+
}
|
|
2602
|
+
getDateRange(range = 'day') {
|
|
2603
|
+
switch (range) {
|
|
2604
|
+
case 'day':
|
|
2605
|
+
return {
|
|
2606
|
+
firstDate: dateFns.startOfDay(new Date()).getTime(),
|
|
2607
|
+
lastDate: dateFns.endOfDay(new Date()).getTime(),
|
|
2608
|
+
};
|
|
2609
|
+
case 'week':
|
|
2610
|
+
return {
|
|
2611
|
+
firstDate: dateFns.startOfDay(dateFns.subDays(new Date(), 7)).getTime(),
|
|
2612
|
+
lastDate: dateFns.endOfDay(new Date()).getTime(),
|
|
2613
|
+
};
|
|
2614
|
+
default:
|
|
2615
|
+
return {
|
|
2616
|
+
firstDate: dateFns.startOfDay(new Date()).getTime(),
|
|
2617
|
+
lastDate: dateFns.endOfDay(new Date()).getTime(),
|
|
2618
|
+
};
|
|
2619
|
+
}
|
|
2620
|
+
}
|
|
2621
|
+
}
|
|
2622
|
+
|
|
2623
|
+
class AntifraudGlampointsService {
|
|
2624
|
+
constructor() { }
|
|
2625
|
+
async validate(checkout) {
|
|
2626
|
+
return true;
|
|
2627
|
+
}
|
|
2628
|
+
}
|
|
2629
|
+
|
|
2630
|
+
class AntifraudPixService {
|
|
2631
|
+
constructor() { }
|
|
2632
|
+
async validate(checkout) {
|
|
2633
|
+
return true;
|
|
2634
|
+
}
|
|
2635
|
+
}
|
|
2636
|
+
|
|
2637
|
+
class GlampointsPaymentService {
|
|
2638
|
+
constructor(paymentRepository) {
|
|
2639
|
+
this.paymentRepository = paymentRepository;
|
|
2640
|
+
}
|
|
2641
|
+
async pay(checkout) {
|
|
2642
|
+
const payment = await this.paymentRepository.create(Payment.toInstance({
|
|
2643
|
+
createdAt: new Date(),
|
|
2644
|
+
updatedAt: new Date(),
|
|
2645
|
+
userId: checkout.user.id,
|
|
2646
|
+
checkoutId: checkout.id,
|
|
2647
|
+
totalPrice: checkout.totalPrice,
|
|
2648
|
+
paymentProvider: 'glampoints',
|
|
2649
|
+
transaction: {
|
|
2650
|
+
amount: 0,
|
|
2651
|
+
acquirerResponseCode: '0000',
|
|
2652
|
+
acquirerName: 'glampoints',
|
|
2653
|
+
authorizedAmount: 0,
|
|
2654
|
+
captureMethod: 'ecommerce',
|
|
2655
|
+
installments: 1,
|
|
2656
|
+
cost: 0,
|
|
2657
|
+
paidAmount: 0,
|
|
2658
|
+
paidAt: new Date().toISOString(),
|
|
2659
|
+
paymentMethod: 'glampoints',
|
|
2660
|
+
referer: 'api_key',
|
|
2661
|
+
refundedAmount: 0,
|
|
2662
|
+
status: 'paid',
|
|
2663
|
+
statusReason: 'acquirer',
|
|
2664
|
+
},
|
|
2665
|
+
}));
|
|
2666
|
+
return payment;
|
|
2667
|
+
}
|
|
2668
|
+
}
|
|
2669
|
+
|
|
2670
|
+
class PagarmeBankSlipService {
|
|
2671
|
+
constructor(credentials, paymentRepository) {
|
|
2672
|
+
this.credentials = credentials;
|
|
2673
|
+
this.paymentRepository = paymentRepository;
|
|
2674
|
+
}
|
|
2675
|
+
async pay(checkout) {
|
|
2676
|
+
try {
|
|
2677
|
+
const result = await axios__default["default"]({
|
|
2678
|
+
method: 'POST',
|
|
2679
|
+
url: this.credentials.URL_TRANSACTION,
|
|
2680
|
+
data: this.createBoletoPayment(checkout),
|
|
2681
|
+
});
|
|
2682
|
+
if (result.data.status !== 'processing') {
|
|
2683
|
+
return Promise.reject(new PaymentError(`Houve uma falha ao gerar o boleto. Tente novamente`, {
|
|
2684
|
+
checkoutId: checkout.id,
|
|
2685
|
+
userEmail: checkout.user.email,
|
|
2686
|
+
info: result.data,
|
|
2687
|
+
}));
|
|
2688
|
+
}
|
|
2689
|
+
const payment = await this.paymentRepository.create(Payment.toInstance({
|
|
2690
|
+
createdAt: new Date(),
|
|
2691
|
+
updatedAt: new Date(),
|
|
2692
|
+
userId: checkout.user.id,
|
|
2693
|
+
checkoutId: checkout.id,
|
|
2694
|
+
totalPrice: checkout.totalPrice,
|
|
2695
|
+
paymentProvider: 'pagarMe',
|
|
2696
|
+
transaction: result.data,
|
|
2697
|
+
}));
|
|
2698
|
+
return payment;
|
|
2699
|
+
}
|
|
2700
|
+
catch (error) {
|
|
2701
|
+
throw new PaymentError('Houve uma falha ao gerar o boleto. Tente novamente', {
|
|
2702
|
+
checkoutId: checkout.id,
|
|
2703
|
+
userEmail: checkout.user.email,
|
|
2704
|
+
info: error.response.data,
|
|
2705
|
+
});
|
|
2706
|
+
}
|
|
2707
|
+
}
|
|
2708
|
+
createBoletoPayment(checkout) {
|
|
2709
|
+
return {
|
|
2710
|
+
api_key: this.credentials.API_KEY,
|
|
2711
|
+
amount: Math.floor(checkout.totalPrice * 100),
|
|
2712
|
+
boleto_rules: ['strict_expiration_date'],
|
|
2713
|
+
boleto_instructions: 'Sr. Caixa, NÃO aceitar o pagamento após o vencimento.',
|
|
2714
|
+
boleto_expiration_date: dateFns.format(dateFns.addDays(new Date(), 3), 'yyyy-MM-dd'),
|
|
2715
|
+
payment_method: 'boleto',
|
|
2716
|
+
postback_url: this.credentials.URL_POSTBACK,
|
|
2717
|
+
customer: {
|
|
2718
|
+
external_id: checkout.user.id,
|
|
2719
|
+
type: 'individual',
|
|
2720
|
+
country: 'br',
|
|
2721
|
+
name: checkout.user.displayName,
|
|
2722
|
+
documents: [
|
|
2723
|
+
{
|
|
2724
|
+
type: 'cpf',
|
|
2725
|
+
number: checkout.user.cpf,
|
|
2726
|
+
},
|
|
2727
|
+
],
|
|
2728
|
+
},
|
|
2729
|
+
};
|
|
2730
|
+
}
|
|
2731
|
+
}
|
|
2732
|
+
|
|
2733
|
+
class PagarmeCardService {
|
|
2734
|
+
constructor(credentials, paymentRepository, orderBlockedRepository) {
|
|
2735
|
+
this.credentials = credentials;
|
|
2736
|
+
this.paymentRepository = paymentRepository;
|
|
2737
|
+
this.orderBlockedRepository = orderBlockedRepository;
|
|
2738
|
+
}
|
|
2739
|
+
async pay(checkout, card) {
|
|
2740
|
+
var _a;
|
|
2741
|
+
try {
|
|
2742
|
+
const result = await axios__default["default"]({
|
|
2743
|
+
method: 'POST',
|
|
2744
|
+
url: this.credentials.URL_TRANSACTION,
|
|
2745
|
+
data: this.createCardPayment(checkout, card),
|
|
2746
|
+
});
|
|
2747
|
+
if (result.data.status !== 'paid') {
|
|
2748
|
+
await this.orderBlockedRepository.createBlockedOrderOrPayment(checkout, 'Card not authorized', 'Card', 'day', card);
|
|
2749
|
+
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`, {
|
|
2750
|
+
checkoutId: checkout.id,
|
|
2751
|
+
userEmail: checkout.user.email,
|
|
2752
|
+
info: result.data,
|
|
2753
|
+
}));
|
|
2754
|
+
}
|
|
2755
|
+
const payment = await this.paymentRepository.create(Payment.toInstance({
|
|
2756
|
+
createdAt: new Date(),
|
|
2757
|
+
updatedAt: new Date(),
|
|
2758
|
+
userId: checkout.user.id,
|
|
2759
|
+
checkoutId: checkout.id,
|
|
2760
|
+
totalPrice: checkout.totalPrice,
|
|
2761
|
+
paymentProvider: exports.PaymentProviders.PAGARME,
|
|
2762
|
+
transaction: Object.assign(Object.assign({}, result.data), { paidAt: new Date() }),
|
|
2763
|
+
}));
|
|
2764
|
+
return payment;
|
|
2765
|
+
}
|
|
2766
|
+
catch (error) {
|
|
2767
|
+
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', {
|
|
2768
|
+
checkoutId: checkout.id,
|
|
2769
|
+
userEmail: checkout.user.email,
|
|
2770
|
+
info: (_a = error.response) === null || _a === void 0 ? void 0 : _a.data,
|
|
2771
|
+
});
|
|
2772
|
+
}
|
|
2773
|
+
}
|
|
2774
|
+
addCard() {
|
|
2775
|
+
throw new Error('Method not implemented.');
|
|
2776
|
+
}
|
|
2777
|
+
createCardPayment(checkout, card) {
|
|
2778
|
+
var _a, _b, _c, _d, _e, _f;
|
|
2779
|
+
return {
|
|
2780
|
+
api_key: this.credentials.API_KEY,
|
|
2781
|
+
amount: Math.floor(checkout.totalPrice * 100),
|
|
2782
|
+
card_id: card.cardId,
|
|
2783
|
+
payment_method: 'credit_card',
|
|
2784
|
+
installments: card.installments,
|
|
2785
|
+
soft_descriptor: checkout.shop,
|
|
2786
|
+
customer: {
|
|
2787
|
+
external_id: checkout.user.id,
|
|
2788
|
+
name: checkout.user.displayName,
|
|
2789
|
+
type: 'individual',
|
|
2790
|
+
country: 'br',
|
|
2791
|
+
email: checkout.user.email,
|
|
2792
|
+
phone_numbers: checkout.user.phone ? ['+55' + checkout.user.phone] : '',
|
|
2793
|
+
documents: [
|
|
2794
|
+
{
|
|
2795
|
+
type: 'cpf',
|
|
2796
|
+
number: checkout.user.cpf,
|
|
2797
|
+
},
|
|
2798
|
+
],
|
|
2799
|
+
},
|
|
2800
|
+
billing: {
|
|
2801
|
+
name: checkout.user.displayName,
|
|
2802
|
+
address: {
|
|
2803
|
+
country: 'br',
|
|
2804
|
+
state: checkout.billingAddress ? checkout.billingAddress.state : (_a = checkout.shippingAddress) === null || _a === void 0 ? void 0 : _a.state,
|
|
2805
|
+
city: checkout.billingAddress ? checkout.billingAddress.city : (_b = checkout.shippingAddress) === null || _b === void 0 ? void 0 : _b.city,
|
|
2806
|
+
neighborhood: checkout.billingAddress ? checkout.billingAddress.district : (_c = checkout.shippingAddress) === null || _c === void 0 ? void 0 : _c.district,
|
|
2807
|
+
street: checkout.billingAddress ? checkout.billingAddress.street : (_d = checkout.shippingAddress) === null || _d === void 0 ? void 0 : _d.street,
|
|
2808
|
+
street_number: checkout.billingAddress ? checkout.billingAddress.number : (_e = checkout.shippingAddress) === null || _e === void 0 ? void 0 : _e.number,
|
|
2809
|
+
zipcode: checkout.billingAddress
|
|
2810
|
+
? checkout.billingAddress.zip.replace('-', '')
|
|
2811
|
+
: (_f = checkout.shippingAddress) === null || _f === void 0 ? void 0 : _f.zip.replace('-', ''),
|
|
2812
|
+
},
|
|
2813
|
+
},
|
|
2814
|
+
items: checkout.lineItems.map((item) => {
|
|
2815
|
+
return {
|
|
2816
|
+
id: item.id,
|
|
2817
|
+
title: checkout.user.isSubscriber ? `${item.name} - ASSINANTE` : item.name,
|
|
2818
|
+
unit_price: Math.floor(item.pricePaid * 100),
|
|
2819
|
+
quantity: item.quantity,
|
|
2820
|
+
tangible: true,
|
|
2821
|
+
};
|
|
2822
|
+
}),
|
|
2823
|
+
};
|
|
2824
|
+
}
|
|
2825
|
+
}
|
|
2826
|
+
|
|
2827
|
+
class PagarmePixService {
|
|
2828
|
+
constructor(credentials, paymentRepository) {
|
|
2829
|
+
this.credentials = credentials;
|
|
2830
|
+
this.paymentRepository = paymentRepository;
|
|
2831
|
+
}
|
|
2832
|
+
async pay(checkout) {
|
|
2833
|
+
var _a;
|
|
2834
|
+
try {
|
|
2835
|
+
const result = await axios__default["default"]({
|
|
2836
|
+
method: 'POST',
|
|
2837
|
+
url: this.credentials.URL_TRANSACTION,
|
|
2838
|
+
data: this.createPixPayment(checkout),
|
|
2839
|
+
});
|
|
2840
|
+
const payment = await this.paymentRepository.create(Payment.toInstance({
|
|
2841
|
+
createdAt: new Date(),
|
|
2842
|
+
updatedAt: new Date(),
|
|
2843
|
+
userId: checkout.user.id,
|
|
2844
|
+
checkoutId: checkout.id,
|
|
2845
|
+
totalPrice: checkout.totalPrice,
|
|
2846
|
+
paymentProvider: 'pagarMe',
|
|
2847
|
+
transaction: Object.assign(Object.assign({}, result.data), { paidAt: new Date() }),
|
|
2848
|
+
}));
|
|
2849
|
+
return payment;
|
|
2850
|
+
}
|
|
2851
|
+
catch (error) {
|
|
2852
|
+
throw new PaymentError('Houve uma falha ao processar pagamento com pix', {
|
|
2853
|
+
checkoutId: checkout.id,
|
|
2854
|
+
userEmail: checkout.user.email,
|
|
2855
|
+
info: (_a = error.response) === null || _a === void 0 ? void 0 : _a.data,
|
|
2856
|
+
});
|
|
2857
|
+
}
|
|
2858
|
+
}
|
|
2859
|
+
createPixPayment(checkout) {
|
|
2860
|
+
return {
|
|
2861
|
+
payment_method: 'pix',
|
|
2862
|
+
amount: Math.floor(checkout.totalPrice * 100),
|
|
2863
|
+
api_key: this.credentials.API_KEY,
|
|
2864
|
+
postback_url: this.credentials.URL_POSTBACK,
|
|
2865
|
+
pix_expiration_date: dateFns.format(dateFns.addDays(new Date(), 1), 'yyyy-MM-dd'),
|
|
2866
|
+
customer: {
|
|
2867
|
+
external_id: checkout.user.id,
|
|
2868
|
+
type: 'individual',
|
|
2869
|
+
country: 'br',
|
|
2870
|
+
name: checkout.user.displayName,
|
|
2871
|
+
email: checkout.user.email.trim(),
|
|
2872
|
+
phone_numbers: checkout.user.phone ? ['+55' + checkout.user.phone] : '',
|
|
2873
|
+
documents: [
|
|
2874
|
+
{
|
|
2875
|
+
type: 'cpf',
|
|
2876
|
+
number: checkout.user.cpf,
|
|
2877
|
+
},
|
|
2878
|
+
],
|
|
2879
|
+
},
|
|
2880
|
+
};
|
|
2881
|
+
}
|
|
2882
|
+
}
|
|
2883
|
+
|
|
2232
2884
|
class RoundProductPricesHelper {
|
|
2233
2885
|
static roundProductPrices(product) {
|
|
2234
2886
|
product.price.price = Number(product.price.price.toFixed(2));
|
|
@@ -2243,6 +2895,12 @@ class RoundProductPricesHelper {
|
|
|
2243
2895
|
}
|
|
2244
2896
|
}
|
|
2245
2897
|
|
|
2898
|
+
class Sequence extends BaseModel {
|
|
2899
|
+
static get identifiersFields() {
|
|
2900
|
+
return ['id'];
|
|
2901
|
+
}
|
|
2902
|
+
}
|
|
2903
|
+
|
|
2246
2904
|
exports.FilterType = void 0;
|
|
2247
2905
|
(function (FilterType) {
|
|
2248
2906
|
FilterType["ACCESSORY_IMPORTANCE"] = "accessoryImportance";
|
|
@@ -2381,36 +3039,10 @@ class ShopSettings extends BaseModel {
|
|
|
2381
3039
|
}
|
|
2382
3040
|
}
|
|
2383
3041
|
|
|
2384
|
-
class
|
|
2385
|
-
constructor(
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
}
|
|
2389
|
-
|
|
2390
|
-
class RequiredArgumentError extends tsCustomError.CustomError {
|
|
2391
|
-
constructor(args) {
|
|
2392
|
-
super(`Required arguments: ${args.join(', ')}`);
|
|
2393
|
-
this.args = args;
|
|
2394
|
-
this.arguments = args;
|
|
2395
|
-
}
|
|
2396
|
-
}
|
|
2397
|
-
|
|
2398
|
-
class NotFoundError extends tsCustomError.CustomError {
|
|
2399
|
-
constructor(message) {
|
|
2400
|
-
super(message);
|
|
2401
|
-
}
|
|
2402
|
-
}
|
|
2403
|
-
|
|
2404
|
-
class DuplicatedResultsError extends tsCustomError.CustomError {
|
|
2405
|
-
constructor(message) {
|
|
2406
|
-
super(message);
|
|
2407
|
-
}
|
|
2408
|
-
}
|
|
2409
|
-
|
|
2410
|
-
class AxiosAdapter {
|
|
2411
|
-
constructor(config) {
|
|
2412
|
-
this.config = config;
|
|
2413
|
-
this.logger = DebugHelper.from(this);
|
|
3042
|
+
class AxiosAdapter {
|
|
3043
|
+
constructor(config) {
|
|
3044
|
+
this.config = config;
|
|
3045
|
+
this.logger = DebugHelper.from(this);
|
|
2414
3046
|
}
|
|
2415
3047
|
async get(index, id) {
|
|
2416
3048
|
const logger = this.logger.with('get');
|
|
@@ -2541,6 +3173,8 @@ class ProductsIndex {
|
|
|
2541
3173
|
'rate',
|
|
2542
3174
|
];
|
|
2543
3175
|
const filter = [{ term: { published: true } }];
|
|
3176
|
+
if (shop && shop !== exports.Shops.ALL)
|
|
3177
|
+
filter.push({ term: { tags: shop == exports.Shops.GLAMSHOP ? 'feminino' : 'masculino' } });
|
|
2544
3178
|
if (size > 9)
|
|
2545
3179
|
fields.push(...['pricePaid', 'isGift', 'stock', 'weight', 'tags']);
|
|
2546
3180
|
const query = {
|
|
@@ -3108,180 +3742,6 @@ const withCrudFirestore = (MixinBase) => {
|
|
|
3108
3742
|
};
|
|
3109
3743
|
};
|
|
3110
3744
|
|
|
3111
|
-
class LeadFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3112
|
-
constructor({ firestore, interceptors }) {
|
|
3113
|
-
super({
|
|
3114
|
-
firestore,
|
|
3115
|
-
collectionName: 'leads',
|
|
3116
|
-
model: Lead,
|
|
3117
|
-
interceptors,
|
|
3118
|
-
});
|
|
3119
|
-
}
|
|
3120
|
-
}
|
|
3121
|
-
|
|
3122
|
-
class SubscriptionEditionFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base)))) {
|
|
3123
|
-
constructor({ firestore, interceptors }, parentRepository) {
|
|
3124
|
-
super({
|
|
3125
|
-
firestore,
|
|
3126
|
-
collectionName: 'editions',
|
|
3127
|
-
parentIdField: 'subscriptionId',
|
|
3128
|
-
model: Edition,
|
|
3129
|
-
interceptors,
|
|
3130
|
-
});
|
|
3131
|
-
this.parentRepository = parentRepository;
|
|
3132
|
-
}
|
|
3133
|
-
}
|
|
3134
|
-
|
|
3135
|
-
class SubscriptionFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3136
|
-
constructor({ firestore, interceptors, }) {
|
|
3137
|
-
super({
|
|
3138
|
-
firestore,
|
|
3139
|
-
collectionName: 'subscription',
|
|
3140
|
-
model: Subscription,
|
|
3141
|
-
interceptors,
|
|
3142
|
-
});
|
|
3143
|
-
}
|
|
3144
|
-
}
|
|
3145
|
-
|
|
3146
|
-
class SubscriptionMaterializationFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3147
|
-
constructor({ firestore, interceptors }) {
|
|
3148
|
-
super({
|
|
3149
|
-
firestore,
|
|
3150
|
-
collectionName: 'subscriptionMaterialization',
|
|
3151
|
-
model: SubscriptionMaterialization,
|
|
3152
|
-
interceptors,
|
|
3153
|
-
});
|
|
3154
|
-
}
|
|
3155
|
-
}
|
|
3156
|
-
|
|
3157
|
-
class SubscriptionPaymentFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base)))) {
|
|
3158
|
-
constructor({ firestore, interceptors }, parentRepository) {
|
|
3159
|
-
super({
|
|
3160
|
-
firestore,
|
|
3161
|
-
collectionName: 'payments',
|
|
3162
|
-
parentIdField: 'subscriptionId',
|
|
3163
|
-
model: SubscriptionPayment,
|
|
3164
|
-
interceptors,
|
|
3165
|
-
});
|
|
3166
|
-
this.parentRepository = parentRepository;
|
|
3167
|
-
}
|
|
3168
|
-
}
|
|
3169
|
-
|
|
3170
|
-
class SubscriptionSummaryFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3171
|
-
constructor({ firestore, interceptors, }) {
|
|
3172
|
-
super({
|
|
3173
|
-
firestore,
|
|
3174
|
-
collectionName: 'subscriptionSummary',
|
|
3175
|
-
model: SubscriptionSummary,
|
|
3176
|
-
interceptors,
|
|
3177
|
-
});
|
|
3178
|
-
}
|
|
3179
|
-
}
|
|
3180
|
-
|
|
3181
|
-
class UserAddressFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base)))) {
|
|
3182
|
-
constructor({ firestore, interceptors }, parentRepository) {
|
|
3183
|
-
super({
|
|
3184
|
-
firestore,
|
|
3185
|
-
collectionName: 'address',
|
|
3186
|
-
parentIdField: 'userId',
|
|
3187
|
-
model: UserAddress,
|
|
3188
|
-
interceptors,
|
|
3189
|
-
});
|
|
3190
|
-
this.parentRepository = parentRepository;
|
|
3191
|
-
}
|
|
3192
|
-
}
|
|
3193
|
-
|
|
3194
|
-
class UserBeautyProfileFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base)))) {
|
|
3195
|
-
constructor({ firestore, interceptors }, parentRepository) {
|
|
3196
|
-
super({
|
|
3197
|
-
firestore,
|
|
3198
|
-
collectionName: 'CX',
|
|
3199
|
-
parentIdField: 'userId',
|
|
3200
|
-
model: BeautyProfile,
|
|
3201
|
-
interceptors,
|
|
3202
|
-
});
|
|
3203
|
-
this.parentRepository = parentRepository;
|
|
3204
|
-
}
|
|
3205
|
-
}
|
|
3206
|
-
|
|
3207
|
-
class UserFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3208
|
-
constructor({ firestore, interceptors }) {
|
|
3209
|
-
super({
|
|
3210
|
-
firestore,
|
|
3211
|
-
collectionName: 'users',
|
|
3212
|
-
model: User,
|
|
3213
|
-
interceptors,
|
|
3214
|
-
});
|
|
3215
|
-
}
|
|
3216
|
-
async get(identifiers) {
|
|
3217
|
-
const user = await super.get({ id: identifiers.id });
|
|
3218
|
-
user.beautyProfile = await this.getBeautyProfile(user.id);
|
|
3219
|
-
user.isSubscriber = await this.checkIfIsSubscriber(user.id);
|
|
3220
|
-
return user;
|
|
3221
|
-
}
|
|
3222
|
-
async checkIfExistsByField(field, value) {
|
|
3223
|
-
const result = await this.find({ filters: { [field]: value } });
|
|
3224
|
-
return result.count > 0;
|
|
3225
|
-
}
|
|
3226
|
-
buildModelInstance() {
|
|
3227
|
-
const { fromFirestore, toFirestore } = super.buildModelInstance();
|
|
3228
|
-
return {
|
|
3229
|
-
toFirestore: (data) => {
|
|
3230
|
-
const plain = toFirestore(data);
|
|
3231
|
-
delete plain.isSubscriber;
|
|
3232
|
-
return plain;
|
|
3233
|
-
},
|
|
3234
|
-
fromFirestore,
|
|
3235
|
-
};
|
|
3236
|
-
}
|
|
3237
|
-
async getBeautyProfile(userId) {
|
|
3238
|
-
const beautyProfile = await this.firestore
|
|
3239
|
-
.getCollection(`${this.collectionName}/${userId}/CX`)
|
|
3240
|
-
.withConverter(this.buildBeautyProfileModelInstance())
|
|
3241
|
-
.getDoc('beautyProfile')
|
|
3242
|
-
.get();
|
|
3243
|
-
return beautyProfile.data();
|
|
3244
|
-
}
|
|
3245
|
-
async checkIfIsSubscriber(userId) {
|
|
3246
|
-
const docs = await this.collection('subscription')
|
|
3247
|
-
.where('user.id', '==', userId)
|
|
3248
|
-
.where('status', '==', 'active')
|
|
3249
|
-
.getDocs();
|
|
3250
|
-
return !!docs && !!docs.size;
|
|
3251
|
-
}
|
|
3252
|
-
buildBeautyProfileModelInstance() {
|
|
3253
|
-
return {
|
|
3254
|
-
toFirestore: (data) => data.toPlain(),
|
|
3255
|
-
fromFirestore: (snap) => BeautyProfile.toInstance(snap.data()),
|
|
3256
|
-
};
|
|
3257
|
-
}
|
|
3258
|
-
}
|
|
3259
|
-
tslib.__decorate([
|
|
3260
|
-
Log(),
|
|
3261
|
-
tslib.__metadata("design:type", Function),
|
|
3262
|
-
tslib.__metadata("design:paramtypes", [Object]),
|
|
3263
|
-
tslib.__metadata("design:returntype", Promise)
|
|
3264
|
-
], UserFirestoreRepository.prototype, "get", null);
|
|
3265
|
-
tslib.__decorate([
|
|
3266
|
-
Log(),
|
|
3267
|
-
tslib.__metadata("design:type", Function),
|
|
3268
|
-
tslib.__metadata("design:paramtypes", [String, String]),
|
|
3269
|
-
tslib.__metadata("design:returntype", Promise)
|
|
3270
|
-
], UserFirestoreRepository.prototype, "checkIfExistsByField", null);
|
|
3271
|
-
|
|
3272
|
-
class UserPaymentMethodFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base)))) {
|
|
3273
|
-
constructor({ firestore, interceptors }, parentRepository) {
|
|
3274
|
-
super({
|
|
3275
|
-
firestore,
|
|
3276
|
-
collectionName: 'payment_method',
|
|
3277
|
-
parentIdField: 'userId',
|
|
3278
|
-
model: UserPaymentMethod,
|
|
3279
|
-
interceptors,
|
|
3280
|
-
});
|
|
3281
|
-
this.parentRepository = parentRepository;
|
|
3282
|
-
}
|
|
3283
|
-
}
|
|
3284
|
-
|
|
3285
3745
|
class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3286
3746
|
constructor({ firestore, interceptors }) {
|
|
3287
3747
|
super({
|
|
@@ -3428,39 +3888,134 @@ class ProductFirestoreRepository extends withCrudFirestore(withHelpers(withFires
|
|
|
3428
3888
|
async fetchPaginatedReviews() {
|
|
3429
3889
|
return Promise.resolve([]);
|
|
3430
3890
|
}
|
|
3431
|
-
}
|
|
3432
|
-
tslib.__decorate([
|
|
3433
|
-
Log(),
|
|
3434
|
-
tslib.__metadata("design:type", Function),
|
|
3435
|
-
tslib.__metadata("design:paramtypes", [String]),
|
|
3436
|
-
tslib.__metadata("design:returntype", Promise)
|
|
3437
|
-
], ProductFirestoreRepository.prototype, "getBySlug", null);
|
|
3438
|
-
tslib.__decorate([
|
|
3439
|
-
Log(),
|
|
3440
|
-
tslib.__metadata("design:type", Function),
|
|
3441
|
-
tslib.__metadata("design:paramtypes", [String]),
|
|
3442
|
-
tslib.__metadata("design:returntype", Promise)
|
|
3443
|
-
], ProductFirestoreRepository.prototype, "fetchReviews", null);
|
|
3891
|
+
}
|
|
3892
|
+
tslib.__decorate([
|
|
3893
|
+
Log(),
|
|
3894
|
+
tslib.__metadata("design:type", Function),
|
|
3895
|
+
tslib.__metadata("design:paramtypes", [String]),
|
|
3896
|
+
tslib.__metadata("design:returntype", Promise)
|
|
3897
|
+
], ProductFirestoreRepository.prototype, "getBySlug", null);
|
|
3898
|
+
tslib.__decorate([
|
|
3899
|
+
Log(),
|
|
3900
|
+
tslib.__metadata("design:type", Function),
|
|
3901
|
+
tslib.__metadata("design:paramtypes", [String]),
|
|
3902
|
+
tslib.__metadata("design:returntype", Promise)
|
|
3903
|
+
], ProductFirestoreRepository.prototype, "fetchReviews", null);
|
|
3904
|
+
|
|
3905
|
+
class ProductVariantFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base)))) {
|
|
3906
|
+
constructor({ firestore, interceptors }, parentRepository) {
|
|
3907
|
+
super({
|
|
3908
|
+
firestore,
|
|
3909
|
+
collectionName: 'variants',
|
|
3910
|
+
parentIdField: 'productId',
|
|
3911
|
+
model: Variant,
|
|
3912
|
+
interceptors,
|
|
3913
|
+
});
|
|
3914
|
+
this.parentRepository = parentRepository;
|
|
3915
|
+
}
|
|
3916
|
+
}
|
|
3917
|
+
|
|
3918
|
+
class SubscriptionProductFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3919
|
+
constructor({ firestore, interceptors }) {
|
|
3920
|
+
super({
|
|
3921
|
+
firestore,
|
|
3922
|
+
collectionName: 'subscriptionProducts',
|
|
3923
|
+
model: Product,
|
|
3924
|
+
interceptors,
|
|
3925
|
+
});
|
|
3926
|
+
}
|
|
3927
|
+
}
|
|
3928
|
+
|
|
3929
|
+
class SequenceFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3930
|
+
constructor({ firestore, interceptors }) {
|
|
3931
|
+
super({
|
|
3932
|
+
firestore,
|
|
3933
|
+
collectionName: 'sequences',
|
|
3934
|
+
model: Sequence,
|
|
3935
|
+
interceptors,
|
|
3936
|
+
});
|
|
3937
|
+
}
|
|
3938
|
+
}
|
|
3939
|
+
|
|
3940
|
+
class HomeFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3941
|
+
constructor({ firestore, interceptors }) {
|
|
3942
|
+
super({
|
|
3943
|
+
firestore,
|
|
3944
|
+
collectionName: 'dms',
|
|
3945
|
+
model: Home,
|
|
3946
|
+
interceptors,
|
|
3947
|
+
});
|
|
3948
|
+
this.homeCategoryGroupToPlain = (homeCategoryGroup) => {
|
|
3949
|
+
var _a, _b, _c;
|
|
3950
|
+
return ({
|
|
3951
|
+
category: ((_a = homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.category) === null || _a === void 0 ? void 0 : _a.toPlain)
|
|
3952
|
+
? (_b = homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.category) === null || _b === void 0 ? void 0 : _b.toPlain()
|
|
3953
|
+
: homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.category,
|
|
3954
|
+
products: ((_c = homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.products) === null || _c === void 0 ? void 0 : _c.map((product) => ((product === null || product === void 0 ? void 0 : product.toPlain) ? product === null || product === void 0 ? void 0 : product.toPlain() : product)).filter(Boolean)) || [],
|
|
3955
|
+
});
|
|
3956
|
+
};
|
|
3957
|
+
this.plainToHomeCategoryGroup = (homeCategoryGroup) => {
|
|
3958
|
+
var _a;
|
|
3959
|
+
return ({
|
|
3960
|
+
category: Category.toInstance(homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.category),
|
|
3961
|
+
products: (_a = homeCategoryGroup.products) === null || _a === void 0 ? void 0 : _a.map((product) => Product.toInstance(product)),
|
|
3962
|
+
});
|
|
3963
|
+
};
|
|
3964
|
+
}
|
|
3965
|
+
buildModelInstance() {
|
|
3966
|
+
const { fromFirestore, toFirestore } = super.buildModelInstance();
|
|
3967
|
+
return {
|
|
3968
|
+
toFirestore: (data) => {
|
|
3969
|
+
const modifiedData = this.homeToFirestore(data);
|
|
3970
|
+
return toFirestore(modifiedData);
|
|
3971
|
+
},
|
|
3972
|
+
fromFirestore: (snap) => {
|
|
3973
|
+
const instance = fromFirestore(snap);
|
|
3974
|
+
return this.homeFromFirestore(instance);
|
|
3975
|
+
},
|
|
3976
|
+
};
|
|
3977
|
+
}
|
|
3978
|
+
homeToFirestore(home) {
|
|
3979
|
+
var _a, _b, _c, _d;
|
|
3980
|
+
if ((_a = home.data) === null || _a === void 0 ? void 0 : _a.data) {
|
|
3981
|
+
home.data.data.discoverProducts = ((_b = home.data.data.discoverProducts) === null || _b === void 0 ? void 0 : _b.map(this.homeCategoryGroupToPlain)) || [];
|
|
3982
|
+
home.data.data.featuredProducts = ((_c = home.data.data.featuredProducts) === null || _c === void 0 ? void 0 : _c.map(this.homeCategoryGroupToPlain)) || [];
|
|
3983
|
+
home.data.data.verticalProducts = ((_d = home.data.data.verticalProducts) === null || _d === void 0 ? void 0 : _d.map(this.homeCategoryGroupToPlain)) || [];
|
|
3984
|
+
}
|
|
3985
|
+
return home;
|
|
3986
|
+
}
|
|
3987
|
+
homeFromFirestore(home) {
|
|
3988
|
+
var _a;
|
|
3989
|
+
if ((_a = home.data) === null || _a === void 0 ? void 0 : _a.data) {
|
|
3990
|
+
home.data.data.discoverProducts = home.data.data.discoverProducts.map(this.plainToHomeCategoryGroup);
|
|
3991
|
+
home.data.data.featuredProducts = home.data.data.featuredProducts.map(this.plainToHomeCategoryGroup);
|
|
3992
|
+
home.data.data.verticalProducts = home.data.data.verticalProducts.map(this.plainToHomeCategoryGroup);
|
|
3993
|
+
home.data.createdAt =
|
|
3994
|
+
home.data.createdAt instanceof firestore.Timestamp ? home.data.createdAt.toDate() : home.data.createdAt;
|
|
3995
|
+
home.data.expiresAt =
|
|
3996
|
+
home.data.expiresAt instanceof firestore.Timestamp ? home.data.expiresAt.toDate() : home.data.expiresAt;
|
|
3997
|
+
}
|
|
3998
|
+
return home;
|
|
3999
|
+
}
|
|
4000
|
+
}
|
|
3444
4001
|
|
|
3445
|
-
class
|
|
3446
|
-
constructor({ firestore, interceptors }
|
|
4002
|
+
class ShopMenuFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
4003
|
+
constructor({ firestore, interceptors }) {
|
|
3447
4004
|
super({
|
|
3448
4005
|
firestore,
|
|
3449
|
-
collectionName: '
|
|
3450
|
-
|
|
3451
|
-
model: Variant,
|
|
4006
|
+
collectionName: 'shopMenus',
|
|
4007
|
+
model: ShopMenu,
|
|
3452
4008
|
interceptors,
|
|
3453
4009
|
});
|
|
3454
|
-
this.parentRepository = parentRepository;
|
|
3455
4010
|
}
|
|
3456
4011
|
}
|
|
3457
4012
|
|
|
3458
|
-
class
|
|
3459
|
-
constructor({ firestore, interceptors }) {
|
|
4013
|
+
class ShopSettingsFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
4014
|
+
constructor({ firestore, interceptors, }) {
|
|
3460
4015
|
super({
|
|
3461
4016
|
firestore,
|
|
3462
|
-
collectionName: '
|
|
3463
|
-
model:
|
|
4017
|
+
collectionName: 'shopSettings',
|
|
4018
|
+
model: ShopSettings,
|
|
3464
4019
|
interceptors,
|
|
3465
4020
|
});
|
|
3466
4021
|
}
|
|
@@ -3659,87 +4214,177 @@ class SubscriptionPlanFirestoreRepository extends withCrudFirestore(withHelpers(
|
|
|
3659
4214
|
}
|
|
3660
4215
|
}
|
|
3661
4216
|
|
|
3662
|
-
class
|
|
4217
|
+
class LeadFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3663
4218
|
constructor({ firestore, interceptors }) {
|
|
3664
4219
|
super({
|
|
3665
4220
|
firestore,
|
|
3666
|
-
collectionName: '
|
|
3667
|
-
model:
|
|
4221
|
+
collectionName: 'leads',
|
|
4222
|
+
model: Lead,
|
|
3668
4223
|
interceptors,
|
|
3669
4224
|
});
|
|
3670
|
-
this.homeCategoryGroupToPlain = (homeCategoryGroup) => {
|
|
3671
|
-
var _a, _b, _c;
|
|
3672
|
-
return ({
|
|
3673
|
-
category: ((_a = homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.category) === null || _a === void 0 ? void 0 : _a.toPlain)
|
|
3674
|
-
? (_b = homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.category) === null || _b === void 0 ? void 0 : _b.toPlain()
|
|
3675
|
-
: homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.category,
|
|
3676
|
-
products: ((_c = homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.products) === null || _c === void 0 ? void 0 : _c.map((product) => ((product === null || product === void 0 ? void 0 : product.toPlain) ? product === null || product === void 0 ? void 0 : product.toPlain() : product)).filter(Boolean)) || [],
|
|
3677
|
-
});
|
|
3678
|
-
};
|
|
3679
|
-
this.plainToHomeCategoryGroup = (homeCategoryGroup) => {
|
|
3680
|
-
var _a;
|
|
3681
|
-
return ({
|
|
3682
|
-
category: Category.toInstance(homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.category),
|
|
3683
|
-
products: (_a = homeCategoryGroup.products) === null || _a === void 0 ? void 0 : _a.map((product) => Product.toInstance(product)),
|
|
3684
|
-
});
|
|
3685
|
-
};
|
|
3686
|
-
}
|
|
3687
|
-
buildModelInstance() {
|
|
3688
|
-
const { fromFirestore, toFirestore } = super.buildModelInstance();
|
|
3689
|
-
return {
|
|
3690
|
-
toFirestore: (data) => {
|
|
3691
|
-
const modifiedData = this.homeToFirestore(data);
|
|
3692
|
-
return toFirestore(modifiedData);
|
|
3693
|
-
},
|
|
3694
|
-
fromFirestore: (snap) => {
|
|
3695
|
-
const instance = fromFirestore(snap);
|
|
3696
|
-
return this.homeFromFirestore(instance);
|
|
3697
|
-
},
|
|
3698
|
-
};
|
|
3699
4225
|
}
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
4226
|
+
}
|
|
4227
|
+
|
|
4228
|
+
class SubscriptionEditionFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base)))) {
|
|
4229
|
+
constructor({ firestore, interceptors }, parentRepository) {
|
|
4230
|
+
super({
|
|
4231
|
+
firestore,
|
|
4232
|
+
collectionName: 'editions',
|
|
4233
|
+
parentIdField: 'subscriptionId',
|
|
4234
|
+
model: Edition,
|
|
4235
|
+
interceptors,
|
|
4236
|
+
});
|
|
4237
|
+
this.parentRepository = parentRepository;
|
|
3708
4238
|
}
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
}
|
|
3720
|
-
return home;
|
|
4239
|
+
}
|
|
4240
|
+
|
|
4241
|
+
class SubscriptionFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
4242
|
+
constructor({ firestore, interceptors, }) {
|
|
4243
|
+
super({
|
|
4244
|
+
firestore,
|
|
4245
|
+
collectionName: 'subscription',
|
|
4246
|
+
model: Subscription,
|
|
4247
|
+
interceptors,
|
|
4248
|
+
});
|
|
3721
4249
|
}
|
|
3722
4250
|
}
|
|
3723
4251
|
|
|
3724
|
-
class
|
|
4252
|
+
class SubscriptionMaterializationFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3725
4253
|
constructor({ firestore, interceptors }) {
|
|
3726
4254
|
super({
|
|
3727
4255
|
firestore,
|
|
3728
|
-
collectionName: '
|
|
3729
|
-
model:
|
|
4256
|
+
collectionName: 'subscriptionMaterialization',
|
|
4257
|
+
model: SubscriptionMaterialization,
|
|
3730
4258
|
interceptors,
|
|
3731
4259
|
});
|
|
3732
4260
|
}
|
|
3733
4261
|
}
|
|
3734
4262
|
|
|
3735
|
-
class
|
|
4263
|
+
class SubscriptionPaymentFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base)))) {
|
|
4264
|
+
constructor({ firestore, interceptors }, parentRepository) {
|
|
4265
|
+
super({
|
|
4266
|
+
firestore,
|
|
4267
|
+
collectionName: 'payments',
|
|
4268
|
+
parentIdField: 'subscriptionId',
|
|
4269
|
+
model: SubscriptionPayment,
|
|
4270
|
+
interceptors,
|
|
4271
|
+
});
|
|
4272
|
+
this.parentRepository = parentRepository;
|
|
4273
|
+
}
|
|
4274
|
+
}
|
|
4275
|
+
|
|
4276
|
+
class SubscriptionSummaryFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
3736
4277
|
constructor({ firestore, interceptors, }) {
|
|
3737
4278
|
super({
|
|
3738
4279
|
firestore,
|
|
3739
|
-
collectionName: '
|
|
3740
|
-
model:
|
|
4280
|
+
collectionName: 'subscriptionSummary',
|
|
4281
|
+
model: SubscriptionSummary,
|
|
4282
|
+
interceptors,
|
|
4283
|
+
});
|
|
4284
|
+
}
|
|
4285
|
+
}
|
|
4286
|
+
|
|
4287
|
+
class UserAddressFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base)))) {
|
|
4288
|
+
constructor({ firestore, interceptors }, parentRepository) {
|
|
4289
|
+
super({
|
|
4290
|
+
firestore,
|
|
4291
|
+
collectionName: 'address',
|
|
4292
|
+
parentIdField: 'userId',
|
|
4293
|
+
model: UserAddress,
|
|
4294
|
+
interceptors,
|
|
4295
|
+
});
|
|
4296
|
+
this.parentRepository = parentRepository;
|
|
4297
|
+
}
|
|
4298
|
+
}
|
|
4299
|
+
|
|
4300
|
+
class UserBeautyProfileFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base)))) {
|
|
4301
|
+
constructor({ firestore, interceptors }, parentRepository) {
|
|
4302
|
+
super({
|
|
4303
|
+
firestore,
|
|
4304
|
+
collectionName: 'CX',
|
|
4305
|
+
parentIdField: 'userId',
|
|
4306
|
+
model: BeautyProfile,
|
|
4307
|
+
interceptors,
|
|
4308
|
+
});
|
|
4309
|
+
this.parentRepository = parentRepository;
|
|
4310
|
+
}
|
|
4311
|
+
}
|
|
4312
|
+
|
|
4313
|
+
class UserFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
4314
|
+
constructor({ firestore, interceptors }) {
|
|
4315
|
+
super({
|
|
4316
|
+
firestore,
|
|
4317
|
+
collectionName: 'users',
|
|
4318
|
+
model: User,
|
|
4319
|
+
interceptors,
|
|
4320
|
+
});
|
|
4321
|
+
}
|
|
4322
|
+
async get(identifiers) {
|
|
4323
|
+
const user = await super.get({ id: identifiers.id });
|
|
4324
|
+
user.beautyProfile = await this.getBeautyProfile(user.id);
|
|
4325
|
+
user.isSubscriber = await this.checkIfIsSubscriber(user.id);
|
|
4326
|
+
return user;
|
|
4327
|
+
}
|
|
4328
|
+
async checkIfExistsByField(field, value) {
|
|
4329
|
+
const result = await this.find({ filters: { [field]: value } });
|
|
4330
|
+
return result.count > 0;
|
|
4331
|
+
}
|
|
4332
|
+
buildModelInstance() {
|
|
4333
|
+
const { fromFirestore, toFirestore } = super.buildModelInstance();
|
|
4334
|
+
return {
|
|
4335
|
+
toFirestore: (data) => {
|
|
4336
|
+
const plain = toFirestore(data);
|
|
4337
|
+
delete plain.isSubscriber;
|
|
4338
|
+
return plain;
|
|
4339
|
+
},
|
|
4340
|
+
fromFirestore,
|
|
4341
|
+
};
|
|
4342
|
+
}
|
|
4343
|
+
async getBeautyProfile(userId) {
|
|
4344
|
+
const beautyProfile = await this.firestore
|
|
4345
|
+
.getCollection(`${this.collectionName}/${userId}/CX`)
|
|
4346
|
+
.withConverter(this.buildBeautyProfileModelInstance())
|
|
4347
|
+
.getDoc('beautyProfile')
|
|
4348
|
+
.get();
|
|
4349
|
+
return beautyProfile.data();
|
|
4350
|
+
}
|
|
4351
|
+
async checkIfIsSubscriber(userId) {
|
|
4352
|
+
const docs = await this.collection('subscription')
|
|
4353
|
+
.where('user.id', '==', userId)
|
|
4354
|
+
.where('status', '==', 'active')
|
|
4355
|
+
.getDocs();
|
|
4356
|
+
return !!docs && !!docs.size;
|
|
4357
|
+
}
|
|
4358
|
+
buildBeautyProfileModelInstance() {
|
|
4359
|
+
return {
|
|
4360
|
+
toFirestore: (data) => data.toPlain(),
|
|
4361
|
+
fromFirestore: (snap) => BeautyProfile.toInstance(snap.data()),
|
|
4362
|
+
};
|
|
4363
|
+
}
|
|
4364
|
+
}
|
|
4365
|
+
tslib.__decorate([
|
|
4366
|
+
Log(),
|
|
4367
|
+
tslib.__metadata("design:type", Function),
|
|
4368
|
+
tslib.__metadata("design:paramtypes", [Object]),
|
|
4369
|
+
tslib.__metadata("design:returntype", Promise)
|
|
4370
|
+
], UserFirestoreRepository.prototype, "get", null);
|
|
4371
|
+
tslib.__decorate([
|
|
4372
|
+
Log(),
|
|
4373
|
+
tslib.__metadata("design:type", Function),
|
|
4374
|
+
tslib.__metadata("design:paramtypes", [String, String]),
|
|
4375
|
+
tslib.__metadata("design:returntype", Promise)
|
|
4376
|
+
], UserFirestoreRepository.prototype, "checkIfExistsByField", null);
|
|
4377
|
+
|
|
4378
|
+
class UserPaymentMethodFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base)))) {
|
|
4379
|
+
constructor({ firestore, interceptors }, parentRepository) {
|
|
4380
|
+
super({
|
|
4381
|
+
firestore,
|
|
4382
|
+
collectionName: 'payment_method',
|
|
4383
|
+
parentIdField: 'userId',
|
|
4384
|
+
model: UserPaymentMethod,
|
|
3741
4385
|
interceptors,
|
|
3742
4386
|
});
|
|
4387
|
+
this.parentRepository = parentRepository;
|
|
3743
4388
|
}
|
|
3744
4389
|
}
|
|
3745
4390
|
|
|
@@ -6141,15 +6786,6 @@ class WishlistHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
6141
6786
|
}),
|
|
6142
6787
|
},
|
|
6143
6788
|
},
|
|
6144
|
-
{
|
|
6145
|
-
metadatas: {
|
|
6146
|
-
columnName: 'metadatas',
|
|
6147
|
-
fields: ['shop', 'title', 'description'],
|
|
6148
|
-
bindPersistData: (value) => ({
|
|
6149
|
-
metadatas: { data: value },
|
|
6150
|
-
}),
|
|
6151
|
-
},
|
|
6152
|
-
},
|
|
6153
6789
|
{ isCollection: { columnName: 'is_collection' } },
|
|
6154
6790
|
{ isWishlist: { columnName: 'is_wishlist' } },
|
|
6155
6791
|
'reference',
|
|
@@ -6169,7 +6805,6 @@ class WishlistHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
6169
6805
|
'theme',
|
|
6170
6806
|
{ bannerUrl: { columnName: 'banner_url' } },
|
|
6171
6807
|
{ personHasPhoto: { columnName: 'person_has_photo' } },
|
|
6172
|
-
{ mostRelevants: { columnName: 'most_relevants', type: HasuraGraphQLColumnType.Jsonb } },
|
|
6173
6808
|
],
|
|
6174
6809
|
});
|
|
6175
6810
|
this.categoryFilterRepository = categoryFilterRepository;
|
|
@@ -6426,6 +7061,10 @@ Object.defineProperty(exports, 'sub', {
|
|
|
6426
7061
|
enumerable: true,
|
|
6427
7062
|
get: function () { return dateFns.sub; }
|
|
6428
7063
|
});
|
|
7064
|
+
Object.defineProperty(exports, 'subDays', {
|
|
7065
|
+
enumerable: true,
|
|
7066
|
+
get: function () { return dateFns.subDays; }
|
|
7067
|
+
});
|
|
6429
7068
|
Object.defineProperty(exports, 'chunk', {
|
|
6430
7069
|
enumerable: true,
|
|
6431
7070
|
get: function () { return lodash.chunk; }
|
|
@@ -6499,6 +7138,13 @@ Object.defineProperty(exports, 'unset', {
|
|
|
6499
7138
|
get: function () { return lodash.unset; }
|
|
6500
7139
|
});
|
|
6501
7140
|
exports.Address = Address;
|
|
7141
|
+
exports.AdyenCardService = AdyenCardService;
|
|
7142
|
+
exports.AdyenPaymentMethodFactory = AdyenPaymentMethodFactory;
|
|
7143
|
+
exports.AntifraudBankSlipService = AntifraudBankSlipService;
|
|
7144
|
+
exports.AntifraudCardService = AntifraudCardService;
|
|
7145
|
+
exports.AntifraudGlampointsService = AntifraudGlampointsService;
|
|
7146
|
+
exports.AntifraudPixService = AntifraudPixService;
|
|
7147
|
+
exports.AntifraudProviderFactory = AntifraudProviderFactory;
|
|
6502
7148
|
exports.Authentication = Authentication;
|
|
6503
7149
|
exports.AuthenticationFirebaseAuthService = AuthenticationFirebaseAuthService;
|
|
6504
7150
|
exports.AxiosAdapter = AxiosAdapter;
|
|
@@ -6506,6 +7152,7 @@ exports.Base = Base;
|
|
|
6506
7152
|
exports.BaseModel = BaseModel;
|
|
6507
7153
|
exports.BeautyProfile = BeautyProfile;
|
|
6508
7154
|
exports.BeautyQuestionsHelper = BeautyQuestionsHelper;
|
|
7155
|
+
exports.BusinessError = BusinessError;
|
|
6509
7156
|
exports.Buy2Win = Buy2Win;
|
|
6510
7157
|
exports.Buy2WinFirestoreRepository = Buy2WinFirestoreRepository;
|
|
6511
7158
|
exports.Campaign = Campaign;
|
|
@@ -6543,6 +7190,9 @@ exports.FilterHasuraGraphQLRepository = FilterHasuraGraphQLRepository;
|
|
|
6543
7190
|
exports.FilterOption = FilterOption;
|
|
6544
7191
|
exports.FilterOptionHasuraGraphQLRepository = FilterOptionHasuraGraphQLRepository;
|
|
6545
7192
|
exports.FirebaseFileUploaderService = FirebaseFileUploaderService;
|
|
7193
|
+
exports.FraudValidationError = FraudValidationError;
|
|
7194
|
+
exports.GlampointsPaymentMethodFactory = GlampointsPaymentMethodFactory;
|
|
7195
|
+
exports.GlampointsPaymentService = GlampointsPaymentService;
|
|
6546
7196
|
exports.Home = Home;
|
|
6547
7197
|
exports.HomeFirestoreRepository = HomeFirestoreRepository;
|
|
6548
7198
|
exports.InvalidArgumentError = InvalidArgumentError;
|
|
@@ -6559,8 +7209,15 @@ exports.Order = Order;
|
|
|
6559
7209
|
exports.OrderBlocked = OrderBlocked;
|
|
6560
7210
|
exports.OrderBlockedFirestoreRepository = OrderBlockedFirestoreRepository;
|
|
6561
7211
|
exports.OrderFirestoreRepository = OrderFirestoreRepository;
|
|
7212
|
+
exports.PagarmeBankSlipService = PagarmeBankSlipService;
|
|
7213
|
+
exports.PagarmeCardService = PagarmeCardService;
|
|
7214
|
+
exports.PagarmePaymentMethodFactory = PagarmePaymentMethodFactory;
|
|
7215
|
+
exports.PagarmePixService = PagarmePixService;
|
|
6562
7216
|
exports.Payment = Payment;
|
|
7217
|
+
exports.PaymentError = PaymentError;
|
|
6563
7218
|
exports.PaymentFirestoreRepository = PaymentFirestoreRepository;
|
|
7219
|
+
exports.PaymentProviderFactory = PaymentProviderFactory;
|
|
7220
|
+
exports.PaymentTransaction = PaymentTransaction;
|
|
6564
7221
|
exports.Product = Product;
|
|
6565
7222
|
exports.ProductFirestoreRepository = ProductFirestoreRepository;
|
|
6566
7223
|
exports.ProductHasuraGraphQL = ProductHasuraGraphQL;
|
|
@@ -6577,12 +7234,16 @@ exports.Register = Register;
|
|
|
6577
7234
|
exports.RegisterFirebaseAuthService = RegisterFirebaseAuthService;
|
|
6578
7235
|
exports.RequiredArgumentError = RequiredArgumentError;
|
|
6579
7236
|
exports.RoundProductPricesHelper = RoundProductPricesHelper;
|
|
7237
|
+
exports.Sequence = Sequence;
|
|
7238
|
+
exports.SequenceFirestoreRepository = SequenceFirestoreRepository;
|
|
6580
7239
|
exports.ShippingMethod = ShippingMethod;
|
|
6581
7240
|
exports.ShopMenu = ShopMenu;
|
|
6582
7241
|
exports.ShopMenuFirestoreRepository = ShopMenuFirestoreRepository;
|
|
6583
7242
|
exports.ShopSettings = ShopSettings;
|
|
6584
7243
|
exports.ShopSettingsFirestoreRepository = ShopSettingsFirestoreRepository;
|
|
6585
7244
|
exports.SignOut = SignOut;
|
|
7245
|
+
exports.StockLimitError = StockLimitError;
|
|
7246
|
+
exports.StockOutError = StockOutError;
|
|
6586
7247
|
exports.Subscription = Subscription;
|
|
6587
7248
|
exports.SubscriptionEditionFirestoreRepository = SubscriptionEditionFirestoreRepository;
|
|
6588
7249
|
exports.SubscriptionFirestoreRepository = SubscriptionFirestoreRepository;
|