@infrab4a/connect 4.0.1-beta.3 → 4.0.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/domain/catalog/helpers/index.d.ts +1 -0
- package/domain/catalog/helpers/round-product-price.helper.d.ts +4 -0
- package/domain/catalog/index.d.ts +3 -2
- package/domain/catalog/models/category-base.d.ts +30 -0
- package/domain/catalog/models/category-collection-children.d.ts +13 -0
- package/domain/catalog/models/category-filter.d.ts +13 -0
- package/domain/catalog/models/category-for-product.d.ts +5 -0
- package/domain/catalog/models/category.d.ts +7 -24
- package/domain/catalog/models/enums/index.d.ts +2 -2
- package/domain/catalog/models/enums/product-genders.enum.d.ts +5 -5
- package/domain/catalog/models/enums/shops.enum.d.ts +6 -6
- package/domain/catalog/models/filter-option.d.ts +9 -0
- package/domain/catalog/models/filter.d.ts +12 -0
- package/domain/catalog/models/index.d.ts +11 -6
- package/domain/catalog/models/kit-product.d.ts +12 -12
- package/domain/catalog/models/product-base.d.ts +40 -0
- package/domain/catalog/models/product-for-category.d.ts +7 -0
- package/domain/catalog/models/product-for-kit.d.ts +7 -0
- package/domain/catalog/models/product.d.ts +9 -39
- package/domain/catalog/models/types/category-condition.type.d.ts +4 -4
- package/domain/catalog/models/types/category-metadata.type.d.ts +4 -4
- package/domain/catalog/models/types/category-product.d.ts +4 -0
- package/domain/catalog/models/types/index.d.ts +11 -10
- package/domain/catalog/models/types/product-evaluation.type.d.ts +6 -0
- package/domain/catalog/models/types/product-gender.type.d.ts +1 -1
- package/domain/catalog/models/types/product-metadata.type.d.ts +4 -4
- package/domain/catalog/models/types/product-review.type.d.ts +17 -17
- package/domain/catalog/models/types/shop-description.type.d.ts +8 -7
- package/domain/catalog/models/types/shop-price.type.d.ts +6 -6
- package/domain/catalog/models/types/stock.type.d.ts +3 -3
- package/domain/catalog/models/types/variant-grade.type.d.ts +4 -4
- package/domain/catalog/models/variant.d.ts +17 -18
- package/domain/catalog/models/wishlist.d.ts +8 -0
- package/domain/catalog/repositories/category-collection-children.repository.d.ts +4 -0
- package/domain/catalog/repositories/category-filter.repository.d.ts +6 -0
- package/domain/catalog/repositories/category.repository.d.ts +18 -15
- package/domain/catalog/repositories/filter-option.repository.d.ts +4 -0
- package/domain/catalog/repositories/filter.repository.d.ts +4 -0
- package/domain/catalog/repositories/index.d.ts +9 -4
- package/domain/catalog/repositories/product.repository.d.ts +15 -12
- package/domain/catalog/repositories/subscription-product.repository.d.ts +4 -4
- package/domain/catalog/repositories/variant.repository.d.ts +4 -4
- package/domain/catalog/repositories/wishlist.repository.d.ts +6 -0
- package/domain/generic/index.d.ts +2 -2
- package/domain/generic/model/base.model.d.ts +14 -10
- package/domain/generic/model/identifier-fields.d.ts +4 -4
- package/domain/generic/model/index.d.ts +3 -3
- package/domain/generic/model/types/base-model-builder.type.d.ts +17 -15
- package/domain/generic/model/types/identifier-model.type.d.ts +8 -7
- package/domain/generic/model/types/index.d.ts +5 -5
- package/domain/generic/model/types/model-base-structure.type.d.ts +12 -6
- package/domain/generic/model/types/non-function-properties.type.d.ts +12 -12
- package/domain/generic/model/types/non-function-property-name.type.d.ts +13 -4
- package/domain/generic/repository/create.repository.d.ts +8 -8
- package/domain/generic/repository/crud.repository.d.ts +19 -19
- package/domain/generic/repository/delete.repository.d.ts +7 -7
- package/domain/generic/repository/enums/index.d.ts +2 -2
- package/domain/generic/repository/enums/update-option-actions.enum.d.ts +7 -7
- package/domain/generic/repository/enums/where.enum.d.ts +14 -14
- package/domain/generic/repository/find.repository.d.ts +17 -11
- package/domain/generic/repository/get.repository.d.ts +5 -5
- package/domain/generic/repository/index.d.ts +9 -9
- package/domain/generic/repository/read.repository.d.ts +14 -14
- package/domain/generic/repository/types/index.d.ts +6 -6
- package/domain/generic/repository/types/repository-find-filters.type.d.ts +13 -13
- package/domain/generic/repository/types/repository-find-result.type.d.ts +14 -4
- package/domain/generic/repository/types/repository-limit-options.type.d.ts +4 -4
- package/domain/generic/repository/types/repository-order-by-list.type.d.ts +5 -5
- package/domain/generic/repository/types/repository-update-params.type.d.ts +11 -11
- package/domain/generic/repository/types/where-options.type.d.ts +2 -2
- package/domain/generic/repository/update.repository.d.ts +6 -6
- package/domain/index.d.ts +6 -6
- package/domain/location/index.d.ts +1 -1
- package/domain/location/models/address.d.ts +24 -22
- package/domain/location/models/index.d.ts +2 -2
- package/domain/location/models/types/index.d.ts +3 -3
- package/domain/location/models/types/location-bound.type.d.ts +6 -6
- package/domain/location/models/types/location-geometry.type.d.ts +7 -7
- package/domain/location/models/types/location-lat-lng.type.d.ts +4 -4
- package/domain/shop-settings/enums/filter-type.enum.d.ts +19 -19
- package/domain/shop-settings/enums/index.d.ts +2 -2
- package/domain/shop-settings/enums/questions-filters.enum.d.ts +19 -19
- package/domain/shop-settings/helpers/beauty-questions.helper.d.ts +9 -9
- package/domain/shop-settings/helpers/index.d.ts +1 -1
- package/domain/shop-settings/index.d.ts +4 -4
- package/domain/shop-settings/models/home.d.ts +18 -18
- package/domain/shop-settings/models/index.d.ts +4 -4
- package/domain/shop-settings/models/shop-menu.d.ts +7 -7
- package/domain/shop-settings/models/shop-settings.d.ts +9 -9
- package/domain/shop-settings/models/types/banner.type.d.ts +6 -6
- package/domain/shop-settings/models/types/benefit.type.d.ts +5 -5
- package/domain/shop-settings/models/types/home-data.type.d.ts +15 -15
- package/domain/shop-settings/models/types/index.d.ts +10 -10
- package/domain/shop-settings/models/types/menu-nav.type.d.ts +8 -8
- package/domain/shop-settings/models/types/shop-banner.type.d.ts +12 -12
- package/domain/shop-settings/models/types/shop-brands.type.d.ts +10 -10
- package/domain/shop-settings/models/types/shop-carousel.type.d.ts +5 -5
- package/domain/shop-settings/models/types/shop-collection.type.d.ts +9 -9
- package/domain/shop-settings/models/types/shop-section.type.d.ts +9 -9
- package/domain/shop-settings/models/types/sub-menu.type.d.ts +8 -8
- package/domain/shop-settings/repositories/home.repository.d.ts +4 -4
- package/domain/shop-settings/repositories/index.d.ts +3 -3
- package/domain/shop-settings/repositories/shop-menu.repository.d.ts +4 -4
- package/domain/shop-settings/repositories/shop-settings.repository.d.ts +4 -4
- package/domain/shopping/index.d.ts +2 -2
- package/domain/shopping/models/buy-2-win.d.ts +18 -16
- package/domain/shopping/models/campaign-dashboard.d.ts +15 -0
- package/domain/shopping/models/campaign-hashtag.d.ts +18 -0
- package/domain/shopping/models/checkout.d.ts +26 -27
- package/domain/shopping/models/coupons/coupon.d.ts +60 -32
- package/domain/shopping/models/coupons/enums/coupon-club-mens.enum.d.ts +5 -5
- package/domain/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +4 -4
- package/domain/shopping/models/coupons/enums/coupon-types.enum.d.ts +4 -4
- package/domain/shopping/models/coupons/enums/exclusivities.enum.d.ts +8 -8
- package/domain/shopping/models/coupons/enums/index.d.ts +3 -3
- package/domain/shopping/models/coupons/index.d.ts +2 -2
- package/domain/shopping/models/enums/checkout-types.enum.d.ts +5 -5
- package/domain/shopping/models/enums/index.d.ts +2 -2
- package/domain/shopping/models/enums/order-status.enum.d.ts +10 -10
- package/domain/shopping/models/index.d.ts +12 -11
- package/domain/shopping/models/line-item.d.ts +8 -8
- package/domain/shopping/models/order.d.ts +10 -9
- package/domain/shopping/models/payment.d.ts +67 -67
- package/domain/shopping/models/shipping-method.d.ts +17 -16
- package/domain/shopping/models/subscription/checkout.d.ts +20 -21
- package/domain/shopping/models/subscription/index.d.ts +2 -2
- package/domain/shopping/models/subscription/plan.d.ts +10 -10
- package/domain/shopping/models/types/index.d.ts +7 -7
- package/domain/shopping/models/types/payment-address.type.d.ts +12 -12
- package/domain/shopping/models/types/payment-billing.type.d.ts +7 -7
- package/domain/shopping/models/types/payment-card.type.d.ts +14 -14
- package/domain/shopping/models/types/payment-customer.type.d.ts +18 -18
- package/domain/shopping/models/types/payment-document.type.d.ts +6 -6
- package/domain/shopping/models/types/payment-item.type.d.ts +11 -11
- package/domain/shopping/models/types/payment-shipping.type.d.ts +10 -10
- package/domain/shopping/repositories/buy-2-win.repository.d.ts +4 -4
- package/domain/shopping/repositories/campaign-dashboard.repository.d.ts +4 -0
- package/domain/shopping/repositories/campaign-hashtag.repository.d.ts +4 -0
- package/domain/shopping/repositories/checkout.repository.d.ts +4 -4
- package/domain/shopping/repositories/coupon.repository.d.ts +4 -4
- package/domain/shopping/repositories/index.d.ts +9 -7
- package/domain/shopping/repositories/legacy-order.repository.d.ts +3 -3
- package/domain/shopping/repositories/order.repository.d.ts +4 -4
- package/domain/shopping/repositories/payment.repository.d.ts +4 -4
- package/domain/shopping/repositories/subscription/checkout.repository.d.ts +4 -4
- package/domain/shopping/repositories/subscription/index.d.ts +2 -2
- package/domain/shopping/repositories/subscription/plan.repository.d.ts +4 -4
- package/domain/users/errors/index.d.ts +3 -3
- package/domain/users/errors/unauthorized.error.d.ts +4 -5
- package/domain/users/errors/user-already-registered.error.d.ts +4 -5
- package/domain/users/errors/weak-password.error.d.ts +4 -5
- package/domain/users/index.d.ts +5 -5
- package/domain/users/models/beauty-profile.d.ts +11 -11
- package/domain/users/models/enums/accessory-importances.enum.d.ts +5 -5
- package/domain/users/models/enums/area.enum.d.ts +11 -11
- package/domain/users/models/enums/beard-problems.enum.d.ts +9 -9
- package/domain/users/models/enums/beard-sizes.enum.d.ts +7 -7
- package/domain/users/models/enums/beauty-product-importances.enum.d.ts +6 -6
- package/domain/users/models/enums/body-problems.enum.d.ts +11 -11
- package/domain/users/models/enums/body-shapes.enum.d.ts +7 -7
- package/domain/users/models/enums/body-tattoos.enum.d.ts +5 -5
- package/domain/users/models/enums/face-skin-oilinesses.enum.d.ts +7 -7
- package/domain/users/models/enums/face-skin-problems.enum.d.ts +10 -10
- package/domain/users/models/enums/face-skin-tones.enum.d.ts +8 -8
- package/domain/users/models/enums/family-incomes.enum.d.ts +8 -8
- package/domain/users/models/enums/fragrance-importances.enum.d.ts +5 -5
- package/domain/users/models/enums/hair-colors.enum.d.ts +10 -10
- package/domain/users/models/enums/hair-problems.enum.d.ts +10 -10
- package/domain/users/models/enums/hair-strands.enum.d.ts +8 -8
- package/domain/users/models/enums/hair-types.enum.d.ts +7 -7
- package/domain/users/models/enums/index.d.ts +20 -20
- package/domain/users/models/enums/office-position.enum.d.ts +6 -6
- package/domain/users/models/enums/product-spents.enum.d.ts +8 -8
- package/domain/users/models/enums/user-type.enum.d.ts +8 -8
- package/domain/users/models/index.d.ts +7 -7
- package/domain/users/models/lead.d.ts +8 -7
- package/domain/users/models/subscription/edition.d.ts +16 -16
- package/domain/users/models/subscription/enums/billing-status.enum.d.ts +3 -3
- package/domain/users/models/subscription/enums/edition-status.enum.d.ts +4 -4
- package/domain/users/models/subscription/enums/index.d.ts +4 -4
- package/domain/users/models/subscription/enums/payment-type.enum.d.ts +5 -5
- package/domain/users/models/subscription/enums/status.enum.d.ts +4 -4
- package/domain/users/models/subscription/index.d.ts +4 -4
- package/domain/users/models/subscription/payment.d.ts +13 -13
- package/domain/users/models/subscription/subscription.d.ts +28 -28
- package/domain/users/models/user-address.d.ts +6 -7
- package/domain/users/models/user-payment-method.d.ts +14 -14
- package/domain/users/models/user.d.ts +27 -28
- package/domain/users/repositories/beauty-profile.repository.d.ts +4 -4
- package/domain/users/repositories/edition.repository.d.ts +4 -4
- package/domain/users/repositories/index.d.ts +8 -8
- package/domain/users/repositories/lead.repository.d.ts +4 -4
- package/domain/users/repositories/subscription-payment.repository.d.ts +4 -4
- package/domain/users/repositories/subscription.repository.d.ts +4 -4
- package/domain/users/repositories/user-address.repository.d.ts +4 -4
- package/domain/users/repositories/user-payment-method.repository.d.ts +4 -4
- package/domain/users/repositories/user.repository.d.ts +6 -6
- package/domain/users/services/authentication.service.d.ts +12 -12
- package/domain/users/services/index.d.ts +3 -3
- package/domain/users/services/register.service.d.ts +7 -7
- package/domain/users/services/types/basic-user-data.type.d.ts +4 -4
- package/domain/users/services/types/index.d.ts +1 -1
- package/domain/users/use-cases/authentication.d.ts +21 -21
- package/domain/users/use-cases/index.d.ts +4 -4
- package/domain/users/use-cases/recovery-password.d.ts +6 -6
- package/domain/users/use-cases/register.d.ts +13 -13
- package/domain/users/use-cases/signout.d.ts +6 -6
- package/errors/duplicated-results.error.d.ts +4 -5
- package/errors/index.d.ts +4 -4
- package/errors/invalid-argument.error.d.ts +4 -5
- package/errors/not-found.error.d.ts +4 -5
- package/errors/required-argument.error.d.ts +6 -6
- package/esm2020/domain/catalog/helpers/index.mjs +2 -0
- package/esm2020/domain/catalog/helpers/round-product-price.helper.mjs +15 -0
- package/{esm2015/domain/catalog/index.js → esm2020/domain/catalog/index.mjs} +4 -3
- package/esm2020/domain/catalog/models/category-base.mjs +18 -0
- package/esm2020/domain/catalog/models/category-collection-children.mjs +13 -0
- package/esm2020/domain/catalog/models/category-filter.mjs +19 -0
- package/esm2020/domain/catalog/models/category-for-product.mjs +7 -0
- package/esm2020/domain/catalog/models/category.mjs +14 -0
- package/{esm2015/domain/catalog/models/enums/index.js → esm2020/domain/catalog/models/enums/index.mjs} +3 -3
- package/{esm2015/domain/catalog/models/enums/product-genders.enum.js → esm2020/domain/catalog/models/enums/product-genders.enum.mjs} +7 -7
- package/{esm2015/domain/catalog/models/enums/shops.enum.js → esm2020/domain/catalog/models/enums/shops.enum.mjs} +8 -8
- package/esm2020/domain/catalog/models/filter-option.mjs +7 -0
- package/esm2020/domain/catalog/models/filter.mjs +7 -0
- package/esm2020/domain/catalog/models/index.mjs +12 -0
- package/esm2020/domain/catalog/models/kit-product.mjs +18 -0
- package/esm2020/domain/catalog/models/product-base.mjs +25 -0
- package/esm2020/domain/catalog/models/product-for-category.mjs +14 -0
- package/esm2020/domain/catalog/models/product-for-kit.mjs +14 -0
- package/esm2020/domain/catalog/models/product.mjs +19 -0
- package/{esm2015/domain/catalog/models/types/category-condition.type.js → esm2020/domain/catalog/models/types/category-condition.type.mjs} +2 -2
- package/{esm2015/domain/catalog/models/types/category-metadata.type.js → esm2020/domain/catalog/models/types/category-metadata.type.mjs} +2 -2
- package/esm2020/domain/catalog/models/types/category-product.mjs +2 -0
- package/esm2020/domain/catalog/models/types/index.mjs +12 -0
- package/esm2020/domain/catalog/models/types/product-evaluation.type.mjs +2 -0
- package/{esm2015/domain/catalog/models/types/product-gender.type.js → esm2020/domain/catalog/models/types/product-gender.type.mjs} +2 -2
- package/{esm2015/domain/catalog/models/types/product-metadata.type.js → esm2020/domain/catalog/models/types/product-metadata.type.mjs} +2 -2
- package/esm2020/domain/catalog/models/types/product-review.type.mjs +2 -0
- package/{esm2015/domain/catalog/models/types/shop-description.type.js → esm2020/domain/catalog/models/types/shop-description.type.mjs} +2 -2
- package/{esm2015/domain/catalog/models/types/shop-price.type.js → esm2020/domain/catalog/models/types/shop-price.type.mjs} +2 -2
- package/{esm2015/domain/catalog/models/types/stock.type.js → esm2020/domain/catalog/models/types/stock.type.mjs} +2 -2
- package/{esm2015/domain/catalog/models/types/variant-grade.type.js → esm2020/domain/catalog/models/types/variant-grade.type.mjs} +2 -2
- package/esm2020/domain/catalog/models/variant.mjs +7 -0
- package/esm2020/domain/catalog/models/wishlist.mjs +7 -0
- package/esm2020/domain/catalog/repositories/category-collection-children.repository.mjs +2 -0
- package/esm2020/domain/catalog/repositories/category-filter.repository.mjs +2 -0
- package/esm2020/domain/catalog/repositories/category.repository.mjs +2 -0
- package/esm2020/domain/catalog/repositories/filter-option.repository.mjs +2 -0
- package/esm2020/domain/catalog/repositories/filter.repository.mjs +2 -0
- package/esm2020/domain/catalog/repositories/index.mjs +10 -0
- package/esm2020/domain/catalog/repositories/product.repository.mjs +2 -0
- package/{esm2015/domain/catalog/repositories/subscription-product.repository.js → esm2020/domain/catalog/repositories/subscription-product.repository.mjs} +2 -2
- package/{esm2015/domain/catalog/repositories/variant.repository.js → esm2020/domain/catalog/repositories/variant.repository.mjs} +2 -2
- package/esm2020/domain/catalog/repositories/wishlist.repository.mjs +2 -0
- package/{esm2015/domain/generic/index.js → esm2020/domain/generic/index.mjs} +3 -3
- package/esm2020/domain/generic/model/base.model.mjs +24 -0
- package/{esm2015/domain/generic/model/identifier-fields.js → esm2020/domain/generic/model/identifier-fields.mjs} +2 -2
- package/{esm2015/domain/generic/model/index.js → esm2020/domain/generic/model/index.mjs} +4 -4
- package/esm2020/domain/generic/model/types/base-model-builder.type.mjs +2 -0
- package/esm2020/domain/generic/model/types/identifier-model.type.mjs +2 -0
- package/{esm2015/domain/generic/model/types/index.js → esm2020/domain/generic/model/types/index.mjs} +6 -6
- package/esm2020/domain/generic/model/types/model-base-structure.type.mjs +2 -0
- package/esm2020/domain/generic/model/types/non-function-properties.type.mjs +2 -0
- package/esm2020/domain/generic/model/types/non-function-property-name.type.mjs +2 -0
- package/esm2020/domain/generic/repository/create.repository.mjs +2 -0
- package/esm2020/domain/generic/repository/crud.repository.mjs +2 -0
- package/esm2020/domain/generic/repository/delete.repository.mjs +2 -0
- package/{esm2015/domain/generic/repository/enums/index.js → esm2020/domain/generic/repository/enums/index.mjs} +3 -3
- package/{esm2015/domain/generic/repository/enums/update-option-actions.enum.js → esm2020/domain/generic/repository/enums/update-option-actions.enum.mjs} +9 -9
- package/{esm2015/domain/generic/repository/enums/where.enum.js → esm2020/domain/generic/repository/enums/where.enum.mjs} +16 -16
- package/esm2020/domain/generic/repository/find.repository.mjs +2 -0
- package/esm2020/domain/generic/repository/get.repository.mjs +2 -0
- package/{esm2015/domain/generic/repository/index.js → esm2020/domain/generic/repository/index.mjs} +10 -10
- package/esm2020/domain/generic/repository/read.repository.mjs +2 -0
- package/{esm2015/domain/generic/repository/types/index.js → esm2020/domain/generic/repository/types/index.mjs} +7 -7
- package/esm2020/domain/generic/repository/types/repository-find-filters.type.mjs +2 -0
- package/esm2020/domain/generic/repository/types/repository-find-result.type.mjs +2 -0
- package/{esm2015/domain/generic/repository/types/repository-limit-options.type.js → esm2020/domain/generic/repository/types/repository-limit-options.type.mjs} +2 -2
- package/{esm2015/domain/generic/repository/types/repository-order-by-list.type.js → esm2020/domain/generic/repository/types/repository-order-by-list.type.mjs} +2 -2
- package/esm2020/domain/generic/repository/types/repository-update-params.type.mjs +2 -0
- package/{esm2015/domain/generic/repository/types/where-options.type.js → esm2020/domain/generic/repository/types/where-options.type.mjs} +2 -2
- package/esm2020/domain/generic/repository/update.repository.mjs +2 -0
- package/{esm2015/domain/index.js → esm2020/domain/index.mjs} +7 -7
- package/{esm2015/domain/location/index.js → esm2020/domain/location/index.mjs} +2 -2
- package/esm2020/domain/location/models/address.mjs +7 -0
- package/{esm2015/domain/location/models/index.js → esm2020/domain/location/models/index.mjs} +3 -3
- package/{esm2015/domain/location/models/types/index.js → esm2020/domain/location/models/types/index.mjs} +4 -4
- package/{esm2015/domain/location/models/types/location-bound.type.js → esm2020/domain/location/models/types/location-bound.type.mjs} +2 -2
- package/{esm2015/domain/location/models/types/location-geometry.type.js → esm2020/domain/location/models/types/location-geometry.type.mjs} +2 -2
- package/{esm2015/domain/location/models/types/location-lat-lng.type.js → esm2020/domain/location/models/types/location-lat-lng.type.mjs} +2 -2
- package/{esm2015/domain/shop-settings/enums/filter-type.enum.js → esm2020/domain/shop-settings/enums/filter-type.enum.mjs} +21 -21
- package/{esm2015/domain/shop-settings/enums/index.js → esm2020/domain/shop-settings/enums/index.mjs} +3 -3
- package/{esm2015/domain/shop-settings/enums/questions-filters.enum.js → esm2020/domain/shop-settings/enums/questions-filters.enum.mjs} +21 -21
- package/{esm2015/domain/shop-settings/helpers/beauty-questions.helper.js → esm2020/domain/shop-settings/helpers/beauty-questions.helper.mjs} +47 -46
- package/{esm2015/domain/shop-settings/helpers/index.js → esm2020/domain/shop-settings/helpers/index.mjs} +2 -2
- package/{esm2015/domain/shop-settings/index.js → esm2020/domain/shop-settings/index.mjs} +5 -5
- package/esm2020/domain/shop-settings/models/home.mjs +7 -0
- package/{esm2015/domain/shop-settings/models/index.js → esm2020/domain/shop-settings/models/index.mjs} +5 -5
- package/{esm2015/domain/shop-settings/models/shop-menu.js → esm2020/domain/shop-settings/models/shop-menu.mjs} +7 -7
- package/{esm2015/domain/shop-settings/models/shop-settings.js → esm2020/domain/shop-settings/models/shop-settings.mjs} +7 -7
- package/{esm2015/domain/shop-settings/models/types/banner.type.js → esm2020/domain/shop-settings/models/types/banner.type.mjs} +2 -2
- package/{esm2015/domain/shop-settings/models/types/benefit.type.js → esm2020/domain/shop-settings/models/types/benefit.type.mjs} +2 -2
- package/esm2020/domain/shop-settings/models/types/home-data.type.mjs +2 -0
- package/{esm2015/domain/shop-settings/models/types/index.js → esm2020/domain/shop-settings/models/types/index.mjs} +11 -11
- package/{esm2015/domain/shop-settings/models/types/menu-nav.type.js → esm2020/domain/shop-settings/models/types/menu-nav.type.mjs} +2 -2
- package/{esm2015/domain/shop-settings/models/types/shop-banner.type.js → esm2020/domain/shop-settings/models/types/shop-banner.type.mjs} +2 -2
- package/{esm2015/domain/shop-settings/models/types/shop-brands.type.js → esm2020/domain/shop-settings/models/types/shop-brands.type.mjs} +2 -2
- package/{esm2015/domain/shop-settings/models/types/shop-carousel.type.js → esm2020/domain/shop-settings/models/types/shop-carousel.type.mjs} +2 -2
- package/{esm2015/domain/shop-settings/models/types/shop-collection.type.js → esm2020/domain/shop-settings/models/types/shop-collection.type.mjs} +2 -2
- package/{esm2015/domain/shop-settings/models/types/shop-section.type.js → esm2020/domain/shop-settings/models/types/shop-section.type.mjs} +2 -2
- package/{esm2015/domain/shop-settings/models/types/sub-menu.type.js → esm2020/domain/shop-settings/models/types/sub-menu.type.mjs} +2 -2
- package/{esm2015/domain/shop-settings/repositories/home.repository.js → esm2020/domain/shop-settings/repositories/home.repository.mjs} +2 -2
- package/{esm2015/domain/shop-settings/repositories/index.js → esm2020/domain/shop-settings/repositories/index.mjs} +4 -4
- package/{esm2015/domain/shop-settings/repositories/shop-menu.repository.js → esm2020/domain/shop-settings/repositories/shop-menu.repository.mjs} +2 -2
- package/{esm2015/domain/shop-settings/repositories/shop-settings.repository.js → esm2020/domain/shop-settings/repositories/shop-settings.repository.mjs} +2 -2
- package/{esm2015/domain/shopping/index.js → esm2020/domain/shopping/index.mjs} +3 -3
- package/esm2020/domain/shopping/models/buy-2-win.mjs +14 -0
- package/esm2020/domain/shopping/models/campaign-dashboard.mjs +7 -0
- package/esm2020/domain/shopping/models/campaign-hashtag.mjs +7 -0
- package/esm2020/domain/shopping/models/checkout.mjs +37 -0
- package/esm2020/domain/shopping/models/coupons/coupon.mjs +38 -0
- package/{esm2015/domain/shopping/models/coupons/enums/coupon-club-mens.enum.js → esm2020/domain/shopping/models/coupons/enums/coupon-club-mens.enum.mjs} +7 -7
- package/{esm2015/domain/shopping/models/coupons/enums/coupon-subtypes.enum.js → esm2020/domain/shopping/models/coupons/enums/coupon-subtypes.enum.mjs} +6 -6
- package/{esm2015/domain/shopping/models/coupons/enums/coupon-types.enum.js → esm2020/domain/shopping/models/coupons/enums/coupon-types.enum.mjs} +10 -10
- package/{esm2015/domain/shopping/models/coupons/enums/exclusivities.enum.js → esm2020/domain/shopping/models/coupons/enums/exclusivities.enum.mjs} +10 -10
- package/{esm2015/domain/shopping/models/coupons/enums/index.js → esm2020/domain/shopping/models/coupons/enums/index.mjs} +4 -4
- package/{esm2015/domain/shopping/models/coupons/index.js → esm2020/domain/shopping/models/coupons/index.mjs} +3 -3
- package/{esm2015/domain/shopping/models/enums/checkout-types.enum.js → esm2020/domain/shopping/models/enums/checkout-types.enum.mjs} +7 -7
- package/{esm2015/domain/shopping/models/enums/index.js → esm2020/domain/shopping/models/enums/index.mjs} +3 -3
- package/{esm2015/domain/shopping/models/enums/order-status.enum.js → esm2020/domain/shopping/models/enums/order-status.enum.mjs} +12 -12
- package/esm2020/domain/shopping/models/index.mjs +13 -0
- package/{esm2015/domain/shopping/models/line-item.js → esm2020/domain/shopping/models/line-item.mjs} +4 -4
- package/{esm2015/domain/shopping/models/order.js → esm2020/domain/shopping/models/order.mjs} +11 -11
- package/esm2020/domain/shopping/models/payment.mjs +169 -0
- package/esm2020/domain/shopping/models/shipping-method.mjs +7 -0
- package/esm2020/domain/shopping/models/subscription/checkout.mjs +28 -0
- package/{esm2015/domain/shopping/models/subscription/index.js → esm2020/domain/shopping/models/subscription/index.mjs} +3 -3
- package/{esm2015/domain/shopping/models/subscription/plan.js → esm2020/domain/shopping/models/subscription/plan.mjs} +7 -7
- package/{esm2015/domain/shopping/models/types/index.js → esm2020/domain/shopping/models/types/index.mjs} +8 -8
- package/esm2020/domain/shopping/models/types/payment-address.type.mjs +2 -0
- package/{esm2015/domain/shopping/models/types/payment-billing.type.js → esm2020/domain/shopping/models/types/payment-billing.type.mjs} +2 -2
- package/esm2020/domain/shopping/models/types/payment-card.type.mjs +2 -0
- package/esm2020/domain/shopping/models/types/payment-customer.type.mjs +2 -0
- package/{esm2015/domain/shopping/models/types/payment-document.type.js → esm2020/domain/shopping/models/types/payment-document.type.mjs} +2 -2
- package/{esm2015/domain/shopping/models/types/payment-item.type.js → esm2020/domain/shopping/models/types/payment-item.type.mjs} +2 -2
- package/{esm2015/domain/shopping/models/types/payment-shipping.type.js → esm2020/domain/shopping/models/types/payment-shipping.type.mjs} +2 -2
- package/{esm2015/domain/shopping/repositories/buy-2-win.repository.js → esm2020/domain/shopping/repositories/buy-2-win.repository.mjs} +2 -2
- package/esm2020/domain/shopping/repositories/campaign-dashboard.repository.mjs +2 -0
- package/esm2020/domain/shopping/repositories/campaign-hashtag.repository.mjs +2 -0
- package/{esm2015/domain/shopping/repositories/checkout.repository.js → esm2020/domain/shopping/repositories/checkout.repository.mjs} +2 -2
- package/{esm2015/domain/shopping/repositories/coupon.repository.js → esm2020/domain/shopping/repositories/coupon.repository.mjs} +2 -2
- package/esm2020/domain/shopping/repositories/index.mjs +10 -0
- package/{esm2015/domain/shopping/repositories/legacy-order.repository.js → esm2020/domain/shopping/repositories/legacy-order.repository.mjs} +2 -2
- package/{esm2015/domain/shopping/repositories/order.repository.js → esm2020/domain/shopping/repositories/order.repository.mjs} +2 -2
- package/{esm2015/domain/shopping/repositories/payment.repository.js → esm2020/domain/shopping/repositories/payment.repository.mjs} +2 -2
- package/{esm2015/domain/shopping/repositories/subscription/checkout.repository.js → esm2020/domain/shopping/repositories/subscription/checkout.repository.mjs} +2 -2
- package/{esm2015/domain/shopping/repositories/subscription/index.js → esm2020/domain/shopping/repositories/subscription/index.mjs} +3 -3
- package/{esm2015/domain/shopping/repositories/subscription/plan.repository.js → esm2020/domain/shopping/repositories/subscription/plan.repository.mjs} +2 -2
- package/{esm2015/domain/users/errors/index.js → esm2020/domain/users/errors/index.mjs} +4 -4
- package/{esm2015/domain/users/errors/unauthorized.error.js → esm2020/domain/users/errors/unauthorized.error.mjs} +7 -8
- package/{esm2015/domain/users/errors/user-already-registered.error.js → esm2020/domain/users/errors/user-already-registered.error.mjs} +7 -8
- package/{esm2015/domain/users/errors/weak-password.error.js → esm2020/domain/users/errors/weak-password.error.mjs} +7 -8
- package/{esm2015/domain/users/index.js → esm2020/domain/users/index.mjs} +6 -6
- package/esm2020/domain/users/models/beauty-profile.mjs +12 -0
- package/{esm2015/domain/users/models/enums/accessory-importances.enum.js → esm2020/domain/users/models/enums/accessory-importances.enum.mjs} +7 -7
- package/{esm2015/domain/users/models/enums/area.enum.js → esm2020/domain/users/models/enums/area.enum.mjs} +13 -13
- package/{esm2015/domain/users/models/enums/beard-problems.enum.js → esm2020/domain/users/models/enums/beard-problems.enum.mjs} +11 -11
- package/{esm2015/domain/users/models/enums/beard-sizes.enum.js → esm2020/domain/users/models/enums/beard-sizes.enum.mjs} +9 -9
- package/{esm2015/domain/users/models/enums/beauty-product-importances.enum.js → esm2020/domain/users/models/enums/beauty-product-importances.enum.mjs} +8 -8
- package/{esm2015/domain/users/models/enums/body-problems.enum.js → esm2020/domain/users/models/enums/body-problems.enum.mjs} +13 -13
- package/{esm2015/domain/users/models/enums/body-shapes.enum.js → esm2020/domain/users/models/enums/body-shapes.enum.mjs} +9 -9
- package/{esm2015/domain/users/models/enums/body-tattoos.enum.js → esm2020/domain/users/models/enums/body-tattoos.enum.mjs} +7 -7
- package/{esm2015/domain/users/models/enums/face-skin-oilinesses.enum.js → esm2020/domain/users/models/enums/face-skin-oilinesses.enum.mjs} +9 -9
- package/{esm2015/domain/users/models/enums/face-skin-problems.enum.js → esm2020/domain/users/models/enums/face-skin-problems.enum.mjs} +12 -12
- package/{esm2015/domain/users/models/enums/face-skin-tones.enum.js → esm2020/domain/users/models/enums/face-skin-tones.enum.mjs} +10 -10
- package/{esm2015/domain/users/models/enums/family-incomes.enum.js → esm2020/domain/users/models/enums/family-incomes.enum.mjs} +10 -10
- package/{esm2015/domain/users/models/enums/fragrance-importances.enum.js → esm2020/domain/users/models/enums/fragrance-importances.enum.mjs} +7 -7
- package/{esm2015/domain/users/models/enums/hair-colors.enum.js → esm2020/domain/users/models/enums/hair-colors.enum.mjs} +12 -12
- package/{esm2015/domain/users/models/enums/hair-problems.enum.js → esm2020/domain/users/models/enums/hair-problems.enum.mjs} +12 -12
- package/{esm2015/domain/users/models/enums/hair-strands.enum.js → esm2020/domain/users/models/enums/hair-strands.enum.mjs} +10 -10
- package/{esm2015/domain/users/models/enums/hair-types.enum.js → esm2020/domain/users/models/enums/hair-types.enum.mjs} +9 -9
- package/{esm2015/domain/users/models/enums/index.js → esm2020/domain/users/models/enums/index.mjs} +21 -21
- package/{esm2015/domain/users/models/enums/office-position.enum.js → esm2020/domain/users/models/enums/office-position.enum.mjs} +8 -8
- package/{esm2015/domain/users/models/enums/product-spents.enum.js → esm2020/domain/users/models/enums/product-spents.enum.mjs} +10 -10
- package/{esm2015/domain/users/models/enums/user-type.enum.js → esm2020/domain/users/models/enums/user-type.enum.mjs} +10 -10
- package/{esm2015/domain/users/models/index.js → esm2020/domain/users/models/index.mjs} +8 -8
- package/{esm2015/domain/users/models/lead.js → esm2020/domain/users/models/lead.mjs} +7 -7
- package/esm2020/domain/users/models/subscription/edition.mjs +7 -0
- package/{esm2015/domain/users/models/subscription/enums/billing-status.enum.js → esm2020/domain/users/models/subscription/enums/billing-status.enum.mjs} +5 -5
- package/{esm2015/domain/users/models/subscription/enums/edition-status.enum.js → esm2020/domain/users/models/subscription/enums/edition-status.enum.mjs} +6 -6
- package/{esm2015/domain/users/models/subscription/enums/index.js → esm2020/domain/users/models/subscription/enums/index.mjs} +5 -5
- package/{esm2015/domain/users/models/subscription/enums/payment-type.enum.js → esm2020/domain/users/models/subscription/enums/payment-type.enum.mjs} +7 -7
- package/{esm2015/domain/users/models/subscription/enums/status.enum.js → esm2020/domain/users/models/subscription/enums/status.enum.mjs} +6 -6
- package/{esm2015/domain/users/models/subscription/index.js → esm2020/domain/users/models/subscription/index.mjs} +5 -5
- package/esm2020/domain/users/models/subscription/payment.mjs +14 -0
- package/esm2020/domain/users/models/subscription/subscription.mjs +43 -0
- package/{esm2015/domain/users/models/user-address.js → esm2020/domain/users/models/user-address.mjs} +7 -7
- package/esm2020/domain/users/models/user-payment-method.mjs +7 -0
- package/esm2020/domain/users/models/user.mjs +26 -0
- package/{esm2015/domain/users/repositories/beauty-profile.repository.js → esm2020/domain/users/repositories/beauty-profile.repository.mjs} +2 -2
- package/{esm2015/domain/users/repositories/edition.repository.js → esm2020/domain/users/repositories/edition.repository.mjs} +2 -2
- package/{esm2015/domain/users/repositories/index.js → esm2020/domain/users/repositories/index.mjs} +9 -9
- package/{esm2015/domain/users/repositories/lead.repository.js → esm2020/domain/users/repositories/lead.repository.mjs} +2 -2
- package/{esm2015/domain/users/repositories/subscription-payment.repository.js → esm2020/domain/users/repositories/subscription-payment.repository.mjs} +2 -2
- package/{esm2015/domain/users/repositories/subscription.repository.js → esm2020/domain/users/repositories/subscription.repository.mjs} +2 -2
- package/{esm2015/domain/users/repositories/user-address.repository.js → esm2020/domain/users/repositories/user-address.repository.mjs} +2 -2
- package/{esm2015/domain/users/repositories/user-payment-method.repository.js → esm2020/domain/users/repositories/user-payment-method.repository.mjs} +2 -2
- package/esm2020/domain/users/repositories/user.repository.mjs +2 -0
- package/esm2020/domain/users/services/authentication.service.mjs +2 -0
- package/{esm2015/domain/users/services/index.js → esm2020/domain/users/services/index.mjs} +4 -4
- package/{esm2015/domain/users/services/register.service.js → esm2020/domain/users/services/register.service.mjs} +2 -2
- package/{esm2015/domain/users/services/types/basic-user-data.type.js → esm2020/domain/users/services/types/basic-user-data.type.mjs} +2 -2
- package/{esm2015/domain/users/services/types/index.js → esm2020/domain/users/services/types/index.mjs} +2 -2
- package/esm2020/domain/users/use-cases/authentication.mjs +43 -0
- package/{esm2015/domain/users/use-cases/index.js → esm2020/domain/users/use-cases/index.mjs} +5 -5
- package/esm2020/domain/users/use-cases/recovery-password.mjs +9 -0
- package/esm2020/domain/users/use-cases/register.mjs +38 -0
- package/esm2020/domain/users/use-cases/signout.mjs +9 -0
- package/{esm2015/errors/duplicated-results.error.js → esm2020/errors/duplicated-results.error.mjs} +7 -8
- package/{esm2015/errors/index.js → esm2020/errors/index.mjs} +5 -5
- package/{esm2015/errors/invalid-argument.error.js → esm2020/errors/invalid-argument.error.mjs} +7 -8
- package/{esm2015/errors/not-found.error.js → esm2020/errors/not-found.error.mjs} +7 -8
- package/{esm2015/errors/required-argument.error.js → esm2020/errors/required-argument.error.mjs} +9 -9
- package/{esm2015/index.js → esm2020/index.mjs} +6 -6
- package/esm2020/infra/elasticsearch/adapters/axios.adapter.mjs +67 -0
- package/esm2020/infra/elasticsearch/adapters/elastic-search.adapter.mjs +2 -0
- package/{esm2015/infra/elasticsearch/adapters/index.js → esm2020/infra/elasticsearch/adapters/index.mjs} +3 -3
- package/{esm2015/infra/elasticsearch/index.js → esm2020/infra/elasticsearch/index.mjs} +4 -4
- package/{esm2015/infra/elasticsearch/indexes/index.js → esm2020/infra/elasticsearch/indexes/index.mjs} +2 -2
- package/esm2020/infra/elasticsearch/indexes/products-index.mjs +104 -0
- package/{esm2015/infra/elasticsearch/types/elastic-search-result.js → esm2020/infra/elasticsearch/types/elastic-search-result.mjs} +2 -2
- package/{esm2015/infra/elasticsearch/types/index.js → esm2020/infra/elasticsearch/types/index.mjs} +2 -2
- package/esm2020/infra/firebase/auth/authentication-firebase-auth.service.mjs +41 -0
- package/{esm2015/infra/firebase/auth/index.js → esm2020/infra/firebase/auth/index.mjs} +3 -3
- package/esm2020/infra/firebase/auth/register-firebase-auth.service.mjs +33 -0
- package/{esm2015/infra/firebase/auth/types/firebase-user-with-id.type.js → esm2020/infra/firebase/auth/types/firebase-user-with-id.type.mjs} +2 -2
- package/{esm2015/infra/firebase/firestore/enums/firestore-field-type.enum.js → esm2020/infra/firebase/firestore/enums/firestore-field-type.enum.mjs} +10 -10
- package/{esm2015/infra/firebase/firestore/enums/index.js → esm2020/infra/firebase/firestore/enums/index.mjs} +2 -2
- package/{esm2015/infra/firebase/firestore/index.js → esm2020/infra/firebase/firestore/index.mjs} +4 -4
- package/{esm2015/infra/firebase/firestore/mixins/index.js → esm2020/infra/firebase/firestore/mixins/index.mjs} +10 -10
- package/esm2020/infra/firebase/firestore/mixins/with-create-firestore.mixin.mjs +31 -0
- package/esm2020/infra/firebase/firestore/mixins/with-crud-firestore.mixin.mjs +10 -0
- package/esm2020/infra/firebase/firestore/mixins/with-delete-firestore.mixin.mjs +18 -0
- package/esm2020/infra/firebase/firestore/mixins/with-find-firestore.mixin.mjs +110 -0
- package/esm2020/infra/firebase/firestore/mixins/with-firestore.mixin.mjs +80 -0
- package/esm2020/infra/firebase/firestore/mixins/with-get-firestore.mixin.mjs +23 -0
- package/esm2020/infra/firebase/firestore/mixins/with-helpers.mixin.mjs +17 -0
- package/esm2020/infra/firebase/firestore/mixins/with-sub-collection.mixin.mjs +13 -0
- package/esm2020/infra/firebase/firestore/mixins/with-update-firestore.mixin.mjs +51 -0
- package/esm2020/infra/firebase/firestore/repositories/catalog/category-firestore.repository.mjs +67 -0
- package/{esm2015/infra/firebase/firestore/repositories/catalog/index.js → esm2020/infra/firebase/firestore/repositories/catalog/index.mjs} +5 -5
- package/esm2020/infra/firebase/firestore/repositories/catalog/product-firestore.repository.mjs +54 -0
- package/esm2020/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.mjs +16 -0
- package/esm2020/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.mjs +14 -0
- package/{esm2015/infra/firebase/firestore/repositories/index.js → esm2020/infra/firebase/firestore/repositories/index.mjs} +5 -5
- package/esm2020/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.mjs +60 -0
- package/{esm2015/infra/firebase/firestore/repositories/shop-settings/index.js → esm2020/infra/firebase/firestore/repositories/shop-settings/index.mjs} +4 -4
- package/esm2020/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.mjs +14 -0
- package/esm2020/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.mjs +14 -0
- package/esm2020/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.mjs +14 -0
- package/esm2020/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.mjs +14 -0
- package/esm2020/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.mjs +14 -0
- package/esm2020/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.mjs +14 -0
- package/esm2020/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.mjs +14 -0
- package/esm2020/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.mjs +31 -0
- package/esm2020/infra/firebase/firestore/repositories/shopping/index.mjs +11 -0
- package/esm2020/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.mjs +11 -0
- package/esm2020/infra/firebase/firestore/repositories/shopping/order-firestore.repository.mjs +40 -0
- package/esm2020/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.mjs +14 -0
- package/esm2020/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.mjs +14 -0
- package/{esm2015/infra/firebase/firestore/repositories/users/index.js → esm2020/infra/firebase/firestore/repositories/users/index.mjs} +9 -9
- package/esm2020/infra/firebase/firestore/repositories/users/lead-firestore.repository.mjs +14 -0
- package/esm2020/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.mjs +16 -0
- package/esm2020/infra/firebase/firestore/repositories/users/subscription-firestore.repository.mjs +14 -0
- package/esm2020/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.mjs +16 -0
- package/esm2020/infra/firebase/firestore/repositories/users/user-address-firestore.repository.mjs +16 -0
- package/esm2020/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.mjs +16 -0
- package/esm2020/infra/firebase/firestore/repositories/users/user-firestore.repository.mjs +50 -0
- package/esm2020/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.mjs +16 -0
- package/esm2020/infra/firebase/firestore/types/firestore-interceptors.type.mjs +2 -0
- package/esm2020/infra/firebase/firestore/types/firestore-sub.repository.type.mjs +2 -0
- package/esm2020/infra/firebase/firestore/types/firestore.helpers.type.mjs +2 -0
- package/esm2020/infra/firebase/firestore/types/firestore.repository.type.mjs +2 -0
- package/esm2020/infra/firebase/firestore/types/index.mjs +5 -0
- package/{esm2015/infra/firebase/index.js → esm2020/infra/firebase/index.mjs} +3 -3
- package/{esm2015/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.js → esm2020/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.mjs} +13 -13
- package/{esm2015/infra/hasura-graphql/enums/hasura-graphql-where.enum.js → esm2020/infra/hasura-graphql/enums/hasura-graphql-where.enum.mjs} +17 -15
- package/{esm2015/infra/hasura-graphql/enums/index.js → esm2020/infra/hasura-graphql/enums/index.mjs} +3 -3
- package/{esm2015/infra/hasura-graphql/index.js → esm2020/infra/hasura-graphql/index.mjs} +5 -5
- package/esm2020/infra/hasura-graphql/mixins/helpers/attribute-option.helper.mjs +35 -0
- package/esm2020/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.mjs +71 -0
- package/esm2020/infra/hasura-graphql/mixins/helpers/filter-option.helper.mjs +22 -0
- package/esm2020/infra/hasura-graphql/mixins/helpers/graphql-field.helper.mjs +125 -0
- package/{esm2015/infra/hasura-graphql/mixins/helpers/index.js → esm2020/infra/hasura-graphql/mixins/helpers/index.mjs} +5 -5
- package/{esm2015/infra/hasura-graphql/mixins/index.js → esm2020/infra/hasura-graphql/mixins/index.mjs} +8 -8
- package/esm2020/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.mjs +39 -0
- package/esm2020/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.mjs +10 -0
- package/esm2020/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.mjs +31 -0
- package/esm2020/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.mjs +152 -0
- package/esm2020/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.mjs +37 -0
- package/esm2020/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.mjs +108 -0
- package/esm2020/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.mjs +62 -0
- package/{esm2015/infra/hasura-graphql/models/category-hasura-graphql.js → esm2020/infra/hasura-graphql/models/category-hasura-graphql.mjs} +4 -4
- package/{esm2015/infra/hasura-graphql/models/index.js → esm2020/infra/hasura-graphql/models/index.mjs} +5 -5
- package/{esm2015/infra/hasura-graphql/models/kit-product-hasura-graphql.js → esm2020/infra/hasura-graphql/models/kit-product-hasura-graphql.mjs} +15 -15
- package/esm2020/infra/hasura-graphql/models/product-hasura-graphql.mjs +11 -0
- package/{esm2015/infra/hasura-graphql/models/variant-hasura-graphql.js → esm2020/infra/hasura-graphql/models/variant-hasura-graphql.mjs} +9 -9
- package/esm2020/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.mjs +39 -0
- package/esm2020/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.mjs +107 -0
- package/esm2020/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.mjs +338 -0
- package/esm2020/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.mjs +105 -0
- package/esm2020/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.mjs +22 -0
- package/esm2020/infra/hasura-graphql/repositories/catalog/index.mjs +9 -0
- package/esm2020/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.mjs +516 -0
- package/esm2020/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.mjs +114 -0
- package/esm2020/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.mjs +238 -0
- package/{esm2015/infra/hasura-graphql/repositories/index.js → esm2020/infra/hasura-graphql/repositories/index.mjs} +2 -2
- package/{esm2015/infra/hasura-graphql/types/fields.type.js → esm2020/infra/hasura-graphql/types/fields.type.mjs} +2 -2
- package/esm2020/infra/hasura-graphql/types/graphql.repository.type.mjs +2 -0
- package/{esm2015/infra/hasura-graphql/types/hasura-graphql-auth-options.type.js → esm2020/infra/hasura-graphql/types/hasura-graphql-auth-options.type.mjs} +2 -2
- package/esm2020/infra/hasura-graphql/types/hasura-graphql-fields.type.mjs +2 -0
- package/{esm2015/infra/hasura-graphql/types/hasura-graphql-headers.type.js → esm2020/infra/hasura-graphql/types/hasura-graphql-headers.type.mjs} +2 -2
- package/{esm2015/infra/hasura-graphql/types/index.js → esm2020/infra/hasura-graphql/types/index.mjs} +9 -9
- package/{esm2015/infra/hasura-graphql/types/nested-field.type.js → esm2020/infra/hasura-graphql/types/nested-field.type.mjs} +2 -2
- package/{esm2015/infra/hasura-graphql/types/query-builder-options.type.js → esm2020/infra/hasura-graphql/types/query-builder-options.type.mjs} +2 -2
- package/{esm2015/infra/hasura-graphql/types/variable-options.type.js → esm2020/infra/hasura-graphql/types/variable-options.type.mjs} +2 -2
- package/{esm2015/infra/index.js → esm2020/infra/index.mjs} +4 -4
- package/{esm2015/infrab4a-connect.js → esm2020/infrab4a-connect.mjs} +4 -4
- package/esm2020/utils/decorators/debug.class.decorator.mjs +7 -0
- package/esm2020/utils/decorators/index.mjs +3 -0
- package/esm2020/utils/decorators/trace.method.decorator.mjs +81 -0
- package/esm2020/utils/get.mjs +3 -0
- package/esm2020/utils/helpers/class-name.helper.mjs +15 -0
- package/esm2020/utils/helpers/debug-decorator.helper.mjs +18 -0
- package/esm2020/utils/helpers/debug.helper.mjs +150 -0
- package/esm2020/utils/helpers/index.mjs +5 -0
- package/esm2020/utils/helpers/reflect.helper.mjs +165 -0
- package/esm2020/utils/index.mjs +13 -0
- package/{esm2015/utils/is-uuid.js → esm2020/utils/is-uuid.mjs} +3 -3
- package/esm2020/utils/is.mjs +4 -0
- package/esm2020/utils/log.utils.mjs +9 -0
- package/{esm2015/utils/mixins/base.mixin.js → esm2020/utils/mixins/base.mixin.mjs} +6 -6
- package/{esm2015/utils/mixins/index.js → esm2020/utils/mixins/index.mjs} +4 -4
- package/{esm2015/utils/mixins/merge-constructor-params.type.js → esm2020/utils/mixins/merge-constructor-params.type.mjs} +2 -2
- package/{esm2015/utils/mixins/mixin-ctor.type.js → esm2020/utils/mixins/mixin-ctor.type.mjs} +2 -2
- package/{esm2015/utils/parse-datetime.js → esm2020/utils/parse-datetime.mjs} +14 -14
- package/{esm2015/utils/types/array-element.type.js → esm2020/utils/types/array-element.type.mjs} +2 -2
- package/{esm2015/utils/types/index.js → esm2020/utils/types/index.mjs} +3 -3
- package/{esm2015/utils/types/prop.type.js → esm2020/utils/types/prop.type.mjs} +2 -2
- package/fesm2015/{infrab4a-connect.js → infrab4a-connect.mjs} +4789 -3178
- package/fesm2015/infrab4a-connect.mjs.map +1 -0
- package/fesm2020/infrab4a-connect.mjs +4857 -0
- package/fesm2020/infrab4a-connect.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/infra/elasticsearch/adapters/axios.adapter.d.ts +16 -14
- package/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +8 -7
- package/infra/elasticsearch/adapters/index.d.ts +2 -2
- package/infra/elasticsearch/index.d.ts +3 -3
- package/infra/elasticsearch/indexes/index.d.ts +1 -1
- package/infra/elasticsearch/indexes/products-index.d.ts +13 -15
- package/infra/elasticsearch/types/elastic-search-result.d.ts +9 -7
- package/infra/elasticsearch/types/index.d.ts +1 -1
- package/infra/firebase/auth/authentication-firebase-auth.service.d.ts +12 -12
- package/infra/firebase/auth/index.d.ts +2 -2
- package/infra/firebase/auth/register-firebase-auth.service.d.ts +8 -8
- package/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +5 -3
- package/infra/firebase/firestore/enums/firestore-field-type.enum.d.ts +8 -8
- package/infra/firebase/firestore/enums/index.d.ts +1 -1
- package/infra/firebase/firestore/index.d.ts +3 -3
- package/infra/firebase/firestore/mixins/index.d.ts +9 -9
- package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +4 -4
- package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +5 -4
- package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +4 -4
- package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +4 -4
- package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +13 -4
- package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +4 -4
- package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +11 -11
- package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +11 -7
- package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +7 -7
- package/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +20 -17
- package/infra/firebase/firestore/repositories/catalog/index.d.ts +4 -4
- package/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +12 -11
- package/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +12 -13
- package/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +7 -8
- package/infra/firebase/firestore/repositories/index.d.ts +4 -4
- package/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +16 -16
- package/infra/firebase/firestore/repositories/shop-settings/index.d.ts +3 -3
- package/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +7 -8
- package/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +7 -8
- package/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +7 -8
- package/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.d.ts +8 -0
- package/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.d.ts +8 -0
- package/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +7 -8
- package/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +7 -8
- package/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +12 -12
- package/infra/firebase/firestore/repositories/shopping/index.d.ts +10 -8
- package/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +6 -7
- package/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +13 -13
- package/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +7 -8
- package/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +7 -8
- package/infra/firebase/firestore/repositories/users/index.d.ts +8 -8
- package/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +7 -8
- package/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +12 -13
- package/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +7 -8
- package/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +12 -13
- package/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +12 -13
- package/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +12 -13
- package/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +17 -17
- package/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +12 -13
- package/infra/firebase/firestore/types/firestore-interceptors.type.d.ts +14 -0
- package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +6 -6
- package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +8 -8
- package/infra/firebase/firestore/types/firestore.repository.type.d.ts +16 -14
- package/infra/firebase/firestore/types/index.d.ts +4 -3
- package/infra/firebase/index.d.ts +2 -2
- package/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.d.ts +11 -11
- package/infra/hasura-graphql/enums/hasura-graphql-where.enum.d.ts +15 -13
- package/infra/hasura-graphql/enums/index.d.ts +2 -2
- package/infra/hasura-graphql/index.d.ts +4 -4
- package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +19 -13
- package/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.d.ts +10 -10
- package/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +8 -6
- package/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +12 -8
- package/infra/hasura-graphql/mixins/helpers/index.d.ts +4 -4
- package/infra/hasura-graphql/mixins/index.d.ts +7 -7
- package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +9 -8
- package/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +11 -11
- package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +7 -7
- package/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +34 -25
- package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +25 -24
- package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +23 -11
- package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +14 -14
- package/infra/hasura-graphql/models/category-hasura-graphql.d.ts +6 -6
- package/infra/hasura-graphql/models/index.d.ts +4 -4
- package/infra/hasura-graphql/models/kit-product-hasura-graphql.d.ts +6 -6
- package/infra/hasura-graphql/models/product-hasura-graphql.d.ts +18 -14
- package/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +10 -9
- package/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.d.ts +10 -0
- package/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.d.ts +12 -0
- package/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +34 -27
- package/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.d.ts +18 -0
- package/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.d.ts +10 -0
- package/infra/hasura-graphql/repositories/catalog/index.d.ts +8 -3
- package/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +30 -28
- package/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +14 -14
- package/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.d.ts +27 -0
- package/infra/hasura-graphql/repositories/index.d.ts +1 -1
- package/infra/hasura-graphql/types/fields.type.d.ts +2 -2
- package/infra/hasura-graphql/types/graphql.repository.type.d.ts +24 -21
- package/infra/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +8 -8
- package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +44 -40
- package/infra/hasura-graphql/types/hasura-graphql-headers.type.d.ts +7 -7
- package/infra/hasura-graphql/types/index.d.ts +8 -8
- package/infra/hasura-graphql/types/nested-field.type.d.ts +7 -7
- package/infra/hasura-graphql/types/query-builder-options.type.d.ts +7 -7
- package/infra/hasura-graphql/types/variable-options.type.d.ts +9 -9
- package/infra/index.d.ts +3 -3
- package/package.json +23 -9
- package/utils/decorators/debug.class.decorator.d.ts +2 -0
- package/utils/decorators/index.d.ts +2 -0
- package/utils/decorators/trace.method.decorator.d.ts +14 -0
- package/utils/get.d.ts +1 -0
- package/utils/helpers/class-name.helper.d.ts +3 -0
- package/utils/helpers/debug-decorator.helper.d.ts +9 -0
- package/utils/helpers/debug.helper.d.ts +60 -0
- package/utils/helpers/index.d.ts +4 -0
- package/utils/helpers/reflect.helper.d.ts +50 -0
- package/utils/index.d.ts +13 -7
- package/utils/is-uuid.d.ts +1 -1
- package/utils/is.d.ts +1 -0
- package/utils/log.utils.d.ts +7 -0
- package/utils/mixins/base.mixin.d.ts +3 -3
- package/utils/mixins/index.d.ts +3 -3
- package/utils/mixins/merge-constructor-params.type.d.ts +3 -3
- package/utils/mixins/mixin-ctor.type.d.ts +1 -1
- package/utils/parse-datetime.d.ts +1 -1
- package/utils/types/array-element.type.d.ts +1 -1
- package/utils/types/index.d.ts +2 -2
- package/utils/types/prop.type.d.ts +1 -1
- package/bundles/infrab4a-connect.umd.js +0 -5175
- package/bundles/infrab4a-connect.umd.js.map +0 -1
- package/domain/catalog/models/types/category-filter.type.d.ts +0 -4
- package/esm2015/domain/catalog/models/category.js +0 -10
- package/esm2015/domain/catalog/models/index.js +0 -7
- package/esm2015/domain/catalog/models/kit-product.js +0 -18
- package/esm2015/domain/catalog/models/product.js +0 -17
- package/esm2015/domain/catalog/models/types/category-filter.type.js +0 -2
- package/esm2015/domain/catalog/models/types/index.js +0 -11
- package/esm2015/domain/catalog/models/types/product-review.type.js +0 -2
- package/esm2015/domain/catalog/models/variant.js +0 -10
- 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/generic/model/base.model.js +0 -23
- package/esm2015/domain/generic/model/types/base-model-builder.type.js +0 -2
- package/esm2015/domain/generic/model/types/identifier-model.type.js +0 -2
- package/esm2015/domain/generic/model/types/model-base-structure.type.js +0 -2
- package/esm2015/domain/generic/model/types/non-function-properties.type.js +0 -2
- package/esm2015/domain/generic/model/types/non-function-property-name.type.js +0 -2
- package/esm2015/domain/generic/repository/create.repository.js +0 -2
- package/esm2015/domain/generic/repository/crud.repository.js +0 -2
- package/esm2015/domain/generic/repository/delete.repository.js +0 -2
- package/esm2015/domain/generic/repository/find.repository.js +0 -2
- package/esm2015/domain/generic/repository/get.repository.js +0 -2
- package/esm2015/domain/generic/repository/read.repository.js +0 -2
- package/esm2015/domain/generic/repository/types/repository-find-filters.type.js +0 -2
- package/esm2015/domain/generic/repository/types/repository-find-result.type.js +0 -2
- package/esm2015/domain/generic/repository/types/repository-update-params.type.js +0 -2
- package/esm2015/domain/generic/repository/update.repository.js +0 -2
- package/esm2015/domain/location/models/address.js +0 -7
- package/esm2015/domain/shop-settings/models/home.js +0 -7
- package/esm2015/domain/shop-settings/models/types/home-data.type.js +0 -2
- 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 -38
- package/esm2015/domain/shopping/models/index.js +0 -12
- 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/types/payment-address.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/repositories/index.js +0 -8
- package/esm2015/domain/users/models/beauty-profile.js +0 -12
- package/esm2015/domain/users/models/subscription/edition.js +0 -7
- 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-payment-method.js +0 -7
- package/esm2015/domain/users/models/user.js +0 -26
- package/esm2015/domain/users/repositories/user.repository.js +0 -2
- package/esm2015/domain/users/services/authentication.service.js +0 -2
- package/esm2015/domain/users/use-cases/authentication.js +0 -40
- 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/infra/elasticsearch/adapters/axios.adapter.js +0 -57
- package/esm2015/infra/elasticsearch/adapters/elastic-search.adapter.js +0 -2
- package/esm2015/infra/elasticsearch/indexes/products-index.js +0 -93
- package/esm2015/infra/firebase/auth/authentication-firebase-auth.service.js +0 -52
- package/esm2015/infra/firebase/auth/register-firebase-auth.service.js +0 -26
- 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 -96
- package/esm2015/infra/firebase/firestore/mixins/with-firestore.mixin.js +0 -49
- 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/repositories/catalog/category-firestore.repository.js +0 -71
- package/esm2015/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js +0 -52
- 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/shop-settings/home-firestore.repository.js +0 -56
- 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 -40
- 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/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 -68
- package/esm2015/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.js +0 -14
- 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/hasura-graphql/mixins/helpers/attribute-option.helper.js +0 -31
- package/esm2015/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.js +0 -53
- package/esm2015/infra/hasura-graphql/mixins/helpers/filter-option.helper.js +0 -22
- package/esm2015/infra/hasura-graphql/mixins/helpers/graphql-field.helper.js +0 -86
- package/esm2015/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.js +0 -45
- package/esm2015/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.js +0 -10
- package/esm2015/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.js +0 -29
- package/esm2015/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.js +0 -45
- package/esm2015/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.js +0 -35
- package/esm2015/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.js +0 -94
- package/esm2015/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.js +0 -56
- package/esm2015/infra/hasura-graphql/models/product-hasura-graphql.js +0 -11
- package/esm2015/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js +0 -241
- package/esm2015/infra/hasura-graphql/repositories/catalog/index.js +0 -4
- package/esm2015/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js +0 -462
- package/esm2015/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.js +0 -116
- package/esm2015/infra/hasura-graphql/types/graphql.repository.type.js +0 -2
- package/esm2015/infra/hasura-graphql/types/hasura-graphql-fields.type.js +0 -2
- package/esm2015/utils/index.js +0 -8
- package/fesm2015/infrab4a-connect.js.map +0 -1
- package/infrab4a-connect.d.ts +0 -5
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"infrab4a-connect.umd.js","sources":["../../../projects/connect/src/domain/generic/model/base.model.ts","../../../projects/connect/src/domain/generic/repository/enums/where.enum.ts","../../../projects/connect/src/domain/generic/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/utils/is-uuid.ts","../../../projects/connect/src/utils/parse-datetime.ts","../../../projects/connect/src/domain/shopping/models/enums/checkout-types.enum.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/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/category.ts","../../../projects/connect/src/domain/catalog/models/enums/product-genders.enum.ts","../../../projects/connect/src/domain/catalog/models/enums/shops.enum.ts","../../../projects/connect/src/domain/catalog/models/product.ts","../../../projects/connect/src/domain/catalog/models/kit-product.ts","../../../projects/connect/src/domain/catalog/models/variant.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/enums/firestore-field-type.enum.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/lead-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/subscription-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/subscription-payment-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-beauty-profile-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/user-firestore.repository.ts","../../../projects/connect/src/infra/firebase/firestore/repositories/users/user-payment-method-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/infra/hasura-graphql/mixins/helpers/attribute-option.helper.ts","../../../projects/connect/src/infra/hasura-graphql/enums/hasura-graphql-where.enum.ts","../../../projects/connect/src/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.ts","../../../projects/connect/src/infra/hasura-graphql/mixins/helpers/filter-option.helper.ts","../../../projects/connect/src/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.ts","../../../projects/connect/src/infra/hasura-graphql/mixins/helpers/graphql-field.helper.ts","../../../projects/connect/src/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.ts","../../../projects/connect/src/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.ts","../../../projects/connect/src/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.ts","../../../projects/connect/src/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.ts","../../../projects/connect/src/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.ts","../../../projects/connect/src/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.ts","../../../projects/connect/src/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.ts","../../../projects/connect/src/infra/hasura-graphql/models/category-hasura-graphql.ts","../../../projects/connect/src/infra/hasura-graphql/models/product-hasura-graphql.ts","../../../projects/connect/src/infra/hasura-graphql/models/kit-product-hasura-graphql.ts","../../../projects/connect/src/infra/hasura-graphql/models/variant-hasura-graphql.ts","../../../projects/connect/src/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.ts","../../../projects/connect/src/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.ts","../../../projects/connect/src/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.ts","../../../projects/connect/src/infrab4a-connect.ts"],"sourcesContent":["import { instanceToPlain, plainToInstance } from 'class-transformer'\r\n\r\nimport {\r\n BaseModelBuilder,\r\n ModelBaseStructure,\r\n NonFunctionAndIdentifierProperties,\r\n NonFunctionProperties,\r\n} from './types'\r\n\r\nexport type GenericIdentifier<T = 'id'> = T\r\n\r\nexport class BaseModel<Model, Identifiers = GenericIdentifier> implements ModelBaseStructure<Model, Identifiers> {\r\n get identifier(): NonFunctionAndIdentifierProperties<Model> {\r\n const fields = (this.constructor as BaseModelBuilder<Model>).identifiersFields.filter(\r\n (field) => field !== 'identifier',\r\n )\r\n\r\n return fields.reduce(\r\n (object, field) => ({ ...object, [field]: this[field as string] }),\r\n {} as NonFunctionAndIdentifierProperties<Model>,\r\n )\r\n }\r\n\r\n get identifiersFields(): Identifiers[] {\r\n return (this.constructor as BaseModelBuilder<Model, Identifiers>).identifiersFields\r\n }\r\n\r\n constructor(args?: Partial<Model>) {\r\n Object.assign(this, args)\r\n }\r\n\r\n static toInstance<T extends ModelBaseStructure>(this: new () => T, data?: Partial<NonFunctionProperties<T>>): T {\r\n return plainToInstance(this, data || {})\r\n }\r\n\r\n static isModel<T extends ModelBaseStructure>(this: new () => T, value: any): value is T {\r\n return value instanceof this\r\n }\r\n\r\n toPlain(): any {\r\n return instanceToPlain(this)\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 NOTIN = 'not in',\r\n LT = '<',\r\n LTE = '<=',\r\n LIKE = 'like',\r\n NOTLIKE = 'not like',\r\n ISNULL = 'is null',\r\n ISNOTNULL = 'is not null',\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 __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\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 (g && (g = 0, op[0] && (_ = 0)), _) 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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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: false } : 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\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { BaseModel, GenericIdentifier } from '../../../generic/model/base.model'\r\n\r\nimport { EditionStatus, BillingStatus } from './enums'\r\n\r\nexport type EditionIdentifiers = 'id' | 'subscriptionId'\r\n\r\nexport class Edition extends BaseModel<Edition, EditionIdentifiers> {\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 static get identifiersFields(): EditionIdentifiers[] {\r\n return ['id', 'subscriptionId']\r\n }\r\n}\r\n","import { Expose } from 'class-transformer'\r\n\r\nimport { BaseModel, GenericIdentifier } from '../../generic/model/base.model'\r\n\r\nimport { PaymentBilling, PaymentCard, PaymentCustomer, PaymentItem, PaymentShipping } from './types'\r\n\r\nexport class Payment extends BaseModel<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 static get identifiersFields(): GenericIdentifier[] {\r\n return ['id']\r\n }\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { BaseModel, GenericIdentifier } from '../../../generic/model/base.model'\r\nimport { Payment } from '../../../shopping/models/payment'\r\n\r\nimport { PaymentType } from './enums/payment-type.enum'\r\n\r\nexport type SubscriptionPaymentIdentifiers = 'id' | 'subscriptionId'\r\n\r\nexport class SubscriptionPayment extends BaseModel<SubscriptionPayment, SubscriptionPaymentIdentifiers> {\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 static get identifiersFields(): SubscriptionPaymentIdentifiers[] {\r\n return ['id', 'subscriptionId']\r\n }\r\n}\r\n","import { BaseModel, GenericIdentifier } from '../../generic/model/base.model'\r\n\r\nimport { LocationGeometry } from './types/location-geometry.type'\r\n\r\nexport abstract class Address<Identifiers = GenericIdentifier> extends BaseModel<Address, Identifiers> {\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 static get identifiersFields(): string[] {\r\n return ['id']\r\n }\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 { isString } from 'lodash'\r\n\r\nexport const isUUID = (value: string): boolean =>\r\n isString(value) && /[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}/.test(value)\r\n","import { isString } from 'lodash'\r\nimport { parseISO } from 'date-fns'\r\n\r\nexport const parseDateTime = (value: string): string | Date => {\r\n if (!isString(value)) return value\r\n if (\r\n !/^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/.test(value) &&\r\n !/^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T\\d{2}:\\d{2}:\\d{2}/.test(value)\r\n )\r\n return value\r\n\r\n const date = parseISO(value)\r\n\r\n if (isNaN(date.getTime())) return value\r\n\r\n return date\r\n}\r\n","export enum CheckoutTypes {\r\n ECOMMERCE = 1,\r\n SUBSCRIPTION = 2,\r\n ALL = 3,\r\n}\r\n","export enum CouponTypes {\r\n ABSOLUTE = 1,\r\n PERCENTAGE = 2,\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 = 2,\r\n}\r\n","export enum Exclusivities {\r\n ALL_USERS = 1,\r\n SPECIFIC_USER = 2,\r\n COLLABORATORS = 3,\r\n ACTIVE_SUBSCRIBER = 4,\r\n INACTIVE_SUBSCRIBER = 5,\r\n NON_SUBSCRIBER = 6,\r\n}\r\n","import { Expose } from 'class-transformer'\r\n\r\nimport { isNil } from '../../../../utils'\r\nimport { Shops } from '../../../catalog/models/enums/shops.enum'\r\nimport { BaseModel, GenericIdentifier } from '../../../generic/model/base.model'\r\nimport { CheckoutTypes } from '../enums/checkout-types.enum'\r\n\r\nimport { CouponTypes, Exclusivities } from './enums'\r\nimport { ClubeDaMensPlan } from './enums/coupon-club-mens.enum'\r\n\r\nconst COUPON_EXPIRATION = +1000 * 60 * 60 * 24 * 30\r\n\r\nexport class Coupon extends BaseModel<Coupon> {\r\n id: string\r\n type: CouponTypes\r\n discount?: number\r\n user?: string\r\n userExclusiveEmail?: string\r\n campaign?: string\r\n nickname: string\r\n beginAt: Date\r\n expiresIn?: Date\r\n useLimit?: number\r\n useLimitPerUser?: boolean\r\n shopAvailability: Shops\r\n personId?: number\r\n influencerEmail?: string\r\n plan?: ClubeDaMensPlan\r\n productsCategories: string[]\r\n minSubTotalValue?: number\r\n active?: Boolean\r\n createdAt: Date\r\n updatedAt?: Date\r\n\r\n @Expose({ name: 'checkout_type' })\r\n checkoutType: CheckoutTypes\r\n\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 static get identifiersFields(): GenericIdentifier[] {\r\n return ['id']\r\n }\r\n\r\n static createCoupon(userId: string): Coupon {\r\n return this.toInstance({\r\n nickname: `${Date.now()}`,\r\n type: CouponTypes.ABSOLUTE,\r\n checkoutType: CheckoutTypes.ECOMMERCE,\r\n discount: 30,\r\n user: userId,\r\n useLimit: 1,\r\n useLimitPerUser: true,\r\n createdAt: new Date(Date.now()),\r\n beginAt: new Date(Date.now()),\r\n expiresIn: new Date(Date.now() + COUPON_EXPIRATION),\r\n })\r\n }\r\n}\r\n","import { BaseModel, GenericIdentifier } from '../../../generic/model/base.model'\r\n\r\nexport class SubscriptionPlan extends BaseModel<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 static get identifiersFields(): GenericIdentifier[] {\r\n return ['id']\r\n }\r\n}\r\n","import { BaseModel, GenericIdentifier } from '../../generic/model/base.model'\r\n\r\nimport { BeardSizes, HairTypes } from './enums'\r\n\r\nexport type BeautyProfileIdentifiers = 'id' | 'userId'\r\n\r\nexport class BeautyProfile extends BaseModel<BeautyProfile, BeautyProfileIdentifiers> {\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 static get identifiersFields(): BeautyProfileIdentifiers[] {\r\n return ['id', 'userId']\r\n }\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { BaseModel, GenericIdentifier } from '../../generic/model/base.model'\r\nimport { isNil } from '../../../utils'\r\nimport { NonFunctionProperties, ModelBaseStructure } from '../../generic/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> {\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 badgeId?: number\r\n badgeMultiplier?: number\r\n dateCreated?: Date\r\n dateModified?: Date\r\n\r\n @Type(() => BeautyProfile)\r\n beautyProfile?: BeautyProfile\r\n\r\n static toInstance<T extends ModelBaseStructure<User>>(\r\n this: new () => T,\r\n data?: Partial<NonFunctionProperties<User>>,\r\n ): T {\r\n const instance = super.toInstance(data) as User\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 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 static get identifiersFields(): GenericIdentifier[] {\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, GenericIdentifier } from '../../../generic/model/base.model'\r\nimport { Coupon } from '../../../shopping/models/coupons/coupon'\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> {\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 static get identifiersFields(): GenericIdentifier[] {\r\n return ['id']\r\n }\r\n}\r\n","import { Address } from '../../location/models/address'\r\n\r\nexport type UserAddressIdentifiers = 'id' | 'userId'\r\n\r\nexport class UserAddress extends Address<UserAddressIdentifiers> {\r\n id: string\r\n userId: string\r\n\r\n static get identifiersFields(): UserAddressIdentifiers[] {\r\n return ['id', 'userId']\r\n }\r\n}\r\n","import { BaseModel, GenericIdentifier } from '../../generic/model/base.model'\r\n\r\nexport type UserPaymentIdentifiers = 'id' | 'userId'\r\n\r\nexport class UserPaymentMethod extends BaseModel<UserPaymentMethod, UserPaymentIdentifiers> {\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 static get identifiersFields(): UserPaymentIdentifiers[] {\r\n return ['id', 'userId']\r\n }\r\n}\r\n","import { BaseModel, GenericIdentifier } from '../../generic/model/base.model'\r\n\r\nexport class Lead extends BaseModel<Lead> {\r\n id: string\r\n acceptsNewsletter: boolean\r\n email: string\r\n\r\n static get identifiersFields(): GenericIdentifier[] {\r\n return ['id']\r\n }\r\n}\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nexport class UnauthorizedError extends CustomError {\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","import { CustomError } from 'ts-custom-error'\r\n\r\nexport class UserAlreadyRegisteredError extends CustomError {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nexport class WeakPasswordError extends CustomError {\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","import { BaseModel, GenericIdentifier, NonFunctionPropertyNames } from '../../generic/model'\r\nimport { Shops } from './enums'\r\n\r\nimport { CategoryCondition, CategoryFilter, CategoryMetadata } from './types'\r\n\r\nexport class Category extends BaseModel<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 metadata: CategoryMetadata\r\n\r\n identifierFields(): NonFunctionPropertyNames<Category>[] {\r\n return ['id']\r\n }\r\n\r\n static get identifiersFields(): GenericIdentifier[] {\r\n return ['id']\r\n }\r\n}\r\n","export enum GenderDestination {\r\n FEMALE = 'female',\r\n MALE = 'male',\r\n UNISEX = 'unisex',\r\n}\r\n","export enum Shops {\r\n MENSMARKET = `mensmarket`,\r\n GLAMSHOP = 'Glamshop',\r\n GLAMPOINTS = 'Glampoints',\r\n ALL = 'ALL'\r\n}\r\n","import { Type } from 'class-transformer'\r\nimport { BaseModel, GenericIdentifier, NonFunctionPropertyNames } from '../../generic/model'\r\n\r\nimport { KitProduct } from './kit-product'\r\nimport { ProductGender, ProductMetadata, ProductReview, ShopDescription, ShopPrice, Stock } from './types'\r\nimport { Variant } from './variant'\r\n\r\nexport class Product extends BaseModel<Product> {\r\n id: string\r\n name: string\r\n slug: string\r\n description: ShopDescription\r\n sku: string\r\n price: ShopPrice\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 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 isKit?: boolean\r\n rate?: number\r\n gender?: ProductGender\r\n shoppingCount?: number\r\n metadata: ProductMetadata\r\n\r\n @Type(() => KitProduct)\r\n kitProducts?: KitProduct[]\r\n\r\n identifierFields(): NonFunctionPropertyNames<Product>[] {\r\n return ['id']\r\n }\r\n\r\n static get identifiersFields(): GenericIdentifier[] {\r\n return ['id']\r\n }\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { BaseModel } from '../../generic/model'\r\n\r\nimport { Product } from './product'\r\n\r\ntype KitProductIdentifiers = 'productId' | 'kitProducId'\r\n\r\nexport class KitProduct extends BaseModel<KitProduct, KitProductIdentifiers> {\r\n productId: string\r\n kitProductId: string\r\n quantity: number\r\n\r\n @Type(() => Product)\r\n kit: Product\r\n\r\n @Type(() => Product)\r\n product: Product\r\n\r\n static get identifiersFields(): KitProductIdentifiers[] {\r\n return ['productId', 'kitProducId']\r\n }\r\n}\r\n","import { BaseModel, NonFunctionPropertyNames } from '../../generic/model'\r\n\r\nimport { ShopPrice, Stock, VariantGrade } from './types'\r\n\r\nexport type ProductVariantIdentifiers = 'id' | 'productId'\r\n\r\nexport class Variant extends BaseModel<Variant, ProductVariantIdentifiers> {\r\n id: string\r\n productId: string\r\n sku: string\r\n price: ShopPrice\r\n EAN: string\r\n stock: Stock\r\n grade?: VariantGrade[]\r\n costPrice: number\r\n weight: number\r\n createdAt?: Date\r\n updatedAt?: Date\r\n\r\n identifierFields(): NonFunctionPropertyNames<Variant>[] {\r\n return ['id']\r\n }\r\n\r\n static get identifiersFields(): ProductVariantIdentifiers[] {\r\n return ['id', 'productId']\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 = 'Enviado',\r\n ENTREGUE = '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, GenericIdentifier } from '../../generic/model/base.model'\r\n\r\nexport class ShippingMethod extends BaseModel<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 static get identifiersFields(): GenericIdentifier[] {\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, GenericIdentifier } from '../../generic/model/base.model'\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> {\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 static get identifiersFields(): GenericIdentifier[] {\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, GenericIdentifier } from '../../../generic/model/base.model'\r\nimport { Coupon } from '../coupons/coupon'\r\nimport { User } from '../../../users/models/user'\r\n\r\nimport { SubscriptionPlan } from './plan'\r\n\r\nexport class CheckoutSubscription extends BaseModel<CheckoutSubscription> {\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 static get identifiersFields(): GenericIdentifier[] {\r\n return ['id']\r\n }\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { BaseModel, GenericIdentifier } from '../../generic/model/base.model'\r\nimport { Shops, Category } from '../../catalog/models'\r\n\r\nexport class Buy2Win extends BaseModel<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 static get identifiersFields(): GenericIdentifier[] {\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, GenericIdentifier } from '../../generic/model'\r\nimport { Banner, Benefit, HomeDataStructure } from './types'\r\n\r\nexport class Home extends BaseModel<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 minValueForFreeShipping: number\r\n\r\n static get identifiersFields(): GenericIdentifier[] {\r\n return ['id']\r\n }\r\n}\r\n","import { BaseModel, GenericIdentifier } from '../../generic/model'\r\nimport { MenuNav } from './types/menu-nav.type'\r\n\r\nexport class ShopMenu extends BaseModel<ShopMenu> {\r\n menuNav: MenuNav[]\r\n id: string\r\n\r\n static get identifiersFields(): GenericIdentifier[] {\r\n return ['id']\r\n }\r\n}\r\n","import { BaseModel, GenericIdentifier } from '../../generic/model'\r\nimport { ShopBanner, ShopBrands, ShopCarousel, ShopCollection } from './types'\r\n\r\nexport class ShopSettings extends BaseModel<ShopSettings> {\r\n id: string\r\n name: string\r\n shop: string\r\n sections: (ShopBanner | ShopCarousel | ShopCollection | ShopBrands)[]\r\n\r\n static get identifiersFields(): GenericIdentifier[] {\r\n return ['id']\r\n }\r\n}\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nexport class InvalidArgumentError extends CustomError {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nexport class RequiredArgumentError extends CustomError {\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","import { CustomError } from 'ts-custom-error'\r\n\r\nexport class NotFoundError extends CustomError {\r\n constructor(readonly message) {\r\n super(message)\r\n }\r\n}\r\n","import { CustomError } from 'ts-custom-error'\r\n\r\nexport class DuplicatedResultsError extends CustomError {\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 { NotFoundError } from '../../../errors'\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 get(index: string): Promise<Partial<T>> {\r\n try {\r\n const { data } = await axios({\r\n url: `${this.config.url}/${index}`,\r\n method: 'GET',\r\n headers: { Authorization: `Basic ${this.config.credential}` },\r\n })\r\n\r\n return data._source\r\n } catch (error) {\r\n throw new NotFoundError(error.message)\r\n }\r\n }\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 async save(index: string, data: Partial<T>): Promise<void> {\r\n await axios({\r\n url: `${this.config.url}/${index}`,\r\n method: 'PUT',\r\n headers: { Authorization: `Basic ${this.config.credential}` },\r\n data,\r\n })\r\n }\r\n\r\n async delete(index: string): Promise<void> {\r\n await axios({\r\n url: `${this.config.url}/${index}`,\r\n method: 'DELETE',\r\n headers: { Authorization: `Basic ${this.config.credential}` },\r\n })\r\n }\r\n}\r\n","import { Product, Shops } from '../../../domain'\r\nimport { ProductHasuraGraphQL } from '../../hasura-graphql'\r\nimport { AxiosAdapter } from '../adapters'\r\n\r\nexport class ProductsIndex {\r\n constructor(private readonly adapter: AxiosAdapter<Product>) {}\r\n\r\n async get(id): Promise<Product> {\r\n const data = await this.adapter.get(`products/_doc/${id}`)\r\n\r\n return Product.toInstance(data)\r\n }\r\n\r\n async findById(ids: string[], options?: { hasStock: boolean; size: number; shop: Shops }): Promise<Product[]> {\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 'type'\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 published: 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 async save(product: ProductHasuraGraphQL): Promise<void> {\r\n delete product.createdAt\r\n delete product.updatedAt\r\n delete product.kitProducts\r\n\r\n try {\r\n if (!product.firestoreId) throw new Error('Is not a product from firestore')\r\n\r\n await this.get(product.firestoreId)\r\n\r\n await this.adapter.save(`products/_doc/${product.firestoreId}`, product.toPlain())\r\n } catch (error) {\r\n console.error(error.message)\r\n\r\n await this.adapter.save(`products/_doc/${product.id}`, product.toPlain())\r\n }\r\n }\r\n\r\n async delete(product: ProductHasuraGraphQL): Promise<void> {\r\n try {\r\n await this.get(product.firestoreId)\r\n\r\n await this.adapter.delete(`products/_doc/${product.firestoreId}`)\r\n } catch (error) {\r\n await this.adapter.delete(`products/_doc/${product.id}`)\r\n }\r\n }\r\n}\r\n","import { CollectionReference, DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\r\n\r\nimport {\r\n BaseModelBuilder,\r\n ModelBaseStructure,\r\n NonFunctionAndIdentifierPropertiesWithNoPartial,\r\n NonFunctionAndIdentifierPropertyNames,\r\n} from '../../../../domain'\r\nimport { MixinCtor } from '../../../../utils'\r\nimport { FirestoreFieldType } from '../enums'\r\nimport { FirestoreRepository } from '../types'\r\n\r\nexport const withFirestore = <TBase extends ModelBaseStructure, T extends MixinCtor = MixinCtor>(\r\n MixinBase: T,\r\n): MixinCtor<FirestoreRepository<TBase>, never> => {\r\n const isObjectsAndNoDate = (data: any): boolean =>\r\n data &&\r\n !Array.isArray(data) &&\r\n typeof data === 'object' &&\r\n data?.constructor.name !== 'Timestamp' &&\r\n !('seconds' in data)\r\n const bindDate = (data: Record<string, any>, keyName: string): Record<string, any> => {\r\n if (data?.constructor.name === 'Timestamp') return data.toDate()\r\n if (data && typeof data === 'object' && 'seconds' in data) return new Date(data.seconds * 1000)\r\n if (typeof data === 'number' && ['createdAt', 'updatedAt'].includes(keyName)) return new Date(data)\r\n\r\n return data\r\n }\r\n const bindAllDateFromObject = (data: {}): NonFunctionAndIdentifierPropertiesWithNoPartial<TBase> => {\r\n return Object.keys(data).reduce(\r\n (object, key) => ({\r\n ...object,\r\n [key]: isObjectsAndNoDate(data[key])\r\n ? bindAllDateFromObject(data[key])\r\n : Array.isArray(data[key])\r\n ? data[key].map((element) => (isObjectsAndNoDate(element) ? bindAllDateFromObject(element) : element))\r\n : bindDate(data[key], key),\r\n }),\r\n {} as NonFunctionAndIdentifierPropertiesWithNoPartial<TBase>,\r\n )\r\n }\r\n\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 fields: Record<NonFunctionAndIdentifierPropertyNames<TBase>, FirestoreFieldType>\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 let bindedData: NonFunctionAndIdentifierPropertiesWithNoPartial<TBase>\r\n\r\n try {\r\n const ids = { id: snap.id }\r\n\r\n bindedData = bindAllDateFromObject(data)\r\n\r\n return this.model.toInstance({ ...bindedData, ...ids })\r\n } catch (error) {\r\n console.info('id', snap.id)\r\n console.info('data', JSON.stringify(bindedData))\r\n console.error(error)\r\n\r\n throw error\r\n }\r\n },\r\n }\r\n }\r\n }\r\n}\r\n","import { QuerySnapshot, QueryDocumentSnapshot } from '@firebase/firestore-types'\r\n\r\nimport { ModelBaseStructure } from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository, FirestoreSubRepository } from '../types'\r\nimport { isNil, MixinCtor } from '../../../../utils'\r\n\r\nexport const withHelpers = <TMixinBase extends MixinCtor = MixinCtor>(MixinBase: MixinCtor & TMixinBase) => {\r\n return class extends MixinBase implements FirestoreHelpers {\r\n toArray<T extends ModelBaseStructure>(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 ModelBaseStructure>(\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 { ModelBaseStructure, GetRepository, NonFunctionProperties } from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\r\nimport { isNil, MergeConstructorParams, MixinCtor } from '../../../../utils'\r\nimport { NotFoundError } from '../../../../errors'\r\n\r\nexport const withGetFirestore = <\r\n TBase extends ModelBaseStructure,\r\n TMixinBase extends MixinCtor<FirestoreRepository<TBase>>,\r\n>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n): MixinCtor<\r\n FirestoreRepository<TBase> & InstanceType<TMixinBase> & GetRepository<TBase> & FirestoreHelpers,\r\n MergeConstructorParams<{}, ConstructorParameters<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 } as any\r\n}\r\n","export enum FirestoreFieldType {\r\n String = 'string',\r\n Number = 'number',\r\n Boolean = 'boolean',\r\n Timestamp = 'timestamp',\r\n Array = 'array',\r\n Map = 'map',\r\n}\r\n","import { CollectionReference, Query, WhereFilterOp } from '@firebase/firestore-types'\r\n\r\nimport {\r\n FindRepository,\r\n ModelBaseStructure,\r\n NonFunctionPropertyNames,\r\n RepositoryFindField,\r\n RepositoryFindFielters,\r\n RepositoryFindFieltersOptions,\r\n RepositoryFindResult,\r\n RepositoryLimitOptions,\r\n RepositoryOrderBy,\r\n Where,\r\n} from '../../../../domain'\r\nimport { isDate, isNil, isNumber, isObject, isString, MergeConstructorParams, MixinCtor, set } from '../../../../utils'\r\nimport { FirestoreFieldType } from '../enums'\r\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\r\n\r\nexport const withFindFirestore = <\r\n TBase extends ModelBaseStructure,\r\n TMixinBase extends MixinCtor<FirestoreRepository<TBase>>,\r\n>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n): MixinCtor<\r\n FirestoreRepository<TBase> & InstanceType<TMixinBase> & FindRepository<TBase> & FirestoreHelpers,\r\n MergeConstructorParams<{}, ConstructorParameters<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,\r\n limits,\r\n orderBy,\r\n }: {\r\n filters?: RepositoryFindFielters<TBase>\r\n limits?: RepositoryLimitOptions<TBase>\r\n orderBy?: RepositoryOrderBy<TBase>\r\n } = {}): Promise<RepositoryFindResult<TBase>> {\r\n const orderByKeys = Object.keys(orderBy || {})\r\n let query: CollectionReference<TBase> | Query<TBase> = this.collection(\r\n this.buildCollectionPathForFind(filters || {}),\r\n )\r\n\r\n query = this.makeFirestoreWhere(query, filters || {})\r\n\r\n if (orderByKeys.length) {\r\n const filtersKeysWithUnordered = Object.keys(filters || {}).filter(\r\n (filterKey) => !orderByKeys.includes(filterKey),\r\n )\r\n\r\n if (filtersKeysWithUnordered.length)\r\n filtersKeysWithUnordered.forEach(\r\n (filterKey) =>\r\n (orderBy = {\r\n ...(![Where.EQUALS].includes(filters[filterKey].operator) ? { [filterKey]: 'asc' } : {}),\r\n ...orderBy,\r\n }),\r\n )\r\n\r\n Object.keys(orderBy).forEach((fieldName) => (query = query.orderBy(fieldName, orderBy[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(filters?.[parentIdField])\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 (\r\n Array.isArray(options?.value) &&\r\n (this.fields[firestoreFieldName] === FirestoreFieldType.Array || !this.fields[firestoreFieldName])\r\n )\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 (\r\n options?.operator === Where.IN &&\r\n Array.isArray(options?.value) &&\r\n (this.fields[firestoreFieldName] === FirestoreFieldType.Array || !this.fields[firestoreFieldName])\r\n )\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.toString()}.${key}`, options[key]),\r\n queryReference,\r\n )\r\n }\r\n\r\n return queryReference.where(\r\n firestoreFieldName,\r\n (options?.operator as WhereFilterOp) || '==',\r\n options?.value || options,\r\n )\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 (this.model.isModel(limits.offset))\r\n query = query.startAfter(\r\n await this.collection(this.buildCollectionPathForFind(filters))\r\n .doc(limits.offset[limits.offset.identifiersFields.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 } as any\r\n}\r\n","import { DocumentReference } from '@firebase/firestore-types'\r\n\r\nimport { CreateRepository, CreateRepositoryParams, ModelBaseStructure } from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\r\nimport { isEmpty, MergeConstructorParams, MixinCtor } from '../../../../utils'\r\n\r\nexport const withCreateFirestore = <\r\n TBase extends ModelBaseStructure,\r\n TMixinBase extends MixinCtor<FirestoreRepository<TBase>>,\r\n>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n): MixinCtor<\r\n FirestoreRepository<TBase> & InstanceType<TMixinBase> & CreateRepository<TBase> & FirestoreHelpers,\r\n MergeConstructorParams<{}, ConstructorParameters<TMixinBase>>\r\n> => {\r\n return class CreateFirestore extends MixinBase implements CreateRepository<TBase> {\r\n async create(data: CreateRepositoryParams<TBase>): Promise<TBase> {\r\n const docRef = await this.save(this.model.toInstance(data as any))\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.identifiersFields.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 } as any\r\n}\r\n","import firebase from 'firebase'\r\n\r\nimport {\r\n ModelBaseStructure,\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, MergeConstructorParams, MixinCtor, PropType } from '../../../../utils'\r\n\r\nexport type UpdateFirestoreRepositoryType<MBase extends ModelBaseStructure> = UpdateRepository<MBase> & {\r\n paramsToPlain(params: RepositoryUpdateParams<MBase>): Partial<MBase>\r\n}\r\n\r\nexport const withUpdateFirestore = <\r\n TBase extends ModelBaseStructure,\r\n TMixinBase extends MixinCtor<FirestoreRepository<TBase>>,\r\n>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n): MixinCtor<\r\n FirestoreRepository<TBase> & UpdateRepository<TBase> & InstanceType<TMixinBase> & FirestoreHelpers,\r\n MergeConstructorParams<{}, ConstructorParameters<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.identifiersFields.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 (model.isModel(params)) return params.toPlain()\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 } as any\r\n}\r\n","import { IdentifiersModel, ModelBaseStructure, DeleteRepository, DeleteRepositoryParams } from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\r\nimport { MergeConstructorParams, MixinCtor } from '../../../../utils'\r\n\r\nexport const withDeleteFirestore = <\r\n TBase extends ModelBaseStructure,\r\n TMixinBase extends MixinCtor<FirestoreRepository<TBase>>,\r\n>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n): MixinCtor<\r\n FirestoreRepository<TBase> & InstanceType<TMixinBase> & DeleteRepository<TBase> & FirestoreHelpers,\r\n MergeConstructorParams<{}, ConstructorParameters<TMixinBase>>\r\n> => {\r\n return class DeleteFirestore extends MixinBase implements DeleteRepository<TBase> {\r\n async delete(identifiers: DeleteRepositoryParams<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: IdentifiersModel<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 } as any\r\n}\r\n","import { CollectionReference } from '@firebase/firestore-types'\r\n\r\nimport { IdentifiersModel, ModelBaseStructure } from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository, FirestoreSubRepository } from '../types'\r\nimport { MergeConstructorParams, MixinCtor } from '../../../../utils'\r\n\r\nexport const withSubCollection = <\r\n TBase extends ModelBaseStructure,\r\n TBaseParent extends ModelBaseStructure,\r\n TMixinBase extends MixinCtor<FirestoreRepository<TBase>>,\r\n>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase>> & TMixinBase,\r\n ParentModel: new () => TBaseParent,\r\n): MixinCtor<\r\n FirestoreRepository<TBase> &\r\n InstanceType<TMixinBase> &\r\n FirestoreSubRepository<TBase, InstanceType<typeof ParentModel>> &\r\n FirestoreHelpers,\r\n MergeConstructorParams<{}, ConstructorParameters<TMixinBase>>\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: keyof IdentifiersModel<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 } as any\r\n}\r\n","import { ModelBaseStructure, CrudRepository } from '../../../../domain'\r\nimport { FirestoreHelpers, FirestoreRepository } from '../types'\r\nimport { MergeConstructorParams, 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 = <\r\n TBase extends ModelBaseStructure,\r\n Repository = CrudRepository<TBase>,\r\n TMixinBase extends MixinCtor = MixinCtor,\r\n>(\r\n MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase,\r\n): MixinCtor<\r\n FirestoreRepository<TBase> & Repository & FirestoreHelpers,\r\n MergeConstructorParams<{}, ConstructorParameters<TMixinBase>>\r\n> => {\r\n return class CrudFirestore\r\n extends withUpdateFirestore(\r\n withGetFirestore(\r\n withFindFirestore(\r\n withDeleteFirestore(\r\n withCreateFirestore(MixinBase as MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers>),\r\n ),\r\n ),\r\n ),\r\n )\r\n implements CrudRepository<TBase> {} as any\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 } 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 { 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 { 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 { 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 { 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 { DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\r\n\r\nimport { BeautyProfile, User, UserRepository } from '../../../../../domain'\r\nimport { Base } from '../../../../../utils'\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\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 ) {\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.find({ filters: {[field]: 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 { 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 { Category, CategoryRepository, Product, Shops } from '../../../../../domain'\r\nimport { Base, chunk } from '../../../../../utils'\r\n\r\nimport { DuplicatedResultsError, NotFoundError, RequiredArgumentError } from '../../../../../errors'\r\nimport { withCrudFirestore, withFirestore, withHelpers } from '../../mixins'\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\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('published', '==', 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 { Product, ProductRepository, ReviewStatusParams, ReviewWithProductData, Where } from '../../../../../domain'\r\nimport { Base } from '../../../../../utils'\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 private reviews: Partial<Record<ReviewStatusParams, ReviewWithProductData[]>> = {}\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): Promise<Product> {\r\n const result = await this.find({\r\n filters: {\r\n slug: { operator: Where.EQUALS, value: slug },\r\n },\r\n })\r\n\r\n return result?.data?.shift()\r\n }\r\n\r\n async fetchReviews(status: ReviewStatusParams): Promise<ReviewWithProductData[]> {\r\n const { data: products } = await this.find()\r\n\r\n products.forEach((product) => {\r\n if ([undefined, 0].includes(product.reviews?.length)) return\r\n\r\n const productInfo = {\r\n productId: product.id,\r\n productName: product.name,\r\n productSku: product.sku,\r\n }\r\n\r\n this.reviews.pending = []\r\n this.reviews.approved = []\r\n this.reviews.rejected = []\r\n\r\n product.reviews.forEach((review) => {\r\n if ([null, undefined].includes(review.status)) return this.reviews.pending.push({ ...review, ...productInfo })\r\n if (review.status === false) return this.reviews.rejected.push({ ...review, ...productInfo })\r\n if (!!review.status) return this.reviews.approved.push({ ...review, ...productInfo })\r\n })\r\n })\r\n\r\n return this.reviews[status]\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 { DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types'\r\n\r\nimport { Order, OrderRepository } from '../../../../../domain'\r\nimport { Base } from '../../../../../utils'\r\nimport { FirestoreFieldType } from '../../enums'\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 this.fields = {\r\n status: FirestoreFieldType.String,\r\n }\r\n }\r\n\r\n buildModelInstance(): {\r\n toFirestore: (data: Order) => DocumentData\r\n fromFirestore: (snap: QueryDocumentSnapshot<Order>) => Order\r\n } {\r\n const { fromFirestore, toFirestore } = super.buildModelInstance()\r\n return {\r\n toFirestore: (data: Order): DocumentData => toFirestore(data?.toPlain ? data.toPlain() : data),\r\n fromFirestore: (snap: QueryDocumentSnapshot<Order>): Order => {\r\n const instance = fromFirestore(snap)\r\n\r\n return this.orderFromFirestore(instance)\r\n },\r\n }\r\n }\r\n\r\n private orderFromFirestore = (order: Order): Order => {\r\n if (!!order?.lineItems?.length) {\r\n order.lineItems = order.lineItems.map((lineItem) => {\r\n if (!!lineItem.price?.[order.shop]) {\r\n const shopPrice = lineItem['price'][order.shop]\r\n\r\n lineItem['price'] = shopPrice\r\n }\r\n\r\n return lineItem\r\n })\r\n }\r\n\r\n return 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'\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'\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","import { ModelBaseStructure, NonFunctionAndIdentifierPropertyNames } from '../../../../domain'\r\nimport { isNil, isObject } from '../../../../utils'\r\nimport { ColumnOptions, HasuraGraphQLFields } from '../../types'\r\n\r\ntype FindByAttributeResult<\r\n MBase extends ModelBaseStructure<MBase>,\r\n Attribute extends NonFunctionAndIdentifierPropertyNames<MBase>,\r\n> = ColumnOptions<MBase[Attribute], MBase> & { attributeName: Attribute }\r\n\r\nexport class AttributeOptionHelper {\r\n static FindByAttribute = <\r\n MBase extends ModelBaseStructure,\r\n Attribute extends NonFunctionAndIdentifierPropertyNames<MBase> = NonFunctionAndIdentifierPropertyNames<MBase>,\r\n >(\r\n attributeName: Attribute,\r\n fields: HasuraGraphQLFields<MBase>,\r\n ): FindByAttributeResult<MBase, Attribute> => {\r\n if (fields.includes(attributeName as any)) return { columnName: attributeName.toString(), attributeName }\r\n\r\n const field = fields.find(\r\n (columnOption) => isObject(columnOption) && Object.keys(columnOption).includes(attributeName.toString()),\r\n )\r\n const fieldOption = field?.[attributeName.toString()]\r\n\r\n if (isNil(fieldOption)) return { columnName: attributeName.toString(), attributeName }\r\n if (Array.isArray(fieldOption)) return { columnName: attributeName.toString(), attributeName, fields: fieldOption }\r\n\r\n return { attributeName, columnName: attributeName.toString(), ...fieldOption }\r\n }\r\n\r\n static CheckIsColumnOption = <Model extends ModelBaseStructure, ParentModel extends ModelBaseStructure>(\r\n fieldValue: ColumnOptions<Model, ParentModel>,\r\n ): fieldValue is ColumnOptions<Model, ParentModel> => !!fieldValue.columnName\r\n\r\n static FindColumnOptionFromList = <Model extends ModelBaseStructure, ParentModel extends ModelBaseStructure>(\r\n columnName: string,\r\n fields: HasuraGraphQLFields<ParentModel>,\r\n ): ColumnOptions<Model, ParentModel> & { attributeName: NonFunctionAndIdentifierPropertyNames<ParentModel> } => {\r\n if (fields.includes(columnName as any))\r\n return { columnName, attributeName: columnName as NonFunctionAndIdentifierPropertyNames<ParentModel> }\r\n\r\n const field =\r\n fields.find(\r\n (columnOption) =>\r\n isObject(columnOption) &&\r\n Object.values(columnOption).find(\r\n (option) => AttributeOptionHelper.CheckIsColumnOption(option) && option.columnName === columnName,\r\n )?.columnName === columnName,\r\n ) || {}\r\n const attributeName = Object.keys(field).find(\r\n (fieldOptionFromList) =>\r\n AttributeOptionHelper.CheckIsColumnOption(field[fieldOptionFromList]) ||\r\n Array.isArray(field[fieldOptionFromList]),\r\n )\r\n const fieldOption = field?.[attributeName]\r\n\r\n if (Array.isArray(fieldOption))\r\n return { attributeName: attributeName as NonFunctionAndIdentifierPropertyNames<ParentModel>, fields: fieldOption }\r\n\r\n return {\r\n attributeName: (attributeName as NonFunctionAndIdentifierPropertyNames<ParentModel>) || columnName,\r\n columnName,\r\n ...fieldOption,\r\n }\r\n }\r\n}\r\n","export enum HasuraGraphQLWhere {\r\n EQUALS = '_eq',\r\n GT = '_gt',\r\n GTE = '_gte',\r\n IN = '_in',\r\n NOTIN = '_nin',\r\n LT = '_lt',\r\n LTE = '_lte',\r\n LIKE = '_like',\r\n NOTLIKE = '_nlike',\r\n ISNULL = '_is_null',\r\n ISNOTNULL = '_is_null',\r\n}\r\n","export enum HasuraGraphQLColumnType {\r\n Int = 'Int',\r\n Float = 'Float',\r\n Boolean = 'Boolean',\r\n String = 'String',\r\n DateTime = 'timestampz',\r\n Json = 'json',\r\n Jsonb = 'jsonb',\r\n Enum = 'enum',\r\n Uuid = 'uuid',\r\n}\r\n","import { ModelBaseStructure, RepositoryFindFieltersOptions, Where } from '../../../../domain'\r\nimport { isNil } from '../../../../utils'\r\nimport { ColumnOptions } from '../../types'\r\n\r\nexport class FilterOptionHelper {\r\n static CheckIfIsFilterOption = <Model extends ModelBaseStructure>(\r\n filter: any,\r\n ): filter is RepositoryFindFieltersOptions<Model, any> => !isNil(filter?.operator)\r\n\r\n static GetValueFromFilter = <Model extends ModelBaseStructure>(\r\n filter: RepositoryFindFieltersOptions<Model, any>,\r\n fieldOption: ColumnOptions<any, any>,\r\n ): any => {\r\n if (!FilterOptionHelper.CheckIfIsFilterOption(filter)) return filter\r\n if (filter.operator === Where.ISNULL) return true\r\n if (filter.operator === Where.ISNOTNULL) return false\r\n\r\n const converter = fieldOption.to\r\n ? fieldOption.to\r\n : (value) =>\r\n filter.operator === Where.LIKE && !Array.isArray(filter.value) && value.indexOf('%') < 0\r\n ? `%${value}%`\r\n : value\r\n\r\n return Array.isArray(filter.value) && !fieldOption.fields && [Where.IN, Where.NOTIN].includes(filter.operator)\r\n ? filter.value.map((fieldValue) => converter(fieldValue))\r\n : converter(filter.value as any)\r\n }\r\n}\r\n","import {\r\n ModelBaseStructure,\r\n NonFunctionAndIdentifierPropertyNames,\r\n NonFunctionPropertyNames,\r\n RepositoryFindFielters,\r\n RepositoryFindFieltersOptions,\r\n Where,\r\n} from '../../../../domain'\r\nimport { isNil, isObject } from '../../../../utils'\r\nimport { HasuraGraphQLColumnType, HasuraGraphQLWhere } from '../../enums'\r\nimport { ColumnOptions, HasuraGraphQLFields, VariableOptions } from '../../types'\r\nimport { AttributeOptionHelper } from './attribute-option.helper'\r\nimport { FilterOptionHelper } from './filter-option.helper'\r\n\r\nexport class BindFilterQueryHelper {\r\n static MakeGraphQLWhere = <MBase extends ModelBaseStructure>(\r\n filter: RepositoryFindFielters<MBase>,\r\n fields: HasuraGraphQLFields<MBase>,\r\n ): VariableOptions =>\r\n Object.keys(filter).reduce((variables: VariableOptions, fieldName: string) => {\r\n const columnOption = AttributeOptionHelper.FindByAttribute(\r\n fieldName as NonFunctionAndIdentifierPropertyNames<MBase>,\r\n fields,\r\n )\r\n\r\n if (!columnOption.bindFindFilter)\r\n return {\r\n ...variables,\r\n ...{\r\n [columnOption.columnName]: BindFilterQueryHelper.BuildWhereSentence(\r\n fieldName as NonFunctionAndIdentifierPropertyNames<MBase>,\r\n filter[fieldName],\r\n fields,\r\n ),\r\n },\r\n }\r\n\r\n const builtFilter: RepositoryFindFieltersOptions<\r\n MBase,\r\n NonFunctionPropertyNames<MBase>\r\n > = columnOption.bindFindFilter(filter[fieldName])\r\n\r\n return {\r\n ...variables,\r\n ...Object.keys(builtFilter).reduce(\r\n (variablesList: VariableOptions, columnName: string) => ({\r\n ...variablesList,\r\n [columnName]: BindFilterQueryHelper.BuildWhereSentence(\r\n fieldName as NonFunctionAndIdentifierPropertyNames<MBase>,\r\n builtFilter[columnName],\r\n fields,\r\n ),\r\n }),\r\n {},\r\n ),\r\n }\r\n }, {})\r\n\r\n static BuildWhereSentence = <MBase extends ModelBaseStructure>(\r\n field: NonFunctionAndIdentifierPropertyNames<MBase>,\r\n options: RepositoryFindFieltersOptions<MBase, NonFunctionPropertyNames<MBase>>,\r\n fields: HasuraGraphQLFields<MBase>,\r\n ): VariableOptions => {\r\n const fieldSentenceOptions = AttributeOptionHelper.FindByAttribute<MBase>(field, fields)\r\n\r\n if (\r\n !Array.isArray(options) &&\r\n isObject(options) &&\r\n isNil(options?.operator) &&\r\n isNil(options?.value) &&\r\n isNil(fieldSentenceOptions?.to)\r\n )\r\n return Object.keys(options).reduce((variables, key) => {\r\n const fieldOptions = AttributeOptionHelper.FindByAttribute<MBase>(\r\n key as NonFunctionAndIdentifierPropertyNames<MBase>,\r\n fieldSentenceOptions?.fields || (fields as any),\r\n )\r\n const columnName = fieldOptions.columnName\r\n const columnFields = fieldOptions.fields\r\n\r\n return {\r\n ...variables,\r\n [columnName]: BindFilterQueryHelper.BuildWhereSentence<MBase>(\r\n key as NonFunctionAndIdentifierPropertyNames<MBase>,\r\n options[key],\r\n columnFields || ([] as any),\r\n ),\r\n }\r\n }, {})\r\n\r\n if (!Array.isArray(options) && !isNil(fieldSentenceOptions.fields))\r\n return {\r\n [fieldSentenceOptions.fields[0] as NonFunctionAndIdentifierPropertyNames<MBase>]:\r\n BindFilterQueryHelper.BuildOperatorSentence(\r\n options,\r\n fieldSentenceOptions as ColumnOptions<MBase[NonFunctionAndIdentifierPropertyNames<MBase>], MBase>,\r\n ),\r\n }\r\n\r\n if (isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))\r\n options = Object.values(options)[0] as RepositoryFindFieltersOptions<MBase, any>\r\n\r\n return Array.isArray(options)\r\n ? options.reduce(\r\n (whereSentence, option) => ({\r\n ...whereSentence,\r\n ...BindFilterQueryHelper.BuildOperatorSentence(\r\n option,\r\n fieldSentenceOptions as ColumnOptions<MBase[NonFunctionAndIdentifierPropertyNames<MBase>], MBase>,\r\n ),\r\n }),\r\n {},\r\n )\r\n : BindFilterQueryHelper.BuildOperatorSentence(\r\n options,\r\n fieldSentenceOptions as ColumnOptions<MBase[NonFunctionAndIdentifierPropertyNames<MBase>], MBase>,\r\n )\r\n }\r\n\r\n static BuildOperatorSentence = <MBase extends ModelBaseStructure>(\r\n options: RepositoryFindFieltersOptions<MBase, any>,\r\n fieldOption: ColumnOptions<any, any>,\r\n ): VariableOptions => ({\r\n [BindFilterQueryHelper.GetHasuraOperator(options, fieldOption)]: FilterOptionHelper.GetValueFromFilter(\r\n options,\r\n fieldOption,\r\n ),\r\n })\r\n\r\n static GetHasuraOperator = <MBase extends ModelBaseStructure>(\r\n options: RepositoryFindFieltersOptions<MBase, NonFunctionPropertyNames<MBase>>,\r\n fieldOption: ColumnOptions<any, any>,\r\n ): HasuraGraphQLWhere =>\r\n FilterOptionHelper.CheckIfIsFilterOption(options)\r\n ? fieldOption.type === HasuraGraphQLColumnType.Jsonb\r\n ? BindFilterQueryHelper.GetHasuraJsonbOperator(options)\r\n : HasuraGraphQLWhere[\r\n Object.keys(HasuraGraphQLWhere).find(\r\n (graphQLOperator) =>\r\n graphQLOperator === Object.keys(Where).find((operator) => Where[operator] === options?.operator),\r\n )\r\n ]\r\n : HasuraGraphQLWhere.EQUALS\r\n\r\n static GetHasuraJsonbOperator = <MBase extends ModelBaseStructure>(\r\n options: RepositoryFindFieltersOptions<MBase, NonFunctionPropertyNames<MBase>>,\r\n ): HasuraGraphQLWhere =>\r\n options.operator === Where.IN\r\n ? '_contains'\r\n : options.operator === Where.LIKE\r\n ? '_has_keys_any'\r\n : HasuraGraphQLWhere[\r\n Object.keys(HasuraGraphQLWhere).find(\r\n (graphQLOperator) =>\r\n graphQLOperator === Object.keys(Where).find((operator) => Where[operator] === options?.operator),\r\n )\r\n ]\r\n}\r\n","import {\r\n BaseModel,\r\n ModelBaseStructure,\r\n NonFunctionAndIdentifierPropertyNames,\r\n NonFunctionProperties,\r\n} from '../../../../domain'\r\nimport { isDate, isEmpty, isNil, isObject, isString, parseDateTime } from '../../../../utils'\r\nimport { Fields, GraphQLParams, HasuraGraphQLFields } from '../../types'\r\n\r\nimport { AttributeOptionHelper } from './attribute-option.helper'\r\nimport { BindFilterQueryHelper } from './bind-filter-query.helper'\r\n\r\nexport class GraphQLFieldHelper {\r\n static CheckIsGraphQLParams = <Model extends ModelBaseStructure>(\r\n params: string | GraphQLParams<Model>[],\r\n ): params is GraphQLParams<Model>[] =>\r\n !isString(params) && Array.isArray(params) && params.length >= 0 && !!params[0].operation\r\n\r\n static ConvertModelFieldsToGraphQLFields = <Model extends ModelBaseStructure>(\r\n fields: HasuraGraphQLFields<Model>,\r\n ): Fields => {\r\n return fields\r\n ?.map((field) => {\r\n if (isString(field)) return field.toString()\r\n\r\n const fieldName = Object.keys(field).shift()\r\n const fieldValue = field[fieldName]\r\n\r\n if (Array.isArray(fieldValue))\r\n return { [fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue) }\r\n if (!AttributeOptionHelper.CheckIsColumnOption(fieldValue)) return\r\n if (fieldValue.fields)\r\n return !fieldValue.filters\r\n ? {\r\n [fieldValue.columnName || fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(\r\n fieldValue.fields,\r\n ),\r\n }\r\n : {\r\n operation: fieldValue.columnName || fieldName,\r\n fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),\r\n variables: {\r\n [`${fieldValue.columnName}_where`]: {\r\n name: 'where',\r\n type: fieldValue.filters.filterType,\r\n value: BindFilterQueryHelper.MakeGraphQLWhere(fieldValue.filters.filters, fieldValue.fields),\r\n required: true,\r\n },\r\n },\r\n }\r\n\r\n return fieldValue.columnName\r\n })\r\n .filter((field) => !!field)\r\n }\r\n\r\n static ConvertFieldValueFrom = <\r\n Model extends ModelBaseStructure,\r\n DataType extends Record<string, string | number | DataType | Date>,\r\n >(\r\n data: string | number | DataType | Date,\r\n fields: HasuraGraphQLFields<Model>,\r\n ): Partial<NonFunctionProperties<Model>> =>\r\n Object.keys(data).reduce((result, columnName) => {\r\n const {\r\n attributeName,\r\n fields: attributeFields,\r\n from,\r\n } = AttributeOptionHelper.FindColumnOptionFromList(columnName, fields)\r\n\r\n if (!!attributeFields && Array.isArray(attributeFields)) {\r\n if (Array.isArray(data[columnName]))\r\n return {\r\n ...result,\r\n [attributeName]: from\r\n ? from(data[columnName], data)\r\n : data[columnName].map((value) => GraphQLFieldHelper.ConvertFieldValueFrom(value, attributeFields)),\r\n }\r\n if (isObject(data[columnName]))\r\n return {\r\n ...result,\r\n [attributeName]: !!from\r\n ? from(data[columnName])\r\n : GraphQLFieldHelper.ConvertFieldValueFrom(data[columnName], attributeFields),\r\n }\r\n }\r\n\r\n if (!!from) return { ...result, [attributeName]: from(data[columnName], data) }\r\n\r\n return { ...result, [attributeName]: parseDateTime(data[columnName]) }\r\n }, {})\r\n\r\n static ConvertFieldValueTo = <\r\n Model extends ModelBaseStructure,\r\n DataType extends Record<string, string | number | DataType | Date>,\r\n >(\r\n instance: Model,\r\n fields: HasuraGraphQLFields<Model>,\r\n update = false,\r\n ): DataType => {\r\n const data: Partial<ModelBaseStructure> = instance.toPlain?.() || instance\r\n\r\n return Object.keys(data).reduce((result, attributeName) => {\r\n const {\r\n columnName,\r\n fields: attributeFields,\r\n foreignKeyColumn,\r\n to,\r\n bindPersistData,\r\n } = AttributeOptionHelper.FindByAttribute(attributeName as NonFunctionAndIdentifierPropertyNames<Model>, fields)\r\n\r\n if (bindPersistData) return { ...result, ...bindPersistData(data[attributeName], instance) }\r\n if (isNil(columnName)) return result\r\n if (\r\n !!foreignKeyColumn &&\r\n !isEmpty(foreignKeyColumn) &&\r\n !Object.keys(foreignKeyColumn).filter((key) => !data[attributeName]?.[key]).length\r\n )\r\n return Object.keys(foreignKeyColumn).reduce(\r\n (object, current) => ({ ...object, [foreignKeyColumn[current]]: data[attributeName]?.[current] }),\r\n { ...result },\r\n )\r\n\r\n if (update && isObject(data[attributeName]) && !isNil(attributeFields) && !isDate(data[attributeName]))\r\n return result\r\n\r\n if (!!columnName && Array.isArray(attributeFields) && isObject(data[attributeName])) {\r\n const converted = !isNil(columnName) && to ? to(instance[attributeName], instance) : data[attributeName]\r\n\r\n return {\r\n ...result,\r\n ...(converted !== undefined\r\n ? {\r\n [columnName]: {\r\n data:\r\n instance[attributeName] instanceof BaseModel\r\n ? GraphQLFieldHelper.ConvertFieldValueTo(data[attributeName], attributeFields)\r\n : converted,\r\n },\r\n }\r\n : {}),\r\n }\r\n }\r\n\r\n if (!!to) return { ...result, [columnName]: to(instance[attributeName], instance) }\r\n\r\n return { ...result, [columnName]: data[attributeName] }\r\n }, {} as DataType)\r\n }\r\n}\r\n","import { CreateRepository, CreateRepositoryParams, ModelBaseStructure } from '../../../domain'\r\nimport { MergeConstructorParams, MixinCtor } from '../../../utils'\r\nimport { GraphQLRepository, HasuraGraphQLFields } from '../types'\r\n\r\nimport { AttributeOptionHelper } from './helpers'\r\n\r\nexport type CreateConstructorParams = {\r\n insertGraphQLOperation?: string\r\n insertGraphQLObjectType?: string\r\n}\r\n\r\nexport const withCreateHasuraGraphQL = <\r\n MBase extends ModelBaseStructure,\r\n TMixinBase extends MixinCtor<GraphQLRepository<MBase>>,\r\n>(\r\n MixinBase: MixinCtor<GraphQLRepository<MBase>> & TMixinBase,\r\n): MixinCtor<\r\n GraphQLRepository<MBase> & InstanceType<TMixinBase> & CreateRepository<MBase>,\r\n MergeConstructorParams<CreateConstructorParams, ConstructorParameters<TMixinBase>>\r\n> => {\r\n return class CreateHasuraGraphQLMixin extends MixinBase implements CreateRepository<MBase> {\r\n insertGraphQLOperation: string\r\n insertGraphQLObjectType: string\r\n\r\n constructor(...params) {\r\n const options: CreateConstructorParams = params?.[0]\r\n\r\n super(...params)\r\n\r\n this.insertGraphQLOperation = options?.insertGraphQLOperation || `insert_${this.tableName}_one`\r\n this.insertGraphQLObjectType = options?.insertGraphQLObjectType || `${this.tableName}_insert_input`\r\n }\r\n\r\n async create(data: CreateRepositoryParams<MBase>): Promise<MBase> {\r\n const newData = await this.save(this.model.toInstance(data as any))\r\n\r\n return this.model.toInstance(newData)\r\n }\r\n\r\n async save(data: MBase): Promise<Partial<MBase>> {\r\n const primaryKeyColumns = this.model.identifiersFields.map(\r\n (field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName,\r\n ) as HasuraGraphQLFields<MBase>\r\n const foreignKeyColumns = this.fields\r\n .map((field) => {\r\n const columnOptions = Object.values(field).shift()\r\n\r\n return (\r\n AttributeOptionHelper.CheckIsColumnOption(columnOptions) &&\r\n columnOptions.foreignKeyColumn && [\r\n ...Object.values(columnOptions.foreignKeyColumn),\r\n {\r\n [columnOptions.columnName]: Object.keys(columnOptions.foreignKeyColumn).map(\r\n (foreignKeyField) =>\r\n AttributeOptionHelper.FindByAttribute(foreignKeyField as any, columnOptions?.fields)?.columnName ||\r\n foreignKeyField,\r\n ),\r\n },\r\n ]\r\n )\r\n })\r\n .filter(Boolean)\r\n .reduce((keys, current) => [...keys, ...current], [])\r\n\r\n const result = await this.mutation<MBase>(\r\n this.insertGraphQLOperation,\r\n [...primaryKeyColumns, ...foreignKeyColumns] as HasuraGraphQLFields<MBase>,\r\n {\r\n object: { type: this.insertGraphQLObjectType, required: true, value: this.convertDataToHasura(data) },\r\n },\r\n )\r\n\r\n return { ...data.toPlain(), ...this.convertDataFromHasura(result[this.insertGraphQLOperation]).toPlain() }\r\n }\r\n } as any\r\n}\r\n","import { DeleteRepository, DeleteRepositoryParams, ModelBaseStructure } from '../../../domain'\r\nimport { GraphQLRepository, HasuraGraphQLFields } from '../types'\r\nimport { isNil, MergeConstructorParams, MixinCtor } from '../../../utils'\r\n\r\nimport { AttributeOptionHelper } from './helpers'\r\n\r\nexport type DeleteConstructorParams = {\r\n deleteGraphQLOperation?: string\r\n}\r\n\r\nexport const withDeleteHasuraGraphQL = <\r\n MBase extends ModelBaseStructure,\r\n TMixinBase extends MixinCtor<GraphQLRepository<MBase>>,\r\n>(\r\n MixinBase: MixinCtor<GraphQLRepository<MBase>> & TMixinBase,\r\n): MixinCtor<\r\n GraphQLRepository<MBase> & DeleteRepository<MBase> & InstanceType<TMixinBase>,\r\n MergeConstructorParams<DeleteConstructorParams, ConstructorParameters<TMixinBase>>\r\n> => {\r\n return class DeleteHasuraGraphQLMixin extends MixinBase implements DeleteRepository<MBase> {\r\n deleteGraphQLOperation: string\r\n\r\n constructor(...params: any[]) {\r\n const options: DeleteConstructorParams = params?.[0]\r\n\r\n super(...params)\r\n\r\n this.deleteGraphQLOperation = options?.deleteGraphQLOperation || `delete_${this.tableName}_by_pk`\r\n }\r\n\r\n async delete(identifiers: DeleteRepositoryParams<MBase>): Promise<void> {\r\n const instance = this.model.toInstance(identifiers as any)\r\n\r\n await this.mutation(\r\n this.deleteGraphQLOperation,\r\n this.model.identifiersFields.map(\r\n (field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName,\r\n ) as HasuraGraphQLFields<MBase>,\r\n this.model.identifiersFields.reduce((ids, identifier) => {\r\n if (isNil(instance[identifier])) return ids\r\n\r\n const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields)\r\n const value = columnOption.to(identifiers[identifier.toString()], instance)\r\n\r\n return {\r\n ...ids,\r\n [columnOption.columnName]: {\r\n type: this.getAttributeGraphQLTypeOf(columnOption.type || value),\r\n value,\r\n required: true,\r\n },\r\n }\r\n }, {}),\r\n )\r\n }\r\n } as any\r\n}\r\n","import { mutation, query } from 'gql-query-builder'\r\nimport fetch from 'node-fetch'\r\n\r\nimport { BaseModelBuilder, ModelBaseStructure } from '../../../domain'\r\nimport {\r\n isBoolean,\r\n isInteger,\r\n isNaN,\r\n isNil,\r\n isNumber,\r\n isString,\r\n isUUID,\r\n MergeConstructorParams,\r\n MixinCtor,\r\n parseISO,\r\n} from '../../../utils'\r\nimport {\r\n GraphQLParams,\r\n GraphQLRepository,\r\n HasuraGraphQLAuthOptions,\r\n HasuraGraphQLFields,\r\n HasuraGraphQLHeaders,\r\n VariableOptions,\r\n} from '../types'\r\n\r\nimport { GraphQLFieldHelper } from './helpers'\r\n\r\nexport type ConstructorParams<Model extends ModelBaseStructure> = {\r\n tableName: string\r\n model: BaseModelBuilder<Model>\r\n fields: HasuraGraphQLFields<Model>\r\n endpoint: string\r\n authOptions: HasuraGraphQLAuthOptions\r\n}\r\n\r\nexport const withHasuraGraphQL = <MBase extends ModelBaseStructure, T extends MixinCtor = MixinCtor>(\r\n MixinBase: T,\r\n): MixinCtor<GraphQLRepository<MBase>, MergeConstructorParams<ConstructorParams<MBase>, ConstructorParameters<T>>> => {\r\n return class HasuraGraphQLMixin extends MixinBase implements GraphQLRepository<MBase> {\r\n tableName: string\r\n endpoint: string\r\n authOptions: HasuraGraphQLAuthOptions\r\n model: BaseModelBuilder<MBase>\r\n fields: HasuraGraphQLFields<MBase>\r\n\r\n get headers(): HasuraGraphQLHeaders {\r\n return {\r\n 'Content-Type': 'application/json',\r\n ...(isNil(this.authOptions.authToken) ? {} : { Authorization: this.authOptions.authToken }),\r\n ...(isNil(this.authOptions.adminSecret) ? {} : { 'X-Hasura-Admin-Secret': this.authOptions.adminSecret }),\r\n ...(isNil(this.authOptions.authRole)\r\n ? {}\r\n : { 'X-Hasura-Role': this.authOptions.authRole.role, 'X-Hasura-User-Id': this.authOptions.authRole.userId }),\r\n }\r\n }\r\n\r\n constructor(...params) {\r\n const options: ConstructorParams<MBase> = params[0]\r\n\r\n super(...params)\r\n\r\n this.tableName = options.tableName\r\n this.endpoint = options.endpoint\r\n this.authOptions = options.authOptions\r\n this.model = options.model\r\n this.fields = options.fields || (this.model.identifiersFields as HasuraGraphQLFields<MBase>)\r\n }\r\n\r\n async mutation<ReturnFields = any>(\r\n operation: string,\r\n fields?: HasuraGraphQLFields<MBase>,\r\n variables?: VariableOptions,\r\n ): Promise<ReturnFields> {\r\n const resultQuery = mutation({\r\n operation,\r\n variables,\r\n fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),\r\n })\r\n\r\n return this.fetch(resultQuery)\r\n }\r\n\r\n async query<ReturnFields = any>(\r\n operation: string | GraphQLParams<MBase>[],\r\n fields?: HasuraGraphQLFields<MBase>,\r\n variables?: VariableOptions,\r\n ): Promise<ReturnFields> {\r\n const resultQuery = GraphQLFieldHelper.CheckIsGraphQLParams(operation)\r\n ? query(\r\n operation.map((option) => ({\r\n operation: option.operation,\r\n variables: option.variables,\r\n fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(option.fields),\r\n })),\r\n )\r\n : query({\r\n operation,\r\n variables,\r\n fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),\r\n })\r\n\r\n return this.fetch(resultQuery)\r\n }\r\n\r\n async fetch<ReturnFields = any>(params: { variables: any; query: string }): Promise<ReturnFields> {\r\n const headers = this.headers\r\n const response = await fetch(`${this.endpoint}`, {\r\n method: 'POST',\r\n body: JSON.stringify(params),\r\n headers,\r\n })\r\n const result: any = await response.json()\r\n\r\n if (!isNil(result.errors)) throw new Error(JSON.stringify(result.errors))\r\n\r\n return result.data\r\n }\r\n\r\n getAttributeGraphQLTypeOf<FieldType>(value: FieldType): string {\r\n if (isUUID(value as any)) return 'uuid'\r\n if (isString(value)) return 'String'\r\n if (isBoolean(value)) return 'Boolean'\r\n if (value instanceof Date) return 'timestamptz'\r\n if (isInteger(value)) return 'Int'\r\n if (isNumber(value)) return 'numeric'\r\n\r\n throw new Error('Type not implemented yet')\r\n }\r\n\r\n checkIfIsDateTimeAndParse(value: string): Date | string {\r\n if (!/^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/.test(value)) return value\r\n\r\n const date = parseISO(value)\r\n\r\n if (isNaN(date.getTime())) return value\r\n\r\n return date\r\n }\r\n\r\n convertDataFromHasura(data: Record<string, string | number>): MBase {\r\n const plain = GraphQLFieldHelper.ConvertFieldValueFrom(data, this.fields)\r\n\r\n return this.model.toInstance(plain)\r\n }\r\n\r\n convertDataToHasura(instance: MBase, update = false): Record<string, string | number> {\r\n return GraphQLFieldHelper.ConvertFieldValueTo(instance, this.fields, update)\r\n }\r\n }\r\n}\r\n","import {\r\n BaseModel,\r\n ModelBaseStructure,\r\n NonFunctionAndIdentifierProperties,\r\n RepositoryUpdateParams,\r\n UpdateOptionActions,\r\n UpdateOptions,\r\n UpdateRepository,\r\n} from '../../../domain'\r\nimport { isNil, MergeConstructorParams, MixinCtor } from '../../../utils'\r\nimport { GraphQLRepository, HasuraGraphQLFields } from '../types'\r\n\r\nimport { AttributeOptionHelper } from './helpers'\r\n\r\nexport type UpdateHasuraGraphQLRepositoryType<MBase extends ModelBaseStructure> = UpdateRepository<MBase> & {\r\n paramsToPlain(params: RepositoryUpdateParams<MBase>): Partial<MBase>\r\n}\r\n\r\nexport type UpdateConstructorParams = {\r\n updateGraphQLOperation?: string\r\n updateGraphQLObjectType?: string\r\n updateGraphQLPKType?: string\r\n}\r\n\r\nexport const withUpdateHasuraGraphQL = <\r\n MBase extends ModelBaseStructure,\r\n TMixinBase extends MixinCtor<GraphQLRepository<MBase>>,\r\n>(\r\n MixinBase: MixinCtor<GraphQLRepository<MBase>> & TMixinBase,\r\n): MixinCtor<\r\n GraphQLRepository<MBase> & UpdateHasuraGraphQLRepositoryType<MBase> & InstanceType<TMixinBase>,\r\n MergeConstructorParams<UpdateConstructorParams, ConstructorParameters<TMixinBase>>\r\n> => {\r\n const getValueByAction = (options: UpdateOptions<MBase>): unknown => {\r\n if (options instanceof BaseModel) return options.toPlain()\r\n if (isNil(options?.action)) return options\r\n if ([UpdateOptionActions.REMOVE_FIELD.toString(), UpdateOptionActions.NULL.toString()].includes(options.action))\r\n return null\r\n\r\n return options.value\r\n }\r\n\r\n return class UpdateHasuraGraphQLMixin extends MixinBase implements UpdateRepository<MBase> {\r\n updateGraphQLOperation: string\r\n updateGraphQLObjectType: string\r\n updateGraphQLPKType: string\r\n\r\n constructor(...params) {\r\n const options: UpdateConstructorParams = params?.[0]\r\n\r\n super(...params)\r\n\r\n this.updateGraphQLOperation = options?.updateGraphQLOperation || `update_${this.tableName}_by_pk`\r\n this.updateGraphQLObjectType = options?.updateGraphQLObjectType || `${this.tableName}_set_input`\r\n this.updateGraphQLPKType = options?.updateGraphQLPKType || `${this.tableName}_pk_columns_input`\r\n }\r\n\r\n async update(data: RepositoryUpdateParams<MBase>): Promise<MBase> {\r\n const plainData = this.paramsToPlain(data)\r\n\r\n await this.mutation(\r\n this.updateGraphQLOperation,\r\n this.model.identifiersFields.map(\r\n (field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName,\r\n ) as HasuraGraphQLFields<MBase>,\r\n {\r\n _set: {\r\n type: this.updateGraphQLObjectType,\r\n value: this.convertDataToHasura(this.model.toInstance(plainData), true),\r\n required: true,\r\n },\r\n pk_columns: { type: this.updateGraphQLPKType, value: this.getUpdateModelKeys(plainData), required: true },\r\n },\r\n )\r\n\r\n return this.model.toInstance(plainData)\r\n }\r\n\r\n paramsToPlain(params: RepositoryUpdateParams<MBase>): Partial<MBase> {\r\n const model = this.model\r\n\r\n if (model.isModel(params)) return params.toPlain()\r\n\r\n return Object.keys(params).reduce(\r\n (data, currentKey) => ({\r\n ...data,\r\n ...(params[currentKey] !== undefined && { [currentKey]: getValueByAction(params[currentKey]) }),\r\n }),\r\n {},\r\n )\r\n }\r\n\r\n getUpdateModelKeys(data: Partial<MBase>): NonFunctionAndIdentifierProperties<MBase> {\r\n const instance = this.model.toInstance(data)\r\n\r\n return this.model.identifiersFields.reduce((ids, identifier) => {\r\n if (isNil(instance[identifier])) return ids\r\n\r\n const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields)\r\n const value = columnOption?.to?.(data[identifier.toString()], instance) || data[columnOption.attributeName]\r\n\r\n return {\r\n ...ids,\r\n [columnOption.columnName]: value,\r\n }\r\n }, {} as NonFunctionAndIdentifierProperties<MBase>)\r\n }\r\n } as any\r\n}\r\n","import { GetRepository, GetRepositoryParams, ModelBaseStructure } from '../../../domain'\r\nimport { NotFoundError } from '../../../errors'\r\nimport { isNil, MixinCtor } from '../../../utils'\r\nimport { GraphQLRepository } from '../types'\r\n\r\nimport { AttributeOptionHelper } from './helpers'\r\n\r\nexport type GetConstructorParams = {\r\n getGraphQLOperation?: string\r\n}\r\n\r\nexport const withGetHasuraGraphQL = <\r\n MBase extends ModelBaseStructure,\r\n TMixinBase extends MixinCtor<GraphQLRepository<MBase>>,\r\n>(\r\n MixinBase: MixinCtor<GraphQLRepository<MBase>> & TMixinBase,\r\n) => {\r\n return class GetHasuraGraphQLMixin extends MixinBase implements GetRepository<MBase> {\r\n getGraphQLOperation: string\r\n\r\n constructor(...params) {\r\n const options: GetConstructorParams = params?.[0]\r\n\r\n super(...params)\r\n\r\n this.getGraphQLOperation = options?.getGraphQLOperation || `${this.tableName}_by_pk`\r\n }\r\n\r\n async get(identifiers: GetRepositoryParams<MBase>): Promise<MBase> {\r\n const instance = this.model.toInstance(identifiers)\r\n const result = await this.query(\r\n this.getGraphQLOperation,\r\n this.fields,\r\n this.model.identifiersFields.reduce((ids, identifier) => {\r\n if (isNil(instance[identifier])) return ids\r\n\r\n const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields)\r\n const value =\r\n columnOption?.to?.(identifiers[identifier.toString()], instance) || identifiers[identifier.toString()]\r\n\r\n return {\r\n ...ids,\r\n [columnOption.columnName]: {\r\n type: this.getAttributeGraphQLTypeOf(columnOption.type || value),\r\n value,\r\n required: true,\r\n },\r\n }\r\n }, {}),\r\n )\r\n const data = result[this.getGraphQLOperation]\r\n\r\n if (isNil(data)) throw new NotFoundError(`${instance.constructor.name} not found`)\r\n\r\n return this.convertDataFromHasura(result[this.getGraphQLOperation])\r\n }\r\n }\r\n}\r\n","import {\r\n FindRepository,\r\n ModelBaseStructure,\r\n NonFunctionPropertyNames,\r\n RepositoryFindFielters,\r\n RepositoryFindResult,\r\n RepositoryLimitOptions,\r\n RepositoryOrderBy,\r\n} from '../../../domain'\r\nimport { isNil, MixinCtor } from '../../../utils'\r\nimport { GraphQLRepository } from '../types'\r\n\r\nimport { BindFilterQueryHelper } from './helpers'\r\n\r\nexport const withFindHasuraGraphQL = <\r\n MBase extends ModelBaseStructure,\r\n TMixinBase extends MixinCtor<GraphQLRepository<MBase>>,\r\n>(\r\n MixinBase: MixinCtor<GraphQLRepository<MBase>> & TMixinBase,\r\n) => {\r\n return class FindHasuraGraphQLMixin extends MixinBase implements FindRepository<MBase> {\r\n async find(options?: {\r\n filters?: RepositoryFindFielters<MBase>\r\n fields?: NonFunctionPropertyNames<MBase>[]\r\n limits?: RepositoryLimitOptions<MBase>\r\n orderBy?: RepositoryOrderBy<MBase>\r\n }): Promise<RepositoryFindResult<MBase>> {\r\n const { filters, limits, orderBy } = options || {}\r\n const variablesCount = {\r\n ...(isNil(orderBy) ? {} : { order_by: { type: `${this.tableName}_order_by!`, list: true, value: orderBy } }),\r\n ...(isNil(filters)\r\n ? {}\r\n : {\r\n where: {\r\n value: BindFilterQueryHelper.MakeGraphQLWhere(filters, this.fields),\r\n type: `${this.tableName}_bool_exp`,\r\n required: true,\r\n },\r\n }),\r\n }\r\n const variables = {\r\n ...(isNil(limits) ? {} : limits),\r\n ...variablesCount,\r\n }\r\n const result = await this.query([\r\n {\r\n operation: this.tableName,\r\n fields: options.fields\r\n ? options.fields\r\n .map(\r\n (fieldName) =>\r\n this.fields.find((fieldOption) => fieldOption === fieldName) ??\r\n this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === fieldName),\r\n )\r\n .filter(Boolean)\r\n : this.fields,\r\n variables,\r\n },\r\n {\r\n operation: `${this.tableName}_aggregate`,\r\n fields: [{ aggregate: ['count'] }],\r\n variables: variablesCount,\r\n },\r\n ])\r\n const data: MBase[] = result[this.tableName].map((row) => this.convertDataFromHasura(row))\r\n const count = result[`${this.tableName}_aggregate`].aggregate.count\r\n\r\n return { count, data }\r\n }\r\n }\r\n}\r\n","import { ModelBaseStructure, CrudRepository } from '../../../domain'\r\nimport { GraphQLRepository } from '../types'\r\nimport { MergeConstructorParams, MixinCtor } from '../../../utils'\r\n\r\nimport { CreateConstructorParams, withCreateHasuraGraphQL } from './with-create-hasura-graphql.mixin'\r\nimport { ConstructorParams } from './with-hasura-graphql.mixin'\r\nimport { DeleteConstructorParams, withDeleteHasuraGraphQL } from './with-delete-hasura-graphql.mixin'\r\nimport { GetConstructorParams, withGetHasuraGraphQL } from './with-get-hasura-graphql.mixin'\r\nimport {\r\n UpdateConstructorParams,\r\n UpdateHasuraGraphQLRepositoryType,\r\n withUpdateHasuraGraphQL,\r\n} from './with-update-hasura-graphql.mixin'\r\nimport { withFindHasuraGraphQL } from './with-find-hasura-graphql.mixin'\r\n\r\nexport const withCrudHasuraGraphQL = <\r\n TBase extends ModelBaseStructure,\r\n Repository = CrudRepository<TBase>,\r\n TMixinBase extends MixinCtor = MixinCtor,\r\n>(\r\n MixinBase: MixinCtor<GraphQLRepository<TBase>> & TMixinBase,\r\n): MixinCtor<\r\n GraphQLRepository<TBase> & Repository & UpdateHasuraGraphQLRepositoryType<TBase>,\r\n MergeConstructorParams<\r\n ConstructorParams<TBase> &\r\n CreateConstructorParams &\r\n DeleteConstructorParams &\r\n GetConstructorParams &\r\n UpdateConstructorParams,\r\n ConstructorParameters<TMixinBase>\r\n >\r\n> => {\r\n return class CrudHasuraGraphQLMixin\r\n extends withUpdateHasuraGraphQL(\r\n withGetHasuraGraphQL(\r\n withFindHasuraGraphQL(\r\n withDeleteHasuraGraphQL(withCreateHasuraGraphQL(MixinBase as MixinCtor<GraphQLRepository<TBase>>)),\r\n ),\r\n ),\r\n )\r\n implements CrudRepository<TBase> {} as any\r\n}\r\n","import { Category } from '../../../domain'\r\n\r\nexport class CategoryHasuraGraphQL extends Category {\r\n firestoreId?: string\r\n brandCondition?: string\r\n tagCondition?: string[]\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { Product } from '../../../domain'\r\n\r\nimport { KitProductHasuraGraphQL } from './kit-product-hasura-graphql'\r\n\r\nexport class ProductHasuraGraphQL extends Product {\r\n firestoreId?: string\r\n fullPrice?: number\r\n subscriberDiscountPercentage?: number\r\n subscriberPrice?: number\r\n productId?: number\r\n differentials?: string\r\n whoMustUse?: string\r\n howToUse?: string\r\n brandDescription?: string\r\n\r\n @Type(() => KitProductHasuraGraphQL)\r\n kitProducts?: KitProductHasuraGraphQL[]\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { KitProduct } from '../../../domain'\r\n\r\nimport { ProductHasuraGraphQL } from './product-hasura-graphql'\r\n\r\nexport class KitProductHasuraGraphQL extends KitProduct {\r\n @Type(() => ProductHasuraGraphQL)\r\n kit: ProductHasuraGraphQL\r\n\r\n @Type(() => ProductHasuraGraphQL)\r\n product: ProductHasuraGraphQL\r\n}\r\n","import { Variant } from '../../../domain'\r\n\r\nexport class VariantHasuraGraphQL extends Variant {\r\n firestoreId?: string\r\n fullPrice?: number\r\n subscriberDiscountPercentage?: number\r\n subscriberPrice?: number\r\n\r\n name ? = ''\r\n hasVariants ? = false\r\n}\r\n","import {\r\n Category,\r\n CategoryMetadata,\r\n CategoryRepository,\r\n CreateRepositoryParams,\r\n GetRepositoryParams,\r\n Product,\r\n Shops,\r\n UpdateRepositoryParams,\r\n Where,\r\n} from '../../../../domain'\r\nimport { DuplicatedResultsError, NotFoundError } from '../../../../errors'\r\nimport { Base, omit } from '../../../../utils'\r\nimport { HasuraGraphQLColumnType } from '../../enums'\r\nimport { withCrudHasuraGraphQL, withHasuraGraphQL } from '../../mixins'\r\nimport { CategoryHasuraGraphQL } from '../../models'\r\nimport { HasuraGraphQLAuthOptions } from '../../types'\r\n\r\nimport { ProductHasuraGraphQLRepository } from './product-hasura-graphql.repository'\r\n\r\nexport class CategoryHasuraGraphQLRepository\r\n extends withCrudHasuraGraphQL(withHasuraGraphQL<CategoryHasuraGraphQL>(Base))\r\n implements CategoryRepository\r\n{\r\n constructor(\r\n endpoint: string,\r\n authOptions: HasuraGraphQLAuthOptions,\r\n private readonly productRepository: ProductHasuraGraphQLRepository,\r\n ) {\r\n super({\r\n tableName: 'category',\r\n model: Category,\r\n endpoint,\r\n authOptions,\r\n fields: [\r\n { id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },\r\n { firestoreId: { columnName: 'firestore_id' } },\r\n 'name',\r\n 'description',\r\n 'image',\r\n 'published',\r\n 'shop',\r\n 'slug',\r\n { brandCategory: { columnName: 'brand_category' } },\r\n { brandCategoryBanner: { columnName: 'brand_banner' } },\r\n { brandCategoryBannerMobile: { columnName: 'brand_banner_mobile' } },\r\n { brandLogo: { columnName: 'brand_logo' } },\r\n { brandCondition: { columnName: 'brand_condition' } },\r\n {\r\n conditions: {\r\n columnName: 'tag_condition',\r\n type: HasuraGraphQLColumnType.Jsonb,\r\n from: (tags: unknown, row) => ({ brand: row.brand_condition, tags: Array.isArray(tags) ? tags : [] }),\r\n bindPersistData: (value) => {\r\n return {\r\n brand_condition: value.brand,\r\n tag_condition: value?.tags || [],\r\n }\r\n },\r\n bindFindFilter: (sentence: any) => {\r\n return {\r\n ...(sentence.brand ? { brand_condition: sentence.brand } : {}),\r\n ...(sentence.tags ? { tag_condition: sentence.tags } : {}),\r\n }\r\n },\r\n },\r\n },\r\n 'filters',\r\n { createdAt: { columnName: 'created_at' } },\r\n { updatedAt: { columnName: 'updated_at' } },\r\n {\r\n products: {\r\n columnName: 'products',\r\n fields: ['product_id'],\r\n from: (value: { product_id: number }[]) => value.map((product) => product.product_id.toString()),\r\n to: (productIds) =>\r\n productIds.map((productId) => ({\r\n product_id: +productId,\r\n })),\r\n },\r\n },\r\n {\r\n metadata: {\r\n columnName: 'metadata',\r\n fields: ['title', 'description'],\r\n bindPersistData: (value) => ({\r\n metadata: { data: value },\r\n }),\r\n },\r\n },\r\n ],\r\n })\r\n }\r\n\r\n async create(params: CreateRepositoryParams<CategoryHasuraGraphQL>): Promise<CategoryHasuraGraphQL> {\r\n const { metadata, ...data } = params\r\n\r\n return super.create({ ...data, metadata: metadata || { description: null, title: null } })\r\n }\r\n\r\n async get(identifiers: GetRepositoryParams<CategoryHasuraGraphQL>): Promise<CategoryHasuraGraphQL> {\r\n return Number.isNaN(+identifiers.id)\r\n ? (await this.find({ filters: { firestoreId: identifiers.id } })).data?.[0]\r\n : super.get(identifiers)\r\n }\r\n\r\n async update(params: UpdateRepositoryParams<CategoryHasuraGraphQL>): Promise<CategoryHasuraGraphQL> {\r\n const { products, id: checkId, metadata, ...data } = params\r\n const plainData = this.paramsToPlain({ id: checkId })\r\n const id = await this.getId(plainData.id)\r\n const category = await super.update({ id, ...data })\r\n\r\n category.products = products && (await this.updateProducts(+id, { products }))\r\n category.metadata = metadata && (await this.updateMetadata(+id, { metadata }))\r\n\r\n return category\r\n }\r\n\r\n async getCategoryBySlug(slug: string, shop: Shops): Promise<Category> {\r\n if (!slug) return\r\n\r\n const { data, count } = await this.find({ filters: { slug, shop, published: true } })\r\n\r\n if (count > 1) throw new DuplicatedResultsError('Query returned duplicated values')\r\n if (!count) throw new NotFoundError(`Category with slug ${slug} not found`)\r\n\r\n return data.shift()\r\n }\r\n\r\n async getCategoriesForHome(categoryIds: string[], limit = 4): Promise<{ category: Category; products: Product[] }[]> {\r\n if (!categoryIds?.length) return []\r\n\r\n const categoriesFirestore = categoryIds.filter((categoryId) => Number.isNaN(+categoryId))\r\n const categoriesHasura = categoryIds.filter((categoryId) => +categoryId > 0)\r\n const categories = []\r\n\r\n if (categoriesFirestore.length)\r\n categories.push(\r\n ...(await this.find({\r\n filters: { firestoreId: { operator: Where.IN, value: categoriesFirestore.filter(Boolean) }, published: true },\r\n }).then(({ data }) => data)),\r\n )\r\n if (categoriesHasura.length)\r\n categories.push(\r\n ...(await this.find({\r\n filters: { id: { operator: Where.IN, value: categoriesHasura.filter(Boolean) }, published: true },\r\n }).then(({ data }) => data)),\r\n )\r\n\r\n if (!categories.length) return []\r\n\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?.length) return []\r\n\r\n const products = []\r\n const { data: productsData } = await this.productRepository.find({\r\n filters: {\r\n id: { operator: Where.IN, value: category.products },\r\n published: true,\r\n ...(options?.hasStock ? { stock: { quantity: { operator: Where.GT, value: 0 } } } : {}),\r\n },\r\n fields: [\r\n 'id',\r\n 'name',\r\n 'slug',\r\n 'images',\r\n 'miniatures',\r\n 'price',\r\n 'fullPrice',\r\n 'subscriberDiscountPercentage',\r\n 'subscriberPrice',\r\n 'stock',\r\n 'published',\r\n 'CEST',\r\n 'EAN',\r\n 'NCM',\r\n 'brand',\r\n 'costPrice',\r\n 'hasVariants',\r\n 'isKit',\r\n 'sku',\r\n 'rate',\r\n 'tags',\r\n 'type',\r\n 'shoppingCount',\r\n ],\r\n ...(options?.limit ? { limits: { limit: options?.limit } } : {}),\r\n })\r\n\r\n products.push(...productsData)\r\n\r\n return products\r\n }\r\n\r\n private async getId(id: string): Promise<string> {\r\n if (!Number.isNaN(+id)) return id\r\n\r\n const { data } = await this.find({ filters: { firestoreId: id } })\r\n\r\n if (data?.[0]?.id) return data?.[0]?.id\r\n\r\n throw new NotFoundError(`Category with id ${id} not found`)\r\n }\r\n\r\n private async updateProducts(\r\n categoryId: number,\r\n { products }: Pick<UpdateRepositoryParams<CategoryHasuraGraphQL>, 'products'>,\r\n ): Promise<CategoryHasuraGraphQL['products']> {\r\n if ('action' in products && products.action === 'remove') {\r\n await this.mutation('delete_category_product', ['affected_rows'], {\r\n where: {\r\n type: 'category_product_bool_exp',\r\n required: true,\r\n value: { category_id: { _eq: categoryId } },\r\n },\r\n })\r\n\r\n return []\r\n }\r\n\r\n const plainData = this.paramsToPlain({ products })\r\n\r\n if (!plainData.products || plainData.products.length <= 0) return []\r\n\r\n await this.mutation('delete_category_product', ['affected_rows'], {\r\n where: {\r\n type: 'category_product_bool_exp',\r\n required: true,\r\n value: { category_id: { _eq: categoryId } },\r\n },\r\n })\r\n\r\n await this.mutation('insert_category_product', ['affected_rows'], {\r\n objects: {\r\n type: '[category_product_insert_input!]',\r\n required: true,\r\n value: plainData.products.map((productId) => ({ category_id: categoryId, product_id: productId })),\r\n },\r\n })\r\n\r\n return plainData.products\r\n }\r\n\r\n private async updateMetadata(\r\n categoryId: number,\r\n { metadata }: Pick<UpdateRepositoryParams<CategoryHasuraGraphQL>, 'metadata'>,\r\n ): Promise<CategoryMetadata> {\r\n const plainData = this.paramsToPlain({ metadata })\r\n\r\n if (!plainData.metadata) return\r\n\r\n await this.mutation('update_category_metadata_by_pk', ['category_id'], {\r\n pk_columns: {\r\n value: { category_id: categoryId },\r\n type: 'category_metadata_pk_columns_input',\r\n required: true,\r\n },\r\n _set: {\r\n value: omit(metadata, ['category_id']),\r\n type: 'category_metadata_set_input',\r\n required: true,\r\n },\r\n })\r\n\r\n return plainData.metadata\r\n }\r\n}\r\n","import {\r\n CreateRepositoryParams,\r\n FindRepositoryParams,\r\n GetRepositoryParams,\r\n NonFunctionPropertyNames,\r\n ProductMetadata,\r\n ProductRepository,\r\n ProductReview,\r\n RepositoryFindResult,\r\n ReviewStatusParams,\r\n ReviewWithProductData,\r\n ShopPrice,\r\n Shops,\r\n UpdateRepositoryParams,\r\n Where,\r\n} from '../../../../domain'\r\nimport { NotFoundError } from '../../../../errors'\r\nimport { Base, isNil, omit } from '../../../../utils'\r\nimport { HasuraGraphQLColumnType, HasuraGraphQLWhere } from '../../enums'\r\nimport { withCrudHasuraGraphQL, withHasuraGraphQL } from '../../mixins'\r\nimport { ProductHasuraGraphQL } from '../../models'\r\nimport { HasuraGraphQLAuthOptions, HasuraGraphQLFields } from '../../types'\r\n\r\ntype ProductReviewFields = {\r\n id?: string\r\n shop: Shops\r\n rate: number\r\n author?: string\r\n email?: string\r\n location?: string\r\n review?: string\r\n status?: boolean\r\n title?: string\r\n personId?: number\r\n points?: number\r\n orderId?: string\r\n createdAt?: Date\r\n updatedAt?: Date\r\n}\r\n\r\nexport class ProductHasuraGraphQLRepository\r\n extends withCrudHasuraGraphQL(withHasuraGraphQL<ProductHasuraGraphQL>(Base))\r\n implements ProductRepository\r\n{\r\n private get reviewsFields(): any {\r\n return [\r\n 'id',\r\n 'shop',\r\n 'rate',\r\n 'author',\r\n 'email',\r\n 'location',\r\n 'review',\r\n 'status',\r\n 'title',\r\n { personId: { columnName: 'person_id' } },\r\n 'points',\r\n { orderId: { columnName: 'order_id' } },\r\n { createdAt: { columnName: 'created_at' } },\r\n { updatedAt: { columnName: 'updated_at' } },\r\n ]\r\n }\r\n\r\n constructor(endpoint: string, authOptions: HasuraGraphQLAuthOptions) {\r\n super({\r\n tableName: 'product',\r\n model: ProductHasuraGraphQL,\r\n endpoint,\r\n authOptions,\r\n fields: [],\r\n })\r\n\r\n const commonFields: HasuraGraphQLFields<ProductHasuraGraphQL> = [\r\n { id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },\r\n { firestoreId: { columnName: 'firestore_id' } },\r\n { productId: { columnName: 'main_product_id' } },\r\n { CEST: { columnName: 'cest' } },\r\n { EAN: { columnName: 'ean' } },\r\n { NCM: { columnName: 'ncm' } },\r\n 'brand',\r\n { costPrice: { columnName: 'cost_price' } },\r\n {\r\n description: {\r\n columnName: 'description',\r\n from: (description, data) => ({\r\n description,\r\n differentials: data.differentials,\r\n whoMustUse: data.who_must_use,\r\n howToUse: data.how_to_use,\r\n brand: data.brand_description,\r\n }),\r\n bindFindFilter: (sentence) => {\r\n const filters = Object.values(sentence).shift()\r\n\r\n return {\r\n ...(filters?.description && { description: filters.description }),\r\n ...(filters.differentials && { differentials: filters.differentials }),\r\n ...(filters.whoMustUse && {\r\n who_must_use: filters.whoMustUse,\r\n }),\r\n ...(filters.howToUse && {\r\n how_to_use: filters.howToUse,\r\n }),\r\n ...(filters.brand && {\r\n brand_description: filters.brand,\r\n }),\r\n }\r\n },\r\n bindPersistData: (descriptionData) => ({\r\n ...(descriptionData?.description && { description: descriptionData.description }),\r\n ...(descriptionData.differentials && { differentials: descriptionData.differentials }),\r\n ...(descriptionData.whoMustUse && {\r\n who_must_use: descriptionData.whoMustUse,\r\n }),\r\n ...(descriptionData.howToUse && { how_to_use: descriptionData.howToUse }),\r\n ...(descriptionData.brand && { brand_description: descriptionData.brand }),\r\n }),\r\n },\r\n },\r\n { differentials: { columnName: 'differentials' } },\r\n { whoMustUse: { columnName: 'who_must_use' } },\r\n { howToUse: { columnName: 'how_to_use' } },\r\n { brandDescription: { columnName: 'brand_description' } },\r\n { hasVariants: { columnName: 'has_variants' } },\r\n {\r\n images: {\r\n columnName: 'images',\r\n to: (value) => (value?.length > 0 ? `{\"${value?.join?.(`\",\"`) || ''}\"}` : `{}`),\r\n },\r\n },\r\n {\r\n miniatures: {\r\n columnName: 'miniatures',\r\n to: (value) => (value?.length > 0 ? `{\"${value?.join?.(`\",\"`) || ''}\"}` : `{}`),\r\n },\r\n },\r\n 'name',\r\n {\r\n price: {\r\n columnName: 'price',\r\n from: (price, data): ShopPrice => ({\r\n price,\r\n fullPrice: data.full_price,\r\n subscriberDiscountPercentage: data.subscriber_discount_percentage,\r\n subscriberPrice: data.subscriber_price,\r\n }),\r\n bindFindFilter: (sentence) => {\r\n const filters = Object.values(sentence).shift()\r\n\r\n return {\r\n ...((filters?.price || filters?.price === 0) && { price: filters.price }),\r\n ...((filters.fullPrice || filters.fullPrice === 0) && { full_price: filters.fullPrice }),\r\n ...((filters.subscriberDiscountPercentage || filters.subscriberDiscountPercentage === 0) && {\r\n subscriber_discount_percentage: filters.subscriberDiscountPercentage,\r\n }),\r\n ...((filters.subscriberPrice || filters.subscriberPrice === 0) && {\r\n subscriber_price: filters.subscriberPrice,\r\n }),\r\n }\r\n },\r\n bindPersistData: (priceData) => ({\r\n ...(priceData?.price >= 0 && { price: priceData.price }),\r\n ...(priceData.fullPrice >= 0 && { full_price: priceData.fullPrice }),\r\n ...(priceData.subscriberDiscountPercentage >= 0 && {\r\n subscriber_discount_percentage: priceData.subscriberDiscountPercentage,\r\n }),\r\n ...(priceData.subscriberPrice >= 0 && { subscriber_price: priceData.subscriberPrice }),\r\n }),\r\n },\r\n },\r\n { fullPrice: { columnName: 'full_price' } },\r\n { subscriberDiscountPercentage: { columnName: 'subscriber_discount_percentage' } },\r\n { subscriberPrice: { columnName: 'subscriber_price' } },\r\n 'published',\r\n 'sku',\r\n {\r\n stock: {\r\n columnName: 'stock',\r\n from: (quantity: number) => ({ quantity }),\r\n to: (value) => (isNil(value?.quantity) ? value : value?.quantity),\r\n },\r\n },\r\n 'slug',\r\n 'type',\r\n 'video',\r\n 'weight',\r\n 'gender',\r\n { tags: { columnName: 'tags', type: HasuraGraphQLColumnType.Jsonb } },\r\n { isKit: { columnName: 'is_kit' } },\r\n { createdAt: { columnName: 'created_at' } },\r\n { updatedAt: { columnName: 'updated_at' } },\r\n {\r\n rate: {\r\n columnName: 'reviews_aggregate',\r\n filters: {\r\n filters: { status: true },\r\n filterType: 'product_review_bool_exp',\r\n },\r\n fields: [{ aggregate: [{ avg: ['rate'] }] }],\r\n from: (value) => value.aggregate.avg.rate,\r\n },\r\n },\r\n { shoppingCount: { columnName: 'shopping_count' } },\r\n ]\r\n\r\n this.fields = [\r\n ...commonFields,\r\n {\r\n categories: {\r\n columnName: 'categories',\r\n fields: ['category_id'],\r\n bindPersistData: (value) => ({\r\n categories: { data: value.map((category) => ({ category_id: +category })) },\r\n }),\r\n to: (categories) => categories.map((categoryId) => +categoryId),\r\n from: (categories: { category_id: number }[]) =>\r\n categories?.map((category) => category?.category_id?.toString()) || [],\r\n },\r\n },\r\n {\r\n kitProducts: {\r\n columnName: 'kit_products',\r\n foreignKeyColumn: { productId: 'id' },\r\n fields: [\r\n { productId: { columnName: 'product_id' } },\r\n { kitProductId: { columnName: 'kit_product_id' } },\r\n 'quantity',\r\n { product: { columnName: 'product', foreignKeyColumn: { id: 'product_id' }, fields: commonFields } },\r\n ],\r\n },\r\n },\r\n {\r\n reviews: {\r\n columnName: 'reviews',\r\n foreignKeyColumn: { product_id: 'id' },\r\n fields: this.reviewsFields,\r\n },\r\n },\r\n {\r\n metadata: {\r\n columnName: 'metadata',\r\n fields: ['title', 'description'],\r\n bindPersistData: (value) => ({\r\n metadata: { data: value },\r\n }),\r\n },\r\n },\r\n ]\r\n }\r\n\r\n async create(params: CreateRepositoryParams<ProductHasuraGraphQL>): Promise<ProductHasuraGraphQL> {\r\n const { metadata, ...data } = params\r\n const product = await super.create(\r\n omit({ ...data, metadata: metadata || { description: null, title: null } }, ['reviews']),\r\n )\r\n\r\n try {\r\n product.reviews = data.reviews && (await this.updateReviews(+product.id, data))\r\n } catch (error) {\r\n await this.delete({ id: product.id })\r\n\r\n throw error\r\n }\r\n\r\n return product\r\n }\r\n\r\n async get(identifiers: GetRepositoryParams<ProductHasuraGraphQL>): Promise<ProductHasuraGraphQL> {\r\n const product = Number.isNaN(+identifiers.id)\r\n ? (await this.find({ filters: { firestoreId: identifiers.id } })).data?.[0]\r\n : await super.get(identifiers)\r\n\r\n if (product.productId) throw new NotFoundError('Product not found, it is a variant')\r\n\r\n product.reviews = product.reviews || (await this.findReviewsByProduct(+product.id))\r\n\r\n return product\r\n }\r\n\r\n async find(params?: FindRepositoryParams<ProductHasuraGraphQL>): Promise<RepositoryFindResult<ProductHasuraGraphQL>> {\r\n const { filters, fields, ...options } = params || {}\r\n const bindFields =\r\n fields ||\r\n (this.fields\r\n .map((field) => (typeof field === 'string' ? field : Object.keys(field).shift()))\r\n .filter((field) => field !== 'reviews') as NonFunctionPropertyNames<\r\n ProductHasuraGraphQL,\r\n keyof ProductHasuraGraphQL\r\n >[])\r\n\r\n return super.find({\r\n ...options,\r\n filters: { ...filters, productId: { operator: Where.ISNULL } },\r\n fields: bindFields,\r\n })\r\n }\r\n\r\n async getBySlug(slug: string): Promise<ProductHasuraGraphQL> {\r\n const result = await this.find({\r\n filters: {\r\n slug,\r\n },\r\n })\r\n\r\n const product = result?.data?.shift()\r\n\r\n product.reviews = await this.findReviewsByProduct(+product.id)\r\n\r\n return product\r\n }\r\n\r\n async update(params: UpdateRepositoryParams<ProductHasuraGraphQL>): Promise<ProductHasuraGraphQL> {\r\n const { categories, kitProducts, reviews, id: checkId, rate, metadata, ...data } = params\r\n const plainData = this.paramsToPlain({ id: checkId })\r\n const id = await this.getId(plainData.id)\r\n const product = await super.update({ id, ...data })\r\n\r\n product.categories = categories && (await this.updateCategories(+id, { categories }))\r\n product.kitProducts = kitProducts && (await this.updateKitProducts(+id, { kitProducts }))\r\n product.reviews = reviews && (await this.updateReviews(+id, { reviews }))\r\n product.metadata = metadata && (await this.updateMetadata(+id, { metadata }))\r\n\r\n return product\r\n }\r\n\r\n async fetchReviews(status: ReviewStatusParams): Promise<ReviewWithProductData[]> {\r\n const reviewsExpression = {\r\n status:\r\n status === 'pending'\r\n ? { [HasuraGraphQLWhere.ISNULL]: true }\r\n : { [HasuraGraphQLWhere.EQUALS]: status === 'approved' },\r\n }\r\n const { product: data } = await this.query(\r\n 'product',\r\n ['id', 'name', 'sku', { reviews: { columnName: 'reviews', fields: this.reviewsFields } }],\r\n {\r\n where: { value: { reviews: reviewsExpression }, type: 'product_bool_exp', required: true },\r\n },\r\n )\r\n\r\n return data.reduce(\r\n (reviews, product) => [\r\n ...reviews,\r\n ...product.reviews\r\n .filter(\r\n (review) =>\r\n (status === 'pending' && [undefined, null].includes(review.status)) ||\r\n (status === 'approved' && review.status === true) ||\r\n (status === 'rejected' && review.status === false),\r\n )\r\n .map((review) => ({\r\n ...this.bindReviewToModel(review),\r\n productId: product.id,\r\n productName: product.name,\r\n productSku: product.sku,\r\n })),\r\n ],\r\n [] as ReviewWithProductData[],\r\n )\r\n }\r\n\r\n private async updateCategories(\r\n productId: number,\r\n { categories }: Pick<UpdateRepositoryParams<ProductHasuraGraphQL>, 'categories'>,\r\n ): Promise<ProductHasuraGraphQL['categories']> {\r\n if ('action' in categories && categories.action === 'remove') {\r\n await this.mutation('delete_category_product', ['affected_rows'], {\r\n where: {\r\n type: 'category_product_bool_exp',\r\n required: true,\r\n value: { product_id: { _eq: productId } },\r\n },\r\n })\r\n\r\n return []\r\n }\r\n\r\n const plainData = this.paramsToPlain({ categories })\r\n\r\n if (!plainData.categories || plainData.categories.length <= 0) return []\r\n\r\n await this.mutation('delete_category_product', ['affected_rows'], {\r\n where: {\r\n type: 'category_product_bool_exp',\r\n required: true,\r\n value: { product_id: { _eq: productId } },\r\n },\r\n })\r\n\r\n await this.mutation('insert_category_product', ['affected_rows'], {\r\n objects: {\r\n type: '[category_product_insert_input!]',\r\n required: true,\r\n value: plainData.categories.map((categoryId) => ({ category_id: categoryId, product_id: productId })),\r\n },\r\n })\r\n\r\n return plainData.categories\r\n }\r\n\r\n private async updateKitProducts(\r\n productId: number,\r\n { kitProducts }: Pick<UpdateRepositoryParams<ProductHasuraGraphQL>, 'kitProducts'>,\r\n ): Promise<ProductHasuraGraphQL['kitProducts']> {\r\n const plainData = this.paramsToPlain({ kitProducts })\r\n\r\n await this.mutation('delete_product_kit', ['affected_rows'], {\r\n where: {\r\n type: 'product_kit_bool_exp',\r\n required: true,\r\n value: { kit_product_id: { _eq: productId } },\r\n },\r\n })\r\n\r\n await this.mutation('insert_product_kit', ['affected_rows'], {\r\n objects: {\r\n type: '[product_kit_insert_input!]',\r\n required: true,\r\n value: plainData.kitProducts.map((kitProduct) => ({\r\n kit_product_id: productId,\r\n product_id: kitProduct.productId || kitProduct.product.id,\r\n quantity: kitProduct.quantity,\r\n })),\r\n },\r\n })\r\n\r\n return plainData.kitProducts\r\n }\r\n\r\n private async updateReviews(\r\n productId: number,\r\n { reviews }: Pick<UpdateRepositoryParams<ProductHasuraGraphQL>, 'reviews'>,\r\n ): Promise<ProductReview[]> {\r\n if (!reviews) return []\r\n if ('action' in reviews && reviews.action === 'remove') {\r\n const reviewIds = await Promise.all(\r\n reviews.value.map(async (reviewData) => {\r\n const review = await this.findReview(reviewData, productId)\r\n\r\n return review?.id\r\n }),\r\n )\r\n\r\n await this.mutation('delete_product_review', ['affected_rows'], {\r\n where: { value: { id: { _in: reviewIds.filter(Boolean) } }, type: 'product_review_bool_exp', required: true },\r\n })\r\n\r\n return reviews.value.map((review, index) => !reviewIds[index] && review).filter(Boolean)\r\n }\r\n\r\n const plainData = this.paramsToPlain({ reviews })\r\n\r\n if (!plainData.reviews || plainData.reviews.length <= 0) return []\r\n\r\n return Promise.all(\r\n plainData.reviews.map(async (reviewData) => {\r\n const review = await this.findReview(reviewData, productId)\r\n\r\n if (review.id)\r\n return this.bindReviewToModel(\r\n (\r\n await this.mutation('update_product_review_by_pk', this.reviewsFields, {\r\n pk_columns: {\r\n value: { id: review.id },\r\n type: 'product_review_pk_columns_input',\r\n required: true,\r\n },\r\n _set: {\r\n value: omit(this.bindReviewToHasura(reviewData), ['id', 'product_id']),\r\n type: 'product_review_set_input',\r\n required: true,\r\n },\r\n })\r\n ).update_product_review_by_pk,\r\n )\r\n\r\n return this.bindReviewToModel(\r\n (\r\n await this.mutation('insert_product_review_one', this.reviewsFields, {\r\n object: {\r\n value: omit({ ...this.bindReviewToHasura(reviewData), product_id: productId }, ['id']),\r\n type: 'product_review_insert_input',\r\n required: true,\r\n },\r\n })\r\n ).insert_product_review_one,\r\n )\r\n }),\r\n )\r\n }\r\n\r\n private async updateMetadata(\r\n productId: number,\r\n { metadata }: Pick<UpdateRepositoryParams<ProductHasuraGraphQL>, 'metadata'>,\r\n ): Promise<ProductMetadata> {\r\n const plainData = this.paramsToPlain({ metadata })\r\n\r\n if (!plainData.metadata) return\r\n\r\n await this.mutation('update_product_metadata_by_pk', ['product_id'], {\r\n pk_columns: {\r\n value: { product_id: productId },\r\n type: 'product_metadata_pk_columns_input',\r\n required: true,\r\n },\r\n _set: {\r\n value: omit(metadata, ['product_id']),\r\n type: 'product_metadata_set_input',\r\n required: true,\r\n },\r\n })\r\n\r\n return plainData.metadata\r\n }\r\n\r\n private async getId(id: string): Promise<string> {\r\n if (!Number.isNaN(+id)) return id\r\n\r\n const { data } = await this.find({ filters: { firestoreId: id } })\r\n\r\n if (data?.[0]?.id) return data?.[0]?.id\r\n\r\n throw new NotFoundError(`Product with id ${id} not found`)\r\n }\r\n\r\n private async findReviewsByProduct(productId: number): Promise<ProductReview[]> {\r\n const { product_review: data } = await this.query('product_review', this.reviewsFields, {\r\n where: {\r\n value: {\r\n product_id: { _eq: productId },\r\n },\r\n type: 'product_review_bool_exp',\r\n required: true,\r\n },\r\n })\r\n\r\n return data && data.map((review) => this.bindReviewToModel(review))\r\n }\r\n\r\n private async findReview(review: ProductReview, productId: number): Promise<ProductReview> {\r\n if (review.id) return review\r\n\r\n let loadedReview: ProductReview\r\n\r\n if (review.personId) loadedReview = await this.getReviewByPersonId(review.personId, productId, review.orderId)\r\n if (!loadedReview && review.author && review.email)\r\n loadedReview = await this.getReviewByAuthorAndEmail(review.author, review.email, productId, review.orderId)\r\n\r\n return loadedReview || review\r\n }\r\n\r\n private async getReviewByPersonId(personId: number, productId: number, orderId?: string): Promise<ProductReview> {\r\n const { product_review: data } = await this.query('product_review', this.reviewsFields, {\r\n where: {\r\n value: {\r\n product_id: { _eq: productId },\r\n person_id: { _eq: personId },\r\n ...(orderId && { order_id: { _eq: orderId } }),\r\n },\r\n type: `product_review_bool_exp`,\r\n required: true,\r\n },\r\n })\r\n\r\n return data && data[0] && this.bindReviewToModel(data[0])\r\n }\r\n\r\n private async getReviewByAuthorAndEmail(\r\n author: string,\r\n email: string,\r\n productId: number,\r\n orderId?: string,\r\n ): Promise<ProductReview> {\r\n const { product_review: data } = await this.query('product_review', this.reviewsFields, {\r\n where: {\r\n value: {\r\n product_id: { _eq: productId },\r\n author: { _eq: author },\r\n email: { _eq: email },\r\n ...(orderId && { order_id: { _eq: orderId } }),\r\n },\r\n type: `product_review_bool_exp`,\r\n required: true,\r\n },\r\n })\r\n\r\n return data && data[0] && this.bindReviewToModel(data[0])\r\n }\r\n\r\n private bindReviewToModel = (plain: Record<string, any>): ProductReview => ({\r\n ...omit(plain, ['product_id', 'created_at', 'updated_at', 'person_id', 'order_id']),\r\n createdAt: typeof plain.created_at === 'string' ? new Date(plain.created_at) : plain.created_at,\r\n updatedAt: typeof plain.updated_at === 'string' ? new Date(plain.updated_at) : plain.updated_at,\r\n personId: plain.person_id,\r\n orderId: plain.order_id,\r\n })\r\n\r\n private bindReviewToHasura = (review: ProductReview): ProductReviewFields => ({\r\n ...omit(review, ['productId', 'createdAt', 'updatedAt', 'personId', 'orderId']),\r\n person_id: review.personId,\r\n order_id: review.orderId,\r\n })\r\n}\r\n","import {\r\n FindRepositoryParams,\r\n GetRepositoryParams,\r\n RepositoryFindResult,\r\n ShopPrice,\r\n UpdateRepositoryParams,\r\n VariantRepository,\r\n Where,\r\n} from '../../../../domain'\r\nimport { NotFoundError } from '../../../../errors'\r\nimport { Base, isNil } from '../../../../utils'\r\nimport { HasuraGraphQLColumnType } from '../../enums'\r\nimport { withCrudHasuraGraphQL, withHasuraGraphQL } from '../../mixins'\r\nimport { VariantHasuraGraphQL } from '../../models'\r\nimport { HasuraGraphQLAuthOptions } from '../../types'\r\n\r\nexport class VariantHasuraGraphQLRepository\r\n extends withCrudHasuraGraphQL(withHasuraGraphQL<VariantHasuraGraphQL>(Base))\r\n implements VariantRepository\r\n{\r\n constructor(endpoint: string, authOptions: HasuraGraphQLAuthOptions) {\r\n super({\r\n tableName: 'product',\r\n model: VariantHasuraGraphQL,\r\n endpoint,\r\n authOptions,\r\n fields: [\r\n { id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },\r\n { firestoreId: { columnName: 'firestore_id' } },\r\n { productId: { columnName: 'main_product_id', to: (value) => +value, from: (value) => value?.toString() } },\r\n { EAN: { columnName: 'ean' } },\r\n { costPrice: { columnName: 'cost_price' } },\r\n {\r\n price: {\r\n columnName: 'price',\r\n from: (price, data): ShopPrice => ({\r\n price,\r\n fullPrice: data.full_price,\r\n subscriberDiscountPercentage: data.subscriber_discount_percentage,\r\n subscriberPrice: data.subscriber_price,\r\n }),\r\n bindFindFilter: (sentence) => {\r\n const filters = Object.values(sentence).shift()\r\n\r\n return {\r\n ...((filters?.price || filters?.price === 0) && { price: filters.price }),\r\n ...((filters.fullPrice || filters.fullPrice === 0) && { full_price: filters.fullPrice }),\r\n ...((filters.subscriberDiscountPercentage || filters.subscriberDiscountPercentage === 0) && {\r\n subscriber_discount_percentage: filters.subscriberDiscountPercentage,\r\n }),\r\n ...((filters.subscriberPrice || filters.subscriberPrice === 0) && {\r\n subscriber_price: filters.subscriberPrice,\r\n }),\r\n }\r\n },\r\n bindPersistData: (priceData) => ({\r\n ...(priceData?.price >= 0 && { price: priceData.price }),\r\n ...(priceData.fullPrice >= 0 && { full_price: priceData.fullPrice }),\r\n ...(priceData.subscriberDiscountPercentage >= 0 && {\r\n subscriber_discount_percentage: priceData.subscriberDiscountPercentage,\r\n }),\r\n ...(priceData.subscriberPrice >= 0 && { subscriber_price: priceData.subscriberPrice }),\r\n }),\r\n },\r\n },\r\n { fullPrice: { columnName: 'full_price' } },\r\n { subscriberDiscountPercentage: { columnName: 'subscriber_discount_percentage' } },\r\n { subscriberPrice: { columnName: 'subscriber_price' } },\r\n 'sku',\r\n {\r\n stock: {\r\n columnName: 'stock',\r\n from: (quantity: number) => ({ quantity }),\r\n to: (value) => (isNil(value?.quantity) ? value : value?.quantity),\r\n },\r\n },\r\n 'weight',\r\n { name: { to: () => '', from: () => undefined } },\r\n { hasVariants: { columnName: 'has_variants', to: () => false, from: () => undefined } },\r\n { createdAt: { columnName: 'created_at' } },\r\n { updatedAt: { columnName: 'updated_at' } },\r\n {\r\n grade: {\r\n columnName: 'grade',\r\n type: HasuraGraphQLColumnType.Jsonb,\r\n },\r\n },\r\n ],\r\n })\r\n }\r\n\r\n async get(identifiers: GetRepositoryParams<VariantHasuraGraphQL>): Promise<VariantHasuraGraphQL> {\r\n const variant = Number.isNaN(+identifiers.id)\r\n ? (await this.find({ filters: { firestoreId: identifiers.id } })).data?.[0]\r\n : await super.get(identifiers)\r\n\r\n if (!variant.productId) throw new NotFoundError(`Variant not found, it is a product`)\r\n\r\n return variant\r\n }\r\n\r\n async find(params?: FindRepositoryParams<VariantHasuraGraphQL>): Promise<RepositoryFindResult<VariantHasuraGraphQL>> {\r\n const { filters, ...options } = params || {}\r\n\r\n return super.find({ ...options, filters: { productId: { operator: Where.ISNOTNULL }, ...filters } })\r\n }\r\n\r\n async update(params: UpdateRepositoryParams<VariantHasuraGraphQL>): Promise<VariantHasuraGraphQL> {\r\n const { productId, id: checkId, ...data } = params\r\n const dataWithProductId = this.paramsToPlain({ id: checkId, productId })\r\n const id = await this.getId(dataWithProductId.id)\r\n const product = await super.update({ id, ...data })\r\n\r\n product.productId = dataWithProductId.productId\r\n\r\n return product\r\n }\r\n\r\n private async getId(id: string): Promise<string> {\r\n if (!Number.isNaN(+id)) return id\r\n\r\n const { data } = await this.find({ filters: { firestoreId: id } })\r\n\r\n if (data?.[0]?.id) return data?.[0]?.id\r\n\r\n throw new NotFoundError(`Product with id ${id} not found`)\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["plainToInstance","instanceToPlain","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","isString","parseISO","CheckoutTypes","CouponTypes","CouponSubtypes","Exclusivities","isNil","CustomError","SignInMethods","GenderDestination","Shops","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","isNumber","isDate","set","isObject","isEmpty","firebase","chunk","mutation","query","fetch","isBoolean","isInteger","isNaN","omit"],"mappings":"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"}
|