@infrab4a/connect 4.1.0-beta.9 → 4.1.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs.d.ts +1 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +5720 -0
- package/index.cjs.mjs +2 -0
- package/index.d.ts +1 -5
- package/{fesm2020/infrab4a-connect.mjs → index.esm.js} +1206 -627
- package/package.json +12 -17
- package/{domain → src/domain}/catalog/models/category-collection-children.d.ts +1 -1
- package/{domain → src/domain}/catalog/models/category-filter.d.ts +1 -1
- package/{domain → src/domain}/catalog/models/kit-product.d.ts +1 -1
- package/src/domain/catalog/models/types/category-condition.type.d.ts +4 -0
- package/{domain → src/domain}/catalog/models/types/category-metadata.type.d.ts +1 -1
- package/{domain → src/domain}/catalog/models/types/category-product.d.ts +1 -1
- package/{domain → src/domain}/catalog/models/types/product-evaluation.type.d.ts +1 -1
- package/src/domain/catalog/models/types/product-gender.type.d.ts +1 -0
- package/{domain → src/domain}/catalog/models/types/product-metadata.type.d.ts +1 -1
- package/{domain → src/domain}/catalog/models/types/product-review.type.d.ts +1 -1
- package/{domain → src/domain}/catalog/models/types/shop-description.type.d.ts +1 -1
- package/{domain → src/domain}/catalog/models/types/shop-price.type.d.ts +1 -1
- package/src/domain/catalog/models/types/stock.type.d.ts +3 -0
- package/{domain → src/domain}/catalog/models/types/variant-grade.type.d.ts +1 -1
- package/{domain → src/domain}/catalog/models/variant.d.ts +1 -1
- package/{domain → src/domain}/catalog/repositories/product.repository.d.ts +2 -2
- package/{domain → src/domain}/generic/model/base.model.d.ts +1 -1
- package/src/domain/generic/model/types/identifier-model.type.d.ts +8 -0
- package/{domain → src/domain}/generic/model/types/model-base-structure.type.d.ts +2 -2
- package/src/domain/generic/model/types/non-function-properties.type.d.ts +12 -0
- package/src/domain/generic/model/types/non-function-property-name.type.d.ts +13 -0
- package/{domain → src/domain}/generic/repository/create.repository.d.ts +1 -1
- package/{domain → src/domain}/generic/repository/crud.repository.d.ts +2 -2
- package/{domain → src/domain}/generic/repository/delete.repository.d.ts +1 -1
- package/{domain → src/domain}/generic/repository/find.repository.d.ts +1 -1
- package/{domain → src/domain}/generic/repository/get.repository.d.ts +1 -1
- package/{domain → src/domain}/generic/repository/read.repository.d.ts +2 -2
- package/{domain → src/domain}/generic/repository/types/repository-find-filters.type.d.ts +4 -4
- package/{domain → src/domain}/generic/repository/types/repository-find-result.type.d.ts +2 -2
- package/{domain → src/domain}/generic/repository/types/repository-limit-options.type.d.ts +1 -1
- package/{domain → src/domain}/generic/repository/types/repository-order-by-list.type.d.ts +2 -2
- package/{domain → src/domain}/generic/repository/types/repository-update-params.type.d.ts +3 -3
- package/src/domain/generic/repository/types/where-options.type.d.ts +2 -0
- package/{domain → src/domain}/generic/repository/update.repository.d.ts +1 -1
- package/{domain → src/domain}/location/models/types/location-bound.type.d.ts +1 -1
- package/{domain → src/domain}/location/models/types/location-geometry.type.d.ts +1 -1
- package/{domain → src/domain}/location/models/types/location-lat-lng.type.d.ts +1 -1
- package/{domain → src/domain}/shop-settings/enums/index.d.ts +0 -1
- package/{domain → src/domain}/shop-settings/helpers/beauty-questions.helper.d.ts +1 -1
- package/{domain → src/domain}/shop-settings/models/index.d.ts +0 -2
- package/{domain → src/domain}/shop-settings/models/shop-settings.d.ts +3 -7
- package/{domain → src/domain}/shop-settings/models/types/banner.type.d.ts +1 -1
- package/{domain → src/domain}/shop-settings/models/types/benefit.type.d.ts +1 -1
- package/{domain → src/domain}/shop-settings/models/types/home-data.type.d.ts +3 -3
- package/{domain → src/domain}/shop-settings/models/types/index.d.ts +0 -6
- package/{domain → src/domain}/shop-settings/models/types/menu-nav.type.d.ts +1 -1
- package/src/domain/shop-settings/models/types/shop-banner.type.d.ts +12 -0
- package/src/domain/shop-settings/models/types/shop-carousel.type.d.ts +5 -0
- package/{domain → src/domain}/shop-settings/models/types/shop-section.type.d.ts +1 -4
- package/{domain → src/domain}/shop-settings/models/types/sub-menu.type.d.ts +2 -2
- package/{domain → src/domain}/shop-settings/repositories/index.d.ts +0 -2
- package/{domain → src/domain}/shopping/models/types/payment-address.type.d.ts +1 -1
- package/{domain → src/domain}/shopping/models/types/payment-billing.type.d.ts +1 -1
- package/{domain → src/domain}/shopping/models/types/payment-card.type.d.ts +1 -1
- package/{domain → src/domain}/shopping/models/types/payment-customer.type.d.ts +1 -1
- package/{domain → src/domain}/shopping/models/types/payment-document.type.d.ts +1 -1
- package/{domain → src/domain}/shopping/models/types/payment-item.type.d.ts +1 -1
- package/{domain → src/domain}/shopping/models/types/payment-shipping.type.d.ts +1 -1
- package/{domain → src/domain}/users/models/beauty-profile.d.ts +1 -1
- package/{domain → src/domain}/users/models/subscription/edition.d.ts +1 -1
- package/{domain → src/domain}/users/models/subscription/payment.d.ts +1 -1
- package/{domain → src/domain}/users/models/user-address.d.ts +1 -1
- package/{domain → src/domain}/users/models/user-payment-method.d.ts +1 -1
- package/{domain → src/domain}/users/services/authentication.service.d.ts +1 -1
- package/{domain → src/domain}/users/services/register.service.d.ts +1 -1
- package/src/domain/users/services/types/basic-user-data.type.d.ts +4 -0
- package/{domain → src/domain}/users/use-cases/authentication.d.ts +2 -2
- package/{domain → src/domain}/users/use-cases/register.d.ts +1 -1
- package/src/index.d.ts +5 -0
- package/{infra → src/infra}/elasticsearch/adapters/axios.adapter.d.ts +1 -1
- package/{infra → src/infra}/elasticsearch/indexes/products-index.d.ts +1 -1
- package/{infra → src/infra}/elasticsearch/types/elastic-search-result.d.ts +1 -1
- package/{infra → src/infra}/firebase/auth/types/firebase-user-with-id.type.d.ts +1 -1
- package/src/infra/firebase/auth/types/index.d.ts +1 -0
- package/{infra → src/infra}/firebase/firestore/mixins/with-firestore.mixin.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +2 -2
- package/{infra → src/infra}/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +2 -2
- package/{infra → src/infra}/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +2 -2
- package/{infra → src/infra}/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +2 -2
- package/{infra → src/infra}/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +2 -2
- package/{infra → src/infra}/firebase/firestore/repositories/users/user-firestore.repository.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +2 -2
- package/{infra → src/infra}/firebase/firestore/types/firestore-interceptors.type.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/types/firestore-sub.repository.type.d.ts +1 -1
- package/{infra → src/infra}/firebase/firestore/types/firestore.repository.type.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +3 -3
- package/{infra → src/infra}/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +2 -2
- package/{infra → src/infra}/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.d.ts +1 -1
- package/src/infra/hasura-graphql/types/fields.type.d.ts +2 -0
- package/{infra → src/infra}/hasura-graphql/types/graphql.repository.type.d.ts +2 -2
- package/{infra → src/infra}/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/types/hasura-graphql-fields.type.d.ts +6 -6
- package/{infra → src/infra}/hasura-graphql/types/hasura-graphql-headers.type.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/types/nested-field.type.d.ts +1 -1
- package/{infra → src/infra}/hasura-graphql/types/variable-options.type.d.ts +1 -1
- package/{utils → src/utils}/decorators/trace.method.decorator.d.ts +3 -3
- package/{utils → src/utils}/helpers/debug-decorator.helper.d.ts +1 -1
- package/{utils → src/utils}/helpers/debug.helper.d.ts +3 -3
- package/{utils → src/utils}/helpers/reflect.helper.d.ts +7 -7
- package/{utils → src/utils}/index.d.ts +1 -1
- package/src/utils/mixins/merge-constructor-params.type.d.ts +3 -0
- package/src/utils/mixins/mixin-ctor.type.d.ts +1 -0
- package/src/utils/types/array-element.type.d.ts +1 -0
- package/src/utils/types/prop.type.d.ts +1 -0
- package/README.md +0 -24
- package/domain/catalog/models/types/category-condition.type.d.ts +0 -4
- package/domain/catalog/models/types/product-gender.type.d.ts +0 -1
- package/domain/catalog/models/types/stock.type.d.ts +0 -3
- package/domain/generic/model/types/identifier-model.type.d.ts +0 -8
- package/domain/generic/model/types/non-function-properties.type.d.ts +0 -12
- package/domain/generic/model/types/non-function-property-name.type.d.ts +0 -13
- package/domain/generic/repository/types/where-options.type.d.ts +0 -2
- package/domain/shop-settings/enums/shop-page-name.enum.d.ts +0 -19
- package/domain/shop-settings/models/campaign-banner.d.ts +0 -11
- package/domain/shop-settings/models/campaign.d.ts +0 -10
- package/domain/shop-settings/models/types/campaign-page.d.ts +0 -17
- package/domain/shop-settings/models/types/landing-page.d.ts +0 -8
- package/domain/shop-settings/models/types/sections.type.d.ts +0 -34
- package/domain/shop-settings/models/types/shop-banner.type.d.ts +0 -13
- package/domain/shop-settings/models/types/shop-carousel.type.d.ts +0 -4
- package/domain/shop-settings/models/types/shop-gift.type.d.ts +0 -8
- package/domain/shop-settings/models/types/shop-home.d.ts +0 -12
- package/domain/shop-settings/models/types/shop-post.type.d.ts +0 -7
- package/domain/shop-settings/repositories/campaign-banner.repository.d.ts +0 -4
- package/domain/shop-settings/repositories/campaign.repository.d.ts +0 -4
- package/domain/users/services/types/basic-user-data.type.d.ts +0 -4
- package/esm2020/domain/catalog/helpers/index.mjs +0 -2
- package/esm2020/domain/catalog/helpers/round-product-price.helper.mjs +0 -15
- package/esm2020/domain/catalog/index.mjs +0 -4
- package/esm2020/domain/catalog/models/category-base.mjs +0 -18
- package/esm2020/domain/catalog/models/category-collection-children.mjs +0 -13
- package/esm2020/domain/catalog/models/category-filter.mjs +0 -19
- package/esm2020/domain/catalog/models/category-for-product.mjs +0 -7
- package/esm2020/domain/catalog/models/category.mjs +0 -14
- package/esm2020/domain/catalog/models/enums/index.mjs +0 -3
- package/esm2020/domain/catalog/models/enums/product-genders.enum.mjs +0 -7
- package/esm2020/domain/catalog/models/enums/shops.enum.mjs +0 -8
- package/esm2020/domain/catalog/models/filter-option.mjs +0 -7
- package/esm2020/domain/catalog/models/filter.mjs +0 -7
- package/esm2020/domain/catalog/models/index.mjs +0 -12
- package/esm2020/domain/catalog/models/kit-product.mjs +0 -18
- package/esm2020/domain/catalog/models/product-base.mjs +0 -25
- package/esm2020/domain/catalog/models/product-for-category.mjs +0 -14
- package/esm2020/domain/catalog/models/product-for-kit.mjs +0 -14
- package/esm2020/domain/catalog/models/product.mjs +0 -19
- package/esm2020/domain/catalog/models/types/category-condition.type.mjs +0 -2
- package/esm2020/domain/catalog/models/types/category-metadata.type.mjs +0 -2
- package/esm2020/domain/catalog/models/types/category-product.mjs +0 -2
- package/esm2020/domain/catalog/models/types/index.mjs +0 -12
- package/esm2020/domain/catalog/models/types/product-evaluation.type.mjs +0 -2
- package/esm2020/domain/catalog/models/types/product-gender.type.mjs +0 -2
- package/esm2020/domain/catalog/models/types/product-metadata.type.mjs +0 -2
- package/esm2020/domain/catalog/models/types/product-review.type.mjs +0 -2
- package/esm2020/domain/catalog/models/types/shop-description.type.mjs +0 -2
- package/esm2020/domain/catalog/models/types/shop-price.type.mjs +0 -2
- package/esm2020/domain/catalog/models/types/stock.type.mjs +0 -2
- package/esm2020/domain/catalog/models/types/variant-grade.type.mjs +0 -2
- package/esm2020/domain/catalog/models/variant.mjs +0 -7
- package/esm2020/domain/catalog/models/wishlist.mjs +0 -7
- package/esm2020/domain/catalog/repositories/category-collection-children.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/category-filter.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/category.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/filter-option.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/filter.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/index.mjs +0 -10
- package/esm2020/domain/catalog/repositories/product.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/subscription-product.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/variant.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/wishlist.repository.mjs +0 -2
- package/esm2020/domain/generic/index.mjs +0 -3
- package/esm2020/domain/generic/model/base.model.mjs +0 -24
- package/esm2020/domain/generic/model/identifier-fields.mjs +0 -2
- package/esm2020/domain/generic/model/index.mjs +0 -4
- package/esm2020/domain/generic/model/types/base-model-builder.type.mjs +0 -2
- package/esm2020/domain/generic/model/types/identifier-model.type.mjs +0 -2
- package/esm2020/domain/generic/model/types/index.mjs +0 -6
- package/esm2020/domain/generic/model/types/model-base-structure.type.mjs +0 -2
- package/esm2020/domain/generic/model/types/non-function-properties.type.mjs +0 -2
- package/esm2020/domain/generic/model/types/non-function-property-name.type.mjs +0 -2
- package/esm2020/domain/generic/repository/create.repository.mjs +0 -2
- package/esm2020/domain/generic/repository/crud.repository.mjs +0 -2
- package/esm2020/domain/generic/repository/delete.repository.mjs +0 -2
- package/esm2020/domain/generic/repository/enums/index.mjs +0 -3
- package/esm2020/domain/generic/repository/enums/update-option-actions.enum.mjs +0 -9
- package/esm2020/domain/generic/repository/enums/where.enum.mjs +0 -16
- package/esm2020/domain/generic/repository/find.repository.mjs +0 -2
- package/esm2020/domain/generic/repository/get.repository.mjs +0 -2
- package/esm2020/domain/generic/repository/index.mjs +0 -10
- package/esm2020/domain/generic/repository/read.repository.mjs +0 -2
- package/esm2020/domain/generic/repository/types/index.mjs +0 -7
- package/esm2020/domain/generic/repository/types/repository-find-filters.type.mjs +0 -2
- package/esm2020/domain/generic/repository/types/repository-find-result.type.mjs +0 -2
- package/esm2020/domain/generic/repository/types/repository-limit-options.type.mjs +0 -2
- package/esm2020/domain/generic/repository/types/repository-order-by-list.type.mjs +0 -2
- package/esm2020/domain/generic/repository/types/repository-update-params.type.mjs +0 -2
- package/esm2020/domain/generic/repository/types/where-options.type.mjs +0 -2
- package/esm2020/domain/generic/repository/update.repository.mjs +0 -2
- package/esm2020/domain/index.mjs +0 -7
- package/esm2020/domain/location/index.mjs +0 -2
- package/esm2020/domain/location/models/address.mjs +0 -7
- package/esm2020/domain/location/models/index.mjs +0 -3
- package/esm2020/domain/location/models/types/index.mjs +0 -4
- package/esm2020/domain/location/models/types/location-bound.type.mjs +0 -2
- package/esm2020/domain/location/models/types/location-geometry.type.mjs +0 -2
- package/esm2020/domain/location/models/types/location-lat-lng.type.mjs +0 -2
- package/esm2020/domain/shop-settings/enums/filter-type.enum.mjs +0 -21
- package/esm2020/domain/shop-settings/enums/index.mjs +0 -4
- package/esm2020/domain/shop-settings/enums/questions-filters.enum.mjs +0 -21
- package/esm2020/domain/shop-settings/enums/shop-page-name.enum.mjs +0 -21
- package/esm2020/domain/shop-settings/helpers/beauty-questions.helper.mjs +0 -47
- package/esm2020/domain/shop-settings/helpers/index.mjs +0 -2
- package/esm2020/domain/shop-settings/index.mjs +0 -5
- package/esm2020/domain/shop-settings/models/campaign-banner.mjs +0 -7
- package/esm2020/domain/shop-settings/models/campaign.mjs +0 -7
- package/esm2020/domain/shop-settings/models/home.mjs +0 -7
- package/esm2020/domain/shop-settings/models/index.mjs +0 -7
- package/esm2020/domain/shop-settings/models/shop-menu.mjs +0 -7
- package/esm2020/domain/shop-settings/models/shop-settings.mjs +0 -7
- package/esm2020/domain/shop-settings/models/types/banner.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/benefit.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/campaign-page.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/home-data.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/index.mjs +0 -17
- package/esm2020/domain/shop-settings/models/types/landing-page.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/menu-nav.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/sections.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-banner.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-brands.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-carousel.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-collection.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-gift.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-home.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-post.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-section.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/sub-menu.type.mjs +0 -2
- package/esm2020/domain/shop-settings/repositories/campaign-banner.repository.mjs +0 -2
- package/esm2020/domain/shop-settings/repositories/campaign.repository.mjs +0 -2
- package/esm2020/domain/shop-settings/repositories/home.repository.mjs +0 -2
- package/esm2020/domain/shop-settings/repositories/index.mjs +0 -6
- package/esm2020/domain/shop-settings/repositories/shop-menu.repository.mjs +0 -2
- package/esm2020/domain/shop-settings/repositories/shop-settings.repository.mjs +0 -2
- package/esm2020/domain/shopping/index.mjs +0 -3
- package/esm2020/domain/shopping/models/buy-2-win.mjs +0 -14
- package/esm2020/domain/shopping/models/campaign-dashboard.mjs +0 -7
- package/esm2020/domain/shopping/models/campaign-hashtag.mjs +0 -7
- package/esm2020/domain/shopping/models/checkout.mjs +0 -37
- package/esm2020/domain/shopping/models/coupons/coupon.mjs +0 -38
- package/esm2020/domain/shopping/models/coupons/enums/coupon-club-mens.enum.mjs +0 -7
- package/esm2020/domain/shopping/models/coupons/enums/coupon-subtypes.enum.mjs +0 -6
- package/esm2020/domain/shopping/models/coupons/enums/coupon-types.enum.mjs +0 -10
- package/esm2020/domain/shopping/models/coupons/enums/exclusivities.enum.mjs +0 -10
- package/esm2020/domain/shopping/models/coupons/enums/index.mjs +0 -4
- package/esm2020/domain/shopping/models/coupons/index.mjs +0 -3
- package/esm2020/domain/shopping/models/enums/checkout-types.enum.mjs +0 -7
- package/esm2020/domain/shopping/models/enums/index.mjs +0 -3
- package/esm2020/domain/shopping/models/enums/order-status.enum.mjs +0 -12
- package/esm2020/domain/shopping/models/index.mjs +0 -13
- package/esm2020/domain/shopping/models/line-item.mjs +0 -4
- package/esm2020/domain/shopping/models/order.mjs +0 -11
- package/esm2020/domain/shopping/models/payment.mjs +0 -169
- package/esm2020/domain/shopping/models/shipping-method.mjs +0 -7
- package/esm2020/domain/shopping/models/subscription/checkout.mjs +0 -28
- package/esm2020/domain/shopping/models/subscription/index.mjs +0 -3
- package/esm2020/domain/shopping/models/subscription/plan.mjs +0 -7
- package/esm2020/domain/shopping/models/types/index.mjs +0 -8
- package/esm2020/domain/shopping/models/types/payment-address.type.mjs +0 -2
- package/esm2020/domain/shopping/models/types/payment-billing.type.mjs +0 -2
- package/esm2020/domain/shopping/models/types/payment-card.type.mjs +0 -2
- package/esm2020/domain/shopping/models/types/payment-customer.type.mjs +0 -2
- package/esm2020/domain/shopping/models/types/payment-document.type.mjs +0 -2
- package/esm2020/domain/shopping/models/types/payment-item.type.mjs +0 -2
- package/esm2020/domain/shopping/models/types/payment-shipping.type.mjs +0 -2
- package/esm2020/domain/shopping/repositories/buy-2-win.repository.mjs +0 -2
- package/esm2020/domain/shopping/repositories/campaign-dashboard.repository.mjs +0 -2
- package/esm2020/domain/shopping/repositories/campaign-hashtag.repository.mjs +0 -2
- package/esm2020/domain/shopping/repositories/checkout.repository.mjs +0 -2
- package/esm2020/domain/shopping/repositories/coupon.repository.mjs +0 -2
- package/esm2020/domain/shopping/repositories/index.mjs +0 -10
- package/esm2020/domain/shopping/repositories/legacy-order.repository.mjs +0 -2
- package/esm2020/domain/shopping/repositories/order.repository.mjs +0 -2
- package/esm2020/domain/shopping/repositories/payment.repository.mjs +0 -2
- package/esm2020/domain/shopping/repositories/subscription/checkout.repository.mjs +0 -2
- package/esm2020/domain/shopping/repositories/subscription/index.mjs +0 -3
- package/esm2020/domain/shopping/repositories/subscription/plan.repository.mjs +0 -2
- package/esm2020/domain/users/errors/index.mjs +0 -4
- package/esm2020/domain/users/errors/unauthorized.error.mjs +0 -7
- package/esm2020/domain/users/errors/user-already-registered.error.mjs +0 -7
- package/esm2020/domain/users/errors/weak-password.error.mjs +0 -7
- package/esm2020/domain/users/index.mjs +0 -6
- package/esm2020/domain/users/models/beauty-profile.mjs +0 -12
- package/esm2020/domain/users/models/enums/accessory-importances.enum.mjs +0 -7
- package/esm2020/domain/users/models/enums/area.enum.mjs +0 -13
- package/esm2020/domain/users/models/enums/beard-problems.enum.mjs +0 -11
- package/esm2020/domain/users/models/enums/beard-sizes.enum.mjs +0 -9
- package/esm2020/domain/users/models/enums/beauty-product-importances.enum.mjs +0 -8
- package/esm2020/domain/users/models/enums/body-problems.enum.mjs +0 -13
- package/esm2020/domain/users/models/enums/body-shapes.enum.mjs +0 -9
- package/esm2020/domain/users/models/enums/body-tattoos.enum.mjs +0 -7
- package/esm2020/domain/users/models/enums/face-skin-oilinesses.enum.mjs +0 -9
- package/esm2020/domain/users/models/enums/face-skin-problems.enum.mjs +0 -12
- package/esm2020/domain/users/models/enums/face-skin-tones.enum.mjs +0 -10
- package/esm2020/domain/users/models/enums/family-incomes.enum.mjs +0 -10
- package/esm2020/domain/users/models/enums/fragrance-importances.enum.mjs +0 -7
- package/esm2020/domain/users/models/enums/hair-colors.enum.mjs +0 -12
- package/esm2020/domain/users/models/enums/hair-problems.enum.mjs +0 -12
- package/esm2020/domain/users/models/enums/hair-strands.enum.mjs +0 -10
- package/esm2020/domain/users/models/enums/hair-types.enum.mjs +0 -9
- package/esm2020/domain/users/models/enums/index.mjs +0 -21
- package/esm2020/domain/users/models/enums/office-position.enum.mjs +0 -8
- package/esm2020/domain/users/models/enums/product-spents.enum.mjs +0 -10
- package/esm2020/domain/users/models/enums/user-type.enum.mjs +0 -10
- package/esm2020/domain/users/models/index.mjs +0 -8
- package/esm2020/domain/users/models/lead.mjs +0 -7
- package/esm2020/domain/users/models/subscription/edition.mjs +0 -7
- package/esm2020/domain/users/models/subscription/enums/billing-status.enum.mjs +0 -5
- package/esm2020/domain/users/models/subscription/enums/edition-status.enum.mjs +0 -6
- package/esm2020/domain/users/models/subscription/enums/index.mjs +0 -5
- package/esm2020/domain/users/models/subscription/enums/payment-type.enum.mjs +0 -7
- package/esm2020/domain/users/models/subscription/enums/status.enum.mjs +0 -6
- package/esm2020/domain/users/models/subscription/index.mjs +0 -5
- package/esm2020/domain/users/models/subscription/payment.mjs +0 -14
- package/esm2020/domain/users/models/subscription/subscription.mjs +0 -43
- package/esm2020/domain/users/models/user-address.mjs +0 -7
- package/esm2020/domain/users/models/user-payment-method.mjs +0 -7
- package/esm2020/domain/users/models/user.mjs +0 -26
- package/esm2020/domain/users/repositories/beauty-profile.repository.mjs +0 -2
- package/esm2020/domain/users/repositories/edition.repository.mjs +0 -2
- package/esm2020/domain/users/repositories/index.mjs +0 -9
- package/esm2020/domain/users/repositories/lead.repository.mjs +0 -2
- package/esm2020/domain/users/repositories/subscription-payment.repository.mjs +0 -2
- package/esm2020/domain/users/repositories/subscription.repository.mjs +0 -2
- package/esm2020/domain/users/repositories/user-address.repository.mjs +0 -2
- package/esm2020/domain/users/repositories/user-payment-method.repository.mjs +0 -2
- package/esm2020/domain/users/repositories/user.repository.mjs +0 -2
- package/esm2020/domain/users/services/authentication.service.mjs +0 -2
- package/esm2020/domain/users/services/index.mjs +0 -4
- package/esm2020/domain/users/services/register.service.mjs +0 -2
- package/esm2020/domain/users/services/types/basic-user-data.type.mjs +0 -2
- package/esm2020/domain/users/services/types/index.mjs +0 -2
- package/esm2020/domain/users/use-cases/authentication.mjs +0 -43
- package/esm2020/domain/users/use-cases/index.mjs +0 -5
- package/esm2020/domain/users/use-cases/recovery-password.mjs +0 -9
- package/esm2020/domain/users/use-cases/register.mjs +0 -38
- package/esm2020/domain/users/use-cases/signout.mjs +0 -9
- package/esm2020/errors/duplicated-results.error.mjs +0 -7
- package/esm2020/errors/index.mjs +0 -5
- package/esm2020/errors/invalid-argument.error.mjs +0 -7
- package/esm2020/errors/not-found.error.mjs +0 -7
- package/esm2020/errors/required-argument.error.mjs +0 -9
- package/esm2020/index.mjs +0 -6
- package/esm2020/infra/elasticsearch/adapters/axios.adapter.mjs +0 -67
- package/esm2020/infra/elasticsearch/adapters/elastic-search.adapter.mjs +0 -2
- package/esm2020/infra/elasticsearch/adapters/index.mjs +0 -3
- package/esm2020/infra/elasticsearch/index.mjs +0 -4
- package/esm2020/infra/elasticsearch/indexes/index.mjs +0 -2
- package/esm2020/infra/elasticsearch/indexes/products-index.mjs +0 -104
- package/esm2020/infra/elasticsearch/types/elastic-search-result.mjs +0 -2
- package/esm2020/infra/elasticsearch/types/index.mjs +0 -2
- package/esm2020/infra/firebase/auth/authentication-firebase-auth.service.mjs +0 -41
- package/esm2020/infra/firebase/auth/index.mjs +0 -3
- package/esm2020/infra/firebase/auth/register-firebase-auth.service.mjs +0 -33
- package/esm2020/infra/firebase/auth/types/firebase-user-with-id.type.mjs +0 -2
- package/esm2020/infra/firebase/firestore/enums/firestore-field-type.enum.mjs +0 -10
- package/esm2020/infra/firebase/firestore/enums/index.mjs +0 -2
- package/esm2020/infra/firebase/firestore/index.mjs +0 -4
- package/esm2020/infra/firebase/firestore/mixins/index.mjs +0 -10
- package/esm2020/infra/firebase/firestore/mixins/with-create-firestore.mixin.mjs +0 -31
- package/esm2020/infra/firebase/firestore/mixins/with-crud-firestore.mixin.mjs +0 -10
- package/esm2020/infra/firebase/firestore/mixins/with-delete-firestore.mixin.mjs +0 -18
- package/esm2020/infra/firebase/firestore/mixins/with-find-firestore.mixin.mjs +0 -110
- package/esm2020/infra/firebase/firestore/mixins/with-firestore.mixin.mjs +0 -80
- package/esm2020/infra/firebase/firestore/mixins/with-get-firestore.mixin.mjs +0 -23
- package/esm2020/infra/firebase/firestore/mixins/with-helpers.mixin.mjs +0 -17
- package/esm2020/infra/firebase/firestore/mixins/with-sub-collection.mixin.mjs +0 -13
- package/esm2020/infra/firebase/firestore/mixins/with-update-firestore.mixin.mjs +0 -51
- package/esm2020/infra/firebase/firestore/repositories/catalog/category-firestore.repository.mjs +0 -67
- package/esm2020/infra/firebase/firestore/repositories/catalog/index.mjs +0 -5
- package/esm2020/infra/firebase/firestore/repositories/catalog/product-firestore.repository.mjs +0 -54
- package/esm2020/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.mjs +0 -16
- package/esm2020/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/index.mjs +0 -5
- package/esm2020/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.mjs +0 -60
- package/esm2020/infra/firebase/firestore/repositories/shop-settings/index.mjs +0 -4
- package/esm2020/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.mjs +0 -31
- package/esm2020/infra/firebase/firestore/repositories/shopping/index.mjs +0 -11
- package/esm2020/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.mjs +0 -11
- package/esm2020/infra/firebase/firestore/repositories/shopping/order-firestore.repository.mjs +0 -40
- package/esm2020/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/users/index.mjs +0 -9
- package/esm2020/infra/firebase/firestore/repositories/users/lead-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.mjs +0 -16
- package/esm2020/infra/firebase/firestore/repositories/users/subscription-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.mjs +0 -16
- package/esm2020/infra/firebase/firestore/repositories/users/user-address-firestore.repository.mjs +0 -16
- package/esm2020/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.mjs +0 -16
- package/esm2020/infra/firebase/firestore/repositories/users/user-firestore.repository.mjs +0 -50
- package/esm2020/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.mjs +0 -16
- package/esm2020/infra/firebase/firestore/types/firestore-interceptors.type.mjs +0 -2
- package/esm2020/infra/firebase/firestore/types/firestore-sub.repository.type.mjs +0 -2
- package/esm2020/infra/firebase/firestore/types/firestore.helpers.type.mjs +0 -2
- package/esm2020/infra/firebase/firestore/types/firestore.repository.type.mjs +0 -2
- package/esm2020/infra/firebase/firestore/types/index.mjs +0 -5
- package/esm2020/infra/firebase/index.mjs +0 -3
- package/esm2020/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.mjs +0 -13
- package/esm2020/infra/hasura-graphql/enums/hasura-graphql-where.enum.mjs +0 -17
- package/esm2020/infra/hasura-graphql/enums/index.mjs +0 -3
- package/esm2020/infra/hasura-graphql/index.mjs +0 -5
- package/esm2020/infra/hasura-graphql/mixins/helpers/attribute-option.helper.mjs +0 -35
- package/esm2020/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.mjs +0 -71
- package/esm2020/infra/hasura-graphql/mixins/helpers/filter-option.helper.mjs +0 -22
- package/esm2020/infra/hasura-graphql/mixins/helpers/graphql-field.helper.mjs +0 -125
- package/esm2020/infra/hasura-graphql/mixins/helpers/index.mjs +0 -5
- package/esm2020/infra/hasura-graphql/mixins/index.mjs +0 -8
- package/esm2020/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.mjs +0 -39
- package/esm2020/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.mjs +0 -10
- package/esm2020/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.mjs +0 -31
- package/esm2020/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.mjs +0 -152
- package/esm2020/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.mjs +0 -37
- package/esm2020/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.mjs +0 -108
- package/esm2020/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.mjs +0 -62
- package/esm2020/infra/hasura-graphql/models/category-hasura-graphql.mjs +0 -4
- package/esm2020/infra/hasura-graphql/models/index.mjs +0 -5
- package/esm2020/infra/hasura-graphql/models/kit-product-hasura-graphql.mjs +0 -15
- package/esm2020/infra/hasura-graphql/models/product-hasura-graphql.mjs +0 -11
- package/esm2020/infra/hasura-graphql/models/variant-hasura-graphql.mjs +0 -9
- package/esm2020/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.mjs +0 -39
- package/esm2020/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.mjs +0 -107
- package/esm2020/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.mjs +0 -338
- package/esm2020/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.mjs +0 -105
- package/esm2020/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.mjs +0 -22
- package/esm2020/infra/hasura-graphql/repositories/catalog/index.mjs +0 -9
- package/esm2020/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.mjs +0 -516
- package/esm2020/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.mjs +0 -114
- package/esm2020/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.mjs +0 -238
- package/esm2020/infra/hasura-graphql/repositories/index.mjs +0 -2
- package/esm2020/infra/hasura-graphql/types/fields.type.mjs +0 -2
- package/esm2020/infra/hasura-graphql/types/graphql.repository.type.mjs +0 -2
- package/esm2020/infra/hasura-graphql/types/hasura-graphql-auth-options.type.mjs +0 -2
- package/esm2020/infra/hasura-graphql/types/hasura-graphql-fields.type.mjs +0 -2
- package/esm2020/infra/hasura-graphql/types/hasura-graphql-headers.type.mjs +0 -2
- package/esm2020/infra/hasura-graphql/types/index.mjs +0 -9
- package/esm2020/infra/hasura-graphql/types/nested-field.type.mjs +0 -2
- package/esm2020/infra/hasura-graphql/types/query-builder-options.type.mjs +0 -2
- package/esm2020/infra/hasura-graphql/types/variable-options.type.mjs +0 -2
- package/esm2020/infra/index.mjs +0 -4
- package/esm2020/infrab4a-connect.mjs +0 -5
- package/esm2020/utils/decorators/debug.class.decorator.mjs +0 -7
- package/esm2020/utils/decorators/index.mjs +0 -3
- package/esm2020/utils/decorators/trace.method.decorator.mjs +0 -81
- package/esm2020/utils/get.mjs +0 -3
- package/esm2020/utils/helpers/class-name.helper.mjs +0 -15
- package/esm2020/utils/helpers/debug-decorator.helper.mjs +0 -18
- package/esm2020/utils/helpers/debug.helper.mjs +0 -150
- package/esm2020/utils/helpers/index.mjs +0 -5
- package/esm2020/utils/helpers/reflect.helper.mjs +0 -165
- package/esm2020/utils/index.mjs +0 -13
- package/esm2020/utils/is-uuid.mjs +0 -3
- package/esm2020/utils/is.mjs +0 -4
- package/esm2020/utils/log.utils.mjs +0 -9
- package/esm2020/utils/mixins/base.mixin.mjs +0 -6
- package/esm2020/utils/mixins/index.mjs +0 -4
- package/esm2020/utils/mixins/merge-constructor-params.type.mjs +0 -2
- package/esm2020/utils/mixins/mixin-ctor.type.mjs +0 -2
- package/esm2020/utils/parse-datetime.mjs +0 -14
- package/esm2020/utils/types/array-element.type.mjs +0 -2
- package/esm2020/utils/types/index.mjs +0 -3
- package/esm2020/utils/types/prop.type.mjs +0 -2
- package/fesm2015/infrab4a-connect.mjs +0 -4976
- package/fesm2015/infrab4a-connect.mjs.map +0 -1
- package/fesm2020/infrab4a-connect.mjs.map +0 -1
- package/infra/hasura-graphql/types/fields.type.d.ts +0 -2
- package/utils/mixins/merge-constructor-params.type.d.ts +0 -3
- package/utils/mixins/mixin-ctor.type.d.ts +0 -1
- package/utils/types/array-element.type.d.ts +0 -1
- package/utils/types/prop.type.d.ts +0 -1
- /package/{domain → src/domain}/catalog/helpers/index.d.ts +0 -0
- /package/{domain → src/domain}/catalog/helpers/round-product-price.helper.d.ts +0 -0
- /package/{domain → src/domain}/catalog/index.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/category-base.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/category-for-product.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/category.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/enums/index.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/enums/product-genders.enum.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/enums/shops.enum.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/filter-option.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/filter.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/index.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/product-base.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/product-for-category.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/product-for-kit.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/product.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/types/index.d.ts +0 -0
- /package/{domain → src/domain}/catalog/models/wishlist.d.ts +0 -0
- /package/{domain → src/domain}/catalog/repositories/category-collection-children.repository.d.ts +0 -0
- /package/{domain → src/domain}/catalog/repositories/category-filter.repository.d.ts +0 -0
- /package/{domain → src/domain}/catalog/repositories/category.repository.d.ts +0 -0
- /package/{domain → src/domain}/catalog/repositories/filter-option.repository.d.ts +0 -0
- /package/{domain → src/domain}/catalog/repositories/filter.repository.d.ts +0 -0
- /package/{domain → src/domain}/catalog/repositories/index.d.ts +0 -0
- /package/{domain → src/domain}/catalog/repositories/subscription-product.repository.d.ts +0 -0
- /package/{domain → src/domain}/catalog/repositories/variant.repository.d.ts +0 -0
- /package/{domain → src/domain}/catalog/repositories/wishlist.repository.d.ts +0 -0
- /package/{domain → src/domain}/generic/index.d.ts +0 -0
- /package/{domain → src/domain}/generic/model/identifier-fields.d.ts +0 -0
- /package/{domain → src/domain}/generic/model/index.d.ts +0 -0
- /package/{domain → src/domain}/generic/model/types/base-model-builder.type.d.ts +0 -0
- /package/{domain → src/domain}/generic/model/types/index.d.ts +0 -0
- /package/{domain → src/domain}/generic/repository/enums/index.d.ts +0 -0
- /package/{domain → src/domain}/generic/repository/enums/update-option-actions.enum.d.ts +0 -0
- /package/{domain → src/domain}/generic/repository/enums/where.enum.d.ts +0 -0
- /package/{domain → src/domain}/generic/repository/index.d.ts +0 -0
- /package/{domain → src/domain}/generic/repository/types/index.d.ts +0 -0
- /package/{domain → src/domain}/index.d.ts +0 -0
- /package/{domain → src/domain}/location/index.d.ts +0 -0
- /package/{domain → src/domain}/location/models/address.d.ts +0 -0
- /package/{domain → src/domain}/location/models/index.d.ts +0 -0
- /package/{domain → src/domain}/location/models/types/index.d.ts +0 -0
- /package/{domain → src/domain}/shop-settings/enums/filter-type.enum.d.ts +0 -0
- /package/{domain → src/domain}/shop-settings/enums/questions-filters.enum.d.ts +0 -0
- /package/{domain → src/domain}/shop-settings/helpers/index.d.ts +0 -0
- /package/{domain → src/domain}/shop-settings/index.d.ts +0 -0
- /package/{domain → src/domain}/shop-settings/models/home.d.ts +0 -0
- /package/{domain → src/domain}/shop-settings/models/shop-menu.d.ts +0 -0
- /package/{domain → src/domain}/shop-settings/models/types/shop-brands.type.d.ts +0 -0
- /package/{domain → src/domain}/shop-settings/models/types/shop-collection.type.d.ts +0 -0
- /package/{domain → src/domain}/shop-settings/repositories/home.repository.d.ts +0 -0
- /package/{domain → src/domain}/shop-settings/repositories/shop-menu.repository.d.ts +0 -0
- /package/{domain → src/domain}/shop-settings/repositories/shop-settings.repository.d.ts +0 -0
- /package/{domain → src/domain}/shopping/index.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/buy-2-win.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/campaign-dashboard.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/campaign-hashtag.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/checkout.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/coupons/coupon.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/coupons/enums/coupon-club-mens.enum.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/coupons/enums/coupon-types.enum.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/coupons/enums/exclusivities.enum.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/coupons/enums/index.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/coupons/index.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/enums/checkout-types.enum.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/enums/index.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/enums/order-status.enum.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/index.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/line-item.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/order.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/payment.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/shipping-method.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/subscription/checkout.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/subscription/index.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/subscription/plan.d.ts +0 -0
- /package/{domain → src/domain}/shopping/models/types/index.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/buy-2-win.repository.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/campaign-dashboard.repository.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/campaign-hashtag.repository.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/checkout.repository.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/coupon.repository.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/index.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/legacy-order.repository.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/order.repository.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/payment.repository.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/subscription/checkout.repository.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/subscription/index.d.ts +0 -0
- /package/{domain → src/domain}/shopping/repositories/subscription/plan.repository.d.ts +0 -0
- /package/{domain → src/domain}/users/errors/index.d.ts +0 -0
- /package/{domain → src/domain}/users/errors/unauthorized.error.d.ts +0 -0
- /package/{domain → src/domain}/users/errors/user-already-registered.error.d.ts +0 -0
- /package/{domain → src/domain}/users/errors/weak-password.error.d.ts +0 -0
- /package/{domain → src/domain}/users/index.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/accessory-importances.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/area.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/beard-problems.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/beard-sizes.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/beauty-product-importances.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/body-problems.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/body-shapes.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/body-tattoos.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/face-skin-oilinesses.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/face-skin-problems.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/face-skin-tones.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/family-incomes.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/fragrance-importances.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/hair-colors.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/hair-problems.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/hair-strands.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/hair-types.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/index.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/office-position.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/product-spents.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/enums/user-type.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/index.d.ts +0 -0
- /package/{domain → src/domain}/users/models/lead.d.ts +0 -0
- /package/{domain → src/domain}/users/models/subscription/enums/billing-status.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/subscription/enums/edition-status.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/subscription/enums/index.d.ts +0 -0
- /package/{domain → src/domain}/users/models/subscription/enums/payment-type.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/subscription/enums/status.enum.d.ts +0 -0
- /package/{domain → src/domain}/users/models/subscription/index.d.ts +0 -0
- /package/{domain → src/domain}/users/models/subscription/subscription.d.ts +0 -0
- /package/{domain → src/domain}/users/models/user.d.ts +0 -0
- /package/{domain → src/domain}/users/repositories/beauty-profile.repository.d.ts +0 -0
- /package/{domain → src/domain}/users/repositories/edition.repository.d.ts +0 -0
- /package/{domain → src/domain}/users/repositories/index.d.ts +0 -0
- /package/{domain → src/domain}/users/repositories/lead.repository.d.ts +0 -0
- /package/{domain → src/domain}/users/repositories/subscription-payment.repository.d.ts +0 -0
- /package/{domain → src/domain}/users/repositories/subscription.repository.d.ts +0 -0
- /package/{domain → src/domain}/users/repositories/user-address.repository.d.ts +0 -0
- /package/{domain → src/domain}/users/repositories/user-payment-method.repository.d.ts +0 -0
- /package/{domain → src/domain}/users/repositories/user.repository.d.ts +0 -0
- /package/{domain → src/domain}/users/services/index.d.ts +0 -0
- /package/{domain → src/domain}/users/services/types/index.d.ts +0 -0
- /package/{domain → src/domain}/users/use-cases/index.d.ts +0 -0
- /package/{domain → src/domain}/users/use-cases/recovery-password.d.ts +0 -0
- /package/{domain → src/domain}/users/use-cases/signout.d.ts +0 -0
- /package/{errors → src/errors}/duplicated-results.error.d.ts +0 -0
- /package/{errors → src/errors}/index.d.ts +0 -0
- /package/{errors → src/errors}/invalid-argument.error.d.ts +0 -0
- /package/{errors → src/errors}/not-found.error.d.ts +0 -0
- /package/{errors → src/errors}/required-argument.error.d.ts +0 -0
- /package/{infra → src/infra}/elasticsearch/adapters/elastic-search.adapter.d.ts +0 -0
- /package/{infra → src/infra}/elasticsearch/adapters/index.d.ts +0 -0
- /package/{infra → src/infra}/elasticsearch/index.d.ts +0 -0
- /package/{infra → src/infra}/elasticsearch/indexes/index.d.ts +0 -0
- /package/{infra → src/infra}/elasticsearch/types/index.d.ts +0 -0
- /package/{infra → src/infra}/firebase/auth/authentication-firebase-auth.service.d.ts +0 -0
- /package/{infra → src/infra}/firebase/auth/index.d.ts +0 -0
- /package/{infra → src/infra}/firebase/auth/register-firebase-auth.service.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/enums/firestore-field-type.enum.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/enums/index.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/index.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/mixins/index.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/mixins/with-helpers.mixin.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/repositories/catalog/index.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/repositories/index.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/repositories/shop-settings/index.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/repositories/shopping/index.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/repositories/users/index.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/types/firestore.helpers.type.d.ts +0 -0
- /package/{infra → src/infra}/firebase/firestore/types/index.d.ts +0 -0
- /package/{infra → src/infra}/firebase/index.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/enums/hasura-graphql-column-type.enum.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/enums/hasura-graphql-where.enum.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/enums/index.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/index.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/mixins/helpers/bind-filter-query.helper.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/mixins/helpers/index.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/mixins/index.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/models/category-hasura-graphql.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/models/index.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/models/kit-product-hasura-graphql.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/models/product-hasura-graphql.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/models/variant-hasura-graphql.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/repositories/catalog/index.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/repositories/index.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/types/index.d.ts +0 -0
- /package/{infra → src/infra}/hasura-graphql/types/query-builder-options.type.d.ts +0 -0
- /package/{infra → src/infra}/index.d.ts +0 -0
- /package/{utils → src/utils}/decorators/debug.class.decorator.d.ts +0 -0
- /package/{utils → src/utils}/decorators/index.d.ts +0 -0
- /package/{utils → src/utils}/get.d.ts +0 -0
- /package/{utils → src/utils}/helpers/class-name.helper.d.ts +0 -0
- /package/{utils → src/utils}/helpers/index.d.ts +0 -0
- /package/{utils → src/utils}/is-uuid.d.ts +0 -0
- /package/{utils → src/utils}/is.d.ts +0 -0
- /package/{utils → src/utils}/log.utils.d.ts +0 -0
- /package/{utils → src/utils}/mixins/base.mixin.d.ts +0 -0
- /package/{utils → src/utils}/mixins/index.d.ts +0 -0
- /package/{utils → src/utils}/parse-datetime.d.ts +0 -0
- /package/{utils → src/utils}/types/index.d.ts +0 -0
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { deleteDoc, doc } from 'firebase/firestore';
|
|
2
|
-
export const withDeleteFirestore = (MixinBase) => {
|
|
3
|
-
return class DeleteFirestore extends MixinBase {
|
|
4
|
-
async delete(identifiers) {
|
|
5
|
-
const instance = this.model.toInstance(this.model.identifiersFields.reduce((acc, field) => ({ ...acc, [field]: identifiers[field] }), {}));
|
|
6
|
-
const intercepted = await this.interceptors?.request?.({ instance });
|
|
7
|
-
const builded = intercepted?.instance || instance;
|
|
8
|
-
await deleteDoc(doc(this.collection(this.buildCollectionPathForRemove(identifiers)), Object.values(builded.identifier).shift().toString()));
|
|
9
|
-
await this.interceptors?.response?.(instance, intercepted);
|
|
10
|
-
}
|
|
11
|
-
buildCollectionPathForRemove(identifiers) {
|
|
12
|
-
return this.isSubCollection(this)
|
|
13
|
-
? `${this.parentRepository.collectionName}/${identifiers[this.parentIdField]}/${this.collectionName}`
|
|
14
|
-
: this.collectionName;
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kZWxldGUtZmlyZXN0b3JlLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLWRlbGV0ZS1maXJlc3RvcmUubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQU1uRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUlqQyxTQUFnRixFQUloRixFQUFFO0lBQ0YsT0FBTyxNQUFNLGVBQWdCLFNBQVEsU0FBUztRQUM1QyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQTBDO1lBQ3JELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FDakMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLENBQUMsS0FBc0MsQ0FBQyxFQUFFLENBQUMsRUFDMUYsRUFBRSxDQUNILENBQ0YsQ0FBQTtZQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDcEUsTUFBTSxPQUFPLEdBQUcsV0FBVyxFQUFFLFFBQVEsSUFBSSxRQUFRLENBQUE7WUFFakQsTUFBTSxTQUFTLENBQ2IsR0FBRyxDQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQy9ELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUNyRCxDQUNGLENBQUE7WUFFRCxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQzVELENBQUM7UUFFRCw0QkFBNEIsQ0FBQyxXQUFvQztZQUMvRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUMvQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDckcsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUE7UUFDekIsQ0FBQztLQUNLLENBQUE7QUFDVixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWxldGVEb2MsIGRvYyB9IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcclxuXHJcbmltcG9ydCB7IERlbGV0ZVJlcG9zaXRvcnksIERlbGV0ZVJlcG9zaXRvcnlQYXJhbXMsIElkZW50aWZpZXJzTW9kZWwsIE1vZGVsQmFzZVN0cnVjdHVyZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgTWl4aW5DdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXHJcbmltcG9ydCB7IEZpcmVzdG9yZUhlbHBlcnMsIEZpcmVzdG9yZVJlcG9zaXRvcnkgfSBmcm9tICcuLi90eXBlcydcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRGVsZXRlRmlyZXN0b3JlID0gPFxyXG4gIFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPFRCYXNlPixcclxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+PixcclxuPihcclxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIEZpcmVzdG9yZUhlbHBlcnM+ICYgVE1peGluQmFzZSxcclxuKTogTWl4aW5DdG9yPFxyXG4gIEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+ICYgSW5zdGFuY2VUeXBlPFRNaXhpbkJhc2U+ICYgRGVsZXRlUmVwb3NpdG9yeTxUQmFzZT4gJiBGaXJlc3RvcmVIZWxwZXJzLFxyXG4gIFtdXHJcbj4gPT4ge1xyXG4gIHJldHVybiBjbGFzcyBEZWxldGVGaXJlc3RvcmUgZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBEZWxldGVSZXBvc2l0b3J5PFRCYXNlPiB7XHJcbiAgICBhc3luYyBkZWxldGUoaWRlbnRpZmllcnM6IERlbGV0ZVJlcG9zaXRvcnlQYXJhbXM8VEJhc2U+KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5tb2RlbC50b0luc3RhbmNlKFxyXG4gICAgICAgIHRoaXMubW9kZWwuaWRlbnRpZmllcnNGaWVsZHMucmVkdWNlKFxyXG4gICAgICAgICAgKGFjYywgZmllbGQpID0+ICh7IC4uLmFjYywgW2ZpZWxkXTogaWRlbnRpZmllcnNbZmllbGQgYXMga2V5b2YgSWRlbnRpZmllcnNNb2RlbDxUQmFzZT5dIH0pLFxyXG4gICAgICAgICAge30sXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICBjb25zdCBpbnRlcmNlcHRlZCA9IGF3YWl0IHRoaXMuaW50ZXJjZXB0b3JzPy5yZXF1ZXN0Py4oeyBpbnN0YW5jZSB9KVxyXG4gICAgICBjb25zdCBidWlsZGVkID0gaW50ZXJjZXB0ZWQ/Lmluc3RhbmNlIHx8IGluc3RhbmNlXHJcblxyXG4gICAgICBhd2FpdCBkZWxldGVEb2MoXHJcbiAgICAgICAgZG9jKFxyXG4gICAgICAgICAgdGhpcy5jb2xsZWN0aW9uKHRoaXMuYnVpbGRDb2xsZWN0aW9uUGF0aEZvclJlbW92ZShpZGVudGlmaWVycykpLFxyXG4gICAgICAgICAgT2JqZWN0LnZhbHVlcyhidWlsZGVkLmlkZW50aWZpZXIpLnNoaWZ0KCkudG9TdHJpbmcoKSxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcblxyXG4gICAgICBhd2FpdCB0aGlzLmludGVyY2VwdG9ycz8ucmVzcG9uc2U/LihpbnN0YW5jZSwgaW50ZXJjZXB0ZWQpXHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRDb2xsZWN0aW9uUGF0aEZvclJlbW92ZShpZGVudGlmaWVyczogSWRlbnRpZmllcnNNb2RlbDxUQmFzZT4pOiBzdHJpbmcge1xyXG4gICAgICByZXR1cm4gdGhpcy5pc1N1YkNvbGxlY3Rpb24odGhpcylcclxuICAgICAgICA/IGAke3RoaXMucGFyZW50UmVwb3NpdG9yeS5jb2xsZWN0aW9uTmFtZX0vJHtpZGVudGlmaWVyc1t0aGlzLnBhcmVudElkRmllbGRdfS8ke3RoaXMuY29sbGVjdGlvbk5hbWV9YFxyXG4gICAgICAgIDogdGhpcy5jb2xsZWN0aW9uTmFtZVxyXG4gICAgfVxyXG4gIH0gYXMgYW55XHJcbn1cclxuIl19
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { doc, getDoc, getDocs, limit, orderBy, query, startAfter, startAt, where, } from 'firebase/firestore';
|
|
2
|
-
import { Where, } from '../../../../domain';
|
|
3
|
-
import { is, isDate, isNil, isNumber, isObject, isString, set } from '../../../../utils';
|
|
4
|
-
import { FirestoreFieldType } from '../enums';
|
|
5
|
-
export const withFindFirestore = (MixinBase) => {
|
|
6
|
-
const checkIfIsFilterOption = (filter) => !isNil(filter?.operator);
|
|
7
|
-
const getValueFromFilter = (filter) => {
|
|
8
|
-
return checkIfIsFilterOption(filter) ? filter.value : filter;
|
|
9
|
-
};
|
|
10
|
-
const getFinalValueFrom = (value) => isNumber(value) || isString(value) || isDate(value) || Array.isArray(value)
|
|
11
|
-
? value
|
|
12
|
-
: Object.values(getFinalValueFrom);
|
|
13
|
-
return class FindFirestore extends MixinBase {
|
|
14
|
-
constructor() {
|
|
15
|
-
super(...arguments);
|
|
16
|
-
this.makeFirestoreWhere = (filter) => Object.keys(filter).reduce((queries, fieldName) => [
|
|
17
|
-
...queries,
|
|
18
|
-
...this.buildWhereSentence(fieldName, is(filter[fieldName])),
|
|
19
|
-
], []);
|
|
20
|
-
this.buildWhereSentence = (fieldName, options) => {
|
|
21
|
-
if (this.isSubCollection(this) && fieldName === this.parentIdField)
|
|
22
|
-
return [];
|
|
23
|
-
const value = options?.value || options;
|
|
24
|
-
const object = {};
|
|
25
|
-
set(object, fieldName, value);
|
|
26
|
-
const plainInstance = new this.model(object).toPlain();
|
|
27
|
-
const firestoreFieldName = fieldName.toString().indexOf('.') > -1
|
|
28
|
-
? fieldName.toString()
|
|
29
|
-
: Object.keys(plainInstance).find((key) => plainInstance[key]);
|
|
30
|
-
if (options?.operator === Where.LIKE) {
|
|
31
|
-
if (Array.isArray(options?.value) &&
|
|
32
|
-
(this.fields[firestoreFieldName] ===
|
|
33
|
-
FirestoreFieldType.Array ||
|
|
34
|
-
!this.fields[firestoreFieldName]))
|
|
35
|
-
return [where(firestoreFieldName, 'array-contains-any', options.value)];
|
|
36
|
-
return [where(firestoreFieldName, '>=', options.value), where(firestoreFieldName, '<=', `${options.value}~`)];
|
|
37
|
-
}
|
|
38
|
-
if (options?.operator === Where.IN &&
|
|
39
|
-
Array.isArray(options?.value) &&
|
|
40
|
-
(this.fields[firestoreFieldName] === FirestoreFieldType.Array ||
|
|
41
|
-
!this.fields[firestoreFieldName]))
|
|
42
|
-
return [where(firestoreFieldName, 'array-contains', options.value)];
|
|
43
|
-
if (isObject(options) && isNil(options?.operator) && isNil(options?.value)) {
|
|
44
|
-
return Object.keys(options).reduce((queries, key) => [
|
|
45
|
-
...queries,
|
|
46
|
-
...this.buildWhereSentence(`${fieldName.toString()}.${key}`, is(options)[key]),
|
|
47
|
-
], []);
|
|
48
|
-
}
|
|
49
|
-
return [where(firestoreFieldName, options?.operator || '==', options?.value || options)];
|
|
50
|
-
};
|
|
51
|
-
this.makeFirestoreOrderBy = (filters, fieldsToOrderBy) => {
|
|
52
|
-
const orderByKeys = Object.keys(fieldsToOrderBy || {});
|
|
53
|
-
if (!orderByKeys.length)
|
|
54
|
-
return [];
|
|
55
|
-
const filtersKeysWithUnordered = Object.keys(filters || {}).filter((filterKey) => !orderByKeys.includes(filterKey));
|
|
56
|
-
if (filtersKeysWithUnordered.length)
|
|
57
|
-
filtersKeysWithUnordered.forEach((filterKey) => (fieldsToOrderBy = {
|
|
58
|
-
...(![Where.EQUALS].includes(is(filters[filterKey]).operator)
|
|
59
|
-
? { [filterKey]: 'asc' }
|
|
60
|
-
: {}),
|
|
61
|
-
...fieldsToOrderBy,
|
|
62
|
-
}));
|
|
63
|
-
return Object.keys(fieldsToOrderBy).map((fieldName) => orderBy(fieldName, fieldsToOrderBy[fieldName]));
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
async find(find = {}) {
|
|
67
|
-
const collection = this.collection(this.buildCollectionPathForFind(find.filters));
|
|
68
|
-
const enableCount = find?.options?.enableCount ?? true;
|
|
69
|
-
const intercepted = await this.interceptors?.request?.({ find });
|
|
70
|
-
const { filters, limits, orderBy } = intercepted.find || find;
|
|
71
|
-
const queries = this.makeFirestoreWhere(filters || {});
|
|
72
|
-
const ordination = this.makeFirestoreOrderBy(filters, orderBy);
|
|
73
|
-
const offsets = await this.defineLimits(filters, limits);
|
|
74
|
-
const queryArgumments = [...queries, ...ordination, ...offsets];
|
|
75
|
-
const docs = await getDocs(query(collection, ...queryArgumments));
|
|
76
|
-
const data = docs.docs.map((doc) => doc.data());
|
|
77
|
-
return {
|
|
78
|
-
data: (await this.interceptors?.response?.(data, intercepted)) || data,
|
|
79
|
-
count: enableCount ? this.calculateCount(data, limits) : Infinity,
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
buildCollectionPathForFind(filters) {
|
|
83
|
-
if (!this.isSubCollection(this))
|
|
84
|
-
return this.collectionName;
|
|
85
|
-
const parentIdField = this.parentIdField;
|
|
86
|
-
const parentId = getValueFromFilter(filters?.[parentIdField]);
|
|
87
|
-
return `${this.parentRepository.collectionName}/${parentId}/${this.collectionName}`;
|
|
88
|
-
}
|
|
89
|
-
async defineLimits(filters, limits) {
|
|
90
|
-
const queries = [];
|
|
91
|
-
if (limits?.offset) {
|
|
92
|
-
if (this.model.isModel(limits.offset))
|
|
93
|
-
queries.push(startAfter(await getDoc(doc(this.collection(this.buildCollectionPathForFind(filters)), Object.values(limits.offset.identifier).shift()?.toString()))));
|
|
94
|
-
else if (isNumber(limits.offset) || isString(limits.offset))
|
|
95
|
-
queries.push(startAt(limits.offset));
|
|
96
|
-
}
|
|
97
|
-
if (limits?.limit)
|
|
98
|
-
queries.push(limit(limits.limit));
|
|
99
|
-
return queries;
|
|
100
|
-
}
|
|
101
|
-
calculateCount(data, limits) {
|
|
102
|
-
if (data.length <= 0)
|
|
103
|
-
return 0;
|
|
104
|
-
if (data.length < limits?.limit)
|
|
105
|
-
return data.length;
|
|
106
|
-
return Infinity;
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maW5kLWZpcmVzdG9yZS5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9taXhpbnMvd2l0aC1maW5kLWZpcmVzdG9yZS5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsR0FBRyxFQUNILE1BQU0sRUFDTixPQUFPLEVBQ1AsS0FBSyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBRUwsVUFBVSxFQUNWLE9BQU8sRUFDUCxLQUFLLEdBRU4sTUFBTSxvQkFBb0IsQ0FBQTtBQUUzQixPQUFPLEVBV0wsS0FBSyxHQUNOLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFhLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUc3QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUkvQixTQUFnRixFQUNpQyxFQUFFO0lBQ25ILE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFXLEVBQXVELEVBQUUsQ0FDakcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzFCLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxNQUF1QyxFQUFPLEVBQUU7UUFDMUUsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0lBQzlELENBQUMsQ0FBQTtJQUNELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUN2QyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUss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XG4gIGdldERvYyxcclxuICBnZXREb2NzLFxyXG4gIGxpbWl0LFxyXG4gIG9yZGVyQnksXHJcbiAgcXVlcnksXHJcbiAgUXVlcnlDb25zdHJhaW50LFxyXG4gIHN0YXJ0QWZ0ZXIsXHJcbiAgc3RhcnRBdCxcclxuICB3aGVyZSxcclxuICBXaGVyZUZpbHRlck9wLFxyXG59IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcclxuXHJcbmltcG9ydCB7XHJcbiAgRmluZFJlcG9zaXRvcnksXHJcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxyXG4gIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXMsXHJcbiAgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzLFxyXG4gIFJlcG9zaXRvcnlGaW5kRmllbGQsXHJcbiAgUmVwb3NpdG9yeUZpbmRGaWVsdGVycyxcclxuICBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9ucyxcclxuICBSZXBvc2l0b3J5RmluZFJlc3VsdCxcclxuICBSZXBvc2l0b3J5TGltaXRPcHRpb25zLFxyXG4gIFJlcG9zaXRvcnlPcmRlckJ5LFxyXG4gIFdoZXJlLFxyXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgaXMsIGlzRGF0ZSwgaXNOaWwsIGlzTnVtYmVyLCBpc09iamVjdCwgaXNTdHJpbmcsIE1peGluQ3Rvciwgc2V0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXHJcbmltcG9ydCB7IEZpcmVzdG9yZUZpZWxkVHlwZSB9IGZyb20gJy4uL2VudW1zJ1xyXG5pbXBvcnQgeyBGaXJlc3RvcmVIZWxwZXJzLCBGaXJlc3RvcmVSZXBvc2l0b3J5IH0gZnJvbSAnLi4vdHlwZXMnXHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aEZpbmRGaXJlc3RvcmUgPSA8XHJcbiAgVEJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8VEJhc2U+LFxyXG4gIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4+LFxyXG4+KFxyXG4gIE1peGluQmFzZTogTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+ICYgRmlyZXN0b3JlSGVscGVycz4gJiBUTWl4aW5CYXNlLFxyXG4pOiBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4gJiBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4gJiBGaW5kUmVwb3NpdG9yeTxUQmFzZT4gJiBGaXJlc3RvcmVIZWxwZXJzLCBbXT4gPT4ge1xyXG4gIGNvbnN0IGNoZWNrSWZJc0ZpbHRlck9wdGlvbiA9IChmaWx0ZXI6IGFueSk6IGZpbHRlciBpcyBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxUQmFzZSwgYW55PiA9PlxyXG4gICAgIWlzTmlsKGZpbHRlcj8ub3BlcmF0b3IpXHJcbiAgY29uc3QgZ2V0VmFsdWVGcm9tRmlsdGVyID0gKGZpbHRlcjogUmVwb3NpdG9yeUZpbmRGaWVsZDxUQmFzZSwgYW55Pik6IGFueSA9PiB7XHJcbiAgICByZXR1cm4gY2hlY2tJZklzRmlsdGVyT3B0aW9uKGZpbHRlcikgPyBmaWx0ZXIudmFsdWUgOiBmaWx0ZXJcclxuICB9XHJcbiAgY29uc3QgZ2V0RmluYWxWYWx1ZUZyb20gPSAodmFsdWU6IGFueSkgPT5cclxuICAgIGlzTnVtYmVyKHZhbHVlKSB8fCBpc1N0cmluZyh2YWx1ZSkgfHwgaXNEYXRlKHZhbHVlKSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKVxyXG4gICAgICA/IHZhbHVlXHJcbiAgICAgIDogT2JqZWN0LnZhbHVlcyhnZXRGaW5hbFZhbHVlRnJvbSlcclxuXHJcbiAgcmV0dXJuIGNsYXNzIEZpbmRGaXJlc3RvcmUgZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBGaW5kUmVwb3NpdG9yeTxUQmFzZT4ge1xyXG4gICAgYXN5bmMgZmluZChcclxuICAgICAgZmluZDoge1xyXG4gICAgICAgIGZpbHRlcnM/OiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFRCYXNlPlxyXG4gICAgICAgIGxpbWl0cz86IFJlcG9zaXRvcnlMaW1pdE9wdGlvbnM8VEJhc2U+XHJcbiAgICAgICAgb3JkZXJCeT86IFJlcG9zaXRvcnlPcmRlckJ5PFRCYXNlPlxyXG4gICAgICAgIG9wdGlvbnM/OiB7IGVuYWJsZUNvdW50PzogYm9vbGVhbiB9XHJcbiAgICAgIH0gPSB7fSxcclxuICAgICk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8VEJhc2U+PiB7XHJcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb246IENvbGxlY3Rpb25SZWZlcmVuY2U8VEJhc2U+ID0gdGhpcy5jb2xsZWN0aW9uKHRoaXMuYnVpbGRDb2xsZWN0aW9uUGF0aEZvckZpbmQoZmluZC5maWx0ZXJzKSlcclxuICAgICAgY29uc3QgZW5hYmxlQ291bnQgPSBmaW5kPy5vcHRpb25zPy5lbmFibGVDb3VudCA/PyB0cnVlXHJcbiAgICAgIGNvbnN0IGludGVyY2VwdGVkID0gYXdhaXQgdGhpcy5pbnRlcmNlcHRvcnM/LnJlcXVlc3Q/Lih7IGZpbmQgfSlcclxuICAgICAgY29uc3QgeyBmaWx0ZXJzLCBsaW1pdHMsIG9yZGVyQnkgfSA9IGludGVyY2VwdGVkLmZpbmQgfHwgZmluZFxyXG4gICAgICBjb25zdCBxdWVyaWVzID0gdGhpcy5tYWtlRmlyZXN0b3JlV2hlcmUoZmlsdGVycyB8fCB7fSlcclxuICAgICAgY29uc3Qgb3JkaW5hdGlvbiA9IHRoaXMubWFrZUZpcmVzdG9yZU9yZGVyQnkoZmlsdGVycywgb3JkZXJCeSlcclxuICAgICAgY29uc3Qgb2Zmc2V0cyA9IGF3YWl0IHRoaXMuZGVmaW5lTGltaXRzKGZpbHRlcnMsIGxpbWl0cylcclxuICAgICAgY29uc3QgcXVlcnlBcmd1bW1lbnRzOiBRdWVyeUNvbnN0cmFpbnRbXSA9IFsuLi5xdWVyaWVzLCAuLi5vcmRpbmF0aW9uLCAuLi5vZmZzZXRzXVxyXG4gICAgICBjb25zdCBkb2NzID0gYXdhaXQgZ2V0RG9jcyhxdWVyeShjb2xsZWN0aW9uLCAuLi5xdWVyeUFyZ3VtbWVudHMpKVxyXG4gICAgICBjb25zdCBkYXRhID0gZG9jcy5kb2NzLm1hcCgoZG9jKSA9PiBkb2MuZGF0YSgpKVxyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBkYXRhOiAoYXdhaXQgdGhpcy5pbnRlcmNlcHRvcnM/LnJlc3BvbnNlPy4oZGF0YSwgaW50ZXJjZXB0ZWQpKSB8fCBkYXRhLFxyXG4gICAgICAgIGNvdW50OiBlbmFibGVDb3VudCA/IHRoaXMuY2FsY3VsYXRlQ291bnQoZGF0YSwgbGltaXRzKSA6IEluZmluaXR5LFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRDb2xsZWN0aW9uUGF0aEZvckZpbmQoZmlsdGVyczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxUQmFzZT4pOiBzdHJpbmcge1xyXG4gICAgICBpZiAoIXRoaXMuaXNTdWJDb2xsZWN0aW9uKHRoaXMpKSByZXR1cm4gdGhpcy5jb2xsZWN0aW9uTmFtZVxyXG5cclxuICAgICAgY29uc3QgcGFyZW50SWRGaWVsZCA9IHRoaXMucGFyZW50SWRGaWVsZCBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFRCYXNlPlxyXG4gICAgICBjb25zdCBwYXJlbnRJZCA9IGdldFZhbHVlRnJvbUZpbHRlcihmaWx0ZXJzPy5bcGFyZW50SWRGaWVsZF0pXHJcblxyXG4gICAgICByZXR1cm4gYCR7dGhpcy5wYXJlbnRSZXBvc2l0b3J5LmNvbGxlY3Rpb25OYW1lfS8ke3BhcmVudElkfS8ke3RoaXMuY29sbGVjdGlvbk5hbWV9YFxyXG4gICAgfVxyXG5cclxuICAgIG1ha2VGaXJlc3RvcmVXaGVyZSA9IChmaWx0ZXI6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8VEJhc2U+KTogUXVlcnlDb25zdHJhaW50W10gPT5cclxuICAgICAgT2JqZWN0LmtleXMoZmlsdGVyKS5yZWR1Y2UoXHJcbiAgICAgICAgKHF1ZXJpZXM6IFF1ZXJ5Q29uc3RyYWludFtdLCBmaWVsZE5hbWU6IHN0cmluZykgPT4gW1xyXG4gICAgICAgICAgLi4ucXVlcmllcyxcclxuICAgICAgICAgIC4uLnRoaXMuYnVpbGRXaGVyZVNlbnRlbmNlKGZpZWxkTmFtZSwgaXMoZmlsdGVyW2ZpZWxkTmFtZSBhcyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8VEJhc2U+XSkpLFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgW10sXHJcbiAgICAgIClcclxuXHJcbiAgICBidWlsZFdoZXJlU2VudGVuY2UgPSAoXHJcbiAgICAgIGZpZWxkTmFtZTogTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPiB8IHN0cmluZyxcclxuICAgICAgb3B0aW9uczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnM8VEJhc2UsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4+LFxyXG4gICAgKTogUXVlcnlDb25zdHJhaW50W10gPT4ge1xyXG4gICAgICBpZiAodGhpcy5pc1N1YkNvbGxlY3Rpb24odGhpcykgJiYgZmllbGROYW1lID09PSB0aGlzLnBhcmVudElkRmllbGQpIHJldHVybiBbXVxyXG5cclxuICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb25zPy52YWx1ZSB8fCBvcHRpb25zXHJcbiAgICAgIGNvbnN0IG9iamVjdCA9IHt9XHJcblxyXG4gICAgICBzZXQob2JqZWN0LCBmaWVsZE5hbWUsIHZhbHVlKVxyXG5cclxuICAgICAgY29uc3QgcGxhaW5JbnN0YW5jZSA9IG5ldyB0aGlzLm1vZGVsKG9iamVjdCkudG9QbGFpbigpXHJcbiAgICAgIGNvbnN0IGZpcmVzdG9yZUZpZWxkTmFtZSA9XHJcbiAgICAgICAgZmllbGROYW1lLnRvU3RyaW5nKCkuaW5kZXhPZignLicpID4gLTFcclxuICAgICAgICAgID8gZmllbGROYW1lLnRvU3RyaW5nKClcclxuICAgICAgICAgIDogT2JqZWN0LmtleXMocGxhaW5JbnN0YW5jZSkuZmluZCgoa2V5KSA9PiBwbGFpbkluc3RhbmNlW2tleV0pXHJcblxyXG4gICAgICBpZiAob3B0aW9ucz8ub3BlcmF0b3IgPT09IFdoZXJlLkxJS0UpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBBcnJheS5pc0FycmF5KG9wdGlvbnM/LnZhbHVlKSAmJlxyXG4gICAgICAgICAgKHRoaXMuZmllbGRzW2ZpcmVzdG9yZUZpZWxkTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFRCYXNlPl0gPT09XHJcbiAgICAgICAgICAgIEZpcmVzdG9yZUZpZWxkVHlwZS5BcnJheSB8fFxyXG4gICAgICAgICAgICAhdGhpcy5maWVsZHNbZmlyZXN0b3JlRmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8VEJhc2U+XSlcclxuICAgICAgICApXHJcbiAgICAgICAgICByZXR1cm4gW3doZXJlKGZpcmVzdG9yZUZpZWxkTmFtZSwgJ2FycmF5LWNvbnRhaW5zLWFueScsIG9wdGlvbnMudmFsdWUpXVxyXG5cclxuICAgICAgICByZXR1cm4gW3doZXJlKGZpcmVzdG9yZUZpZWxkTmFtZSwgJz49Jywgb3B0aW9ucy52YWx1ZSksIHdoZXJlKGZpcmVzdG9yZUZpZWxkTmFtZSwgJzw9JywgYCR7b3B0aW9ucy52YWx1ZX1+YCldXHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIG9wdGlvbnM/Lm9wZXJhdG9yID09PSBXaGVyZS5JTiAmJlxyXG4gICAgICAgIEFycmF5LmlzQXJyYXkob3B0aW9ucz8udmFsdWUpICYmXHJcbiAgICAgICAgKHRoaXMuZmllbGRzW2ZpcmVzdG9yZUZpZWxkTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFRCYXNlPl0gPT09IEZpcmVzdG9yZUZpZWxkVHlwZS5BcnJheSB8fFxyXG4gICAgICAgICAgIXRoaXMuZmllbGRzW2ZpcmVzdG9yZUZpZWxkTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFRCYXNlPl0pXHJcbiAgICAgIClcclxuICAgICAgICByZXR1cm4gW3doZXJlKGZpcmVzdG9yZUZpZWxkTmFtZSwgJ2FycmF5LWNvbnRhaW5zJywgb3B0aW9ucy52YWx1ZSldXHJcbiAgICAgIGlmIChpc09iamVjdChvcHRpb25zKSAmJiBpc05pbChvcHRpb25zPy5vcGVyYXRvcikgJiYgaXNOaWwob3B0aW9ucz8udmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLnJlZHVjZShcclxuICAgICAgICAgIChxdWVyaWVzLCBrZXkpID0+IFtcclxuICAgICAgICAgICAgLi4ucXVlcmllcyxcclxuICAgICAgICAgICAgLi4udGhpcy5idWlsZFdoZXJlU2VudGVuY2UoYCR7ZmllbGROYW1lLnRvU3RyaW5nKCl9LiR7a2V5fWAsIGlzPFJlY29yZDxzdHJpbmcsIGFueT4+KG9wdGlvbnMpW2tleV0pLFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIFtdLFxyXG4gICAgICAgIClcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIFt3aGVyZShmaXJlc3RvcmVGaWVsZE5hbWUsIChvcHRpb25zPy5vcGVyYXRvciBhcyBXaGVyZUZpbHRlck9wKSB8fCAnPT0nLCBvcHRpb25zPy52YWx1ZSB8fCBvcHRpb25zKV1cclxuICAgIH1cclxuXHJcbiAgICBtYWtlRmlyZXN0b3JlT3JkZXJCeSA9IChcclxuICAgICAgZmlsdGVyczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxUQmFzZT4sXHJcbiAgICAgIGZpZWxkc1RvT3JkZXJCeT86IFJlcG9zaXRvcnlPcmRlckJ5PFRCYXNlPixcclxuICAgICk6IFF1ZXJ5Q29uc3RyYWludFtdID0+IHtcclxuICAgICAgY29uc3Qgb3JkZXJCeUtleXMgPSBPYmplY3Qua2V5cyhmaWVsZHNUb09yZGVyQnkgfHwge30pXHJcblxyXG4gICAgICBpZiAoIW9yZGVyQnlLZXlzLmxlbmd0aCkgcmV0dXJuIFtdXHJcblxyXG4gICAgICBjb25zdCBmaWx0ZXJzS2V5c1dpdGhVbm9yZGVyZWQgPSBPYmplY3Qua2V5cyhmaWx0ZXJzIHx8IHt9KS5maWx0ZXIoXHJcbiAgICAgICAgKGZpbHRlcktleSkgPT4gIW9yZGVyQnlLZXlzLmluY2x1ZGVzKGZpbHRlcktleSksXHJcbiAgICAgIClcclxuXHJcbiAgICAgIGlmIChmaWx0ZXJzS2V5c1dpdGhVbm9yZGVyZWQubGVuZ3RoKVxyXG4gICAgICAgIGZpbHRlcnNLZXlzV2l0aFVub3JkZXJlZC5mb3JFYWNoKFxyXG4gICAgICAgICAgKGZpbHRlcktleSkgPT5cclxuICAgICAgICAgICAgKGZpZWxkc1RvT3JkZXJCeSA9IHtcclxuICAgICAgICAgICAgICAuLi4oIVtXaGVyZS5FUVVBTFNdLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgICAgaXM8UmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnM8VEJhc2UsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4+PihcclxuICAgICAgICAgICAgICAgICAgZmlsdGVyc1tmaWx0ZXJLZXkgYXMgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPl0sXHJcbiAgICAgICAgICAgICAgICApLm9wZXJhdG9yLFxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgID8geyBbZmlsdGVyS2V5XTogJ2FzYycgfVxyXG4gICAgICAgICAgICAgICAgOiB7fSksXHJcbiAgICAgICAgICAgICAgLi4uZmllbGRzVG9PcmRlckJ5LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApXHJcblxyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoZmllbGRzVG9PcmRlckJ5KS5tYXAoKGZpZWxkTmFtZSkgPT5cclxuICAgICAgICBvcmRlckJ5KGZpZWxkTmFtZSwgZmllbGRzVG9PcmRlckJ5W2ZpZWxkTmFtZSBhcyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8VEJhc2U+XSksXHJcbiAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkZWZpbmVMaW1pdHMoXHJcbiAgICAgIGZpbHRlcnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8VEJhc2U+LFxyXG4gICAgICBsaW1pdHM6IFJlcG9zaXRvcnlMaW1pdE9wdGlvbnM8VEJhc2U+LFxyXG4gICAgKTogUHJvbWlzZTxRdWVyeUNvbnN0cmFpbnRbXT4ge1xyXG4gICAgICBjb25zdCBxdWVyaWVzID0gW11cclxuXHJcbiAgICAgIGlmIChsaW1pdHM/Lm9mZnNldCkge1xyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLmlzTW9kZWwobGltaXRzLm9mZnNldCkpXHJcbiAgICAgICAgICBxdWVyaWVzLnB1c2goXHJcbiAgICAgICAgICAgIHN0YXJ0QWZ0ZXIoXHJcbiAgICAgICAgICAgICAgYXdhaXQgZ2V0RG9jKFxyXG4gICAgICAgICAgICAgICAgZG9jKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbGxlY3Rpb24odGhpcy5idWlsZENvbGxlY3Rpb25QYXRoRm9yRmluZChmaWx0ZXJzKSksXHJcbiAgICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMobGltaXRzLm9mZnNldC5pZGVudGlmaWVyKS5zaGlmdCgpPy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIGVsc2UgaWYgKGlzTnVtYmVyKGxpbWl0cy5vZmZzZXQpIHx8IGlzU3RyaW5nKGxpbWl0cy5vZmZzZXQpKSBxdWVyaWVzLnB1c2goc3RhcnRBdChsaW1pdHMub2Zmc2V0KSlcclxuICAgICAgfVxyXG4gICAgICBpZiAobGltaXRzPy5saW1pdCkgcXVlcmllcy5wdXNoKGxpbWl0KGxpbWl0cy5saW1pdCkpXHJcblxyXG4gICAgICByZXR1cm4gcXVlcmllc1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZUNvdW50KGRhdGE6IFRCYXNlW10sIGxpbWl0czogUmVwb3NpdG9yeUxpbWl0T3B0aW9uczxUQmFzZT4pOiBudW1iZXIge1xyXG4gICAgICBpZiAoZGF0YS5sZW5ndGggPD0gMCkgcmV0dXJuIDBcclxuICAgICAgaWYgKGRhdGEubGVuZ3RoIDwgbGltaXRzPy5saW1pdCkgcmV0dXJuIGRhdGEubGVuZ3RoXHJcblxyXG4gICAgICByZXR1cm4gSW5maW5pdHlcclxuICAgIH1cclxuICB9IGFzIGFueVxyXG59XHJcbiJdfQ==
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { collection } from 'firebase/firestore';
|
|
2
|
-
import { each, isObject, unset } from '../../../../utils';
|
|
3
|
-
export const withFirestore = (MixinBase) => {
|
|
4
|
-
const isObjectsAndNoDate = (data) => data &&
|
|
5
|
-
!Array.isArray(data) &&
|
|
6
|
-
typeof data === 'object' &&
|
|
7
|
-
data?.constructor.name !== 'Timestamp' &&
|
|
8
|
-
!('seconds' in data);
|
|
9
|
-
const bindDate = (data, keyName) => {
|
|
10
|
-
if (data?.constructor.name === 'Timestamp')
|
|
11
|
-
return data.toDate();
|
|
12
|
-
if (data && typeof data === 'object' && 'seconds' in data)
|
|
13
|
-
return new Date(data.seconds * 1000);
|
|
14
|
-
if (typeof data === 'number' && ['createdAt', 'updatedAt'].includes(keyName))
|
|
15
|
-
return new Date(data);
|
|
16
|
-
return data;
|
|
17
|
-
};
|
|
18
|
-
const bindAllDateFromObject = (data) => {
|
|
19
|
-
return Object.keys(data).reduce((object, key) => ({
|
|
20
|
-
...object,
|
|
21
|
-
[key]: isObjectsAndNoDate(data[key])
|
|
22
|
-
? bindAllDateFromObject(data[key])
|
|
23
|
-
: Array.isArray(data[key])
|
|
24
|
-
? data[key].map((element) => (isObjectsAndNoDate(element) ? bindAllDateFromObject(element) : element))
|
|
25
|
-
: bindDate(data[key], key),
|
|
26
|
-
}), {});
|
|
27
|
-
};
|
|
28
|
-
const omitByRecursivelyInPlace = (value, iteratee) => {
|
|
29
|
-
each(value, (v, k) => {
|
|
30
|
-
if (iteratee(v, k)) {
|
|
31
|
-
unset(value, k);
|
|
32
|
-
}
|
|
33
|
-
else if (isObject(v)) {
|
|
34
|
-
omitByRecursivelyInPlace(v, iteratee);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
return value;
|
|
38
|
-
};
|
|
39
|
-
return class extends MixinBase {
|
|
40
|
-
constructor(...params) {
|
|
41
|
-
super(...params);
|
|
42
|
-
this.fields = {};
|
|
43
|
-
this.interceptors = {};
|
|
44
|
-
this.collectionName = '';
|
|
45
|
-
const options = params[0];
|
|
46
|
-
this.firestore = options.firestore;
|
|
47
|
-
this.collectionName = options.collectionName;
|
|
48
|
-
this.model = options.model;
|
|
49
|
-
this.fields = options.fields;
|
|
50
|
-
this.interceptors = options.interceptors;
|
|
51
|
-
}
|
|
52
|
-
collection(path) {
|
|
53
|
-
return collection(this.firestore, path || this.collectionName).withConverter(this.buildModelInstance());
|
|
54
|
-
}
|
|
55
|
-
buildModelInstance() {
|
|
56
|
-
return {
|
|
57
|
-
toFirestore: (data) => {
|
|
58
|
-
const plain = data?.toPlain ? data.toPlain() : data;
|
|
59
|
-
return omitByRecursivelyInPlace(plain, (value) => value === undefined);
|
|
60
|
-
},
|
|
61
|
-
fromFirestore: (snap) => {
|
|
62
|
-
const data = snap.data();
|
|
63
|
-
let bindedData = null;
|
|
64
|
-
try {
|
|
65
|
-
const ids = { id: snap.id };
|
|
66
|
-
bindedData = bindAllDateFromObject(data);
|
|
67
|
-
return this.model.toInstance({ ...bindedData, ...ids });
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
console.info('id', snap.id);
|
|
71
|
-
console.info('data', JSON.stringify(bindedData));
|
|
72
|
-
console.error(error);
|
|
73
|
-
throw error;
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maXJlc3RvcmUubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvbWl4aW5zL3dpdGgtZmlyZXN0b3JlLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVFLE1BQU0sb0JBQW9CLENBQUE7QUFPcEgsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQXFDLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBWTVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUMzQixTQUFZLEVBQytGLEVBQUU7SUFDN0csTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQVMsRUFBVyxFQUFFLENBQ2hELElBQUk7UUFDSixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDeEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLEtBQUssV0FBVztRQUN0QyxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFBO0lBQ3RCLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBUyxFQUFFLE9BQWUsRUFBdUIsRUFBRTtRQUNuRSxJQUFJLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxLQUFLLFdBQVc7WUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNoRSxJQUFJLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDL0YsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZ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T0FBTyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQTtnQkFDeEUsQ0FBQztnQkFDRCxhQUFhLEVBQUUsQ0FBQyxJQUFrQyxFQUFTLEVBQUU7b0JBQzNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtvQkFDeEIsSUFBSSxVQUFVLEdBQTJELElBQUksQ0FBQTtvQkFFN0UsSUFBSTt3QkFDRixNQUFNLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUE7d0JBRTNCLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQTt3QkFFeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsVUFBVSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQTtxQkFDeEQ7b0JBQUMsT0FBTyxLQUFLLEVBQUU7d0JBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO3dCQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7d0JBQ2hELE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7d0JBRXBCLE1BQU0sS0FBSyxDQUFBO3FCQUNaO2dCQUNILENBQUM7YUFDRixDQUFBO1FBQ0gsQ0FBQztLQUNGLENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2xsZWN0aW9uLCBDb2xsZWN0aW9uUmVmZXJlbmNlLCBEb2N1bWVudERhdGEsIEZpcmVzdG9yZSwgUXVlcnlEb2N1bWVudFNuYXBzaG90IH0gZnJvbSAnZmlyZWJhc2UvZmlyZXN0b3JlJ1xyXG5pbXBvcnQge1xyXG4gIEJhc2VNb2RlbEJ1aWxkZXIsXHJcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxyXG4gIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnRpZXNXaXRoTm9QYXJ0aWFsLFxyXG4gIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXMsXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQgeyBlYWNoLCBpc09iamVjdCwgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtcywgTWl4aW5DdG9yLCB1bnNldCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQgeyBGaXJlc3RvcmVGaWVsZFR5cGUgfSBmcm9tICcuLi9lbnVtcydcclxuaW1wb3J0IHsgRmlyZXN0b3JlSW50ZXJjZXB0b3JzLCBGaXJlc3RvcmVSZXBvc2l0b3J5IH0gZnJvbSAnLi4vdHlwZXMnXHJcblxyXG5leHBvcnQgdHlwZSBGaXJlc3RvcmVDb25zdHJ1Y3RvclBhcmFtczxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNb2RlbD4+ID0ge1xyXG4gIGZpcmVzdG9yZTogRmlyZXN0b3JlXHJcbiAgY29sbGVjdGlvbk5hbWU6IHN0cmluZ1xyXG4gIG1vZGVsOiBCYXNlTW9kZWxCdWlsZGVyPE1vZGVsPlxyXG4gIGZpZWxkcz86IFBhcnRpYWw8UmVjb3JkPE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TW9kZWw+LCBGaXJlc3RvcmVGaWVsZFR5cGU+PlxyXG4gIGludGVyY2VwdG9ycz86IEZpcmVzdG9yZUludGVyY2VwdG9yczxNb2RlbD5cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhGaXJlc3RvcmUgPSA8VEJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8VEJhc2U+LCBUIGV4dGVuZHMgTWl4aW5DdG9yID0gTWl4aW5DdG9yPihcclxuICBNaXhpbkJhc2U6IFQsXHJcbik6IE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiwgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtczxhbnlbXSwgRmlyZXN0b3JlQ29uc3RydWN0b3JQYXJhbXM8VEJhc2U+W10+PiA9PiB7XHJcbiAgY29uc3QgaXNPYmplY3RzQW5kTm9EYXRlID0gKGRhdGE6IGFueSk6IGJvb2xlYW4gPT5cclxuICAgIGRhdGEgJiZcclxuICAgICFBcnJheS5pc0FycmF5KGRhdGEpICYmXHJcbiAgICB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiZcclxuICAgIGRhdGE/LmNvbnN0cnVjdG9yLm5hbWUgIT09ICdUaW1lc3RhbXAnICYmXHJcbiAgICAhKCdzZWNvbmRzJyBpbiBkYXRhKVxyXG4gIGNvbnN0IGJpbmREYXRlID0gKGRhdGE6IGFueSwga2V5TmFtZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgYW55PiA9PiB7XHJcbiAgICBpZiAoZGF0YT8uY29uc3RydWN0b3IubmFtZSA9PT0gJ1RpbWVzdGFtcCcpIHJldHVybiBkYXRhLnRvRGF0ZSgpXHJcbiAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ3NlY29uZHMnIGluIGRhdGEpIHJldHVybiBuZXcgRGF0ZShkYXRhLnNlY29uZHMgKiAxMDAwKVxyXG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnbnVtYmVyJyAmJiBbJ2NyZWF0ZWRBdCcsICd1cGRhdGVkQXQnXS5pbmNsdWRlcyhrZXlOYW1lKSkgcmV0dXJuIG5ldyBEYXRlKGRhdGEpXHJcblxyXG4gICAgcmV0dXJuIGRhdGFcclxuICB9XHJcbiAgY29uc3QgYmluZEFsbERhdGVGcm9tT2JqZWN0ID0gKGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbDxUQmFzZT4gPT4ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEpLnJlZHVjZShcclxuICAgICAgKG9iamVjdCwga2V5KSA9PiAoe1xyXG4gICAgICAgIC4uLm9iamVjdCxcclxuICAgICAgICBba2V5XTogaXNPYmplY3RzQW5kTm9EYXRlKGRhdGFba2V5XSlcclxuICAgICAgICAgID8gYmluZEFsbERhdGVGcm9tT2JqZWN0KGRhdGFba2V5XSlcclxuICAgICAgICAgIDogQXJyYXkuaXNBcnJheShkYXRhW2tleV0pXHJcbiAgICAgICAgICA/IGRhdGFba2V5XS5tYXAoKGVsZW1lbnQ6IGFueSkgPT4gKGlzT2JqZWN0c0FuZE5vRGF0ZShlbGVtZW50KSA/IGJpbmRBbGxEYXRlRnJvbU9iamVjdChlbGVtZW50KSA6IGVsZW1lbnQpKVxyXG4gICAgICAgICAgOiBiaW5kRGF0ZShkYXRhW2tleV0sIGtleSksXHJcbiAgICAgIH0pLFxyXG4gICAgICB7fSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbDxUQmFzZT4sXHJcbiAgICApXHJcbiAgfVxyXG4gIGNvbnN0IG9taXRCeVJlY3Vyc2l2ZWx5SW5QbGFjZSA9ICh2YWx1ZTogYW55LCBpdGVyYXRlZTogKHZhbHVlOiBhbnksIGtleTogc3RyaW5nKSA9PiBib29sZWFuKTogYW55ID0+IHtcclxuICAgIGVhY2godmFsdWUsICh2LCBrKSA9PiB7XHJcbiAgICAgIGlmIChpdGVyYXRlZSh2LCBrKSkge1xyXG4gICAgICAgIHVuc2V0KHZhbHVlLCBrKVxyXG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHYpKSB7XHJcbiAgICAgICAgb21pdEJ5UmVjdXJzaXZlbHlJblBsYWNlKHYsIGl0ZXJhdGVlKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiB2YWx1ZVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgRmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4ge1xyXG4gICAgZmlyZXN0b3JlOiBGaXJlc3RvcmVcclxuICAgIGZpZWxkczogUGFydGlhbDxSZWNvcmQ8Tm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxUQmFzZT4sIEZpcmVzdG9yZUZpZWxkVHlwZT4+ID0ge31cclxuICAgIGludGVyY2VwdG9yczogRmlyZXN0b3JlSW50ZXJjZXB0b3JzPFRCYXNlPiA9IHt9XHJcbiAgICBjb2xsZWN0aW9uTmFtZTogc3RyaW5nID0gJydcclxuICAgIG1vZGVsOiBCYXNlTW9kZWxCdWlsZGVyPFRCYXNlPlxyXG5cclxuICAgIGNvbnN0cnVjdG9yKC4uLnBhcmFtczogYW55W10pIHtcclxuICAgICAgc3VwZXIoLi4ucGFyYW1zKVxyXG5cclxuICAgICAgY29uc3Qgb3B0aW9uczogRmlyZXN0b3JlQ29uc3RydWN0b3JQYXJhbXM8VEJhc2U+ID0gcGFyYW1zWzBdXHJcblxyXG4gICAgICB0aGlzLmZpcmVzdG9yZSA9IG9wdGlvbnMuZmlyZXN0b3JlXHJcbiAgICAgIHRoaXMuY29sbGVjdGlvbk5hbWUgPSBvcHRpb25zLmNvbGxlY3Rpb25OYW1lXHJcbiAgICAgIHRoaXMubW9kZWwgPSBvcHRpb25zLm1vZGVsXHJcbiAgICAgIHRoaXMuZmllbGRzID0gb3B0aW9ucy5maWVsZHNcclxuICAgICAgdGhpcy5pbnRlcmNlcHRvcnMgPSBvcHRpb25zLmludGVyY2VwdG9yc1xyXG4gICAgfVxyXG5cclxuICAgIGNvbGxlY3Rpb24ocGF0aD86IHN0cmluZyk6IENvbGxlY3Rpb25SZWZlcmVuY2U8VEJhc2U+IHtcclxuICAgICAgcmV0dXJuIGNvbGxlY3Rpb24odGhpcy5maXJlc3RvcmUsIHBhdGggfHwgdGhpcy5jb2xsZWN0aW9uTmFtZSkud2l0aENvbnZlcnRlcih0aGlzLmJ1aWxkTW9kZWxJbnN0YW5jZSgpKVxyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkTW9kZWxJbnN0YW5jZSgpOiB7XHJcbiAgICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogVEJhc2UpID0+IERvY3VtZW50RGF0YVxyXG4gICAgICBmcm9tRmlyZXN0b3JlOiAoc25hcDogUXVlcnlEb2N1bWVudFNuYXBzaG90PFRCYXNlPikgPT4gVEJhc2VcclxuICAgIH0ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogVEJhc2UpOiBEb2N1bWVudERhdGEgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcGxhaW4gPSBkYXRhPy50b1BsYWluID8gZGF0YS50b1BsYWluKCkgOiBkYXRhXHJcblxyXG4gICAgICAgICAgcmV0dXJuIG9taXRCeVJlY3Vyc2l2ZWx5SW5QbGFjZShwbGFpbiwgKHZhbHVlKSA9PiB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZnJvbUZpcmVzdG9yZTogKHNuYXA6IFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdDxUQmFzZT4pOiBUQmFzZSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkYXRhID0gc25hcC5kYXRhKClcclxuICAgICAgICAgIGxldCBiaW5kZWREYXRhOiBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbDxUQmFzZT4gPSBudWxsXHJcblxyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgaWRzID0geyBpZDogc25hcC5pZCB9XHJcblxyXG4gICAgICAgICAgICBiaW5kZWREYXRhID0gYmluZEFsbERhdGVGcm9tT2JqZWN0KGRhdGEpXHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tb2RlbC50b0luc3RhbmNlKHsgLi4uYmluZGVkRGF0YSwgLi4uaWRzIH0pXHJcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBjb25zb2xlLmluZm8oJ2lkJywgc25hcC5pZClcclxuICAgICAgICAgICAgY29uc29sZS5pbmZvKCdkYXRhJywgSlNPTi5zdHJpbmdpZnkoYmluZGVkRGF0YSkpXHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXHJcblxyXG4gICAgICAgICAgICB0aHJvdyBlcnJvclxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { doc, getDoc } from 'firebase/firestore';
|
|
2
|
-
import { NotFoundError } from '../../../../errors';
|
|
3
|
-
import { isNil } from '../../../../utils';
|
|
4
|
-
export const withGetFirestore = (MixinBase) => {
|
|
5
|
-
return class GetFirestore extends MixinBase {
|
|
6
|
-
async get(identifiers) {
|
|
7
|
-
const instance = this.model.toInstance(this.model.identifiersFields.reduce((acc, field) => ({ ...acc, [field]: identifiers[field] }), {}));
|
|
8
|
-
const intercepted = await this.interceptors?.request?.({ instance });
|
|
9
|
-
const builded = intercepted?.instance || instance;
|
|
10
|
-
const docRef = await getDoc(doc(await this.collection(this.buildCollectionPathForGet(identifiers)), Object.values(builded.identifier).shift().toString()));
|
|
11
|
-
const data = docRef.data();
|
|
12
|
-
if (isNil(data))
|
|
13
|
-
throw new NotFoundError(`Document ${JSON.stringify(identifiers)} not found`);
|
|
14
|
-
return this.interceptors?.response?.(data, intercepted) || data;
|
|
15
|
-
}
|
|
16
|
-
buildCollectionPathForGet(identifiers) {
|
|
17
|
-
return this.isSubCollection(this)
|
|
18
|
-
? `${this.parentRepository.collectionName}/${identifiers[this.parentIdField]}/${this.collectionName}`
|
|
19
|
-
: this.collectionName;
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1nZXQtZmlyZXN0b3JlLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLWdldC1maXJlc3RvcmUubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUdoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBYSxNQUFNLG1CQUFtQixDQUFBO0FBR3BELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBSTlCLFNBQWdGLEVBQ2dDLEVBQUU7SUFDbEgsT0FBTyxNQUFNLFlBQWEsU0FBUSxTQUFTO1FBQ3pDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBb0M7WUFDNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUNqQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsQ0FBQyxLQUFzQyxDQUFDLEVBQUUsQ0FBQyxFQUMxRixFQUFFLENBQ0gsQ0FDRixDQUFBO1lBQ0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUNwRSxNQUFNLE9BQU8sR0FBRyxXQUFXLEVBQUUsUUFBUSxJQUFJLFFBQVEsQ0FBQTtZQUNqRCxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FDekIsR0FBRyxDQUNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDbEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQ3JELENBQ0YsQ0FBQTtZQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUUxQixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxZQUFZLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBRTdGLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFBO1FBQ2pFLENBQUM7UUFFRCx5QkFBeUIsQ0FBQyxXQUFvQztZQUM1RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUMvQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDckcsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUE7UUFDekIsQ0FBQztLQUNLLENBQUE7QUFDVixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkb2MsIGdldERvYyB9IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcclxuXHJcbmltcG9ydCB7IEdldFJlcG9zaXRvcnksIElkZW50aWZpZXJzTW9kZWwsIE1vZGVsQmFzZVN0cnVjdHVyZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgTm90Rm91bmRFcnJvciB9IGZyb20gJy4uLy4uLy4uLy4uL2Vycm9ycydcclxuaW1wb3J0IHsgaXNOaWwsIE1peGluQ3RvciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQgeyBGaXJlc3RvcmVIZWxwZXJzLCBGaXJlc3RvcmVSZXBvc2l0b3J5IH0gZnJvbSAnLi4vdHlwZXMnXHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aEdldEZpcmVzdG9yZSA9IDxcclxuICBUQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxUQmFzZT4sXHJcbiAgVE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPj4sXHJcbj4oXHJcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4gJiBGaXJlc3RvcmVIZWxwZXJzPiAmIFRNaXhpbkJhc2UsXHJcbik6IE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIEluc3RhbmNlVHlwZTxUTWl4aW5CYXNlPiAmIEdldFJlcG9zaXRvcnk8VEJhc2U+ICYgRmlyZXN0b3JlSGVscGVycywgW10+ID0+IHtcclxuICByZXR1cm4gY2xhc3MgR2V0RmlyZXN0b3JlIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgR2V0UmVwb3NpdG9yeTxUQmFzZT4ge1xyXG4gICAgYXN5bmMgZ2V0KGlkZW50aWZpZXJzOiBJZGVudGlmaWVyc01vZGVsPFRCYXNlPik6IFByb21pc2U8VEJhc2U+IHtcclxuICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLm1vZGVsLnRvSW5zdGFuY2UoXHJcbiAgICAgICAgdGhpcy5tb2RlbC5pZGVudGlmaWVyc0ZpZWxkcy5yZWR1Y2UoXHJcbiAgICAgICAgICAoYWNjLCBmaWVsZCkgPT4gKHsgLi4uYWNjLCBbZmllbGRdOiBpZGVudGlmaWVyc1tmaWVsZCBhcyBrZXlvZiBJZGVudGlmaWVyc01vZGVsPFRCYXNlPl0gfSksXHJcbiAgICAgICAgICB7fSxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIGNvbnN0IGludGVyY2VwdGVkID0gYXdhaXQgdGhpcy5pbnRlcmNlcHRvcnM/LnJlcXVlc3Q/Lih7IGluc3RhbmNlIH0pXHJcbiAgICAgIGNvbnN0IGJ1aWxkZWQgPSBpbnRlcmNlcHRlZD8uaW5zdGFuY2UgfHwgaW5zdGFuY2VcclxuICAgICAgY29uc3QgZG9jUmVmID0gYXdhaXQgZ2V0RG9jKFxyXG4gICAgICAgIGRvYyhcclxuICAgICAgICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbih0aGlzLmJ1aWxkQ29sbGVjdGlvblBhdGhGb3JHZXQoaWRlbnRpZmllcnMpKSxcclxuICAgICAgICAgIE9iamVjdC52YWx1ZXMoYnVpbGRlZC5pZGVudGlmaWVyKS5zaGlmdCgpLnRvU3RyaW5nKCksXHJcbiAgICAgICAgKSxcclxuICAgICAgKVxyXG4gICAgICBjb25zdCBkYXRhID0gZG9jUmVmLmRhdGEoKVxyXG5cclxuICAgICAgaWYgKGlzTmlsKGRhdGEpKSB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgRG9jdW1lbnQgJHtKU09OLnN0cmluZ2lmeShpZGVudGlmaWVycyl9IG5vdCBmb3VuZGApXHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5pbnRlcmNlcHRvcnM/LnJlc3BvbnNlPy4oZGF0YSwgaW50ZXJjZXB0ZWQpIHx8IGRhdGFcclxuICAgIH1cclxuXHJcbiAgICBidWlsZENvbGxlY3Rpb25QYXRoRm9yR2V0KGlkZW50aWZpZXJzOiBJZGVudGlmaWVyc01vZGVsPFRCYXNlPik6IHN0cmluZyB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlzU3ViQ29sbGVjdGlvbih0aGlzKVxyXG4gICAgICAgID8gYCR7dGhpcy5wYXJlbnRSZXBvc2l0b3J5LmNvbGxlY3Rpb25OYW1lfS8ke2lkZW50aWZpZXJzW3RoaXMucGFyZW50SWRGaWVsZF19LyR7dGhpcy5jb2xsZWN0aW9uTmFtZX1gXHJcbiAgICAgICAgOiB0aGlzLmNvbGxlY3Rpb25OYW1lXHJcbiAgICB9XHJcbiAgfSBhcyBhbnlcclxufVxyXG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { isNil } from '../../../../utils';
|
|
2
|
-
export const withHelpers = (MixinBase) => {
|
|
3
|
-
return class extends MixinBase {
|
|
4
|
-
toArray(snapShot) {
|
|
5
|
-
if (Array.isArray(snapShot)) {
|
|
6
|
-
return snapShot.map((doc) => doc.data());
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
return snapShot.docs.map((doc) => doc.data());
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
isSubCollection(repository) {
|
|
13
|
-
return !isNil(Object.keys(this).find((key) => key === 'parentRepository'));
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1oZWxwZXJzLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLWhlbHBlcnMubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLEtBQUssRUFBYSxNQUFNLG1CQUFtQixDQUFBO0FBR3BELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUEyQyxTQUFpQyxFQUFFLEVBQUU7SUFDekcsT0FBTyxLQUFNLFNBQVEsU0FBUztRQUM1QixPQUFPLENBQWtDLFFBQXVEO1lBQzlGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBNkIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7YUFDbkU7aUJBQU07Z0JBQ0wsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQTZCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2FBQ3hFO1FBQ0gsQ0FBQztRQUVELGVBQWUsQ0FDYixVQUFpRTtZQUVqRSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUFBO1FBQzVFLENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlEb2N1bWVudFNuYXBzaG90LCBRdWVyeVNuYXBzaG90IH0gZnJvbSAnZmlyZWJhc2UvZmlyZXN0b3JlJ1xyXG5cclxuaW1wb3J0IHsgTW9kZWxCYXNlU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQgeyBpc05pbCwgTWl4aW5DdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXHJcbmltcG9ydCB7IEZpcmVzdG9yZUhlbHBlcnMsIEZpcmVzdG9yZVJlcG9zaXRvcnksIEZpcmVzdG9yZVN1YlJlcG9zaXRvcnkgfSBmcm9tICcuLi90eXBlcydcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoSGVscGVycyA9IDxUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yID0gTWl4aW5DdG9yPihNaXhpbkJhc2U6IE1peGluQ3RvciAmIFRNaXhpbkJhc2UpID0+IHtcclxuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBGaXJlc3RvcmVIZWxwZXJzIHtcclxuICAgIHRvQXJyYXk8VCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxUPj4oc25hcFNob3Q6IFF1ZXJ5U25hcHNob3Q8VD4gfCBRdWVyeURvY3VtZW50U25hcHNob3Q8VD5bXSk6IFRbXSB7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNuYXBTaG90KSkge1xyXG4gICAgICAgIHJldHVybiBzbmFwU2hvdC5tYXAoKGRvYzogUXVlcnlEb2N1bWVudFNuYXBzaG90PFQ+KSA9PiBkb2MuZGF0YSgpKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBzbmFwU2hvdC5kb2NzLm1hcCgoZG9jOiBRdWVyeURvY3VtZW50U25hcHNob3Q8VD4pID0+IGRvYy5kYXRhKCkpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpc1N1YkNvbGxlY3Rpb248VCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxUPiwgRSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxFPj4oXHJcbiAgICAgIHJlcG9zaXRvcnk6IEZpcmVzdG9yZVJlcG9zaXRvcnk8VD4gfCBGaXJlc3RvcmVTdWJSZXBvc2l0b3J5PFQsIEU+LFxyXG4gICAgKTogcmVwb3NpdG9yeSBpcyBGaXJlc3RvcmVTdWJSZXBvc2l0b3J5PFQsIEU+IHtcclxuICAgICAgcmV0dXJuICFpc05pbChPYmplY3Qua2V5cyh0aGlzKS5maW5kKChrZXkpID0+IGtleSA9PT0gJ3BhcmVudFJlcG9zaXRvcnknKSlcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export const withSubCollection = (MixinBase, ParentModel) => {
|
|
2
|
-
return class SubCollectionMix extends MixinBase {
|
|
3
|
-
constructor(...params) {
|
|
4
|
-
const options = params[0];
|
|
5
|
-
super(...params);
|
|
6
|
-
this.parentIdField = options.parentIdField;
|
|
7
|
-
}
|
|
8
|
-
collection(path) {
|
|
9
|
-
return super.collection(path);
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zdWItY29sbGVjdGlvbi5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9taXhpbnMvd2l0aC1zdWItY29sbGVjdGlvbi5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUsvQixTQUE2RCxFQUM3RCxXQUFrQyxFQVVsQyxFQUFFO0lBQ0YsT0FBTyxNQUFNLGdCQUNYLFNBQVEsU0FBUztRQU1qQixZQUFZLEdBQUcsTUFBYTtZQUMxQixNQUFNLE9BQU8sR0FBbUQsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBRXpFLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFBO1lBRWhCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQTtRQUM1QyxDQUFDO1FBRVEsVUFBVSxDQUFDLElBQWE7WUFDL0IsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQy9CLENBQUM7S0FDSyxDQUFBO0FBQ1YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvblJlZmVyZW5jZSB9IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcclxuXHJcbmltcG9ydCB7IElkZW50aWZpZXJzTW9kZWwsIE1vZGVsQmFzZVN0cnVjdHVyZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtcywgTWl4aW5DdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXHJcbmltcG9ydCB7IEZpcmVzdG9yZUhlbHBlcnMsIEZpcmVzdG9yZVJlcG9zaXRvcnksIEZpcmVzdG9yZVN1YlJlcG9zaXRvcnkgfSBmcm9tICcuLi90eXBlcydcclxuaW1wb3J0IHsgRmlyZXN0b3JlQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL3dpdGgtZmlyZXN0b3JlLm1peGluJ1xyXG5cclxuZXhwb3J0IHR5cGUgRmlyZXN0b3JlU3ViQ29sbGVjdGlvbkNvbnN0cnVjdG9yUGFyYW1zPFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPiA9IHtcclxuICBwYXJlbnRJZEZpZWxkOiBrZXlvZiBJZGVudGlmaWVyc01vZGVsPFRCYXNlPlxyXG59XHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aFN1YkNvbGxlY3Rpb24gPSA8XHJcbiAgVEJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8VEJhc2U+LFxyXG4gIFRCYXNlUGFyZW50IGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPFRCYXNlUGFyZW50PixcclxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+PixcclxuPihcclxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPj4gJiBUTWl4aW5CYXNlLFxyXG4gIFBhcmVudE1vZGVsOiBuZXcgKCkgPT4gVEJhc2VQYXJlbnQsXHJcbik6IE1peGluQ3RvcjxcclxuICBGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmXHJcbiAgICBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4gJlxyXG4gICAgRmlyZXN0b3JlU3ViUmVwb3NpdG9yeTxUQmFzZSwgSW5zdGFuY2VUeXBlPHR5cGVvZiBQYXJlbnRNb2RlbD4+ICZcclxuICAgIEZpcmVzdG9yZUhlbHBlcnMsXHJcbiAgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtczxcclxuICAgIFtGaXJlc3RvcmVDb25zdHJ1Y3RvclBhcmFtczxUQmFzZT4gJiBGaXJlc3RvcmVTdWJDb2xsZWN0aW9uQ29uc3RydWN0b3JQYXJhbXM8VEJhc2U+LCAuLi5hbnlbXV0sXHJcbiAgICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VE1peGluQmFzZT5cclxuICA+XHJcbj4gPT4ge1xyXG4gIHJldHVybiBjbGFzcyBTdWJDb2xsZWN0aW9uTWl4XHJcbiAgICBleHRlbmRzIE1peGluQmFzZVxyXG4gICAgaW1wbGVtZW50cyBGaXJlc3RvcmVTdWJSZXBvc2l0b3J5PFRCYXNlLCBJbnN0YW5jZVR5cGU8dHlwZW9mIFBhcmVudE1vZGVsPj5cclxuICB7XHJcbiAgICByZWFkb25seSBwYXJlbnRSZXBvc2l0b3J5OiBGaXJlc3RvcmVSZXBvc2l0b3J5PEluc3RhbmNlVHlwZTx0eXBlb2YgUGFyZW50TW9kZWw+PlxyXG4gICAgcGFyZW50SWRGaWVsZDoga2V5b2YgSWRlbnRpZmllcnNNb2RlbDxUQmFzZT5cclxuXHJcbiAgICBjb25zdHJ1Y3RvciguLi5wYXJhbXM6IGFueVtdKSB7XHJcbiAgICAgIGNvbnN0IG9wdGlvbnM6IEZpcmVzdG9yZVN1YkNvbGxlY3Rpb25Db25zdHJ1Y3RvclBhcmFtczxUQmFzZT4gPSBwYXJhbXNbMF1cclxuXHJcbiAgICAgIHN1cGVyKC4uLnBhcmFtcylcclxuXHJcbiAgICAgIHRoaXMucGFyZW50SWRGaWVsZCA9IG9wdGlvbnMucGFyZW50SWRGaWVsZFxyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIGNvbGxlY3Rpb24ocGF0aD86IHN0cmluZyk6IENvbGxlY3Rpb25SZWZlcmVuY2U8VEJhc2U+IHtcclxuICAgICAgcmV0dXJuIHN1cGVyLmNvbGxlY3Rpb24ocGF0aClcclxuICAgIH1cclxuICB9IGFzIGFueVxyXG59XHJcbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { arrayRemove, arrayUnion, deleteField, doc, getDoc, setDoc } from 'firebase/firestore';
|
|
2
|
-
import { UpdateOptionActions, } from '../../../../domain';
|
|
3
|
-
import { is, isNil } from '../../../../utils';
|
|
4
|
-
export const withUpdateFirestore = (MixinBase) => {
|
|
5
|
-
const getValueFromParams = (params, field) => (isNil(is(params[field])?.value)
|
|
6
|
-
? is(params[field])
|
|
7
|
-
: is(params[field]).value) || null;
|
|
8
|
-
const getValueByAction = (options) => {
|
|
9
|
-
if (isNil(options?.action))
|
|
10
|
-
return options;
|
|
11
|
-
if (options?.action === UpdateOptionActions.REMOVE_FIELD)
|
|
12
|
-
return deleteField();
|
|
13
|
-
if (options?.action === UpdateOptionActions.NULL)
|
|
14
|
-
return null;
|
|
15
|
-
if (Array.isArray(options?.value)) {
|
|
16
|
-
if (options?.action === UpdateOptionActions.MERGE)
|
|
17
|
-
return arrayUnion(...options.value);
|
|
18
|
-
if (options?.action === UpdateOptionActions.REMOVE)
|
|
19
|
-
return arrayRemove(...options.value);
|
|
20
|
-
}
|
|
21
|
-
return options?.value;
|
|
22
|
-
};
|
|
23
|
-
return class UpdateFirestore extends MixinBase {
|
|
24
|
-
async update(data) {
|
|
25
|
-
const model = new this.model();
|
|
26
|
-
const keyField = model.identifiersFields.shift();
|
|
27
|
-
const docRef = doc(this.collection(this.buildCollectionPathForUpdate(data)), getValueFromParams(data, keyField).toString());
|
|
28
|
-
const plainFromData = this.model.toInstance(this.paramsToPlain(data));
|
|
29
|
-
const intercepted = await this.interceptors?.request?.({ instance: plainFromData });
|
|
30
|
-
const builded = intercepted?.instance || plainFromData;
|
|
31
|
-
await setDoc(docRef, builded.toPlain(), { merge: true });
|
|
32
|
-
const docData = await getDoc(docRef).then((doc) => doc.data());
|
|
33
|
-
return this.interceptors?.response?.(docData, intercepted) || docData;
|
|
34
|
-
}
|
|
35
|
-
buildCollectionPathForUpdate(identifiers) {
|
|
36
|
-
return this.isSubCollection(this)
|
|
37
|
-
? `${this.parentRepository.collectionName}/${getValueFromParams(identifiers, this.parentIdField)}/${this.collectionName}`
|
|
38
|
-
: this.collectionName;
|
|
39
|
-
}
|
|
40
|
-
paramsToPlain(params) {
|
|
41
|
-
const model = this.model;
|
|
42
|
-
if (model.isModel(params))
|
|
43
|
-
return params.toPlain();
|
|
44
|
-
return Object.keys(params).reduce((data, currentKey) => ({
|
|
45
|
-
...data,
|
|
46
|
-
...((value) => (value === undefined ? {} : { [currentKey]: value }))(getValueByAction(params[currentKey])),
|
|
47
|
-
}), {});
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC11cGRhdGUtZmlyZXN0b3JlLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLXVwZGF0ZS1maXJlc3RvcmUubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBYyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFMUcsT0FBTyxFQUtMLG1CQUFtQixHQUdwQixNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUF1QixNQUFNLG1CQUFtQixDQUFBO0FBT2xFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBSWpDLFNBQWdGLEVBSWhGLEVBQUU7SUFDRixNQUFNLGtCQUFrQixHQUFHLENBQ3pCLE1BQXFDLEVBQ3JDLEtBQTRFLEVBQ2IsRUFBRSxDQUNqRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQStFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUM1RyxDQUFDLENBQUMsRUFBRSxDQUFnRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEYsQ0FBQyxDQUFDLEVBQUUsQ0FBK0UsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFBO0lBQ3BILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUE2QixFQUF3QixFQUFFO1FBQy9FLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7WUFBRSxPQUFPLE9BQU8sQ0FBQTtRQUMxQyxJQUFJLE9BQU8sRUFBRSxNQUFNLEtBQUssbUJBQW1CLENBQUMsWUFBWTtZQUFFLE9BQU8sV0FBVyxFQUFFLENBQUE7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QUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQ3ZGLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxVQUFtQixDQUFDLENBQUMsQ0FDOUM7YUFDRixDQUFDLEVBQ0YsRUFBRSxDQUNILENBQUE7UUFDSCxDQUFDO0tBQ0ssQ0FBQTtBQUNWLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFycmF5UmVtb3ZlLCBhcnJheVVuaW9uLCBkZWxldGVGaWVsZCwgZG9jLCBGaWVsZFZhbHVlLCBnZXREb2MsIHNldERvYyB9IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcclxuXHJcbmltcG9ydCB7XHJcbiAgSWRlbnRpZmllck1vZGVsLFxyXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcclxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLFxyXG4gIFJlcG9zaXRvcnlVcGRhdGVQYXJhbXMsXHJcbiAgVXBkYXRlT3B0aW9uQWN0aW9ucyxcclxuICBVcGRhdGVPcHRpb25zLFxyXG4gIFVwZGF0ZVJlcG9zaXRvcnksXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQgeyBpcywgaXNOaWwsIE1peGluQ3RvciwgUHJvcFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscydcclxuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xyXG5cclxuZXhwb3J0IHR5cGUgVXBkYXRlRmlyZXN0b3JlUmVwb3NpdG9yeVR5cGU8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2U+PiA9IFVwZGF0ZVJlcG9zaXRvcnk8TUJhc2U+ICYge1xyXG4gIHBhcmFtc1RvUGxhaW4ocGFyYW1zOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPE1CYXNlPik6IFBhcnRpYWw8TUJhc2U+XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoVXBkYXRlRmlyZXN0b3JlID0gPFxyXG4gIFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPFRCYXNlPixcclxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+PixcclxuPihcclxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIEZpcmVzdG9yZUhlbHBlcnM+ICYgVE1peGluQmFzZSxcclxuKTogTWl4aW5DdG9yPFxyXG4gIEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+ICYgVXBkYXRlUmVwb3NpdG9yeTxUQmFzZT4gJiBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4gJiBGaXJlc3RvcmVIZWxwZXJzLFxyXG4gIFtdXHJcbj4gPT4ge1xyXG4gIGNvbnN0IGdldFZhbHVlRnJvbVBhcmFtcyA9IChcclxuICAgIHBhcmFtczogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxUQmFzZT4sXHJcbiAgICBmaWVsZDogTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxUQmFzZT4gfCBJZGVudGlmaWVyTW9kZWw8VEJhc2U+LFxyXG4gICk6IFByb3BUeXBlPFRCYXNlLCBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFRCYXNlPj4gPT5cclxuICAgIChpc05pbChpczxVcGRhdGVPcHRpb25zPFByb3BUeXBlPFRCYXNlLCBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFRCYXNlPj4+PihwYXJhbXNbZmllbGRdKT8udmFsdWUpXHJcbiAgICAgID8gaXM8UHJvcFR5cGU8VEJhc2UsIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8VEJhc2U+Pj4ocGFyYW1zW2ZpZWxkXSlcclxuICAgICAgOiBpczxVcGRhdGVPcHRpb25zPFByb3BUeXBlPFRCYXNlLCBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFRCYXNlPj4+PihwYXJhbXNbZmllbGRdKS52YWx1ZSkgfHwgbnVsbFxyXG4gIGNvbnN0IGdldFZhbHVlQnlBY3Rpb24gPSAob3B0aW9uczogVXBkYXRlT3B0aW9uczxUQmFzZT4pOiBGaWVsZFZhbHVlIHwgdW5rbm93biA9PiB7XHJcbiAgICBpZiAoaXNOaWwob3B0aW9ucz8uYWN0aW9uKSkgcmV0dXJuIG9wdGlvbnNcclxuICAgIGlmIChvcHRpb25zPy5hY3Rpb24gPT09IFVwZGF0ZU9wdGlvbkFjdGlvbnMuUkVNT1ZFX0ZJRUxEKSByZXR1cm4gZGVsZXRlRmllbGQoKVxyXG4gICAgaWYgKG9wdGlvbnM/LmFjdGlvbiA9PT0gVXBkYXRlT3B0aW9uQWN0aW9ucy5OVUxMKSByZXR1cm4gbnVsbFxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucz8udmFsdWUpKSB7XHJcbiAgICAgIGlmIChvcHRpb25zPy5hY3Rpb24gPT09IFVwZGF0ZU9wdGlvbkFjdGlvbnMuTUVSR0UpIHJldHVybiBhcnJheVVuaW9uKC4uLm9wdGlvbnMudmFsdWUpXHJcbiAgICAgIGlmIChvcHRpb25zPy5hY3Rpb24gPT09IFVwZGF0ZU9wdGlvbkFjdGlvbnMuUkVNT1ZFKSByZXR1cm4gYXJyYXlSZW1vdmUoLi4ub3B0aW9ucy52YWx1ZSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucz8udmFsdWVcclxuICB9XHJcblxyXG4gIHJldHVybiBjbGFzcyBVcGRhdGVGaXJlc3RvcmUgZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBVcGRhdGVSZXBvc2l0b3J5PFRCYXNlPiB7XHJcbiAgICBhc3luYyB1cGRhdGUoZGF0YTogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxUQmFzZT4pOiBQcm9taXNlPFRCYXNlPiB7XHJcbiAgICAgIGNvbnN0IG1vZGVsID0gbmV3IHRoaXMubW9kZWwoKVxyXG4gICAgICBjb25zdCBrZXlGaWVsZCA9IG1vZGVsLmlkZW50aWZpZXJzRmllbGRzLnNoaWZ0KClcclxuICAgICAgY29uc3QgZG9jUmVmID0gZG9jKFxyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbih0aGlzLmJ1aWxkQ29sbGVjdGlvblBhdGhGb3JVcGRhdGUoZGF0YSkpLFxyXG4gICAgICAgIGdldFZhbHVlRnJvbVBhcmFtcyhkYXRhLCBrZXlGaWVsZCBhcyBJZGVudGlmaWVyTW9kZWw8VEJhc2U+KS50b1N0cmluZygpLFxyXG4gICAgICApXHJcbiAgICAgIGNvbnN0IHBsYWluRnJvbURhdGEgPSB0aGlzLm1vZGVsLnRvSW5zdGFuY2UodGhpcy5wYXJhbXNUb1BsYWluKGRhdGEpKVxyXG4gICAgICBjb25zdCBpbnRlcmNlcHRlZCA9IGF3YWl0IHRoaXMuaW50ZXJjZXB0b3JzPy5yZXF1ZXN0Py4oeyBpbnN0YW5jZTogcGxhaW5Gcm9tRGF0YSB9KVxyXG4gICAgICBjb25zdCBidWlsZGVkID0gaW50ZXJjZXB0ZWQ/Lmluc3RhbmNlIHx8IHBsYWluRnJvbURhdGFcclxuXHJcbiAgICAgIGF3YWl0IHNldERvYyhkb2NSZWYsIGJ1aWxkZWQudG9QbGFpbigpLCB7IG1lcmdlOiB0cnVlIH0pXHJcblxyXG4gICAgICBjb25zdCBkb2NEYXRhID0gYXdhaXQgZ2V0RG9jKGRvY1JlZikudGhlbigoZG9jKSA9PiBkb2MuZGF0YSgpKVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJjZXB0b3JzPy5yZXNwb25zZT8uKGRvY0RhdGEsIGludGVyY2VwdGVkKSB8fCBkb2NEYXRhXHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRDb2xsZWN0aW9uUGF0aEZvclVwZGF0ZShpZGVudGlmaWVyczogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxUQmFzZT4pOiBzdHJpbmcge1xyXG4gICAgICByZXR1cm4gdGhpcy5pc1N1YkNvbGxlY3Rpb24odGhpcylcclxuICAgICAgICA/IGAke3RoaXMucGFyZW50UmVwb3NpdG9yeS5jb2xsZWN0aW9uTmFtZX0vJHtnZXRWYWx1ZUZyb21QYXJhbXMoaWRlbnRpZmllcnMsIHRoaXMucGFyZW50SWRGaWVsZCl9LyR7XHJcbiAgICAgICAgICAgIHRoaXMuY29sbGVjdGlvbk5hbWVcclxuICAgICAgICAgIH1gXHJcbiAgICAgICAgOiB0aGlzLmNvbGxlY3Rpb25OYW1lXHJcbiAgICB9XHJcblxyXG4gICAgcGFyYW1zVG9QbGFpbihwYXJhbXM6IFJlcG9zaXRvcnlVcGRhdGVQYXJhbXM8VEJhc2U+KTogUGFydGlhbDxUQmFzZT4ge1xyXG4gICAgICBjb25zdCBtb2RlbCA9IHRoaXMubW9kZWxcclxuXHJcbiAgICAgIGlmIChtb2RlbC5pc01vZGVsKHBhcmFtcykpIHJldHVybiBwYXJhbXMudG9QbGFpbigpXHJcblxyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMocGFyYW1zKS5yZWR1Y2UoXHJcbiAgICAgICAgKGRhdGEsIGN1cnJlbnRLZXkpID0+ICh7XHJcbiAgICAgICAgICAuLi5kYXRhLFxyXG4gICAgICAgICAgLi4uKCh2YWx1ZSk6IFJlY29yZDxzdHJpbmcsIGFueT4gPT4gKHZhbHVlID09PSB1bmRlZmluZWQgPyB7fSA6IHsgW2N1cnJlbnRLZXldOiB2YWx1ZSB9KSkoXHJcbiAgICAgICAgICAgIGdldFZhbHVlQnlBY3Rpb24ocGFyYW1zW2N1cnJlbnRLZXkgYXMgbmV2ZXJdKSxcclxuICAgICAgICAgICksXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAge30sXHJcbiAgICAgIClcclxuICAgIH1cclxuICB9IGFzIGFueVxyXG59XHJcbiJdfQ==
|
package/esm2020/infra/firebase/firestore/repositories/catalog/category-firestore.repository.mjs
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { getDocs, limit, query, where } from 'firebase/firestore';
|
|
2
|
-
import { Category } from '../../../../../domain';
|
|
3
|
-
import { Base, chunk, is } from '../../../../../utils';
|
|
4
|
-
import { DuplicatedResultsError, NotFoundError, RequiredArgumentError } from '../../../../../errors';
|
|
5
|
-
import { withCrudFirestore, withFirestore, withHelpers } from '../../mixins';
|
|
6
|
-
export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
7
|
-
constructor({ firestore, interceptors }) {
|
|
8
|
-
super({
|
|
9
|
-
firestore,
|
|
10
|
-
collectionName: 'categories',
|
|
11
|
-
model: Category,
|
|
12
|
-
interceptors,
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
async getCategoryBySlug(slug, shop) {
|
|
16
|
-
const categoryDocs = await getDocs(query(this.collection(this.collectionName), where('slug', '==', slug), where('shop', '==', shop), where('published', '==', true)));
|
|
17
|
-
if (categoryDocs.size > 1)
|
|
18
|
-
throw new DuplicatedResultsError('Query returned duplicated values');
|
|
19
|
-
if (categoryDocs.empty)
|
|
20
|
-
throw new NotFoundError(`Document with slug ${slug} not found`);
|
|
21
|
-
return categoryDocs.docs[0].data();
|
|
22
|
-
}
|
|
23
|
-
async getCategoriesForHome(categoryIds, limit = 4, gender) {
|
|
24
|
-
const categorySnap = await getDocs(query(this.collection(this.collectionName), where('id', 'in', categoryIds.filter(Boolean)), where('published', '==', true)));
|
|
25
|
-
if (categorySnap.empty)
|
|
26
|
-
throw new NotFoundError('Categories not found');
|
|
27
|
-
const categories = categorySnap.docs.map((doc) => doc.data());
|
|
28
|
-
const homeSections = await Promise.all(categories.map(async (category) => ({
|
|
29
|
-
category,
|
|
30
|
-
products: await this.mountCategory(category, { limit, hasStock: true, gender }),
|
|
31
|
-
})));
|
|
32
|
-
return homeSections;
|
|
33
|
-
}
|
|
34
|
-
async mountCategory(category, options) {
|
|
35
|
-
if (!category.products)
|
|
36
|
-
throw new RequiredArgumentError(['Category products is empty']);
|
|
37
|
-
const chunks = chunk(category.products, 10);
|
|
38
|
-
const products = [];
|
|
39
|
-
const wheres = [];
|
|
40
|
-
for (const productIds of chunks) {
|
|
41
|
-
if (options?.limit && products.length >= options?.limit)
|
|
42
|
-
break;
|
|
43
|
-
wheres.push(where('published', '==', true), where('id', 'in', productIds));
|
|
44
|
-
if (options?.hasStock)
|
|
45
|
-
wheres.push(where('stock.quantity', '>', 0));
|
|
46
|
-
if (options?.gender)
|
|
47
|
-
wheres.push(where('tags', 'array-contains', options?.gender));
|
|
48
|
-
if (options?.limit)
|
|
49
|
-
wheres.push(limit(options?.limit));
|
|
50
|
-
const productSnap = await getDocs(query(this.collection('productsErpVitrine'), ...wheres));
|
|
51
|
-
if (productSnap.empty)
|
|
52
|
-
continue;
|
|
53
|
-
products.push(...productSnap.docs);
|
|
54
|
-
}
|
|
55
|
-
return is(products);
|
|
56
|
-
}
|
|
57
|
-
getCategoryByShop(shop) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
getChildren(parentId) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
isChild(id, parentId) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvcmVwb3NpdG9yaWVzL2NhdGFsb2cvY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFtQixLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUVsRixPQUFPLEVBQUUsUUFBUSxFQUFzQyxNQUFNLHVCQUF1QixDQUFBO0FBQ3BGLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXRELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNwRyxPQUFPLEVBQThCLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFeEcsTUFBTSxPQUFPLDJCQUNYLFNBQVEsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBR3JFLFlBQVksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUE0RTtRQUMvRyxLQUFLLENBQUM7WUFDSixTQUFTO1lBQ1QsY0FBYyxFQUFFLFlBQVk7WUFDNUIsS0FBSyxFQUFFLFFBQVE7WUFDZixZQUFZO1NBQ2IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsSUFBVztRQUMvQyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FDaEMsS0FBSyxDQUNILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUNwQyxLQUFL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Q0FBQyxDQUFBO1lBQ2xGLElBQUksT0FBTyxFQUFFLEtBQUs7Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFFdEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUE7WUFFMUYsSUFBSSxXQUFXLENBQUMsS0FBSztnQkFBRSxTQUFRO1lBRS9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDbkM7UUFFRCxPQUFPLEVBQUUsQ0FBWSxRQUFRLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBWTtRQUM1QixPQUFNO0lBQ1IsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQjtRQUMxQixPQUFNO0lBQ1IsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFVLEVBQUUsUUFBZ0I7UUFDbEMsT0FBTTtJQUNSLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldERvY3MsIGxpbWl0LCBxdWVyeSwgUXVlcnlDb25zdHJhaW50LCB3aGVyZSB9IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcclxuXHJcbmltcG9ydCB7IENhdGVnb3J5LCBDYXRlZ29yeVJlcG9zaXRvcnksIFByb2R1Y3QsIFNob3BzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQgeyBCYXNlLCBjaHVuaywgaXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcclxuXHJcbmltcG9ydCB7IER1cGxpY2F0ZWRSZXN1bHRzRXJyb3IsIE5vdEZvdW5kRXJyb3IsIFJlcXVpcmVkQXJndW1lbnRFcnJvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Vycm9ycydcclxuaW1wb3J0IHsgRmlyZXN0b3JlQ29uc3RydWN0b3JQYXJhbXMsIHdpdGhDcnVkRmlyZXN0b3JlLCB3aXRoRmlyZXN0b3JlLCB3aXRoSGVscGVycyB9IGZyb20gJy4uLy4uL21peGlucydcclxuXHJcbmV4cG9ydCBjbGFzcyBDYXRlZ29yeUZpcmVzdG9yZVJlcG9zaXRvcnlcclxuICBleHRlbmRzIHdpdGhDcnVkRmlyZXN0b3JlKHdpdGhIZWxwZXJzKHdpdGhGaXJlc3RvcmU8Q2F0ZWdvcnk+KEJhc2UpKSlcclxuICBpbXBsZW1lbnRzIENhdGVnb3J5UmVwb3NpdG9yeVxyXG57XHJcbiAgY29uc3RydWN0b3IoeyBmaXJlc3RvcmUsIGludGVyY2VwdG9ycyB9OiBQaWNrPEZpcmVzdG9yZUNvbnN0cnVjdG9yUGFyYW1zPENhdGVnb3J5PiwgJ2ZpcmVzdG9yZScgfCAnaW50ZXJjZXB0b3JzJz4pIHtcclxuICAgIHN1cGVyKHtcclxuICAgICAgZmlyZXN0b3JlLFxyXG4gICAgICBjb2xsZWN0aW9uTmFtZTogJ2NhdGVnb3JpZXMnLFxyXG4gICAgICBtb2RlbDogQ2F0ZWdvcnksXHJcbiAgICAgIGludGVyY2VwdG9ycyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRDYXRlZ29yeUJ5U2x1ZyhzbHVnOiBzdHJpbmcsIHNob3A6IFNob3BzKTogUHJvbWlzZTxDYXRlZ29yeT4ge1xyXG4gICAgY29uc3QgY2F0ZWdvcnlEb2NzID0gYXdhaXQgZ2V0RG9jcyhcclxuICAgICAgcXVlcnkoXHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uKHRoaXMuY29sbGVjdGlvbk5hbWUpLFxyXG4gICAgICAgIHdoZXJlKCdzbHVnJywgJz09Jywgc2x1ZyksXHJcbiAgICAgICAgd2hlcmUoJ3Nob3AnLCAnPT0nLCBzaG9wKSxcclxuICAgICAgICB3aGVyZSgncHVibGlzaGVkJywgJz09JywgdHJ1ZSksXHJcbiAgICAgICksXHJcbiAgICApXHJcblxyXG4gICAgaWYgKGNhdGVnb3J5RG9jcy5zaXplID4gMSkgdGhyb3cgbmV3IER1cGxpY2F0ZWRSZXN1bHRzRXJyb3IoJ1F1ZXJ5IHJldHVybmVkIGR1cGxpY2F0ZWQgdmFsdWVzJylcclxuICAgIGlmIChjYXRlZ29yeURvY3MuZW1wdHkpIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBEb2N1bWVudCB3aXRoIHNsdWcgJHtzbHVnfSBub3QgZm91bmRgKVxyXG5cclxuICAgIHJldHVybiBjYXRlZ29yeURvY3MuZG9jc1swXS5kYXRhKClcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldENhdGVnb3JpZXNGb3JIb21lKFxyXG4gICAgY2F0ZWdvcnlJZHM6IHN0cmluZ1tdLFxyXG4gICAgbGltaXQgPSA0LFxyXG4gICAgZ2VuZGVyPzogc3RyaW5nLFxyXG4gICk6IFByb21pc2U8eyBjYXRlZ29yeTogQ2F0ZWdvcnk7IHByb2R1Y3RzOiBQcm9kdWN0W10gfVtdPiB7XHJcbiAgICBjb25zdCBjYXRlZ29yeVNuYXAgPSBhd2FpdCBnZXREb2NzKFxyXG4gICAgICBxdWVyeShcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb24odGhpcy5jb2xsZWN0aW9uTmFtZSksXHJcbiAgICAgICAgd2hlcmUoJ2lkJywgJ2luJywgY2F0ZWdvcnlJZHMuZmlsdGVyKEJvb2xlYW4pKSxcclxuICAgICAgICB3aGVyZSgncHVibGlzaGVkJywgJz09JywgdHJ1ZSksXHJcbiAgICAgICksXHJcbiAgICApXHJcblxyXG4gICAgaWYgKGNhdGVnb3J5U25hcC5lbXB0eSkgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoJ0NhdGVnb3JpZXMgbm90IGZvdW5kJylcclxuXHJcbiAgICBjb25zdCBjYXRlZ29yaWVzID0gY2F0ZWdvcnlTbmFwLmRvY3MubWFwKChkb2MpID0+IGRvYy5kYXRhKCkpXHJcbiAgICBjb25zdCBob21lU2VjdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgY2F0ZWdvcmllcy5tYXAoYXN5bmMgKGNhdGVnb3J5KSA9PiAoe1xyXG4gICAgICAgIGNhdGVnb3J5LFxyXG4gICAgICAgIHByb2R1Y3RzOiBhd2FpdCB0aGlzLm1vdW50Q2F0ZWdvcnkoY2F0ZWdvcnksIHsgbGltaXQsIGhhc1N0b2NrOiB0cnVlLCBnZW5kZXIgfSksXHJcbiAgICAgIH0pKSxcclxuICAgIClcclxuXHJcbiAgICByZXR1cm4gaG9tZVNlY3Rpb25zXHJcbiAgfVxyXG5cclxuICBhc3luYyBtb3VudENhdGVnb3J5KFxyXG4gICAgY2F0ZWdvcnk6IENhdGVnb3J5LFxyXG4gICAgb3B0aW9ucz86IHsgbGltaXQ/OiBudW1iZXI7IGhhc1N0b2NrPzogYm9vbGVhbjsgZ2VuZGVyPzogc3RyaW5nIH0sXHJcbiAgKTogUHJvbWlzZTxQcm9kdWN0W10+IHtcclxuICAgIGlmICghY2F0ZWdvcnkucHJvZHVjdHMpIHRocm93IG5ldyBSZXF1aXJlZEFyZ3VtZW50RXJyb3IoWydDYXRlZ29yeSBwcm9kdWN0cyBpcyBlbXB0eSddKVxyXG5cclxuICAgIGNvbnN0IGNodW5rcyA9IGNodW5rKGNhdGVnb3J5LnByb2R1Y3RzLCAxMClcclxuICAgIGNvbnN0IHByb2R1Y3RzID0gW11cclxuICAgIGNvbnN0IHdoZXJlczogUXVlcnlDb25zdHJhaW50W10gPSBbXVxyXG5cclxuICAgIGZvciAoY29uc3QgcHJvZHVjdElkcyBvZiBjaHVua3MpIHtcclxuICAgICAgaWYgKG9wdGlvbnM/LmxpbWl0ICYmIHByb2R1Y3RzLmxlbmd0aCA+PSBvcHRpb25zPy5saW1pdCkgYnJlYWtcclxuXHJcbiAgICAgIHdoZXJlcy5wdXNoKHdoZXJlKCdwdWJsaXNoZWQnLCAnPT0nLCB0cnVlKSwgd2hlcmUoJ2lkJywgJ2luJywgcHJvZHVjdElkcykpXHJcblxyXG4gICAgICBpZiAob3B0aW9ucz8uaGFzU3RvY2spIHdoZXJlcy5wdXNoKHdoZXJlKCdzdG9jay5xdWFudGl0eScsICc+JywgMCkpXHJcbiAgICAgIGlmIChvcHRpb25zPy5nZW5kZXIpIHdoZXJlcy5wdXNoKHdoZXJlKCd0YWdzJywgJ2FycmF5LWNvbnRhaW5zJywgb3B0aW9ucz8uZ2VuZGVyKSlcclxuICAgICAgaWYgKG9wdGlvbnM/LmxpbWl0KSB3aGVyZXMucHVzaChsaW1pdChvcHRpb25zPy5saW1pdCkpXHJcblxyXG4gICAgICBjb25zdCBwcm9kdWN0U25hcCA9IGF3YWl0IGdldERvY3MocXVlcnkodGhpcy5jb2xsZWN0aW9uKCdwcm9kdWN0c0VycFZpdHJpbmUnKSwgLi4ud2hlcmVzKSlcclxuXHJcbiAgICAgIGlmIChwcm9kdWN0U25hcC5lbXB0eSkgY29udGludWVcclxuXHJcbiAgICAgIHByb2R1Y3RzLnB1c2goLi4ucHJvZHVjdFNuYXAuZG9jcylcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXM8UHJvZHVjdFtdPihwcm9kdWN0cylcclxuICB9XHJcblxyXG4gIGdldENhdGVnb3J5QnlTaG9wKHNob3A6IHN0cmluZyk6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xyXG4gICAgcmV0dXJuXHJcbiAgfVxyXG5cclxuICBnZXRDaGlsZHJlbihwYXJlbnRJZDogbnVtYmVyKTogUHJvbWlzZTxDYXRlZ29yeVtdPiB7XHJcbiAgICByZXR1cm5cclxuICB9XHJcblxyXG4gIGlzQ2hpbGQoaWQ6IG51bWJlciwgcGFyZW50SWQ6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './category-firestore.repository';
|
|
2
|
-
export * from './product-firestore.repository';
|
|
3
|
-
export * from './product-variant-firestore.repository';
|
|
4
|
-
export * from './subscription-product-firestore.repository';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvcmVwb3NpdG9yaWVzL2NhdGFsb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyw2Q0FBNkMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnknXHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1maXJlc3RvcmUucmVwb3NpdG9yeSdcclxuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LXZhcmlhbnQtZmlyZXN0b3JlLnJlcG9zaXRvcnknXHJcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9uLXByb2R1Y3QtZmlyZXN0b3JlLnJlcG9zaXRvcnknXHJcbiJdfQ==
|
package/esm2020/infra/firebase/firestore/repositories/catalog/product-firestore.repository.mjs
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Product, Where, } from '../../../../../domain';
|
|
2
|
-
import { Base } from '../../../../../utils';
|
|
3
|
-
import { withCrudFirestore, withFirestore, withHelpers } from '../../mixins';
|
|
4
|
-
export class ProductFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
5
|
-
constructor({ firestore, interceptors }) {
|
|
6
|
-
super({
|
|
7
|
-
firestore,
|
|
8
|
-
collectionName: 'productsErpVitrine',
|
|
9
|
-
model: Product,
|
|
10
|
-
interceptors,
|
|
11
|
-
});
|
|
12
|
-
this.reviews = {};
|
|
13
|
-
}
|
|
14
|
-
async getBySlug(slug) {
|
|
15
|
-
const result = await this.find({
|
|
16
|
-
filters: {
|
|
17
|
-
slug: { operator: Where.EQUALS, value: slug },
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
return result?.data?.shift();
|
|
21
|
-
}
|
|
22
|
-
async fetchReviews(status) {
|
|
23
|
-
const { data: products } = await this.find();
|
|
24
|
-
products.forEach((product) => {
|
|
25
|
-
if ([undefined, 0].includes(product.reviews?.length))
|
|
26
|
-
return;
|
|
27
|
-
const productInfo = {
|
|
28
|
-
productId: product.id,
|
|
29
|
-
productName: product.name,
|
|
30
|
-
productSku: product.sku,
|
|
31
|
-
};
|
|
32
|
-
this.reviews.pending = [];
|
|
33
|
-
this.reviews.approved = [];
|
|
34
|
-
this.reviews.rejected = [];
|
|
35
|
-
product.reviews.forEach((review) => {
|
|
36
|
-
if ([null, undefined].includes(review.status))
|
|
37
|
-
return this.reviews.pending.push({ ...review, ...productInfo });
|
|
38
|
-
if (review.status === false)
|
|
39
|
-
return this.reviews.rejected.push({ ...review, ...productInfo });
|
|
40
|
-
if (!!review.status)
|
|
41
|
-
return this.reviews.approved.push({ ...review, ...productInfo });
|
|
42
|
-
return review;
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
return this.reviews[status];
|
|
46
|
-
}
|
|
47
|
-
cleanShoppingCountFromIds() {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
findCatalog(params) {
|
|
51
|
-
return this.find(params);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1maXJlc3RvcmUucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9yZXBvc2l0b3JpZXMvY2F0YWxvZy9wcm9kdWN0LWZpcmVzdG9yZS5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxPQUFPLEVBS1AsS0FBSyxHQUNOLE1BQU0sdUJBQXVCLENBQUE7QUFDOUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRTNDLE9BQU8sRUFBOEIsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV4RyxNQUFNLE9BQU8sMEJBQ1gsU0FBUSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFVLElBQUksQ0FBQyxDQUFDLENBQUM7SUFLcEUsWUFBWSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQTJFO1FBQzlHLEtBQUssQ0FBQztZQUNKLFNBQVM7WUFDVCxjQUFjLEVBQUUsb0JBQW9CO1lBQ3BDLEtBQUssRUFBRSxPQUFPO1lBQ2QsWUFBWTtTQUNiLENBQUMsQ0FBQTtRQVJJLFlBQU8sR0FBaUUsRUFBRSxDQUFBO0lBU2xGLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQVk7UUFDMUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdCLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO2FBQzlDO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsT0FBTyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFBO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQTBCO1FBQzNDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7UUFFNUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO2dCQUFFLE9BQU07WUFFNUQsTUFBTSxXQUFXLEdBQUc7Z0JBQ2xCLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDckIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO2dCQUN6QixVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUc7YUFDeEIsQ0FBQTtZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQTtZQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO1lBRTFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7b0JBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLENBQUE7Z0JBQzlHLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxLQUFLO29CQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQyxDQUFBO2dCQUM3RixJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTTtvQkFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUMsQ0FBQTtnQkFFckYsT0FBTyxNQUFNLENBQUE7WUFDZixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO1FBRUYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTTtJQUNSLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBcUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzFCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRmluZFJlcG9zaXRvcnlQYXJhbXMsXHJcbiAgUHJvZHVjdCxcclxuICBQcm9kdWN0UmVwb3NpdG9yeSxcclxuICBSZXBvc2l0b3J5RmluZFJlc3VsdCxcclxuICBSZXZpZXdTdGF0dXNQYXJhbXMsXHJcbiAgUmV2aWV3V2l0aFByb2R1Y3REYXRhLFxyXG4gIFdoZXJlLFxyXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzJ1xyXG5cclxuaW1wb3J0IHsgRmlyZXN0b3JlQ29uc3RydWN0b3JQYXJhbXMsIHdpdGhDcnVkRmlyZXN0b3JlLCB3aXRoRmlyZXN0b3JlLCB3aXRoSGVscGVycyB9IGZyb20gJy4uLy4uL21peGlucydcclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeVxyXG4gIGV4dGVuZHMgd2l0aENydWRGaXJlc3RvcmUod2l0aEhlbHBlcnMod2l0aEZpcmVzdG9yZTxQcm9kdWN0PihCYXNlKSkpXHJcbiAgaW1wbGVtZW50cyBQcm9kdWN0UmVwb3NpdG9yeVxyXG57XHJcbiAgcHJpdmF0ZSByZXZpZXdzOiBQYXJ0aWFsPFJlY29yZDxSZXZpZXdTdGF0dXNQYXJhbXMsIFJldmlld1dpdGhQcm9kdWN0RGF0YVtdPj4gPSB7fVxyXG5cclxuICBjb25zdHJ1Y3Rvcih7IGZpcmVzdG9yZSwgaW50ZXJjZXB0b3JzIH06IFBpY2s8RmlyZXN0b3JlQ29uc3RydWN0b3JQYXJhbXM8UHJvZHVjdD4sICdmaXJlc3RvcmUnIHwgJ2ludGVyY2VwdG9ycyc+KSB7XHJcbiAgICBzdXBlcih7XHJcbiAgICAgIGZpcmVzdG9yZSxcclxuICAgICAgY29sbGVjdGlvbk5hbWU6ICdwcm9kdWN0c0VycFZpdHJpbmUnLFxyXG4gICAgICBtb2RlbDogUHJvZHVjdCxcclxuICAgICAgaW50ZXJjZXB0b3JzLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldEJ5U2x1ZyhzbHVnOiBzdHJpbmcpOiBQcm9taXNlPFByb2R1Y3Q+IHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZmluZCh7XHJcbiAgICAgIGZpbHRlcnM6IHtcclxuICAgICAgICBzbHVnOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiBzbHVnIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ/LmRhdGE/LnNoaWZ0KClcclxuICB9XHJcblxyXG4gIGFzeW5jIGZldGNoUmV2aWV3cyhzdGF0dXM6IFJldmlld1N0YXR1c1BhcmFtcyk6IFByb21pc2U8UmV2aWV3V2l0aFByb2R1Y3REYXRhW10+IHtcclxuICAgIGNvbnN0IHsgZGF0YTogcHJvZHVjdHMgfSA9IGF3YWl0IHRoaXMuZmluZCgpXHJcblxyXG4gICAgcHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdCkgPT4ge1xyXG4gICAgICBpZiAoW3VuZGVmaW5lZCwgMF0uaW5jbHVkZXMocHJvZHVjdC5yZXZpZXdzPy5sZW5ndGgpKSByZXR1cm5cclxuXHJcbiAgICAgIGNvbnN0IHByb2R1Y3RJbmZvID0ge1xyXG4gICAgICAgIHByb2R1Y3RJZDogcHJvZHVjdC5pZCxcclxuICAgICAgICBwcm9kdWN0TmFtZTogcHJvZHVjdC5uYW1lLFxyXG4gICAgICAgIHByb2R1Y3RTa3U6IHByb2R1Y3Quc2t1LFxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnJldmlld3MucGVuZGluZyA9IFtdXHJcbiAgICAgIHRoaXMucmV2aWV3cy5hcHByb3ZlZCA9IFtdXHJcbiAgICAgIHRoaXMucmV2aWV3cy5yZWplY3RlZCA9IFtdXHJcblxyXG4gICAgICBwcm9kdWN0LnJldmlld3MuZm9yRWFjaCgocmV2aWV3KSA9PiB7XHJcbiAgICAgICAgaWYgKFtudWxsLCB1bmRlZmluZWRdLmluY2x1ZGVzKHJldmlldy5zdGF0dXMpKSByZXR1cm4gdGhpcy5yZXZpZXdzLnBlbmRpbmcucHVzaCh7IC4uLnJldmlldywgLi4ucHJvZHVjdEluZm8gfSlcclxuICAgICAgICBpZiAocmV2aWV3LnN0YXR1cyA9PT0gZmFsc2UpIHJldHVybiB0aGlzLnJldmlld3MucmVqZWN0ZWQucHVzaCh7IC4uLnJldmlldywgLi4ucHJvZHVjdEluZm8gfSlcclxuICAgICAgICBpZiAoISFyZXZpZXcuc3RhdHVzKSByZXR1cm4gdGhpcy5yZXZpZXdzLmFwcHJvdmVkLnB1c2goeyAuLi5yZXZpZXcsIC4uLnByb2R1Y3RJbmZvIH0pXHJcblxyXG4gICAgICAgIHJldHVybiByZXZpZXdcclxuICAgICAgfSlcclxuICAgIH0pXHJcblxyXG4gICAgcmV0dXJuIHRoaXMucmV2aWV3c1tzdGF0dXNdXHJcbiAgfVxyXG5cclxuICBjbGVhblNob3BwaW5nQ291bnRGcm9tSWRzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuXHJcbiAgfVxyXG5cclxuICBmaW5kQ2F0YWxvZyhwYXJhbXM6IEZpbmRSZXBvc2l0b3J5UGFyYW1zPFByb2R1Y3Q+KTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZFJlc3VsdDxQcm9kdWN0Pj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZmluZChwYXJhbXMpXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Product, Variant } from '../../../../../domain';
|
|
2
|
-
import { Base } from '../../../../../utils';
|
|
3
|
-
import { withCrudFirestore, withFirestore, withHelpers, withSubCollection, } from '../../mixins';
|
|
4
|
-
export class ProductVariantFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base))), Product) {
|
|
5
|
-
constructor({ firestore, interceptors }, parentRepository) {
|
|
6
|
-
super({
|
|
7
|
-
firestore,
|
|
8
|
-
collectionName: 'variants',
|
|
9
|
-
parentIdField: 'productId',
|
|
10
|
-
model: Variant,
|
|
11
|
-
interceptors,
|
|
12
|
-
});
|
|
13
|
-
this.parentRepository = parentRepository;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12YXJpYW50LWZpcmVzdG9yZS5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL3JlcG9zaXRvcmllcy9jYXRhbG9nL3Byb2R1Y3QtdmFyaWFudC1maXJlc3RvcmUucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBcUIsTUFBTSx1QkFBdUIsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDM0MsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsV0FBVyxFQUNYLGlCQUFpQixHQUNsQixNQUFNLGNBQWMsQ0FBQTtBQUlyQixNQUFNLE9BQU8saUNBQ1gsU0FBUSxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7SUFHaEcsWUFDRSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQTJFLEVBQ2xGLGdCQUE0QztRQUU5RCxLQUFLLENBQUM7WUFDSixTQUFTO1lBQ1QsY0FBYyxFQUFFLFVBQVU7WUFDMUIsYUFBYSxFQUFFLFdBQVc7WUFDMUIsS0FBSyxFQUFFLE9BQU87WUFDZCxZQUFZO1NBQ2IsQ0FBQyxDQUFBO1FBUmdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNEI7SUFTaEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvZHVjdCwgVmFyaWFudCwgVmFyaWFudFJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nXHJcbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcclxuaW1wb3J0IHtcclxuICBGaXJlc3RvcmVDb25zdHJ1Y3RvclBhcmFtcyxcclxuICB3aXRoQ3J1ZEZpcmVzdG9yZSxcclxuICB3aXRoRmlyZXN0b3JlLFxyXG4gIHdpdGhIZWxwZXJzLFxyXG4gIHdpdGhTdWJDb2xsZWN0aW9uLFxyXG59IGZyb20gJy4uLy4uL21peGlucydcclxuXHJcbmltcG9ydCB7IFByb2R1Y3RGaXJlc3RvcmVSZXBvc2l0b3J5IH0gZnJvbSAnLi9wcm9kdWN0LWZpcmVzdG9yZS5yZXBvc2l0b3J5J1xyXG5cclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RWYXJpYW50RmlyZXN0b3JlUmVwb3NpdG9yeVxyXG4gIGV4dGVuZHMgd2l0aFN1YkNvbGxlY3Rpb24od2l0aENydWRGaXJlc3RvcmUod2l0aEhlbHBlcnMod2l0aEZpcmVzdG9yZTxWYXJpYW50PihCYXNlKSkpLCBQcm9kdWN0KVxyXG4gIGltcGxlbWVudHMgVmFyaWFudFJlcG9zaXRvcnlcclxue1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgeyBmaXJlc3RvcmUsIGludGVyY2VwdG9ycyB9OiBQaWNrPEZpcmVzdG9yZUNvbnN0cnVjdG9yUGFyYW1zPFZhcmlhbnQ+LCAnZmlyZXN0b3JlJyB8ICdpbnRlcmNlcHRvcnMnPixcclxuICAgIG92ZXJyaWRlIHJlYWRvbmx5IHBhcmVudFJlcG9zaXRvcnk6IFByb2R1Y3RGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gICkge1xyXG4gICAgc3VwZXIoe1xyXG4gICAgICBmaXJlc3RvcmUsXHJcbiAgICAgIGNvbGxlY3Rpb25OYW1lOiAndmFyaWFudHMnLFxyXG4gICAgICBwYXJlbnRJZEZpZWxkOiAncHJvZHVjdElkJyxcclxuICAgICAgbW9kZWw6IFZhcmlhbnQsXHJcbiAgICAgIGludGVyY2VwdG9ycyxcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
|