@infrab4a/connect 0.17.1-beta.3 → 1.0.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.
- package/README.md +24 -24
- package/bundles/infrab4a-connect.umd.js +2271 -2465
- package/bundles/infrab4a-connect.umd.js.map +1 -1
- package/esm2015/infrab4a-connect.js +5 -5
- package/esm2015/lib/domain/catalog/index.js +3 -0
- package/esm2015/lib/domain/catalog/models/category.js +7 -0
- package/esm2015/lib/domain/catalog/models/enums/index.js +2 -0
- package/esm2015/lib/domain/catalog/models/enums/shops.enum.js +6 -0
- package/esm2015/lib/domain/catalog/models/index.js +6 -0
- package/esm2015/lib/domain/catalog/models/product.js +11 -0
- package/esm2015/lib/domain/catalog/models/types/category-condition.type.js +2 -0
- package/esm2015/lib/domain/catalog/models/types/category-filter.type.js +2 -0
- package/esm2015/lib/domain/catalog/models/types/index.js +8 -0
- package/esm2015/lib/domain/catalog/models/types/product-review.type.js +2 -0
- package/esm2015/lib/domain/catalog/models/types/shops-description.type.js +2 -0
- package/esm2015/lib/domain/catalog/models/types/shops-price.type.js +2 -0
- package/esm2015/lib/domain/catalog/models/types/stock.type.js +2 -0
- package/esm2015/lib/domain/catalog/models/types/variant-grade.type.js +2 -0
- package/esm2015/lib/domain/catalog/models/variant.js +7 -0
- package/esm2015/lib/domain/catalog/repositories/category.repository.js +2 -0
- package/esm2015/lib/domain/catalog/repositories/index.js +5 -0
- package/esm2015/lib/domain/catalog/repositories/product.repository.js +2 -0
- package/esm2015/lib/domain/catalog/repositories/subscription-product.repository.js +2 -0
- package/esm2015/lib/domain/catalog/repositories/variant.repository.js +2 -0
- package/esm2015/lib/domain/general/index.js +3 -0
- package/esm2015/lib/domain/general/model/base-model-with-identifier-fields.js +2 -0
- package/esm2015/lib/domain/general/model/base.model.js +13 -0
- package/esm2015/lib/domain/general/model/identifier-fields.js +2 -0
- package/esm2015/lib/domain/general/model/index.js +5 -0
- package/esm2015/lib/domain/general/model/types/base-model-builder.type.js +2 -0
- package/esm2015/lib/domain/general/model/types/index.js +4 -0
- package/esm2015/lib/domain/general/model/types/non-function-properties.type.js +2 -0
- package/esm2015/lib/domain/general/model/types/non-function-property-name.type.js +2 -0
- package/esm2015/lib/domain/general/repository/create.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/crud.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/delete.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/enums/index.js +3 -0
- package/esm2015/lib/domain/general/repository/enums/update-option-actions.enum.js +9 -0
- package/esm2015/lib/domain/general/repository/enums/where.enum.js +12 -0
- package/esm2015/lib/domain/general/repository/find.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/get.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/index.js +10 -0
- package/esm2015/lib/domain/general/repository/read.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/types/index.js +6 -0
- package/esm2015/lib/domain/general/repository/types/repository-find-filters.type.js +2 -0
- package/esm2015/lib/domain/general/repository/types/repository-find-result.type.js +2 -0
- package/esm2015/lib/domain/general/repository/types/repository-limit-options.type.js +2 -0
- package/esm2015/lib/domain/general/repository/types/repository-order-by-list.type.js +2 -0
- package/esm2015/lib/domain/general/repository/types/repository-update-params.type.js +2 -0
- package/esm2015/lib/domain/general/repository/update.repository.js +2 -0
- package/esm2015/lib/domain/index.js +7 -0
- package/esm2015/lib/domain/location/index.js +2 -0
- package/esm2015/lib/domain/location/models/address.js +4 -0
- package/esm2015/lib/domain/location/models/index.js +3 -0
- package/esm2015/lib/domain/location/models/types/index.js +4 -0
- package/esm2015/lib/domain/location/models/types/location-bound.type.js +2 -0
- package/esm2015/lib/domain/location/models/types/location-geometry.type.js +2 -0
- package/esm2015/lib/domain/location/models/types/location-lat-lng.type.js +2 -0
- package/esm2015/lib/domain/shop-settings/enums/filter-type.enum.js +21 -0
- package/esm2015/lib/domain/shop-settings/enums/index.js +3 -0
- package/esm2015/lib/domain/shop-settings/enums/questions-filters.enum.js +21 -0
- package/esm2015/lib/domain/shop-settings/helpers/beauty-questions.helper.js +46 -0
- package/esm2015/lib/domain/shop-settings/helpers/index.js +2 -0
- package/esm2015/lib/domain/shop-settings/index.js +5 -0
- package/esm2015/lib/domain/shop-settings/models/home.js +7 -0
- package/esm2015/lib/domain/shop-settings/models/index.js +4 -0
- package/esm2015/lib/domain/shop-settings/models/shop-menu.js +7 -0
- package/esm2015/lib/domain/shop-settings/models/types/banner.type.js +2 -0
- package/esm2015/lib/domain/shop-settings/models/types/benefit.type.js +2 -0
- package/esm2015/lib/domain/shop-settings/models/types/index.js +5 -0
- package/esm2015/lib/domain/shop-settings/models/types/menu-nav.type.js +2 -0
- package/esm2015/lib/domain/shop-settings/models/types/sub-menu.type.js +2 -0
- package/esm2015/lib/domain/shop-settings/repositories/home.repository.js +2 -0
- package/esm2015/lib/domain/shop-settings/repositories/index.js +3 -0
- package/esm2015/lib/domain/shop-settings/repositories/shop-menu.repository.js +2 -0
- package/esm2015/lib/domain/shopping/index.js +3 -0
- package/esm2015/lib/domain/shopping/models/buy-2-win.js +14 -0
- package/esm2015/lib/domain/shopping/models/checkout.js +38 -0
- package/esm2015/lib/domain/shopping/models/coupons/club-coupon.js +23 -0
- package/esm2015/lib/domain/shopping/models/coupons/coupon.js +31 -0
- package/esm2015/lib/domain/shopping/models/coupons/enums/discount-type.enum.js +7 -0
- package/esm2015/lib/domain/shopping/models/coupons/enums/exclusivities.enum.js +7 -0
- package/esm2015/lib/domain/shopping/models/coupons/enums/index.js +3 -0
- package/esm2015/lib/domain/shopping/models/coupons/index.js +5 -0
- package/esm2015/lib/domain/shopping/models/coupons/store-coupon.js +23 -0
- package/esm2015/lib/domain/shopping/models/enums/checkout-types.enum.js +6 -0
- package/esm2015/lib/domain/shopping/models/enums/index.js +3 -0
- package/esm2015/lib/domain/shopping/models/enums/order-status.enum.js +12 -0
- package/esm2015/lib/domain/shopping/models/index.js +12 -0
- package/esm2015/lib/domain/shopping/models/line-item.js +4 -0
- package/esm2015/lib/domain/shopping/models/order.js +11 -0
- package/esm2015/lib/domain/shopping/models/payment.js +169 -0
- package/esm2015/lib/domain/shopping/models/shipping-method.js +7 -0
- package/esm2015/lib/domain/shopping/models/subscription/checkout.js +28 -0
- package/esm2015/lib/domain/shopping/models/subscription/index.js +3 -0
- package/esm2015/lib/domain/shopping/models/subscription/plan.js +7 -0
- package/esm2015/lib/domain/shopping/models/types/index.js +8 -0
- package/esm2015/lib/domain/shopping/models/types/payment-address.type.js +2 -0
- package/esm2015/lib/domain/shopping/models/types/payment-billing.type.js +2 -0
- package/esm2015/lib/domain/shopping/models/types/payment-card.type.js +2 -0
- package/esm2015/lib/domain/shopping/models/types/payment-customer.type.js +2 -0
- package/esm2015/lib/domain/shopping/models/types/payment-document.type.js +2 -0
- package/esm2015/lib/domain/shopping/models/types/payment-item.type.js +2 -0
- package/esm2015/lib/domain/shopping/models/types/payment-shipping.type.js +2 -0
- package/esm2015/lib/domain/shopping/repositories/buy-2-win.repository.js +2 -0
- package/esm2015/lib/domain/shopping/repositories/checkout.repository.js +2 -0
- package/esm2015/lib/domain/shopping/repositories/coupon.repository.js +2 -0
- package/esm2015/lib/domain/shopping/repositories/index.js +8 -0
- package/esm2015/lib/domain/shopping/repositories/legacy-order.repository.js +2 -0
- package/esm2015/lib/domain/shopping/repositories/order.repository.js +2 -0
- package/esm2015/lib/domain/shopping/repositories/payment.repository.js +2 -0
- package/esm2015/lib/domain/shopping/repositories/subscription/checkout.repository.js +2 -0
- package/esm2015/lib/domain/shopping/repositories/subscription/index.js +3 -0
- package/esm2015/lib/domain/shopping/repositories/subscription/plan.repository.js +2 -0
- package/esm2015/lib/domain/users/errors/index.js +4 -0
- package/esm2015/lib/domain/users/errors/unauthorized.error.js +7 -0
- package/esm2015/lib/domain/users/errors/user-already-registered.error.js +7 -0
- package/esm2015/lib/domain/users/errors/weak-password.error.js +7 -0
- package/esm2015/lib/domain/users/index.js +6 -0
- package/esm2015/lib/domain/users/models/beauty-profile.js +12 -0
- package/esm2015/lib/domain/users/models/enums/accessory-importances.enum.js +7 -0
- package/esm2015/lib/domain/users/models/enums/area.enum.js +13 -0
- package/esm2015/lib/domain/users/models/enums/beard-problems.enum.js +11 -0
- package/esm2015/lib/domain/users/models/enums/beard-sizes.enum.js +9 -0
- package/esm2015/lib/domain/users/models/enums/beauty-product-importances.enum.js +8 -0
- package/esm2015/lib/domain/users/models/enums/body-problems.enum.js +13 -0
- package/esm2015/lib/domain/users/models/enums/body-shapes.enum.js +9 -0
- package/esm2015/lib/domain/users/models/enums/body-tattoos.enum.js +7 -0
- package/esm2015/lib/domain/users/models/enums/face-skin-oilinesses.enum.js +9 -0
- package/esm2015/lib/domain/users/models/enums/face-skin-problems.enum.js +12 -0
- package/esm2015/lib/domain/users/models/enums/face-skin-tones.enum.js +10 -0
- package/esm2015/lib/domain/users/models/enums/family-incomes.enum.js +10 -0
- package/esm2015/lib/domain/users/models/enums/fragrance-importances.enum.js +7 -0
- package/esm2015/lib/domain/users/models/enums/hair-colors.enum.js +12 -0
- package/esm2015/lib/domain/users/models/enums/hair-problems.enum.js +12 -0
- package/esm2015/lib/domain/users/models/enums/hair-strands.enum.js +10 -0
- package/esm2015/lib/domain/users/models/enums/hair-types.enum.js +9 -0
- package/esm2015/lib/domain/users/models/enums/index.js +21 -0
- package/esm2015/lib/domain/users/models/enums/office-position.enum.js +8 -0
- package/esm2015/lib/domain/users/models/enums/product-spents.enum.js +10 -0
- package/esm2015/lib/domain/users/models/enums/user-type.enum.js +10 -0
- package/esm2015/lib/domain/users/models/index.js +8 -0
- package/esm2015/lib/domain/users/models/lead.js +7 -0
- package/esm2015/lib/domain/users/models/subscription/edition.js +7 -0
- package/esm2015/lib/domain/users/models/subscription/enums/billing-status.enum.js +5 -0
- package/esm2015/lib/domain/users/models/subscription/enums/edition-status.enum.js +6 -0
- package/esm2015/lib/domain/users/models/subscription/enums/index.js +5 -0
- package/esm2015/lib/domain/users/models/subscription/enums/payment-type.enum.js +7 -0
- package/esm2015/lib/domain/users/models/subscription/enums/status.enum.js +6 -0
- package/esm2015/lib/domain/users/models/subscription/index.js +5 -0
- package/esm2015/lib/domain/users/models/subscription/payment.js +14 -0
- package/esm2015/lib/domain/users/models/subscription/subscription.js +43 -0
- package/esm2015/lib/domain/users/models/user-address.js +7 -0
- package/esm2015/lib/domain/users/models/user-payment-method.js +7 -0
- package/esm2015/lib/domain/users/models/user.js +26 -0
- package/esm2015/lib/domain/users/repositories/beauty-profile.repository.js +2 -0
- package/esm2015/lib/domain/users/repositories/edition.repository.js +2 -0
- package/esm2015/lib/domain/users/repositories/index.js +9 -0
- package/esm2015/lib/domain/users/repositories/lead.repository.js +2 -0
- package/esm2015/lib/domain/users/repositories/subscription-payment.repository.js +2 -0
- package/esm2015/lib/domain/users/repositories/subscription.repository.js +2 -0
- package/esm2015/lib/domain/users/repositories/user-address.repository.js +2 -0
- package/esm2015/lib/domain/users/repositories/user-payment-method.repository.js +2 -0
- package/esm2015/lib/domain/users/repositories/user.repository.js +2 -0
- package/esm2015/lib/domain/users/services/authentication.service.js +2 -0
- package/esm2015/lib/domain/users/services/index.js +4 -0
- package/esm2015/lib/domain/users/services/register.service.js +2 -0
- package/esm2015/lib/domain/users/services/types/basic-user-data.type.js +2 -0
- package/esm2015/lib/domain/users/services/types/index.js +2 -0
- package/esm2015/lib/domain/users/use-cases/authentication.js +40 -0
- package/esm2015/lib/domain/users/use-cases/index.js +4 -0
- package/esm2015/lib/domain/users/use-cases/register.js +34 -0
- package/esm2015/lib/domain/users/use-cases/signout.js +12 -0
- package/esm2015/lib/errors/duplicated-results.error.js +7 -0
- package/esm2015/lib/errors/index.js +5 -0
- package/esm2015/lib/errors/invalid-argument.error.js +7 -0
- package/esm2015/lib/errors/not-found.error.js +7 -0
- package/esm2015/lib/errors/required-argument.error.js +8 -0
- package/esm2015/lib/index.js +5 -0
- package/esm2015/lib/infra/firebase/auth/authentication-firebase-auth.service.js +47 -0
- package/esm2015/lib/infra/firebase/auth/index.js +3 -0
- package/esm2015/lib/infra/firebase/auth/register-firebase-auth.service.js +26 -0
- package/esm2015/lib/infra/firebase/auth/types/firebase-user-with-id.type.js +2 -0
- package/esm2015/lib/infra/firebase/firestore/index.js +4 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/index.js +10 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +31 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +10 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +18 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +76 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-firestore.mixin.js +26 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +24 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-helpers.mixin.js +17 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +11 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +45 -0
- package/esm2015/lib/infra/firebase/firestore/models/user-search.js +7 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +78 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/catalog/index.js +5 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js +23 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.js +14 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/index.js +5 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shop-settings/index.js +3 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.js +39 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shopping/index.js +9 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.js +9 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shopping/order-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/index.js +10 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/lead-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.js +14 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/subscription-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.js +14 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/user-address-firestore.repository.js +14 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.js +14 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.js +70 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.js +14 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/user-search-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/types/firestore-sub.repository.type.js +2 -0
- package/esm2015/lib/infra/firebase/firestore/types/firestore.helpers.type.js +2 -0
- package/esm2015/lib/infra/firebase/firestore/types/firestore.repository.type.js +2 -0
- package/esm2015/lib/infra/firebase/firestore/types/index.js +4 -0
- package/esm2015/lib/infra/firebase/index.js +3 -0
- package/esm2015/lib/infra/index.js +2 -0
- package/esm2015/lib/utils/index.js +5 -0
- package/esm2015/lib/utils/mixins/base.mixin.js +6 -0
- package/esm2015/lib/utils/mixins/index.js +3 -0
- package/esm2015/lib/utils/mixins/mixin-ctor.type.js +2 -0
- package/esm2015/lib/utils/types/index.js +2 -0
- package/esm2015/lib/utils/types/prop.type.js +2 -0
- package/esm2015/public-api.js +3 -0
- package/fesm2015/infrab4a-connect.js +1549 -1687
- package/fesm2015/infrab4a-connect.js.map +1 -1
- package/infrab4a-connect.d.ts +5 -5
- package/lib/domain/catalog/index.d.ts +2 -0
- package/lib/domain/catalog/models/category.d.ts +22 -0
- package/lib/domain/catalog/models/enums/index.d.ts +1 -0
- package/lib/domain/catalog/models/enums/shops.enum.d.ts +4 -0
- package/lib/domain/catalog/models/index.d.ts +5 -0
- package/lib/domain/catalog/models/product.d.ts +33 -0
- package/lib/domain/catalog/models/types/category-condition.type.d.ts +4 -0
- package/lib/domain/catalog/models/types/category-filter.type.d.ts +4 -0
- package/lib/domain/catalog/models/types/index.d.ts +7 -0
- package/lib/domain/catalog/models/types/product-review.type.d.ts +14 -0
- package/lib/domain/catalog/models/types/shops-description.type.d.ts +7 -0
- package/lib/domain/catalog/models/types/shops-price.type.d.ts +10 -0
- package/lib/domain/catalog/models/types/stock.type.d.ts +3 -0
- package/lib/domain/catalog/models/types/variant-grade.type.d.ts +4 -0
- package/lib/domain/catalog/models/variant.d.ts +14 -0
- package/lib/domain/catalog/repositories/category.repository.d.ts +12 -0
- package/lib/domain/catalog/repositories/index.d.ts +4 -0
- package/lib/domain/catalog/repositories/product.repository.d.ts +5 -0
- package/lib/domain/catalog/repositories/subscription-product.repository.d.ts +4 -0
- package/lib/domain/catalog/repositories/variant.repository.d.ts +4 -0
- package/lib/domain/general/index.d.ts +2 -0
- package/lib/domain/general/model/base-model-with-identifier-fields.d.ts +3 -0
- package/lib/domain/general/model/base.model.d.ts +6 -0
- package/lib/domain/general/model/identifier-fields.d.ts +4 -0
- package/lib/domain/general/model/index.d.ts +4 -0
- package/lib/domain/general/model/types/base-model-builder.type.d.ts +5 -0
- package/lib/domain/general/model/types/index.d.ts +3 -0
- package/lib/domain/general/model/types/non-function-properties.type.d.ts +2 -0
- package/lib/domain/general/model/types/non-function-property-name.type.d.ts +3 -0
- package/lib/domain/general/repository/create.repository.d.ts +5 -0
- package/lib/domain/general/repository/crud.repository.d.ts +7 -0
- package/lib/domain/general/repository/delete.repository.d.ts +5 -0
- package/lib/domain/general/repository/enums/index.d.ts +2 -0
- package/lib/domain/general/repository/enums/update-option-actions.enum.d.ts +7 -0
- package/lib/domain/general/repository/enums/where.enum.d.ts +10 -0
- package/lib/domain/general/repository/find.repository.d.ts +5 -0
- package/lib/domain/general/repository/get.repository.d.ts +5 -0
- package/lib/domain/general/repository/index.d.ts +9 -0
- package/lib/domain/general/repository/read.repository.d.ts +5 -0
- package/lib/domain/general/repository/types/index.d.ts +5 -0
- package/lib/domain/general/repository/types/repository-find-filters.type.d.ts +14 -0
- package/lib/domain/general/repository/types/repository-find-result.type.d.ts +4 -0
- package/lib/domain/general/repository/types/repository-limit-options.type.d.ts +4 -0
- package/lib/domain/general/repository/types/repository-order-by-list.type.d.ts +5 -0
- package/lib/domain/general/repository/types/repository-update-params.type.d.ts +11 -0
- package/lib/domain/general/repository/update.repository.d.ts +5 -0
- package/lib/domain/index.d.ts +6 -0
- package/lib/domain/location/index.d.ts +1 -0
- package/lib/domain/location/models/address.d.ts +21 -0
- package/lib/domain/location/models/index.d.ts +2 -0
- package/lib/domain/location/models/types/index.d.ts +3 -0
- package/lib/domain/location/models/types/location-bound.type.d.ts +6 -0
- package/lib/domain/location/models/types/location-geometry.type.d.ts +7 -0
- package/lib/domain/location/models/types/location-lat-lng.type.d.ts +4 -0
- package/lib/domain/shop-settings/enums/filter-type.enum.d.ts +19 -0
- package/lib/domain/shop-settings/enums/index.d.ts +2 -0
- package/lib/domain/shop-settings/enums/questions-filters.enum.d.ts +19 -0
- package/lib/domain/shop-settings/helpers/beauty-questions.helper.d.ts +9 -0
- package/lib/domain/shop-settings/helpers/index.d.ts +1 -0
- package/lib/domain/shop-settings/index.d.ts +4 -0
- package/lib/domain/shop-settings/models/home.d.ts +17 -0
- package/lib/domain/shop-settings/models/index.d.ts +3 -0
- package/lib/domain/shop-settings/models/shop-menu.d.ts +7 -0
- package/lib/domain/shop-settings/models/types/banner.type.d.ts +6 -0
- package/lib/domain/shop-settings/models/types/benefit.type.d.ts +5 -0
- package/lib/domain/shop-settings/models/types/index.d.ts +4 -0
- package/lib/domain/shop-settings/models/types/menu-nav.type.d.ts +8 -0
- package/lib/domain/shop-settings/models/types/sub-menu.type.d.ts +8 -0
- package/lib/domain/shop-settings/repositories/home.repository.d.ts +4 -0
- package/lib/domain/shop-settings/repositories/index.d.ts +2 -0
- package/lib/domain/shop-settings/repositories/shop-menu.repository.d.ts +4 -0
- package/lib/domain/shopping/index.d.ts +2 -0
- package/lib/domain/shopping/models/buy-2-win.d.ts +18 -0
- package/lib/domain/shopping/models/checkout.d.ts +28 -0
- package/lib/domain/shopping/models/coupons/club-coupon.d.ts +9 -0
- package/lib/domain/shopping/models/coupons/coupon.d.ts +28 -0
- package/lib/domain/shopping/models/coupons/enums/discount-type.enum.d.ts +5 -0
- package/lib/domain/shopping/models/coupons/enums/exclusivities.enum.d.ts +5 -0
- package/lib/domain/shopping/models/coupons/enums/index.d.ts +2 -0
- package/lib/domain/shopping/models/coupons/index.d.ts +4 -0
- package/lib/domain/shopping/models/coupons/store-coupon.d.ts +8 -0
- package/lib/domain/shopping/models/enums/checkout-types.enum.d.ts +4 -0
- package/lib/domain/shopping/models/enums/index.d.ts +2 -0
- package/lib/domain/shopping/models/enums/order-status.enum.d.ts +10 -0
- package/lib/domain/shopping/models/index.d.ts +11 -0
- package/lib/domain/shopping/models/line-item.d.ts +8 -0
- package/lib/domain/shopping/models/order.d.ts +9 -0
- package/lib/domain/shopping/models/payment.d.ts +69 -0
- package/lib/domain/shopping/models/shipping-method.d.ts +18 -0
- package/lib/domain/shopping/models/subscription/checkout.d.ts +23 -0
- package/lib/domain/shopping/models/subscription/index.d.ts +2 -0
- package/lib/domain/shopping/models/subscription/plan.d.ts +12 -0
- package/lib/domain/shopping/models/types/index.d.ts +7 -0
- package/lib/domain/shopping/models/types/payment-address.type.d.ts +12 -0
- package/lib/domain/shopping/models/types/payment-billing.type.d.ts +7 -0
- package/lib/domain/shopping/models/types/payment-card.type.d.ts +14 -0
- package/lib/domain/shopping/models/types/payment-customer.type.d.ts +18 -0
- package/lib/domain/shopping/models/types/payment-document.type.d.ts +6 -0
- package/lib/domain/shopping/models/types/payment-item.type.d.ts +11 -0
- package/lib/domain/shopping/models/types/payment-shipping.type.d.ts +10 -0
- package/lib/domain/shopping/repositories/buy-2-win.repository.d.ts +4 -0
- package/lib/domain/shopping/repositories/checkout.repository.d.ts +4 -0
- package/lib/domain/shopping/repositories/coupon.repository.d.ts +4 -0
- package/lib/domain/shopping/repositories/index.d.ts +7 -0
- package/lib/domain/shopping/repositories/legacy-order.repository.d.ts +3 -0
- package/lib/domain/shopping/repositories/order.repository.d.ts +4 -0
- package/lib/domain/shopping/repositories/payment.repository.d.ts +4 -0
- package/lib/domain/shopping/repositories/subscription/checkout.repository.d.ts +4 -0
- package/lib/domain/shopping/repositories/subscription/index.d.ts +2 -0
- package/lib/domain/shopping/repositories/subscription/plan.repository.d.ts +4 -0
- package/lib/domain/users/errors/index.d.ts +3 -0
- package/lib/domain/users/errors/unauthorized.error.d.ts +4 -0
- package/lib/domain/users/errors/user-already-registered.error.d.ts +4 -0
- package/lib/domain/users/errors/weak-password.error.d.ts +4 -0
- package/lib/domain/users/index.d.ts +5 -0
- package/lib/domain/users/models/beauty-profile.d.ts +12 -0
- package/lib/domain/users/models/enums/accessory-importances.enum.d.ts +5 -0
- package/lib/domain/users/models/enums/area.enum.d.ts +11 -0
- package/lib/domain/users/models/enums/beard-problems.enum.d.ts +9 -0
- package/lib/domain/users/models/enums/beard-sizes.enum.d.ts +7 -0
- package/lib/domain/users/models/enums/beauty-product-importances.enum.d.ts +6 -0
- package/lib/domain/users/models/enums/body-problems.enum.d.ts +11 -0
- package/lib/domain/users/models/enums/body-shapes.enum.d.ts +7 -0
- package/lib/domain/users/models/enums/body-tattoos.enum.d.ts +5 -0
- package/lib/domain/users/models/enums/face-skin-oilinesses.enum.d.ts +7 -0
- package/lib/domain/users/models/enums/face-skin-problems.enum.d.ts +10 -0
- package/lib/domain/users/models/enums/face-skin-tones.enum.d.ts +8 -0
- package/lib/domain/users/models/enums/family-incomes.enum.d.ts +8 -0
- package/lib/domain/users/models/enums/fragrance-importances.enum.d.ts +5 -0
- package/lib/domain/users/models/enums/hair-colors.enum.d.ts +10 -0
- package/lib/domain/users/models/enums/hair-problems.enum.d.ts +10 -0
- package/lib/domain/users/models/enums/hair-strands.enum.d.ts +8 -0
- package/lib/domain/users/models/enums/hair-types.enum.d.ts +7 -0
- package/lib/domain/users/models/enums/index.d.ts +20 -0
- package/lib/domain/users/models/enums/office-position.enum.d.ts +6 -0
- package/lib/domain/users/models/enums/product-spents.enum.d.ts +8 -0
- package/lib/domain/users/models/enums/user-type.enum.d.ts +8 -0
- package/lib/domain/users/models/index.d.ts +7 -0
- package/lib/domain/users/models/lead.d.ts +9 -0
- package/lib/domain/users/models/subscription/edition.d.ts +15 -0
- package/lib/domain/users/models/subscription/enums/billing-status.enum.d.ts +3 -0
- package/lib/domain/users/models/subscription/enums/edition-status.enum.d.ts +4 -0
- package/lib/domain/users/models/subscription/enums/index.d.ts +4 -0
- package/lib/domain/users/models/subscription/enums/payment-type.enum.d.ts +5 -0
- package/lib/domain/users/models/subscription/enums/status.enum.d.ts +4 -0
- package/lib/domain/users/models/subscription/index.d.ts +4 -0
- package/lib/domain/users/models/subscription/payment.d.ts +14 -0
- package/lib/domain/users/models/subscription/subscription.d.ts +30 -0
- package/lib/domain/users/models/user-address.d.ts +7 -0
- package/lib/domain/users/models/user-payment-method.d.ts +13 -0
- package/lib/domain/users/models/user.d.ts +24 -0
- package/lib/domain/users/repositories/beauty-profile.repository.d.ts +4 -0
- package/lib/domain/users/repositories/edition.repository.d.ts +4 -0
- package/lib/domain/users/repositories/index.d.ts +8 -0
- package/lib/domain/users/repositories/lead.repository.d.ts +4 -0
- package/lib/domain/users/repositories/subscription-payment.repository.d.ts +4 -0
- package/lib/domain/users/repositories/subscription.repository.d.ts +4 -0
- package/lib/domain/users/repositories/user-address.repository.d.ts +4 -0
- package/lib/domain/users/repositories/user-payment-method.repository.d.ts +4 -0
- package/lib/domain/users/repositories/user.repository.d.ts +6 -0
- package/lib/domain/users/services/authentication.service.d.ts +11 -0
- package/lib/domain/users/services/index.d.ts +3 -0
- package/lib/domain/users/services/register.service.d.ts +7 -0
- package/lib/domain/users/services/types/basic-user-data.type.d.ts +4 -0
- package/lib/domain/users/services/types/index.d.ts +1 -0
- package/lib/domain/users/use-cases/authentication.d.ts +21 -0
- package/lib/domain/users/use-cases/index.d.ts +3 -0
- package/lib/domain/users/use-cases/register.d.ts +13 -0
- package/lib/domain/users/use-cases/signout.d.ts +6 -0
- package/lib/errors/duplicated-results.error.d.ts +4 -0
- package/lib/errors/index.d.ts +4 -0
- package/lib/errors/invalid-argument.error.d.ts +4 -0
- package/lib/errors/not-found.error.d.ts +4 -0
- package/lib/errors/required-argument.error.d.ts +5 -0
- package/lib/index.d.ts +4 -0
- package/lib/infra/firebase/auth/authentication-firebase-auth.service.d.ts +11 -0
- package/lib/infra/firebase/auth/index.d.ts +2 -0
- package/lib/infra/firebase/auth/register-firebase-auth.service.d.ts +8 -0
- package/lib/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +3 -0
- package/lib/infra/firebase/firestore/index.d.ts +3 -0
- package/lib/infra/firebase/firestore/mixins/index.d.ts +9 -0
- package/lib/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +17 -0
- package/lib/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +29 -0
- package/lib/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +15 -0
- package/lib/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +20 -0
- package/lib/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +15 -0
- package/lib/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +15 -0
- package/lib/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +10 -0
- package/lib/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +14 -0
- package/lib/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +16 -0
- package/lib/infra/firebase/firestore/models/user-search.d.ts +9 -0
- package/lib/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +55 -0
- package/lib/infra/firebase/firestore/repositories/catalog/index.d.ts +4 -0
- package/lib/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +50 -0
- package/lib/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +60 -0
- package/lib/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +49 -0
- package/lib/infra/firebase/firestore/repositories/index.d.ts +4 -0
- package/lib/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +49 -0
- package/lib/infra/firebase/firestore/repositories/shop-settings/index.d.ts +2 -0
- package/lib/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +49 -0
- package/lib/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +49 -0
- package/lib/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +49 -0
- package/lib/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +49 -0
- package/lib/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +53 -0
- package/lib/infra/firebase/firestore/repositories/shopping/index.d.ts +8 -0
- package/lib/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +7 -0
- package/lib/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +49 -0
- package/lib/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +49 -0
- package/lib/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +49 -0
- package/lib/infra/firebase/firestore/repositories/users/index.d.ts +9 -0
- package/lib/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +49 -0
- package/lib/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +60 -0
- package/lib/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +49 -0
- package/lib/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +60 -0
- package/lib/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +60 -0
- package/lib/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +60 -0
- package/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +60 -0
- package/lib/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +60 -0
- package/lib/infra/firebase/firestore/repositories/users/user-search-firestore.repository.d.ts +50 -0
- package/lib/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +6 -0
- package/lib/infra/firebase/firestore/types/firestore.helpers.type.d.ts +8 -0
- package/lib/infra/firebase/firestore/types/firestore.repository.type.d.ts +8 -0
- package/lib/infra/firebase/firestore/types/index.d.ts +3 -0
- package/lib/infra/firebase/index.d.ts +2 -0
- package/lib/infra/index.d.ts +1 -0
- package/lib/utils/index.d.ts +4 -0
- package/lib/utils/mixins/base.mixin.d.ts +3 -0
- package/lib/utils/mixins/index.d.ts +2 -0
- package/lib/utils/mixins/mixin-ctor.type.d.ts +1 -0
- package/lib/utils/types/index.d.ts +1 -0
- package/lib/utils/types/prop.type.d.ts +1 -0
- package/package.json +1 -3
- package/public-api.d.ts +2 -0
- package/domain/catalog/index.d.ts +0 -2
- package/domain/catalog/models/category.d.ts +0 -22
- package/domain/catalog/models/enums/index.d.ts +0 -1
- package/domain/catalog/models/enums/shops.enum.d.ts +0 -5
- package/domain/catalog/models/index.d.ts +0 -5
- package/domain/catalog/models/product.d.ts +0 -35
- package/domain/catalog/models/types/category-condition.type.d.ts +0 -4
- package/domain/catalog/models/types/category-filter.type.d.ts +0 -4
- package/domain/catalog/models/types/index.d.ts +0 -7
- package/domain/catalog/models/types/product-review.type.d.ts +0 -15
- package/domain/catalog/models/types/shops-description.type.d.ts +0 -7
- package/domain/catalog/models/types/shops-price.type.d.ts +0 -10
- package/domain/catalog/models/types/stock.type.d.ts +0 -3
- package/domain/catalog/models/types/variant-grade.type.d.ts +0 -4
- package/domain/catalog/models/variant.d.ts +0 -14
- package/domain/catalog/repositories/category.repository.d.ts +0 -15
- package/domain/catalog/repositories/index.d.ts +0 -4
- package/domain/catalog/repositories/product.repository.d.ts +0 -5
- package/domain/catalog/repositories/subscription-product.repository.d.ts +0 -4
- package/domain/catalog/repositories/variant.repository.d.ts +0 -4
- package/domain/general/index.d.ts +0 -2
- package/domain/general/model/base-model-with-identifier-fields.d.ts +0 -3
- package/domain/general/model/base.model.d.ts +0 -6
- package/domain/general/model/identifier-fields.d.ts +0 -4
- package/domain/general/model/index.d.ts +0 -4
- package/domain/general/model/types/base-model-builder.type.d.ts +0 -5
- package/domain/general/model/types/index.d.ts +0 -3
- package/domain/general/model/types/non-function-properties.type.d.ts +0 -2
- package/domain/general/model/types/non-function-property-name.type.d.ts +0 -3
- package/domain/general/repository/create.repository.d.ts +0 -5
- package/domain/general/repository/crud.repository.d.ts +0 -7
- package/domain/general/repository/delete.repository.d.ts +0 -5
- package/domain/general/repository/enums/index.d.ts +0 -2
- package/domain/general/repository/enums/update-option-actions.enum.d.ts +0 -7
- package/domain/general/repository/enums/where.enum.d.ts +0 -10
- package/domain/general/repository/find.repository.d.ts +0 -5
- package/domain/general/repository/get.repository.d.ts +0 -5
- package/domain/general/repository/index.d.ts +0 -9
- package/domain/general/repository/read.repository.d.ts +0 -5
- package/domain/general/repository/types/index.d.ts +0 -5
- package/domain/general/repository/types/repository-find-filters.type.d.ts +0 -14
- package/domain/general/repository/types/repository-find-result.type.d.ts +0 -4
- package/domain/general/repository/types/repository-limit-options.type.d.ts +0 -4
- package/domain/general/repository/types/repository-order-by-list.type.d.ts +0 -5
- package/domain/general/repository/types/repository-update-params.type.d.ts +0 -11
- package/domain/general/repository/update.repository.d.ts +0 -5
- package/domain/index.d.ts +0 -6
- package/domain/location/index.d.ts +0 -1
- package/domain/location/models/address.d.ts +0 -21
- package/domain/location/models/index.d.ts +0 -2
- package/domain/location/models/types/index.d.ts +0 -3
- package/domain/location/models/types/location-bound.type.d.ts +0 -6
- package/domain/location/models/types/location-geometry.type.d.ts +0 -7
- package/domain/location/models/types/location-lat-lng.type.d.ts +0 -4
- package/domain/shop-settings/enums/filter-type.enum.d.ts +0 -19
- package/domain/shop-settings/enums/index.d.ts +0 -2
- package/domain/shop-settings/enums/questions-filters.enum.d.ts +0 -19
- package/domain/shop-settings/helpers/beauty-questions.helper.d.ts +0 -9
- package/domain/shop-settings/helpers/index.d.ts +0 -1
- package/domain/shop-settings/index.d.ts +0 -4
- package/domain/shop-settings/models/home.d.ts +0 -17
- package/domain/shop-settings/models/index.d.ts +0 -4
- package/domain/shop-settings/models/shop-menu.d.ts +0 -7
- package/domain/shop-settings/models/shop-settings.d.ts +0 -9
- package/domain/shop-settings/models/types/banner.type.d.ts +0 -6
- package/domain/shop-settings/models/types/benefit.type.d.ts +0 -5
- package/domain/shop-settings/models/types/home-data.type.d.ts +0 -15
- package/domain/shop-settings/models/types/index.d.ts +0 -10
- package/domain/shop-settings/models/types/menu-nav.type.d.ts +0 -8
- package/domain/shop-settings/models/types/shop-banner.type.d.ts +0 -10
- package/domain/shop-settings/models/types/shop-brands.type.d.ts +0 -10
- package/domain/shop-settings/models/types/shop-carousel.type.d.ts +0 -5
- package/domain/shop-settings/models/types/shop-collection.type.d.ts +0 -8
- package/domain/shop-settings/models/types/shop-section.type.d.ts +0 -9
- package/domain/shop-settings/models/types/sub-menu.type.d.ts +0 -8
- package/domain/shop-settings/repositories/home.repository.d.ts +0 -4
- package/domain/shop-settings/repositories/index.d.ts +0 -3
- package/domain/shop-settings/repositories/shop-menu.repository.d.ts +0 -4
- package/domain/shop-settings/repositories/shop-settings.repository.d.ts +0 -4
- package/domain/shopping/index.d.ts +0 -2
- package/domain/shopping/models/buy-2-win.d.ts +0 -18
- package/domain/shopping/models/checkout.d.ts +0 -29
- package/domain/shopping/models/coupons/coupon.d.ts +0 -28
- package/domain/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +0 -4
- package/domain/shopping/models/coupons/enums/coupon-types.enum.d.ts +0 -6
- package/domain/shopping/models/coupons/enums/exclusivities.enum.d.ts +0 -5
- package/domain/shopping/models/coupons/enums/index.d.ts +0 -3
- package/domain/shopping/models/coupons/financial-coupon.d.ts +0 -9
- package/domain/shopping/models/coupons/index.d.ts +0 -3
- package/domain/shopping/models/enums/checkout-types.enum.d.ts +0 -4
- package/domain/shopping/models/enums/index.d.ts +0 -2
- package/domain/shopping/models/enums/order-status.enum.d.ts +0 -10
- package/domain/shopping/models/index.d.ts +0 -11
- package/domain/shopping/models/line-item.d.ts +0 -8
- package/domain/shopping/models/order.d.ts +0 -9
- package/domain/shopping/models/payment.d.ts +0 -69
- package/domain/shopping/models/shipping-method.d.ts +0 -18
- package/domain/shopping/models/subscription/checkout.d.ts +0 -23
- package/domain/shopping/models/subscription/index.d.ts +0 -2
- package/domain/shopping/models/subscription/plan.d.ts +0 -12
- package/domain/shopping/models/types/index.d.ts +0 -7
- package/domain/shopping/models/types/payment-address.type.d.ts +0 -12
- package/domain/shopping/models/types/payment-billing.type.d.ts +0 -7
- package/domain/shopping/models/types/payment-card.type.d.ts +0 -14
- package/domain/shopping/models/types/payment-customer.type.d.ts +0 -18
- package/domain/shopping/models/types/payment-document.type.d.ts +0 -6
- package/domain/shopping/models/types/payment-item.type.d.ts +0 -11
- package/domain/shopping/models/types/payment-shipping.type.d.ts +0 -10
- package/domain/shopping/repositories/buy-2-win.repository.d.ts +0 -4
- package/domain/shopping/repositories/checkout.repository.d.ts +0 -4
- package/domain/shopping/repositories/coupon.repository.d.ts +0 -4
- package/domain/shopping/repositories/index.d.ts +0 -7
- package/domain/shopping/repositories/legacy-order.repository.d.ts +0 -3
- package/domain/shopping/repositories/order.repository.d.ts +0 -4
- package/domain/shopping/repositories/payment.repository.d.ts +0 -4
- package/domain/shopping/repositories/subscription/checkout.repository.d.ts +0 -4
- package/domain/shopping/repositories/subscription/index.d.ts +0 -2
- package/domain/shopping/repositories/subscription/plan.repository.d.ts +0 -4
- package/domain/users/errors/index.d.ts +0 -3
- package/domain/users/errors/unauthorized.error.d.ts +0 -4
- package/domain/users/errors/user-already-registered.error.d.ts +0 -4
- package/domain/users/errors/weak-password.error.d.ts +0 -4
- package/domain/users/index.d.ts +0 -5
- package/domain/users/models/beauty-profile.d.ts +0 -12
- package/domain/users/models/enums/accessory-importances.enum.d.ts +0 -5
- package/domain/users/models/enums/area.enum.d.ts +0 -11
- package/domain/users/models/enums/beard-problems.enum.d.ts +0 -9
- package/domain/users/models/enums/beard-sizes.enum.d.ts +0 -7
- package/domain/users/models/enums/beauty-product-importances.enum.d.ts +0 -6
- package/domain/users/models/enums/body-problems.enum.d.ts +0 -11
- package/domain/users/models/enums/body-shapes.enum.d.ts +0 -7
- package/domain/users/models/enums/body-tattoos.enum.d.ts +0 -5
- package/domain/users/models/enums/face-skin-oilinesses.enum.d.ts +0 -7
- package/domain/users/models/enums/face-skin-problems.enum.d.ts +0 -10
- package/domain/users/models/enums/face-skin-tones.enum.d.ts +0 -8
- package/domain/users/models/enums/family-incomes.enum.d.ts +0 -8
- package/domain/users/models/enums/fragrance-importances.enum.d.ts +0 -5
- package/domain/users/models/enums/hair-colors.enum.d.ts +0 -10
- package/domain/users/models/enums/hair-problems.enum.d.ts +0 -10
- package/domain/users/models/enums/hair-strands.enum.d.ts +0 -8
- package/domain/users/models/enums/hair-types.enum.d.ts +0 -7
- package/domain/users/models/enums/index.d.ts +0 -20
- package/domain/users/models/enums/office-position.enum.d.ts +0 -6
- package/domain/users/models/enums/product-spents.enum.d.ts +0 -8
- package/domain/users/models/enums/user-type.enum.d.ts +0 -8
- package/domain/users/models/index.d.ts +0 -7
- package/domain/users/models/lead.d.ts +0 -9
- package/domain/users/models/subscription/edition.d.ts +0 -17
- package/domain/users/models/subscription/enums/billing-status.enum.d.ts +0 -3
- package/domain/users/models/subscription/enums/edition-status.enum.d.ts +0 -4
- package/domain/users/models/subscription/enums/index.d.ts +0 -4
- package/domain/users/models/subscription/enums/payment-type.enum.d.ts +0 -5
- package/domain/users/models/subscription/enums/status.enum.d.ts +0 -4
- package/domain/users/models/subscription/index.d.ts +0 -4
- package/domain/users/models/subscription/payment.d.ts +0 -14
- package/domain/users/models/subscription/subscription.d.ts +0 -30
- package/domain/users/models/user-address.d.ts +0 -7
- package/domain/users/models/user-payment-method.d.ts +0 -14
- package/domain/users/models/user.d.ts +0 -25
- package/domain/users/repositories/beauty-profile.repository.d.ts +0 -4
- package/domain/users/repositories/edition.repository.d.ts +0 -4
- package/domain/users/repositories/index.d.ts +0 -8
- package/domain/users/repositories/lead.repository.d.ts +0 -4
- package/domain/users/repositories/subscription-payment.repository.d.ts +0 -4
- package/domain/users/repositories/subscription.repository.d.ts +0 -4
- package/domain/users/repositories/user-address.repository.d.ts +0 -4
- package/domain/users/repositories/user-payment-method.repository.d.ts +0 -4
- package/domain/users/repositories/user.repository.d.ts +0 -6
- package/domain/users/services/authentication.service.d.ts +0 -12
- package/domain/users/services/index.d.ts +0 -3
- package/domain/users/services/register.service.d.ts +0 -7
- package/domain/users/services/types/basic-user-data.type.d.ts +0 -4
- package/domain/users/services/types/index.d.ts +0 -1
- package/domain/users/use-cases/authentication.d.ts +0 -21
- package/domain/users/use-cases/index.d.ts +0 -4
- package/domain/users/use-cases/recovery-password.d.ts +0 -6
- package/domain/users/use-cases/register.d.ts +0 -13
- package/domain/users/use-cases/signout.d.ts +0 -6
- package/errors/duplicated-results.error.d.ts +0 -4
- package/errors/index.d.ts +0 -4
- package/errors/invalid-argument.error.d.ts +0 -4
- package/errors/not-found.error.d.ts +0 -4
- package/errors/required-argument.error.d.ts +0 -5
- package/esm2015/domain/catalog/index.js +0 -3
- package/esm2015/domain/catalog/models/category.js +0 -7
- package/esm2015/domain/catalog/models/enums/index.js +0 -2
- package/esm2015/domain/catalog/models/enums/shops.enum.js +0 -7
- package/esm2015/domain/catalog/models/index.js +0 -6
- package/esm2015/domain/catalog/models/product.js +0 -11
- package/esm2015/domain/catalog/models/types/category-condition.type.js +0 -2
- package/esm2015/domain/catalog/models/types/category-filter.type.js +0 -2
- package/esm2015/domain/catalog/models/types/index.js +0 -8
- package/esm2015/domain/catalog/models/types/product-review.type.js +0 -2
- package/esm2015/domain/catalog/models/types/shops-description.type.js +0 -2
- package/esm2015/domain/catalog/models/types/shops-price.type.js +0 -2
- package/esm2015/domain/catalog/models/types/stock.type.js +0 -2
- package/esm2015/domain/catalog/models/types/variant-grade.type.js +0 -2
- package/esm2015/domain/catalog/models/variant.js +0 -7
- package/esm2015/domain/catalog/repositories/category.repository.js +0 -2
- package/esm2015/domain/catalog/repositories/index.js +0 -5
- package/esm2015/domain/catalog/repositories/product.repository.js +0 -2
- package/esm2015/domain/catalog/repositories/subscription-product.repository.js +0 -2
- package/esm2015/domain/catalog/repositories/variant.repository.js +0 -2
- package/esm2015/domain/general/index.js +0 -3
- package/esm2015/domain/general/model/base-model-with-identifier-fields.js +0 -2
- package/esm2015/domain/general/model/base.model.js +0 -13
- package/esm2015/domain/general/model/identifier-fields.js +0 -2
- package/esm2015/domain/general/model/index.js +0 -5
- package/esm2015/domain/general/model/types/base-model-builder.type.js +0 -2
- package/esm2015/domain/general/model/types/index.js +0 -4
- package/esm2015/domain/general/model/types/non-function-properties.type.js +0 -2
- package/esm2015/domain/general/model/types/non-function-property-name.type.js +0 -2
- package/esm2015/domain/general/repository/create.repository.js +0 -2
- package/esm2015/domain/general/repository/crud.repository.js +0 -2
- package/esm2015/domain/general/repository/delete.repository.js +0 -2
- package/esm2015/domain/general/repository/enums/index.js +0 -3
- package/esm2015/domain/general/repository/enums/update-option-actions.enum.js +0 -9
- package/esm2015/domain/general/repository/enums/where.enum.js +0 -12
- package/esm2015/domain/general/repository/find.repository.js +0 -2
- package/esm2015/domain/general/repository/get.repository.js +0 -2
- package/esm2015/domain/general/repository/index.js +0 -10
- package/esm2015/domain/general/repository/read.repository.js +0 -2
- package/esm2015/domain/general/repository/types/index.js +0 -6
- package/esm2015/domain/general/repository/types/repository-find-filters.type.js +0 -2
- package/esm2015/domain/general/repository/types/repository-find-result.type.js +0 -2
- package/esm2015/domain/general/repository/types/repository-limit-options.type.js +0 -2
- package/esm2015/domain/general/repository/types/repository-order-by-list.type.js +0 -2
- package/esm2015/domain/general/repository/types/repository-update-params.type.js +0 -2
- package/esm2015/domain/general/repository/update.repository.js +0 -2
- package/esm2015/domain/index.js +0 -7
- package/esm2015/domain/location/index.js +0 -2
- package/esm2015/domain/location/models/address.js +0 -4
- package/esm2015/domain/location/models/index.js +0 -3
- package/esm2015/domain/location/models/types/index.js +0 -4
- package/esm2015/domain/location/models/types/location-bound.type.js +0 -2
- package/esm2015/domain/location/models/types/location-geometry.type.js +0 -2
- package/esm2015/domain/location/models/types/location-lat-lng.type.js +0 -2
- package/esm2015/domain/shop-settings/enums/filter-type.enum.js +0 -21
- package/esm2015/domain/shop-settings/enums/index.js +0 -3
- package/esm2015/domain/shop-settings/enums/questions-filters.enum.js +0 -21
- package/esm2015/domain/shop-settings/helpers/beauty-questions.helper.js +0 -46
- package/esm2015/domain/shop-settings/helpers/index.js +0 -2
- package/esm2015/domain/shop-settings/index.js +0 -5
- package/esm2015/domain/shop-settings/models/home.js +0 -7
- package/esm2015/domain/shop-settings/models/index.js +0 -5
- package/esm2015/domain/shop-settings/models/shop-menu.js +0 -7
- package/esm2015/domain/shop-settings/models/shop-settings.js +0 -7
- package/esm2015/domain/shop-settings/models/types/banner.type.js +0 -2
- package/esm2015/domain/shop-settings/models/types/benefit.type.js +0 -2
- package/esm2015/domain/shop-settings/models/types/home-data.type.js +0 -2
- package/esm2015/domain/shop-settings/models/types/index.js +0 -11
- package/esm2015/domain/shop-settings/models/types/menu-nav.type.js +0 -2
- package/esm2015/domain/shop-settings/models/types/shop-banner.type.js +0 -2
- package/esm2015/domain/shop-settings/models/types/shop-brands.type.js +0 -2
- package/esm2015/domain/shop-settings/models/types/shop-carousel.type.js +0 -2
- package/esm2015/domain/shop-settings/models/types/shop-collection.type.js +0 -2
- package/esm2015/domain/shop-settings/models/types/shop-section.type.js +0 -2
- package/esm2015/domain/shop-settings/models/types/sub-menu.type.js +0 -2
- package/esm2015/domain/shop-settings/repositories/home.repository.js +0 -2
- package/esm2015/domain/shop-settings/repositories/index.js +0 -4
- package/esm2015/domain/shop-settings/repositories/shop-menu.repository.js +0 -2
- package/esm2015/domain/shop-settings/repositories/shop-settings.repository.js +0 -2
- package/esm2015/domain/shopping/index.js +0 -3
- package/esm2015/domain/shopping/models/buy-2-win.js +0 -14
- package/esm2015/domain/shopping/models/checkout.js +0 -38
- package/esm2015/domain/shopping/models/coupons/coupon.js +0 -23
- package/esm2015/domain/shopping/models/coupons/enums/coupon-subtypes.enum.js +0 -6
- package/esm2015/domain/shopping/models/coupons/enums/coupon-types.enum.js +0 -8
- package/esm2015/domain/shopping/models/coupons/enums/exclusivities.enum.js +0 -7
- package/esm2015/domain/shopping/models/coupons/enums/index.js +0 -4
- package/esm2015/domain/shopping/models/coupons/financial-coupon.js +0 -28
- package/esm2015/domain/shopping/models/coupons/index.js +0 -4
- package/esm2015/domain/shopping/models/enums/checkout-types.enum.js +0 -6
- package/esm2015/domain/shopping/models/enums/index.js +0 -3
- package/esm2015/domain/shopping/models/enums/order-status.enum.js +0 -12
- package/esm2015/domain/shopping/models/index.js +0 -12
- package/esm2015/domain/shopping/models/line-item.js +0 -4
- package/esm2015/domain/shopping/models/order.js +0 -11
- package/esm2015/domain/shopping/models/payment.js +0 -169
- package/esm2015/domain/shopping/models/shipping-method.js +0 -7
- package/esm2015/domain/shopping/models/subscription/checkout.js +0 -28
- package/esm2015/domain/shopping/models/subscription/index.js +0 -3
- package/esm2015/domain/shopping/models/subscription/plan.js +0 -7
- package/esm2015/domain/shopping/models/types/index.js +0 -8
- package/esm2015/domain/shopping/models/types/payment-address.type.js +0 -2
- package/esm2015/domain/shopping/models/types/payment-billing.type.js +0 -2
- package/esm2015/domain/shopping/models/types/payment-card.type.js +0 -2
- package/esm2015/domain/shopping/models/types/payment-customer.type.js +0 -2
- package/esm2015/domain/shopping/models/types/payment-document.type.js +0 -2
- package/esm2015/domain/shopping/models/types/payment-item.type.js +0 -2
- package/esm2015/domain/shopping/models/types/payment-shipping.type.js +0 -2
- package/esm2015/domain/shopping/repositories/buy-2-win.repository.js +0 -2
- package/esm2015/domain/shopping/repositories/checkout.repository.js +0 -2
- package/esm2015/domain/shopping/repositories/coupon.repository.js +0 -2
- package/esm2015/domain/shopping/repositories/index.js +0 -8
- package/esm2015/domain/shopping/repositories/legacy-order.repository.js +0 -2
- package/esm2015/domain/shopping/repositories/order.repository.js +0 -2
- package/esm2015/domain/shopping/repositories/payment.repository.js +0 -2
- package/esm2015/domain/shopping/repositories/subscription/checkout.repository.js +0 -2
- package/esm2015/domain/shopping/repositories/subscription/index.js +0 -3
- package/esm2015/domain/shopping/repositories/subscription/plan.repository.js +0 -2
- package/esm2015/domain/users/errors/index.js +0 -4
- package/esm2015/domain/users/errors/unauthorized.error.js +0 -7
- package/esm2015/domain/users/errors/user-already-registered.error.js +0 -7
- package/esm2015/domain/users/errors/weak-password.error.js +0 -7
- package/esm2015/domain/users/index.js +0 -6
- package/esm2015/domain/users/models/beauty-profile.js +0 -12
- package/esm2015/domain/users/models/enums/accessory-importances.enum.js +0 -7
- package/esm2015/domain/users/models/enums/area.enum.js +0 -13
- package/esm2015/domain/users/models/enums/beard-problems.enum.js +0 -11
- package/esm2015/domain/users/models/enums/beard-sizes.enum.js +0 -9
- package/esm2015/domain/users/models/enums/beauty-product-importances.enum.js +0 -8
- package/esm2015/domain/users/models/enums/body-problems.enum.js +0 -13
- package/esm2015/domain/users/models/enums/body-shapes.enum.js +0 -9
- package/esm2015/domain/users/models/enums/body-tattoos.enum.js +0 -7
- package/esm2015/domain/users/models/enums/face-skin-oilinesses.enum.js +0 -9
- package/esm2015/domain/users/models/enums/face-skin-problems.enum.js +0 -12
- package/esm2015/domain/users/models/enums/face-skin-tones.enum.js +0 -10
- package/esm2015/domain/users/models/enums/family-incomes.enum.js +0 -10
- package/esm2015/domain/users/models/enums/fragrance-importances.enum.js +0 -7
- package/esm2015/domain/users/models/enums/hair-colors.enum.js +0 -12
- package/esm2015/domain/users/models/enums/hair-problems.enum.js +0 -12
- package/esm2015/domain/users/models/enums/hair-strands.enum.js +0 -10
- package/esm2015/domain/users/models/enums/hair-types.enum.js +0 -9
- package/esm2015/domain/users/models/enums/index.js +0 -21
- package/esm2015/domain/users/models/enums/office-position.enum.js +0 -8
- package/esm2015/domain/users/models/enums/product-spents.enum.js +0 -10
- package/esm2015/domain/users/models/enums/user-type.enum.js +0 -10
- package/esm2015/domain/users/models/index.js +0 -8
- package/esm2015/domain/users/models/lead.js +0 -7
- package/esm2015/domain/users/models/subscription/edition.js +0 -7
- package/esm2015/domain/users/models/subscription/enums/billing-status.enum.js +0 -5
- package/esm2015/domain/users/models/subscription/enums/edition-status.enum.js +0 -6
- package/esm2015/domain/users/models/subscription/enums/index.js +0 -5
- package/esm2015/domain/users/models/subscription/enums/payment-type.enum.js +0 -7
- package/esm2015/domain/users/models/subscription/enums/status.enum.js +0 -6
- package/esm2015/domain/users/models/subscription/index.js +0 -5
- package/esm2015/domain/users/models/subscription/payment.js +0 -14
- package/esm2015/domain/users/models/subscription/subscription.js +0 -43
- package/esm2015/domain/users/models/user-address.js +0 -7
- package/esm2015/domain/users/models/user-payment-method.js +0 -7
- package/esm2015/domain/users/models/user.js +0 -26
- package/esm2015/domain/users/repositories/beauty-profile.repository.js +0 -2
- package/esm2015/domain/users/repositories/edition.repository.js +0 -2
- package/esm2015/domain/users/repositories/index.js +0 -9
- package/esm2015/domain/users/repositories/lead.repository.js +0 -2
- package/esm2015/domain/users/repositories/subscription-payment.repository.js +0 -2
- package/esm2015/domain/users/repositories/subscription.repository.js +0 -2
- package/esm2015/domain/users/repositories/user-address.repository.js +0 -2
- package/esm2015/domain/users/repositories/user-payment-method.repository.js +0 -2
- package/esm2015/domain/users/repositories/user.repository.js +0 -2
- package/esm2015/domain/users/services/authentication.service.js +0 -2
- package/esm2015/domain/users/services/index.js +0 -4
- package/esm2015/domain/users/services/register.service.js +0 -2
- package/esm2015/domain/users/services/types/basic-user-data.type.js +0 -2
- package/esm2015/domain/users/services/types/index.js +0 -2
- package/esm2015/domain/users/use-cases/authentication.js +0 -40
- package/esm2015/domain/users/use-cases/index.js +0 -5
- package/esm2015/domain/users/use-cases/recovery-password.js +0 -12
- package/esm2015/domain/users/use-cases/register.js +0 -34
- package/esm2015/domain/users/use-cases/signout.js +0 -12
- package/esm2015/errors/duplicated-results.error.js +0 -7
- package/esm2015/errors/index.js +0 -5
- package/esm2015/errors/invalid-argument.error.js +0 -7
- package/esm2015/errors/not-found.error.js +0 -7
- package/esm2015/errors/required-argument.error.js +0 -8
- package/esm2015/index.js +0 -6
- package/esm2015/infra/elasticsearch/adapters/axios.adapter.js +0 -22
- package/esm2015/infra/elasticsearch/adapters/elastic-search.adapter.js +0 -2
- package/esm2015/infra/elasticsearch/adapters/index.js +0 -3
- package/esm2015/infra/elasticsearch/index.js +0 -4
- package/esm2015/infra/elasticsearch/indexes/index.js +0 -2
- package/esm2015/infra/elasticsearch/indexes/products-index.js +0 -59
- package/esm2015/infra/elasticsearch/types/elastic-search-result.js +0 -2
- package/esm2015/infra/elasticsearch/types/index.js +0 -2
- package/esm2015/infra/firebase/auth/authentication-firebase-auth.service.js +0 -52
- package/esm2015/infra/firebase/auth/index.js +0 -3
- package/esm2015/infra/firebase/auth/register-firebase-auth.service.js +0 -26
- package/esm2015/infra/firebase/auth/types/firebase-user-with-id.type.js +0 -2
- package/esm2015/infra/firebase/firestore/index.js +0 -4
- package/esm2015/infra/firebase/firestore/mixins/index.js +0 -10
- package/esm2015/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +0 -31
- package/esm2015/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +0 -10
- package/esm2015/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +0 -18
- package/esm2015/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +0 -87
- package/esm2015/infra/firebase/firestore/mixins/with-firestore.mixin.js +0 -26
- package/esm2015/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +0 -24
- package/esm2015/infra/firebase/firestore/mixins/with-helpers.mixin.js +0 -17
- package/esm2015/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +0 -11
- package/esm2015/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +0 -45
- package/esm2015/infra/firebase/firestore/models/user-search.js +0 -7
- package/esm2015/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +0 -72
- package/esm2015/infra/firebase/firestore/repositories/catalog/index.js +0 -5
- package/esm2015/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js +0 -23
- package/esm2015/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.js +0 -14
- package/esm2015/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/repositories/index.js +0 -5
- package/esm2015/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.js +0 -56
- package/esm2015/infra/firebase/firestore/repositories/shop-settings/index.js +0 -4
- package/esm2015/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.js +0 -29
- package/esm2015/infra/firebase/firestore/repositories/shopping/index.js +0 -9
- package/esm2015/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.js +0 -9
- package/esm2015/infra/firebase/firestore/repositories/shopping/order-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/repositories/users/index.js +0 -10
- package/esm2015/infra/firebase/firestore/repositories/users/lead-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.js +0 -14
- package/esm2015/infra/firebase/firestore/repositories/users/subscription-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.js +0 -14
- package/esm2015/infra/firebase/firestore/repositories/users/user-address-firestore.repository.js +0 -14
- package/esm2015/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.js +0 -14
- package/esm2015/infra/firebase/firestore/repositories/users/user-firestore.repository.js +0 -70
- package/esm2015/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.js +0 -14
- package/esm2015/infra/firebase/firestore/repositories/users/user-search-firestore.repository.js +0 -12
- package/esm2015/infra/firebase/firestore/types/firestore-sub.repository.type.js +0 -2
- package/esm2015/infra/firebase/firestore/types/firestore.helpers.type.js +0 -2
- package/esm2015/infra/firebase/firestore/types/firestore.repository.type.js +0 -2
- package/esm2015/infra/firebase/firestore/types/index.js +0 -4
- package/esm2015/infra/firebase/index.js +0 -3
- package/esm2015/infra/index.js +0 -3
- package/esm2015/utils/index.js +0 -6
- package/esm2015/utils/mixins/base.mixin.js +0 -6
- package/esm2015/utils/mixins/index.js +0 -3
- package/esm2015/utils/mixins/mixin-ctor.type.js +0 -2
- package/esm2015/utils/types/index.js +0 -2
- package/esm2015/utils/types/prop.type.js +0 -2
- package/index.d.ts +0 -5
- package/infra/elasticsearch/adapters/axios.adapter.d.ts +0 -11
- package/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +0 -4
- package/infra/elasticsearch/adapters/index.d.ts +0 -2
- package/infra/elasticsearch/index.d.ts +0 -3
- package/infra/elasticsearch/indexes/index.d.ts +0 -1
- package/infra/elasticsearch/indexes/products-index.d.ts +0 -11
- package/infra/elasticsearch/types/elastic-search-result.d.ts +0 -7
- package/infra/elasticsearch/types/index.d.ts +0 -1
- package/infra/firebase/auth/authentication-firebase-auth.service.d.ts +0 -12
- package/infra/firebase/auth/index.d.ts +0 -2
- package/infra/firebase/auth/register-firebase-auth.service.d.ts +0 -8
- package/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +0 -3
- package/infra/firebase/firestore/index.d.ts +0 -3
- package/infra/firebase/firestore/mixins/index.d.ts +0 -9
- package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +0 -17
- package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +0 -29
- package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +0 -15
- package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +0 -20
- package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +0 -15
- package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +0 -15
- package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +0 -10
- package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +0 -14
- package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +0 -16
- package/infra/firebase/firestore/models/user-search.d.ts +0 -9
- package/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +0 -58
- package/infra/firebase/firestore/repositories/catalog/index.d.ts +0 -4
- package/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +0 -50
- package/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +0 -60
- package/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +0 -49
- package/infra/firebase/firestore/repositories/index.d.ts +0 -4
- package/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +0 -57
- package/infra/firebase/firestore/repositories/shop-settings/index.d.ts +0 -3
- package/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +0 -49
- package/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +0 -49
- package/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +0 -49
- package/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +0 -49
- package/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +0 -49
- package/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +0 -53
- package/infra/firebase/firestore/repositories/shopping/index.d.ts +0 -8
- package/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +0 -7
- package/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +0 -49
- package/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +0 -49
- package/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +0 -49
- package/infra/firebase/firestore/repositories/users/index.d.ts +0 -9
- package/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +0 -49
- package/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +0 -60
- package/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +0 -49
- package/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +0 -60
- package/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +0 -60
- package/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +0 -60
- package/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +0 -60
- package/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +0 -60
- package/infra/firebase/firestore/repositories/users/user-search-firestore.repository.d.ts +0 -50
- package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +0 -6
- package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +0 -8
- package/infra/firebase/firestore/types/firestore.repository.type.d.ts +0 -8
- package/infra/firebase/firestore/types/index.d.ts +0 -3
- package/infra/firebase/index.d.ts +0 -2
- package/infra/index.d.ts +0 -2
- package/utils/index.d.ts +0 -6
- package/utils/mixins/base.mixin.d.ts +0 -3
- package/utils/mixins/index.d.ts +0 -2
- package/utils/mixins/mixin-ctor.type.d.ts +0 -1
- package/utils/types/index.d.ts +0 -1
- package/utils/types/prop.type.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infrab4a-connect.umd.js","sources":["../../../projects/connect/src/domain/general/model/base.model.ts","../../../projects/connect/src/domain/general/repository/enums/where.enum.ts","../../../projects/connect/src/domain/general/repository/enums/update-option-actions.enum.ts","../../../projects/connect/src/domain/users/models/enums/accessory-importances.enum.ts","../../../projects/connect/src/domain/users/models/enums/area.enum.ts","../../../projects/connect/src/domain/users/models/enums/beard-problems.enum.ts","../../../projects/connect/src/domain/users/models/enums/beard-sizes.enum.ts","../../../projects/connect/src/domain/users/models/enums/beauty-product-importances.enum.ts","../../../projects/connect/src/domain/users/models/enums/body-problems.enum.ts","../../../projects/connect/src/domain/users/models/enums/body-shapes.enum.ts","../../../projects/connect/src/domain/users/models/enums/body-tattoos.enum.ts","../../../projects/connect/src/domain/users/models/enums/face-skin-oilinesses.enum.ts","../../../projects/connect/src/domain/users/models/enums/face-skin-problems.enum.ts","../../../projects/connect/src/domain/users/models/enums/face-skin-tones.enum.ts","../../../projects/connect/src/domain/users/models/enums/family-incomes.enum.ts","../../../projects/connect/src/domain/users/models/enums/fragrance-importances.enum.ts","../../../projects/connect/src/domain/users/models/enums/hair-colors.enum.ts","../../../projects/connect/src/domain/users/models/enums/hair-problems.enum.ts","../../../projects/connect/src/domain/users/models/enums/hair-strands.enum.ts","../../../projects/connect/src/domain/users/models/enums/hair-types.enum.ts","../../../projects/connect/src/domain/users/models/enums/office-position.enum.ts","../../../projects/connect/src/domain/users/models/enums/product-spents.enum.ts","../../../projects/connect/src/domain/users/models/enums/user-type.enum.ts","../../../projects/connect/src/domain/users/models/subscription/enums/billing-status.enum.ts","../../../projects/connect/src/domain/users/models/subscription/enums/edition-status.enum.ts","../../../projects/connect/src/domain/users/models/subscription/enums/payment-type.enum.ts","../../../projects/connect/src/domain/users/models/subscription/enums/status.enum.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/connect/src/domain/users/models/subscription/edition.ts","../../../projects/connect/src/domain/shopping/models/payment.ts","../../../projects/connect/src/domain/users/models/subscription/payment.ts","../../../projects/connect/src/domain/location/models/address.ts","../../../projects/connect/src/utils/mixins/base.mixin.ts","../../../projects/connect/src/domain/shopping/models/coupons/coupon.ts","../../../projects/connect/src/domain/shopping/models/subscription/plan.ts","../../../projects/connect/src/domain/users/models/beauty-profile.ts","../../../projects/connect/src/domain/users/models/user.ts","../../../projects/connect/src/domain/users/models/subscription/subscription.ts","../../../projects/connect/src/domain/users/models/user-address.ts","../../../projects/connect/src/domain/users/models/user-payment-method.ts","../../../projects/connect/src/domain/users/models/lead.ts","../../../projects/connect/src/domain/users/errors/unauthorized.error.ts","../../../projects/connect/src/domain/users/use-cases/authentication.ts","../../../projects/connect/src/domain/users/errors/user-already-registered.error.ts","../../../projects/connect/src/domain/users/errors/weak-password.error.ts","../../../projects/connect/src/domain/users/use-cases/register.ts","../../../projects/connect/src/domain/users/use-cases/signout.ts","../../../projects/connect/src/domain/users/use-cases/recovery-password.ts","../../../projects/connect/src/domain/catalog/models/enums/shops.enum.ts","../../../projects/connect/src/domain/catalog/models/category.ts","../../../projects/connect/src/domain/catalog/models/product.ts","../../../projects/connect/src/domain/catalog/models/variant.ts","../../../projects/connect/src/domain/shopping/models/coupons/enums/coupon-types.enum.ts","../../../projects/connect/src/domain/shopping/models/coupons/enums/coupon-subtypes.enum.ts","../../../projects/connect/src/domain/shopping/models/coupons/enums/exclusivities.enum.ts","../../../projects/connect/src/domain/shopping/models/enums/checkout-types.enum.ts","../../../projects/connect/src/domain/shopping/models/coupons/financial-coupon.ts","../../../projects/connect/src/domain/shopping/models/enums/order-status.enum.ts","../../../projects/connect/src/domain/shopping/models/line-item.ts","../../../projects/connect/src/domain/shopping/models/shipping-method.ts","../../../projects/connect/src/domain/shopping/models/checkout.ts","../../../projects/connect/src/domain/shopping/models/order.ts","../../../projects/connect/src/domain/shopping/models/subscription/checkout.ts","../../../projects/connect/src/domain/shopping/models/buy-2-win.ts","../../../projects/connect/src/domain/shop-settings/enums/filter-type.enum.ts","../../../projects/connect/src/domain/shop-settings/enums/questions-filters.enum.ts","../../../projects/connect/src/domain/shop-settings/helpers/beauty-questions.helper.ts","../../../projects/connect/src/domain/shop-settings/models/home.ts","../../../projects/connect/src/domain/shop-settings/models/shop-menu.ts","../../../projects/connect/src/domain/shop-settings/models/shop-settings.ts","../../../projects/connect/src/errors/invalid-argument.error.ts","../../../projects/connect/src/errors/required-argument.error.ts","../../../projects/connect/src/errors/not-found.error.ts","../../../projects/connect/src/errors/duplicated-results.error.ts","../../../projects/connect/src/infra/elasticsearch/adapters/axios.adapter.ts","../../../projects/connect/src/infra/elasticsearch/indexes/products-index.ts","../../../projects/connect/src/infra/firebase/firestore/mixins/with-firestore.mixin.ts","../../../projects/connect/src/infra/firebase/firestore/mixins/with-helpers.mixin.ts","../../../projects/connect/src/infra/firebase/firestore/mixins/with-get-firestore.mixin.ts","../../../projects/connect/src/infra/firebase/firestore/mixins/with-find-firestore.mixin.ts","../../../projects/connect/src/infra/firebase/firestore/mixins/with-create-firestore.mixin.ts","../../../projects/connect/src/infra/firebase/firestore/mixins/with-update-firestore.mixin.ts","../../../projects/connect/src/infra/firebase/firestore/mixins/with-delete-firestore.mixin.ts","../../../projects/connect/src/infra/firebase/firestore/mixins/with-sub-collection.mixin.ts","../../../projects/connect/src/infra/firebase/firestore/mixins/with-crud-firestore.mixin.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/subscription-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/models/user-search.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/user-search-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/user-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/user-address-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/lead-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/catalog/category-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/catalog/product-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/shopping/order-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.ts","../../../projects/connect/src/infra/firebase/auth/authentication-firebase-auth.service.ts","../../../projects/connect/src/infra/firebase/auth/register-firebase-auth.service.ts","../../../projects/connect/src/infrab4a-connect.ts"],"sourcesContent":["import { plainToClass, classToPlain } from 'class-transformer'\r\n\r\nimport { NonFunctionProperties } from './types/non-function-properties.type'\r\n\r\nexport class BaseModel<Model> {\r\n constructor(args?: Partial<Model>) {\r\n Object.assign(this, args)\r\n }\r\n\r\n static toInstance<T>(this: new () => Partial<T>, data: NonFunctionProperties<T>): T {\r\n return plainToClass(this, data) as any\r\n }\r\n\r\n toPlain(): any {\r\n return classToPlain(this, { exposeUnsetFields: false })\r\n }\r\n}\r\n","export enum Where {\r\n EQUALS = '==',\r\n NOTEQUALS = '!=',\r\n GT = '>',\r\n GTE = '>=',\r\n IN = 'in',\r\n LT = '<',\r\n LTE = '<=',\r\n LIKE = 'like',\r\n}\r\n","export enum UpdateOptionActions {\r\n UPDATE = 'update',\r\n MERGE = 'merge',\r\n REMOVE = 'remove',\r\n REMOVE_FIELD = 'removeField',\r\n NULL = 'null',\r\n}\r\n","export enum AccessoryImportances {\r\n NOT_INTERESTED = 'Não tenho interesse',\r\n LIKE_RARELY_USE = 'Gosto, mas uso poucos',\r\n LIKE_ALWAYS_FOLLOW_FASHION = 'Gosto muito de acessórios e sempre procuro acompanhar a moda',\r\n}\r\n","export enum Area {\r\n GP = 'Geral',\r\n CRM = 'CRM',\r\n MediaProd = 'Media Production',\r\n Tech = 'Tecnologia',\r\n Transactional = 'Transacional',\r\n Operations = 'Opera\\u00E7\\u00F5es',\r\n Sales = 'Comercial',\r\n Finantial = 'Financeiro',\r\n HR = 'RH',\r\n}\r\n","export enum BeardProblems {\r\n NO_PROBLEMS = 'Sem problemas',\r\n DRY = 'Barba Seca',\r\n OILY = 'Barba Oleaosa',\r\n DANCRUFF = 'Barba com Caspa',\r\n INGROWN_HAIRS = 'Pêlos Encravados',\r\n DOESNT_GROW = 'Não Cresce',\r\n SPARSE_BEARD = 'Barba Rala',\r\n}\r\n","export enum BeardSizes {\r\n BIG = 'Grande',\r\n MEDIUM = 'Média',\r\n SHORT = 'Curta',\r\n MUSTACHE = 'Bigode',\r\n NOTHING = 'Sem Barba',\r\n}\r\n","export enum BeautyProductImportances {\r\n KNOW_LITTLE_ABOUT = 'Conheço bem pouco de produtos de beleza e rotinas de cuidados',\r\n ALREADY_BOUGHT_NOTHING_SPECIALIZED = 'Já comprei alguns produtos básicos para cuidar de mim, mas nada muito especializado',\r\n GOOD_CARE_MYSELF = 'Me considero um homem que se cuida bem. Conheço sobre produtos especializados e me preocupo em ter uma rotina de cuidados',\r\n PERSONAL_CARE_EXPERT = 'Sou um expert em cuidados pessoais',\r\n}\r\n","export enum BodyProblems {\r\n NO_WORRIES = 'Sem preocupações',\r\n FLACCIDITY = 'Flacidez',\r\n LOCALIZED_FAT = 'Gordura Localizada',\r\n STRETCH_MARKS = 'Estrias',\r\n SENSITIVE_SKIN = 'Pele Sensível',\r\n DRY_SKIN = 'Pele Seca',\r\n OILY_ACNE = 'Oleosa/Acne',\r\n SKIN_FRECKLES = 'Pele com Sardas',\r\n PHOTOSENSITIVE_SKIN = 'Pele Fotossensível',\r\n}\r\n","export enum BodyShapes {\r\n LEAN = 'Magro',\r\n REGULAR = 'Regular',\r\n OVERWEIGHT = 'Acima do Peso',\r\n ATHLETIC = 'Atlético',\r\n MUSCULAR = 'Musculoso',\r\n}\r\n","export enum BodyTattoos {\r\n NONE = 'Nenhuma',\r\n HAS_DOESNT_CARE = 'Tenho mas não cuido',\r\n HAS_CARE_LOT = 'Tenho e cuido bastante',\r\n}\r\n","export enum FaceSkinOilinesses {\r\n DRY = 'Seca',\r\n OILY = 'Oleaosa',\r\n MIXED = 'Mista',\r\n NORMAL = 'Normal',\r\n DONT_KNOW = 'Eu não sei como dizer',\r\n}\r\n","export enum FaceSkinProblems {\r\n NO_PROBLEMS = 'Sem problemas',\r\n DARK_CIRCLES = 'Olheiras',\r\n WRINKLES = 'Rugas',\r\n BLACKHEADS_PIMPLES = 'Cravos e Espinhas',\r\n STAINS = 'Manchas',\r\n FRECKLES = 'Sardas',\r\n SENSITIVE = 'Sensível',\r\n PHOTOSENSITIVE = 'Fotossensível',\r\n}\r\n","export enum FaceSkinTones {\r\n VERY_CLEAR = 'Muito Clara',\r\n CLEAR = 'Clara',\r\n MEDIUM_LIGHT = 'Clara Média',\r\n MEDIUM_DARK = 'Escura Média',\r\n DARK = 'Escura',\r\n VERY_DARK = 'Muito Escura',\r\n}\r\n","export enum FamilyIncomes {\r\n UNTIL_3000 = 'Até R$3.000',\r\n SINCE_3001_TO_7000 = 'De R$3.001 a R$7.000',\r\n SINCE_7001_TO_10000 = 'De R$7.001 a R$10.000',\r\n SINCE_10001_TO_15000 = 'De R$10.001 a R$15.000',\r\n GRAN_THAN_15000 = 'Mais de R$15.000',\r\n NOW_ANSWER = 'Prefiro nao responder',\r\n}\r\n","export enum FragranceImportances {\r\n NOT_INTERESTED = 'Não tenho interesse',\r\n LIKE_ALWAYS_USE_SAME = 'Gosto de perfumes, mas uso sempre os mesmos',\r\n LIKE_INNOVATE = 'Gosto de inovar e conhecer novas fragrâncias',\r\n}\r\n","export enum HairColors {\r\n BLACK = 'Preto',\r\n DARK_BROWN = 'Castanho Escuro',\r\n LIGHT_BROWN = 'Castanho Claro',\r\n DARK_BLONDE = 'Loiro Escuro',\r\n LIGHT_BLONDE = 'Loiro Claro',\r\n WHITE_GRAY = 'Branco/Grisalho',\r\n REDHEAD = 'Ruivo',\r\n OTHER = 'RuiOutroo',\r\n}\r\n","export enum HairProblems {\r\n NO_PROBLEMS = 'Sem problemas',\r\n DANCRUFF = 'Caspa',\r\n LOSS = 'Queda',\r\n OILY = 'Oleosidade',\r\n DRYNESS = 'Ressecamento',\r\n CHEMICAL = 'Quimica',\r\n WHITE_HAIR = 'Cabelos Brancos',\r\n REBEL_WIRES = 'Fios Rebeldes',\r\n}\r\n","export enum HairStrands {\r\n NORMAL = 'Fio Normal',\r\n DRY = 'Fio Seco',\r\n OILY = 'Fio Oleoso',\r\n MIXED = 'Fio Misto',\r\n FINE = 'Fio Fino',\r\n THICK = 'Fio Grosso',\r\n}\r\n","export enum HairTypes {\r\n Smooth = 'Liso',\r\n WAVY = 'Ondulado',\r\n CURLY = 'Cacheado',\r\n FRIZZY = 'Crespo',\r\n BALD = 'Sou careca',\r\n}\r\n","export enum OfficePosition {\r\n Intern = 'Estagi\\u00E1rio',\r\n Analyst = 'Analista',\r\n Manager = 'Gerente',\r\n Director = 'Diretor',\r\n}\r\n","export enum ProductSpents {\r\n UNTIL_50 = 'Até R$50',\r\n SINCE_51_TO_100 = 'De R$51 a R$100',\r\n SINCE_101_TO_200 = 'De R$101 a R$200',\r\n SINCE_201_TO_300 = 'De R$201 a R$300',\r\n GRAN_THAN_300 = 'Mais de R$300',\r\n NOW_ANSWER = 'Prefiro nao responder',\r\n}\r\n","export enum UserType {\r\n B2C = 'Cliente Transacional',\r\n GlamGirl = 'Glamgirl',\r\n MensBoy = 'Mensboy',\r\n B2B = 'Company',\r\n Collaborator = 'Funcionário',\r\n Influencer = 'Influencer',\r\n}\r\n","export enum BillingStatus {\r\n PAYED = 'PAGO',\r\n}\r\n","export enum EditionStatus {\r\n ALLOCATION_WAITING = 'Aguardando alocação',\r\n SHIPPED = 'Enviado',\r\n}\r\n","export enum PaymentType {\r\n AQUISITION = 'Aquisição',\r\n RENEWAL = 'Renovação',\r\n FREIGHT = 'mudança de endereço, Frete',\r\n}\r\n","export enum Status {\r\n ACTIVE = 'active',\r\n CANCELLED = 'Cancelado',\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { BaseModel } from '../../../general/model/base.model'\r\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\r\nimport { NonFunctionPropertyNames } from '../../../general/model/types/non-function-property-name.type'\r\n\r\nimport { EditionStatus, BillingStatus } from './enums'\r\n\r\nexport class Edition extends BaseModel<Edition> implements IdentifierFields<Edition> {\r\n id: string\r\n subscriptionId: string\r\n billingStatus: BillingStatus\r\n editionId: number\r\n editionStatus: EditionStatus\r\n installment: number\r\n paymentId: string\r\n draftId?: string\r\n createdAt: Date\r\n updatedAt: Date\r\n\r\n identifierFields(): NonFunctionPropertyNames<Edition>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { Expose } from 'class-transformer'\r\n\r\nimport { BaseModel } from '../../general/model/base.model'\r\nimport { IdentifierFields } from '../../general/model/identifier-fields'\r\nimport { NonFunctionPropertyNames } from '../../general/model/types'\r\n\r\nimport { PaymentBilling, PaymentCard, PaymentCustomer, PaymentItem, PaymentShipping } from './types'\r\n\r\nexport class Payment extends BaseModel<Payment> implements IdentifierFields<Payment> {\r\n id: number\r\n object: string\r\n status: string\r\n tid: number\r\n nsu: number\r\n amount: number\r\n cost: number\r\n installments: number\r\n referer: string\r\n ip: string\r\n phone: string\r\n address: string\r\n metadata: any\r\n device: string\r\n payment: string\r\n addition: string\r\n discount: string\r\n customer: PaymentCustomer\r\n billing: PaymentBilling\r\n shipping: PaymentShipping\r\n items: PaymentItem[]\r\n card: PaymentCard\r\n\r\n @Expose({ name: 'refuse_reason' })\r\n refuseReason: string\r\n @Expose({ name: 'status_reason' })\r\n statusReason: string\r\n @Expose({ name: 'acquirer_response_code' })\r\n acquirerResponseCode: string\r\n @Expose({ name: 'acquirer_name' })\r\n acquirerName: string\r\n @Expose({ name: 'acquirer_id' })\r\n acquirerId: string\r\n @Expose({ name: 'authorization_code' })\r\n authorizationCode: string\r\n @Expose({ name: 'soft_descriptor' })\r\n softDescriptor: string\r\n @Expose({ name: 'date_created' })\r\n dateCreated: string\r\n @Expose({ name: 'date_updated' })\r\n dateUpdated: string\r\n @Expose({ name: 'authorized_amount' })\r\n authorizedAmount: number\r\n @Expose({ name: 'paid_amount' })\r\n paidAmount: number\r\n @Expose({ name: 'refunded_amount' })\r\n refundedAmount: number\r\n @Expose({ name: 'card_holder_name' })\r\n cardHolderName: string\r\n @Expose({ name: 'card_last_digits' })\r\n cardLastDigits: string\r\n @Expose({ name: 'card_first_digits' })\r\n cardFirstDigits: string\r\n @Expose({ name: 'card_brand' })\r\n cardBrand: string\r\n @Expose({ name: 'card_pin_mode' })\r\n cardPinMode: string\r\n @Expose({ name: 'card_magstripe_fallback' })\r\n cardMagstripeFallback: boolean\r\n @Expose({ name: 'cvm_pin' })\r\n cvmPin: boolean\r\n @Expose({ name: 'postback_url' })\r\n postbackUrl: string\r\n @Expose({ name: 'payment_method' })\r\n paymentMethod: string\r\n @Expose({ name: 'capture_method' })\r\n captureMethod: string\r\n @Expose({ name: 'antifraud_score' })\r\n antifraudScore: string\r\n @Expose({ name: 'boleto_url' })\r\n boletoUrl: string\r\n @Expose({ name: 'boleto_barcode' })\r\n boletoBarcode: string\r\n @Expose({ name: 'boleto_expiration_date' })\r\n boletoExpirationDate: string\r\n @Expose({ name: 'subscription_id' })\r\n subscriptionId: string\r\n @Expose({ name: 'split_rules' })\r\n splitRules: string\r\n @Expose({ name: 'antifraud_metadata' })\r\n antifraudMetadata: any\r\n @Expose({ name: 'reference_key' })\r\n referenceKey: string\r\n @Expose({ name: 'local_transaction_id' })\r\n localTransactionId: string\r\n @Expose({ name: 'local_time' })\r\n localTime: string\r\n @Expose({ name: 'fraud_covered' })\r\n fraudCovered: boolean\r\n @Expose({ name: 'fraud_reimbursed' })\r\n fraudReimbursed: string\r\n @Expose({ name: 'order_id' })\r\n orderId: string\r\n @Expose({ name: 'risk_level' })\r\n riskLevel: string\r\n @Expose({ name: 'receipt_url' })\r\n receiptUrl: string\r\n @Expose({ name: 'private_label' })\r\n privateLabel: string\r\n @Expose({ name: 'pix_qr_code' })\r\n pixQrCode: string\r\n @Expose({ name: 'pix_expiration_date' })\r\n pixExpirationDate: string\r\n\r\n identifierFields(): NonFunctionPropertyNames<Payment>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { BaseModel } from '../../../general/model/base.model'\r\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\r\nimport { NonFunctionPropertyNames } from '../../../general/model/types'\r\nimport { Payment } from '../../../shopping/models/payment'\r\n\r\nimport { PaymentType } from './enums/payment-type.enum'\r\n\r\nexport class SubscriptionPayment\r\n extends BaseModel<SubscriptionPayment>\r\n implements IdentifierFields<SubscriptionPayment>\r\n{\r\n id: string\r\n subscriptionId: string\r\n paymentType: PaymentType\r\n createdAt: Date\r\n attempts?: number\r\n\r\n @Type(() => Payment)\r\n payment: Payment\r\n\r\n identifierFields(): NonFunctionPropertyNames<SubscriptionPayment>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { BaseModel } from '../../general/model/base.model'\r\n\r\nimport { LocationGeometry } from './types/location-geometry.type'\r\n\r\nexport abstract class Address extends BaseModel<Address> {\r\n default?: boolean\r\n recipient?: string\r\n zip?: string\r\n street?: string\r\n number?: string\r\n extension?: string\r\n district?: string\r\n city?: string\r\n regionalPole?: string\r\n region?: string\r\n state?: string\r\n country?: string\r\n mailbox?: boolean\r\n mailboxNumber?: string\r\n formattedAddress?: string\r\n placeId?: string\r\n geometry?: LocationGeometry\r\n}\r\n","export class Base {\r\n constructor(...args: Array<any>) {\r\n Object.assign(this, ...args)\r\n }\r\n}\r\n","import { Expose } from 'class-transformer'\r\n\r\nimport { BaseModel } from '../../../general/model/base.model'\r\nimport { CheckoutTypes } from '../enums/checkout-types.enum'\r\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\r\nimport { isNil } from '../../../../utils'\r\nimport { NonFunctionPropertyNames } from '../../../general/model/types'\r\nimport { Shops } from '../../../catalog/models/enums/shops.enum'\r\n\r\nimport { CouponTypes, Exclusivities } from './enums'\r\n\r\nexport class Coupon extends BaseModel<Coupon> implements IdentifierFields<Coupon> {\r\n id: string\r\n type: CouponTypes\r\n discount?: number\r\n user?: string\r\n recipient?: string\r\n store?: Shops\r\n campaign?: string\r\n name: string\r\n nickname: string\r\n expiresIn?: Date\r\n useLimit?: number\r\n createdAt: Date\r\n updatedAt?: Date\r\n shopAvailability: Shops\r\n personId?: number\r\n influencerEmail?: string\r\n\r\n @Expose({ name: 'checkout_type' })\r\n checkoutType: CheckoutTypes\r\n @Expose({ name: 'exclusivity_type' })\r\n exclusivityType?: Exclusivities\r\n\r\n get isInfluencer(): boolean {\r\n return !isNil(this.influencerEmail)\r\n }\r\n\r\n identifierFields(): NonFunctionPropertyNames<Coupon>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { BaseModel } from '../../../general/model/base.model'\r\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\r\nimport { NonFunctionPropertyNames } from '../../../general/model/types'\r\n\r\nexport class SubscriptionPlan extends BaseModel<SubscriptionPlan> implements IdentifierFields<SubscriptionPlan> {\r\n id: string\r\n name: string\r\n billingPrice: number\r\n recurrencePrice: number\r\n recurrenceCycle: number\r\n maxAttempts: number\r\n\r\n identifierFields(): NonFunctionPropertyNames<SubscriptionPlan>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { BaseModel } from '../../general/model/base.model'\r\nimport { IdentifierFields } from '../../general/model/identifier-fields'\r\nimport { NonFunctionPropertyNames } from '../../general/model/types/non-function-property-name.type'\r\n\r\nimport { BeardSizes, HairTypes } from './enums'\r\n\r\nexport class BeautyProfile extends BaseModel<BeautyProfile> implements IdentifierFields<BeautyProfile> {\r\n id: string\r\n userId: string\r\n beardSize?: BeardSizes\r\n hairType?: HairTypes\r\n\r\n toPlain(): any {\r\n const plain = super.toPlain()\r\n\r\n delete plain.id\r\n\r\n return plain\r\n }\r\n\r\n identifierFields(): NonFunctionPropertyNames<BeautyProfile>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { BaseModel } from '../../general/model/base.model'\r\nimport { IdentifierFields } from '../../general/model/identifier-fields'\r\nimport { isNil } from '../../../utils'\r\nimport { NonFunctionProperties, NonFunctionPropertyNames } from '../../general/model/types'\r\n\r\nimport { Area, OfficePosition, UserType } from './enums'\r\nimport { BeautyProfile } from './beauty-profile'\r\n\r\nexport class User extends BaseModel<User> implements IdentifierFields<User> {\r\n id: string\r\n cpf?: string\r\n email: string\r\n firstName: string\r\n lastName: string\r\n displayName?: string\r\n phone: string\r\n birthday?: Date\r\n acceptsNewsletter: boolean\r\n type?: UserType\r\n area?: Area\r\n officePosition?: OfficePosition\r\n isSubscriber?: boolean\r\n subscriptionPlan?: string\r\n\r\n @Type(() => BeautyProfile)\r\n beautyProfile?: BeautyProfile\r\n\r\n static toInstance<T>(this: new () => Partial<T>, data: NonFunctionProperties<T> & NonFunctionProperties<User>): T {\r\n const instance = super.toInstance<User>(data)\r\n\r\n if (!isNil(data.firstName))\r\n instance.displayName = `${data.firstName}${!isNil(data.lastName) ? ` ${data.lastName}` : ''}`\r\n\r\n return instance as any\r\n }\r\n\r\n identifierFields(): NonFunctionPropertyNames<User>[] {\r\n return ['id']\r\n }\r\n\r\n toPlain(): any {\r\n const plain = super.toPlain()\r\n\r\n delete plain.beautyProfile\r\n\r\n return plain\r\n }\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { Address } from '../../../location/models/address'\r\nimport { BaseModel } from '../../../general/model/base.model'\r\nimport { Coupon } from '../../../shopping/models/coupons/coupon'\r\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\r\nimport { NonFunctionPropertyNames } from '../../../general/model/types/non-function-property-name.type'\r\nimport { SubscriptionPlan } from '../../../shopping/models/subscription/plan'\r\nimport { User } from '../user'\r\n\r\nimport { Edition } from './edition'\r\nimport { Status } from './enums/status.enum'\r\nimport { SubscriptionPayment } from './payment'\r\n\r\nexport class Subscription extends BaseModel<Subscription> implements IdentifierFields<Subscription> {\r\n id: string\r\n nextPayment: Date\r\n recurrence: boolean\r\n status: Status\r\n cardToken: string\r\n subtotalPrice?: number\r\n discount?: number\r\n totalPrice?: number\r\n createdAt: Date\r\n updatedAt: Date\r\n\r\n @Type(() => User)\r\n user: User\r\n @Type(() => SubscriptionPlan)\r\n subscriptionPlan: SubscriptionPlan\r\n @Type(() => Address)\r\n shippingAddress: Address\r\n @Type(() => Address)\r\n billingAddress?: Address\r\n @Type(() => Coupon)\r\n coupon?: Coupon\r\n @Type(() => Edition)\r\n editions: Edition[]\r\n @Type(() => SubscriptionPayment)\r\n payment?: SubscriptionPayment[]\r\n\r\n identifierFields(): NonFunctionPropertyNames<Subscription>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { Address } from '../../location/models/address'\r\nimport { NonFunctionPropertyNames } from '../../general/model/types/non-function-property-name.type'\r\n\r\nexport class UserAddress extends Address {\r\n id: string\r\n userId: string\r\n\r\n identifierFields(): NonFunctionPropertyNames<UserAddress>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { BaseModel } from '../../general/model/base.model'\r\nimport { NonFunctionPropertyNames } from '../../general/model/types/non-function-property-name.type'\r\n\r\nexport class UserPaymentMethod extends BaseModel<UserPaymentMethod> {\r\n brand: string\r\n cpf: string\r\n holderName: string\r\n last4: string\r\n pagarmeToken: string\r\n validUntil: string\r\n userId: string\r\n id: string\r\n fingerprint: string\r\n\r\n identifierFields(): NonFunctionPropertyNames<UserPaymentMethod>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { BaseModel } from '../../general/model/base.model'\r\nimport { IdentifierFields } from '../../general/model/identifier-fields'\r\nimport { NonFunctionPropertyNames } from '../../general/model/types'\r\n\r\nexport class Lead extends BaseModel<Lead> implements IdentifierFields<Lead> {\r\n id: string\r\n acceptsNewsletter: boolean\r\n email: string\r\n\r\n identifierFields(): NonFunctionPropertyNames<Lead>[] {\r\n return ['id']\r\n }\r\n}\r\n","export class UnauthorizedError extends Error {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","import { Area, OfficePosition, User, UserType } from '../models'\r\nimport { AuthenticationService } from '../services/authentication.service'\r\nimport { isNil } from '../../../utils'\r\nimport { UnauthorizedError } from '../errors/unauthorized.error'\r\nimport { UserRepository } from '../repositories/user.repository'\r\n\r\nexport enum SignInMethods {\r\n EMAIL_PASSWORD = 'email_password',\r\n GOOGLE = 'google',\r\n}\r\n\r\ntype SignInMethod = Lowercase<keyof typeof SignInMethods>\r\n\r\ntype SignInParams = {\r\n email?: string\r\n password?: string\r\n}\r\n\r\nexport class Authentication {\r\n constructor(private readonly authService: AuthenticationService, private readonly userRepository: UserRepository) {}\r\n\r\n async signIn({ email, password }: SignInParams, signInMethod: SignInMethod): Promise<User> {\r\n const method = this.getServiceByMethod(signInMethod)\r\n const userAuth = await this.authService[method]({ email, password })\r\n const user = this.userRepository.get(userAuth)\r\n\r\n if (!isNil(user)) return user\r\n if (/^.+@b4a.com.br$/.test(userAuth.email)) return this.createsUserByCredential(userAuth)\r\n\r\n throw new UnauthorizedError('Invalid credentials')\r\n }\r\n\r\n private getServiceByMethod(signInMethod: SignInMethod): string {\r\n return signInMethod === SignInMethods.EMAIL_PASSWORD ? 'signInWithEmailAndPassword' : 'signInWithGoogle'\r\n }\r\n\r\n private async createsUserByCredential(user: Partial<User>): Promise<User> {\r\n const [firstName, lastName] = user.displayName?.split(/\\s/)\r\n const person = User.toInstance({\r\n ...user,\r\n cpf: '',\r\n birthday: new Date(),\r\n firstName,\r\n lastName,\r\n acceptsNewsletter: false,\r\n area: Area.Transactional,\r\n officePosition: OfficePosition.Intern,\r\n type: UserType.Collaborator,\r\n })\r\n\r\n return this.userRepository.create(person)\r\n }\r\n}\r\n","export class UserAlreadyRegisteredError extends Error {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","export class WeakPasswordError extends Error {\r\n constructor(readonly message = 'Weak password') {\r\n super(message)\r\n }\r\n}\r\n","import { User, UserType } from '../models'\r\nimport { RegisterService } from '../services/register.service'\r\nimport { UserAlreadyRegisteredError } from '../errors'\r\nimport { UserRepository } from '../repositories/user.repository'\r\n\r\ntype RegisterParams = Partial<User> & { password: string }\r\n\r\nexport class Register {\r\n constructor(private readonly registerService: RegisterService, private readonly userRepository: UserRepository) {}\r\n\r\n async register(params: RegisterParams): Promise<User> {\r\n const email = params.email.toLocaleLowerCase()\r\n const displayName = `${params.firstName} ${params.lastName}`\r\n\r\n if (await this.userRepository.checkIfExistsByField('cpf', params.cpf))\r\n throw new UserAlreadyRegisteredError(`Usuário com CPF ${params.cpf} já registrado.`)\r\n if (await this.userRepository.checkIfExistsByField('email', params.email))\r\n throw new UserAlreadyRegisteredError(`Usuário com e-mail ${params.email} já registrado.`)\r\n\r\n const auth = await this.registerService.register({\r\n birthday: params.birthday,\r\n email,\r\n firstName: params.firstName,\r\n lastName: params.lastName,\r\n cpf: params.cpf,\r\n displayName,\r\n phone: params.phone,\r\n password: params.password,\r\n })\r\n\r\n delete params.password\r\n\r\n const user = await this.userRepository.create({\r\n ...params,\r\n id: auth.id,\r\n email,\r\n displayName,\r\n type: UserType.B2C,\r\n dateCreated: new Date(),\r\n dateModified: new Date(),\r\n })\r\n\r\n return user\r\n }\r\n}\r\n","import { AuthenticationService } from '../services/authentication.service'\r\n\r\nexport class SignOut {\r\n constructor(private readonly authService: AuthenticationService) {}\r\n\r\n async signOut(): Promise<void> {\r\n await this.authService.signOut()\r\n }\r\n}\r\n","import { AuthenticationService } from '../services/authentication.service'\r\n\r\nexport class RecoveryPassword {\r\n constructor(private readonly authService: AuthenticationService) {}\r\n\r\n async sendEmail(email: string): Promise<void> {\r\n await this.authService.sendPasswordResetEmail(email)\r\n }\r\n}\r\n","export enum Shops {\r\n MENSMARKET = `mensmarket`,\r\n GLAMSHOP = 'Glamshop',\r\n GLAMPOINTS = 'Glampoints'\r\n}\r\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../general/model'\r\nimport { Shops } from './enums'\r\n\r\nimport { CategoryCondition, CategoryFilter } from './types'\r\n\r\nexport class Category extends BaseModel<Category> implements IdentifierFields<Category> {\r\n id: string\r\n brandCategory: boolean\r\n brandLogo?: string\r\n name: string\r\n slug: string\r\n image?: string\r\n brandCategoryBanner?: string\r\n brandCategoryBannerMobile?: string\r\n description: string\r\n conditions?: CategoryCondition\r\n products?: string[]\r\n filters?: CategoryFilter[]\r\n createdAt: Date\r\n updatedAt: Date\r\n shop: Shops\r\n published: boolean\r\n\r\n identifierFields(): NonFunctionPropertyNames<Category>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../general/model'\r\n\r\nimport { Shops } from './enums/shops.enum'\r\nimport { ProductReview, ShopDescription, ShopPrice, ShopsDescription, ShopsPrice, Stock } from './types'\r\nimport { Variant } from './variant'\r\n\r\nexport class Product extends BaseModel<Product> implements IdentifierFields<Product> {\r\n id: string\r\n name: string\r\n slug: string\r\n shopAvailability: Shops[]\r\n description: ShopsDescription\r\n sku: string\r\n price: ShopsPrice\r\n hasVariants: boolean\r\n NCM: string\r\n EAN: string\r\n CEST: string\r\n weight: number\r\n stock: Stock\r\n costPrice: number\r\n images?: string[]\r\n miniatures?: string[]\r\n published: boolean\r\n publishedGlam: boolean\r\n createdAt: Date\r\n updatedAt: Date\r\n brand: string\r\n tags?: string[]\r\n type?: string\r\n categories?: string[]\r\n reviews?: ProductReview[]\r\n variant?: Variant\r\n video?: string\r\n\r\n identifierFields(): NonFunctionPropertyNames<Product>[] {\r\n return ['id']\r\n }\r\n\r\n getInfoByShop(shop: Shops): ShopDescription & ShopPrice & Stock {\r\n return {\r\n ...(this.description?.[shop]?.description ? { description: this.description?.[shop]?.description } : {}),\r\n ...(this.price?.[shop] || {}),\r\n ...(this.stock?.[shop] || {}),\r\n }\r\n }\r\n}\r\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../general/model'\r\n\r\nimport { ShopsPrice, Stock, VariantGrade } from './types'\r\n\r\nexport class Variant extends BaseModel<Variant> implements IdentifierFields<Variant> {\r\n id: string\r\n productId: string\r\n sku: string\r\n price: ShopsPrice\r\n EAN: string\r\n stock: Stock\r\n grade: VariantGrade[]\r\n costPrice: number\r\n weight: number\r\n\r\n identifierFields(): NonFunctionPropertyNames<Variant>[] {\r\n return ['id']\r\n }\r\n}\r\n","export enum CouponTypes {\r\n FINANCIAL = 1,\r\n PRODUCT,\r\n GIFTCARD,\r\n VOUCHER,\r\n}\r\n","export enum CouponSubtypes {\r\n ABSOLUTE = 1,\r\n PERCENTAGE,\r\n}\r\n","export enum Exclusivities {\r\n ALL_USERS = 1,\r\n SPECIFIC_USER = 2,\r\n COLLABORATORS = 3,\r\n}\r\n","export enum CheckoutTypes {\r\n ECOMMERCE = 1,\r\n SUBSCRIPTION = 2,\r\n}\r\n","import { Md5 } from 'ts-md5'\r\n\r\nimport { CheckoutTypes } from '../enums/checkout-types.enum'\r\n\r\nimport { Coupon } from './coupon'\r\nimport { CouponTypes, CouponSubtypes } from './enums'\r\n\r\nconst COUPON_EXPIRATION = 60 * 60 * 24 * 30\r\n\r\nexport class FinancialCoupon extends Coupon {\r\n type = CouponTypes.FINANCIAL\r\n subtype: CouponSubtypes\r\n plan?: string\r\n\r\n static isFinancialCoupon(coupon: Partial<FinancialCoupon>): coupon is FinancialCoupon {\r\n return coupon.type === CouponTypes.FINANCIAL && !!coupon.subtype\r\n }\r\n\r\n static createCoupon(userId: string): FinancialCoupon {\r\n return this.toInstance({\r\n name: Md5.hashStr(`${userId}_${Date.now}`).toString(),\r\n nickname: `${Date.now()}`,\r\n type: CouponTypes.FINANCIAL,\r\n subtype: CouponSubtypes.PERCENTAGE,\r\n checkoutType: CheckoutTypes.ECOMMERCE,\r\n discount: 30,\r\n user: userId,\r\n createdAt: new Date(Date.now()),\r\n expiresIn: new Date(Date.now() + COUPON_EXPIRATION),\r\n })\r\n }\r\n}\r\n","export enum OrderStatus {\r\n AGUARDANDO_PAGAMENTO = 'Aguardando pagamento',\r\n EM_PREPARO = 'Preparando pedido',\r\n NF_EMITIDA = 'Nota Fiscal Emitida',\r\n AGUARDANDO_ENVIO = 'Aguardando Transaportadora',\r\n ENVIADO = 'Pedido Enviado',\r\n ENTREGUE = 'Pedido entregue',\r\n CANCELADO = 'Cancelado',\r\n CREDIT_CARD = 'credit_card',\r\n}\r\n","import { Product } from '../../catalog/models/product'\r\n\r\nexport class LineItem extends Product {\r\n parentId?: string\r\n quantity: number\r\n isGift?: boolean\r\n pricePaid?: number\r\n image?: string\r\n}\r\n","import { BaseModel } from '../../general/model/base.model'\r\nimport { IdentifierFields } from '../../general/model/identifier-fields'\r\nimport { NonFunctionPropertyNames } from '../../general/model/types'\r\n\r\nexport class ShippingMethod extends BaseModel<ShippingMethod> implements IdentifierFields<ShippingMethod> {\r\n id: string\r\n CNPJ: string\r\n DaysToDelivery: number\r\n MaxGrams: number\r\n MinGrams: number\r\n ServiceCompanyRangeId: number\r\n ShippingCompanyId: number\r\n ShippingCompanyName: string\r\n ShippingPrice: number\r\n State: string\r\n ZipEnd: number\r\n ZipStart: number\r\n\r\n identifierFields(): NonFunctionPropertyNames<ShippingMethod>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { Address } from '../../location/models/address'\r\nimport { BaseModel } from '../../general/model/base.model'\r\nimport { IdentifierFields } from '../../general/model/identifier-fields'\r\nimport { NonFunctionPropertyNames } from '../../general/model/types'\r\nimport { User } from '../../users/models/user'\r\n\r\nimport { Coupon } from './coupons/coupon'\r\nimport { LineItem } from './line-item'\r\nimport { ShippingMethod } from './shipping-method'\r\nimport { Shops } from '../../catalog/models/enums/shops.enum'\r\n\r\nexport class Checkout extends BaseModel<Checkout> implements IdentifierFields<Checkout> {\r\n id?: string\r\n paymentId?: string\r\n status?: string\r\n createdAt?: Date\r\n updatedAt?: Date\r\n completedAt?: Date\r\n discount?: number\r\n subTotalPrice?: number\r\n totalPrice?: number\r\n shop: Shops\r\n glampoints?: number\r\n\r\n @Type(() => LineItem)\r\n lineItems?: LineItem[]\r\n @Type(() => User)\r\n user?: User\r\n @Type(() => Address)\r\n shippingAddress?: Address\r\n @Type(() => Address)\r\n billingAddress?: Address\r\n @Type(() => ShippingMethod)\r\n shipping?: ShippingMethod\r\n @Type(() => Coupon)\r\n coupon?: Coupon\r\n\r\n identifierFields(): NonFunctionPropertyNames<Checkout>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { Checkout } from './checkout'\r\nimport { OrderStatus } from './enums/order-status.enum'\r\nimport { Payment } from './payment'\r\n\r\nexport class Order extends Checkout {\r\n status: OrderStatus\r\n trackingCode?: string\r\n trackingUrl?: string\r\n\r\n @Type(() => Payment)\r\n payment: Payment\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { Address } from '../../../location/models/address'\r\nimport { BaseModel } from '../../../general/model/base.model'\r\nimport { Coupon } from '../coupons/coupon'\r\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\r\nimport { NonFunctionPropertyNames } from '../../../general/model/types'\r\nimport { User } from '../../../users/models/user'\r\n\r\nimport { SubscriptionPlan } from './plan'\r\n\r\nexport class CheckoutSubscription\r\n extends BaseModel<CheckoutSubscription>\r\n implements IdentifierFields<CheckoutSubscription>\r\n{\r\n id?: string\r\n user: User\r\n createdAt: Date\r\n updatedAt: Date\r\n completedAt?: Date\r\n userId?: string\r\n discount?: number\r\n subTotalPrice?: number\r\n totalPrice?: number\r\n\r\n @Type(() => Address)\r\n shippingAddress: Address\r\n @Type(() => Address)\r\n billingAddress?: Address\r\n @Type(() => SubscriptionPlan)\r\n subscriptionPlan: SubscriptionPlan\r\n @Type(() => Coupon)\r\n coupon?: Coupon\r\n\r\n identifierFields(): NonFunctionPropertyNames<CheckoutSubscription>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { BaseModel } from '../../general/model/base.model'\r\nimport { IdentifierFields } from '../../general/model/identifier-fields'\r\nimport { NonFunctionPropertyNames } from '../../general/model/types'\r\nimport { Shops, Category } from '../../catalog/models'\r\n\r\nexport class Buy2Win extends BaseModel<Buy2Win> implements IdentifierFields<Buy2Win> {\r\n active: boolean\r\n cartValue: number\r\n createdAt: Date\r\n endDate: Date\r\n id?: string\r\n name: string\r\n products?: string[]\r\n shop: Shops\r\n startDate: Date\r\n updatedAt?: Date\r\n\r\n @Type(() => Category)\r\n categories: Category[]\r\n\r\n identifierFields(): NonFunctionPropertyNames<Buy2Win>[] {\r\n return ['id']\r\n }\r\n}\r\n","export enum FilterType {\r\n ACCESSORY_IMPORTANCE = 'accessoryImportance',\r\n BEARD_PROBLEMS = 'beardProblems',\r\n BEARD_SIZE = 'beardSize',\r\n BEAUTY_PRODUCT_IMPORTANCE = 'beautyProductImportance',\r\n BODY_PROBLEMS = 'bodyProblems',\r\n BODY_SHAPE = 'bodyShape',\r\n BODY_TATTOOS = 'bodyTattoos',\r\n FACE_SKIN_OILINESS = 'faceSkinOiliness',\r\n FACE_SKIN_PROBLEMS = 'faceSkinProblems',\r\n FACE_SKIN_TONE = 'faceSkinTone',\r\n FAMILY_INCOME = 'familyIncome',\r\n FRAGRANCE_IMPORTANCE = 'fragranceImportance',\r\n HAIR_COLOR = 'hairColor',\r\n HAIR_PROBLEMS = 'hairProblems',\r\n HAIR_STRANDS = 'hairStrands',\r\n HAIR_TYPE = 'hairType',\r\n PRODUCT_SPENT = 'productSpent',\r\n}\r\n","export enum QuestionsFilters {\r\n ACCESSORY_IMPORTANCE = 'Você gosta de usar acessórios masculinos?',\r\n BEARD_PROBLEMS = 'Quais problemas de barba você tem?',\r\n BEARD_SIZE = 'Quais caracteristicas se aplicam à sua BARBA/BIGODE?',\r\n BEAUTY_PRODUCT_IMPORTANCE = 'O que descreve melhor a sua relação com produtos de beleza e cuidados pessoais?',\r\n BODY_PROBLEMS = 'Qual ou quais preocupações você tem com a pele do seu corpo?',\r\n BODY_SHAPE = 'Qual e seu tipo de CORPO?',\r\n BODY_TATTOOS = 'Você tem alguma tatuagem?',\r\n FACE_SKIN_OILINESS = 'Quais caracteristicas se aplicam à pele do seu ROSTO?',\r\n FACE_SKIN_PROBLEMS = 'Quais problemas a pele do seu rosto tem?',\r\n FACE_SKIN_TONE = 'Qual seu tom de pele?',\r\n FAMILY_INCOME = 'Qual a sua renda familiar mensal (considerando a renda de todas as pessoas que moram com você)?',\r\n FRAGRANCE_IMPORTANCE = 'O quanto você gosta de experimentar perfumes?',\r\n HAIR_COLOR = 'Seu cabelo é naturalmente de qual COR?',\r\n HAIR_PROBLEMS = 'Qual ou quais problemas/característica de cabelo te preocupam?',\r\n HAIR_STRANDS = 'Como são seus fios?',\r\n HAIR_TYPE = 'Como é o seu cabelo?',\r\n PRODUCT_SPENT = 'Qual é o seu nivel de gasto mensal em produtos de beleza e cuidados pessoais?',\r\n}\r\n","import * as Answers from '../../users/models/enums'\r\nimport { FilterType, QuestionsFilters } from '../enums'\r\n\r\ntype FilterAnswers = {\r\n [key: string]: string\r\n}\r\n\r\nexport class BeautyQuestionsHelper {\r\n static getAnswers(filter: FilterType): FilterAnswers {\r\n switch (filter) {\r\n case FilterType.ACCESSORY_IMPORTANCE:\r\n return Answers.AccessoryImportances\r\n case FilterType.BEARD_PROBLEMS:\r\n return Answers.BeardProblems\r\n case FilterType.BEARD_SIZE:\r\n return Answers.BeardSizes\r\n case FilterType.BEAUTY_PRODUCT_IMPORTANCE:\r\n return Answers.BeautyProductImportances\r\n case FilterType.BODY_PROBLEMS:\r\n return Answers.BodyProblems\r\n case FilterType.BODY_SHAPE:\r\n return Answers.BodyShapes\r\n case FilterType.BODY_TATTOOS:\r\n return Answers.BodyTattoos\r\n case FilterType.FACE_SKIN_OILINESS:\r\n return Answers.FaceSkinOilinesses\r\n case FilterType.FACE_SKIN_PROBLEMS:\r\n return Answers.FaceSkinProblems\r\n case FilterType.FACE_SKIN_TONE:\r\n return Answers.FaceSkinTones\r\n case FilterType.FAMILY_INCOME:\r\n return Answers.FamilyIncomes\r\n case FilterType.FRAGRANCE_IMPORTANCE:\r\n return Answers.FragranceImportances\r\n case FilterType.HAIR_COLOR:\r\n return Answers.HairColors\r\n case FilterType.HAIR_PROBLEMS:\r\n return Answers.HairProblems\r\n case FilterType.HAIR_STRANDS:\r\n return Answers.HairStrands\r\n case FilterType.HAIR_TYPE:\r\n return Answers.HairTypes\r\n case FilterType.PRODUCT_SPENT:\r\n return Answers.ProductSpents\r\n }\r\n }\r\n\r\n static getQuestions(filter: FilterType): string {\r\n return QuestionsFilters[filter]\r\n }\r\n}\r\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../general/model'\r\nimport { Banner, Benefit, HomeDataStructure } from './types'\r\n\r\nexport class Home extends BaseModel<Home> implements IdentifierFields<Home> {\r\n benefitsSection: Benefit[]\r\n blockBanners: Banner[]\r\n blogBanner: Banner\r\n brandsCarousel: Banner[]\r\n buyToWinBanner: Banner\r\n discoverCategories: string[]\r\n featuredCampaignBanner: Banner\r\n featuredCategories: string[]\r\n heroCarousel: Banner[]\r\n verticalCarousels: string[]\r\n id: string\r\n data: HomeDataStructure\r\n\r\n identifierFields(): NonFunctionPropertyNames<Home>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../general/model'\r\nimport { MenuNav } from './types/menu-nav.type'\r\n\r\nexport class ShopMenu extends BaseModel<ShopMenu> implements IdentifierFields<ShopMenu> {\r\n menuNav: MenuNav[]\r\n id: string\r\n\r\n identifierFields(): NonFunctionPropertyNames<ShopMenu>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../general/model'\r\nimport { ShopBanner, ShopBrands, ShopCarousel, ShopCollection } from './types'\r\n\r\nexport class ShopSettings extends BaseModel<ShopSettings> implements IdentifierFields<ShopSettings> {\r\n id: string\r\n name: string\r\n shop: string\r\n sections: (ShopBanner | ShopCarousel | ShopCollection | ShopBrands)[]\r\n\r\n identifierFields(): NonFunctionPropertyNames<ShopSettings>[] {\r\n return ['id']\r\n }\r\n}\r\n","export class InvalidArgumentError extends Error {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","export class RequiredArgumentError extends Error {\r\n arguments: string[]\r\n\r\n constructor(readonly args: string[]) {\r\n super(`Required arguments: ${args.join(', ')}`)\r\n\r\n this.arguments = args\r\n }\r\n}\r\n","export class NotFoundError extends Error {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","export class DuplicatedResultsError extends Error {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","import axios from 'axios'\r\n\r\nimport { BaseModel } from '../../../domain'\r\nimport { ElasticSearchResult } from '../types/elastic-search-result'\r\n\r\nexport type AxiosElasticSearchConfig = {\r\n url: string\r\n credential: string\r\n}\r\n\r\nexport class AxiosAdapter<T extends BaseModel<T>> {\r\n constructor(private readonly config: AxiosElasticSearchConfig) {}\r\n\r\n async query(index: string, query: any): Promise<ElasticSearchResult<Partial<T>>> {\r\n const { data } = await axios({\r\n url: `${this.config.url}/${index}`,\r\n method: 'POST',\r\n headers: { Authorization: `Basic ${this.config.credential}` },\r\n data: query,\r\n })\r\n\r\n return {\r\n total: data.hits.total.value,\r\n hits: data.hits.hits,\r\n }\r\n }\r\n}\r\n","import { AxiosAdapter } from '../adapters'\r\nimport { Product, Shops } from '../../../domain'\r\n\r\nexport class ProductsIndex {\r\n constructor(private readonly adapter: AxiosAdapter<Product>) {}\r\n\r\n async findById(ids: string[], options?: { hasStock: boolean; size: number; shop: Shops }): Promise<Product[]> {\r\n const publishedField = options.shop === Shops.GLAMSHOP ? 'publishedGlam' : 'published'\r\n const fields = [\r\n 'brand',\r\n 'id',\r\n 'images',\r\n 'miniatures',\r\n 'name',\r\n 'price',\r\n 'sku',\r\n 'stock',\r\n 'slug',\r\n 'reviews',\r\n 'pricePaid',\r\n 'isGift',\r\n 'stock',\r\n 'weight',\r\n 'tags',\r\n 'hasVariants',\r\n ]\r\n const { hits } = await this.adapter.query('products/_search', {\r\n _source: fields,\r\n query: {\r\n bool: {\r\n filter: [\r\n {\r\n terms: {\r\n _id: ids,\r\n },\r\n },\r\n {\r\n term: {\r\n [publishedField]: true,\r\n },\r\n },\r\n ...(options.hasStock\r\n ? [\r\n {\r\n range: {\r\n 'stock.quantity': {\r\n gt: 0,\r\n },\r\n },\r\n },\r\n ]\r\n : []),\r\n ],\r\n },\r\n },\r\n ...(options.size ? { size: options.size } : {}),\r\n })\r\n\r\n return hits.map((hit) => Product.toInstance(hit._source))\r\n }\r\n}\r\n","import { CollectionReference, DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\r\nimport firebase from 'firebase'\r\n\r\nimport { BaseModelBuilder, BaseModelWithIdentifier } from '../../../../domain'\r\nimport { FirestoreRepository } from '../types'\r\nimport { MixinCtor } from '../../../../utils'\r\n\r\nexport const withFirestore = <TBase extends BaseModelWithIdentifier<TBase>>(MixinBase: MixinCtor) => {\r\n return class extends MixinBase implements FirestoreRepository<TBase> {\r\n readonly firestore?: FirebaseFirestore\r\n collectionName: string\r\n model: BaseModelBuilder<TBase>\r\n\r\n constructor(...args: Array<any>) {\r\n super(args)\r\n }\r\n\r\n collection(path?: string): CollectionReference<TBase> {\r\n return this.firestore.collection(path || this.collectionName).withConverter(this.buildModelInstance())\r\n }\r\n\r\n buildModelInstance(): {\r\n toFirestore: (data: TBase) => DocumentData\r\n fromFirestore: (snap: QueryDocumentSnapshot<TBase>) => TBase\r\n } {\r\n return {\r\n toFirestore: (data: TBase): DocumentData => (data?.toPlain ? data.toPlain() : data),\r\n fromFirestore: (snap: QueryDocumentSnapshot<TBase>): TBase => {\r\n const data = snap.data()\r\n\r\n Object.keys(data).forEach((key) => {\r\n if (data[key] instanceof firebase.firestore.Timestamp) {\r\n data[key] = data[key].toDate()\r\n }\r\n })\r\n\r\n return this.model.toInstance({ ...data, id: snap.id })\r\n },\r\n }\r\n }\r\n }\r\n}\r\n","import { QuerySnapshot, QueryDocumentSnapshot } from '@firebase/firestore-types'\r\n\r\nimport { BaseModelWithIdentifier } from '../../../../domain'\r\n\r\nimport { FirestoreHelpers, FirestoreRepository, FirestoreSubRepository } from '../types'\r\nimport { isNil, MixinCtor } from '../../../../utils'\r\n\r\nexport const withHelpers = <Model extends BaseModelWithIdentifier<Model>, TMixinBase extends MixinCtor>(\r\n MixinBase: MixinCtor & TMixinBase,\r\n) => {\r\n return class extends MixinBase implements FirestoreHelpers {\r\n toArray<T extends BaseModelWithIdentifier<T>>(snapShot: QuerySnapshot<T> | QueryDocumentSnapshot<T>[]): T[] {\r\n if (Array.isArray(snapShot)) {\r\n return snapShot.map((doc: QueryDocumentSnapshot<T>) => doc.data())\r\n } else {\r\n return snapShot.docs.map((doc: QueryDocumentSnapshot<T>) => doc.data())\r\n }\r\n }\r\n\r\n isSubCollection<T extends BaseModelWithIdentifier<T>>(\r\n repository: FirestoreRepository<T>,\r\n ): repository is FirestoreSubRepository<T> {\r\n return !isNil(Object.keys(this).find((key) => key === 'parentRepository'))\r\n }\r\n }\r\n}\r\n","import { BaseModelWithIdentifier, GetRepository, NonFunctionProperties } from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\r\nimport { isNil, MixinCtor } from '../../../../utils'\r\nimport { NotFoundError } from '../../../../errors'\r\n\r\nexport const withGetFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n) => {\r\n return class GetFirestore extends MixinBase implements GetRepository<TBase> {\r\n async get(identifiers: NonFunctionProperties<TBase>): Promise<TBase> {\r\n const doc = await this.collection(this.buildCollectionPathForGet(identifiers))\r\n .doc(Object.values(identifiers).shift().toString())\r\n .get()\r\n const data = doc.data()\r\n\r\n if (isNil(data)) throw new NotFoundError(`Document ${JSON.stringify(identifiers)} not found`)\r\n\r\n return data\r\n }\r\n\r\n buildCollectionPathForGet(identifiers: NonFunctionProperties<TBase>): string {\r\n return this.isSubCollection(this)\r\n ? `${this.parentRepository.collectionName}/${identifiers[this.parentIdField]}/${this.collectionName}`\r\n : this.collectionName\r\n }\r\n }\r\n}\r\n","import { CollectionReference, Query } from '@firebase/firestore-types'\r\n\r\nimport {\r\n BaseModelWithIdentifier,\r\n FindRepository,\r\n NonFunctionPropertyNames,\r\n RepositoryFindField,\r\n RepositoryFindFielters,\r\n RepositoryFindFieltersOptions,\r\n RepositoryFindResult,\r\n RepositoryLimitOptions,\r\n RepositoryOrderByList,\r\n Where,\r\n} from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\r\nimport { isDate, isNil, isNumber, isObject, isString, MixinCtor, set } from '../../../../utils'\r\n\r\nexport const withFindFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n) => {\r\n const checkIfIsFilterOption = (filter: any): filter is RepositoryFindFieltersOptions<TBase, any> =>\r\n !isNil(filter?.operator)\r\n const getValueFromFilter = (filter: RepositoryFindField<TBase, any>): any => {\r\n return checkIfIsFilterOption(filter) ? filter.value : filter\r\n }\r\n const getFinalValueFrom = (value: any) =>\r\n isNumber(value) || isString(value) || isDate(value) || Array.isArray(value)\r\n ? value\r\n : Object.values(getFinalValueFrom)\r\n\r\n return class FindFirestore extends MixinBase implements FindRepository<TBase> {\r\n async find(\r\n filters?: RepositoryFindFielters<TBase>[],\r\n limits?: RepositoryLimitOptions<TBase>,\r\n orderBy?: RepositoryOrderByList<TBase>,\r\n ): Promise<RepositoryFindResult<TBase>> {\r\n let query: CollectionReference<TBase> | Query<TBase> = this.collection(this.buildCollectionPathForFind(filters))\r\n\r\n filters?.forEach((filterer) => (query = this.makeFirestoreWhere(query, filterer)))\r\n\r\n orderBy?.forEach((orderer) =>\r\n Object.keys(orderer).forEach((fieldName) => (query = query.orderBy(fieldName, orderer[fieldName]))),\r\n )\r\n\r\n query = await this.defineLimits(query, filters, limits)\r\n\r\n const docs = await query.get()\r\n const data = docs.docs.map((doc) => doc.data())\r\n\r\n return {\r\n data,\r\n count: this.calculateCount(data, limits),\r\n }\r\n }\r\n\r\n buildCollectionPathForFind(filters: RepositoryFindFielters<TBase>[]): string {\r\n if (!this.isSubCollection<TBase>(this)) return this.collectionName\r\n\r\n const parentIdField = this.parentIdField\r\n const parentId = getValueFromFilter(\r\n filters.find((groupFilter) => Boolean(getValueFromFilter(groupFilter[parentIdField])))?.[parentIdField],\r\n )\r\n\r\n return `${this.parentRepository.collectionName}/${parentId}/${this.collectionName}`\r\n }\r\n\r\n makeFirestoreWhere = (\r\n queryReference: CollectionReference<TBase> | Query<TBase>,\r\n filter: RepositoryFindFielters<TBase>,\r\n ): Query<TBase> =>\r\n Object.keys(filter).reduce(\r\n (query: Query<TBase>, fieldName: string) => this.buildWhereSentence(query, fieldName, filter[fieldName]),\r\n queryReference,\r\n )\r\n\r\n buildWhereSentence = (\r\n queryReference: CollectionReference<TBase> | Query<TBase>,\r\n fieldName: NonFunctionPropertyNames<TBase> | string,\r\n options: RepositoryFindFieltersOptions<TBase, NonFunctionPropertyNames<TBase>>,\r\n ): Query<TBase> => {\r\n if (this.isSubCollection<TBase>(this) && fieldName === this.parentIdField) return queryReference\r\n\r\n const value = options?.value || options\r\n const object = {}\r\n\r\n set(object, fieldName, value)\r\n\r\n const plainInstance = new this.model(object).toPlain()\r\n const firestoreFieldName =\r\n fieldName.toString().indexOf('.') > -1\r\n ? fieldName.toString()\r\n : Object.keys(plainInstance).find((key) => plainInstance[key])\r\n\r\n if (options?.operator === Where.LIKE) {\r\n if (Array.isArray(options?.value))\r\n return queryReference.where(firestoreFieldName, 'array-contains-any', options.value)\r\n\r\n queryReference = queryReference.where(firestoreFieldName, '>=', options.value)\r\n queryReference = queryReference.where(firestoreFieldName, '<=', `${options.value}~`)\r\n\r\n return queryReference\r\n }\r\n if (options?.operator === Where.IN && Array.isArray(options?.value))\r\n return queryReference.where(firestoreFieldName, 'array-contains', options.value)\r\n if (isObject(options) && isNil(options?.operator) && isNil(options?.value)) {\r\n return Object.keys(options).reduce(\r\n (queryReferenceWithWhere, key) =>\r\n this.buildWhereSentence(queryReferenceWithWhere, `${fieldName}.${key}`, options[key]),\r\n queryReference,\r\n )\r\n }\r\n\r\n return queryReference.where(firestoreFieldName, options?.operator || '==', options?.value || options)\r\n }\r\n\r\n async defineLimits(\r\n query: CollectionReference<TBase> | Query<TBase>,\r\n filters: RepositoryFindFielters<TBase>[],\r\n limits: RepositoryLimitOptions<TBase>,\r\n ): Promise<Query<TBase>> {\r\n if (limits?.offset) {\r\n if (limits.offset instanceof this.model)\r\n query = query.startAfter(\r\n await this.collection(this.buildCollectionPathForFind(filters))\r\n .doc(limits.offset[limits.offset.identifierFields().shift() as string])\r\n .get(),\r\n )\r\n else if (isNumber(limits.offset) || isString(limits.offset)) query = query.startAt(limits.offset)\r\n }\r\n if (limits?.limit) query = query.limit(limits.limit)\r\n\r\n return query\r\n }\r\n\r\n calculateCount(data: TBase[], limits: RepositoryLimitOptions<TBase>): number {\r\n if (data.length <= 0) return 0\r\n if (data.length < limits?.limit) return data.length\r\n\r\n return Infinity\r\n }\r\n }\r\n}\r\n","import { DocumentReference } from '@firebase/firestore-types'\r\n\r\nimport { CreateRepository, BaseModelWithIdentifier } from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\r\nimport { isEmpty, MixinCtor } from '../../../../utils'\r\n\r\nexport const withCreateFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n) => {\r\n return class CreateFirestore extends MixinBase implements CreateRepository<TBase> {\r\n async create(data: Partial<TBase>): Promise<TBase> {\r\n const docRef = await this.save(this.model.toInstance(data))\r\n const doc = await docRef.get()\r\n\r\n return doc.data()\r\n }\r\n\r\n async save(data: TBase): Promise<DocumentReference<TBase>> {\r\n const id = data[data.identifierFields().shift()]?.toString()\r\n const collectionPath = this.buildCollectionPathForAdd(data)\r\n\r\n if (isEmpty(id)) return this.collection(collectionPath).add(data)\r\n\r\n const docRef = this.collection(collectionPath).doc(id)\r\n await docRef.set(data)\r\n\r\n return docRef\r\n }\r\n\r\n buildCollectionPathForAdd(identifiers: Partial<TBase>): string {\r\n return this.isSubCollection(this)\r\n ? `${this.parentRepository.collectionName}/${identifiers[this.parentIdField]}/${this.collectionName}`\r\n : this.collectionName\r\n }\r\n }\r\n}\r\n","import firebase from 'firebase'\r\n\r\nimport {\r\n BaseModelWithIdentifier,\r\n NonFunctionPropertyNames,\r\n RepositoryUpdateParams,\r\n UpdateOptionActions,\r\n UpdateOptions,\r\n UpdateRepository,\r\n} from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\r\nimport { isNil, MixinCtor, PropType } from '../../../../utils'\r\n\r\nexport const withUpdateFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n) => {\r\n const getValueFromParams = (\r\n params: RepositoryUpdateParams<TBase>,\r\n field: NonFunctionPropertyNames<TBase>,\r\n ): PropType<TBase, NonFunctionPropertyNames<TBase>> =>\r\n (isNil(params[field as string]?.value) ? params[field as string] : params[field as string].value) || null\r\n const getValueByAction = (options: UpdateOptions<TBase>): firebase.firestore.FieldValue | unknown => {\r\n const fieldValues = firebase.firestore.FieldValue\r\n\r\n if (isNil(options.action)) return options\r\n if (options.action === UpdateOptionActions.REMOVE_FIELD) return fieldValues.delete()\r\n if (Array.isArray(options.value)) {\r\n if (options.action === UpdateOptionActions.MERGE) return fieldValues.arrayUnion(...options.value)\r\n if (options.action === UpdateOptionActions.REMOVE) return fieldValues.arrayRemove(...options.value)\r\n }\r\n\r\n return options.value\r\n }\r\n\r\n return class UpdateFirestore extends MixinBase implements UpdateRepository<TBase> {\r\n async update(data: RepositoryUpdateParams<TBase>): Promise<TBase> {\r\n const model = new this.model()\r\n const keyField = model.identifierFields().shift()\r\n const docRef = this.collection(this.buildCollectionPathForUpdate(data)).doc(\r\n getValueFromParams(data, keyField).toString(),\r\n )\r\n\r\n await docRef.set(this.paramsToPlain(data), { merge: true })\r\n\r\n const doc = await docRef.get()\r\n\r\n return doc.data()\r\n }\r\n\r\n buildCollectionPathForUpdate(identifiers: RepositoryUpdateParams<TBase>): string {\r\n return this.isSubCollection(this)\r\n ? `${this.parentRepository.collectionName}/${getValueFromParams(identifiers, this.parentIdField)}/${\r\n this.collectionName\r\n }`\r\n : this.collectionName\r\n }\r\n\r\n paramsToPlain(params: RepositoryUpdateParams<TBase>): Partial<TBase> {\r\n const model = this.model\r\n\r\n if (params instanceof model) return params\r\n\r\n return Object.keys(params).reduce(\r\n (data, currentKey) => ({ ...data, [currentKey]: getValueByAction(params[currentKey]) }),\r\n {},\r\n )\r\n }\r\n }\r\n}\r\n","import { BaseModelWithIdentifier, NonFunctionProperties, DeleteRepository } from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\r\nimport { MixinCtor } from '../../../../utils'\r\n\r\nexport const withDeleteFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n) => {\r\n return class DeleteFirestore extends MixinBase implements DeleteRepository<TBase> {\r\n async delete(identifiers: NonFunctionProperties<TBase>): Promise<void> {\r\n await this.collection(this.buildCollectionPathForRemove(identifiers))\r\n .doc(Object.values(identifiers).shift().toString())\r\n .delete()\r\n }\r\n\r\n buildCollectionPathForRemove(identifiers: NonFunctionProperties<TBase>): string {\r\n return this.isSubCollection(this)\r\n ? `${this.parentRepository.collectionName}/${identifiers[this.parentIdField]}/${this.collectionName}`\r\n : this.collectionName\r\n }\r\n }\r\n}\r\n","import { CollectionReference, DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\r\n\r\nimport { BaseModelWithIdentifier, NonFunctionPropertyNames } from '../../../../domain'\r\nimport { FirestoreRepository, FirestoreSubRepository } from '../types'\r\nimport { MixinCtor } from '../../../../utils'\r\n\r\nexport const withSubCollection = <\r\n TBase extends BaseModelWithIdentifier<TBase>,\r\n TBaseParent extends BaseModelWithIdentifier<TBaseParent>,\r\n TMixinBase extends MixinCtor,\r\n>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase>> & TMixinBase,\r\n ParentModel: new () => TBaseParent,\r\n) => {\r\n return class SubCollectionMix\r\n extends MixinBase\r\n implements FirestoreSubRepository<TBase, InstanceType<typeof ParentModel>>\r\n {\r\n readonly parentRepository: FirestoreRepository<InstanceType<typeof ParentModel>>\r\n parentIdField: NonFunctionPropertyNames<TBase>\r\n\r\n constructor(...args: Array<any>) {\r\n super(args)\r\n }\r\n\r\n collection(path?: string): CollectionReference<TBase> {\r\n return super.collection(path)\r\n }\r\n }\r\n}\r\n","import { BaseModelWithIdentifier, CrudRepository } from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\r\nimport { MixinCtor } from '../../../../utils'\r\n\r\nimport { withCreateFirestore } from './with-create-firestore.mixin'\r\nimport { withDeleteFirestore } from './with-delete-firestore.mixin'\r\nimport { withFindFirestore } from './with-find-firestore.mixin'\r\nimport { withGetFirestore } from './with-get-firestore.mixin'\r\nimport { withUpdateFirestore } from './with-update-firestore.mixin'\r\n\r\nexport const withCrudFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n) => {\r\n return class CrudFirestore\r\n extends withUpdateFirestore(\r\n withGetFirestore(withFindFirestore(withDeleteFirestore(withCreateFirestore(MixinBase)))),\r\n )\r\n implements CrudRepository<TBase> {}\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { Subscription, SubscriptionRepository } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class SubscriptionFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<Subscription>(Base)))\r\n implements SubscriptionRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'subscription'\r\n this.model = Subscription\r\n }\r\n}\r\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../../../domain/general'\r\n\r\nexport class UserSearch extends BaseModel<UserSearch> implements IdentifierFields<UserSearch> {\r\n id: string\r\n cpf?: string\r\n email?: string\r\n createdAt: Date\r\n copiedAt: Date\r\n\r\n identifierFields(): NonFunctionPropertyNames<UserSearch>[] {\r\n return ['id']\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { CrudRepository } from '../../../../../domain'\r\nimport { UserSearch } from '../../models/user-search'\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class UserSearchFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<UserSearch>(Base)))\r\n implements CrudRepository<UserSearch>\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'userSearch'\r\n this.model = UserSearch\r\n }\r\n}\r\n","import { DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { BeautyProfile, User, UserRepository, Where } from '../../../../../domain'\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nimport { UserSearchFirestoreRepository } from './user-search-firestore.repository'\r\n\r\nexport class UserFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<User>(Base)))\r\n implements UserRepository\r\n{\r\n constructor(\r\n readonly firestore: FirebaseFirestore,\r\n private readonly userSearchFirestoreRepository = new UserSearchFirestoreRepository(firestore),\r\n ) {\r\n super()\r\n this.collectionName = 'users'\r\n this.model = User\r\n }\r\n\r\n async get(identifiers: Partial<User>): Promise<User> {\r\n const user = await super.get({ id: identifiers.id })\r\n\r\n user.beautyProfile = await this.getBeautyProfile(user.id)\r\n user.isSubscriber = await this.checkIfIsSubscriber(user.id)\r\n\r\n return user\r\n }\r\n\r\n async checkIfExistsByField(field: string, value: string): Promise<boolean> {\r\n const result = await this.userSearchFirestoreRepository.find([{ [field]: { operator: Where.EQUALS, value } }])\r\n\r\n return result.count > 0\r\n }\r\n\r\n buildModelInstance(): {\r\n toFirestore: (data: User) => DocumentData\r\n fromFirestore: (snap: QueryDocumentSnapshot<User>) => User\r\n } {\r\n const { fromFirestore, toFirestore } = super.buildModelInstance()\r\n\r\n return {\r\n toFirestore: (data: User): DocumentData => {\r\n const plain = toFirestore(data)\r\n\r\n delete plain.isSubscriber\r\n\r\n return plain\r\n },\r\n fromFirestore,\r\n }\r\n }\r\n\r\n private async getBeautyProfile(userId: string): Promise<BeautyProfile> {\r\n const beautyProfile = await this.collection()\r\n .doc(userId)\r\n .collection('CX')\r\n .withConverter(this.buildBeautyProfileModelInstance())\r\n .doc('beautyProfile')\r\n .get()\r\n\r\n return beautyProfile.data()\r\n }\r\n\r\n private async checkIfIsSubscriber(userId: string): Promise<boolean> {\r\n const docs = await this.firestore\r\n .collection('subscription')\r\n .where('user.id', '==', userId)\r\n .where('status', '==', 'active')\r\n .get()\r\n\r\n return !!docs && !!docs.size\r\n }\r\n\r\n private buildBeautyProfileModelInstance(): {\r\n toFirestore: (data: BeautyProfile) => DocumentData\r\n fromFirestore: (snap: QueryDocumentSnapshot<BeautyProfile>) => BeautyProfile\r\n } {\r\n return {\r\n toFirestore: (data: BeautyProfile): DocumentData => data.toPlain(),\r\n fromFirestore: (snap: QueryDocumentSnapshot<BeautyProfile>): BeautyProfile =>\r\n BeautyProfile.toInstance(snap.data()),\r\n }\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { Edition, Subscription, EditionRepository } from '../../../../../domain'\r\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\r\n\r\nimport { SubscriptionFirestoreRepository } from './subscription-firestore.repository'\r\n\r\nexport class SubscriptionEditionFirestoreRepository\r\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<Edition>(Base))), Subscription)\r\n implements EditionRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: SubscriptionFirestoreRepository) {\r\n super()\r\n this.collectionName = 'editions'\r\n this.parentIdField = 'subscriptionId'\r\n this.model = Edition\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { BeautyProfile, BeautyProfileRepository, User } from '../../../../../domain'\r\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\r\n\r\nimport { UserFirestoreRepository } from './user-firestore.repository'\r\n\r\nexport class UserBeautyProfileFirestoreRepository\r\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<BeautyProfile>(Base))), User)\r\n implements BeautyProfileRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: UserFirestoreRepository) {\r\n super()\r\n this.collectionName = 'CX'\r\n this.parentIdField = 'userId'\r\n this.model = BeautyProfile\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { User, UserAddress, UserAddressRepository } from '../../../../../domain'\r\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\r\n\r\nimport { UserFirestoreRepository } from './user-firestore.repository'\r\n\r\nexport class UserAddressFirestoreRepository\r\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<UserAddress>(Base))), User)\r\n implements UserAddressRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: UserFirestoreRepository) {\r\n super()\r\n this.collectionName = 'address'\r\n this.parentIdField = 'userId'\r\n this.model = UserAddress\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { User, UserPaymentMethod, UserPaymentMethodRepository } from '../../../../../domain'\r\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\r\n\r\nimport { UserFirestoreRepository } from './user-firestore.repository'\r\n\r\nexport class UserPaymentMethodFirestoreRepository\r\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<UserPaymentMethod>(Base))), User)\r\n implements UserPaymentMethodRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: UserFirestoreRepository) {\r\n super()\r\n this.collectionName = 'payment_method'\r\n this.parentIdField = 'userId'\r\n this.model = UserPaymentMethod\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { SubscriptionPayment, Subscription, SubscriptionPaymentRepository } from '../../../../../domain'\r\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\r\n\r\nimport { SubscriptionFirestoreRepository } from './subscription-firestore.repository'\r\n\r\nexport class SubscriptionPaymentFirestoreRepository\r\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<SubscriptionPayment>(Base))), Subscription)\r\n implements SubscriptionPaymentRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: SubscriptionFirestoreRepository) {\r\n super()\r\n this.collectionName = 'payments'\r\n this.parentIdField = 'subscriptionId'\r\n this.model = SubscriptionPayment\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { Lead, LeadRepository } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class LeadFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<Lead>(Base)))\r\n implements LeadRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'leads'\r\n this.model = Lead\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base, chunk } from '../../../../../utils'\r\nimport { Category, CategoryRepository, Product, Shops } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\nimport { DuplicatedResultsError, NotFoundError, RequiredArgumentError } from '../../../../../errors'\r\n\r\nexport class CategoryFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<Category>(Base)))\r\n implements CategoryRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'categories'\r\n this.model = Category\r\n }\r\n\r\n getCategoryBySlug(slug: string, shop: Shops): Promise<Category> {\r\n return this.collection(this.collectionName)\r\n .where('slug', '==', slug)\r\n .where('shop', '==', shop)\r\n .where('published', '==', true)\r\n .get()\r\n .then((snap) => {\r\n if (snap.size > 1) throw new DuplicatedResultsError('Query returned duplicated values')\r\n\r\n if (snap.empty) throw new NotFoundError(`Document with slug ${slug} not found`)\r\n\r\n return snap.docs[0].data()\r\n })\r\n .catch((error) => error)\r\n }\r\n\r\n async getCategoriesForHome(categoryIds: string[], limit = 4): Promise<{ category: Category; products: Product[] }[]> {\r\n const categorySnap = await this.collection(this.collectionName)\r\n .where('id', 'in', categoryIds.filter(Boolean))\r\n .where('published', '==', true)\r\n .get()\r\n\r\n if (categorySnap.empty) throw new NotFoundError('Categories not found')\r\n\r\n const categories = categorySnap.docs.map((doc) => doc.data())\r\n const homeSections = await Promise.all(\r\n categories.map(async (category) => ({\r\n category,\r\n products: await this.mountCategory(category, { limit, hasStock: true }),\r\n })),\r\n )\r\n\r\n return homeSections\r\n }\r\n\r\n async mountCategory(category: Category, options?: { limit?: number; hasStock?: boolean }): Promise<Product[]> {\r\n if (!category.products) throw new RequiredArgumentError(['Category products is empty'])\r\n\r\n const chunks = chunk(category.products, 10)\r\n const products = []\r\n const publishedField = category.shop === Shops.GLAMSHOP ? 'publishedGlam' : 'published'\r\n\r\n for (const productIds of chunks) {\r\n if (options?.limit && products.length >= options?.limit) break\r\n\r\n let query = await this.collection('productsErpVitrine')\r\n .where(publishedField, '==', true)\r\n .where('id', 'in', productIds)\r\n\r\n if (options?.hasStock) query = query.where('stock.quantity', '>', 0)\r\n if (options?.limit) query = query.limit(options?.limit)\r\n\r\n const productSnap = await query.get()\r\n\r\n if (productSnap.empty) continue\r\n\r\n products.push(...productSnap.docs.map((doc) => doc.data()))\r\n }\r\n\r\n return products\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { Product, ProductRepository, Shops, Where } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class ProductFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<Product>(Base)))\r\n implements ProductRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'productsErpVitrine'\r\n this.model = Product\r\n }\r\n\r\n async getBySlug(slug: string, shop: Shops): Promise<Product> {\r\n const result = await this.find([\r\n { slug: { operator: Where.EQUALS, value: slug } },\r\n { shopAvailability: { operator: Where.IN, value: [shop] } },\r\n ])\r\n\r\n return result?.data?.shift()\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { Product, Variant, VariantRepository } from '../../../../../domain'\r\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\r\n\r\nimport { ProductFirestoreRepository } from './product-firestore.repository'\r\n\r\nexport class ProductVariantFirestoreRepository\r\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<Variant>(Base))), Product)\r\n implements VariantRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: ProductFirestoreRepository) {\r\n super()\r\n this.collectionName = 'variants'\r\n this.parentIdField = 'productId'\r\n this.model = Variant\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { Product, SubscriptionProductRepository } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class SubscriptionProductFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<Product>(Base)))\r\n implements SubscriptionProductRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'subscriptionProducts'\r\n this.model = Product\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { Checkout, CheckoutRepository } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class CheckoutFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<Checkout>(Base)))\r\n implements CheckoutRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'checkouts'\r\n this.model = Checkout\r\n }\r\n}\r\n","import { DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\r\n\r\nimport { Base, isNil } from '../../../../../utils'\r\nimport { Coupon, CouponRepository } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class CouponFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<Coupon>(Base)))\r\n implements CouponRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'coupons'\r\n this.model = Coupon\r\n }\r\n\r\n buildModelInstance(): {\r\n toFirestore: (data: Coupon) => DocumentData\r\n fromFirestore: (snap: QueryDocumentSnapshot<Coupon>) => Coupon\r\n } {\r\n const { fromFirestore, toFirestore } = super.buildModelInstance()\r\n\r\n return {\r\n toFirestore: (data: Coupon): DocumentData => {\r\n const plain = toFirestore(data)\r\n\r\n if (!!data.expiresIn) plain.expiresIn = data.expiresIn.getTime()\r\n\r\n return plain\r\n },\r\n fromFirestore: (snap: QueryDocumentSnapshot<Coupon>): Coupon => {\r\n const instance = fromFirestore(snap)\r\n\r\n if (!isNil(instance.expiresIn)) instance.expiresIn = new Date(snap.data().expiresIn)\r\n\r\n return instance\r\n },\r\n }\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { Order, OrderRepository } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class OrderFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<Order>(Base)))\r\n implements OrderRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'orders'\r\n this.model = Order\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { Payment, PaymentRepository } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class PaymentFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<Payment>(Base)))\r\n implements PaymentRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'payments'\r\n this.model = Payment\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { CheckoutSubscription, CheckoutSubscriptionRepository } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class CheckoutSubscriptionFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<CheckoutSubscription>(Base)))\r\n implements CheckoutSubscriptionRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'checkoutsSubscription'\r\n this.model = CheckoutSubscription\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { SubscriptionPlan, SubscriptionPlanRepository } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class SubscriptionPlanFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<SubscriptionPlan>(Base)))\r\n implements SubscriptionPlanRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'subscriptionPlans'\r\n this.model = SubscriptionPlan\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { Buy2Win, Buy2WinRepository } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class Buy2WinFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<Buy2Win>(Base)))\r\n implements Buy2WinRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'buy2win'\r\n this.model = Buy2Win\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\n\r\nimport { LegacyOrderRepository } from '../../../../../domain'\r\n\r\nimport { OrderFirestoreRepository } from './order-firestore.repository'\r\n\r\nexport class LegacyOrderFirestoreRepository extends OrderFirestoreRepository implements LegacyOrderRepository {\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super(firestore)\r\n this.collectionName = 'legacyOrders'\r\n }\r\n}\r\n","import { DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\r\nimport firebase from 'firebase'\r\n\r\nimport { Base } from '../../../../../utils'\r\nimport { Category, Home, HomeCategoryGroup, HomeRepository, Product } from '../../../../../domain'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class HomeFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<Home>(Base)))\r\n implements HomeRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'dms'\r\n this.model = Home\r\n }\r\n\r\n buildModelInstance(): {\r\n toFirestore: (data: Home) => DocumentData\r\n fromFirestore: (snap: QueryDocumentSnapshot<Home>) => Home\r\n } {\r\n const { fromFirestore, toFirestore } = super.buildModelInstance()\r\n\r\n return {\r\n toFirestore: (data: Home): DocumentData => {\r\n const modifiedData = this.homeToFirestore(data)\r\n\r\n return toFirestore(modifiedData)\r\n },\r\n fromFirestore: (snap: QueryDocumentSnapshot<Home>): Home => {\r\n const instance = fromFirestore(snap)\r\n\r\n return this.homeFromFirestore(instance)\r\n },\r\n }\r\n }\r\n\r\n private homeToFirestore = (home: Home): Home => {\r\n if (home.data?.data) {\r\n home.data.data.discoverProducts = home.data.data.discoverProducts.map(this.homeCategoryGroupToPlain)\r\n home.data.data.featuredProducts = home.data.data.featuredProducts.map(this.homeCategoryGroupToPlain)\r\n home.data.data.verticalProducts = home.data.data.verticalProducts.map(this.homeCategoryGroupToPlain)\r\n }\r\n\r\n return home\r\n }\r\n\r\n private homeCategoryGroupToPlain = (homeCategoryGroup: HomeCategoryGroup) => ({\r\n category: homeCategoryGroup.category.toPlain(),\r\n products: homeCategoryGroup.products.map((product) => product.toPlain()),\r\n })\r\n\r\n private homeFromFirestore = (home: Home): Home => {\r\n if (home.data?.data) {\r\n home.data.data.discoverProducts = home.data.data.discoverProducts.map(this.plainToHomeCategoryGroup)\r\n home.data.data.featuredProducts = home.data.data.featuredProducts.map(this.plainToHomeCategoryGroup)\r\n home.data.data.verticalProducts = home.data.data.verticalProducts.map(this.plainToHomeCategoryGroup)\r\n home.data.createdAt =\r\n home.data.createdAt instanceof firebase.firestore.Timestamp ? home.data.createdAt.toDate() : home.data.createdAt\r\n home.data.expiresAt =\r\n home.data.expiresAt instanceof firebase.firestore.Timestamp ? home.data.expiresAt.toDate() : home.data.expiresAt\r\n }\r\n\r\n return home\r\n }\r\n\r\n private plainToHomeCategoryGroup = (homeCategoryGroup: HomeCategoryGroup) => ({\r\n category: Category.toInstance(homeCategoryGroup.category),\r\n products: homeCategoryGroup.products.map((product) => Product.toInstance(product)),\r\n })\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\nimport { ShopMenu, ShopMenuRepository } from '../../../../../domain'\r\n\r\nimport { Base } from '../../../../../utils'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class ShopMenuFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<ShopMenu>(Base)))\r\n implements ShopMenuRepository {\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'shopMenus'\r\n this.model = ShopMenu\r\n }\r\n}\r\n","import { FirebaseFirestore } from '@firebase/firestore-types'\r\nimport { ShopSettings, ShopSettingsRepository } from '../../../../../domain'\r\n\r\nimport { Base } from '../../../../../utils'\r\n\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\r\n\r\nexport class ShopSettingsFirestoreRepository\r\n extends withCrudFirestore(withHelpers(withFirestore<ShopSettings>(Base)))\r\n implements ShopSettingsRepository\r\n{\r\n constructor(readonly firestore: FirebaseFirestore) {\r\n super()\r\n this.collectionName = 'shopSettings'\r\n this.model = ShopSettings\r\n }\r\n}\r\n","import firebase from 'firebase/app'\r\n\r\nimport { AuthenticationService, BasicUserData, LoginAndPasswordParams } from '../../../domain'\r\n\r\nimport { FirebaseUserWithId } from './types/firebase-user-with-id.type'\r\n\r\nexport class AuthenticationFirebaseAuthService implements AuthenticationService {\r\n constructor(private readonly firebaseAuth: firebase.auth.Auth) {}\r\n\r\n async signInWithEmailAndPassword(data: LoginAndPasswordParams): Promise<BasicUserData> {\r\n const credentials = await this.firebaseAuth.signInWithEmailAndPassword(data.email, data.password)\r\n const user = credentials.user\r\n\r\n return {\r\n id: user.uid,\r\n displayName: user.displayName,\r\n email: user.email,\r\n phone: user.phoneNumber,\r\n isAnonymous: false,\r\n }\r\n }\r\n\r\n async signInWithGoogle(): Promise<BasicUserData> {\r\n const credentials = await this.firebaseAuth.signInWithPopup(new firebase.auth.GoogleAuthProvider())\r\n const user = credentials.user\r\n\r\n return {\r\n id: user.uid,\r\n displayName: user.displayName,\r\n email: user.email,\r\n phone: user.phoneNumber,\r\n isAnonymous: false,\r\n }\r\n }\r\n\r\n async signOut(): Promise<void> {\r\n this.firebaseAuth.signOut()\r\n }\r\n\r\n async signInAnonymously(): Promise<FirebaseUserWithId> {\r\n const auth = await this.firebaseAuth.signInAnonymously()\r\n const user = auth.user as FirebaseUserWithId\r\n\r\n user.id = auth.user.uid\r\n\r\n return user\r\n }\r\n\r\n async sendPasswordResetEmail(email: string): Promise<void> {\r\n return this.firebaseAuth.sendPasswordResetEmail(email)\r\n }\r\n}\r\n","import firebase from 'firebase/app'\r\n\r\nimport { RegisterParams, RegisterService, UserAlreadyRegisteredError, WeakPasswordError } from '../../../domain'\r\n\r\nimport { FirebaseUserWithId } from './types/firebase-user-with-id.type'\r\n\r\nexport class RegisterFirebaseAuthService implements RegisterService {\r\n constructor(private readonly firebaseAuth: firebase.auth.Auth) {}\r\n\r\n async register(params: RegisterParams): Promise<FirebaseUserWithId> {\r\n try {\r\n const auth = await this.firebaseAuth.createUserWithEmailAndPassword(params.email, params.password)\r\n const user = auth.user as FirebaseUserWithId\r\n\r\n user.sendEmailVerification()\r\n user.id = auth.user.uid\r\n\r\n return user\r\n } catch (error) {\r\n if (error.code === 'auth/email-already-in-use') throw new UserAlreadyRegisteredError('Email already registered')\r\n if (error.code === 'auth/weak-password') throw new WeakPasswordError()\r\n\r\n throw error\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["plainToClass","classToPlain","Where","UpdateOptionActions","AccessoryImportances","Area","BeardProblems","BeardSizes","BeautyProductImportances","BodyProblems","BodyShapes","BodyTattoos","FaceSkinOilinesses","FaceSkinProblems","FaceSkinTones","FamilyIncomes","FragranceImportances","HairColors","HairProblems","HairStrands","HairTypes","OfficePosition","ProductSpents","UserType","BillingStatus","EditionStatus","PaymentType","Status","Expose","Type","isNil","SignInMethods","Shops","CouponTypes","CouponSubtypes","Exclusivities","CheckoutTypes","Md5","OrderStatus","FilterType","QuestionsFilters","Answers.AccessoryImportances","Answers.BeardProblems","Answers.BeardSizes","Answers.BeautyProductImportances","Answers.BodyProblems","Answers.BodyShapes","Answers.BodyTattoos","Answers.FaceSkinOilinesses","Answers.FaceSkinProblems","Answers.FaceSkinTones","Answers.FamilyIncomes","Answers.FragranceImportances","Answers.HairColors","Answers.HairProblems","Answers.HairStrands","Answers.HairTypes","Answers.ProductSpents","axios","firebase","isNumber","isString","isDate","set","isObject","isEmpty","chunk"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"infrab4a-connect.umd.js","sources":["../../../projects/connect/src/lib/domain/general/model/base.model.ts","../../../projects/connect/src/lib/domain/general/repository/enums/where.enum.ts","../../../projects/connect/src/lib/domain/general/repository/enums/update-option-actions.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/accessory-importances.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/area.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/beard-problems.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/beard-sizes.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/beauty-product-importances.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/body-problems.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/body-shapes.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/body-tattoos.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/face-skin-oilinesses.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/face-skin-problems.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/face-skin-tones.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/family-incomes.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/fragrance-importances.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/hair-colors.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/hair-problems.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/hair-strands.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/hair-types.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/office-position.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/product-spents.enum.ts","../../../projects/connect/src/lib/domain/users/models/enums/user-type.enum.ts","../../../projects/connect/src/lib/domain/users/models/subscription/enums/billing-status.enum.ts","../../../projects/connect/src/lib/domain/users/models/subscription/enums/edition-status.enum.ts","../../../projects/connect/src/lib/domain/users/models/subscription/enums/payment-type.enum.ts","../../../projects/connect/src/lib/domain/users/models/subscription/enums/status.enum.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/connect/src/lib/domain/users/models/subscription/edition.ts","../../../projects/connect/src/lib/domain/shopping/models/payment.ts","../../../projects/connect/src/lib/domain/users/models/subscription/payment.ts","../../../projects/connect/src/lib/domain/location/models/address.ts","../../../projects/connect/src/lib/utils/mixins/base.mixin.ts","../../../projects/connect/src/lib/domain/shopping/models/coupons/enums/discount-type.enum.ts","../../../projects/connect/src/lib/domain/shopping/models/coupons/enums/exclusivities.enum.ts","../../../projects/connect/src/lib/domain/shopping/models/coupons/coupon.ts","../../../projects/connect/src/lib/domain/shopping/models/subscription/plan.ts","../../../projects/connect/src/lib/domain/users/models/beauty-profile.ts","../../../projects/connect/src/lib/domain/users/models/user.ts","../../../projects/connect/src/lib/domain/users/models/subscription/subscription.ts","../../../projects/connect/src/lib/domain/users/models/user-address.ts","../../../projects/connect/src/lib/domain/users/models/user-payment-method.ts","../../../projects/connect/src/lib/domain/users/models/lead.ts","../../../projects/connect/src/lib/domain/users/errors/unauthorized.error.ts","../../../projects/connect/src/lib/domain/users/use-cases/authentication.ts","../../../projects/connect/src/lib/domain/users/errors/user-already-registered.error.ts","../../../projects/connect/src/lib/domain/users/errors/weak-password.error.ts","../../../projects/connect/src/lib/domain/users/use-cases/register.ts","../../../projects/connect/src/lib/domain/users/use-cases/signout.ts","../../../projects/connect/src/lib/domain/catalog/models/enums/shops.enum.ts","../../../projects/connect/src/lib/domain/catalog/models/category.ts","../../../projects/connect/src/lib/domain/catalog/models/product.ts","../../../projects/connect/src/lib/domain/catalog/models/variant.ts","../../../projects/connect/src/lib/domain/shopping/models/enums/checkout-types.enum.ts","../../../projects/connect/src/lib/domain/shopping/models/coupons/club-coupon.ts","../../../projects/connect/src/lib/domain/shopping/models/coupons/store-coupon.ts","../../../projects/connect/src/lib/domain/shopping/models/enums/order-status.enum.ts","../../../projects/connect/src/lib/domain/shopping/models/line-item.ts","../../../projects/connect/src/lib/domain/shopping/models/shipping-method.ts","../../../projects/connect/src/lib/domain/shopping/models/checkout.ts","../../../projects/connect/src/lib/domain/shopping/models/order.ts","../../../projects/connect/src/lib/domain/shopping/models/subscription/checkout.ts","../../../projects/connect/src/lib/domain/shopping/models/buy-2-win.ts","../../../projects/connect/src/lib/domain/shop-settings/enums/filter-type.enum.ts","../../../projects/connect/src/lib/domain/shop-settings/enums/questions-filters.enum.ts","../../../projects/connect/src/lib/domain/shop-settings/helpers/beauty-questions.helper.ts","../../../projects/connect/src/lib/domain/shop-settings/models/home.ts","../../../projects/connect/src/lib/domain/shop-settings/models/shop-menu.ts","../../../projects/connect/src/lib/errors/invalid-argument.error.ts","../../../projects/connect/src/lib/errors/required-argument.error.ts","../../../projects/connect/src/lib/errors/not-found.error.ts","../../../projects/connect/src/lib/errors/duplicated-results.error.ts","../../../projects/connect/src/lib/infra/firebase/firestore/mixins/with-firestore.mixin.ts","../../../projects/connect/src/lib/infra/firebase/firestore/mixins/with-helpers.mixin.ts","../../../projects/connect/src/lib/infra/firebase/firestore/mixins/with-get-firestore.mixin.ts","../../../projects/connect/src/lib/infra/firebase/firestore/mixins/with-find-firestore.mixin.ts","../../../projects/connect/src/lib/infra/firebase/firestore/mixins/with-create-firestore.mixin.ts","../../../projects/connect/src/lib/infra/firebase/firestore/mixins/with-update-firestore.mixin.ts","../../../projects/connect/src/lib/infra/firebase/firestore/mixins/with-delete-firestore.mixin.ts","../../../projects/connect/src/lib/infra/firebase/firestore/mixins/with-sub-collection.mixin.ts","../../../projects/connect/src/lib/infra/firebase/firestore/mixins/with-crud-firestore.mixin.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/users/subscription-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/models/user-search.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/users/user-search-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/users/user-address-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/users/lead-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/catalog/category-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/catalog/product-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/shopping/order-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.ts","../../../projects/connect/src/lib/infra/firebase/auth/authentication-firebase-auth.service.ts","../../../projects/connect/src/lib/infra/firebase/auth/register-firebase-auth.service.ts","../../../projects/connect/src/infrab4a-connect.ts"],"sourcesContent":["import { plainToClass, classToPlain } from 'class-transformer'\n\nimport { NonFunctionProperties } from './types/non-function-properties.type'\n\nexport class BaseModel<Model> {\n constructor(args?: Partial<Model>) {\n Object.assign(this, args)\n }\n\n static toInstance<T>(this: new () => Partial<T>, data: NonFunctionProperties<T>): T {\n return plainToClass(this, data) as any\n }\n\n toPlain(): any {\n return classToPlain(this, { exposeUnsetFields: false })\n }\n}\n","export enum Where {\n EQUALS = '==',\n NOTEQUALS = '!=',\n GT = '>',\n GTE = '>=',\n IN = 'in',\n LT = '<',\n LTE = '<=',\n LIKE = 'like',\n}\n","export enum UpdateOptionActions {\n UPDATE = 'update',\n MERGE = 'merge',\n REMOVE = 'remove',\n REMOVE_FIELD = 'removeField',\n NULL = 'null',\n}\n","export enum AccessoryImportances {\n NOT_INTERESTED = 'Não tenho interesse',\n LIKE_RARELY_USE = 'Gosto, mas uso poucos',\n LIKE_ALWAYS_FOLLOW_FASHION = 'Gosto muito de acessórios e sempre procuro acompanhar a moda',\n}\n","export enum Area {\n GP = 'Geral',\n CRM = 'CRM',\n MediaProd = 'Media Production',\n Tech = 'Tecnologia',\n Transactional = 'Transacional',\n Operations = 'Opera\\u00E7\\u00F5es',\n Sales = 'Comercial',\n Finantial = 'Financeiro',\n HR = 'RH',\n}\n","export enum BeardProblems {\n NO_PROBLEMS = 'Sem problemas',\n DRY = 'Barba Seca',\n OILY = 'Barba Oleaosa',\n DANCRUFF = 'Barba com Caspa',\n INGROWN_HAIRS = 'Pêlos Encravados',\n DOESNT_GROW = 'Não Cresce',\n SPARSE_BEARD = 'Barba Rala',\n}\n","export enum BeardSizes {\n BIG = 'Grande',\n MEDIUM = 'Média',\n SHORT = 'Curta',\n MUSTACHE = 'Bigode',\n NOTHING = 'Sem Barba',\n}\n","export enum BeautyProductImportances {\n KNOW_LITTLE_ABOUT = 'Conheço bem pouco de produtos de beleza e rotinas de cuidados',\n ALREADY_BOUGHT_NOTHING_SPECIALIZED = 'Já comprei alguns produtos básicos para cuidar de mim, mas nada muito especializado',\n GOOD_CARE_MYSELF = 'Me considero um homem que se cuida bem. Conheço sobre produtos especializados e me preocupo em ter uma rotina de cuidados',\n PERSONAL_CARE_EXPERT = 'Sou um expert em cuidados pessoais',\n}\n","export enum BodyProblems {\n NO_WORRIES = 'Sem preocupações',\n FLACCIDITY = 'Flacidez',\n LOCALIZED_FAT = 'Gordura Localizada',\n STRETCH_MARKS = 'Estrias',\n SENSITIVE_SKIN = 'Pele Sensível',\n DRY_SKIN = 'Pele Seca',\n OILY_ACNE = 'Oleosa/Acne',\n SKIN_FRECKLES = 'Pele com Sardas',\n PHOTOSENSITIVE_SKIN = 'Pele Fotossensível',\n}\n","export enum BodyShapes {\n LEAN = 'Magro',\n REGULAR = 'Regular',\n OVERWEIGHT = 'Acima do Peso',\n ATHLETIC = 'Atlético',\n MUSCULAR = 'Musculoso',\n}\n","export enum BodyTattoos {\n NONE = 'Nenhuma',\n HAS_DOESNT_CARE = 'Tenho mas não cuido',\n HAS_CARE_LOT = 'Tenho e cuido bastante',\n}\n","export enum FaceSkinOilinesses {\n DRY = 'Seca',\n OILY = 'Oleaosa',\n MIXED = 'Mista',\n NORMAL = 'Normal',\n DONT_KNOW = 'Eu não sei como dizer',\n}\n","export enum FaceSkinProblems {\n NO_PROBLEMS = 'Sem problemas',\n DARK_CIRCLES = 'Olheiras',\n WRINKLES = 'Rugas',\n BLACKHEADS_PIMPLES = 'Cravos e Espinhas',\n STAINS = 'Manchas',\n FRECKLES = 'Sardas',\n SENSITIVE = 'Sensível',\n PHOTOSENSITIVE = 'Fotossensível',\n}\n","export enum FaceSkinTones {\n VERY_CLEAR = 'Muito Clara',\n CLEAR = 'Clara',\n MEDIUM_LIGHT = 'Clara Média',\n MEDIUM_DARK = 'Escura Média',\n DARK = 'Escura',\n VERY_DARK = 'Muito Escura',\n}\n","export enum FamilyIncomes {\n UNTIL_3000 = 'Até R$3.000',\n SINCE_3001_TO_7000 = 'De R$3.001 a R$7.000',\n SINCE_7001_TO_10000 = 'De R$7.001 a R$10.000',\n SINCE_10001_TO_15000 = 'De R$10.001 a R$15.000',\n GRAN_THAN_15000 = 'Mais de R$15.000',\n NOW_ANSWER = 'Prefiro nao responder',\n}\n","export enum FragranceImportances {\n NOT_INTERESTED = 'Não tenho interesse',\n LIKE_ALWAYS_USE_SAME = 'Gosto de perfumes, mas uso sempre os mesmos',\n LIKE_INNOVATE = 'Gosto de inovar e conhecer novas fragrâncias',\n}\n","export enum HairColors {\n BLACK = 'Preto',\n DARK_BROWN = 'Castanho Escuro',\n LIGHT_BROWN = 'Castanho Claro',\n DARK_BLONDE = 'Loiro Escuro',\n LIGHT_BLONDE = 'Loiro Claro',\n WHITE_GRAY = 'Branco/Grisalho',\n REDHEAD = 'Ruivo',\n OTHER = 'RuiOutroo',\n}\n","export enum HairProblems {\n NO_PROBLEMS = 'Sem problemas',\n DANCRUFF = 'Caspa',\n LOSS = 'Queda',\n OILY = 'Oleosidade',\n DRYNESS = 'Ressecamento',\n CHEMICAL = 'Quimica',\n WHITE_HAIR = 'Cabelos Brancos',\n REBEL_WIRES = 'Fios Rebeldes',\n}\n","export enum HairStrands {\n NORMAL = 'Fio Normal',\n DRY = 'Fio Seco',\n OILY = 'Fio Oleoso',\n MIXED = 'Fio Misto',\n FINE = 'Fio Fino',\n THICK = 'Fio Grosso',\n}\n","export enum HairTypes {\n Smooth = 'Liso',\n WAVY = 'Ondulado',\n CURLY = 'Cacheado',\n FRIZZY = 'Crespo',\n BALD = 'Sou careca',\n}\n","export enum OfficePosition {\n Intern = 'Estagi\\u00E1rio',\n Analyst = 'Analista',\n Manager = 'Gerente',\n Director = 'Diretor',\n}\n","export enum ProductSpents {\n UNTIL_50 = 'Até R$50',\n SINCE_51_TO_100 = 'De R$51 a R$100',\n SINCE_101_TO_200 = 'De R$101 a R$200',\n SINCE_201_TO_300 = 'De R$201 a R$300',\n GRAN_THAN_300 = 'Mais de R$300',\n NOW_ANSWER = 'Prefiro nao responder',\n}\n","export enum UserType {\n B2C = 'Cliente Transacional',\n GlamGirl = 'Glamgirl',\n MensBoy = 'Mensboy',\n B2B = 'Company',\n Collaborator = 'Funcionário',\n Influencer = 'Influencer',\n}\n","export enum BillingStatus {\n PAYED = 'PAGO',\n}\n","export enum EditionStatus {\n ALLOCATION_WAITING = 'Aguardando alocação',\n SHIPPED = 'Enviado',\n}\n","export enum PaymentType {\n AQUISITION = 'Aquisição',\n RENEWAL = 'Renovação',\n FREIGHT = 'mudança de endereço, Frete',\n}\n","export enum Status {\n ACTIVE = 'active',\n CANCELLED = 'Cancelado',\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { BaseModel } from '../../../general/model/base.model'\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\nimport { NonFunctionPropertyNames } from '../../../general/model/types/non-function-property-name.type'\n\nimport { EditionStatus, BillingStatus } from './enums'\n\nexport class Edition extends BaseModel<Edition> implements IdentifierFields<Edition> {\n id: string\n subscriptionId: string\n billingStatus: BillingStatus\n editionId: number\n editionStatus: EditionStatus\n installment: number\n paymentId: string\n draftId?: string\n\n identifierFields(): NonFunctionPropertyNames<Edition>[] {\n return ['id']\n }\n}\n","import { Expose } from 'class-transformer'\n\nimport { BaseModel } from '../../general/model/base.model'\nimport { IdentifierFields } from '../../general/model/identifier-fields'\nimport { NonFunctionPropertyNames } from '../../general/model/types'\n\nimport { PaymentBilling, PaymentCard, PaymentCustomer, PaymentItem, PaymentShipping } from './types'\n\nexport class Payment extends BaseModel<Payment> implements IdentifierFields<Payment> {\n id: number\n object: string\n status: string\n tid: number\n nsu: number\n amount: number\n cost: number\n installments: number\n referer: string\n ip: string\n phone: string\n address: string\n metadata: any\n device: string\n payment: string\n addition: string\n discount: string\n customer: PaymentCustomer\n billing: PaymentBilling\n shipping: PaymentShipping\n items: PaymentItem[]\n card: PaymentCard\n\n @Expose({ name: 'refuse_reason' })\n refuseReason: string\n @Expose({ name: 'status_reason' })\n statusReason: string\n @Expose({ name: 'acquirer_response_code' })\n acquirerResponseCode: string\n @Expose({ name: 'acquirer_name' })\n acquirerName: string\n @Expose({ name: 'acquirer_id' })\n acquirerId: string\n @Expose({ name: 'authorization_code' })\n authorizationCode: string\n @Expose({ name: 'soft_descriptor' })\n softDescriptor: string\n @Expose({ name: 'date_created' })\n dateCreated: string\n @Expose({ name: 'date_updated' })\n dateUpdated: string\n @Expose({ name: 'authorized_amount' })\n authorizedAmount: number\n @Expose({ name: 'paid_amount' })\n paidAmount: number\n @Expose({ name: 'refunded_amount' })\n refundedAmount: number\n @Expose({ name: 'card_holder_name' })\n cardHolderName: string\n @Expose({ name: 'card_last_digits' })\n cardLastDigits: string\n @Expose({ name: 'card_first_digits' })\n cardFirstDigits: string\n @Expose({ name: 'card_brand' })\n cardBrand: string\n @Expose({ name: 'card_pin_mode' })\n cardPinMode: string\n @Expose({ name: 'card_magstripe_fallback' })\n cardMagstripeFallback: boolean\n @Expose({ name: 'cvm_pin' })\n cvmPin: boolean\n @Expose({ name: 'postback_url' })\n postbackUrl: string\n @Expose({ name: 'payment_method' })\n paymentMethod: string\n @Expose({ name: 'capture_method' })\n captureMethod: string\n @Expose({ name: 'antifraud_score' })\n antifraudScore: string\n @Expose({ name: 'boleto_url' })\n boletoUrl: string\n @Expose({ name: 'boleto_barcode' })\n boletoBarcode: string\n @Expose({ name: 'boleto_expiration_date' })\n boletoExpirationDate: string\n @Expose({ name: 'subscription_id' })\n subscriptionId: string\n @Expose({ name: 'split_rules' })\n splitRules: string\n @Expose({ name: 'antifraud_metadata' })\n antifraudMetadata: any\n @Expose({ name: 'reference_key' })\n referenceKey: string\n @Expose({ name: 'local_transaction_id' })\n localTransactionId: string\n @Expose({ name: 'local_time' })\n localTime: string\n @Expose({ name: 'fraud_covered' })\n fraudCovered: boolean\n @Expose({ name: 'fraud_reimbursed' })\n fraudReimbursed: string\n @Expose({ name: 'order_id' })\n orderId: string\n @Expose({ name: 'risk_level' })\n riskLevel: string\n @Expose({ name: 'receipt_url' })\n receiptUrl: string\n @Expose({ name: 'private_label' })\n privateLabel: string\n @Expose({ name: 'pix_qr_code' })\n pixQrCode: string\n @Expose({ name: 'pix_expiration_date' })\n pixExpirationDate: string\n\n identifierFields(): NonFunctionPropertyNames<Payment>[] {\n return ['id']\n }\n}\n","import { Type } from 'class-transformer'\n\nimport { BaseModel } from '../../../general/model/base.model'\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\nimport { NonFunctionPropertyNames } from '../../../general/model/types'\nimport { Payment } from '../../../shopping/models/payment'\n\nimport { PaymentType } from './enums/payment-type.enum'\n\nexport class SubscriptionPayment\n extends BaseModel<SubscriptionPayment>\n implements IdentifierFields<SubscriptionPayment>\n{\n id: string\n subscriptionId: string\n paymentType: PaymentType\n createdAt: Date\n attempts?: number\n\n @Type(() => Payment)\n payment: Payment\n\n identifierFields(): NonFunctionPropertyNames<SubscriptionPayment>[] {\n return ['id']\n }\n}\n","import { BaseModel } from '../../general/model/base.model'\n\nimport { LocationGeometry } from './types/location-geometry.type'\n\nexport abstract class Address extends BaseModel<Address> {\n default?: boolean\n recipient?: string\n zip?: string\n street?: string\n number?: string\n extension?: string\n district?: string\n city?: string\n regionalPole?: string\n region?: string\n state?: string\n country?: string\n mailbox?: boolean\n mailboxNumber?: string\n formattedAddress?: string\n placeId?: string\n geometry?: LocationGeometry\n}\n","export class Base {\n constructor(...args: Array<any>) {\n Object.assign(this, ...args)\n }\n}\n","export enum DiscountType {\n ABSOLUTE = 1,\n PERCENTAGE = 2,\n FREE_SHIPPING = 3,\n}\n","export enum Exclusivities {\n ALL_USERS = 1,\n SPECIFIC_USER = 2,\n COLLABORATORS = 3,\n}\n","import { Expose } from 'class-transformer'\n\nimport { BaseModel } from '../../../general/model/base.model'\nimport { CheckoutTypes } from '../enums/checkout-types.enum'\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\nimport { isNil } from '../../../../utils'\nimport { NonFunctionPropertyNames } from '../../../general/model/types'\nimport { Shops } from '../../../catalog/models/enums/shops.enum'\n\nimport { DiscountType, Exclusivities } from './enums'\n\nexport class Coupon<CouponSubType extends Coupon = any>\n extends BaseModel<CouponSubType>\n implements IdentifierFields<Coupon>\n{\n id: string\n name: string\n nickname: string\n expiresAt: Date\n beginAt: Date\n discountType: DiscountType\n discount?: number\n useLimit?: number\n quantityPerUser?: number\n shopAvailability: Shops\n personId?: number\n influencerEmail?: string\n recipient?: string\n createdAt: Date\n updatedAt?: Date\n\n @Expose({ name: 'checkout_type' })\n checkoutType: CheckoutTypes\n @Expose({ name: 'exclusivity_type' })\n exclusivityType?: Exclusivities\n\n get isInfluencer(): boolean {\n return !isNil(this.influencerEmail)\n }\n\n identifierFields(): NonFunctionPropertyNames<Coupon>[] {\n return ['id']\n }\n\n calculeDiscount(amount: number): number {\n switch (this.discountType) {\n case DiscountType.ABSOLUTE:\n return this.discount < amount ? this.discount : amount\n case DiscountType.PERCENTAGE:\n return this.discount * 0.01 * amount\n }\n }\n}\n","import { BaseModel } from '../../../general/model/base.model'\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\nimport { NonFunctionPropertyNames } from '../../../general/model/types'\n\nexport class SubscriptionPlan extends BaseModel<SubscriptionPlan> implements IdentifierFields<SubscriptionPlan> {\n id: string\n name: string\n billingPrice: number\n recurrencePrice: number\n recurrenceCycle: number\n maxAttempts: number\n\n identifierFields(): NonFunctionPropertyNames<SubscriptionPlan>[] {\n return ['id']\n }\n}\n","import { BaseModel } from '../../general/model/base.model'\nimport { IdentifierFields } from '../../general/model/identifier-fields'\nimport { NonFunctionPropertyNames } from '../../general/model/types/non-function-property-name.type'\n\nimport { BeardSizes, HairTypes } from './enums'\n\nexport class BeautyProfile extends BaseModel<BeautyProfile> implements IdentifierFields<BeautyProfile> {\n id: string\n userId: string\n beardSize?: BeardSizes\n hairType?: HairTypes\n\n toPlain(): any {\n const plain = super.toPlain()\n\n delete plain.id\n\n return plain\n }\n\n identifierFields(): NonFunctionPropertyNames<BeautyProfile>[] {\n return ['id']\n }\n}\n","import { Type } from 'class-transformer'\n\nimport { BaseModel } from '../../general/model/base.model'\nimport { IdentifierFields } from '../../general/model/identifier-fields'\nimport { isNil } from '../../..//utils'\nimport { NonFunctionProperties, NonFunctionPropertyNames } from '../../general/model/types'\n\nimport { Area, OfficePosition, UserType } from './enums'\nimport { BeautyProfile } from './beauty-profile'\n\nexport class User extends BaseModel<User> implements IdentifierFields<User> {\n id: string\n cpf?: string\n email: string\n firstName: string\n lastName: string\n displayName?: string\n phone: string\n birthday?: Date\n acceptsNewsletter: boolean\n type?: UserType\n area?: Area\n officePosition?: OfficePosition\n isSubscriber?: boolean\n\n @Type(() => BeautyProfile)\n beautyProfile?: BeautyProfile\n\n static toInstance<T>(this: new () => Partial<T>, data: NonFunctionProperties<T> & NonFunctionProperties<User>): T {\n const instance = super.toInstance<User>(data)\n\n if (!isNil(data.firstName))\n instance.displayName = `${data.firstName}${!isNil(data.lastName) ? ` ${data.lastName}` : ''}`\n\n return instance as any\n }\n\n identifierFields(): NonFunctionPropertyNames<User>[] {\n return ['id']\n }\n\n toPlain(): any {\n const plain = super.toPlain()\n\n delete plain.beautyProfile\n\n return plain\n }\n}\n","import { Type } from 'class-transformer'\n\nimport { Address } from '../../../location/models/address'\nimport { BaseModel } from '../../../general/model/base.model'\nimport { Coupon } from '../../../shopping/models/coupons/coupon'\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\nimport { NonFunctionPropertyNames } from '../../../general/model/types/non-function-property-name.type'\nimport { SubscriptionPlan } from '../../../shopping/models/subscription/plan'\nimport { User } from '../user'\n\nimport { Edition } from './edition'\nimport { Status } from './enums/status.enum'\nimport { SubscriptionPayment } from './payment'\n\nexport class Subscription extends BaseModel<Subscription> implements IdentifierFields<Subscription> {\n id: string\n nextPayment: Date\n recurrence: boolean\n status: Status\n cardToken: string\n subtotalPrice?: number\n discount?: number\n totalPrice?: number\n createdAt: Date\n updatedAt: Date\n\n @Type(() => User)\n user: User\n @Type(() => SubscriptionPlan)\n subscriptionPlan: SubscriptionPlan\n @Type(() => Address)\n shippingAddress: Address\n @Type(() => Address)\n billingAddress?: Address\n @Type(() => Coupon)\n coupon?: Coupon\n @Type(() => Edition)\n editions: Edition[]\n @Type(() => SubscriptionPayment)\n payment?: SubscriptionPayment[]\n\n identifierFields(): NonFunctionPropertyNames<Subscription>[] {\n return ['id']\n }\n}\n","import { Address } from '../../location/models/address'\nimport { NonFunctionPropertyNames } from '../../general/model/types/non-function-property-name.type'\n\nexport class UserAddress extends Address {\n id: string\n userId: string\n\n identifierFields(): NonFunctionPropertyNames<UserAddress>[] {\n return ['id']\n }\n}\n","import { BaseModel } from '../../general/model/base.model'\nimport { NonFunctionPropertyNames } from '../../general/model/types/non-function-property-name.type'\n\nexport class UserPaymentMethod extends BaseModel<UserPaymentMethod> {\n brand: string\n cpf: string\n holderName: string\n last4: string\n pagarmeToken: string\n validUntil: string\n userId: string\n id: string\n\n identifierFields(): NonFunctionPropertyNames<UserPaymentMethod>[] {\n return ['id']\n }\n}\n","import { BaseModel } from '../../general/model/base.model'\nimport { IdentifierFields } from '../../general/model/identifier-fields'\nimport { NonFunctionPropertyNames } from '../../general/model/types'\n\nexport class Lead extends BaseModel<Lead> implements IdentifierFields<Lead> {\n id: string\n acceptsNewsletter: boolean\n email: string\n\n identifierFields(): NonFunctionPropertyNames<Lead>[] {\n return ['id']\n }\n}\n","export class UnauthorizedError extends Error {\n constructor(readonly message) {\n super(message)\n }\n}\n","import { Area, OfficePosition, User, UserType } from '../models'\nimport { AuthenticationService } from '../services/authentication.service'\nimport { isNil } from '../../../utils'\nimport { UnauthorizedError } from '../errors/unauthorized.error'\nimport { UserRepository } from '../repositories/user.repository'\n\nexport enum SignInMethods {\n EMAIL_PASSWORD = 'email_password',\n GOOGLE = 'google',\n}\n\ntype SignInMethod = Lowercase<keyof typeof SignInMethods>\n\ntype SignInParams = {\n email?: string\n password?: string\n}\n\nexport class Authentication {\n constructor(private readonly authService: AuthenticationService, private readonly userRepository: UserRepository) {}\n\n async signIn({ email, password }: SignInParams, signInMethod: SignInMethod): Promise<User> {\n const method = this.getServiceByMethod(signInMethod)\n const userAuth = await this.authService[method]({ email, password })\n const user = this.userRepository.get(userAuth)\n\n if (!isNil(user)) return user\n if (/^.+@b4a.com.br$/.test(userAuth.email)) return this.createsUserByCredential(userAuth)\n\n throw new UnauthorizedError('Invalid credentials')\n }\n\n private getServiceByMethod(signInMethod: SignInMethod): string {\n return signInMethod === SignInMethods.EMAIL_PASSWORD ? 'signInWithEmailAndPassword' : 'signInWithGoogle'\n }\n\n private async createsUserByCredential(user: Partial<User>): Promise<User> {\n const [firstName, lastName] = user.displayName?.split(/\\s/)\n const person = User.toInstance({\n ...user,\n cpf: '',\n birthday: new Date(),\n firstName,\n lastName,\n acceptsNewsletter: false,\n area: Area.Transactional,\n officePosition: OfficePosition.Intern,\n type: UserType.Collaborator,\n })\n\n return this.userRepository.create(person)\n }\n}\n","export class UserAlreadyRegisteredError extends Error {\n constructor(readonly message) {\n super(message)\n }\n}\n","export class WeakPasswordError extends Error {\n constructor(readonly message = 'Weak password') {\n super(message)\n }\n}\n","import { User, UserType } from '../models'\nimport { RegisterService } from '../services/register.service'\nimport { UserAlreadyRegisteredError } from '../errors'\nimport { UserRepository } from '../repositories/user.repository'\n\ntype RegisterParams = Partial<User> & { password: string }\n\nexport class Register {\n constructor(private readonly registerService: RegisterService, private readonly userRepository: UserRepository) {}\n\n async register(params: RegisterParams): Promise<User> {\n const email = params.email.toLocaleLowerCase()\n const displayName = `${params.firstName} ${params.lastName}`\n\n if (await this.userRepository.checkIfExistsByField('cpf', params.cpf))\n throw new UserAlreadyRegisteredError(`User with CPF ${params.cpf} already registered`)\n if (await this.userRepository.checkIfExistsByField('email', params.email))\n throw new UserAlreadyRegisteredError(`User with E-mail ${params.email} already registered`)\n\n const auth = await this.registerService.register({\n birthday: params.birthday,\n email,\n firstName: params.firstName,\n lastName: params.lastName,\n cpf: params.cpf,\n displayName,\n phone: params.phone,\n password: params.password,\n })\n\n delete params.password\n\n const user = await this.userRepository.create({\n ...params,\n id: auth.id,\n email,\n displayName,\n type: UserType.B2C,\n dateCreated: new Date(),\n dateModified: new Date(),\n })\n\n return user\n }\n}\n","import { AuthenticationService } from '../services/authentication.service'\n\nexport class SignOut {\n constructor(private readonly authService: AuthenticationService) {}\n\n async signOut(): Promise<void> {\n await this.authService.signOut()\n }\n}\n","export enum Shops {\n MENSMARKET = `mensmarket`,\n GLAMSHOP = 'Glamshop',\n}\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../general/model'\nimport { Shops } from './enums'\n\nimport { CategoryCondition, CategoryFilter } from './types'\n\nexport class Category extends BaseModel<Category> implements IdentifierFields<Category> {\n id: string\n brandCategory: boolean\n brandLogo?: string\n name: string\n slug: string\n image?: string\n brandCategoryBanner?: string\n brandCategoryBannerMobile?: string\n description: string\n conditions?: CategoryCondition\n products?: string[]\n filters?: CategoryFilter[]\n createdAt: Date\n updatedAt: Date\n shop: Shops\n published: boolean\n\n identifierFields(): NonFunctionPropertyNames<Category>[] {\n return ['id']\n }\n}\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../general/model'\n\nimport { Shops } from './enums/shops.enum'\nimport { ProductReview, ShopDescription, ShopPrice, ShopsDescription, ShopsPrice, Stock } from './types'\nimport { Variant } from './variant'\n\nexport class Product extends BaseModel<Product> implements IdentifierFields<Product> {\n id: string\n name: string\n slug: string\n shopAvailability: Shops[]\n description: ShopsDescription\n sku: string\n price: ShopsPrice\n hasVariants: boolean\n NCM: string\n EAN: string\n CEST: string\n weight: number\n stock: Stock\n costPrice: number\n images?: string[]\n published: boolean\n publishedGlam: boolean\n createdAt: Date\n updatedAt: Date\n brand: string\n tags?: string[]\n type?: string\n categories?: string[]\n reviews?: ProductReview[]\n variant?: Variant\n\n identifierFields(): NonFunctionPropertyNames<Product>[] {\n return ['id']\n }\n\n getInfoByShop(shop: Shops): ShopDescription & ShopPrice & Stock {\n return {\n ...(this.description?.[shop]?.description ? { description: this.description?.[shop]?.description } : {}),\n ...(this.price?.[shop] || {}),\n ...(this.stock?.[shop] || {}),\n }\n }\n}\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../general/model'\n\nimport { ShopsPrice, Stock, VariantGrade } from './types'\n\nexport class Variant extends BaseModel<Variant> implements IdentifierFields<Variant> {\n id: string\n productId: string\n sku: string\n price: ShopsPrice\n EAN: string\n stock: Stock\n grade: VariantGrade[]\n costPrice: number\n weight: number\n\n identifierFields(): NonFunctionPropertyNames<Variant>[] {\n return ['id']\n }\n}\n","export enum CheckoutTypes {\n ECOMMERCE = 1,\n SUBSCRIPTION = 2,\n}\n","import { Expose, Type } from 'class-transformer'\n\nimport { CheckoutTypes } from '../enums/checkout-types.enum'\nimport { Category } from '../../../catalog'\n\nimport { Coupon } from './coupon'\n\nexport class ClubCoupon extends Coupon<ClubCoupon> {\n plan: string\n\n @Expose({ name: 'checkout_type' })\n checkoutType = CheckoutTypes.SUBSCRIPTION\n\n @Type(() => Category)\n categories: Category[]\n\n static isClubCoupon(coupon: Coupon): coupon is ClubCoupon {\n return coupon instanceof ClubCoupon\n }\n}\n","import { Expose, Type } from 'class-transformer'\n\nimport { CheckoutTypes } from '../enums/checkout-types.enum'\nimport { Category } from '../../../catalog'\n\nimport { Coupon } from './coupon'\n\nexport class StoreCoupon extends Coupon<StoreCoupon> {\n @Expose({ name: 'checkout_type' })\n checkoutType = CheckoutTypes.ECOMMERCE\n\n @Type(() => Category)\n categories: Category[]\n\n static isStoreCoupon(coupon: Coupon): coupon is StoreCoupon {\n return coupon instanceof StoreCoupon\n }\n}\n","export enum OrderStatus {\n AGUARDANDO_PAGAMENTO = 'Aguardando pagamento',\n EM_PREPARO = 'Preparando pedido',\n NF_EMITIDA = 'Nota Fiscal Emitida',\n AGUARDANDO_ENVIO = 'Aguardando Transaportadora',\n ENVIADO = 'Pedido Enviado',\n ENTREGUE = 'Pedido entregue',\n CANCELADO = 'Cancelado',\n CREDIT_CARD = 'credit_card',\n}\n","import { Product } from '../../catalog/models/product'\n\nexport class LineItem extends Product {\n parentId?: string\n quantity: number\n isGift?: boolean\n pricePaid?: number\n image?: string\n}\n","import { BaseModel } from '../../general/model/base.model'\nimport { IdentifierFields } from '../../general/model/identifier-fields'\nimport { NonFunctionPropertyNames } from '../../general/model/types'\n\nexport class ShippingMethod extends BaseModel<ShippingMethod> implements IdentifierFields<ShippingMethod> {\n id: string\n CNPJ: string\n DaysToDelivery: number\n MaxGrams: number\n MinGrams: number\n ServiceCompanyRangeId: number\n ShippingCompanyId: number\n ShippingCompanyName: string\n ShippingPrice: number\n State: string\n ZipEnd: number\n ZipStart: number\n\n identifierFields(): NonFunctionPropertyNames<ShippingMethod>[] {\n return ['id']\n }\n}\n","import { Type } from 'class-transformer'\n\nimport { Address } from '../../location/models/address'\nimport { BaseModel } from '../../general/model/base.model'\nimport { IdentifierFields } from '../../general/model/identifier-fields'\nimport { NonFunctionPropertyNames } from '../../general/model/types'\nimport { User } from '../../users/models/user'\n\nimport { Coupon } from './coupons/coupon'\nimport { LineItem } from './line-item'\nimport { ShippingMethod } from './shipping-method'\nimport { Shops } from '../../catalog/models/enums/shops.enum'\n\nexport class Checkout extends BaseModel<Checkout> implements IdentifierFields<Checkout> {\n id?: string\n paymentId?: string\n status?: string\n createdAt?: Date\n updatedAt?: Date\n completedAt?: Date\n discount?: number\n subTotalPrice?: number\n totalPrice?: number\n shop: Shops\n\n @Type(() => LineItem)\n lineItems?: LineItem[]\n @Type(() => User)\n user?: User\n @Type(() => Address)\n shippingAddress?: Address\n @Type(() => Address)\n billingAddress?: Address\n @Type(() => ShippingMethod)\n shipping?: ShippingMethod\n @Type(() => Coupon)\n coupon?: Coupon\n\n identifierFields(): NonFunctionPropertyNames<Checkout>[] {\n return ['id']\n }\n}\n","import { Type } from 'class-transformer'\n\nimport { Checkout } from './checkout'\nimport { OrderStatus } from './enums/order-status.enum'\nimport { Payment } from './payment'\n\nexport class Order extends Checkout {\n status: OrderStatus\n trackingCode?: string\n trackingUrl?: string\n\n @Type(() => Payment)\n payment: Payment\n}\n","import { Type } from 'class-transformer'\n\nimport { Address } from '../../../location/models/address'\nimport { BaseModel } from '../../../general/model/base.model'\nimport { Coupon } from '../coupons/coupon'\nimport { IdentifierFields } from '../../../general/model/identifier-fields'\nimport { NonFunctionPropertyNames } from '../../../general/model/types'\nimport { User } from '../../../users/models/user'\n\nimport { SubscriptionPlan } from './plan'\n\nexport class CheckoutSubscription\n extends BaseModel<CheckoutSubscription>\n implements IdentifierFields<CheckoutSubscription>\n{\n id?: string\n user: User\n createdAt: Date\n updatedAt: Date\n completedAt?: Date\n userId?: string\n discount?: number\n subTotalPrice?: number\n totalPrice?: number\n\n @Type(() => Address)\n shippingAddress: Address\n @Type(() => Address)\n billingAddress?: Address\n @Type(() => SubscriptionPlan)\n subscriptionPlan: SubscriptionPlan\n @Type(() => Coupon)\n coupon?: Coupon\n\n identifierFields(): NonFunctionPropertyNames<CheckoutSubscription>[] {\n return ['id']\n }\n}\n","import { Type } from 'class-transformer'\n\nimport { BaseModel } from '../../general/model/base.model'\nimport { IdentifierFields } from '../../general/model/identifier-fields'\nimport { NonFunctionPropertyNames } from '../../general/model/types'\nimport { Shops, Category } from '../../catalog/models'\n\nexport class Buy2Win extends BaseModel<Buy2Win> implements IdentifierFields<Buy2Win> {\n active: boolean\n cartValue: number\n createdAt: Date\n endDate: Date\n id?: string\n name: string\n products?: string[]\n shop: Shops\n startDate: Date\n updatedAt?: Date\n\n @Type(() => Category)\n categories: Category[]\n\n identifierFields(): NonFunctionPropertyNames<Buy2Win>[] {\n return ['id']\n }\n}\n","export enum FilterType {\n ACCESSORY_IMPORTANCE = 'accessoryImportance',\n BEARD_PROBLEMS = 'beardProblems',\n BEARD_SIZE = 'beardSize',\n BEAUTY_PRODUCT_IMPORTANCE = 'beautyProductImportance',\n BODY_PROBLEMS = 'bodyProblems',\n BODY_SHAPE = 'bodyShape',\n BODY_TATTOOS = 'bodyTattoos',\n FACE_SKIN_OILINESS = 'faceSkinOiliness',\n FACE_SKIN_PROBLEMS = 'faceSkinProblems',\n FACE_SKIN_TONE = 'faceSkinTone',\n FAMILY_INCOME = 'familyIncome',\n FRAGRANCE_IMPORTANCE = 'fragranceImportance',\n HAIR_COLOR = 'hairColor',\n HAIR_PROBLEMS = 'hairProblems',\n HAIR_STRANDS = 'hairStrands',\n HAIR_TYPE = 'hairType',\n PRODUCT_SPENT = 'productSpent',\n}\n","export enum QuestionsFilters {\n ACCESSORY_IMPORTANCE = 'Você gosta de usar acessórios masculinos?',\n BEARD_PROBLEMS = 'Quais problemas de barba você tem?',\n BEARD_SIZE = 'Quais caracteristicas se aplicam à sua BARBA/BIGODE?',\n BEAUTY_PRODUCT_IMPORTANCE = 'O que descreve melhor a sua relação com produtos de beleza e cuidados pessoais?',\n BODY_PROBLEMS = 'Qual ou quais preocupações você tem com a pele do seu corpo?',\n BODY_SHAPE = 'Qual e seu tipo de CORPO?',\n BODY_TATTOOS = 'Você tem alguma tatuagem?',\n FACE_SKIN_OILINESS = 'Quais caracteristicas se aplicam à pele do seu ROSTO?',\n FACE_SKIN_PROBLEMS = 'Quais problemas a pele do seu rosto tem?',\n FACE_SKIN_TONE = 'Qual seu tom de pele?',\n FAMILY_INCOME = 'Qual a sua renda familiar mensal (considerando a renda de todas as pessoas que moram com você)?',\n FRAGRANCE_IMPORTANCE = 'O quanto você gosta de experimentar perfumes?',\n HAIR_COLOR = 'Seu cabelo é naturalmente de qual COR?',\n HAIR_PROBLEMS = 'Qual ou quais problemas/característica de cabelo te preocupam?',\n HAIR_STRANDS = 'Como são seus fios?',\n HAIR_TYPE = 'Como é o seu cabelo?',\n PRODUCT_SPENT = 'Qual é o seu nivel de gasto mensal em produtos de beleza e cuidados pessoais?',\n}\n","import * as Answers from '../../users/models/enums'\nimport { FilterType, QuestionsFilters } from '../enums'\n\ntype FilterAnswers = {\n [key: string]: string\n}\n\nexport class BeautyQuestionsHelper {\n static getAnswers(filter: FilterType): FilterAnswers {\n switch (filter) {\n case FilterType.ACCESSORY_IMPORTANCE:\n return Answers.AccessoryImportances\n case FilterType.BEARD_PROBLEMS:\n return Answers.BeardProblems\n case FilterType.BEARD_SIZE:\n return Answers.BeardSizes\n case FilterType.BEAUTY_PRODUCT_IMPORTANCE:\n return Answers.BeautyProductImportances\n case FilterType.BODY_PROBLEMS:\n return Answers.BodyProblems\n case FilterType.BODY_SHAPE:\n return Answers.BodyShapes\n case FilterType.BODY_TATTOOS:\n return Answers.BodyTattoos\n case FilterType.FACE_SKIN_OILINESS:\n return Answers.FaceSkinOilinesses\n case FilterType.FACE_SKIN_PROBLEMS:\n return Answers.FaceSkinProblems\n case FilterType.FACE_SKIN_TONE:\n return Answers.FaceSkinTones\n case FilterType.FAMILY_INCOME:\n return Answers.FamilyIncomes\n case FilterType.FRAGRANCE_IMPORTANCE:\n return Answers.FragranceImportances\n case FilterType.HAIR_COLOR:\n return Answers.HairColors\n case FilterType.HAIR_PROBLEMS:\n return Answers.HairProblems\n case FilterType.HAIR_STRANDS:\n return Answers.HairStrands\n case FilterType.HAIR_TYPE:\n return Answers.HairTypes\n case FilterType.PRODUCT_SPENT:\n return Answers.ProductSpents\n }\n }\n\n static getQuestions(filter: FilterType): string {\n return QuestionsFilters[filter]\n }\n}\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../general/model'\nimport { Banner } from './types/banner.type'\nimport { Benefit } from './types/benefit.type'\n\nexport class Home extends BaseModel<Home> implements IdentifierFields<Home> {\n benefitsSection: Benefit[]\n blockBanners: Banner[]\n blogBanner: Banner\n brandsCarousel: Banner[]\n buyToWinBanner: Banner\n discoverCategories: string[]\n featuredCampaignBanner: Banner\n featuredCategories: string[]\n heroCarousel: Banner[]\n verticalCarousels: string[]\n id: string\n\n identifierFields(): NonFunctionPropertyNames<Home>[] {\n return ['id']\n }\n}\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../general/model'\nimport { MenuNav } from './types/menu-nav.type'\n\nexport class ShopMenu extends BaseModel<ShopMenu> implements IdentifierFields<ShopMenu> {\n menuNav: MenuNav[]\n id: string\n\n identifierFields(): NonFunctionPropertyNames<ShopMenu>[] {\n return ['id']\n }\n}\n","export class InvalidArgumentError extends Error {\n constructor(readonly message) {\n super(message)\n }\n}\n","export class RequiredArgumentError extends Error {\n arguments: string[]\n\n constructor(readonly args: string[]) {\n super(`Required arguments: ${args.join(', ')}`)\n\n this.arguments = args\n }\n}\n","export class NotFoundError extends Error {\n constructor(readonly message) {\n super(message)\n }\n}\n","export class DuplicatedResultsError extends Error {\n constructor(readonly message) {\n super(message)\n }\n}\n","import { CollectionReference, DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\nimport firebase from 'firebase'\n\nimport { BaseModelBuilder, BaseModelWithIdentifier } from '../../../../domain'\nimport { FirestoreRepository } from '../types'\nimport { MixinCtor } from '../../../../utils'\n\nexport const withFirestore = <TBase extends BaseModelWithIdentifier<TBase>>(MixinBase: MixinCtor) => {\n return class extends MixinBase implements FirestoreRepository<TBase> {\n readonly firestore?: FirebaseFirestore\n collectionName: string\n model: BaseModelBuilder<TBase>\n\n constructor(...args: Array<any>) {\n super(args)\n }\n\n collection(path?: string): CollectionReference<TBase> {\n return this.firestore.collection(path || this.collectionName).withConverter(this.buildModelInstance())\n }\n\n buildModelInstance(): {\n toFirestore: (data: TBase) => DocumentData\n fromFirestore: (snap: QueryDocumentSnapshot<TBase>) => TBase\n } {\n return {\n toFirestore: (data: TBase): DocumentData => (data?.toPlain ? data.toPlain() : data),\n fromFirestore: (snap: QueryDocumentSnapshot<TBase>): TBase => {\n const data = snap.data()\n\n Object.keys(data).forEach((key) => {\n if (data[key] instanceof firebase.firestore.Timestamp) {\n data[key] = data[key].toDate()\n }\n })\n\n return this.model.toInstance({ id: snap.id, ...data })\n },\n }\n }\n }\n}\n","import { QuerySnapshot, QueryDocumentSnapshot } from '@firebase/firestore-types'\n\nimport { BaseModelWithIdentifier } from '../../../../domain'\n\nimport { FirestoreHelpers, FirestoreRepository, FirestoreSubRepository } from '../types'\nimport { isNil, MixinCtor } from '../../../../utils'\n\nexport const withHelpers = <Model extends BaseModelWithIdentifier<Model>, TMixinBase extends MixinCtor>(\n MixinBase: MixinCtor & TMixinBase,\n) => {\n return class extends MixinBase implements FirestoreHelpers {\n toArray<T extends BaseModelWithIdentifier<T>>(snapShot: QuerySnapshot<T> | QueryDocumentSnapshot<T>[]): T[] {\n if (Array.isArray(snapShot)) {\n return snapShot.map((doc: QueryDocumentSnapshot<T>) => doc.data())\n } else {\n return snapShot.docs.map((doc: QueryDocumentSnapshot<T>) => doc.data())\n }\n }\n\n isSubCollection<T extends BaseModelWithIdentifier<T>>(\n repository: FirestoreRepository<T>,\n ): repository is FirestoreSubRepository<T> {\n return !isNil(Object.keys(this).find((key) => key === 'parentRepository'))\n }\n }\n}\n","import { BaseModelWithIdentifier, GetRepository, NonFunctionProperties } from '../../../../domain'\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\nimport { isNil, MixinCtor } from '../../../../utils'\nimport { NotFoundError } from '../../../../errors'\n\nexport const withGetFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\n) => {\n return class GetFirestore extends MixinBase implements GetRepository<TBase> {\n async get(identifiers: NonFunctionProperties<TBase>): Promise<TBase> {\n const doc = await this.collection(this.buildCollectionPathForGet(identifiers))\n .doc(Object.values(identifiers).shift().toString())\n .get()\n const data = doc.data()\n\n if (isNil(data)) throw new NotFoundError(`Document ${JSON.stringify(identifiers)} not found`)\n\n return data\n }\n\n buildCollectionPathForGet(identifiers: NonFunctionProperties<TBase>): string {\n return this.isSubCollection(this)\n ? `${this.parentRepository.collectionName}/${identifiers[this.parentIdField]}/${this.collectionName}`\n : this.collectionName\n }\n }\n}\n","import { CollectionReference, Query, WhereFilterOp } from '@firebase/firestore-types'\n\nimport {\n BaseModelWithIdentifier,\n FindRepository,\n NonFunctionPropertyNames,\n RepositoryFindField,\n RepositoryFindFielters,\n RepositoryFindFieltersOptions,\n RepositoryFindResult,\n RepositoryLimitOptions,\n RepositoryOrderByList,\n Where,\n} from '../../../../domain'\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\nimport { MixinCtor, isNil, isNumber, isObject, isString } from '../../../../utils'\n\nexport const withFindFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\n) => {\n const checkIfIsFilterOption = (filter: any): filter is RepositoryFindFieltersOptions<TBase, any> =>\n !isNil(filter?.operator)\n const getValueFromFilter = (filter: RepositoryFindField<TBase, any>): any => {\n return checkIfIsFilterOption(filter) ? filter.value : filter\n }\n\n return class FindFirestore extends MixinBase implements FindRepository<TBase> {\n async find(\n filters?: RepositoryFindFielters<TBase>[],\n limits?: RepositoryLimitOptions<TBase>,\n orderBy?: RepositoryOrderByList<TBase>,\n ): Promise<RepositoryFindResult<TBase>> {\n let query: CollectionReference<TBase> | Query<TBase> = this.collection(this.buildCollectionPathForFind(filters))\n\n filters?.forEach((filterer) => (query = this.makeFirestoreWhere(query, filterer)))\n\n orderBy?.forEach((orderer) =>\n Object.keys(orderer).forEach((fieldName) => (query = query.orderBy(fieldName, orderer[fieldName]))),\n )\n\n query = await this.defineLimits(query, filters, limits)\n\n const docs = await query.get()\n const data = docs.docs.map((doc) => doc.data())\n\n return {\n data,\n count: this.calculateCount(data, limits),\n }\n }\n\n buildCollectionPathForFind(filters: RepositoryFindFielters<TBase>[]): string {\n if (!this.isSubCollection<TBase>(this)) return this.collectionName\n\n const parentIdField = this.parentIdField\n const parentId = getValueFromFilter(\n filters.find((groupFilter) => Boolean(getValueFromFilter(groupFilter[parentIdField])))?.[parentIdField],\n )\n\n return `${this.parentRepository.collectionName}/${parentId}/${this.collectionName}`\n }\n\n makeFirestoreWhere = (\n queryReference: CollectionReference<TBase> | Query<TBase>,\n filter: RepositoryFindFielters<TBase>,\n ): Query<TBase> =>\n Object.keys(filter).reduce(\n (query: Query<TBase>, fieldName: string) => this.buildWhereSentence(query, fieldName, filter[fieldName]),\n queryReference,\n )\n\n buildWhereSentence = (\n queryReference: CollectionReference<TBase> | Query<TBase>,\n fieldName: NonFunctionPropertyNames<TBase> | string,\n options: RepositoryFindFieltersOptions<TBase, NonFunctionPropertyNames<TBase>>,\n ): Query<TBase> => {\n if (this.isSubCollection<TBase>(this) && fieldName === this.parentIdField) return queryReference\n if (options?.operator === Where.LIKE) {\n if (Array.isArray(options?.value))\n return queryReference.where(fieldName.toString(), 'array-contains-any', options.value)\n\n queryReference = queryReference.where(fieldName.toString(), '>=', options.value)\n queryReference = queryReference.where(fieldName.toString(), '<=', `${options.value}~`)\n\n return queryReference\n }\n if (options?.operator === Where.IN && Array.isArray(options?.value))\n return queryReference.where(fieldName.toString(), 'array-contains', options.value)\n if (isObject(options) && isNil(options?.operator) && isNil(options?.value))\n return Object.keys(options).reduce(\n (queryReferenceWithWhere, key) =>\n this.buildWhereSentence(queryReferenceWithWhere, `${fieldName}.${key}`, options[key]),\n queryReference,\n )\n\n return queryReference.where(fieldName.toString(), options?.operator || '==', options?.value || options)\n }\n\n async defineLimits(\n query: CollectionReference<TBase> | Query<TBase>,\n filters: RepositoryFindFielters<TBase>[],\n limits: RepositoryLimitOptions<TBase>,\n ): Promise<Query<TBase>> {\n if (limits?.offset) {\n if (limits.offset instanceof this.model)\n query = query.startAfter(\n await this.collection(this.buildCollectionPathForFind(filters))\n .doc(limits.offset[limits.offset.identifierFields().shift() as string])\n .get(),\n )\n else if (isNumber(limits.offset) || isString(limits.offset)) query = query.startAt(limits.offset)\n }\n if (limits?.limit) query = query.limit(limits.limit)\n\n return query\n }\n\n calculateCount(data: TBase[], limits: RepositoryLimitOptions<TBase>): number {\n if (data.length <= 0) return 0\n if (data.length < limits?.limit) return data.length\n\n return Infinity\n }\n }\n}\n","import { DocumentReference } from '@firebase/firestore-types'\n\nimport { CreateRepository, BaseModelWithIdentifier } from '../../../../domain'\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\nimport { isEmpty, MixinCtor } from '../../../../utils'\n\nexport const withCreateFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\n) => {\n return class CreateFirestore extends MixinBase implements CreateRepository<TBase> {\n async create(data: Partial<TBase>): Promise<TBase> {\n const docRef = await this.save(this.model.toInstance(data))\n const doc = await docRef.get()\n\n return doc.data()\n }\n\n async save(data: TBase): Promise<DocumentReference<TBase>> {\n const id = data[data.identifierFields().shift()]?.toString()\n const collectionPath = this.buildCollectionPathForAdd(data)\n\n if (isEmpty(id)) return this.collection(collectionPath).add(data)\n\n const docRef = this.collection(collectionPath).doc(id)\n await docRef.set(data)\n\n return docRef\n }\n\n buildCollectionPathForAdd(identifiers: Partial<TBase>): string {\n return this.isSubCollection(this)\n ? `${this.parentRepository.collectionName}/${identifiers[this.parentIdField]}/${this.collectionName}`\n : this.collectionName\n }\n }\n}\n","import firebase from 'firebase'\n\nimport {\n BaseModelWithIdentifier,\n NonFunctionPropertyNames,\n RepositoryUpdateParams,\n UpdateOptionActions,\n UpdateOptions,\n UpdateRepository,\n} from '../../../../domain'\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\nimport { isNil, MixinCtor, PropType } from '../../../../utils'\n\nexport const withUpdateFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\n) => {\n const getValueFromParams = (\n params: RepositoryUpdateParams<TBase>,\n field: NonFunctionPropertyNames<TBase>,\n ): PropType<TBase, NonFunctionPropertyNames<TBase>> =>\n (isNil(params[field as string]?.value) ? params[field as string] : params[field as string].value) || null\n const getValueByAction = (options: UpdateOptions<TBase>): firebase.firestore.FieldValue | unknown => {\n const fieldValues = firebase.firestore.FieldValue\n\n if (isNil(options.action)) return options\n if (options.action === UpdateOptionActions.REMOVE_FIELD) return fieldValues.delete()\n if (Array.isArray(options.value)) {\n if (options.action === UpdateOptionActions.MERGE) return fieldValues.arrayUnion(...options.value)\n if (options.action === UpdateOptionActions.REMOVE) return fieldValues.arrayRemove(...options.value)\n }\n\n return options.value\n }\n\n return class UpdateFirestore extends MixinBase implements UpdateRepository<TBase> {\n async update(data: RepositoryUpdateParams<TBase>): Promise<TBase> {\n const model = new this.model()\n const keyField = model.identifierFields().shift()\n const docRef = this.collection(this.buildCollectionPathForUpdate(data)).doc(\n getValueFromParams(data, keyField).toString(),\n )\n\n await docRef.set(this.paramsToPlain(data), { merge: true })\n\n const doc = await docRef.get()\n\n return doc.data()\n }\n\n buildCollectionPathForUpdate(identifiers: RepositoryUpdateParams<TBase>): string {\n return this.isSubCollection(this)\n ? `${this.parentRepository.collectionName}/${getValueFromParams(identifiers, this.parentIdField)}/${\n this.collectionName\n }`\n : this.collectionName\n }\n\n paramsToPlain(params: RepositoryUpdateParams<TBase>): Partial<TBase> {\n const model = this.model\n\n if (params instanceof model) return params\n\n return Object.keys(params).reduce(\n (data, currentKey) => ({ ...data, [currentKey]: getValueByAction(params[currentKey]) }),\n {},\n )\n }\n }\n}\n","import { BaseModelWithIdentifier, NonFunctionProperties, DeleteRepository } from '../../../../domain'\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\nimport { MixinCtor } from '../../../../utils'\n\nexport const withDeleteFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\n) => {\n return class DeleteFirestore extends MixinBase implements DeleteRepository<TBase> {\n async delete(identifiers: NonFunctionProperties<TBase>): Promise<void> {\n await this.collection(this.buildCollectionPathForRemove(identifiers))\n .doc(Object.values(identifiers).shift().toString())\n .delete()\n }\n\n buildCollectionPathForRemove(identifiers: NonFunctionProperties<TBase>): string {\n return this.isSubCollection(this)\n ? `${this.parentRepository.collectionName}/${identifiers[this.parentIdField]}/${this.collectionName}`\n : this.collectionName\n }\n }\n}\n","import { CollectionReference, DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\n\nimport { BaseModelWithIdentifier, NonFunctionPropertyNames } from '../../../../domain'\nimport { FirestoreRepository, FirestoreSubRepository } from '../types'\nimport { MixinCtor } from '../../../../utils'\n\nexport const withSubCollection = <\n TBase extends BaseModelWithIdentifier<TBase>,\n TBaseParent extends BaseModelWithIdentifier<TBaseParent>,\n TMixinBase extends MixinCtor,\n>(\n MixinBase: MixinCtor<FirestoreRepository<TBase>> & TMixinBase,\n ParentModel: new () => TBaseParent,\n) => {\n return class SubCollectionMix\n extends MixinBase\n implements FirestoreSubRepository<TBase, InstanceType<typeof ParentModel>>\n {\n readonly parentRepository: FirestoreRepository<InstanceType<typeof ParentModel>>\n parentIdField: NonFunctionPropertyNames<TBase>\n\n constructor(...args: Array<any>) {\n super(args)\n }\n\n collection(path?: string): CollectionReference<TBase> {\n return super.collection(path)\n }\n }\n}\n","import { BaseModelWithIdentifier, CrudRepository } from '../../../../domain'\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\nimport { MixinCtor } from '../../../../utils'\n\nimport { withCreateFirestore } from './with-create-firestore.mixin'\nimport { withDeleteFirestore } from './with-delete-firestore.mixin'\nimport { withFindFirestore } from './with-find-firestore.mixin'\nimport { withGetFirestore } from './with-get-firestore.mixin'\nimport { withUpdateFirestore } from './with-update-firestore.mixin'\n\nexport const withCrudFirestore = <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor>(\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\n) => {\n return class CrudFirestore\n extends withUpdateFirestore(\n withGetFirestore(withFindFirestore(withDeleteFirestore(withCreateFirestore(MixinBase)))),\n )\n implements CrudRepository<TBase> {}\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Subscription, SubscriptionRepository } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class SubscriptionFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<Subscription>(Base)))\n implements SubscriptionRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'subscription'\n this.model = Subscription\n }\n}\n","import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../../../domain/general'\n\nexport class UserSearch extends BaseModel<UserSearch> implements IdentifierFields<UserSearch> {\n id: string\n cpf?: string\n email?: string\n createdAt: Date\n copiedAt: Date\n\n identifierFields(): NonFunctionPropertyNames<UserSearch>[] {\n return ['id']\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { CrudRepository } from '../../../../../domain'\nimport { UserSearch } from '../../models/user-search'\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class UserSearchFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<UserSearch>(Base)))\n implements CrudRepository<UserSearch>\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'userSearch'\n this.model = UserSearch\n }\n}\n","import { DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { BeautyProfile, User, UserRepository, Where } from '../../../../../domain'\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nimport { UserSearchFirestoreRepository } from './user-search-firestore.repository'\n\nexport class UserFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<User>(Base)))\n implements UserRepository\n{\n constructor(\n readonly firestore: FirebaseFirestore,\n private readonly userSearchFirestoreRepository = new UserSearchFirestoreRepository(firestore),\n ) {\n super()\n this.collectionName = 'users'\n this.model = User\n }\n\n async get(identifiers: Partial<User>): Promise<User> {\n const user = await super.get({ id: identifiers.id })\n\n user.beautyProfile = await this.getBeautyProfile(user.id)\n user.isSubscriber = await this.checkIfIsSubscriber(user.id)\n\n return user\n }\n\n async checkIfExistsByField(field: string, value: string): Promise<boolean> {\n const result = await this.userSearchFirestoreRepository.find([{ [field]: { operator: Where.EQUALS, value } }])\n\n return result.count > 0\n }\n\n buildModelInstance(): {\n toFirestore: (data: User) => DocumentData\n fromFirestore: (snap: QueryDocumentSnapshot<User>) => User\n } {\n const { fromFirestore, toFirestore } = super.buildModelInstance()\n\n return {\n toFirestore: (data: User): DocumentData => {\n const plain = toFirestore(data)\n\n delete plain.isSubscriber\n\n return plain\n },\n fromFirestore,\n }\n }\n\n private async getBeautyProfile(userId: string): Promise<BeautyProfile> {\n const beautyProfile = await this.collection()\n .doc(userId)\n .collection('CX')\n .withConverter(this.buildBeautyProfileModelInstance())\n .doc('beautyProfile')\n .get()\n\n return beautyProfile.data()\n }\n\n private async checkIfIsSubscriber(userId: string): Promise<boolean> {\n const docs = await this.firestore\n .collection('subscription')\n .where('user.id', '==', userId)\n .where('status', '==', 'active')\n .get()\n\n return !!docs && !!docs.size\n }\n\n private buildBeautyProfileModelInstance(): {\n toFirestore: (data: BeautyProfile) => DocumentData\n fromFirestore: (snap: QueryDocumentSnapshot<BeautyProfile>) => BeautyProfile\n } {\n return {\n toFirestore: (data: BeautyProfile): DocumentData => data.toPlain(),\n fromFirestore: (snap: QueryDocumentSnapshot<BeautyProfile>): BeautyProfile =>\n BeautyProfile.toInstance(snap.data()),\n }\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Edition, Subscription, EditionRepository } from '../../../../../domain'\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\n\nimport { SubscriptionFirestoreRepository } from './subscription-firestore.repository'\n\nexport class SubscriptionEditionFirestoreRepository\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<Edition>(Base))), Subscription)\n implements EditionRepository\n{\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: SubscriptionFirestoreRepository) {\n super()\n this.collectionName = 'editions'\n this.parentIdField = 'subscriptionId'\n this.model = Edition\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { BeautyProfile, BeautyProfileRepository, User } from '../../../../../domain'\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\n\nimport { UserFirestoreRepository } from './user-firestore.repository'\n\nexport class UserBeautyProfileFirestoreRepository\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<BeautyProfile>(Base))), User)\n implements BeautyProfileRepository\n{\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: UserFirestoreRepository) {\n super()\n this.collectionName = 'CX'\n this.parentIdField = 'userId'\n this.model = BeautyProfile\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { User, UserAddress, UserAddressRepository } from '../../../../../domain'\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\n\nimport { UserFirestoreRepository } from './user-firestore.repository'\n\nexport class UserAddressFirestoreRepository\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<UserAddress>(Base))), User)\n implements UserAddressRepository\n{\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: UserFirestoreRepository) {\n super()\n this.collectionName = 'address'\n this.parentIdField = 'userId'\n this.model = UserAddress\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { User, UserPaymentMethod, UserPaymentMethodRepository } from '../../../../../domain'\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\n\nimport { UserFirestoreRepository } from './user-firestore.repository'\n\nexport class UserPaymentMethodFirestoreRepository\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<UserPaymentMethod>(Base))), User)\n implements UserPaymentMethodRepository\n{\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: UserFirestoreRepository) {\n super()\n this.collectionName = 'payment_method'\n this.parentIdField = 'userId'\n this.model = UserPaymentMethod\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { SubscriptionPayment, Subscription, SubscriptionPaymentRepository } from '../../../../../domain'\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\n\nimport { SubscriptionFirestoreRepository } from './subscription-firestore.repository'\n\nexport class SubscriptionPaymentFirestoreRepository\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<SubscriptionPayment>(Base))), Subscription)\n implements SubscriptionPaymentRepository\n{\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: SubscriptionFirestoreRepository) {\n super()\n this.collectionName = 'payments'\n this.parentIdField = 'subscriptionId'\n this.model = SubscriptionPayment\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Lead, LeadRepository } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class LeadFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<Lead>(Base)))\n implements LeadRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'leads'\n this.model = Lead\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Category, CategoryRepository, Product, Shops } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\nimport { DuplicatedResultsError, NotFoundError, RequiredArgumentError } from '../../../../../errors'\n\nexport class CategoryFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<Category>(Base)))\n implements CategoryRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'categories'\n this.model = Category\n }\n\n getCategoryBySlug(slug: string, shop: Shops): Promise<Category> {\n return this.collection(this.collectionName)\n .where('slug', '==', slug)\n .where('shop', '==', shop)\n .where('published', '==', true)\n .get()\n .then((snap) => {\n if (snap.size > 1) throw new DuplicatedResultsError('Query returned duplicated values')\n\n if (snap.empty) throw new NotFoundError(`Document with slug ${slug} not found`)\n\n return snap.docs[0].data()\n })\n .catch((error) => error)\n }\n\n async getCategoriesForHome(categoryIds: string[], limit = 4): Promise<{ category: Category; products: Product[] }[]> {\n const categorySnap = await this.collection(this.collectionName)\n .where('id', 'in', categoryIds)\n .where('published', '==', true)\n .get()\n\n if (categorySnap.empty) throw new NotFoundError('Categories not found')\n\n const categories = categorySnap.docs.map((doc) => doc.data())\n const homeSections = []\n\n for (const category of categories) {\n const publishedField = category.shop === Shops.GLAMSHOP ? 'publishedGlam' : 'published'\n const productSnap = await this.collection('products')\n .where('categories', 'array-contains', category.id)\n .where(publishedField, '==', true)\n .where('stock.quantity', '>', 1)\n .limit(limit)\n .get()\n\n const products = productSnap.docs.map((doc) => doc.data())\n\n homeSections.push({ category, products })\n }\n\n return homeSections\n }\n\n async mountCategory(category: Category): Promise<Product[]> {\n if (!category.products) throw new RequiredArgumentError(['Category products is empty'])\n\n const chunks = category.products.reduce((resultArray, item, index) => {\n const chunkIndex = Math.floor(index / 10)\n\n if (!resultArray[chunkIndex]) resultArray[chunkIndex] = []\n\n resultArray[chunkIndex].push(item)\n\n return resultArray\n }, [])\n\n const products = []\n const publishedField = category.shop === Shops.GLAMSHOP ? 'publishedGlam' : 'published'\n\n await Promise.all(\n chunks.map(async (productIds) => {\n const productSnap = await this.collection('products')\n .where(publishedField, '==', true)\n .where('id', 'in', productIds)\n .get()\n\n if (productSnap.empty) return\n\n products.push(...productSnap.docs.map((doc) => doc.data()))\n }),\n )\n\n return products\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Product, ProductRepository, Shops, Where } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class ProductFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<Product>(Base)))\n implements ProductRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'products'\n this.model = Product\n }\n\n async getBySlug(slug: string, shop: Shops): Promise<Product> {\n const result = await this.find([\n { slug: { operator: Where.EQUALS, value: slug } },\n { shopAvailability: { operator: Where.IN, value: [shop] } },\n ])\n\n return result?.data?.shift()\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Product, Variant, VariantRepository } from '../../../../../domain'\nimport { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins'\n\nimport { ProductFirestoreRepository } from './product-firestore.repository'\n\nexport class ProductVariantFirestoreRepository\n extends withSubCollection(withCrudFirestore(withHelpers(withFirestore<Variant>(Base))), Product)\n implements VariantRepository\n{\n constructor(readonly firestore: FirebaseFirestore, readonly parentRepository: ProductFirestoreRepository) {\n super()\n this.collectionName = 'variants'\n this.parentIdField = 'productId'\n this.model = Variant\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Product, SubscriptionProductRepository } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class SubscriptionProductFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<Product>(Base)))\n implements SubscriptionProductRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'subscriptionProducts'\n this.model = Product\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Checkout, CheckoutRepository } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class CheckoutFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<Checkout>(Base)))\n implements CheckoutRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'checkouts'\n this.model = Checkout\n }\n}\n","import { DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\nimport firebase from 'firebase'\n\nimport { Base } from '../../../../../utils'\nimport { CheckoutTypes, ClubCoupon, Coupon, CouponRepository, StoreCoupon } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class CouponFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<Coupon>(Base)))\n implements CouponRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'coupons'\n this.model = Coupon\n }\n\n buildModelInstance(): {\n toFirestore: (data: Coupon) => DocumentData\n fromFirestore: (snap: QueryDocumentSnapshot<Coupon>) => Coupon\n } {\n return {\n toFirestore: (data: Coupon): DocumentData => {\n const plain = data?.toPlain ? data.toPlain() : data\n\n if (!!plain.categories) plain.categories = plain?.categories?.map((category) => category.id)\n\n return plain\n },\n fromFirestore: (snap: QueryDocumentSnapshot): Coupon => {\n const data = snap.data()\n\n Object.keys(data).forEach((key) => {\n if (data[key] instanceof firebase.firestore.Timestamp) {\n data[key] = data[key].toDate()\n }\n })\n\n data.categories = data?.categories?.map((category) => ({ id: category }))\n\n if (data.checkout_type === CheckoutTypes.SUBSCRIPTION) return ClubCoupon.toInstance({ id: snap.id, ...data })\n if (data.checkout_type === CheckoutTypes.ECOMMERCE) return StoreCoupon.toInstance({ id: snap.id, ...data })\n\n return this.model.toInstance({ id: snap.id, ...data })\n },\n }\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Order, OrderRepository } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class OrderFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<Order>(Base)))\n implements OrderRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'orders'\n this.model = Order\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Payment, PaymentRepository } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class PaymentFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<Payment>(Base)))\n implements PaymentRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'payments'\n this.model = Payment\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { CheckoutSubscription, CheckoutSubscriptionRepository } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class CheckoutSubscriptionFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<CheckoutSubscription>(Base)))\n implements CheckoutSubscriptionRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'checkoutsSubscription'\n this.model = CheckoutSubscription\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { SubscriptionPlan, SubscriptionPlanRepository } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class SubscriptionPlanFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<SubscriptionPlan>(Base)))\n implements SubscriptionPlanRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'subscriptionPlans'\n this.model = SubscriptionPlan\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Buy2Win, Buy2WinRepository } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class Buy2WinFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<Buy2Win>(Base)))\n implements Buy2WinRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'buy2win'\n this.model = Buy2Win\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { LegacyOrderRepository } from '../../../../../domain'\n\nimport { OrderFirestoreRepository } from './order-firestore.repository'\n\nexport class LegacyOrderFirestoreRepository extends OrderFirestoreRepository implements LegacyOrderRepository {\n constructor(readonly firestore: FirebaseFirestore) {\n super(firestore)\n this.collectionName = 'legacyOrders'\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\n\nimport { Base } from '../../../../../utils'\nimport { Home, HomeRepository } from '../../../../../domain'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class HomeFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<Home>(Base)))\n implements HomeRepository\n{\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'dms'\n this.model = Home\n }\n}\n","import { FirebaseFirestore } from '@firebase/firestore-types'\nimport { ShopMenu, ShopMenuRepository } from '../../../../../domain'\n\nimport { Base } from '../../../../../utils'\n\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\n\nexport class ShopMenuFirestoreRepository\n extends withCrudFirestore(withHelpers(withFirestore<ShopMenu>(Base)))\n implements ShopMenuRepository {\n constructor(readonly firestore: FirebaseFirestore) {\n super()\n this.collectionName = 'shopMenus'\n this.model = ShopMenu\n }\n}\n","import firebase from 'firebase/app'\n\nimport { AuthenticationService, BasicUserData, LoginAndPasswordParams } from '../../../domain'\n\nimport { FirebaseUserWithId } from './types/firebase-user-with-id.type'\n\nexport class AuthenticationFirebaseAuthService implements AuthenticationService {\n constructor(private readonly firebaseAuth: firebase.auth.Auth) {}\n\n async signInWithEmailAndPassword(data: LoginAndPasswordParams): Promise<BasicUserData> {\n const credentials = await this.firebaseAuth.signInWithEmailAndPassword(data.email, data.password)\n const user = credentials.user\n\n return {\n id: user.uid,\n displayName: user.displayName,\n email: user.email,\n phone: user.phoneNumber,\n isAnonymous: false,\n }\n }\n\n async signInWithGoogle(): Promise<BasicUserData> {\n const credentials = await this.firebaseAuth.signInWithPopup(new firebase.auth.GoogleAuthProvider())\n const user = credentials.user\n\n return {\n id: user.uid,\n displayName: user.displayName,\n email: user.email,\n phone: user.phoneNumber,\n isAnonymous: false,\n }\n }\n\n async signOut(): Promise<void> {\n this.firebaseAuth.signOut()\n }\n\n async signInAnonymously(): Promise<FirebaseUserWithId> {\n const auth = await this.firebaseAuth.signInAnonymously()\n const user = auth.user as FirebaseUserWithId\n\n user.id = auth.user.uid\n\n return user\n }\n}\n","import firebase from 'firebase/app'\n\nimport { RegisterParams, RegisterService, UserAlreadyRegisteredError, WeakPasswordError } from '../../../domain'\n\nimport { FirebaseUserWithId } from './types/firebase-user-with-id.type'\n\nexport class RegisterFirebaseAuthService implements RegisterService {\n constructor(private readonly firebaseAuth: firebase.auth.Auth) {}\n\n async register(params: RegisterParams): Promise<FirebaseUserWithId> {\n try {\n const auth = await this.firebaseAuth.createUserWithEmailAndPassword(params.email, params.password)\n const user = auth.user as FirebaseUserWithId\n\n user.sendEmailVerification()\n user.id = auth.user.uid\n\n return user\n } catch (error) {\n if (error.code === 'auth/email-already-in-use') throw new UserAlreadyRegisteredError('Email already registered')\n if (error.code === 'auth/weak-password') throw new WeakPasswordError()\n\n throw error\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["plainToClass","classToPlain","Where","UpdateOptionActions","AccessoryImportances","Area","BeardProblems","BeardSizes","BeautyProductImportances","BodyProblems","BodyShapes","BodyTattoos","FaceSkinOilinesses","FaceSkinProblems","FaceSkinTones","FamilyIncomes","FragranceImportances","HairColors","HairProblems","HairStrands","HairTypes","OfficePosition","ProductSpents","UserType","BillingStatus","EditionStatus","PaymentType","Status","Expose","Type","DiscountType","Exclusivities","isNil","SignInMethods","Shops","CheckoutTypes","OrderStatus","FilterType","QuestionsFilters","Answers.AccessoryImportances","Answers.BeardProblems","Answers.BeardSizes","Answers.BeautyProductImportances","Answers.BodyProblems","Answers.BodyShapes","Answers.BodyTattoos","Answers.FaceSkinOilinesses","Answers.FaceSkinProblems","Answers.FaceSkinTones","Answers.FamilyIncomes","Answers.FragranceImportances","Answers.HairColors","Answers.HairProblems","Answers.HairStrands","Answers.HairTypes","Answers.ProductSpents","firebase","isObject","isNumber","isString","isEmpty"],"mappings":"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"}
|