@infrab4a/connect 3.14.2 → 3.14.3-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/bundles/infrab4a-connect.umd.js +6106 -6056
- package/bundles/infrab4a-connect.umd.js.map +1 -1
- package/domain/catalog/helpers/index.d.ts +1 -1
- package/domain/catalog/helpers/round-product-price.helper.d.ts +4 -4
- package/domain/catalog/index.d.ts +3 -3
- package/domain/catalog/models/category-collection-children.d.ts +13 -13
- package/domain/catalog/models/category-filter.d.ts +13 -11
- package/domain/catalog/models/category.d.ts +31 -29
- package/domain/catalog/models/enums/index.d.ts +2 -2
- package/domain/catalog/models/enums/product-genders.enum.d.ts +5 -5
- package/domain/catalog/models/enums/shops.enum.d.ts +6 -6
- package/domain/catalog/models/filter-option.d.ts +9 -9
- package/domain/catalog/models/filter.d.ts +12 -12
- package/domain/catalog/models/index.d.ts +10 -10
- package/domain/catalog/models/kit-product.d.ts +12 -12
- package/domain/catalog/models/product.d.ts +44 -44
- package/domain/catalog/models/types/category-condition.type.d.ts +4 -4
- package/domain/catalog/models/types/category-metadata.type.d.ts +4 -4
- package/domain/catalog/models/types/category-product.d.ts +4 -4
- package/domain/catalog/models/types/index.d.ts +11 -11
- package/domain/catalog/models/types/product-evaluation.type.d.ts +6 -6
- package/domain/catalog/models/types/product-gender.type.d.ts +1 -1
- package/domain/catalog/models/types/product-metadata.type.d.ts +4 -4
- package/domain/catalog/models/types/product-review.type.d.ts +17 -17
- package/domain/catalog/models/types/shop-description.type.d.ts +8 -8
- package/domain/catalog/models/types/shop-price.type.d.ts +6 -6
- package/domain/catalog/models/types/stock.type.d.ts +3 -3
- package/domain/catalog/models/types/variant-grade.type.d.ts +4 -4
- package/domain/catalog/models/variant.d.ts +17 -17
- package/domain/catalog/repositories/category-collection-children.repository.d.ts +4 -4
- package/domain/catalog/repositories/category-filter.repository.d.ts +5 -5
- package/domain/catalog/repositories/category.repository.d.ts +18 -18
- package/domain/catalog/repositories/filter-option.repository.d.ts +4 -4
- package/domain/catalog/repositories/filter.repository.d.ts +4 -4
- package/domain/catalog/repositories/index.d.ts +8 -8
- package/domain/catalog/repositories/product.repository.d.ts +15 -15
- package/domain/catalog/repositories/subscription-product.repository.d.ts +4 -4
- package/domain/catalog/repositories/variant.repository.d.ts +4 -4
- package/domain/generic/index.d.ts +2 -2
- package/domain/generic/model/base.model.d.ts +14 -14
- package/domain/generic/model/identifier-fields.d.ts +4 -4
- package/domain/generic/model/index.d.ts +3 -3
- package/domain/generic/model/types/base-model-builder.type.d.ts +17 -17
- package/domain/generic/model/types/identifier-model.type.d.ts +8 -8
- package/domain/generic/model/types/index.d.ts +5 -5
- package/domain/generic/model/types/model-base-structure.type.d.ts +12 -12
- package/domain/generic/model/types/non-function-properties.type.d.ts +12 -12
- package/domain/generic/model/types/non-function-property-name.type.d.ts +13 -13
- package/domain/generic/repository/create.repository.d.ts +8 -8
- package/domain/generic/repository/crud.repository.d.ts +19 -19
- package/domain/generic/repository/delete.repository.d.ts +7 -7
- package/domain/generic/repository/enums/index.d.ts +2 -2
- package/domain/generic/repository/enums/update-option-actions.enum.d.ts +7 -7
- package/domain/generic/repository/enums/where.enum.d.ts +14 -14
- package/domain/generic/repository/find.repository.d.ts +16 -16
- package/domain/generic/repository/get.repository.d.ts +5 -5
- package/domain/generic/repository/index.d.ts +9 -9
- package/domain/generic/repository/read.repository.d.ts +14 -14
- package/domain/generic/repository/types/index.d.ts +6 -6
- package/domain/generic/repository/types/repository-find-filters.type.d.ts +13 -13
- package/domain/generic/repository/types/repository-find-result.type.d.ts +11 -11
- package/domain/generic/repository/types/repository-limit-options.type.d.ts +4 -4
- package/domain/generic/repository/types/repository-order-by-list.type.d.ts +5 -5
- package/domain/generic/repository/types/repository-update-params.type.d.ts +11 -11
- package/domain/generic/repository/types/where-options.type.d.ts +2 -2
- package/domain/generic/repository/update.repository.d.ts +6 -6
- package/domain/index.d.ts +6 -6
- package/domain/location/index.d.ts +1 -1
- package/domain/location/models/address.d.ts +24 -24
- package/domain/location/models/index.d.ts +2 -2
- package/domain/location/models/types/index.d.ts +3 -3
- package/domain/location/models/types/location-bound.type.d.ts +6 -6
- package/domain/location/models/types/location-geometry.type.d.ts +7 -7
- package/domain/location/models/types/location-lat-lng.type.d.ts +4 -4
- package/domain/shop-settings/enums/filter-type.enum.d.ts +19 -19
- package/domain/shop-settings/enums/index.d.ts +2 -2
- package/domain/shop-settings/enums/questions-filters.enum.d.ts +19 -19
- package/domain/shop-settings/helpers/beauty-questions.helper.d.ts +9 -9
- package/domain/shop-settings/helpers/index.d.ts +1 -1
- package/domain/shop-settings/index.d.ts +4 -4
- package/domain/shop-settings/models/home.d.ts +18 -18
- package/domain/shop-settings/models/index.d.ts +4 -4
- package/domain/shop-settings/models/shop-menu.d.ts +7 -7
- package/domain/shop-settings/models/shop-settings.d.ts +9 -9
- package/domain/shop-settings/models/types/banner.type.d.ts +6 -6
- package/domain/shop-settings/models/types/benefit.type.d.ts +5 -5
- package/domain/shop-settings/models/types/home-data.type.d.ts +15 -15
- package/domain/shop-settings/models/types/index.d.ts +10 -10
- package/domain/shop-settings/models/types/menu-nav.type.d.ts +8 -8
- package/domain/shop-settings/models/types/shop-banner.type.d.ts +12 -12
- package/domain/shop-settings/models/types/shop-brands.type.d.ts +10 -10
- package/domain/shop-settings/models/types/shop-carousel.type.d.ts +5 -5
- package/domain/shop-settings/models/types/shop-collection.type.d.ts +9 -9
- package/domain/shop-settings/models/types/shop-section.type.d.ts +9 -9
- package/domain/shop-settings/models/types/sub-menu.type.d.ts +8 -8
- package/domain/shop-settings/repositories/home.repository.d.ts +4 -4
- package/domain/shop-settings/repositories/index.d.ts +3 -3
- package/domain/shop-settings/repositories/shop-menu.repository.d.ts +4 -4
- package/domain/shop-settings/repositories/shop-settings.repository.d.ts +4 -4
- package/domain/shopping/index.d.ts +2 -2
- package/domain/shopping/models/buy-2-win.d.ts +18 -18
- package/domain/shopping/models/campaign-dashboard.d.ts +15 -15
- package/domain/shopping/models/campaign-hashtag.d.ts +18 -18
- package/domain/shopping/models/checkout.d.ts +26 -26
- package/domain/shopping/models/coupons/coupon.d.ts +60 -60
- package/domain/shopping/models/coupons/enums/coupon-club-mens.enum.d.ts +5 -5
- package/domain/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +4 -4
- package/domain/shopping/models/coupons/enums/coupon-types.enum.d.ts +4 -4
- package/domain/shopping/models/coupons/enums/exclusivities.enum.d.ts +8 -8
- package/domain/shopping/models/coupons/enums/index.d.ts +3 -3
- package/domain/shopping/models/coupons/index.d.ts +2 -2
- package/domain/shopping/models/enums/checkout-types.enum.d.ts +5 -5
- package/domain/shopping/models/enums/index.d.ts +2 -2
- package/domain/shopping/models/enums/order-status.enum.d.ts +10 -10
- package/domain/shopping/models/index.d.ts +12 -12
- package/domain/shopping/models/line-item.d.ts +8 -8
- package/domain/shopping/models/order.d.ts +10 -10
- package/domain/shopping/models/payment.d.ts +67 -67
- package/domain/shopping/models/shipping-method.d.ts +17 -17
- package/domain/shopping/models/subscription/checkout.d.ts +20 -20
- package/domain/shopping/models/subscription/index.d.ts +2 -2
- package/domain/shopping/models/subscription/plan.d.ts +10 -10
- package/domain/shopping/models/types/index.d.ts +7 -7
- package/domain/shopping/models/types/payment-address.type.d.ts +12 -12
- package/domain/shopping/models/types/payment-billing.type.d.ts +7 -7
- package/domain/shopping/models/types/payment-card.type.d.ts +14 -14
- package/domain/shopping/models/types/payment-customer.type.d.ts +18 -18
- package/domain/shopping/models/types/payment-document.type.d.ts +6 -6
- package/domain/shopping/models/types/payment-item.type.d.ts +11 -11
- package/domain/shopping/models/types/payment-shipping.type.d.ts +10 -10
- package/domain/shopping/repositories/buy-2-win.repository.d.ts +4 -4
- package/domain/shopping/repositories/campaign-dashboard.repository.d.ts +4 -4
- package/domain/shopping/repositories/campaign-hashtag.repository.d.ts +4 -4
- package/domain/shopping/repositories/checkout.repository.d.ts +4 -4
- package/domain/shopping/repositories/coupon.repository.d.ts +4 -4
- package/domain/shopping/repositories/index.d.ts +9 -9
- package/domain/shopping/repositories/legacy-order.repository.d.ts +3 -3
- package/domain/shopping/repositories/order.repository.d.ts +4 -4
- package/domain/shopping/repositories/payment.repository.d.ts +4 -4
- package/domain/shopping/repositories/subscription/checkout.repository.d.ts +4 -4
- package/domain/shopping/repositories/subscription/index.d.ts +2 -2
- package/domain/shopping/repositories/subscription/plan.repository.d.ts +4 -4
- package/domain/users/errors/index.d.ts +3 -3
- package/domain/users/errors/unauthorized.error.d.ts +5 -5
- package/domain/users/errors/user-already-registered.error.d.ts +5 -5
- package/domain/users/errors/weak-password.error.d.ts +5 -5
- package/domain/users/index.d.ts +5 -5
- package/domain/users/models/beauty-profile.d.ts +11 -11
- package/domain/users/models/enums/accessory-importances.enum.d.ts +5 -5
- package/domain/users/models/enums/area.enum.d.ts +11 -11
- package/domain/users/models/enums/beard-problems.enum.d.ts +9 -9
- package/domain/users/models/enums/beard-sizes.enum.d.ts +7 -7
- package/domain/users/models/enums/beauty-product-importances.enum.d.ts +6 -6
- package/domain/users/models/enums/body-problems.enum.d.ts +11 -11
- package/domain/users/models/enums/body-shapes.enum.d.ts +7 -7
- package/domain/users/models/enums/body-tattoos.enum.d.ts +5 -5
- package/domain/users/models/enums/face-skin-oilinesses.enum.d.ts +7 -7
- package/domain/users/models/enums/face-skin-problems.enum.d.ts +10 -10
- package/domain/users/models/enums/face-skin-tones.enum.d.ts +8 -8
- package/domain/users/models/enums/family-incomes.enum.d.ts +8 -8
- package/domain/users/models/enums/fragrance-importances.enum.d.ts +5 -5
- package/domain/users/models/enums/hair-colors.enum.d.ts +10 -10
- package/domain/users/models/enums/hair-problems.enum.d.ts +10 -10
- package/domain/users/models/enums/hair-strands.enum.d.ts +8 -8
- package/domain/users/models/enums/hair-types.enum.d.ts +7 -7
- package/domain/users/models/enums/index.d.ts +20 -20
- package/domain/users/models/enums/office-position.enum.d.ts +6 -6
- package/domain/users/models/enums/product-spents.enum.d.ts +8 -8
- package/domain/users/models/enums/user-type.enum.d.ts +8 -8
- package/domain/users/models/index.d.ts +7 -7
- package/domain/users/models/lead.d.ts +8 -8
- package/domain/users/models/subscription/edition.d.ts +16 -16
- package/domain/users/models/subscription/enums/billing-status.enum.d.ts +3 -3
- package/domain/users/models/subscription/enums/edition-status.enum.d.ts +4 -4
- package/domain/users/models/subscription/enums/index.d.ts +4 -4
- package/domain/users/models/subscription/enums/payment-type.enum.d.ts +5 -5
- package/domain/users/models/subscription/enums/status.enum.d.ts +4 -4
- package/domain/users/models/subscription/index.d.ts +4 -4
- package/domain/users/models/subscription/payment.d.ts +13 -13
- package/domain/users/models/subscription/subscription.d.ts +28 -28
- package/domain/users/models/user-address.d.ts +7 -7
- package/domain/users/models/user-payment-method.d.ts +14 -14
- package/domain/users/models/user.d.ts +27 -27
- package/domain/users/repositories/beauty-profile.repository.d.ts +4 -4
- package/domain/users/repositories/edition.repository.d.ts +4 -4
- package/domain/users/repositories/index.d.ts +8 -8
- package/domain/users/repositories/lead.repository.d.ts +4 -4
- package/domain/users/repositories/subscription-payment.repository.d.ts +4 -4
- package/domain/users/repositories/subscription.repository.d.ts +4 -4
- package/domain/users/repositories/user-address.repository.d.ts +4 -4
- package/domain/users/repositories/user-payment-method.repository.d.ts +4 -4
- package/domain/users/repositories/user.repository.d.ts +6 -6
- package/domain/users/services/authentication.service.d.ts +12 -12
- package/domain/users/services/index.d.ts +3 -3
- package/domain/users/services/register.service.d.ts +7 -7
- package/domain/users/services/types/basic-user-data.type.d.ts +4 -4
- package/domain/users/services/types/index.d.ts +1 -1
- package/domain/users/use-cases/authentication.d.ts +21 -21
- package/domain/users/use-cases/index.d.ts +4 -4
- package/domain/users/use-cases/recovery-password.d.ts +6 -6
- package/domain/users/use-cases/register.d.ts +13 -13
- package/domain/users/use-cases/signout.d.ts +6 -6
- package/errors/duplicated-results.error.d.ts +5 -5
- package/errors/index.d.ts +4 -4
- package/errors/invalid-argument.error.d.ts +5 -5
- package/errors/not-found.error.d.ts +5 -5
- package/errors/required-argument.error.d.ts +6 -6
- package/esm2015/domain/catalog/helpers/index.js +2 -2
- package/esm2015/domain/catalog/helpers/round-product-price.helper.js +15 -15
- package/esm2015/domain/catalog/index.js +4 -4
- package/esm2015/domain/catalog/models/category-collection-children.js +13 -13
- package/esm2015/domain/catalog/models/category-filter.js +19 -14
- package/esm2015/domain/catalog/models/category.js +23 -18
- package/esm2015/domain/catalog/models/enums/index.js +3 -3
- package/esm2015/domain/catalog/models/enums/product-genders.enum.js +7 -7
- package/esm2015/domain/catalog/models/enums/shops.enum.js +8 -8
- package/esm2015/domain/catalog/models/filter-option.js +7 -7
- package/esm2015/domain/catalog/models/filter.js +7 -7
- package/esm2015/domain/catalog/models/index.js +11 -11
- package/esm2015/domain/catalog/models/kit-product.js +18 -18
- package/esm2015/domain/catalog/models/product.js +37 -37
- package/esm2015/domain/catalog/models/types/category-condition.type.js +2 -2
- package/esm2015/domain/catalog/models/types/category-metadata.type.js +2 -2
- package/esm2015/domain/catalog/models/types/category-product.js +2 -2
- package/esm2015/domain/catalog/models/types/index.js +12 -12
- package/esm2015/domain/catalog/models/types/product-evaluation.type.js +2 -2
- package/esm2015/domain/catalog/models/types/product-gender.type.js +2 -2
- package/esm2015/domain/catalog/models/types/product-metadata.type.js +2 -2
- package/esm2015/domain/catalog/models/types/product-review.type.js +2 -2
- package/esm2015/domain/catalog/models/types/shop-description.type.js +2 -2
- package/esm2015/domain/catalog/models/types/shop-price.type.js +2 -2
- package/esm2015/domain/catalog/models/types/stock.type.js +2 -2
- package/esm2015/domain/catalog/models/types/variant-grade.type.js +2 -2
- package/esm2015/domain/catalog/models/variant.js +7 -7
- package/esm2015/domain/catalog/repositories/category-collection-children.repository.js +2 -2
- package/esm2015/domain/catalog/repositories/category-filter.repository.js +2 -2
- package/esm2015/domain/catalog/repositories/category.repository.js +2 -2
- package/esm2015/domain/catalog/repositories/filter-option.repository.js +2 -2
- package/esm2015/domain/catalog/repositories/filter.repository.js +2 -2
- package/esm2015/domain/catalog/repositories/index.js +9 -9
- package/esm2015/domain/catalog/repositories/product.repository.js +2 -2
- package/esm2015/domain/catalog/repositories/subscription-product.repository.js +2 -2
- package/esm2015/domain/catalog/repositories/variant.repository.js +2 -2
- package/esm2015/domain/generic/index.js +3 -3
- package/esm2015/domain/generic/model/base.model.js +24 -24
- package/esm2015/domain/generic/model/identifier-fields.js +2 -2
- package/esm2015/domain/generic/model/index.js +4 -4
- package/esm2015/domain/generic/model/types/base-model-builder.type.js +2 -2
- package/esm2015/domain/generic/model/types/identifier-model.type.js +2 -2
- package/esm2015/domain/generic/model/types/index.js +6 -6
- package/esm2015/domain/generic/model/types/model-base-structure.type.js +2 -2
- package/esm2015/domain/generic/model/types/non-function-properties.type.js +2 -2
- package/esm2015/domain/generic/model/types/non-function-property-name.type.js +2 -2
- package/esm2015/domain/generic/repository/create.repository.js +2 -2
- package/esm2015/domain/generic/repository/crud.repository.js +2 -2
- package/esm2015/domain/generic/repository/delete.repository.js +2 -2
- package/esm2015/domain/generic/repository/enums/index.js +3 -3
- package/esm2015/domain/generic/repository/enums/update-option-actions.enum.js +9 -9
- package/esm2015/domain/generic/repository/enums/where.enum.js +16 -16
- package/esm2015/domain/generic/repository/find.repository.js +2 -2
- package/esm2015/domain/generic/repository/get.repository.js +2 -2
- package/esm2015/domain/generic/repository/index.js +10 -10
- package/esm2015/domain/generic/repository/read.repository.js +2 -2
- package/esm2015/domain/generic/repository/types/index.js +7 -7
- package/esm2015/domain/generic/repository/types/repository-find-filters.type.js +2 -2
- package/esm2015/domain/generic/repository/types/repository-find-result.type.js +2 -2
- package/esm2015/domain/generic/repository/types/repository-limit-options.type.js +2 -2
- package/esm2015/domain/generic/repository/types/repository-order-by-list.type.js +2 -2
- package/esm2015/domain/generic/repository/types/repository-update-params.type.js +2 -2
- package/esm2015/domain/generic/repository/types/where-options.type.js +2 -2
- package/esm2015/domain/generic/repository/update.repository.js +2 -2
- package/esm2015/domain/index.js +7 -7
- package/esm2015/domain/location/index.js +2 -2
- package/esm2015/domain/location/models/address.js +7 -7
- package/esm2015/domain/location/models/index.js +3 -3
- package/esm2015/domain/location/models/types/index.js +4 -4
- package/esm2015/domain/location/models/types/location-bound.type.js +2 -2
- package/esm2015/domain/location/models/types/location-geometry.type.js +2 -2
- package/esm2015/domain/location/models/types/location-lat-lng.type.js +2 -2
- package/esm2015/domain/shop-settings/enums/filter-type.enum.js +21 -21
- package/esm2015/domain/shop-settings/enums/index.js +3 -3
- package/esm2015/domain/shop-settings/enums/questions-filters.enum.js +21 -21
- package/esm2015/domain/shop-settings/helpers/beauty-questions.helper.js +46 -46
- package/esm2015/domain/shop-settings/helpers/index.js +2 -2
- package/esm2015/domain/shop-settings/index.js +5 -5
- package/esm2015/domain/shop-settings/models/home.js +7 -7
- package/esm2015/domain/shop-settings/models/index.js +5 -5
- package/esm2015/domain/shop-settings/models/shop-menu.js +7 -7
- package/esm2015/domain/shop-settings/models/shop-settings.js +7 -7
- package/esm2015/domain/shop-settings/models/types/banner.type.js +2 -2
- package/esm2015/domain/shop-settings/models/types/benefit.type.js +2 -2
- package/esm2015/domain/shop-settings/models/types/home-data.type.js +2 -2
- package/esm2015/domain/shop-settings/models/types/index.js +11 -11
- package/esm2015/domain/shop-settings/models/types/menu-nav.type.js +2 -2
- package/esm2015/domain/shop-settings/models/types/shop-banner.type.js +2 -2
- package/esm2015/domain/shop-settings/models/types/shop-brands.type.js +2 -2
- package/esm2015/domain/shop-settings/models/types/shop-carousel.type.js +2 -2
- package/esm2015/domain/shop-settings/models/types/shop-collection.type.js +2 -2
- package/esm2015/domain/shop-settings/models/types/shop-section.type.js +2 -2
- package/esm2015/domain/shop-settings/models/types/sub-menu.type.js +2 -2
- package/esm2015/domain/shop-settings/repositories/home.repository.js +2 -2
- package/esm2015/domain/shop-settings/repositories/index.js +4 -4
- package/esm2015/domain/shop-settings/repositories/shop-menu.repository.js +2 -2
- package/esm2015/domain/shop-settings/repositories/shop-settings.repository.js +2 -2
- package/esm2015/domain/shopping/index.js +3 -3
- package/esm2015/domain/shopping/models/buy-2-win.js +14 -14
- package/esm2015/domain/shopping/models/campaign-dashboard.js +7 -7
- package/esm2015/domain/shopping/models/campaign-hashtag.js +7 -7
- package/esm2015/domain/shopping/models/checkout.js +37 -37
- package/esm2015/domain/shopping/models/coupons/coupon.js +38 -38
- package/esm2015/domain/shopping/models/coupons/enums/coupon-club-mens.enum.js +7 -7
- package/esm2015/domain/shopping/models/coupons/enums/coupon-subtypes.enum.js +6 -6
- package/esm2015/domain/shopping/models/coupons/enums/coupon-types.enum.js +10 -10
- package/esm2015/domain/shopping/models/coupons/enums/exclusivities.enum.js +10 -10
- package/esm2015/domain/shopping/models/coupons/enums/index.js +4 -4
- package/esm2015/domain/shopping/models/coupons/index.js +3 -3
- package/esm2015/domain/shopping/models/enums/checkout-types.enum.js +7 -7
- package/esm2015/domain/shopping/models/enums/index.js +3 -3
- package/esm2015/domain/shopping/models/enums/order-status.enum.js +12 -12
- package/esm2015/domain/shopping/models/index.js +13 -13
- package/esm2015/domain/shopping/models/line-item.js +4 -4
- package/esm2015/domain/shopping/models/order.js +11 -11
- package/esm2015/domain/shopping/models/payment.js +169 -169
- package/esm2015/domain/shopping/models/shipping-method.js +7 -7
- package/esm2015/domain/shopping/models/subscription/checkout.js +28 -28
- package/esm2015/domain/shopping/models/subscription/index.js +3 -3
- package/esm2015/domain/shopping/models/subscription/plan.js +7 -7
- package/esm2015/domain/shopping/models/types/index.js +8 -8
- package/esm2015/domain/shopping/models/types/payment-address.type.js +2 -2
- package/esm2015/domain/shopping/models/types/payment-billing.type.js +2 -2
- package/esm2015/domain/shopping/models/types/payment-card.type.js +2 -2
- package/esm2015/domain/shopping/models/types/payment-customer.type.js +2 -2
- package/esm2015/domain/shopping/models/types/payment-document.type.js +2 -2
- package/esm2015/domain/shopping/models/types/payment-item.type.js +2 -2
- package/esm2015/domain/shopping/models/types/payment-shipping.type.js +2 -2
- package/esm2015/domain/shopping/repositories/buy-2-win.repository.js +2 -2
- package/esm2015/domain/shopping/repositories/campaign-dashboard.repository.js +2 -2
- package/esm2015/domain/shopping/repositories/campaign-hashtag.repository.js +2 -2
- package/esm2015/domain/shopping/repositories/checkout.repository.js +2 -2
- package/esm2015/domain/shopping/repositories/coupon.repository.js +2 -2
- package/esm2015/domain/shopping/repositories/index.js +10 -10
- package/esm2015/domain/shopping/repositories/legacy-order.repository.js +2 -2
- package/esm2015/domain/shopping/repositories/order.repository.js +2 -2
- package/esm2015/domain/shopping/repositories/payment.repository.js +2 -2
- package/esm2015/domain/shopping/repositories/subscription/checkout.repository.js +2 -2
- package/esm2015/domain/shopping/repositories/subscription/index.js +3 -3
- package/esm2015/domain/shopping/repositories/subscription/plan.repository.js +2 -2
- package/esm2015/domain/users/errors/index.js +4 -4
- package/esm2015/domain/users/errors/unauthorized.error.js +8 -8
- package/esm2015/domain/users/errors/user-already-registered.error.js +8 -8
- package/esm2015/domain/users/errors/weak-password.error.js +8 -8
- package/esm2015/domain/users/index.js +6 -6
- package/esm2015/domain/users/models/beauty-profile.js +12 -12
- package/esm2015/domain/users/models/enums/accessory-importances.enum.js +7 -7
- package/esm2015/domain/users/models/enums/area.enum.js +13 -13
- package/esm2015/domain/users/models/enums/beard-problems.enum.js +11 -11
- package/esm2015/domain/users/models/enums/beard-sizes.enum.js +9 -9
- package/esm2015/domain/users/models/enums/beauty-product-importances.enum.js +8 -8
- package/esm2015/domain/users/models/enums/body-problems.enum.js +13 -13
- package/esm2015/domain/users/models/enums/body-shapes.enum.js +9 -9
- package/esm2015/domain/users/models/enums/body-tattoos.enum.js +7 -7
- package/esm2015/domain/users/models/enums/face-skin-oilinesses.enum.js +9 -9
- package/esm2015/domain/users/models/enums/face-skin-problems.enum.js +12 -12
- package/esm2015/domain/users/models/enums/face-skin-tones.enum.js +10 -10
- package/esm2015/domain/users/models/enums/family-incomes.enum.js +10 -10
- package/esm2015/domain/users/models/enums/fragrance-importances.enum.js +7 -7
- package/esm2015/domain/users/models/enums/hair-colors.enum.js +12 -12
- package/esm2015/domain/users/models/enums/hair-problems.enum.js +12 -12
- package/esm2015/domain/users/models/enums/hair-strands.enum.js +10 -10
- package/esm2015/domain/users/models/enums/hair-types.enum.js +9 -9
- package/esm2015/domain/users/models/enums/index.js +21 -21
- package/esm2015/domain/users/models/enums/office-position.enum.js +8 -8
- package/esm2015/domain/users/models/enums/product-spents.enum.js +10 -10
- package/esm2015/domain/users/models/enums/user-type.enum.js +10 -10
- package/esm2015/domain/users/models/index.js +8 -8
- package/esm2015/domain/users/models/lead.js +7 -7
- package/esm2015/domain/users/models/subscription/edition.js +7 -7
- package/esm2015/domain/users/models/subscription/enums/billing-status.enum.js +5 -5
- package/esm2015/domain/users/models/subscription/enums/edition-status.enum.js +6 -6
- package/esm2015/domain/users/models/subscription/enums/index.js +5 -5
- package/esm2015/domain/users/models/subscription/enums/payment-type.enum.js +7 -7
- package/esm2015/domain/users/models/subscription/enums/status.enum.js +6 -6
- package/esm2015/domain/users/models/subscription/index.js +5 -5
- package/esm2015/domain/users/models/subscription/payment.js +14 -14
- package/esm2015/domain/users/models/subscription/subscription.js +43 -43
- package/esm2015/domain/users/models/user-address.js +7 -7
- package/esm2015/domain/users/models/user-payment-method.js +7 -7
- package/esm2015/domain/users/models/user.js +26 -26
- package/esm2015/domain/users/repositories/beauty-profile.repository.js +2 -2
- package/esm2015/domain/users/repositories/edition.repository.js +2 -2
- package/esm2015/domain/users/repositories/index.js +9 -9
- package/esm2015/domain/users/repositories/lead.repository.js +2 -2
- package/esm2015/domain/users/repositories/subscription-payment.repository.js +2 -2
- package/esm2015/domain/users/repositories/subscription.repository.js +2 -2
- package/esm2015/domain/users/repositories/user-address.repository.js +2 -2
- package/esm2015/domain/users/repositories/user-payment-method.repository.js +2 -2
- package/esm2015/domain/users/repositories/user.repository.js +2 -2
- package/esm2015/domain/users/services/authentication.service.js +2 -2
- package/esm2015/domain/users/services/index.js +4 -4
- package/esm2015/domain/users/services/register.service.js +2 -2
- package/esm2015/domain/users/services/types/basic-user-data.type.js +2 -2
- package/esm2015/domain/users/services/types/index.js +2 -2
- package/esm2015/domain/users/use-cases/authentication.js +40 -40
- package/esm2015/domain/users/use-cases/index.js +5 -5
- package/esm2015/domain/users/use-cases/recovery-password.js +12 -12
- package/esm2015/domain/users/use-cases/register.js +34 -34
- package/esm2015/domain/users/use-cases/signout.js +12 -12
- package/esm2015/errors/duplicated-results.error.js +8 -8
- package/esm2015/errors/index.js +5 -5
- package/esm2015/errors/invalid-argument.error.js +8 -8
- package/esm2015/errors/not-found.error.js +8 -8
- package/esm2015/errors/required-argument.error.js +9 -9
- package/esm2015/index.js +6 -6
- package/esm2015/infra/elasticsearch/adapters/axios.adapter.js +76 -76
- package/esm2015/infra/elasticsearch/adapters/elastic-search.adapter.js +2 -2
- package/esm2015/infra/elasticsearch/adapters/index.js +3 -3
- package/esm2015/infra/elasticsearch/index.js +4 -4
- package/esm2015/infra/elasticsearch/indexes/index.js +2 -2
- package/esm2015/infra/elasticsearch/indexes/products-index.js +115 -115
- package/esm2015/infra/elasticsearch/types/elastic-search-result.js +2 -2
- package/esm2015/infra/elasticsearch/types/index.js +2 -2
- package/esm2015/infra/firebase/auth/authentication-firebase-auth.service.js +52 -52
- package/esm2015/infra/firebase/auth/index.js +3 -3
- package/esm2015/infra/firebase/auth/register-firebase-auth.service.js +26 -26
- package/esm2015/infra/firebase/auth/types/firebase-user-with-id.type.js +2 -2
- package/esm2015/infra/firebase/firestore/enums/firestore-field-type.enum.js +10 -10
- package/esm2015/infra/firebase/firestore/enums/index.js +2 -2
- package/esm2015/infra/firebase/firestore/index.js +4 -4
- package/esm2015/infra/firebase/firestore/mixins/index.js +10 -10
- package/esm2015/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +31 -31
- package/esm2015/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +10 -10
- package/esm2015/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +18 -18
- package/esm2015/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +98 -98
- package/esm2015/infra/firebase/firestore/mixins/with-firestore.mixin.js +64 -64
- package/esm2015/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +24 -24
- package/esm2015/infra/firebase/firestore/mixins/with-helpers.mixin.js +17 -17
- package/esm2015/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +11 -11
- package/esm2015/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +45 -45
- package/esm2015/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +82 -82
- package/esm2015/infra/firebase/firestore/repositories/catalog/index.js +5 -5
- package/esm2015/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js +58 -58
- package/esm2015/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.js +14 -14
- package/esm2015/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/index.js +5 -5
- package/esm2015/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.js +56 -56
- package/esm2015/infra/firebase/firestore/repositories/shop-settings/index.js +4 -4
- package/esm2015/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.js +29 -29
- package/esm2015/infra/firebase/firestore/repositories/shopping/index.js +11 -11
- package/esm2015/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.js +9 -9
- package/esm2015/infra/firebase/firestore/repositories/shopping/order-firestore.repository.js +40 -40
- package/esm2015/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/users/index.js +9 -9
- package/esm2015/infra/firebase/firestore/repositories/users/lead-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.js +14 -14
- package/esm2015/infra/firebase/firestore/repositories/users/subscription-firestore.repository.js +12 -12
- package/esm2015/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.js +14 -14
- package/esm2015/infra/firebase/firestore/repositories/users/user-address-firestore.repository.js +14 -14
- package/esm2015/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.js +14 -14
- package/esm2015/infra/firebase/firestore/repositories/users/user-firestore.repository.js +68 -68
- package/esm2015/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.js +14 -14
- package/esm2015/infra/firebase/firestore/types/firestore-sub.repository.type.js +2 -2
- package/esm2015/infra/firebase/firestore/types/firestore.helpers.type.js +2 -2
- package/esm2015/infra/firebase/firestore/types/firestore.repository.type.js +2 -2
- package/esm2015/infra/firebase/firestore/types/index.js +4 -4
- package/esm2015/infra/firebase/index.js +3 -3
- package/esm2015/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.js +13 -13
- package/esm2015/infra/hasura-graphql/enums/hasura-graphql-where.enum.js +15 -15
- package/esm2015/infra/hasura-graphql/enums/index.js +3 -3
- package/esm2015/infra/hasura-graphql/index.js +5 -5
- package/esm2015/infra/hasura-graphql/mixins/helpers/attribute-option.helper.js +31 -31
- package/esm2015/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.js +58 -58
- package/esm2015/infra/hasura-graphql/mixins/helpers/filter-option.helper.js +22 -22
- package/esm2015/infra/hasura-graphql/mixins/helpers/graphql-field.helper.js +95 -95
- package/esm2015/infra/hasura-graphql/mixins/helpers/index.js +5 -5
- package/esm2015/infra/hasura-graphql/mixins/index.js +8 -8
- package/esm2015/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.js +61 -61
- package/esm2015/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.js +10 -10
- package/esm2015/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.js +31 -31
- package/esm2015/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.js +109 -109
- package/esm2015/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.js +37 -37
- package/esm2015/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.js +97 -97
- package/esm2015/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.js +58 -58
- package/esm2015/infra/hasura-graphql/models/category-hasura-graphql.js +4 -4
- package/esm2015/infra/hasura-graphql/models/index.js +5 -5
- package/esm2015/infra/hasura-graphql/models/kit-product-hasura-graphql.js +15 -15
- package/esm2015/infra/hasura-graphql/models/product-hasura-graphql.js +11 -11
- package/esm2015/infra/hasura-graphql/models/variant-hasura-graphql.js +9 -9
- package/esm2015/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.js +38 -38
- package/esm2015/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.js +97 -55
- package/esm2015/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js +377 -377
- package/esm2015/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.js +123 -123
- package/esm2015/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.js +21 -21
- package/esm2015/infra/hasura-graphql/repositories/catalog/index.js +8 -8
- package/esm2015/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js +506 -506
- package/esm2015/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.js +117 -117
- package/esm2015/infra/hasura-graphql/repositories/index.js +2 -2
- package/esm2015/infra/hasura-graphql/types/fields.type.js +2 -2
- package/esm2015/infra/hasura-graphql/types/graphql.repository.type.js +2 -2
- package/esm2015/infra/hasura-graphql/types/hasura-graphql-auth-options.type.js +2 -2
- package/esm2015/infra/hasura-graphql/types/hasura-graphql-fields.type.js +2 -2
- package/esm2015/infra/hasura-graphql/types/hasura-graphql-headers.type.js +2 -2
- package/esm2015/infra/hasura-graphql/types/index.js +9 -9
- package/esm2015/infra/hasura-graphql/types/nested-field.type.js +2 -2
- package/esm2015/infra/hasura-graphql/types/query-builder-options.type.js +2 -2
- package/esm2015/infra/hasura-graphql/types/variable-options.type.js +2 -2
- package/esm2015/infra/index.js +4 -4
- package/esm2015/infrab4a-connect.js +4 -4
- package/esm2015/utils/decorators/debug.class.decorator.js +7 -7
- package/esm2015/utils/decorators/index.js +3 -3
- package/esm2015/utils/decorators/trace.method.decorator.js +81 -81
- package/esm2015/utils/helpers/class-name.helper.js +15 -15
- package/esm2015/utils/helpers/debug-decorator.helper.js +18 -18
- package/esm2015/utils/helpers/debug.helper.js +150 -150
- package/esm2015/utils/helpers/index.js +5 -5
- package/esm2015/utils/helpers/reflect.helper.js +165 -165
- package/esm2015/utils/index.js +11 -11
- package/esm2015/utils/is-uuid.js +3 -3
- package/esm2015/utils/log.utils.js +9 -9
- package/esm2015/utils/mixins/base.mixin.js +6 -6
- package/esm2015/utils/mixins/index.js +4 -4
- package/esm2015/utils/mixins/merge-constructor-params.type.js +2 -2
- package/esm2015/utils/mixins/mixin-ctor.type.js +2 -2
- package/esm2015/utils/parse-datetime.js +14 -14
- package/esm2015/utils/types/array-element.type.js +2 -2
- package/esm2015/utils/types/index.js +3 -3
- package/esm2015/utils/types/prop.type.js +2 -2
- package/fesm2015/infrab4a-connect.js +4178 -4128
- package/fesm2015/infrab4a-connect.js.map +1 -1
- package/index.d.ts +5 -5
- package/infra/elasticsearch/adapters/axios.adapter.d.ts +16 -16
- package/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +8 -8
- package/infra/elasticsearch/adapters/index.d.ts +2 -2
- package/infra/elasticsearch/index.d.ts +3 -3
- package/infra/elasticsearch/indexes/index.d.ts +1 -1
- package/infra/elasticsearch/indexes/products-index.d.ts +13 -13
- package/infra/elasticsearch/types/elastic-search-result.d.ts +9 -9
- package/infra/elasticsearch/types/index.d.ts +1 -1
- package/infra/firebase/auth/authentication-firebase-auth.service.d.ts +12 -12
- package/infra/firebase/auth/index.d.ts +2 -2
- package/infra/firebase/auth/register-firebase-auth.service.d.ts +8 -8
- package/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +3 -3
- package/infra/firebase/firestore/enums/firestore-field-type.enum.d.ts +8 -8
- package/infra/firebase/firestore/enums/index.d.ts +1 -1
- package/infra/firebase/firestore/index.d.ts +3 -3
- package/infra/firebase/firestore/mixins/index.d.ts +9 -9
- package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +4 -4
- package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +4 -4
- package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +4 -4
- package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +4 -4
- package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +4 -4
- package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +4 -4
- package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +11 -11
- package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +7 -7
- package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +7 -7
- package/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +21 -21
- package/infra/firebase/firestore/repositories/catalog/index.d.ts +4 -4
- package/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +13 -13
- package/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +13 -13
- package/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +8 -8
- package/infra/firebase/firestore/repositories/index.d.ts +4 -4
- package/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +16 -16
- package/infra/firebase/firestore/repositories/shop-settings/index.d.ts +3 -3
- package/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +8 -8
- package/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +8 -8
- package/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +8 -8
- package/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.d.ts +9 -9
- package/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.d.ts +9 -9
- package/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +8 -8
- package/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +8 -8
- package/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +12 -12
- package/infra/firebase/firestore/repositories/shopping/index.d.ts +10 -10
- package/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +7 -7
- package/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +13 -13
- package/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +8 -8
- package/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +8 -8
- package/infra/firebase/firestore/repositories/users/index.d.ts +8 -8
- package/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +8 -8
- package/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +13 -13
- package/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +8 -8
- package/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +13 -13
- package/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +13 -13
- package/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +13 -13
- package/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +17 -17
- package/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +13 -13
- package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +6 -6
- package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +8 -8
- package/infra/firebase/firestore/types/firestore.repository.type.d.ts +14 -14
- package/infra/firebase/firestore/types/index.d.ts +3 -3
- package/infra/firebase/index.d.ts +2 -2
- package/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.d.ts +11 -11
- package/infra/hasura-graphql/enums/hasura-graphql-where.enum.d.ts +13 -13
- package/infra/hasura-graphql/enums/index.d.ts +2 -2
- package/infra/hasura-graphql/index.d.ts +4 -4
- package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +15 -15
- package/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.d.ts +10 -10
- package/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +8 -8
- package/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +9 -9
- package/infra/hasura-graphql/mixins/helpers/index.d.ts +4 -4
- package/infra/hasura-graphql/mixins/index.d.ts +7 -7
- package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +9 -9
- package/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +11 -11
- package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +7 -7
- package/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +33 -33
- package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +25 -25
- package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +11 -11
- package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +14 -14
- package/infra/hasura-graphql/models/category-hasura-graphql.d.ts +6 -6
- package/infra/hasura-graphql/models/index.d.ts +4 -4
- package/infra/hasura-graphql/models/kit-product-hasura-graphql.d.ts +6 -6
- package/infra/hasura-graphql/models/product-hasura-graphql.d.ts +18 -18
- package/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +10 -10
- package/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.d.ts +10 -10
- package/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.d.ts +11 -11
- package/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +34 -34
- package/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.d.ts +18 -18
- package/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.d.ts +10 -10
- package/infra/hasura-graphql/repositories/catalog/index.d.ts +7 -7
- package/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +30 -30
- package/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +14 -14
- package/infra/hasura-graphql/repositories/index.d.ts +1 -1
- package/infra/hasura-graphql/types/fields.type.d.ts +2 -2
- package/infra/hasura-graphql/types/graphql.repository.type.d.ts +23 -23
- package/infra/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +8 -8
- package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +44 -44
- package/infra/hasura-graphql/types/hasura-graphql-headers.type.d.ts +7 -7
- package/infra/hasura-graphql/types/index.d.ts +8 -8
- package/infra/hasura-graphql/types/nested-field.type.d.ts +7 -7
- package/infra/hasura-graphql/types/query-builder-options.type.d.ts +7 -7
- package/infra/hasura-graphql/types/variable-options.type.d.ts +9 -9
- package/infra/index.d.ts +3 -3
- package/infrab4a-connect.d.ts +5 -5
- package/package.json +1 -1
- package/utils/decorators/debug.class.decorator.d.ts +2 -2
- package/utils/decorators/index.d.ts +2 -2
- package/utils/decorators/trace.method.decorator.d.ts +14 -14
- package/utils/helpers/class-name.helper.d.ts +3 -3
- package/utils/helpers/debug-decorator.helper.d.ts +9 -9
- package/utils/helpers/debug.helper.d.ts +60 -60
- package/utils/helpers/index.d.ts +4 -4
- package/utils/helpers/reflect.helper.d.ts +50 -50
- package/utils/index.d.ts +10 -10
- package/utils/is-uuid.d.ts +1 -1
- package/utils/log.utils.d.ts +7 -7
- package/utils/mixins/base.mixin.d.ts +3 -3
- package/utils/mixins/index.d.ts +3 -3
- package/utils/mixins/merge-constructor-params.type.d.ts +3 -3
- package/utils/mixins/mixin-ctor.type.d.ts +1 -1
- package/utils/parse-datetime.d.ts +1 -1
- package/utils/types/array-element.type.d.ts +1 -1
- package/utils/types/index.d.ts +2 -2
- package/utils/types/prop.type.d.ts +1 -1
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { isNil, isObject } from '../../../../utils';
|
|
2
|
-
export class AttributeOptionHelper {
|
|
3
|
-
}
|
|
4
|
-
AttributeOptionHelper.FindByAttribute = (attributeName, fields) => {
|
|
5
|
-
if (fields.includes(attributeName))
|
|
6
|
-
return { columnName: attributeName.toString(), attributeName, to: (value) => value, from: (value) => value };
|
|
7
|
-
const field = fields.find((columnOption) => isObject(columnOption) && Object.keys(columnOption).includes(attributeName.toString()));
|
|
8
|
-
const fieldOption = field === null || field === void 0 ? void 0 : field[attributeName.toString()];
|
|
9
|
-
if (isNil(fieldOption))
|
|
10
|
-
return { columnName: attributeName.toString(), attributeName };
|
|
11
|
-
if (Array.isArray(fieldOption))
|
|
12
|
-
return { columnName: attributeName.toString(), attributeName, fields: fieldOption };
|
|
13
|
-
return Object.assign({ attributeName, columnName: attributeName.toString() }, fieldOption);
|
|
14
|
-
};
|
|
15
|
-
AttributeOptionHelper.CheckIsColumnOption = (fieldValue) => !!(fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.columnName);
|
|
16
|
-
AttributeOptionHelper.FindColumnOptionFromList = (columnName, fields) => {
|
|
17
|
-
if (fields.includes(columnName))
|
|
18
|
-
return { columnName, attributeName: columnName };
|
|
19
|
-
const field = fields.find((columnOption) => {
|
|
20
|
-
var _a;
|
|
21
|
-
return isObject(columnOption) &&
|
|
22
|
-
((_a = Object.values(columnOption).find((option) => AttributeOptionHelper.CheckIsColumnOption(option) && option.columnName === columnName)) === null || _a === void 0 ? void 0 : _a.columnName) === columnName;
|
|
23
|
-
}) || {};
|
|
24
|
-
const attributeName = Object.keys(field).find((fieldOptionFromList) => AttributeOptionHelper.CheckIsColumnOption(field[fieldOptionFromList]) ||
|
|
25
|
-
Array.isArray(field[fieldOptionFromList]));
|
|
26
|
-
const fieldOption = field === null || field === void 0 ? void 0 : field[attributeName];
|
|
27
|
-
if (Array.isArray(fieldOption))
|
|
28
|
-
return { attributeName: attributeName, fields: fieldOption };
|
|
29
|
-
return Object.assign({ attributeName: attributeName || columnName, columnName }, fieldOption);
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { isNil, isObject } from '../../../../utils';
|
|
2
|
+
export class AttributeOptionHelper {
|
|
3
|
+
}
|
|
4
|
+
AttributeOptionHelper.FindByAttribute = (attributeName, fields) => {
|
|
5
|
+
if (fields.includes(attributeName))
|
|
6
|
+
return { columnName: attributeName.toString(), attributeName, to: (value) => value, from: (value) => value };
|
|
7
|
+
const field = fields.find((columnOption) => isObject(columnOption) && Object.keys(columnOption).includes(attributeName.toString()));
|
|
8
|
+
const fieldOption = field === null || field === void 0 ? void 0 : field[attributeName.toString()];
|
|
9
|
+
if (isNil(fieldOption))
|
|
10
|
+
return { columnName: attributeName.toString(), attributeName };
|
|
11
|
+
if (Array.isArray(fieldOption))
|
|
12
|
+
return { columnName: attributeName.toString(), attributeName, fields: fieldOption };
|
|
13
|
+
return Object.assign({ attributeName, columnName: attributeName.toString() }, fieldOption);
|
|
14
|
+
};
|
|
15
|
+
AttributeOptionHelper.CheckIsColumnOption = (fieldValue) => !!(fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.columnName);
|
|
16
|
+
AttributeOptionHelper.FindColumnOptionFromList = (columnName, fields) => {
|
|
17
|
+
if (fields.includes(columnName))
|
|
18
|
+
return { columnName, attributeName: columnName };
|
|
19
|
+
const field = fields.find((columnOption) => {
|
|
20
|
+
var _a;
|
|
21
|
+
return isObject(columnOption) &&
|
|
22
|
+
((_a = Object.values(columnOption).find((option) => AttributeOptionHelper.CheckIsColumnOption(option) && option.columnName === columnName)) === null || _a === void 0 ? void 0 : _a.columnName) === columnName;
|
|
23
|
+
}) || {};
|
|
24
|
+
const attributeName = Object.keys(field).find((fieldOptionFromList) => AttributeOptionHelper.CheckIsColumnOption(field[fieldOptionFromList]) ||
|
|
25
|
+
Array.isArray(field[fieldOptionFromList]));
|
|
26
|
+
const fieldOption = field === null || field === void 0 ? void 0 : field[attributeName];
|
|
27
|
+
if (Array.isArray(fieldOption))
|
|
28
|
+
return { attributeName: attributeName, fields: fieldOption };
|
|
29
|
+
return Object.assign({ attributeName: attributeName || columnName, columnName }, fieldOption);
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLW9wdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBUW5ELE1BQU0sT0FBTyxxQkFBcUI7O0FBQ3pCLHFDQUFlLEdBQUcsQ0FJdkIsYUFBd0IsRUFDeEIsTUFBa0MsRUFDTyxFQUFFO0lBQzNDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFvQixDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBRTlHLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3ZCLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQ3pHLENBQUE7SUFDRCxNQUFNLFdBQVcsR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFFckQsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUE7SUFDdEYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUE7SUFFbkgsdUJBQVMsYUFBYSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUssV0FBVyxFQUFFO0FBQ2hGLENBQUMsQ0FBQTtBQUVNLHlDQUFtQixHQUFHLENBQzNCLFVBQTZDLEVBQ0ksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxVQUFVLENBQUEsQ0FBQTtBQUV2RSw4Q0FBd0IsR0FBRyxDQUloQyxVQUFrQixFQUNsQixNQUF3QyxFQUNtRSxFQUFFO0lBQzdHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFpQixDQUFDO1FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQWdFLEVBQUUsQ0FBQTtJQUV4RyxNQUFNLEtBQUssR0FDVCxNQUFNLENBQUMsSUFBSSxDQUNULENBQUMsWUFBWSxFQUFFLEVBQUU7O1FBQ2YsT0FBQSxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQ3RCLENBQUEsTUFBQSxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDOUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUNsRywwQ0FBRSxVQUFVLE1BQUssVUFBVSxDQUFBO0tBQUEsQ0FDL0IsSUFBSSxFQUFFLENBQUE7SUFDVCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDM0MsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQ3RCLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JFLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FDNUMsQ0FBQTtJQUNELE1BQU0sV0FBVyxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRyxhQUFhLENBQUMsQ0FBQTtJQUUxQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBbUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUE7SUFFcEgsdUJBQ0UsYUFBYSxFQUFHLGFBQW9FLElBQUksVUFBVSxFQUNsRyxVQUFVLElBQ1AsV0FBVyxFQUNmO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxCYXNlU3RydWN0dXJlLCBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgaXNOaWwsIGlzT2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBDb2x1bW5PcHRpb25zLCBIYXN1cmFHcmFwaFFMRmllbGRzIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbnR5cGUgRmluZEJ5QXR0cmlidXRlUmVzdWx0PFxuICBNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4sXG4gIEF0dHJpYnV0ZSBleHRlbmRzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxuPiA9IENvbHVtbk9wdGlvbnM8TUJhc2VbQXR0cmlidXRlXSwgTUJhc2U+ICYgeyBhdHRyaWJ1dGVOYW1lOiBBdHRyaWJ1dGUgfVxuXG5leHBvcnQgY2xhc3MgQXR0cmlidXRlT3B0aW9uSGVscGVyIHtcbiAgc3RhdGljIEZpbmRCeUF0dHJpYnV0ZSA9IDxcbiAgICBNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZSwgTUJhc2VbJ2lkZW50aWZpZXJzRmllbGRzJ11bbnVtYmVyXT4sXG4gICAgQXR0cmlidXRlIGV4dGVuZHMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4gPSBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgPihcbiAgICBhdHRyaWJ1dGVOYW1lOiBBdHRyaWJ1dGUsXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgKTogRmluZEJ5QXR0cmlidXRlUmVzdWx0PE1CYXNlLCBBdHRyaWJ1dGU+ID0+IHtcbiAgICBpZiAoZmllbGRzLmluY2x1ZGVzKGF0dHJpYnV0ZU5hbWUgYXMgYW55KSlcbiAgICAgIHJldHVybiB7IGNvbHVtbk5hbWU6IGF0dHJpYnV0ZU5hbWUudG9TdHJpbmcoKSwgYXR0cmlidXRlTmFtZSwgdG86ICh2YWx1ZSkgPT4gdmFsdWUsIGZyb206ICh2YWx1ZSkgPT4gdmFsdWUgfVxuXG4gICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZChcbiAgICAgIChjb2x1bW5PcHRpb24pID0+IGlzT2JqZWN0KGNvbHVtbk9wdGlvbikgJiYgT2JqZWN0LmtleXMoY29sdW1uT3B0aW9uKS5pbmNsdWRlcyhhdHRyaWJ1dGVOYW1lLnRvU3RyaW5nKCkpLFxuICAgIClcbiAgICBjb25zdCBmaWVsZE9wdGlvbiA9IGZpZWxkPy5bYXR0cmlidXRlTmFtZS50b1N0cmluZygpXVxuXG4gICAgaWYgKGlzTmlsKGZpZWxkT3B0aW9uKSkgcmV0dXJuIHsgY29sdW1uTmFtZTogYXR0cmlidXRlTmFtZS50b1N0cmluZygpLCBhdHRyaWJ1dGVOYW1lIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZE9wdGlvbikpIHJldHVybiB7IGNvbHVtbk5hbWU6IGF0dHJpYnV0ZU5hbWUudG9TdHJpbmcoKSwgYXR0cmlidXRlTmFtZSwgZmllbGRzOiBmaWVsZE9wdGlvbiB9XG5cbiAgICByZXR1cm4geyBhdHRyaWJ1dGVOYW1lLCBjb2x1bW5OYW1lOiBhdHRyaWJ1dGVOYW1lLnRvU3RyaW5nKCksIC4uLmZpZWxkT3B0aW9uIH1cbiAgfVxuXG4gIHN0YXRpYyBDaGVja0lzQ29sdW1uT3B0aW9uID0gPE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1vZGVsPiwgUGFyZW50TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+KFxuICAgIGZpZWxkVmFsdWU6IENvbHVtbk9wdGlvbnM8TW9kZWwsIFBhcmVudE1vZGVsPixcbiAgKTogZmllbGRWYWx1ZSBpcyBDb2x1bW5PcHRpb25zPE1vZGVsLCBQYXJlbnRNb2RlbD4gPT4gISFmaWVsZFZhbHVlPy5jb2x1bW5OYW1lXG5cbiAgc3RhdGljIEZpbmRDb2x1bW5PcHRpb25Gcm9tTGlzdCA9IDxcbiAgICBNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNb2RlbD4sXG4gICAgUGFyZW50TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8UGFyZW50TW9kZWw+LFxuICA+KFxuICAgIGNvbHVtbk5hbWU6IHN0cmluZyxcbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8UGFyZW50TW9kZWw+LFxuICApOiBDb2x1bW5PcHRpb25zPE1vZGVsLCBQYXJlbnRNb2RlbD4gJiB7IGF0dHJpYnV0ZU5hbWU6IE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+IH0gPT4ge1xuICAgIGlmIChmaWVsZHMuaW5jbHVkZXMoY29sdW1uTmFtZSBhcyBhbnkpKVxuICAgICAgcmV0dXJuIHsgY29sdW1uTmFtZSwgYXR0cmlidXRlTmFtZTogY29sdW1uTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPiB9XG5cbiAgICBjb25zdCBmaWVsZCA9XG4gICAgICBmaWVsZHMuZmluZChcbiAgICAgICAgKGNvbHVtbk9wdGlvbikgPT5cbiAgICAgICAgICBpc09iamVjdChjb2x1bW5PcHRpb24pICYmXG4gICAgICAgICAgT2JqZWN0LnZhbHVlcyhjb2x1bW5PcHRpb24pLmZpbmQoXG4gICAgICAgICAgICAob3B0aW9uKSA9PiBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuQ2hlY2tJc0NvbHVtbk9wdGlvbihvcHRpb24pICYmIG9wdGlvbi5jb2x1bW5OYW1lID09PSBjb2x1bW5OYW1lLFxuICAgICAgICAgICk/LmNvbHVtbk5hbWUgPT09IGNvbHVtbk5hbWUsXG4gICAgICApIHx8IHt9XG4gICAgY29uc3QgYXR0cmlidXRlTmFtZSA9IE9iamVjdC5rZXlzKGZpZWxkKS5maW5kKFxuICAgICAgKGZpZWxkT3B0aW9uRnJvbUxpc3QpID0+XG4gICAgICAgIEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5DaGVja0lzQ29sdW1uT3B0aW9uKGZpZWxkW2ZpZWxkT3B0aW9uRnJvbUxpc3RdKSB8fFxuICAgICAgICBBcnJheS5pc0FycmF5KGZpZWxkW2ZpZWxkT3B0aW9uRnJvbUxpc3RdKSxcbiAgICApXG4gICAgY29uc3QgZmllbGRPcHRpb24gPSBmaWVsZD8uW2F0dHJpYnV0ZU5hbWVdXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZE9wdGlvbikpXG4gICAgICByZXR1cm4geyBhdHRyaWJ1dGVOYW1lOiBhdHRyaWJ1dGVOYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+LCBmaWVsZHM6IGZpZWxkT3B0aW9uIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGVOYW1lOiAoYXR0cmlidXRlTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPikgfHwgY29sdW1uTmFtZSxcbiAgICAgIGNvbHVtbk5hbWUsXG4gICAgICAuLi5maWVsZE9wdGlvbixcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import { Where, } from '../../../../domain';
|
|
2
|
-
import { isNil, isObject } from '../../../../utils';
|
|
3
|
-
import { HasuraGraphQLColumnType, HasuraGraphQLWhere } from '../../enums';
|
|
4
|
-
import { AttributeOptionHelper } from './attribute-option.helper';
|
|
5
|
-
import { FilterOptionHelper } from './filter-option.helper';
|
|
6
|
-
export class BindFilterQueryHelper {
|
|
7
|
-
}
|
|
8
|
-
BindFilterQueryHelper.MakeGraphQLWhere = (filter, fields) => Object.keys(filter).reduce((variables, fieldName) => {
|
|
9
|
-
const columnOption = AttributeOptionHelper.FindByAttribute(fieldName, fields);
|
|
10
|
-
if (!columnOption.bindFindFilter)
|
|
11
|
-
return Object.assign(Object.assign({}, variables), {
|
|
12
|
-
[columnOption.columnName]: BindFilterQueryHelper.BuildWhereSentence(fieldName, filter[fieldName], fields),
|
|
13
|
-
});
|
|
14
|
-
const builtFilter = columnOption.bindFindFilter(filter[fieldName]);
|
|
15
|
-
return Object.assign(Object.assign({}, variables), Object.keys(builtFilter).reduce((variablesList, columnName) => (Object.assign(Object.assign({}, variablesList), { [columnName]: BindFilterQueryHelper.BuildWhereSentence(fieldName, builtFilter[columnName], fields) })), {}));
|
|
16
|
-
}, {});
|
|
17
|
-
BindFilterQueryHelper.BuildWhereSentence = (field, options, fields) => {
|
|
18
|
-
const fieldSentenceOptions = AttributeOptionHelper.FindByAttribute(field, fields);
|
|
19
|
-
const isNestedField = !Array.isArray(options) &&
|
|
20
|
-
isObject(options) &&
|
|
21
|
-
isNil(options === null || options === void 0 ? void 0 : options.operator) &&
|
|
22
|
-
isNil(options === null || options === void 0 ? void 0 : options.value) &&
|
|
23
|
-
isNil(fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.to);
|
|
24
|
-
if (isNestedField)
|
|
25
|
-
return Object.keys(options).reduce((variables, key) => {
|
|
26
|
-
const fieldOptions = AttributeOptionHelper.FindByAttribute(key, (fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.fields) || fields);
|
|
27
|
-
const columnName = fieldOptions.columnName;
|
|
28
|
-
const columnFields = fieldOptions.fields;
|
|
29
|
-
return Object.assign(Object.assign({}, variables), { [columnName]: BindFilterQueryHelper.BuildWhereSentence(key, options[key], columnFields ||
|
|
30
|
-
}, {});
|
|
31
|
-
if (!Array.isArray(options) && !isNil(fieldSentenceOptions.fields))
|
|
32
|
-
return {
|
|
33
|
-
[fieldSentenceOptions.fields[0]]: BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions),
|
|
34
|
-
};
|
|
35
|
-
if (!Array.isArray(options) && isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
|
|
36
|
-
options = Object.values(options)[0];
|
|
37
|
-
return Array.isArray(options)
|
|
38
|
-
? options.reduce((whereSentence, option) => (Object.assign(Object.assign({}, whereSentence), BindFilterQueryHelper.BuildOperatorSentence(option, fieldSentenceOptions))), {})
|
|
39
|
-
: BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions);
|
|
40
|
-
};
|
|
41
|
-
BindFilterQueryHelper.BuildOperatorSentence = (options, fieldOption) => ({
|
|
42
|
-
[BindFilterQueryHelper.GetHasuraOperator(options, fieldOption)]: FilterOptionHelper.GetValueFromFilter(options, fieldOption),
|
|
43
|
-
});
|
|
44
|
-
BindFilterQueryHelper.GetHasuraOperator = (options, fieldOption) => {
|
|
45
|
-
if (!FilterOptionHelper.CheckIfIsFilterOption(options))
|
|
46
|
-
return HasuraGraphQLWhere.EQUALS;
|
|
47
|
-
if (fieldOption.type === HasuraGraphQLColumnType.Jsonb)
|
|
48
|
-
return BindFilterQueryHelper.GetHasuraJsonbOperator(options);
|
|
49
|
-
return HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find((graphQLOperator) => graphQLOperator === Object.keys(Where).find((operator) => Where[operator] === (options === null || options === void 0 ? void 0 : options.operator)))];
|
|
50
|
-
};
|
|
51
|
-
BindFilterQueryHelper.GetHasuraJsonbOperator = (options) => {
|
|
52
|
-
if (options.operator === Where.IN)
|
|
53
|
-
return '_contains';
|
|
54
|
-
if (options.operator === Where.LIKE)
|
|
55
|
-
return '_has_keys_any';
|
|
56
|
-
return HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find((graphQLOperator) => graphQLOperator === Object.keys(Where).find((operator) => Where[operator] === (options === null || options === void 0 ? void 0 : options.operator)))];
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL2hlbHBlcnMvYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxLQUFLLEdBQ04sTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUd6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUUzRCxNQUFNLE9BQU8scUJBQXFCOztBQUN6QixzQ0FBZ0IsR0FBRyxDQUN4QixNQUFxQyxFQUNyQyxNQUFrQyxFQUNqQixFQUFFLENBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBMEIsRUFBRSxTQUFpQixFQUFFLEVBQUU7SUFDM0UsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsZUFBZSxDQUN4RCxTQUF5RCxFQUN6RCxNQUFNLENBQ1AsQ0FBQTtJQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYztRQUM5Qix1Q0FDSyxTQUFTLEdBQ1Q7WUFDRCxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FDakUsU0FBeUQsRUFDekQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUNqQixNQUFNLENBQ1A7U0FDRixFQUNGO0lBRUgsTUFBTSxXQUFXLEdBR2IsWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMs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QUE7SUFFakYsT0FBTyxrQkFBa0IsQ0FDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDbEMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUNsQixlQUFlLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBSyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxDQUFBLENBQUMsQ0FDbkcsQ0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBNb2RlbEJhc2VTdHJ1Y3R1cmUsXHJcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lcyxcclxuICBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsXHJcbiAgUmVwb3NpdG9yeUZpbmRGaWVsdGVycyxcclxuICBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9ucyxcclxuICBXaGVyZSxcclxufSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXHJcbmltcG9ydCB7IGlzTmlsLCBpc09iamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZSwgSGFzdXJhR3JhcGhRTFdoZXJlIH0gZnJvbSAnLi4vLi4vZW51bXMnXHJcbmltcG9ydCB7IENvbHVtbk9wdGlvbnMsIEhhc3VyYUdyYXBoUUxGaWVsZHMsIFZhcmlhYmxlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xyXG5cclxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlcidcclxuaW1wb3J0IHsgRmlsdGVyT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9maWx0ZXItb3B0aW9uLmhlbHBlcidcclxuXHJcbmV4cG9ydCBjbGFzcyBCaW5kRmlsdGVyUXVlcnlIZWxwZXIge1xyXG4gIHN0YXRpYyBNYWtlR3JhcGhRTFdoZXJlID0gPE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1CYXNlPj4oXHJcbiAgICBmaWx0ZXI6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8TUJhc2U+LFxyXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcclxuICApOiBWYXJpYWJsZU9wdGlvbnMgPT5cclxuICAgIE9iamVjdC5rZXlzKGZpbHRlcikucmVkdWNlKCh2YXJpYWJsZXM6IFZhcmlhYmxlT3B0aW9ucywgZmllbGROYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShcclxuICAgICAgICBmaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXHJcbiAgICAgICAgZmllbGRzLFxyXG4gICAgICApXHJcblxyXG4gICAgICBpZiAoIWNvbHVtbk9wdGlvbi5iaW5kRmluZEZpbHRlcilcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4udmFyaWFibGVzLFxyXG4gICAgICAgICAgLi4ue1xyXG4gICAgICAgICAgICBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRXaGVyZVNlbnRlbmNlKFxyXG4gICAgICAgICAgICAgIGZpZWxkTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcclxuICAgICAgICAgICAgICBmaWx0ZXJbZmllbGROYW1lXSxcclxuICAgICAgICAgICAgICBmaWVsZHMsXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGJ1aWx0RmlsdGVyOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxcclxuICAgICAgICBNQmFzZSxcclxuICAgICAgICBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+XHJcbiAgICAgID4gPSBjb2x1bW5PcHRpb24uYmluZEZpbmRGaWx0ZXIoZmlsdGVyW2ZpZWxkTmFtZV0pXHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLnZhcmlhYmxlcyxcclxuICAgICAgICAuLi5PYmplY3Qua2V5cyhidWlsdEZpbHRlcikucmVkdWNlKFxyXG4gICAgICAgICAgKHZhcmlhYmxlc0xpc3Q6IFZhcmlhYmxlT3B0aW9ucywgY29sdW1uTmFtZTogc3RyaW5nKSA9PiAoe1xyXG4gICAgICAgICAgICAuLi52YXJpYWJsZXNMaXN0LFxyXG4gICAgICAgICAgICBbY29sdW1uTmFtZV06IEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZFdoZXJlU2VudGVuY2UoXHJcbiAgICAgICAgICAgICAgZmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxyXG4gICAgICAgICAgICAgIGJ1aWx0RmlsdGVyW2NvbHVtbk5hbWVdLFxyXG4gICAgICAgICAgICAgIGZpZWxkcyxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAge30sXHJcbiAgICAgICAgKSxcclxuICAgICAgfVxyXG4gICAgfSwge30pXHJcblxyXG4gIHN0YXRpYyBCdWlsZFdoZXJlU2VudGVuY2UgPSA8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2U+PihcclxuICAgIGZpZWxkOiBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcclxuICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+PixcclxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXHJcbiAgKTogVmFyaWFibGVPcHRpb25zID0+IHtcclxuICAgIGNvbnN0IGZpZWxkU2VudGVuY2VPcHRpb25zID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZTxNQmFzZT4oZmllbGQsIGZpZWxkcylcclxuICAgIGNvbnN0IGlzTmVzdGVkRmllbGQgPVxyXG4gICAgICAhQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJlxyXG4gICAgICBpc09iamVjdChvcHRpb25zKSAmJlxyXG4gICAgICBpc05pbChvcHRpb25zPy5vcGVyYXRvcikgJiZcclxuICAgICAgaXNOaWwob3B0aW9ucz8udmFsdWUpICYmXHJcbiAgICAgIGlzTmlsKGZpZWxkU2VudGVuY2VPcHRpb25zPy50bylcclxuXHJcbiAgICBpZiAoaXNOZXN0ZWRGaWVsZClcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLnJlZHVjZSgodmFyaWFibGVzLCBrZXkpID0+IHtcclxuICAgICAgICBjb25zdCBmaWVsZE9wdGlvbnMgPSBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlPE1CYXNlPihcclxuICAgICAgICAgIGtleSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcclxuICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zPy5maWVsZHMgfHwgKGZpZWxkcyBhcyBhbnkpLFxyXG4gICAgICAgIClcclxuICAgICAgICBjb25zdCBjb2x1bW5OYW1lID0gZmllbGRPcHRpb25zLmNvbHVtbk5hbWVcclxuICAgICAgICBjb25zdCBjb2x1bW5GaWVsZHMgPSBmaWVsZE9wdGlvbnMuZmllbGRzXHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi52YXJpYWJsZXMsXHJcbiAgICAgICAgICBbY29sdW1uTmFtZV06IEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZFdoZXJlU2VudGVuY2U8TUJhc2U+KFxyXG4gICAgICAgICAgICBrZXkgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXHJcbiAgICAgICAgICAgIG9wdGlvbnNba2V5XSxcclxuICAgICAgICAgICAgY29sdW1uRmllbGRzIHx8IChbXSBhcyBhbnkpLFxyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9XHJcbiAgICAgIH0sIHt9KVxyXG5cclxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJiAhaXNOaWwoZmllbGRTZW50ZW5jZU9wdGlvbnMuZmllbGRzKSlcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBbZmllbGRTZW50ZW5jZU9wdGlvbnMuZmllbGRzWzBdIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+XTpcclxuICAgICAgICAgIEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZE9wZXJhdG9yU2VudGVuY2UoXHJcbiAgICAgICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIENvbHVtbk9wdGlvbnM8TUJhc2VbTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLCBNQmFzZT4sXHJcbiAgICAgICAgICApLFxyXG4gICAgICB9XHJcblxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG9wdGlvbnMpICYmIGlzT2JqZWN0KG9wdGlvbnMpICYmICFGaWx0ZXJPcHRpb25IZWxwZXIuQ2hlY2tJZklzRmlsdGVyT3B0aW9uKG9wdGlvbnMpKVxyXG4gICAgICBvcHRpb25zID0gT2JqZWN0LnZhbHVlcyhvcHRpb25zKVswXSBhcyBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgYW55PlxyXG5cclxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KG9wdGlvbnMpXHJcbiAgICAgID8gb3B0aW9ucy5yZWR1Y2UoXHJcbiAgICAgICAgICAod2hlcmVTZW50ZW5jZSwgb3B0aW9uKSA9PiAoe1xyXG4gICAgICAgICAgICAuLi53aGVyZVNlbnRlbmNlLFxyXG4gICAgICAgICAgICAuLi5CaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRPcGVyYXRvclNlbnRlbmNlKFxyXG4gICAgICAgICAgICAgIG9wdGlvbixcclxuICAgICAgICAgICAgICBmaWVsZFNlbnRlbmNlT3B0aW9ucyBhcyBDb2x1bW5PcHRpb25zPE1CYXNlW05vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+XSwgTUJhc2U+LFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICB7fSxcclxuICAgICAgICApXHJcbiAgICAgIDogQmluZEZpbHRlclF1ZXJ5SGVscGVyLkJ1aWxkT3BlcmF0b3JTZW50ZW5jZShcclxuICAgICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgICBmaWVsZFNlbnRlbmNlT3B0aW9ucyBhcyBDb2x1bW5PcHRpb25zPE1CYXNlW05vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+XSwgTUJhc2U+LFxyXG4gICAgICAgIClcclxuICB9XHJcblxyXG4gIHN0YXRpYyBCdWlsZE9wZXJhdG9yU2VudGVuY2UgPSA8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2U+PihcclxuICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBhbnk+LFxyXG4gICAgZmllbGRPcHRpb246IENvbHVtbk9wdGlvbnM8YW55LCBhbnk+LFxyXG4gICk6IFZhcmlhYmxlT3B0aW9ucyA9PiAoe1xyXG4gICAgW0JpbmRGaWx0ZXJRdWVyeUhlbHBlci5HZXRIYXN1cmFPcGVyYXRvcihvcHRpb25zLCBmaWVsZE9wdGlvbildOiBGaWx0ZXJPcHRpb25IZWxwZXIuR2V0VmFsdWVGcm9tRmlsdGVyKFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBmaWVsZE9wdGlvbixcclxuICAgICksXHJcbiAgfSlcclxuXHJcbiAgc3RhdGljIEdldEhhc3VyYU9wZXJhdG9yID0gPE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1CYXNlPj4oXHJcbiAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPj4sXHJcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXHJcbiAgKTogSGFzdXJhR3JhcGhRTFdoZXJlID0+IHtcclxuICAgIGlmICghRmlsdGVyT3B0aW9uSGVscGVyLkNoZWNrSWZJc0ZpbHRlck9wdGlvbihvcHRpb25zKSkgcmV0dXJuIEhhc3VyYUdyYXBoUUxXaGVyZS5FUVVBTFNcclxuICAgIGlmIChmaWVsZE9wdGlvbi50eXBlID09PSBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZS5Kc29uYikgcmV0dXJuIEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5HZXRIYXN1cmFKc29uYk9wZXJhdG9yKG9wdGlvbnMpXHJcblxyXG4gICAgcmV0dXJuIEhhc3VyYUdyYXBoUUxXaGVyZVtcclxuICAgICAgT2JqZWN0LmtleXMoSGFzdXJhR3JhcGhRTFdoZXJlKS5maW5kKFxyXG4gICAgICAgIChncmFwaFFMT3BlcmF0b3IpID0+XHJcbiAgICAgICAgICBncmFwaFFMT3BlcmF0b3IgPT09IE9iamVjdC5rZXlzKFdoZXJlKS5maW5kKChvcGVyYXRvcikgPT4gV2hlcmVbb3BlcmF0b3JdID09PSBvcHRpb25zPy5vcGVyYXRvciksXHJcbiAgICAgIClcclxuICAgIF1cclxuICB9XHJcblxyXG4gIHN0YXRpYyBHZXRIYXN1cmFKc29uYk9wZXJhdG9yID0gPE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1CYXNlPj4oXHJcbiAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPj4sXHJcbiAgKTogSGFzdXJhR3JhcGhRTFdoZXJlID0+IHtcclxuICAgIGlmIChvcHRpb25zLm9wZXJhdG9yID09PSBXaGVyZS5JTikgcmV0dXJuICdfY29udGFpbnMnIGFzIEhhc3VyYUdyYXBoUUxXaGVyZVxyXG4gICAgaWYgKG9wdGlvbnMub3BlcmF0b3IgPT09IFdoZXJlLkxJS0UpIHJldHVybiAnX2hhc19rZXlzX2FueScgYXMgSGFzdXJhR3JhcGhRTFdoZXJlXHJcblxyXG4gICAgcmV0dXJuIEhhc3VyYUdyYXBoUUxXaGVyZVtcclxuICAgICAgT2JqZWN0LmtleXMoSGFzdXJhR3JhcGhRTFdoZXJlKS5maW5kKFxyXG4gICAgICAgIChncmFwaFFMT3BlcmF0b3IpID0+XHJcbiAgICAgICAgICBncmFwaFFMT3BlcmF0b3IgPT09IE9iamVjdC5rZXlzKFdoZXJlKS5maW5kKChvcGVyYXRvcikgPT4gV2hlcmVbb3BlcmF0b3JdID09PSBvcHRpb25zPy5vcGVyYXRvciksXHJcbiAgICAgIClcclxuICAgIF1cclxuICB9XHJcbn1cclxuIl19
|
|
1
|
+
import { Where, } from '../../../../domain';
|
|
2
|
+
import { isNil, isObject } from '../../../../utils';
|
|
3
|
+
import { HasuraGraphQLColumnType, HasuraGraphQLWhere } from '../../enums';
|
|
4
|
+
import { AttributeOptionHelper } from './attribute-option.helper';
|
|
5
|
+
import { FilterOptionHelper } from './filter-option.helper';
|
|
6
|
+
export class BindFilterQueryHelper {
|
|
7
|
+
}
|
|
8
|
+
BindFilterQueryHelper.MakeGraphQLWhere = (filter, fields) => Object.keys(filter).reduce((variables, fieldName) => {
|
|
9
|
+
const columnOption = AttributeOptionHelper.FindByAttribute(fieldName, fields);
|
|
10
|
+
if (!columnOption.bindFindFilter)
|
|
11
|
+
return Object.assign(Object.assign({}, variables), {
|
|
12
|
+
[columnOption.columnName]: BindFilterQueryHelper.BuildWhereSentence(fieldName, filter[fieldName], fields),
|
|
13
|
+
});
|
|
14
|
+
const builtFilter = columnOption.bindFindFilter(filter[fieldName]);
|
|
15
|
+
return Object.assign(Object.assign({}, variables), Object.keys(builtFilter).reduce((variablesList, columnName) => (Object.assign(Object.assign({}, variablesList), { [columnName]: BindFilterQueryHelper.BuildWhereSentence(fieldName, builtFilter[columnName], fields) })), {}));
|
|
16
|
+
}, {});
|
|
17
|
+
BindFilterQueryHelper.BuildWhereSentence = (field, options, fields) => {
|
|
18
|
+
const fieldSentenceOptions = AttributeOptionHelper.FindByAttribute(field, fields);
|
|
19
|
+
const isNestedField = !Array.isArray(options) &&
|
|
20
|
+
isObject(options) &&
|
|
21
|
+
isNil(options === null || options === void 0 ? void 0 : options.operator) &&
|
|
22
|
+
isNil(options === null || options === void 0 ? void 0 : options.value) &&
|
|
23
|
+
isNil(fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.to);
|
|
24
|
+
if (isNestedField)
|
|
25
|
+
return Object.keys(options).reduce((variables, key) => {
|
|
26
|
+
const fieldOptions = AttributeOptionHelper.FindByAttribute(key, (fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.fields) || fields);
|
|
27
|
+
const columnName = fieldOptions.columnName;
|
|
28
|
+
const columnFields = fieldOptions.fields;
|
|
29
|
+
return Object.assign(Object.assign({}, variables), { [columnName]: BindFilterQueryHelper.BuildWhereSentence(key, options[key], (fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.fields) || columnFields || fields) });
|
|
30
|
+
}, {});
|
|
31
|
+
if (!Array.isArray(options) && !isNil(fieldSentenceOptions.fields))
|
|
32
|
+
return {
|
|
33
|
+
[fieldSentenceOptions.fields[0]]: BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions),
|
|
34
|
+
};
|
|
35
|
+
if (!Array.isArray(options) && isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
|
|
36
|
+
options = Object.values(options)[0];
|
|
37
|
+
return Array.isArray(options)
|
|
38
|
+
? options.reduce((whereSentence, option) => (Object.assign(Object.assign({}, whereSentence), BindFilterQueryHelper.BuildOperatorSentence(option, fieldSentenceOptions))), {})
|
|
39
|
+
: BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions);
|
|
40
|
+
};
|
|
41
|
+
BindFilterQueryHelper.BuildOperatorSentence = (options, fieldOption) => ({
|
|
42
|
+
[BindFilterQueryHelper.GetHasuraOperator(options, fieldOption)]: FilterOptionHelper.GetValueFromFilter(options, fieldOption),
|
|
43
|
+
});
|
|
44
|
+
BindFilterQueryHelper.GetHasuraOperator = (options, fieldOption) => {
|
|
45
|
+
if (!FilterOptionHelper.CheckIfIsFilterOption(options))
|
|
46
|
+
return HasuraGraphQLWhere.EQUALS;
|
|
47
|
+
if (fieldOption.type === HasuraGraphQLColumnType.Jsonb)
|
|
48
|
+
return BindFilterQueryHelper.GetHasuraJsonbOperator(options);
|
|
49
|
+
return HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find((graphQLOperator) => graphQLOperator === Object.keys(Where).find((operator) => Where[operator] === (options === null || options === void 0 ? void 0 : options.operator)))];
|
|
50
|
+
};
|
|
51
|
+
BindFilterQueryHelper.GetHasuraJsonbOperator = (options) => {
|
|
52
|
+
if (options.operator === Where.IN)
|
|
53
|
+
return '_contains';
|
|
54
|
+
if (options.operator === Where.LIKE)
|
|
55
|
+
return '_has_keys_any';
|
|
56
|
+
return HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find((graphQLOperator) => graphQLOperator === Object.keys(Where).find((operator) => Where[operator] === (options === null || options === void 0 ? void 0 : options.operator)))];
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL2hlbHBlcnMvYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxLQUFLLEdBQ04sTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUd6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUUzRCxNQUFNLE9BQU8scUJBQXFCOztBQUN6QixzQ0FBZ0IsR0FBRyxDQUN4QixNQUFxQyxFQUNyQyxNQUFrQyxFQUNqQixFQUFFLENBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBMEIsRUFBRSxTQUFpQixFQUFFLEVBQUU7SUFDM0UsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsZUFBZSxDQUN4RCxTQUF5RCxFQUN6RCxNQUFNLENBQ1AsQ0FBQTtJQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYztRQUM5Qix1Q0FDSyxTQUFTLEdBQ1Q7WUFDRCxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FDakUsU0FBeUQsRUFDekQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUNqQixNQUFNLENBQ1A7U0FDRixFQUNGO0lBRUgsTUFBTSxXQUFXLEdBR2IsWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMs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LE9BQU8sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLElBQUk7UUFBRSxPQUFPLGVBQXFDLENBQUE7SUFFakYsT0FBTyxrQkFBa0IsQ0FDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDbEMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUNsQixlQUFlLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBSyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxDQUFBLENBQUMsQ0FDbkcsQ0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLFxuICBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zLFxuICBXaGVyZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgaXNOaWwsIGlzT2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZSwgSGFzdXJhR3JhcGhRTFdoZXJlIH0gZnJvbSAnLi4vLi4vZW51bXMnXG5pbXBvcnQgeyBDb2x1bW5PcHRpb25zLCBIYXN1cmFHcmFwaFFMRmllbGRzLCBWYXJpYWJsZU9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlcidcbmltcG9ydCB7IEZpbHRlck9wdGlvbkhlbHBlciB9IGZyb20gJy4vZmlsdGVyLW9wdGlvbi5oZWxwZXInXG5cbmV4cG9ydCBjbGFzcyBCaW5kRmlsdGVyUXVlcnlIZWxwZXIge1xuICBzdGF0aWMgTWFrZUdyYXBoUUxXaGVyZSA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIGZpbHRlcjogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxNQmFzZT4sXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgKTogVmFyaWFibGVPcHRpb25zID0+XG4gICAgT2JqZWN0LmtleXMoZmlsdGVyKS5yZWR1Y2UoKHZhcmlhYmxlczogVmFyaWFibGVPcHRpb25zLCBmaWVsZE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShcbiAgICAgICAgZmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxuICAgICAgICBmaWVsZHMsXG4gICAgICApXG5cbiAgICAgIGlmICghY29sdW1uT3B0aW9uLmJpbmRGaW5kRmlsdGVyKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnZhcmlhYmxlcyxcbiAgICAgICAgICAuLi57XG4gICAgICAgICAgICBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRXaGVyZVNlbnRlbmNlKFxuICAgICAgICAgICAgICBmaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gICAgICAgICAgICAgIGZpbHRlcltmaWVsZE5hbWVdLFxuICAgICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cblxuICAgICAgY29uc3QgYnVpbHRGaWx0ZXI6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPFxuICAgICAgICBNQmFzZSxcbiAgICAgICAgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPlxuICAgICAgPiA9IGNvbHVtbk9wdGlvbi5iaW5kRmluZEZpbHRlcihmaWx0ZXJbZmllbGROYW1lXSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4udmFyaWFibGVzLFxuICAgICAgICAuLi5PYmplY3Qua2V5cyhidWlsdEZpbHRlcikucmVkdWNlKFxuICAgICAgICAgICh2YXJpYWJsZXNMaXN0OiBWYXJpYWJsZU9wdGlvbnMsIGNvbHVtbk5hbWU6IHN0cmluZykgPT4gKHtcbiAgICAgICAgICAgIC4uLnZhcmlhYmxlc0xpc3QsXG4gICAgICAgICAgICBbY29sdW1uTmFtZV06IEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZFdoZXJlU2VudGVuY2UoXG4gICAgICAgICAgICAgIGZpZWxkTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICAgICAgICAgICAgYnVpbHRGaWx0ZXJbY29sdW1uTmFtZV0sXG4gICAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSksXG4gICAgICAgICAge30sXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSwge30pXG5cbiAgc3RhdGljIEJ1aWxkV2hlcmVTZW50ZW5jZSA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIGZpZWxkOiBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPj4sXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgKTogVmFyaWFibGVPcHRpb25zID0+IHtcbiAgICBjb25zdCBmaWVsZFNlbnRlbmNlT3B0aW9ucyA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGU8TUJhc2U+KGZpZWxkLCBmaWVsZHMpXG4gICAgY29uc3QgaXNOZXN0ZWRGaWVsZCA9XG4gICAgICAhQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJlxuICAgICAgaXNPYmplY3Qob3B0aW9ucykgJiZcbiAgICAgIGlzTmlsKG9wdGlvbnM/Lm9wZXJhdG9yKSAmJlxuICAgICAgaXNOaWwob3B0aW9ucz8udmFsdWUpICYmXG4gICAgICBpc05pbChmaWVsZFNlbnRlbmNlT3B0aW9ucz8udG8pXG5cbiAgICBpZiAoaXNOZXN0ZWRGaWVsZClcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvcHRpb25zKS5yZWR1Y2UoKHZhcmlhYmxlcywga2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkT3B0aW9ucyA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGU8TUJhc2U+KFxuICAgICAgICAgIGtleSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICAgICAgICBmaWVsZFNlbnRlbmNlT3B0aW9ucz8uZmllbGRzIHx8IChmaWVsZHMgYXMgYW55KSxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBjb2x1bW5OYW1lID0gZmllbGRPcHRpb25zLmNvbHVtbk5hbWVcbiAgICAgICAgY29uc3QgY29sdW1uRmllbGRzID0gZmllbGRPcHRpb25zLmZpZWxkc1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4udmFyaWFibGVzLFxuICAgICAgICAgIFtjb2x1bW5OYW1lXTogQmluZEZpbHRlclF1ZXJ5SGVscGVyLkJ1aWxkV2hlcmVTZW50ZW5jZTxNQmFzZT4oXG4gICAgICAgICAgICBrZXkgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gICAgICAgICAgICBvcHRpb25zW2tleV0sXG4gICAgICAgICAgICBmaWVsZFNlbnRlbmNlT3B0aW9ucz8uZmllbGRzIHx8IGNvbHVtbkZpZWxkcyB8fCAoZmllbGRzIGFzIGFueSksXG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgfSwge30pXG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkob3B0aW9ucykgJiYgIWlzTmlsKGZpZWxkU2VudGVuY2VPcHRpb25zLmZpZWxkcykpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBbZmllbGRTZW50ZW5jZU9wdGlvbnMuZmllbGRzWzBdIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+XTpcbiAgICAgICAgICBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRPcGVyYXRvclNlbnRlbmNlKFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIENvbHVtbk9wdGlvbnM8TUJhc2VbTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLCBNQmFzZT4sXG4gICAgICAgICAgKSxcbiAgICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJiBpc09iamVjdChvcHRpb25zKSAmJiAhRmlsdGVyT3B0aW9uSGVscGVyLkNoZWNrSWZJc0ZpbHRlck9wdGlvbihvcHRpb25zKSlcbiAgICAgIG9wdGlvbnMgPSBPYmplY3QudmFsdWVzKG9wdGlvbnMpWzBdIGFzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBhbnk+XG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShvcHRpb25zKVxuICAgICAgPyBvcHRpb25zLnJlZHVjZShcbiAgICAgICAgICAod2hlcmVTZW50ZW5jZSwgb3B0aW9uKSA9PiAoe1xuICAgICAgICAgICAgLi4ud2hlcmVTZW50ZW5jZSxcbiAgICAgICAgICAgIC4uLkJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZE9wZXJhdG9yU2VudGVuY2UoXG4gICAgICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICAgICAgZmllbGRTZW50ZW5jZU9wdGlvbnMgYXMgQ29sdW1uT3B0aW9uczxNQmFzZVtOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPl0sIE1CYXNlPixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSksXG4gICAgICAgICAge30sXG4gICAgICAgIClcbiAgICAgIDogQmluZEZpbHRlclF1ZXJ5SGVscGVyLkJ1aWxkT3BlcmF0b3JTZW50ZW5jZShcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIENvbHVtbk9wdGlvbnM8TUJhc2VbTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLCBNQmFzZT4sXG4gICAgICAgIClcbiAgfVxuXG4gIHN0YXRpYyBCdWlsZE9wZXJhdG9yU2VudGVuY2UgPSA8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2U+PihcbiAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgYW55PixcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICk6IFZhcmlhYmxlT3B0aW9ucyA9PiAoe1xuICAgIFtCaW5kRmlsdGVyUXVlcnlIZWxwZXIuR2V0SGFzdXJhT3BlcmF0b3Iob3B0aW9ucywgZmllbGRPcHRpb24pXTogRmlsdGVyT3B0aW9uSGVscGVyLkdldFZhbHVlRnJvbUZpbHRlcihcbiAgICAgIG9wdGlvbnMsXG4gICAgICBmaWVsZE9wdGlvbixcbiAgICApLFxuICB9KVxuXG4gIHN0YXRpYyBHZXRIYXN1cmFPcGVyYXRvciA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+PixcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICk6IEhhc3VyYUdyYXBoUUxXaGVyZSA9PiB7XG4gICAgaWYgKCFGaWx0ZXJPcHRpb25IZWxwZXIuQ2hlY2tJZklzRmlsdGVyT3B0aW9uKG9wdGlvbnMpKSByZXR1cm4gSGFzdXJhR3JhcGhRTFdoZXJlLkVRVUFMU1xuICAgIGlmIChmaWVsZE9wdGlvbi50eXBlID09PSBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZS5Kc29uYikgcmV0dXJuIEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5HZXRIYXN1cmFKc29uYk9wZXJhdG9yKG9wdGlvbnMpXG5cbiAgICByZXR1cm4gSGFzdXJhR3JhcGhRTFdoZXJlW1xuICAgICAgT2JqZWN0LmtleXMoSGFzdXJhR3JhcGhRTFdoZXJlKS5maW5kKFxuICAgICAgICAoZ3JhcGhRTE9wZXJhdG9yKSA9PlxuICAgICAgICAgIGdyYXBoUUxPcGVyYXRvciA9PT0gT2JqZWN0LmtleXMoV2hlcmUpLmZpbmQoKG9wZXJhdG9yKSA9PiBXaGVyZVtvcGVyYXRvcl0gPT09IG9wdGlvbnM/Lm9wZXJhdG9yKSxcbiAgICAgIClcbiAgICBdXG4gIH1cblxuICBzdGF0aWMgR2V0SGFzdXJhSnNvbmJPcGVyYXRvciA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+PixcbiAgKTogSGFzdXJhR3JhcGhRTFdoZXJlID0+IHtcbiAgICBpZiAob3B0aW9ucy5vcGVyYXRvciA9PT0gV2hlcmUuSU4pIHJldHVybiAnX2NvbnRhaW5zJyBhcyBIYXN1cmFHcmFwaFFMV2hlcmVcbiAgICBpZiAob3B0aW9ucy5vcGVyYXRvciA9PT0gV2hlcmUuTElLRSkgcmV0dXJuICdfaGFzX2tleXNfYW55JyBhcyBIYXN1cmFHcmFwaFFMV2hlcmVcblxuICAgIHJldHVybiBIYXN1cmFHcmFwaFFMV2hlcmVbXG4gICAgICBPYmplY3Qua2V5cyhIYXN1cmFHcmFwaFFMV2hlcmUpLmZpbmQoXG4gICAgICAgIChncmFwaFFMT3BlcmF0b3IpID0+XG4gICAgICAgICAgZ3JhcGhRTE9wZXJhdG9yID09PSBPYmplY3Qua2V5cyhXaGVyZSkuZmluZCgob3BlcmF0b3IpID0+IFdoZXJlW29wZXJhdG9yXSA9PT0gb3B0aW9ucz8ub3BlcmF0b3IpLFxuICAgICAgKVxuICAgIF1cbiAgfVxufVxuIl19
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { Where } from '../../../../domain';
|
|
2
|
-
import { isNil } from '../../../../utils';
|
|
3
|
-
export class FilterOptionHelper {
|
|
4
|
-
}
|
|
5
|
-
FilterOptionHelper.CheckIfIsFilterOption = (filter) => !isNil(filter === null || filter === void 0 ? void 0 : filter.operator);
|
|
6
|
-
FilterOptionHelper.GetValueFromFilter = (filter, fieldOption) => {
|
|
7
|
-
if (!FilterOptionHelper.CheckIfIsFilterOption(filter))
|
|
8
|
-
return filter;
|
|
9
|
-
if (filter.operator === Where.ISNULL)
|
|
10
|
-
return true;
|
|
11
|
-
if (filter.operator === Where.ISNOTNULL)
|
|
12
|
-
return false;
|
|
13
|
-
const converter = fieldOption.to
|
|
14
|
-
? fieldOption.to
|
|
15
|
-
: (value) => filter.operator === Where.LIKE && !Array.isArray(filter.value) && value.indexOf('%') < 0
|
|
16
|
-
? `%${value}%`
|
|
17
|
-
: value;
|
|
18
|
-
return Array.isArray(filter.value) && !fieldOption.fields && [Where.IN, Where.NOTIN].includes(filter.operator)
|
|
19
|
-
? filter.value.map((fieldValue) => converter(fieldValue))
|
|
20
|
-
: converter(filter.value);
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Where } from '../../../../domain';
|
|
2
|
+
import { isNil } from '../../../../utils';
|
|
3
|
+
export class FilterOptionHelper {
|
|
4
|
+
}
|
|
5
|
+
FilterOptionHelper.CheckIfIsFilterOption = (filter) => !isNil(filter === null || filter === void 0 ? void 0 : filter.operator);
|
|
6
|
+
FilterOptionHelper.GetValueFromFilter = (filter, fieldOption) => {
|
|
7
|
+
if (!FilterOptionHelper.CheckIfIsFilterOption(filter))
|
|
8
|
+
return filter;
|
|
9
|
+
if (filter.operator === Where.ISNULL)
|
|
10
|
+
return true;
|
|
11
|
+
if (filter.operator === Where.ISNOTNULL)
|
|
12
|
+
return false;
|
|
13
|
+
const converter = fieldOption.to
|
|
14
|
+
? fieldOption.to
|
|
15
|
+
: (value) => filter.operator === Where.LIKE && !Array.isArray(filter.value) && value.indexOf('%') < 0
|
|
16
|
+
? `%${value}%`
|
|
17
|
+
: value;
|
|
18
|
+
return Array.isArray(filter.value) && !fieldOption.fields && [Where.IN, Where.NOTIN].includes(filter.operator)
|
|
19
|
+
? filter.value.map((fieldValue) => converter(fieldValue))
|
|
20
|
+
: converter(filter.value);
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW9wdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9maWx0ZXItb3B0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFELEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUd6QyxNQUFNLE9BQU8sa0JBQWtCOztBQUN0Qix3Q0FBcUIsR0FBRyxDQUM3QixNQUFXLEVBQzBDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFDLENBQUE7QUFFM0UscUNBQWtCLEdBQUcsQ0FDMUIsTUFBaUQsRUFDakQsV0FBb0MsRUFDL0IsRUFBRTtJQUNQLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQTtJQUNwRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQTtJQUNqRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFNBQVM7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUVyRCxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsRUFBRTtRQUM5QixDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDaEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDUixNQUFNLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDdEYsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHO1lBQ2QsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUVmLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDNUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBWSxDQUFDLENBQUE7QUFDcEMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxCYXNlU3RydWN0dXJlLCBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9ucywgV2hlcmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgQ29sdW1uT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5leHBvcnQgY2xhc3MgRmlsdGVyT3B0aW9uSGVscGVyIHtcbiAgc3RhdGljIENoZWNrSWZJc0ZpbHRlck9wdGlvbiA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4oXG4gICAgZmlsdGVyOiBhbnksXG4gICk6IGZpbHRlciBpcyBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNb2RlbCwgYW55PiA9PiAhaXNOaWwoZmlsdGVyPy5vcGVyYXRvcilcblxuICBzdGF0aWMgR2V0VmFsdWVGcm9tRmlsdGVyID0gPE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1vZGVsPj4oXG4gICAgZmlsdGVyOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNb2RlbCwgYW55PixcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICk6IGFueSA9PiB7XG4gICAgaWYgKCFGaWx0ZXJPcHRpb25IZWxwZXIuQ2hlY2tJZklzRmlsdGVyT3B0aW9uKGZpbHRlcikpIHJldHVybiBmaWx0ZXJcbiAgICBpZiAoZmlsdGVyLm9wZXJhdG9yID09PSBXaGVyZS5JU05VTEwpIHJldHVybiB0cnVlXG4gICAgaWYgKGZpbHRlci5vcGVyYXRvciA9PT0gV2hlcmUuSVNOT1ROVUxMKSByZXR1cm4gZmFsc2VcblxuICAgIGNvbnN0IGNvbnZlcnRlciA9IGZpZWxkT3B0aW9uLnRvXG4gICAgICA/IGZpZWxkT3B0aW9uLnRvXG4gICAgICA6ICh2YWx1ZSkgPT5cbiAgICAgICAgICBmaWx0ZXIub3BlcmF0b3IgPT09IFdoZXJlLkxJS0UgJiYgIUFycmF5LmlzQXJyYXkoZmlsdGVyLnZhbHVlKSAmJiB2YWx1ZS5pbmRleE9mKCclJykgPCAwXG4gICAgICAgICAgICA/IGAlJHt2YWx1ZX0lYFxuICAgICAgICAgICAgOiB2YWx1ZVxuXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZmlsdGVyLnZhbHVlKSAmJiAhZmllbGRPcHRpb24uZmllbGRzICYmIFtXaGVyZS5JTiwgV2hlcmUuTk9USU5dLmluY2x1ZGVzKGZpbHRlci5vcGVyYXRvcilcbiAgICAgID8gZmlsdGVyLnZhbHVlLm1hcCgoZmllbGRWYWx1ZSkgPT4gY29udmVydGVyKGZpZWxkVmFsdWUpKVxuICAgICAgOiBjb252ZXJ0ZXIoZmlsdGVyLnZhbHVlIGFzIGFueSlcbiAgfVxufVxuIl19
|
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
import { BaseModel, } from '../../../../domain';
|
|
2
|
-
import { isDate, isEmpty, isNil, isObject, isString, parseDateTime } from '../../../../utils';
|
|
3
|
-
import { AttributeOptionHelper } from './attribute-option.helper';
|
|
4
|
-
import { BindFilterQueryHelper } from './bind-filter-query.helper';
|
|
5
|
-
export class GraphQLFieldHelper {
|
|
6
|
-
}
|
|
7
|
-
GraphQLFieldHelper.CheckIsGraphQLParams = (params) => !isString(params) && Array.isArray(params) && params.length >= 0 && !!params[0].operation;
|
|
8
|
-
GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields = (fields) => {
|
|
9
|
-
return fields === null || fields === void 0 ? void 0 : fields.map((field) => {
|
|
10
|
-
if (isString(field))
|
|
11
|
-
return field.toString();
|
|
12
|
-
const fieldName = Object.keys(field).shift();
|
|
13
|
-
const fieldValue = field[fieldName];
|
|
14
|
-
if (Array.isArray(fieldValue))
|
|
15
|
-
return { [fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue) };
|
|
16
|
-
if (!AttributeOptionHelper.CheckIsColumnOption(fieldValue))
|
|
17
|
-
return;
|
|
18
|
-
const isNestedField = !!fieldValue.fields;
|
|
19
|
-
if (isNestedField)
|
|
20
|
-
return GraphQLFieldHelper.ConvertNestedFieldsToGraphQLFields(fieldName, fieldValue);
|
|
21
|
-
return fieldValue.columnName;
|
|
22
|
-
}).filter((field) => !!field);
|
|
23
|
-
};
|
|
24
|
-
GraphQLFieldHelper.ConvertFieldValueFrom = (data, fields) => Object.keys(data).reduce((result, columnName) => {
|
|
25
|
-
const { attributeName, fields: attributeFields, from, } = AttributeOptionHelper.FindColumnOptionFromList(columnName, fields);
|
|
26
|
-
if (!!attributeFields && Array.isArray(attributeFields)) {
|
|
27
|
-
if (Array.isArray(data[columnName]))
|
|
28
|
-
return Object.assign(Object.assign({}, result), { [attributeName]: from
|
|
29
|
-
? from(data[columnName], data)
|
|
30
|
-
: data[columnName].map((value) => GraphQLFieldHelper.ConvertFieldValueFrom(value, attributeFields)) });
|
|
31
|
-
if (isObject(data[columnName]))
|
|
32
|
-
return Object.assign(Object.assign({}, result), { [attributeName]: !!from
|
|
33
|
-
? from(data[columnName])
|
|
34
|
-
: GraphQLFieldHelper.ConvertFieldValueFrom(data[columnName], attributeFields) });
|
|
35
|
-
}
|
|
36
|
-
if (!!from)
|
|
37
|
-
return Object.assign(Object.assign({}, result), { [attributeName]: from(data[columnName], data) });
|
|
38
|
-
return Object.assign(Object.assign({}, result), { [attributeName]: parseDateTime(data[columnName]) });
|
|
39
|
-
}, {});
|
|
40
|
-
GraphQLFieldHelper.ConvertFieldValueTo = (instance, fields, update = false) => {
|
|
41
|
-
var _a;
|
|
42
|
-
const data = ((_a = instance.toPlain) === null || _a === void 0 ? void 0 : _a.call(instance)) || instance;
|
|
43
|
-
return Object.keys(data).reduce((result, attributeName) => {
|
|
44
|
-
const { columnName, fields: attributeFields, foreignKeyColumn, to, bindPersistData, } = AttributeOptionHelper.FindByAttribute(attributeName, fields);
|
|
45
|
-
if (bindPersistData)
|
|
46
|
-
return Object.assign(Object.assign({}, result), bindPersistData(data[attributeName], instance));
|
|
47
|
-
if (isNil(columnName))
|
|
48
|
-
return result;
|
|
49
|
-
if (!!foreignKeyColumn &&
|
|
50
|
-
!isEmpty(foreignKeyColumn) &&
|
|
51
|
-
!Object.keys(foreignKeyColumn).filter((key) => { var _a; return !((_a = data[attributeName]) === null || _a === void 0 ? void 0 : _a[key]); }).length)
|
|
52
|
-
return Object.keys(foreignKeyColumn).reduce((object, current) => {
|
|
53
|
-
var _a;
|
|
54
|
-
const { columnName: foreignColumnName } = AttributeOptionHelper.FindByAttribute(foreignKeyColumn[current], fields);
|
|
55
|
-
return Object.assign(Object.assign({}, object), { [foreignColumnName]: (_a = data[attributeName]) === null || _a === void 0 ? void 0 : _a[current] });
|
|
56
|
-
}, Object.assign({}, result));
|
|
57
|
-
if (update && isObject(data[attributeName]) && !isNil(attributeFields) && !isDate(data[attributeName]))
|
|
58
|
-
return result;
|
|
59
|
-
if (!!columnName && Array.isArray(attributeFields) && isObject(data[attributeName])) {
|
|
60
|
-
const converted = !isNil(columnName) && to ? to(instance[attributeName], instance) : data[attributeName];
|
|
61
|
-
return Object.assign(Object.assign({}, result), (converted !== undefined
|
|
62
|
-
? {
|
|
63
|
-
[columnName]: {
|
|
64
|
-
data: instance[attributeName] instanceof BaseModel
|
|
65
|
-
? GraphQLFieldHelper.ConvertFieldValueTo(data[attributeName], attributeFields)
|
|
66
|
-
: converted,
|
|
67
|
-
},
|
|
68
|
-
}
|
|
69
|
-
: {}));
|
|
70
|
-
}
|
|
71
|
-
if (!!to)
|
|
72
|
-
return Object.assign(Object.assign({}, result), { [columnName]: to(instance[attributeName], instance) });
|
|
73
|
-
return Object.assign(Object.assign({}, result), { [columnName]: data[attributeName] });
|
|
74
|
-
}, {});
|
|
75
|
-
};
|
|
76
|
-
GraphQLFieldHelper.ConvertNestedFieldsToGraphQLFields = (fieldName, fieldValue) => {
|
|
77
|
-
const hasCustomFilters = !!fieldValue.filters;
|
|
78
|
-
if (hasCustomFilters)
|
|
79
|
-
return {
|
|
80
|
-
operation: fieldValue.columnName || fieldName,
|
|
81
|
-
fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
|
|
82
|
-
variables: {
|
|
83
|
-
[`${fieldValue.columnName}_where`]: {
|
|
84
|
-
name: 'where',
|
|
85
|
-
type: fieldValue.filters.filterType,
|
|
86
|
-
value: BindFilterQueryHelper.MakeGraphQLWhere(fieldValue.filters.filters, fieldValue.fields),
|
|
87
|
-
required: true,
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
return {
|
|
92
|
-
[fieldValue.columnName || fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
|
|
93
|
-
};
|
|
94
|
-
};
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1maWVsZC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9ncmFwaHFsLWZpZWxkLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxHQUtWLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFbEUsTUFBTSxPQUFPLGtCQUFrQjs7QUFDdEIsdUNBQW9CLEdBQUcsQ0FDNUIsTUFBdUMsRUFDTCxFQUFFLENBQ3BDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7QUFFcEYsb0RBQWlDLEdBQUcsQ0FDekMsTUFBa0MsRUFDMUIsRUFBRTtJQUNWLE9BQU8sTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUNULEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2QsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFNUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUM1QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxpQ0FBaUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFBO1FBQzFGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFNO1FBRWxFLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFBO1FBRXpDLElBQUksYUFBYTtZQUFFLE9BQU8sa0JBQWtCLENBQUMsa0NBQWtDLENBQUMsU0FBUyxFQUFFLFVBQWlCLENBQUMsQ0FBQTtRQUU3RyxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUE7SUFDOUIsQ0FBQyxFQUNBLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQy9CLENBQUMsQ0FBQTtBQUVNLHdDQUFxQixHQUFHLENBSTdCLElBQXVDLEVBQ3ZDLE1BQWtDLEVBQ3VELEVBQUUsQ0FDM0YsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUU7SUFDOUMsTUFBTSxFQUNKLGFBQWEsRUFDYixNQUFNLEVBQUUsZUFBZSxFQUN2QixJQUFJLEdBQ0wsR0FBRyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFFdEUsSUFBSSxDQUFDLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDdkQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQyx1Q0FDSyxNQUFNLEtBQ1QsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJO29CQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUM7b0JBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDN0Isa0JBQWtCLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLGVBQXNCLENBQUMsQ0FDeEUsSUFDTjtRQUNILElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1Qix1Q0FDSyxNQUFNLEtBQ1QsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSTtvQkFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3hCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsZUFBc0IsQ0FBQyxJQUN2RjtLQUNKO0lBRUQsSUFBSSxDQUFDLENBQUMsSUFBSTtRQUFFLHVDQUFZLE1BQU0sS0FBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUU7SUFFL0UsdUNBQVksTUFBTSxLQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFFO0FBQ3hFLENBQUMsRUFBRSxFQUE0RCxDQUFDLENBQUE7QUFFM0Qsc0NBQW1CLEdBQUcsQ0FJM0IsUUFBZSxFQUNmLE1BQWtDLEVBQ2xDLE1BQU0sR0FBRyxLQUFLLEVBQ0osRUFBRTs7SUFDWixNQUFNLElBQUksR0FBZ0MsQ0FBQSxNQUFBLFFBQVEsQ0FBQyxPQUFPLCtDQUFoQixRQUFRLENBQVksS0FBSSxRQUFRLENBQUE7SUFFMUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsRUFBRTtRQUN4RCxNQUFNLEVBQ0osVUFBVSxFQUNWLE1BQU0sRUFBRSxlQUFlLEVBQ3ZCLGdCQUFnQixFQUNoQixFQUFFLEVBQ0YsZUFBZSxHQUNoQixHQUFHLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxhQUE2RCxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBRWhILElBQUksZUFBZTtZQUFFLHVDQUFZLE1BQU0sR0FBSyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFO1FBQzVGLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU8sTUFBTSxDQUFBO1FBQ3BDLElBQ0UsQ0FBQyxDQUFDLGdCQUFnQjtZQUNsQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztZQUMxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxXQUFDLE9BQUEsQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQ0FBRyxHQUFHLENBQUMsQ0FBQSxDQUFBLEVBQUEsQ0FBQyxDQUFDLE1BQU07WUFFbEYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUN6QyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTs7Z0JBQ2xCLE1BQU0sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQzdFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUN6QixNQUFNLENBQ1AsQ0FBQTtnQkFFRCx1Q0FBWSxNQUFNLEtBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLE1BQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQ0FBRyxPQUFPLENBQUMsSUFBRTtZQUMzRSxDQUFDLG9CQUNJLE1BQU0sRUFDWixDQUFBO1FBRUgsSUFBSSxNQUFNLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNwRyxPQUFPLE1BQU0sQ0FBQTtRQUVmLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTtZQUNuRixNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUV4Ryx1Q0FDSyxNQUFNLEdBQ04sQ0FBQyxTQUFTLEtBQUssU0FBUztnQkFDekIsQ0FBQyxDQUFDO29CQUNFLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQ1osSUFBSSxFQUNGLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxTQUFTOzRCQUMxQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDbkIsZUFBc0QsQ0FDdkQ7NEJBQ0gsQ0FBQyxDQUFDLFNBQVM7cUJBQ2hCO2lCQUNGO2dCQUNILENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUjtTQUNGO1FBRUQsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUFFLHVDQUFZLE1BQU0sS0FBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUU7UUFFbkYsdUNBQVksTUFBTSxLQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFFO0lBQ3pELENBQUMsRUFBRSxFQUFjLENBQUMsQ0FBQTtBQUNwQixDQUFDLENBQUE7QUFFYyxxREFBa0MsR0FBRyxDQUlsRCxTQUFpQixFQUNqQixVQUErQixFQUMvQixFQUFFO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQTtJQUU3QyxJQUFJLGdCQUFnQjtRQUNsQixPQUFPO1lBQ0wsU0FBUyxFQUFFLFVBQVUsQ0FBQyxVQUFVLElBQUksU0FBUztZQUM3QyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsaUNBQWlDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUMvRSxTQUFTLEVBQUU7Z0JBQ1QsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLFFBQVEsQ0FBQyxFQUFFO29CQUNsQyxJQUFJLEVBQUUsT0FBTztvQkFDYixJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVO29CQUNuQyxLQUFLLEVBQUUscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQztvQkFDNUYsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtTQUNGLENBQUE7SUFFSCxPQUFPO1FBQ0wsQ0FBQyxVQUFVLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7S0FDOUcsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQmFzZU1vZGVsLFxyXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcclxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbCxcclxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLFxyXG4gIFBhcnRpYWxJZGVudGlmaWVyc01vZGVsLFxyXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgaXNEYXRlLCBpc0VtcHR5LCBpc05pbCwgaXNPYmplY3QsIGlzU3RyaW5nLCBwYXJzZURhdGVUaW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXHJcbmltcG9ydCB7IENvbHVtbk9wdGlvbnMsIEZpZWxkcywgR3JhcGhRTFBhcmFtcywgSGFzdXJhR3JhcGhRTEZpZWxkcyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xyXG5pbXBvcnQgeyBBdHRyaWJ1dGVPcHRpb25IZWxwZXIgfSBmcm9tICcuL2F0dHJpYnV0ZS1vcHRpb24uaGVscGVyJ1xyXG5pbXBvcnQgeyBCaW5kRmlsdGVyUXVlcnlIZWxwZXIgfSBmcm9tICcuL2JpbmQtZmlsdGVyLXF1ZXJ5LmhlbHBlcidcclxuXHJcbmV4cG9ydCBjbGFzcyBHcmFwaFFMRmllbGRIZWxwZXIge1xyXG4gIHN0YXRpYyBDaGVja0lzR3JhcGhRTFBhcmFtcyA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNb2RlbD4+KFxyXG4gICAgcGFyYW1zOiBzdHJpbmcgfCBHcmFwaFFMUGFyYW1zPE1vZGVsPltdLFxyXG4gICk6IHBhcmFtcyBpcyBHcmFwaFFMUGFyYW1zPE1vZGVsPltdID0+XHJcbiAgICAhaXNTdHJpbmcocGFyYW1zKSAmJiBBcnJheS5pc0FycmF5KHBhcmFtcykgJiYgcGFyYW1zLmxlbmd0aCA+PSAwICYmICEhcGFyYW1zWzBdLm9wZXJhdGlvblxyXG5cclxuICBzdGF0aWMgQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzID0gPE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1vZGVsPj4oXHJcbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+LFxyXG4gICk6IEZpZWxkcyA9PiB7XHJcbiAgICByZXR1cm4gZmllbGRzXHJcbiAgICAgID8ubWFwKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGlmIChpc1N0cmluZyhmaWVsZCkpIHJldHVybiBmaWVsZC50b1N0cmluZygpXHJcblxyXG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IE9iamVjdC5rZXlzKGZpZWxkKS5zaGlmdCgpXHJcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IGZpZWxkW2ZpZWxkTmFtZV1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRWYWx1ZSkpXHJcbiAgICAgICAgICByZXR1cm4geyBbZmllbGROYW1lXTogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZFZhbHVlKSB9XHJcbiAgICAgICAgaWYgKCFBdHRyaWJ1dGVPcHRpb25IZWxwZXIuQ2hlY2tJc0NvbHVtbk9wdGlvbihmaWVsZFZhbHVlKSkgcmV0dXJuXHJcblxyXG4gICAgICAgIGNvbnN0IGlzTmVzdGVkRmllbGQgPSAhIWZpZWxkVmFsdWUuZmllbGRzXHJcblxyXG4gICAgICAgIGlmIChpc05lc3RlZEZpZWxkKSByZXR1cm4gR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnROZXN0ZWRGaWVsZHNUb0dyYXBoUUxGaWVsZHMoZmllbGROYW1lLCBmaWVsZFZhbHVlIGFzIGFueSlcclxuXHJcbiAgICAgICAgcmV0dXJuIGZpZWxkVmFsdWUuY29sdW1uTmFtZVxyXG4gICAgICB9KVxyXG4gICAgICAuZmlsdGVyKChmaWVsZCkgPT4gISFmaWVsZClcclxuICB9XHJcblxyXG4gIHN0YXRpYyBDb252ZXJ0RmllbGRWYWx1ZUZyb20gPSA8XHJcbiAgICBNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNb2RlbD4sXHJcbiAgICBEYXRhVHlwZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IERhdGFUeXBlIHwgRGF0ZT4sXHJcbiAgPihcclxuICAgIGRhdGE6IHN0cmluZyB8IG51bWJlciB8IERhdGFUeXBlIHwgRGF0ZSxcclxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD4sXHJcbiAgKTogTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllc1dpdGhOb1BhcnRpYWw8TW9kZWw+IHwgUGFydGlhbElkZW50aWZpZXJzTW9kZWw8TW9kZWw+ID0+XHJcbiAgICBPYmplY3Qua2V5cyhkYXRhKS5yZWR1Y2UoKHJlc3VsdCwgY29sdW1uTmFtZSkgPT4ge1xyXG4gICAgICBjb25zdCB7XHJcbiAgICAgICAgYXR0cmlidXRlTmFtZSxcclxuICAgICAgICBmaWVsZHM6IGF0dHJpYnV0ZUZpZWxkcyxcclxuICAgICAgICBmcm9tLFxyXG4gICAgICB9ID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRDb2x1bW5PcHRpb25Gcm9tTGlzdChjb2x1bW5OYW1lLCBmaWVsZHMpXHJcblxyXG4gICAgICBpZiAoISFhdHRyaWJ1dGVGaWVsZHMgJiYgQXJyYXkuaXNBcnJheShhdHRyaWJ1dGVGaWVsZHMpKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtjb2x1bW5OYW1lXSkpXHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5yZXN1bHQsXHJcbiAgICAgICAgICAgIFthdHRyaWJ1dGVOYW1lXTogZnJvbVxyXG4gICAgICAgICAgICAgID8gZnJvbShkYXRhW2NvbHVtbk5hbWVdLCBkYXRhKVxyXG4gICAgICAgICAgICAgIDogZGF0YVtjb2x1bW5OYW1lXS5tYXAoKHZhbHVlKSA9PlxyXG4gICAgICAgICAgICAgICAgICBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydEZpZWxkVmFsdWVGcm9tKHZhbHVlLCBhdHRyaWJ1dGVGaWVsZHMgYXMgYW55KSxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzT2JqZWN0KGRhdGFbY29sdW1uTmFtZV0pKVxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgICBbYXR0cmlidXRlTmFtZV06ICEhZnJvbVxyXG4gICAgICAgICAgICAgID8gZnJvbShkYXRhW2NvbHVtbk5hbWVdKVxyXG4gICAgICAgICAgICAgIDogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRGaWVsZFZhbHVlRnJvbShkYXRhW2NvbHVtbk5hbWVdLCBhdHRyaWJ1dGVGaWVsZHMgYXMgYW55KSxcclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCEhZnJvbSkgcmV0dXJuIHsgLi4ucmVzdWx0LCBbYXR0cmlidXRlTmFtZV06IGZyb20oZGF0YVtjb2x1bW5OYW1lXSwgZGF0YSkgfVxyXG5cclxuICAgICAgcmV0dXJuIHsgLi4ucmVzdWx0LCBbYXR0cmlidXRlTmFtZV06IHBhcnNlRGF0ZVRpbWUoZGF0YVtjb2x1bW5OYW1lXSkgfVxyXG4gICAgfSwge30gYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllc1dpdGhOb1BhcnRpYWw8TW9kZWw+KVxyXG5cclxuICBzdGF0aWMgQ29udmVydEZpZWxkVmFsdWVUbyA9IDxcclxuICAgIE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1vZGVsPixcclxuICAgIERhdGFUeXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgRGF0YVR5cGUgfCBEYXRlPixcclxuICA+KFxyXG4gICAgaW5zdGFuY2U6IE1vZGVsLFxyXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPixcclxuICAgIHVwZGF0ZSA9IGZhbHNlLFxyXG4gICk6IERhdGFUeXBlID0+IHtcclxuICAgIGNvbnN0IGRhdGE6IFBhcnRpYWw8TW9kZWxCYXNlU3RydWN0dXJlPiA9IGluc3RhbmNlLnRvUGxhaW4/LigpIHx8IGluc3RhbmNlXHJcblxyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEpLnJlZHVjZSgocmVzdWx0LCBhdHRyaWJ1dGVOYW1lKSA9PiB7XHJcbiAgICAgIGNvbnN0IHtcclxuICAgICAgICBjb2x1bW5OYW1lLFxyXG4gICAgICAgIGZpZWxkczogYXR0cmlidXRlRmllbGRzLFxyXG4gICAgICAgIGZvcmVpZ25LZXlDb2x1bW4sXHJcbiAgICAgICAgdG8sXHJcbiAgICAgICAgYmluZFBlcnNpc3REYXRhLFxyXG4gICAgICB9ID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TW9kZWw+LCBmaWVsZHMpXHJcblxyXG4gICAgICBpZiAoYmluZFBlcnNpc3REYXRhKSByZXR1cm4geyAuLi5yZXN1bHQsIC4uLmJpbmRQZXJzaXN0RGF0YShkYXRhW2F0dHJpYnV0ZU5hbWVdLCBpbnN0YW5jZSkgfVxyXG4gICAgICBpZiAoaXNOaWwoY29sdW1uTmFtZSkpIHJldHVybiByZXN1bHRcclxuICAgICAgaWYgKFxyXG4gICAgICAgICEhZm9yZWlnbktleUNvbHVtbiAmJlxyXG4gICAgICAgICFpc0VtcHR5KGZvcmVpZ25LZXlDb2x1bW4pICYmXHJcbiAgICAgICAgIU9iamVjdC5rZXlzKGZvcmVpZ25LZXlDb2x1bW4pLmZpbHRlcigoa2V5KSA9PiAhZGF0YVthdHRyaWJ1dGVOYW1lXT8uW2tleV0pLmxlbmd0aFxyXG4gICAgICApXHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvcmVpZ25LZXlDb2x1bW4pLnJlZHVjZShcclxuICAgICAgICAgIChvYmplY3QsIGN1cnJlbnQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBjb2x1bW5OYW1lOiBmb3JlaWduQ29sdW1uTmFtZSB9ID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShcclxuICAgICAgICAgICAgICBmb3JlaWduS2V5Q29sdW1uW2N1cnJlbnRdLFxyXG4gICAgICAgICAgICAgIGZpZWxkcyxcclxuICAgICAgICAgICAgKVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHsgLi4ub2JqZWN0LCBbZm9yZWlnbkNvbHVtbk5hbWVdOiBkYXRhW2F0dHJpYnV0ZU5hbWVdPy5bY3VycmVudF0gfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHsgLi4ucmVzdWx0IH0sXHJcbiAgICAgICAgKVxyXG5cclxuICAgICAgaWYgKHVwZGF0ZSAmJiBpc09iamVjdChkYXRhW2F0dHJpYnV0ZU5hbWVdKSAmJiAhaXNOaWwoYXR0cmlidXRlRmllbGRzKSAmJiAhaXNEYXRlKGRhdGFbYXR0cmlidXRlTmFtZV0pKVxyXG4gICAgICAgIHJldHVybiByZXN1bHRcclxuXHJcbiAgICAgIGlmICghIWNvbHVtbk5hbWUgJiYgQXJyYXkuaXNBcnJheShhdHRyaWJ1dGVGaWVsZHMpICYmIGlzT2JqZWN0KGRhdGFbYXR0cmlidXRlTmFtZV0pKSB7XHJcbiAgICAgICAgY29uc3QgY29udmVydGVkID0gIWlzTmlsKGNvbHVtbk5hbWUpICYmIHRvID8gdG8oaW5zdGFuY2VbYXR0cmlidXRlTmFtZV0sIGluc3RhbmNlKSA6IGRhdGFbYXR0cmlidXRlTmFtZV1cclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLnJlc3VsdCxcclxuICAgICAgICAgIC4uLihjb252ZXJ0ZWQgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICAgIFtjb2x1bW5OYW1lXToge1xyXG4gICAgICAgICAgICAgICAgICBkYXRhOlxyXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlW2F0dHJpYnV0ZU5hbWVdIGluc3RhbmNlb2YgQmFzZU1vZGVsXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZVRvKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbYXR0cmlidXRlTmFtZV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlRmllbGRzIGFzIEhhc3VyYUdyYXBoUUxGaWVsZHM8QmFzZU1vZGVsPGFueT4+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGNvbnZlcnRlZCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA6IHt9KSxcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghIXRvKSByZXR1cm4geyAuLi5yZXN1bHQsIFtjb2x1bW5OYW1lXTogdG8oaW5zdGFuY2VbYXR0cmlidXRlTmFtZV0sIGluc3RhbmNlKSB9XHJcblxyXG4gICAgICByZXR1cm4geyAuLi5yZXN1bHQsIFtjb2x1bW5OYW1lXTogZGF0YVthdHRyaWJ1dGVOYW1lXSB9XHJcbiAgICB9LCB7fSBhcyBEYXRhVHlwZSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIENvbnZlcnROZXN0ZWRGaWVsZHNUb0dyYXBoUUxGaWVsZHMgPSA8XHJcbiAgICBUIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPFQ+LFxyXG4gICAgUCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxQPixcclxuICA+KFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBmaWVsZFZhbHVlOiBDb2x1bW5PcHRpb25zPFQsIFA+LFxyXG4gICkgPT4ge1xyXG4gICAgY29uc3QgaGFzQ3VzdG9tRmlsdGVycyA9ICEhZmllbGRWYWx1ZS5maWx0ZXJzXHJcblxyXG4gICAgaWYgKGhhc0N1c3RvbUZpbHRlcnMpXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgb3BlcmF0aW9uOiBmaWVsZFZhbHVlLmNvbHVtbk5hbWUgfHwgZmllbGROYW1lLFxyXG4gICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZFZhbHVlLmZpZWxkcyksXHJcbiAgICAgICAgdmFyaWFibGVzOiB7XHJcbiAgICAgICAgICBbYCR7ZmllbGRWYWx1ZS5jb2x1bW5OYW1lfV93aGVyZWBdOiB7XHJcbiAgICAgICAgICAgIG5hbWU6ICd3aGVyZScsXHJcbiAgICAgICAgICAgIHR5cGU6IGZpZWxkVmFsdWUuZmlsdGVycy5maWx0ZXJUeXBlLFxyXG4gICAgICAgICAgICB2YWx1ZTogQmluZEZpbHRlclF1ZXJ5SGVscGVyLk1ha2VHcmFwaFFMV2hlcmUoZmllbGRWYWx1ZS5maWx0ZXJzLmZpbHRlcnMsIGZpZWxkVmFsdWUuZmllbGRzKSxcclxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBbZmllbGRWYWx1ZS5jb2x1bW5OYW1lIHx8IGZpZWxkTmFtZV06IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMoZmllbGRWYWx1ZS5maWVsZHMpLFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
1
|
+
import { BaseModel, } from '../../../../domain';
|
|
2
|
+
import { isDate, isEmpty, isNil, isObject, isString, parseDateTime } from '../../../../utils';
|
|
3
|
+
import { AttributeOptionHelper } from './attribute-option.helper';
|
|
4
|
+
import { BindFilterQueryHelper } from './bind-filter-query.helper';
|
|
5
|
+
export class GraphQLFieldHelper {
|
|
6
|
+
}
|
|
7
|
+
GraphQLFieldHelper.CheckIsGraphQLParams = (params) => !isString(params) && Array.isArray(params) && params.length >= 0 && !!params[0].operation;
|
|
8
|
+
GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields = (fields) => {
|
|
9
|
+
return fields === null || fields === void 0 ? void 0 : fields.map((field) => {
|
|
10
|
+
if (isString(field))
|
|
11
|
+
return field.toString();
|
|
12
|
+
const fieldName = Object.keys(field).shift();
|
|
13
|
+
const fieldValue = field[fieldName];
|
|
14
|
+
if (Array.isArray(fieldValue))
|
|
15
|
+
return { [fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue) };
|
|
16
|
+
if (!AttributeOptionHelper.CheckIsColumnOption(fieldValue))
|
|
17
|
+
return;
|
|
18
|
+
const isNestedField = !!fieldValue.fields;
|
|
19
|
+
if (isNestedField)
|
|
20
|
+
return GraphQLFieldHelper.ConvertNestedFieldsToGraphQLFields(fieldName, fieldValue);
|
|
21
|
+
return fieldValue.columnName;
|
|
22
|
+
}).filter((field) => !!field);
|
|
23
|
+
};
|
|
24
|
+
GraphQLFieldHelper.ConvertFieldValueFrom = (data, fields) => Object.keys(data).reduce((result, columnName) => {
|
|
25
|
+
const { attributeName, fields: attributeFields, from, } = AttributeOptionHelper.FindColumnOptionFromList(columnName, fields);
|
|
26
|
+
if (!!attributeFields && Array.isArray(attributeFields)) {
|
|
27
|
+
if (Array.isArray(data[columnName]))
|
|
28
|
+
return Object.assign(Object.assign({}, result), { [attributeName]: from
|
|
29
|
+
? from(data[columnName], data)
|
|
30
|
+
: data[columnName].map((value) => GraphQLFieldHelper.ConvertFieldValueFrom(value, attributeFields)) });
|
|
31
|
+
if (isObject(data[columnName]))
|
|
32
|
+
return Object.assign(Object.assign({}, result), { [attributeName]: !!from
|
|
33
|
+
? from(data[columnName])
|
|
34
|
+
: GraphQLFieldHelper.ConvertFieldValueFrom(data[columnName], attributeFields) });
|
|
35
|
+
}
|
|
36
|
+
if (!!from)
|
|
37
|
+
return Object.assign(Object.assign({}, result), { [attributeName]: from(data[columnName], data) });
|
|
38
|
+
return Object.assign(Object.assign({}, result), { [attributeName]: parseDateTime(data[columnName]) });
|
|
39
|
+
}, {});
|
|
40
|
+
GraphQLFieldHelper.ConvertFieldValueTo = (instance, fields, update = false) => {
|
|
41
|
+
var _a;
|
|
42
|
+
const data = ((_a = instance.toPlain) === null || _a === void 0 ? void 0 : _a.call(instance)) || instance;
|
|
43
|
+
return Object.keys(data).reduce((result, attributeName) => {
|
|
44
|
+
const { columnName, fields: attributeFields, foreignKeyColumn, to, bindPersistData, } = AttributeOptionHelper.FindByAttribute(attributeName, fields);
|
|
45
|
+
if (bindPersistData)
|
|
46
|
+
return Object.assign(Object.assign({}, result), bindPersistData(data[attributeName], instance));
|
|
47
|
+
if (isNil(columnName))
|
|
48
|
+
return result;
|
|
49
|
+
if (!!foreignKeyColumn &&
|
|
50
|
+
!isEmpty(foreignKeyColumn) &&
|
|
51
|
+
!Object.keys(foreignKeyColumn).filter((key) => { var _a; return !((_a = data[attributeName]) === null || _a === void 0 ? void 0 : _a[key]); }).length)
|
|
52
|
+
return Object.keys(foreignKeyColumn).reduce((object, current) => {
|
|
53
|
+
var _a;
|
|
54
|
+
const { columnName: foreignColumnName } = AttributeOptionHelper.FindByAttribute(foreignKeyColumn[current], fields);
|
|
55
|
+
return Object.assign(Object.assign({}, object), { [foreignColumnName]: (_a = data[attributeName]) === null || _a === void 0 ? void 0 : _a[current] });
|
|
56
|
+
}, Object.assign({}, result));
|
|
57
|
+
if (update && isObject(data[attributeName]) && !isNil(attributeFields) && !isDate(data[attributeName]))
|
|
58
|
+
return result;
|
|
59
|
+
if (!!columnName && Array.isArray(attributeFields) && isObject(data[attributeName])) {
|
|
60
|
+
const converted = !isNil(columnName) && to ? to(instance[attributeName], instance) : data[attributeName];
|
|
61
|
+
return Object.assign(Object.assign({}, result), (converted !== undefined
|
|
62
|
+
? {
|
|
63
|
+
[columnName]: {
|
|
64
|
+
data: instance[attributeName] instanceof BaseModel
|
|
65
|
+
? GraphQLFieldHelper.ConvertFieldValueTo(data[attributeName], attributeFields)
|
|
66
|
+
: converted,
|
|
67
|
+
},
|
|
68
|
+
}
|
|
69
|
+
: {}));
|
|
70
|
+
}
|
|
71
|
+
if (!!to)
|
|
72
|
+
return Object.assign(Object.assign({}, result), { [columnName]: to(instance[attributeName], instance) });
|
|
73
|
+
return Object.assign(Object.assign({}, result), { [columnName]: data[attributeName] });
|
|
74
|
+
}, {});
|
|
75
|
+
};
|
|
76
|
+
GraphQLFieldHelper.ConvertNestedFieldsToGraphQLFields = (fieldName, fieldValue) => {
|
|
77
|
+
const hasCustomFilters = !!fieldValue.filters;
|
|
78
|
+
if (hasCustomFilters)
|
|
79
|
+
return {
|
|
80
|
+
operation: fieldValue.columnName || fieldName,
|
|
81
|
+
fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
|
|
82
|
+
variables: {
|
|
83
|
+
[`${fieldValue.columnName}_where`]: {
|
|
84
|
+
name: 'where',
|
|
85
|
+
type: fieldValue.filters.filterType,
|
|
86
|
+
value: BindFilterQueryHelper.MakeGraphQLWhere(fieldValue.filters.filters, fieldValue.fields),
|
|
87
|
+
required: true,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
return {
|
|
92
|
+
[fieldValue.columnName || fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1maWVsZC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9ncmFwaHFsLWZpZWxkLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxHQUtWLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFbEUsTUFBTSxPQUFPLGtCQUFrQjs7QUFDdEIsdUNBQW9CLEdBQUcsQ0FDNUIsTUFBdUMsRUFDTCxFQUFFLENBQ3BDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7QUFFcEYsb0RBQWlDLEdBQUcsQ0FDekMsTUFBa0MsRUFDMUIsRUFBRTtJQUNWLE9BQU8sTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUNULEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2QsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFNUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUM1QyxNQUFNLFVBQVUs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QUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQTtJQUU3QyxJQUFJLGdCQUFnQjtRQUNsQixPQUFPO1lBQ0wsU0FBUyxFQUFFLFVBQVUsQ0FBQyxVQUFVLElBQUksU0FBUztZQUM3QyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsaUNBQWlDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUMvRSxTQUFTLEVBQUU7Z0JBQ1QsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLFFBQVEsQ0FBQyxFQUFFO29CQUNsQyxJQUFJLEVBQUUsT0FBTztvQkFDYixJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVO29CQUNuQyxLQUFLLEVBQUUscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQztvQkFDNUYsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtTQUNGLENBQUE7SUFFSCxPQUFPO1FBQ0wsQ0FBQyxVQUFVLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7S0FDOUcsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VNb2RlbCxcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbCxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lcyxcbiAgUGFydGlhbElkZW50aWZpZXJzTW9kZWwsXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IGlzRGF0ZSwgaXNFbXB0eSwgaXNOaWwsIGlzT2JqZWN0LCBpc1N0cmluZywgcGFyc2VEYXRlVGltZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgQ29sdW1uT3B0aW9ucywgRmllbGRzLCBHcmFwaFFMUGFyYW1zLCBIYXN1cmFHcmFwaFFMRmllbGRzIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyBBdHRyaWJ1dGVPcHRpb25IZWxwZXIgfSBmcm9tICcuL2F0dHJpYnV0ZS1vcHRpb24uaGVscGVyJ1xuaW1wb3J0IHsgQmluZEZpbHRlclF1ZXJ5SGVscGVyIH0gZnJvbSAnLi9iaW5kLWZpbHRlci1xdWVyeS5oZWxwZXInXG5cbmV4cG9ydCBjbGFzcyBHcmFwaFFMRmllbGRIZWxwZXIge1xuICBzdGF0aWMgQ2hlY2tJc0dyYXBoUUxQYXJhbXMgPSA8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TW9kZWw+PihcbiAgICBwYXJhbXM6IHN0cmluZyB8IEdyYXBoUUxQYXJhbXM8TW9kZWw+W10sXG4gICk6IHBhcmFtcyBpcyBHcmFwaFFMUGFyYW1zPE1vZGVsPltdID0+XG4gICAgIWlzU3RyaW5nKHBhcmFtcykgJiYgQXJyYXkuaXNBcnJheShwYXJhbXMpICYmIHBhcmFtcy5sZW5ndGggPj0gMCAmJiAhIXBhcmFtc1swXS5vcGVyYXRpb25cblxuICBzdGF0aWMgQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzID0gPE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1vZGVsPj4oXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPixcbiAgKTogRmllbGRzID0+IHtcbiAgICByZXR1cm4gZmllbGRzXG4gICAgICA/Lm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGlzU3RyaW5nKGZpZWxkKSkgcmV0dXJuIGZpZWxkLnRvU3RyaW5nKClcblxuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBPYmplY3Qua2V5cyhmaWVsZCkuc2hpZnQoKVxuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gZmllbGRbZmllbGROYW1lXVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkVmFsdWUpKVxuICAgICAgICAgIHJldHVybiB7IFtmaWVsZE5hbWVdOiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzKGZpZWxkVmFsdWUpIH1cbiAgICAgICAgaWYgKCFBdHRyaWJ1dGVPcHRpb25IZWxwZXIuQ2hlY2tJc0NvbHVtbk9wdGlvbihmaWVsZFZhbHVlKSkgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgaXNOZXN0ZWRGaWVsZCA9ICEhZmllbGRWYWx1ZS5maWVsZHNcblxuICAgICAgICBpZiAoaXNOZXN0ZWRGaWVsZCkgcmV0dXJuIEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0TmVzdGVkRmllbGRzVG9HcmFwaFFMRmllbGRzKGZpZWxkTmFtZSwgZmllbGRWYWx1ZSBhcyBhbnkpXG5cbiAgICAgICAgcmV0dXJuIGZpZWxkVmFsdWUuY29sdW1uTmFtZVxuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKGZpZWxkKSA9PiAhIWZpZWxkKVxuICB9XG5cbiAgc3RhdGljIENvbnZlcnRGaWVsZFZhbHVlRnJvbSA9IDxcbiAgICBNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNb2RlbD4sXG4gICAgRGF0YVR5cGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBEYXRhVHlwZSB8IERhdGU+LFxuICA+KFxuICAgIGRhdGE6IHN0cmluZyB8IG51bWJlciB8IERhdGFUeXBlIHwgRGF0ZSxcbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+LFxuICApOiBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbDxNb2RlbD4gfCBQYXJ0aWFsSWRlbnRpZmllcnNNb2RlbDxNb2RlbD4gPT5cbiAgICBPYmplY3Qua2V5cyhkYXRhKS5yZWR1Y2UoKHJlc3VsdCwgY29sdW1uTmFtZSkgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBhdHRyaWJ1dGVOYW1lLFxuICAgICAgICBmaWVsZHM6IGF0dHJpYnV0ZUZpZWxkcyxcbiAgICAgICAgZnJvbSxcbiAgICAgIH0gPSBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZENvbHVtbk9wdGlvbkZyb21MaXN0KGNvbHVtbk5hbWUsIGZpZWxkcylcblxuICAgICAgaWYgKCEhYXR0cmlidXRlRmllbGRzICYmIEFycmF5LmlzQXJyYXkoYXR0cmlidXRlRmllbGRzKSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhW2NvbHVtbk5hbWVdKSlcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgW2F0dHJpYnV0ZU5hbWVdOiBmcm9tXG4gICAgICAgICAgICAgID8gZnJvbShkYXRhW2NvbHVtbk5hbWVdLCBkYXRhKVxuICAgICAgICAgICAgICA6IGRhdGFbY29sdW1uTmFtZV0ubWFwKCh2YWx1ZSkgPT5cbiAgICAgICAgICAgICAgICAgIEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZUZyb20odmFsdWUsIGF0dHJpYnV0ZUZpZWxkcyBhcyBhbnkpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgfVxuICAgICAgICBpZiAoaXNPYmplY3QoZGF0YVtjb2x1bW5OYW1lXSkpXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgIFthdHRyaWJ1dGVOYW1lXTogISFmcm9tXG4gICAgICAgICAgICAgID8gZnJvbShkYXRhW2NvbHVtbk5hbWVdKVxuICAgICAgICAgICAgICA6IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZUZyb20oZGF0YVtjb2x1bW5OYW1lXSwgYXR0cmlidXRlRmllbGRzIGFzIGFueSksXG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoISFmcm9tKSByZXR1cm4geyAuLi5yZXN1bHQsIFthdHRyaWJ1dGVOYW1lXTogZnJvbShkYXRhW2NvbHVtbk5hbWVdLCBkYXRhKSB9XG5cbiAgICAgIHJldHVybiB7IC4uLnJlc3VsdCwgW2F0dHJpYnV0ZU5hbWVdOiBwYXJzZURhdGVUaW1lKGRhdGFbY29sdW1uTmFtZV0pIH1cbiAgICB9LCB7fSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbDxNb2RlbD4pXG5cbiAgc3RhdGljIENvbnZlcnRGaWVsZFZhbHVlVG8gPSA8XG4gICAgTW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TW9kZWw+LFxuICAgIERhdGFUeXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgRGF0YVR5cGUgfCBEYXRlPixcbiAgPihcbiAgICBpbnN0YW5jZTogTW9kZWwsXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPixcbiAgICB1cGRhdGUgPSBmYWxzZSxcbiAgKTogRGF0YVR5cGUgPT4ge1xuICAgIGNvbnN0IGRhdGE6IFBhcnRpYWw8TW9kZWxCYXNlU3RydWN0dXJlPiA9IGluc3RhbmNlLnRvUGxhaW4/LigpIHx8IGluc3RhbmNlXG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZGF0YSkucmVkdWNlKChyZXN1bHQsIGF0dHJpYnV0ZU5hbWUpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY29sdW1uTmFtZSxcbiAgICAgICAgZmllbGRzOiBhdHRyaWJ1dGVGaWVsZHMsXG4gICAgICAgIGZvcmVpZ25LZXlDb2x1bW4sXG4gICAgICAgIHRvLFxuICAgICAgICBiaW5kUGVyc2lzdERhdGEsXG4gICAgICB9ID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TW9kZWw+LCBmaWVsZHMpXG5cbiAgICAgIGlmIChiaW5kUGVyc2lzdERhdGEpIHJldHVybiB7IC4uLnJlc3VsdCwgLi4uYmluZFBlcnNpc3REYXRhKGRhdGFbYXR0cmlidXRlTmFtZV0sIGluc3RhbmNlKSB9XG4gICAgICBpZiAoaXNOaWwoY29sdW1uTmFtZSkpIHJldHVybiByZXN1bHRcbiAgICAgIGlmIChcbiAgICAgICAgISFmb3JlaWduS2V5Q29sdW1uICYmXG4gICAgICAgICFpc0VtcHR5KGZvcmVpZ25LZXlDb2x1bW4pICYmXG4gICAgICAgICFPYmplY3Qua2V5cyhmb3JlaWduS2V5Q29sdW1uKS5maWx0ZXIoKGtleSkgPT4gIWRhdGFbYXR0cmlidXRlTmFtZV0/LltrZXldKS5sZW5ndGhcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvcmVpZ25LZXlDb2x1bW4pLnJlZHVjZShcbiAgICAgICAgICAob2JqZWN0LCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGNvbHVtbk5hbWU6IGZvcmVpZ25Db2x1bW5OYW1lIH0gPSBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKFxuICAgICAgICAgICAgICBmb3JlaWduS2V5Q29sdW1uW2N1cnJlbnRdLFxuICAgICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIHJldHVybiB7IC4uLm9iamVjdCwgW2ZvcmVpZ25Db2x1bW5OYW1lXTogZGF0YVthdHRyaWJ1dGVOYW1lXT8uW2N1cnJlbnRdIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgLi4ucmVzdWx0IH0sXG4gICAgICAgIClcblxuICAgICAgaWYgKHVwZGF0ZSAmJiBpc09iamVjdChkYXRhW2F0dHJpYnV0ZU5hbWVdKSAmJiAhaXNOaWwoYXR0cmlidXRlRmllbGRzKSAmJiAhaXNEYXRlKGRhdGFbYXR0cmlidXRlTmFtZV0pKVxuICAgICAgICByZXR1cm4gcmVzdWx0XG5cbiAgICAgIGlmICghIWNvbHVtbk5hbWUgJiYgQXJyYXkuaXNBcnJheShhdHRyaWJ1dGVGaWVsZHMpICYmIGlzT2JqZWN0KGRhdGFbYXR0cmlidXRlTmFtZV0pKSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZCA9ICFpc05pbChjb2x1bW5OYW1lKSAmJiB0byA/IHRvKGluc3RhbmNlW2F0dHJpYnV0ZU5hbWVdLCBpbnN0YW5jZSkgOiBkYXRhW2F0dHJpYnV0ZU5hbWVdXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgLi4uKGNvbnZlcnRlZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBbY29sdW1uTmFtZV06IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlW2F0dHJpYnV0ZU5hbWVdIGluc3RhbmNlb2YgQmFzZU1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgPyBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydEZpZWxkVmFsdWVUbyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVthdHRyaWJ1dGVOYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlRmllbGRzIGFzIEhhc3VyYUdyYXBoUUxGaWVsZHM8QmFzZU1vZGVsPGFueT4+LFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgIDogY29udmVydGVkLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDoge30pLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghIXRvKSByZXR1cm4geyAuLi5yZXN1bHQsIFtjb2x1bW5OYW1lXTogdG8oaW5zdGFuY2VbYXR0cmlidXRlTmFtZV0sIGluc3RhbmNlKSB9XG5cbiAgICAgIHJldHVybiB7IC4uLnJlc3VsdCwgW2NvbHVtbk5hbWVdOiBkYXRhW2F0dHJpYnV0ZU5hbWVdIH1cbiAgICB9LCB7fSBhcyBEYXRhVHlwZSlcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIENvbnZlcnROZXN0ZWRGaWVsZHNUb0dyYXBoUUxGaWVsZHMgPSA8XG4gICAgVCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxUPixcbiAgICBQIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPFA+LFxuICA+KFxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxuICAgIGZpZWxkVmFsdWU6IENvbHVtbk9wdGlvbnM8VCwgUD4sXG4gICkgPT4ge1xuICAgIGNvbnN0IGhhc0N1c3RvbUZpbHRlcnMgPSAhIWZpZWxkVmFsdWUuZmlsdGVyc1xuXG4gICAgaWYgKGhhc0N1c3RvbUZpbHRlcnMpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246IGZpZWxkVmFsdWUuY29sdW1uTmFtZSB8fCBmaWVsZE5hbWUsXG4gICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZFZhbHVlLmZpZWxkcyksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIFtgJHtmaWVsZFZhbHVlLmNvbHVtbk5hbWV9X3doZXJlYF06IHtcbiAgICAgICAgICAgIG5hbWU6ICd3aGVyZScsXG4gICAgICAgICAgICB0eXBlOiBmaWVsZFZhbHVlLmZpbHRlcnMuZmlsdGVyVHlwZSxcbiAgICAgICAgICAgIHZhbHVlOiBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuTWFrZUdyYXBoUUxXaGVyZShmaWVsZFZhbHVlLmZpbHRlcnMuZmlsdGVycywgZmllbGRWYWx1ZS5maWVsZHMpLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBbZmllbGRWYWx1ZS5jb2x1bW5OYW1lIHx8IGZpZWxkTmFtZV06IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMoZmllbGRWYWx1ZS5maWVsZHMpLFxuICAgIH1cbiAgfVxufVxuIl19
|