@infrab4a/connect 4.1.0-beta.8 → 4.1.0-beta.9

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.
Files changed (703) hide show
  1. package/README.md +24 -24
  2. package/domain/catalog/helpers/index.d.ts +1 -1
  3. package/domain/catalog/helpers/round-product-price.helper.d.ts +4 -4
  4. package/domain/catalog/index.d.ts +3 -3
  5. package/domain/catalog/models/category-base.d.ts +30 -30
  6. package/domain/catalog/models/category-collection-children.d.ts +13 -13
  7. package/domain/catalog/models/category-filter.d.ts +13 -13
  8. package/domain/catalog/models/category-for-product.d.ts +5 -5
  9. package/domain/catalog/models/category.d.ts +7 -7
  10. package/domain/catalog/models/enums/index.d.ts +2 -2
  11. package/domain/catalog/models/enums/product-genders.enum.d.ts +5 -5
  12. package/domain/catalog/models/enums/shops.enum.d.ts +6 -6
  13. package/domain/catalog/models/filter-option.d.ts +9 -9
  14. package/domain/catalog/models/filter.d.ts +12 -12
  15. package/domain/catalog/models/index.d.ts +11 -11
  16. package/domain/catalog/models/kit-product.d.ts +12 -12
  17. package/domain/catalog/models/product-base.d.ts +40 -40
  18. package/domain/catalog/models/product-for-category.d.ts +7 -7
  19. package/domain/catalog/models/product-for-kit.d.ts +7 -7
  20. package/domain/catalog/models/product.d.ts +9 -9
  21. package/domain/catalog/models/types/category-condition.type.d.ts +4 -4
  22. package/domain/catalog/models/types/category-metadata.type.d.ts +4 -4
  23. package/domain/catalog/models/types/category-product.d.ts +4 -4
  24. package/domain/catalog/models/types/index.d.ts +11 -11
  25. package/domain/catalog/models/types/product-evaluation.type.d.ts +6 -6
  26. package/domain/catalog/models/types/product-gender.type.d.ts +1 -1
  27. package/domain/catalog/models/types/product-metadata.type.d.ts +4 -4
  28. package/domain/catalog/models/types/product-review.type.d.ts +17 -17
  29. package/domain/catalog/models/types/shop-description.type.d.ts +8 -8
  30. package/domain/catalog/models/types/shop-price.type.d.ts +6 -6
  31. package/domain/catalog/models/types/stock.type.d.ts +3 -3
  32. package/domain/catalog/models/types/variant-grade.type.d.ts +4 -4
  33. package/domain/catalog/models/variant.d.ts +17 -17
  34. package/domain/catalog/models/wishlist.d.ts +8 -8
  35. package/domain/catalog/repositories/category-collection-children.repository.d.ts +4 -4
  36. package/domain/catalog/repositories/category-filter.repository.d.ts +6 -6
  37. package/domain/catalog/repositories/category.repository.d.ts +18 -18
  38. package/domain/catalog/repositories/filter-option.repository.d.ts +4 -4
  39. package/domain/catalog/repositories/filter.repository.d.ts +4 -4
  40. package/domain/catalog/repositories/index.d.ts +9 -9
  41. package/domain/catalog/repositories/product.repository.d.ts +15 -15
  42. package/domain/catalog/repositories/subscription-product.repository.d.ts +4 -4
  43. package/domain/catalog/repositories/variant.repository.d.ts +4 -4
  44. package/domain/catalog/repositories/wishlist.repository.d.ts +6 -6
  45. package/domain/generic/index.d.ts +2 -2
  46. package/domain/generic/model/base.model.d.ts +14 -14
  47. package/domain/generic/model/identifier-fields.d.ts +4 -4
  48. package/domain/generic/model/index.d.ts +3 -3
  49. package/domain/generic/model/types/base-model-builder.type.d.ts +17 -17
  50. package/domain/generic/model/types/identifier-model.type.d.ts +8 -8
  51. package/domain/generic/model/types/index.d.ts +5 -5
  52. package/domain/generic/model/types/model-base-structure.type.d.ts +12 -12
  53. package/domain/generic/model/types/non-function-properties.type.d.ts +12 -12
  54. package/domain/generic/model/types/non-function-property-name.type.d.ts +13 -13
  55. package/domain/generic/repository/create.repository.d.ts +8 -8
  56. package/domain/generic/repository/crud.repository.d.ts +19 -19
  57. package/domain/generic/repository/delete.repository.d.ts +7 -7
  58. package/domain/generic/repository/enums/index.d.ts +2 -2
  59. package/domain/generic/repository/enums/update-option-actions.enum.d.ts +7 -7
  60. package/domain/generic/repository/enums/where.enum.d.ts +14 -14
  61. package/domain/generic/repository/find.repository.d.ts +17 -17
  62. package/domain/generic/repository/get.repository.d.ts +5 -5
  63. package/domain/generic/repository/index.d.ts +9 -9
  64. package/domain/generic/repository/read.repository.d.ts +14 -14
  65. package/domain/generic/repository/types/index.d.ts +6 -6
  66. package/domain/generic/repository/types/repository-find-filters.type.d.ts +13 -13
  67. package/domain/generic/repository/types/repository-find-result.type.d.ts +14 -14
  68. package/domain/generic/repository/types/repository-limit-options.type.d.ts +4 -4
  69. package/domain/generic/repository/types/repository-order-by-list.type.d.ts +5 -5
  70. package/domain/generic/repository/types/repository-update-params.type.d.ts +11 -11
  71. package/domain/generic/repository/types/where-options.type.d.ts +2 -2
  72. package/domain/generic/repository/update.repository.d.ts +6 -6
  73. package/domain/index.d.ts +6 -6
  74. package/domain/location/index.d.ts +1 -1
  75. package/domain/location/models/address.d.ts +24 -24
  76. package/domain/location/models/index.d.ts +2 -2
  77. package/domain/location/models/types/index.d.ts +3 -3
  78. package/domain/location/models/types/location-bound.type.d.ts +6 -6
  79. package/domain/location/models/types/location-geometry.type.d.ts +7 -7
  80. package/domain/location/models/types/location-lat-lng.type.d.ts +4 -4
  81. package/domain/shop-settings/enums/filter-type.enum.d.ts +19 -19
  82. package/domain/shop-settings/enums/index.d.ts +3 -3
  83. package/domain/shop-settings/enums/questions-filters.enum.d.ts +19 -19
  84. package/domain/shop-settings/enums/shop-page-name.enum.d.ts +19 -19
  85. package/domain/shop-settings/helpers/beauty-questions.helper.d.ts +9 -9
  86. package/domain/shop-settings/helpers/index.d.ts +1 -1
  87. package/domain/shop-settings/index.d.ts +4 -4
  88. package/domain/shop-settings/models/campaign-banner.d.ts +11 -11
  89. package/domain/shop-settings/models/campaign.d.ts +10 -10
  90. package/domain/shop-settings/models/home.d.ts +18 -18
  91. package/domain/shop-settings/models/index.d.ts +6 -6
  92. package/domain/shop-settings/models/shop-menu.d.ts +7 -7
  93. package/domain/shop-settings/models/shop-settings.d.ts +13 -13
  94. package/domain/shop-settings/models/types/banner.type.d.ts +6 -6
  95. package/domain/shop-settings/models/types/benefit.type.d.ts +5 -5
  96. package/domain/shop-settings/models/types/campaign-page.d.ts +17 -17
  97. package/domain/shop-settings/models/types/home-data.type.d.ts +15 -15
  98. package/domain/shop-settings/models/types/index.d.ts +16 -14
  99. package/domain/shop-settings/models/types/landing-page.d.ts +8 -0
  100. package/domain/shop-settings/models/types/menu-nav.type.d.ts +8 -8
  101. package/domain/shop-settings/models/types/sections.type.d.ts +34 -31
  102. package/domain/shop-settings/models/types/shop-banner.type.d.ts +13 -13
  103. package/domain/shop-settings/models/types/shop-brands.type.d.ts +10 -10
  104. package/domain/shop-settings/models/types/shop-carousel.type.d.ts +4 -4
  105. package/domain/shop-settings/models/types/shop-collection.type.d.ts +9 -9
  106. package/domain/shop-settings/models/types/shop-gift.type.d.ts +8 -8
  107. package/domain/shop-settings/models/types/shop-home.d.ts +12 -12
  108. package/domain/shop-settings/models/types/shop-post.type.d.ts +7 -7
  109. package/domain/shop-settings/models/types/shop-section.type.d.ts +12 -12
  110. package/domain/shop-settings/models/types/sub-menu.type.d.ts +8 -8
  111. package/domain/shop-settings/repositories/campaign-banner.repository.d.ts +4 -4
  112. package/domain/shop-settings/repositories/campaign.repository.d.ts +4 -4
  113. package/domain/shop-settings/repositories/home.repository.d.ts +4 -4
  114. package/domain/shop-settings/repositories/index.d.ts +5 -5
  115. package/domain/shop-settings/repositories/shop-menu.repository.d.ts +4 -4
  116. package/domain/shop-settings/repositories/shop-settings.repository.d.ts +4 -4
  117. package/domain/shopping/index.d.ts +2 -2
  118. package/domain/shopping/models/buy-2-win.d.ts +18 -18
  119. package/domain/shopping/models/campaign-dashboard.d.ts +15 -15
  120. package/domain/shopping/models/campaign-hashtag.d.ts +18 -18
  121. package/domain/shopping/models/checkout.d.ts +26 -26
  122. package/domain/shopping/models/coupons/coupon.d.ts +60 -60
  123. package/domain/shopping/models/coupons/enums/coupon-club-mens.enum.d.ts +5 -5
  124. package/domain/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +4 -4
  125. package/domain/shopping/models/coupons/enums/coupon-types.enum.d.ts +4 -4
  126. package/domain/shopping/models/coupons/enums/exclusivities.enum.d.ts +8 -8
  127. package/domain/shopping/models/coupons/enums/index.d.ts +3 -3
  128. package/domain/shopping/models/coupons/index.d.ts +2 -2
  129. package/domain/shopping/models/enums/checkout-types.enum.d.ts +5 -5
  130. package/domain/shopping/models/enums/index.d.ts +2 -2
  131. package/domain/shopping/models/enums/order-status.enum.d.ts +10 -10
  132. package/domain/shopping/models/index.d.ts +12 -12
  133. package/domain/shopping/models/line-item.d.ts +8 -8
  134. package/domain/shopping/models/order.d.ts +10 -10
  135. package/domain/shopping/models/payment.d.ts +67 -67
  136. package/domain/shopping/models/shipping-method.d.ts +17 -17
  137. package/domain/shopping/models/subscription/checkout.d.ts +20 -20
  138. package/domain/shopping/models/subscription/index.d.ts +2 -2
  139. package/domain/shopping/models/subscription/plan.d.ts +10 -10
  140. package/domain/shopping/models/types/index.d.ts +7 -7
  141. package/domain/shopping/models/types/payment-address.type.d.ts +12 -12
  142. package/domain/shopping/models/types/payment-billing.type.d.ts +7 -7
  143. package/domain/shopping/models/types/payment-card.type.d.ts +14 -14
  144. package/domain/shopping/models/types/payment-customer.type.d.ts +18 -18
  145. package/domain/shopping/models/types/payment-document.type.d.ts +6 -6
  146. package/domain/shopping/models/types/payment-item.type.d.ts +11 -11
  147. package/domain/shopping/models/types/payment-shipping.type.d.ts +10 -10
  148. package/domain/shopping/repositories/buy-2-win.repository.d.ts +4 -4
  149. package/domain/shopping/repositories/campaign-dashboard.repository.d.ts +4 -4
  150. package/domain/shopping/repositories/campaign-hashtag.repository.d.ts +4 -4
  151. package/domain/shopping/repositories/checkout.repository.d.ts +4 -4
  152. package/domain/shopping/repositories/coupon.repository.d.ts +4 -4
  153. package/domain/shopping/repositories/index.d.ts +9 -9
  154. package/domain/shopping/repositories/legacy-order.repository.d.ts +3 -3
  155. package/domain/shopping/repositories/order.repository.d.ts +4 -4
  156. package/domain/shopping/repositories/payment.repository.d.ts +4 -4
  157. package/domain/shopping/repositories/subscription/checkout.repository.d.ts +4 -4
  158. package/domain/shopping/repositories/subscription/index.d.ts +2 -2
  159. package/domain/shopping/repositories/subscription/plan.repository.d.ts +4 -4
  160. package/domain/users/errors/index.d.ts +3 -3
  161. package/domain/users/errors/unauthorized.error.d.ts +4 -4
  162. package/domain/users/errors/user-already-registered.error.d.ts +4 -4
  163. package/domain/users/errors/weak-password.error.d.ts +4 -4
  164. package/domain/users/index.d.ts +5 -5
  165. package/domain/users/models/beauty-profile.d.ts +11 -11
  166. package/domain/users/models/enums/accessory-importances.enum.d.ts +5 -5
  167. package/domain/users/models/enums/area.enum.d.ts +11 -11
  168. package/domain/users/models/enums/beard-problems.enum.d.ts +9 -9
  169. package/domain/users/models/enums/beard-sizes.enum.d.ts +7 -7
  170. package/domain/users/models/enums/beauty-product-importances.enum.d.ts +6 -6
  171. package/domain/users/models/enums/body-problems.enum.d.ts +11 -11
  172. package/domain/users/models/enums/body-shapes.enum.d.ts +7 -7
  173. package/domain/users/models/enums/body-tattoos.enum.d.ts +5 -5
  174. package/domain/users/models/enums/face-skin-oilinesses.enum.d.ts +7 -7
  175. package/domain/users/models/enums/face-skin-problems.enum.d.ts +10 -10
  176. package/domain/users/models/enums/face-skin-tones.enum.d.ts +8 -8
  177. package/domain/users/models/enums/family-incomes.enum.d.ts +8 -8
  178. package/domain/users/models/enums/fragrance-importances.enum.d.ts +5 -5
  179. package/domain/users/models/enums/hair-colors.enum.d.ts +10 -10
  180. package/domain/users/models/enums/hair-problems.enum.d.ts +10 -10
  181. package/domain/users/models/enums/hair-strands.enum.d.ts +8 -8
  182. package/domain/users/models/enums/hair-types.enum.d.ts +7 -7
  183. package/domain/users/models/enums/index.d.ts +20 -20
  184. package/domain/users/models/enums/office-position.enum.d.ts +6 -6
  185. package/domain/users/models/enums/product-spents.enum.d.ts +8 -8
  186. package/domain/users/models/enums/user-type.enum.d.ts +8 -8
  187. package/domain/users/models/index.d.ts +7 -7
  188. package/domain/users/models/lead.d.ts +8 -8
  189. package/domain/users/models/subscription/edition.d.ts +16 -16
  190. package/domain/users/models/subscription/enums/billing-status.enum.d.ts +3 -3
  191. package/domain/users/models/subscription/enums/edition-status.enum.d.ts +4 -4
  192. package/domain/users/models/subscription/enums/index.d.ts +4 -4
  193. package/domain/users/models/subscription/enums/payment-type.enum.d.ts +5 -5
  194. package/domain/users/models/subscription/enums/status.enum.d.ts +4 -4
  195. package/domain/users/models/subscription/index.d.ts +4 -4
  196. package/domain/users/models/subscription/payment.d.ts +13 -13
  197. package/domain/users/models/subscription/subscription.d.ts +28 -28
  198. package/domain/users/models/user-address.d.ts +6 -6
  199. package/domain/users/models/user-payment-method.d.ts +14 -14
  200. package/domain/users/models/user.d.ts +27 -27
  201. package/domain/users/repositories/beauty-profile.repository.d.ts +4 -4
  202. package/domain/users/repositories/edition.repository.d.ts +4 -4
  203. package/domain/users/repositories/index.d.ts +8 -8
  204. package/domain/users/repositories/lead.repository.d.ts +4 -4
  205. package/domain/users/repositories/subscription-payment.repository.d.ts +4 -4
  206. package/domain/users/repositories/subscription.repository.d.ts +4 -4
  207. package/domain/users/repositories/user-address.repository.d.ts +4 -4
  208. package/domain/users/repositories/user-payment-method.repository.d.ts +4 -4
  209. package/domain/users/repositories/user.repository.d.ts +6 -6
  210. package/domain/users/services/authentication.service.d.ts +12 -12
  211. package/domain/users/services/index.d.ts +3 -3
  212. package/domain/users/services/register.service.d.ts +7 -7
  213. package/domain/users/services/types/basic-user-data.type.d.ts +4 -4
  214. package/domain/users/services/types/index.d.ts +1 -1
  215. package/domain/users/use-cases/authentication.d.ts +21 -21
  216. package/domain/users/use-cases/index.d.ts +4 -4
  217. package/domain/users/use-cases/recovery-password.d.ts +6 -6
  218. package/domain/users/use-cases/register.d.ts +13 -13
  219. package/domain/users/use-cases/signout.d.ts +6 -6
  220. package/errors/duplicated-results.error.d.ts +4 -4
  221. package/errors/index.d.ts +4 -4
  222. package/errors/invalid-argument.error.d.ts +4 -4
  223. package/errors/not-found.error.d.ts +4 -4
  224. package/errors/required-argument.error.d.ts +6 -6
  225. package/esm2020/domain/catalog/helpers/index.mjs +2 -2
  226. package/esm2020/domain/catalog/helpers/round-product-price.helper.mjs +15 -15
  227. package/esm2020/domain/catalog/index.mjs +4 -4
  228. package/esm2020/domain/catalog/models/category-base.mjs +18 -18
  229. package/esm2020/domain/catalog/models/category-collection-children.mjs +13 -13
  230. package/esm2020/domain/catalog/models/category-filter.mjs +19 -19
  231. package/esm2020/domain/catalog/models/category-for-product.mjs +7 -7
  232. package/esm2020/domain/catalog/models/category.mjs +14 -14
  233. package/esm2020/domain/catalog/models/enums/index.mjs +3 -3
  234. package/esm2020/domain/catalog/models/enums/product-genders.enum.mjs +7 -7
  235. package/esm2020/domain/catalog/models/enums/shops.enum.mjs +8 -8
  236. package/esm2020/domain/catalog/models/filter-option.mjs +7 -7
  237. package/esm2020/domain/catalog/models/filter.mjs +7 -7
  238. package/esm2020/domain/catalog/models/index.mjs +12 -12
  239. package/esm2020/domain/catalog/models/kit-product.mjs +18 -18
  240. package/esm2020/domain/catalog/models/product-base.mjs +25 -25
  241. package/esm2020/domain/catalog/models/product-for-category.mjs +14 -14
  242. package/esm2020/domain/catalog/models/product-for-kit.mjs +14 -14
  243. package/esm2020/domain/catalog/models/product.mjs +19 -19
  244. package/esm2020/domain/catalog/models/types/category-condition.type.mjs +2 -2
  245. package/esm2020/domain/catalog/models/types/category-metadata.type.mjs +2 -2
  246. package/esm2020/domain/catalog/models/types/category-product.mjs +2 -2
  247. package/esm2020/domain/catalog/models/types/index.mjs +12 -12
  248. package/esm2020/domain/catalog/models/types/product-evaluation.type.mjs +2 -2
  249. package/esm2020/domain/catalog/models/types/product-gender.type.mjs +2 -2
  250. package/esm2020/domain/catalog/models/types/product-metadata.type.mjs +2 -2
  251. package/esm2020/domain/catalog/models/types/product-review.type.mjs +2 -2
  252. package/esm2020/domain/catalog/models/types/shop-description.type.mjs +2 -2
  253. package/esm2020/domain/catalog/models/types/shop-price.type.mjs +2 -2
  254. package/esm2020/domain/catalog/models/types/stock.type.mjs +2 -2
  255. package/esm2020/domain/catalog/models/types/variant-grade.type.mjs +2 -2
  256. package/esm2020/domain/catalog/models/variant.mjs +7 -7
  257. package/esm2020/domain/catalog/models/wishlist.mjs +7 -7
  258. package/esm2020/domain/catalog/repositories/category-collection-children.repository.mjs +2 -2
  259. package/esm2020/domain/catalog/repositories/category-filter.repository.mjs +2 -2
  260. package/esm2020/domain/catalog/repositories/category.repository.mjs +2 -2
  261. package/esm2020/domain/catalog/repositories/filter-option.repository.mjs +2 -2
  262. package/esm2020/domain/catalog/repositories/filter.repository.mjs +2 -2
  263. package/esm2020/domain/catalog/repositories/index.mjs +10 -10
  264. package/esm2020/domain/catalog/repositories/product.repository.mjs +2 -2
  265. package/esm2020/domain/catalog/repositories/subscription-product.repository.mjs +2 -2
  266. package/esm2020/domain/catalog/repositories/variant.repository.mjs +2 -2
  267. package/esm2020/domain/catalog/repositories/wishlist.repository.mjs +2 -2
  268. package/esm2020/domain/generic/index.mjs +3 -3
  269. package/esm2020/domain/generic/model/base.model.mjs +24 -24
  270. package/esm2020/domain/generic/model/identifier-fields.mjs +2 -2
  271. package/esm2020/domain/generic/model/index.mjs +4 -4
  272. package/esm2020/domain/generic/model/types/base-model-builder.type.mjs +2 -2
  273. package/esm2020/domain/generic/model/types/identifier-model.type.mjs +2 -2
  274. package/esm2020/domain/generic/model/types/index.mjs +6 -6
  275. package/esm2020/domain/generic/model/types/model-base-structure.type.mjs +2 -2
  276. package/esm2020/domain/generic/model/types/non-function-properties.type.mjs +2 -2
  277. package/esm2020/domain/generic/model/types/non-function-property-name.type.mjs +2 -2
  278. package/esm2020/domain/generic/repository/create.repository.mjs +2 -2
  279. package/esm2020/domain/generic/repository/crud.repository.mjs +2 -2
  280. package/esm2020/domain/generic/repository/delete.repository.mjs +2 -2
  281. package/esm2020/domain/generic/repository/enums/index.mjs +3 -3
  282. package/esm2020/domain/generic/repository/enums/update-option-actions.enum.mjs +9 -9
  283. package/esm2020/domain/generic/repository/enums/where.enum.mjs +16 -16
  284. package/esm2020/domain/generic/repository/find.repository.mjs +2 -2
  285. package/esm2020/domain/generic/repository/get.repository.mjs +2 -2
  286. package/esm2020/domain/generic/repository/index.mjs +10 -10
  287. package/esm2020/domain/generic/repository/read.repository.mjs +2 -2
  288. package/esm2020/domain/generic/repository/types/index.mjs +7 -7
  289. package/esm2020/domain/generic/repository/types/repository-find-filters.type.mjs +2 -2
  290. package/esm2020/domain/generic/repository/types/repository-find-result.type.mjs +2 -2
  291. package/esm2020/domain/generic/repository/types/repository-limit-options.type.mjs +2 -2
  292. package/esm2020/domain/generic/repository/types/repository-order-by-list.type.mjs +2 -2
  293. package/esm2020/domain/generic/repository/types/repository-update-params.type.mjs +2 -2
  294. package/esm2020/domain/generic/repository/types/where-options.type.mjs +2 -2
  295. package/esm2020/domain/generic/repository/update.repository.mjs +2 -2
  296. package/esm2020/domain/index.mjs +7 -7
  297. package/esm2020/domain/location/index.mjs +2 -2
  298. package/esm2020/domain/location/models/address.mjs +7 -7
  299. package/esm2020/domain/location/models/index.mjs +3 -3
  300. package/esm2020/domain/location/models/types/index.mjs +4 -4
  301. package/esm2020/domain/location/models/types/location-bound.type.mjs +2 -2
  302. package/esm2020/domain/location/models/types/location-geometry.type.mjs +2 -2
  303. package/esm2020/domain/location/models/types/location-lat-lng.type.mjs +2 -2
  304. package/esm2020/domain/shop-settings/enums/filter-type.enum.mjs +21 -21
  305. package/esm2020/domain/shop-settings/enums/index.mjs +4 -4
  306. package/esm2020/domain/shop-settings/enums/questions-filters.enum.mjs +21 -21
  307. package/esm2020/domain/shop-settings/enums/shop-page-name.enum.mjs +21 -21
  308. package/esm2020/domain/shop-settings/helpers/beauty-questions.helper.mjs +47 -47
  309. package/esm2020/domain/shop-settings/helpers/index.mjs +2 -2
  310. package/esm2020/domain/shop-settings/index.mjs +5 -5
  311. package/esm2020/domain/shop-settings/models/campaign-banner.mjs +7 -7
  312. package/esm2020/domain/shop-settings/models/campaign.mjs +7 -7
  313. package/esm2020/domain/shop-settings/models/home.mjs +7 -7
  314. package/esm2020/domain/shop-settings/models/index.mjs +7 -7
  315. package/esm2020/domain/shop-settings/models/shop-menu.mjs +7 -7
  316. package/esm2020/domain/shop-settings/models/shop-settings.mjs +7 -7
  317. package/esm2020/domain/shop-settings/models/types/banner.type.mjs +2 -2
  318. package/esm2020/domain/shop-settings/models/types/benefit.type.mjs +2 -2
  319. package/esm2020/domain/shop-settings/models/types/campaign-page.mjs +2 -2
  320. package/esm2020/domain/shop-settings/models/types/home-data.type.mjs +2 -2
  321. package/esm2020/domain/shop-settings/models/types/index.mjs +17 -15
  322. package/esm2020/domain/shop-settings/models/types/landing-page.mjs +2 -0
  323. package/esm2020/domain/shop-settings/models/types/menu-nav.type.mjs +2 -2
  324. package/esm2020/domain/shop-settings/models/types/sections.type.mjs +2 -2
  325. package/esm2020/domain/shop-settings/models/types/shop-banner.type.mjs +2 -2
  326. package/esm2020/domain/shop-settings/models/types/shop-brands.type.mjs +2 -2
  327. package/esm2020/domain/shop-settings/models/types/shop-carousel.type.mjs +2 -2
  328. package/esm2020/domain/shop-settings/models/types/shop-collection.type.mjs +2 -2
  329. package/esm2020/domain/shop-settings/models/types/shop-gift.type.mjs +2 -2
  330. package/esm2020/domain/shop-settings/models/types/shop-home.mjs +2 -2
  331. package/esm2020/domain/shop-settings/models/types/shop-post.type.mjs +2 -2
  332. package/esm2020/domain/shop-settings/models/types/shop-section.type.mjs +2 -2
  333. package/esm2020/domain/shop-settings/models/types/sub-menu.type.mjs +2 -2
  334. package/esm2020/domain/shop-settings/repositories/campaign-banner.repository.mjs +2 -2
  335. package/esm2020/domain/shop-settings/repositories/campaign.repository.mjs +2 -2
  336. package/esm2020/domain/shop-settings/repositories/home.repository.mjs +2 -2
  337. package/esm2020/domain/shop-settings/repositories/index.mjs +6 -6
  338. package/esm2020/domain/shop-settings/repositories/shop-menu.repository.mjs +2 -2
  339. package/esm2020/domain/shop-settings/repositories/shop-settings.repository.mjs +2 -2
  340. package/esm2020/domain/shopping/index.mjs +3 -3
  341. package/esm2020/domain/shopping/models/buy-2-win.mjs +14 -14
  342. package/esm2020/domain/shopping/models/campaign-dashboard.mjs +7 -7
  343. package/esm2020/domain/shopping/models/campaign-hashtag.mjs +7 -7
  344. package/esm2020/domain/shopping/models/checkout.mjs +37 -37
  345. package/esm2020/domain/shopping/models/coupons/coupon.mjs +38 -38
  346. package/esm2020/domain/shopping/models/coupons/enums/coupon-club-mens.enum.mjs +7 -7
  347. package/esm2020/domain/shopping/models/coupons/enums/coupon-subtypes.enum.mjs +6 -6
  348. package/esm2020/domain/shopping/models/coupons/enums/coupon-types.enum.mjs +10 -10
  349. package/esm2020/domain/shopping/models/coupons/enums/exclusivities.enum.mjs +10 -10
  350. package/esm2020/domain/shopping/models/coupons/enums/index.mjs +4 -4
  351. package/esm2020/domain/shopping/models/coupons/index.mjs +3 -3
  352. package/esm2020/domain/shopping/models/enums/checkout-types.enum.mjs +7 -7
  353. package/esm2020/domain/shopping/models/enums/index.mjs +3 -3
  354. package/esm2020/domain/shopping/models/enums/order-status.enum.mjs +12 -12
  355. package/esm2020/domain/shopping/models/index.mjs +13 -13
  356. package/esm2020/domain/shopping/models/line-item.mjs +4 -4
  357. package/esm2020/domain/shopping/models/order.mjs +11 -11
  358. package/esm2020/domain/shopping/models/payment.mjs +169 -169
  359. package/esm2020/domain/shopping/models/shipping-method.mjs +7 -7
  360. package/esm2020/domain/shopping/models/subscription/checkout.mjs +28 -28
  361. package/esm2020/domain/shopping/models/subscription/index.mjs +3 -3
  362. package/esm2020/domain/shopping/models/subscription/plan.mjs +7 -7
  363. package/esm2020/domain/shopping/models/types/index.mjs +8 -8
  364. package/esm2020/domain/shopping/models/types/payment-address.type.mjs +2 -2
  365. package/esm2020/domain/shopping/models/types/payment-billing.type.mjs +2 -2
  366. package/esm2020/domain/shopping/models/types/payment-card.type.mjs +2 -2
  367. package/esm2020/domain/shopping/models/types/payment-customer.type.mjs +2 -2
  368. package/esm2020/domain/shopping/models/types/payment-document.type.mjs +2 -2
  369. package/esm2020/domain/shopping/models/types/payment-item.type.mjs +2 -2
  370. package/esm2020/domain/shopping/models/types/payment-shipping.type.mjs +2 -2
  371. package/esm2020/domain/shopping/repositories/buy-2-win.repository.mjs +2 -2
  372. package/esm2020/domain/shopping/repositories/campaign-dashboard.repository.mjs +2 -2
  373. package/esm2020/domain/shopping/repositories/campaign-hashtag.repository.mjs +2 -2
  374. package/esm2020/domain/shopping/repositories/checkout.repository.mjs +2 -2
  375. package/esm2020/domain/shopping/repositories/coupon.repository.mjs +2 -2
  376. package/esm2020/domain/shopping/repositories/index.mjs +10 -10
  377. package/esm2020/domain/shopping/repositories/legacy-order.repository.mjs +2 -2
  378. package/esm2020/domain/shopping/repositories/order.repository.mjs +2 -2
  379. package/esm2020/domain/shopping/repositories/payment.repository.mjs +2 -2
  380. package/esm2020/domain/shopping/repositories/subscription/checkout.repository.mjs +2 -2
  381. package/esm2020/domain/shopping/repositories/subscription/index.mjs +3 -3
  382. package/esm2020/domain/shopping/repositories/subscription/plan.repository.mjs +2 -2
  383. package/esm2020/domain/users/errors/index.mjs +4 -4
  384. package/esm2020/domain/users/errors/unauthorized.error.mjs +7 -7
  385. package/esm2020/domain/users/errors/user-already-registered.error.mjs +7 -7
  386. package/esm2020/domain/users/errors/weak-password.error.mjs +7 -7
  387. package/esm2020/domain/users/index.mjs +6 -6
  388. package/esm2020/domain/users/models/beauty-profile.mjs +12 -12
  389. package/esm2020/domain/users/models/enums/accessory-importances.enum.mjs +7 -7
  390. package/esm2020/domain/users/models/enums/area.enum.mjs +13 -13
  391. package/esm2020/domain/users/models/enums/beard-problems.enum.mjs +11 -11
  392. package/esm2020/domain/users/models/enums/beard-sizes.enum.mjs +9 -9
  393. package/esm2020/domain/users/models/enums/beauty-product-importances.enum.mjs +8 -8
  394. package/esm2020/domain/users/models/enums/body-problems.enum.mjs +13 -13
  395. package/esm2020/domain/users/models/enums/body-shapes.enum.mjs +9 -9
  396. package/esm2020/domain/users/models/enums/body-tattoos.enum.mjs +7 -7
  397. package/esm2020/domain/users/models/enums/face-skin-oilinesses.enum.mjs +9 -9
  398. package/esm2020/domain/users/models/enums/face-skin-problems.enum.mjs +12 -12
  399. package/esm2020/domain/users/models/enums/face-skin-tones.enum.mjs +10 -10
  400. package/esm2020/domain/users/models/enums/family-incomes.enum.mjs +10 -10
  401. package/esm2020/domain/users/models/enums/fragrance-importances.enum.mjs +7 -7
  402. package/esm2020/domain/users/models/enums/hair-colors.enum.mjs +12 -12
  403. package/esm2020/domain/users/models/enums/hair-problems.enum.mjs +12 -12
  404. package/esm2020/domain/users/models/enums/hair-strands.enum.mjs +10 -10
  405. package/esm2020/domain/users/models/enums/hair-types.enum.mjs +9 -9
  406. package/esm2020/domain/users/models/enums/index.mjs +21 -21
  407. package/esm2020/domain/users/models/enums/office-position.enum.mjs +8 -8
  408. package/esm2020/domain/users/models/enums/product-spents.enum.mjs +10 -10
  409. package/esm2020/domain/users/models/enums/user-type.enum.mjs +10 -10
  410. package/esm2020/domain/users/models/index.mjs +8 -8
  411. package/esm2020/domain/users/models/lead.mjs +7 -7
  412. package/esm2020/domain/users/models/subscription/edition.mjs +7 -7
  413. package/esm2020/domain/users/models/subscription/enums/billing-status.enum.mjs +5 -5
  414. package/esm2020/domain/users/models/subscription/enums/edition-status.enum.mjs +6 -6
  415. package/esm2020/domain/users/models/subscription/enums/index.mjs +5 -5
  416. package/esm2020/domain/users/models/subscription/enums/payment-type.enum.mjs +7 -7
  417. package/esm2020/domain/users/models/subscription/enums/status.enum.mjs +6 -6
  418. package/esm2020/domain/users/models/subscription/index.mjs +5 -5
  419. package/esm2020/domain/users/models/subscription/payment.mjs +14 -14
  420. package/esm2020/domain/users/models/subscription/subscription.mjs +43 -43
  421. package/esm2020/domain/users/models/user-address.mjs +7 -7
  422. package/esm2020/domain/users/models/user-payment-method.mjs +7 -7
  423. package/esm2020/domain/users/models/user.mjs +26 -26
  424. package/esm2020/domain/users/repositories/beauty-profile.repository.mjs +2 -2
  425. package/esm2020/domain/users/repositories/edition.repository.mjs +2 -2
  426. package/esm2020/domain/users/repositories/index.mjs +9 -9
  427. package/esm2020/domain/users/repositories/lead.repository.mjs +2 -2
  428. package/esm2020/domain/users/repositories/subscription-payment.repository.mjs +2 -2
  429. package/esm2020/domain/users/repositories/subscription.repository.mjs +2 -2
  430. package/esm2020/domain/users/repositories/user-address.repository.mjs +2 -2
  431. package/esm2020/domain/users/repositories/user-payment-method.repository.mjs +2 -2
  432. package/esm2020/domain/users/repositories/user.repository.mjs +2 -2
  433. package/esm2020/domain/users/services/authentication.service.mjs +2 -2
  434. package/esm2020/domain/users/services/index.mjs +4 -4
  435. package/esm2020/domain/users/services/register.service.mjs +2 -2
  436. package/esm2020/domain/users/services/types/basic-user-data.type.mjs +2 -2
  437. package/esm2020/domain/users/services/types/index.mjs +2 -2
  438. package/esm2020/domain/users/use-cases/authentication.mjs +43 -43
  439. package/esm2020/domain/users/use-cases/index.mjs +5 -5
  440. package/esm2020/domain/users/use-cases/recovery-password.mjs +9 -9
  441. package/esm2020/domain/users/use-cases/register.mjs +38 -38
  442. package/esm2020/domain/users/use-cases/signout.mjs +9 -9
  443. package/esm2020/errors/duplicated-results.error.mjs +7 -7
  444. package/esm2020/errors/index.mjs +5 -5
  445. package/esm2020/errors/invalid-argument.error.mjs +7 -7
  446. package/esm2020/errors/not-found.error.mjs +7 -7
  447. package/esm2020/errors/required-argument.error.mjs +9 -9
  448. package/esm2020/index.mjs +6 -6
  449. package/esm2020/infra/elasticsearch/adapters/axios.adapter.mjs +67 -67
  450. package/esm2020/infra/elasticsearch/adapters/elastic-search.adapter.mjs +2 -2
  451. package/esm2020/infra/elasticsearch/adapters/index.mjs +3 -3
  452. package/esm2020/infra/elasticsearch/index.mjs +4 -4
  453. package/esm2020/infra/elasticsearch/indexes/index.mjs +2 -2
  454. package/esm2020/infra/elasticsearch/indexes/products-index.mjs +104 -104
  455. package/esm2020/infra/elasticsearch/types/elastic-search-result.mjs +2 -2
  456. package/esm2020/infra/elasticsearch/types/index.mjs +2 -2
  457. package/esm2020/infra/firebase/auth/authentication-firebase-auth.service.mjs +41 -41
  458. package/esm2020/infra/firebase/auth/index.mjs +3 -3
  459. package/esm2020/infra/firebase/auth/register-firebase-auth.service.mjs +33 -33
  460. package/esm2020/infra/firebase/auth/types/firebase-user-with-id.type.mjs +2 -2
  461. package/esm2020/infra/firebase/firestore/enums/firestore-field-type.enum.mjs +10 -10
  462. package/esm2020/infra/firebase/firestore/enums/index.mjs +2 -2
  463. package/esm2020/infra/firebase/firestore/index.mjs +4 -4
  464. package/esm2020/infra/firebase/firestore/mixins/index.mjs +10 -10
  465. package/esm2020/infra/firebase/firestore/mixins/with-create-firestore.mixin.mjs +31 -31
  466. package/esm2020/infra/firebase/firestore/mixins/with-crud-firestore.mixin.mjs +10 -10
  467. package/esm2020/infra/firebase/firestore/mixins/with-delete-firestore.mixin.mjs +18 -18
  468. package/esm2020/infra/firebase/firestore/mixins/with-find-firestore.mixin.mjs +110 -110
  469. package/esm2020/infra/firebase/firestore/mixins/with-firestore.mixin.mjs +80 -80
  470. package/esm2020/infra/firebase/firestore/mixins/with-get-firestore.mixin.mjs +23 -23
  471. package/esm2020/infra/firebase/firestore/mixins/with-helpers.mixin.mjs +17 -17
  472. package/esm2020/infra/firebase/firestore/mixins/with-sub-collection.mixin.mjs +13 -13
  473. package/esm2020/infra/firebase/firestore/mixins/with-update-firestore.mixin.mjs +51 -51
  474. package/esm2020/infra/firebase/firestore/repositories/catalog/category-firestore.repository.mjs +67 -67
  475. package/esm2020/infra/firebase/firestore/repositories/catalog/index.mjs +5 -5
  476. package/esm2020/infra/firebase/firestore/repositories/catalog/product-firestore.repository.mjs +54 -54
  477. package/esm2020/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.mjs +16 -16
  478. package/esm2020/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.mjs +14 -14
  479. package/esm2020/infra/firebase/firestore/repositories/index.mjs +5 -5
  480. package/esm2020/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.mjs +60 -60
  481. package/esm2020/infra/firebase/firestore/repositories/shop-settings/index.mjs +4 -4
  482. package/esm2020/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.mjs +14 -14
  483. package/esm2020/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.mjs +14 -14
  484. package/esm2020/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.mjs +14 -14
  485. package/esm2020/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.mjs +14 -14
  486. package/esm2020/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.mjs +14 -14
  487. package/esm2020/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.mjs +14 -14
  488. package/esm2020/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.mjs +14 -14
  489. package/esm2020/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.mjs +31 -31
  490. package/esm2020/infra/firebase/firestore/repositories/shopping/index.mjs +11 -11
  491. package/esm2020/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.mjs +11 -11
  492. package/esm2020/infra/firebase/firestore/repositories/shopping/order-firestore.repository.mjs +40 -40
  493. package/esm2020/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.mjs +14 -14
  494. package/esm2020/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.mjs +14 -14
  495. package/esm2020/infra/firebase/firestore/repositories/users/index.mjs +9 -9
  496. package/esm2020/infra/firebase/firestore/repositories/users/lead-firestore.repository.mjs +14 -14
  497. package/esm2020/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.mjs +16 -16
  498. package/esm2020/infra/firebase/firestore/repositories/users/subscription-firestore.repository.mjs +14 -14
  499. package/esm2020/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.mjs +16 -16
  500. package/esm2020/infra/firebase/firestore/repositories/users/user-address-firestore.repository.mjs +16 -16
  501. package/esm2020/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.mjs +16 -16
  502. package/esm2020/infra/firebase/firestore/repositories/users/user-firestore.repository.mjs +50 -50
  503. package/esm2020/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.mjs +16 -16
  504. package/esm2020/infra/firebase/firestore/types/firestore-interceptors.type.mjs +2 -2
  505. package/esm2020/infra/firebase/firestore/types/firestore-sub.repository.type.mjs +2 -2
  506. package/esm2020/infra/firebase/firestore/types/firestore.helpers.type.mjs +2 -2
  507. package/esm2020/infra/firebase/firestore/types/firestore.repository.type.mjs +2 -2
  508. package/esm2020/infra/firebase/firestore/types/index.mjs +5 -5
  509. package/esm2020/infra/firebase/index.mjs +3 -3
  510. package/esm2020/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.mjs +13 -13
  511. package/esm2020/infra/hasura-graphql/enums/hasura-graphql-where.enum.mjs +17 -17
  512. package/esm2020/infra/hasura-graphql/enums/index.mjs +3 -3
  513. package/esm2020/infra/hasura-graphql/index.mjs +5 -5
  514. package/esm2020/infra/hasura-graphql/mixins/helpers/attribute-option.helper.mjs +35 -35
  515. package/esm2020/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.mjs +71 -71
  516. package/esm2020/infra/hasura-graphql/mixins/helpers/filter-option.helper.mjs +22 -22
  517. package/esm2020/infra/hasura-graphql/mixins/helpers/graphql-field.helper.mjs +125 -125
  518. package/esm2020/infra/hasura-graphql/mixins/helpers/index.mjs +5 -5
  519. package/esm2020/infra/hasura-graphql/mixins/index.mjs +8 -8
  520. package/esm2020/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.mjs +39 -39
  521. package/esm2020/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.mjs +10 -10
  522. package/esm2020/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.mjs +31 -31
  523. package/esm2020/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.mjs +152 -152
  524. package/esm2020/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.mjs +37 -37
  525. package/esm2020/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.mjs +108 -108
  526. package/esm2020/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.mjs +62 -62
  527. package/esm2020/infra/hasura-graphql/models/category-hasura-graphql.mjs +4 -4
  528. package/esm2020/infra/hasura-graphql/models/index.mjs +5 -5
  529. package/esm2020/infra/hasura-graphql/models/kit-product-hasura-graphql.mjs +15 -15
  530. package/esm2020/infra/hasura-graphql/models/product-hasura-graphql.mjs +11 -11
  531. package/esm2020/infra/hasura-graphql/models/variant-hasura-graphql.mjs +9 -9
  532. package/esm2020/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.mjs +39 -39
  533. package/esm2020/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.mjs +107 -107
  534. package/esm2020/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.mjs +338 -338
  535. package/esm2020/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.mjs +105 -105
  536. package/esm2020/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.mjs +22 -22
  537. package/esm2020/infra/hasura-graphql/repositories/catalog/index.mjs +9 -9
  538. package/esm2020/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.mjs +516 -516
  539. package/esm2020/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.mjs +114 -114
  540. package/esm2020/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.mjs +238 -238
  541. package/esm2020/infra/hasura-graphql/repositories/index.mjs +2 -2
  542. package/esm2020/infra/hasura-graphql/types/fields.type.mjs +2 -2
  543. package/esm2020/infra/hasura-graphql/types/graphql.repository.type.mjs +2 -2
  544. package/esm2020/infra/hasura-graphql/types/hasura-graphql-auth-options.type.mjs +2 -2
  545. package/esm2020/infra/hasura-graphql/types/hasura-graphql-fields.type.mjs +2 -2
  546. package/esm2020/infra/hasura-graphql/types/hasura-graphql-headers.type.mjs +2 -2
  547. package/esm2020/infra/hasura-graphql/types/index.mjs +9 -9
  548. package/esm2020/infra/hasura-graphql/types/nested-field.type.mjs +2 -2
  549. package/esm2020/infra/hasura-graphql/types/query-builder-options.type.mjs +2 -2
  550. package/esm2020/infra/hasura-graphql/types/variable-options.type.mjs +2 -2
  551. package/esm2020/infra/index.mjs +4 -4
  552. package/esm2020/infrab4a-connect.mjs +4 -4
  553. package/esm2020/utils/decorators/debug.class.decorator.mjs +7 -7
  554. package/esm2020/utils/decorators/index.mjs +3 -3
  555. package/esm2020/utils/decorators/trace.method.decorator.mjs +81 -81
  556. package/esm2020/utils/get.mjs +3 -3
  557. package/esm2020/utils/helpers/class-name.helper.mjs +15 -15
  558. package/esm2020/utils/helpers/debug-decorator.helper.mjs +18 -18
  559. package/esm2020/utils/helpers/debug.helper.mjs +150 -150
  560. package/esm2020/utils/helpers/index.mjs +5 -5
  561. package/esm2020/utils/helpers/reflect.helper.mjs +165 -165
  562. package/esm2020/utils/index.mjs +13 -13
  563. package/esm2020/utils/is-uuid.mjs +3 -3
  564. package/esm2020/utils/is.mjs +4 -4
  565. package/esm2020/utils/log.utils.mjs +9 -9
  566. package/esm2020/utils/mixins/base.mixin.mjs +6 -6
  567. package/esm2020/utils/mixins/index.mjs +4 -4
  568. package/esm2020/utils/mixins/merge-constructor-params.type.mjs +2 -2
  569. package/esm2020/utils/mixins/mixin-ctor.type.mjs +2 -2
  570. package/esm2020/utils/parse-datetime.mjs +14 -14
  571. package/esm2020/utils/types/array-element.type.mjs +2 -2
  572. package/esm2020/utils/types/index.mjs +3 -3
  573. package/esm2020/utils/types/prop.type.mjs +2 -2
  574. package/fesm2015/infrab4a-connect.mjs +4627 -4627
  575. package/fesm2015/infrab4a-connect.mjs.map +1 -1
  576. package/fesm2020/infrab4a-connect.mjs +4541 -4541
  577. package/fesm2020/infrab4a-connect.mjs.map +1 -1
  578. package/index.d.ts +5 -5
  579. package/infra/elasticsearch/adapters/axios.adapter.d.ts +16 -16
  580. package/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +8 -8
  581. package/infra/elasticsearch/adapters/index.d.ts +2 -2
  582. package/infra/elasticsearch/index.d.ts +3 -3
  583. package/infra/elasticsearch/indexes/index.d.ts +1 -1
  584. package/infra/elasticsearch/indexes/products-index.d.ts +13 -13
  585. package/infra/elasticsearch/types/elastic-search-result.d.ts +9 -9
  586. package/infra/elasticsearch/types/index.d.ts +1 -1
  587. package/infra/firebase/auth/authentication-firebase-auth.service.d.ts +12 -12
  588. package/infra/firebase/auth/index.d.ts +2 -2
  589. package/infra/firebase/auth/register-firebase-auth.service.d.ts +8 -8
  590. package/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +5 -5
  591. package/infra/firebase/firestore/enums/firestore-field-type.enum.d.ts +8 -8
  592. package/infra/firebase/firestore/enums/index.d.ts +1 -1
  593. package/infra/firebase/firestore/index.d.ts +3 -3
  594. package/infra/firebase/firestore/mixins/index.d.ts +9 -9
  595. package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +4 -4
  596. package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +5 -5
  597. package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +4 -4
  598. package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +4 -4
  599. package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +13 -13
  600. package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +4 -4
  601. package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +11 -11
  602. package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +11 -11
  603. package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +7 -7
  604. package/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +20 -20
  605. package/infra/firebase/firestore/repositories/catalog/index.d.ts +4 -4
  606. package/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +12 -12
  607. package/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +12 -12
  608. package/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +7 -7
  609. package/infra/firebase/firestore/repositories/index.d.ts +4 -4
  610. package/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +16 -16
  611. package/infra/firebase/firestore/repositories/shop-settings/index.d.ts +3 -3
  612. package/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +7 -7
  613. package/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +7 -7
  614. package/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +7 -7
  615. package/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.d.ts +8 -8
  616. package/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.d.ts +8 -8
  617. package/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +7 -7
  618. package/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +7 -7
  619. package/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +12 -12
  620. package/infra/firebase/firestore/repositories/shopping/index.d.ts +10 -10
  621. package/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +6 -6
  622. package/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +13 -13
  623. package/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +7 -7
  624. package/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +7 -7
  625. package/infra/firebase/firestore/repositories/users/index.d.ts +8 -8
  626. package/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +7 -7
  627. package/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +12 -12
  628. package/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +7 -7
  629. package/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +12 -12
  630. package/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +12 -12
  631. package/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +12 -12
  632. package/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +17 -17
  633. package/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +12 -12
  634. package/infra/firebase/firestore/types/firestore-interceptors.type.d.ts +14 -14
  635. package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +6 -6
  636. package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +8 -8
  637. package/infra/firebase/firestore/types/firestore.repository.type.d.ts +16 -16
  638. package/infra/firebase/firestore/types/index.d.ts +4 -4
  639. package/infra/firebase/index.d.ts +2 -2
  640. package/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.d.ts +11 -11
  641. package/infra/hasura-graphql/enums/hasura-graphql-where.enum.d.ts +15 -15
  642. package/infra/hasura-graphql/enums/index.d.ts +2 -2
  643. package/infra/hasura-graphql/index.d.ts +4 -4
  644. package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +19 -19
  645. package/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.d.ts +10 -10
  646. package/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +8 -8
  647. package/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +12 -12
  648. package/infra/hasura-graphql/mixins/helpers/index.d.ts +4 -4
  649. package/infra/hasura-graphql/mixins/index.d.ts +7 -7
  650. package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +9 -9
  651. package/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +11 -11
  652. package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +7 -7
  653. package/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +34 -34
  654. package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +25 -25
  655. package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +23 -23
  656. package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +14 -14
  657. package/infra/hasura-graphql/models/category-hasura-graphql.d.ts +6 -6
  658. package/infra/hasura-graphql/models/index.d.ts +4 -4
  659. package/infra/hasura-graphql/models/kit-product-hasura-graphql.d.ts +6 -6
  660. package/infra/hasura-graphql/models/product-hasura-graphql.d.ts +18 -18
  661. package/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +10 -10
  662. package/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.d.ts +10 -10
  663. package/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.d.ts +12 -12
  664. package/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +34 -34
  665. package/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.d.ts +18 -18
  666. package/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.d.ts +10 -10
  667. package/infra/hasura-graphql/repositories/catalog/index.d.ts +8 -8
  668. package/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +30 -30
  669. package/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +14 -14
  670. package/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.d.ts +27 -27
  671. package/infra/hasura-graphql/repositories/index.d.ts +1 -1
  672. package/infra/hasura-graphql/types/fields.type.d.ts +2 -2
  673. package/infra/hasura-graphql/types/graphql.repository.type.d.ts +24 -24
  674. package/infra/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +8 -8
  675. package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +44 -44
  676. package/infra/hasura-graphql/types/hasura-graphql-headers.type.d.ts +7 -7
  677. package/infra/hasura-graphql/types/index.d.ts +8 -8
  678. package/infra/hasura-graphql/types/nested-field.type.d.ts +7 -7
  679. package/infra/hasura-graphql/types/query-builder-options.type.d.ts +7 -7
  680. package/infra/hasura-graphql/types/variable-options.type.d.ts +9 -9
  681. package/infra/index.d.ts +3 -3
  682. package/package.json +2 -2
  683. package/utils/decorators/debug.class.decorator.d.ts +2 -2
  684. package/utils/decorators/index.d.ts +2 -2
  685. package/utils/decorators/trace.method.decorator.d.ts +14 -14
  686. package/utils/get.d.ts +1 -1
  687. package/utils/helpers/class-name.helper.d.ts +3 -3
  688. package/utils/helpers/debug-decorator.helper.d.ts +9 -9
  689. package/utils/helpers/debug.helper.d.ts +60 -60
  690. package/utils/helpers/index.d.ts +4 -4
  691. package/utils/helpers/reflect.helper.d.ts +50 -50
  692. package/utils/index.d.ts +13 -13
  693. package/utils/is-uuid.d.ts +1 -1
  694. package/utils/is.d.ts +1 -1
  695. package/utils/log.utils.d.ts +7 -7
  696. package/utils/mixins/base.mixin.d.ts +3 -3
  697. package/utils/mixins/index.d.ts +3 -3
  698. package/utils/mixins/merge-constructor-params.type.d.ts +3 -3
  699. package/utils/mixins/mixin-ctor.type.d.ts +1 -1
  700. package/utils/parse-datetime.d.ts +1 -1
  701. package/utils/types/array-element.type.d.ts +1 -1
  702. package/utils/types/index.d.ts +2 -2
  703. package/utils/types/prop.type.d.ts +1 -1
@@ -1,152 +1,152 @@
1
- import { DebugHelper, isNil, set } from '../../../utils';
2
- import { AttributeOptionHelper, BindFilterQueryHelper } from './helpers';
3
- export const withFindHasuraGraphQL = (MixinBase) => {
4
- return class FindHasuraGraphQLMixin extends MixinBase {
5
- constructor() {
6
- super(...arguments);
7
- this.bindOrderByAttributes = (orderBy, fields) => Object.keys(orderBy).reduce((acc, current) => [
8
- ...acc,
9
- {
10
- [AttributeOptionHelper.FindByAttribute(current, fields)
11
- .columnName]: orderBy[current] === 'asc'
12
- ? 'asc_nulls_last'
13
- : 'desc_nulls_last',
14
- },
15
- ], []);
16
- this.bindAggretageAttributes = (aggregates, fields) => [
17
- ...(aggregates?.minimal?.length
18
- ? [
19
- {
20
- min: this.bindAttributesToColumns(aggregates?.minimal, fields),
21
- },
22
- ]
23
- : []),
24
- ...(aggregates?.maximum?.length
25
- ? [
26
- {
27
- max: this.bindAttributesToColumns(aggregates?.maximum, fields),
28
- },
29
- ]
30
- : []),
31
- ];
32
- this.bindDistinctAttributes = (distinct, fields) => this.bindAttributesToColumns(distinct, fields);
33
- this.bindAttributesToColumns = (attributes, fields) => attributes.map((attr) => AttributeOptionHelper.FindByAttribute(attr.toString().split('.').pop(), fields)?.columnName || attr);
34
- }
35
- async find(params) {
36
- this.logger = DebugHelper.from(this, 'find');
37
- const { filters, limits, orderBy, options } = params || {};
38
- const enableCount = options?.enableCount ?? true;
39
- const variablesFilters = isNil(filters)
40
- ? {}
41
- : {
42
- where: {
43
- value: BindFilterQueryHelper.MakeGraphQLWhere(filters, this.fields),
44
- type: `${this.tableName}_bool_exp`,
45
- required: true,
46
- },
47
- };
48
- const variablesCount = {
49
- ...(isNil(orderBy)
50
- ? {}
51
- : {
52
- order_by: {
53
- type: `${this.tableName}_order_by!`,
54
- list: true,
55
- value: this.bindOrderByAttributes(orderBy, this.fields),
56
- },
57
- }),
58
- ...variablesFilters,
59
- };
60
- const variables = {
61
- ...(isNil(limits) ? {} : limits),
62
- ...variablesCount,
63
- };
64
- const aggregateFields = [
65
- ...(enableCount ? ['count'] : []),
66
- ...this.bindAggretageAttributes(params.options, this.fields),
67
- ];
68
- const result = await this.query([
69
- {
70
- operation: this.tableName,
71
- fields: params.fields
72
- ? params.fields
73
- .map((fieldName) => this.fields.find((fieldOption) => fieldOption === fieldName) ??
74
- this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === fieldName))
75
- .filter(Boolean)
76
- : this.fields,
77
- variables,
78
- },
79
- ...(aggregateFields.length > 0
80
- ? [
81
- {
82
- operation: `${this.tableName}_aggregate`,
83
- fields: [
84
- {
85
- aggregate: aggregateFields,
86
- },
87
- ],
88
- variables: variablesCount,
89
- },
90
- ]
91
- : []),
92
- ...((!params.limits?.offset &&
93
- params.options?.distinct?.map((distinct) => {
94
- const distinctOption = this.fields.find((fieldOption) => fieldOption === distinct) ??
95
- this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === distinct);
96
- const fieldName = Object.values(distinctOption).shift()?.columnName || distinct;
97
- return {
98
- operation: {
99
- name: `${this.tableName}`,
100
- alias: `${this.tableName}_${distinct.toString()}_distinct`,
101
- },
102
- fields: [distinctOption],
103
- variables: {
104
- ...variablesFilters,
105
- [`${this.tableName}_${fieldName}_distinct`]: {
106
- type: `${this.tableName}_select_column!`,
107
- list: true,
108
- value: fieldName,
109
- name: 'distinct_on',
110
- },
111
- },
112
- };
113
- })) ||
114
- []),
115
- ]);
116
- const data = result[this.tableName].map((row) => this.convertDataFromHasura(row));
117
- return {
118
- data,
119
- count: enableCount ? result[`${this.tableName}_aggregate`].aggregate.count : Infinity,
120
- ...(options?.minimal?.length
121
- ? {
122
- minimal: options.minimal.reduce((minimals, current) => ({
123
- ...minimals,
124
- ...set(minimals, current, result[`${this.tableName}_aggregate`].aggregate.min[AttributeOptionHelper.FindByAttribute(current.toString().split('.').pop(), this.fields)?.columnName || current]),
125
- }), {}),
126
- }
127
- : {}),
128
- ...(options?.maximum?.length
129
- ? {
130
- maximum: options.maximum.reduce((maximums, current) => ({
131
- ...maximums,
132
- ...set(maximums, current, result[`${this.tableName}_aggregate`].aggregate.max[AttributeOptionHelper.FindByAttribute(current.toString().split('.').pop(), this.fields)?.columnName || current]),
133
- }), {}),
134
- }
135
- : {}),
136
- ...(!params.limits?.offset &&
137
- options?.distinct?.length && {
138
- distinct: options?.distinct.reduce((distinct, current) => {
139
- const distinctOption = this.fields.find((fieldOption) => fieldOption === current) ??
140
- this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === current);
141
- const fieldName = Object.values(distinctOption).shift()?.columnName || current;
142
- return {
143
- ...distinct,
144
- [current.toString()]: result[`${this.tableName}_${current.toString()}_distinct`].map((obj) => obj[fieldName]),
145
- };
146
- }, {}),
147
- }),
148
- };
149
- }
150
- };
151
- };
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maW5kLWhhc3VyYS1ncmFwaHFsLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL3dpdGgtZmluZC1oYXN1cmEtZ3JhcGhxbC5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFeEUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FJbkMsU0FBMkQsRUFDM0QsRUFBRTtJQUNGLE9BQU8sTUFBTSxzQkFBdUIsU0FBUSxTQUFTO1FBQTlDOztZQTBKTCwwQkFBcUIsR0FBRyxDQUFDLE9BQWlDLEVBQUUsTUFBa0MsRUFBRSxFQUFFLENBQ2hHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUN6QixDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixHQUFHLEdBQUc7Z0JBQ047b0JBQ0UsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsT0FBdUQsRUFBRSxNQUFNLENBQUM7eUJBQ3BHLFVBQVUsQ0FBQyxFQUNaLE9BQU8sQ0FBQyxPQUF1RCxDQUFDLEtBQUssS0FBSzt3QkFDeEUsQ0FBQyxDQUFDLGdCQUFnQjt3QkFDbEIsQ0FBQyxDQUFDLGlCQUFpQjtpQkFDeEI7YUFDRixFQUNELEVBQUUsQ0FDSCxDQUFBO1lBRUgsNEJBQXVCLEdBQUcsQ0FDeEIsVUFHQyxFQUNELE1BQWtDLEVBQ2xDLEVBQUUsQ0FBQztnQkFDSCxHQUFHLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNO29CQUM3QixDQUFDLENBQUM7d0JBQ0U7NEJBQ0UsR0FBRyxF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O2dCQUNQLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTTtvQkFDeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLElBQUk7b0JBQzNCLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTt3QkFDdkQsTUFBTSxjQUFjLEdBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEtBQUssT0FBTyxDQUFDOzRCQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQTt3QkFDakYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLElBQUksT0FBTyxDQUFBO3dCQUU5RSxPQUFPOzRCQUNMLEdBQUcsUUFBUTs0QkFDWCxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQ2xGLENBQUMsR0FBb0MsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUN6RDt5QkFDRixDQUFBO29CQUNILENBQUMsRUFBRSxFQUFTLENBQUM7aUJBQ2QsQ0FBQzthQUNMLENBQUE7UUFDSCxDQUFDO0tBd0RGLENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGaW5kUmVwb3NpdG9yeSxcbiAgRmluZFJlcG9zaXRvcnlQYXJhbXMsXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lcyxcbiAgUmVwb3NpdG9yeUZpbmRSZXN1bHQsXG4gIFJlcG9zaXRvcnlPcmRlckJ5LFxufSBmcm9tICcuLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBEZWJ1Z0hlbHBlciwgaXNOaWwsIE1peGluQ3Rvciwgc2V0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBHcmFwaFFMUGFyYW1zLCBHcmFwaFFMUmVwb3NpdG9yeSwgSGFzdXJhR3JhcGhRTEZpZWxkcyB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyLCBCaW5kRmlsdGVyUXVlcnlIZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMnXG5cbmV4cG9ydCBjb25zdCB3aXRoRmluZEhhc3VyYUdyYXBoUUwgPSA8XG4gIE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1CYXNlLCBNQmFzZVsnaWRlbnRpZmllcnNGaWVsZHMnXVtudW1iZXJdPixcbiAgVE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4+LFxuPihcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+PiAmIFRNaXhpbkJhc2UsXG4pID0+IHtcbiAgcmV0dXJuIGNsYXNzIEZpbmRIYXN1cmFHcmFwaFFMTWl4aW4gZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBGaW5kUmVwb3NpdG9yeTxNQmFzZT4ge1xuICAgIGFzeW5jIGZpbmQocGFyYW1zPzogRmluZFJlcG9zaXRvcnlQYXJhbXM8TUJhc2U+KTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZFJlc3VsdDxNQmFzZT4+IHtcbiAgICAgIHRoaXMubG9nZ2VyID0gRGVidWdIZWxwZXIuZnJvbSh0aGlzLCAnZmluZCcpXG5cbiAgICAgIGNvbnN0IHsgZmlsdGVycywgbGltaXRzLCBvcmRlckJ5LCBvcHRpb25zIH0gPSBwYXJhbXMgfHwge31cbiAgICAgIGNvbnN0IGVuYWJsZUNvdW50ID0gb3B0aW9ucz8uZW5hYmxlQ291bnQgPz8gdHJ1ZVxuICAgICAgY29uc3QgdmFyaWFibGVzRmlsdGVycyA9IGlzTmlsKGZpbHRlcnMpXG4gICAgICAgID8ge31cbiAgICAgICAgOiB7XG4gICAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgICB2YWx1ZTogQmluZEZpbHRlclF1ZXJ5SGVscGVyLk1ha2VHcmFwaFFMV2hlcmUoZmlsdGVycywgdGhpcy5maWVsZHMpLFxuICAgICAgICAgICAgICB0eXBlOiBgJHt0aGlzLnRhYmxlTmFtZX1fYm9vbF9leHBgLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgY29uc3QgdmFyaWFibGVzQ291bnQgPSB7XG4gICAgICAgIC4uLihpc05pbChvcmRlckJ5KVxuICAgICAgICAgID8ge31cbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgb3JkZXJfYnk6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBgJHt0aGlzLnRhYmxlTmFtZX1fb3JkZXJfYnkhYCxcbiAgICAgICAgICAgICAgICBsaXN0OiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmJpbmRPcmRlckJ5QXR0cmlidXRlcyhvcmRlckJ5LCB0aGlzLmZpZWxkcyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgLi4udmFyaWFibGVzRmlsdGVycyxcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHtcbiAgICAgICAgLi4uKGlzTmlsKGxpbWl0cykgPyB7fSA6IGxpbWl0cyksXG4gICAgICAgIC4uLnZhcmlhYmxlc0NvdW50LFxuICAgICAgfVxuICAgICAgY29uc3QgYWdncmVnYXRlRmllbGRzID0gW1xuICAgICAgICAuLi4oZW5hYmxlQ291bnQgPyBbJ2NvdW50J10gOiBbXSksXG4gICAgICAgIC4uLnRoaXMuYmluZEFnZ3JldGFnZUF0dHJpYnV0ZXMocGFyYW1zLm9wdGlvbnMsIHRoaXMuZmllbGRzKSxcbiAgICAgIF1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucXVlcnkoW1xuICAgICAgICB7XG4gICAgICAgICAgb3BlcmF0aW9uOiB0aGlzLnRhYmxlTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IHBhcmFtcy5maWVsZHNcbiAgICAgICAgICAgID8gcGFyYW1zLmZpZWxkc1xuICAgICAgICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAgICAgICAoZmllbGROYW1lKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkcy5maW5kKChmaWVsZE9wdGlvbikgPT4gZmllbGRPcHRpb24gPT09IGZpZWxkTmFtZSkgPz9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZHMuZmluZCgoZmllbGRPcHRpb24pID0+IE9iamVjdC5rZXlzKGZpZWxkT3B0aW9uKS5zaGlmdCgpID09PSBmaWVsZE5hbWUpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICA6IHRoaXMuZmllbGRzLFxuICAgICAgICAgIHZhcmlhYmxlcyxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uKGFnZ3JlZ2F0ZUZpZWxkcy5sZW5ndGggPiAwXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IGAke3RoaXMudGFibGVOYW1lfV9hZ2dyZWdhdGVgLFxuICAgICAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGU6IGFnZ3JlZ2F0ZUZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlc0NvdW50LFxuICAgICAgICAgICAgICB9IGFzIEdyYXBoUUxQYXJhbXM8TUJhc2U+LFxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogW10pLFxuICAgICAgICAuLi4oKCFwYXJhbXMubGltaXRzPy5vZmZzZXQgJiZcbiAgICAgICAgICBwYXJhbXMub3B0aW9ucz8uZGlzdGluY3Q/Lm1hcCgoZGlzdGluY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RpbmN0T3B0aW9uID1cbiAgICAgICAgICAgICAgdGhpcy5maWVsZHMuZmluZCgoZmllbGRPcHRpb24pID0+IGZpZWxkT3B0aW9uID09PSBkaXN0aW5jdCkgPz9cbiAgICAgICAgICAgICAgdGhpcy5maWVsZHMuZmluZCgoZmllbGRPcHRpb24pID0+IE9iamVjdC5rZXlzKGZpZWxkT3B0aW9uKS5zaGlmdCgpID09PSBkaXN0aW5jdClcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IE9iamVjdC52YWx1ZXMoZGlzdGluY3RPcHRpb24pLnNoaWZ0KCk/LmNvbHVtbk5hbWUgfHwgZGlzdGluY3RcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogYCR7dGhpcy50YWJsZU5hbWV9YCxcbiAgICAgICAgICAgICAgICBhbGlhczogYCR7dGhpcy50YWJsZU5hbWV9XyR7ZGlzdGluY3QudG9TdHJpbmcoKX1fZGlzdGluY3RgLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBmaWVsZHM6IFtkaXN0aW5jdE9wdGlvbl0sXG4gICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgIC4uLnZhcmlhYmxlc0ZpbHRlcnMsXG4gICAgICAgICAgICAgICAgW2Ake3RoaXMudGFibGVOYW1lfV8ke2ZpZWxkTmFtZX1fZGlzdGluY3RgXToge1xuICAgICAgICAgICAgICAgICAgdHlwZTogYCR7dGhpcy50YWJsZU5hbWV9X3NlbGVjdF9jb2x1bW4hYCxcbiAgICAgICAgICAgICAgICAgIGxpc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogZmllbGROYW1lLFxuICAgICAgICAgICAgICAgICAgbmFtZTogJ2Rpc3RpbmN0X29uJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSBhcyBHcmFwaFFMUGFyYW1zPE1CYXNlPlxuICAgICAgICAgIH0pKSB8fFxuICAgICAgICAgIFtdKSxcbiAgICAgIF0pXG4gICAgICBjb25zdCBkYXRhOiBNQmFzZVtdID0gcmVzdWx0W3RoaXMudGFibGVOYW1lXS5tYXAoKHJvdzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPikgPT5cbiAgICAgICAgdGhpcy5jb252ZXJ0RGF0YUZyb21IYXN1cmEocm93KSxcbiAgICAgIClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY291bnQ6IGVuYWJsZUNvdW50ID8gcmVzdWx0W2Ake3RoaXMudGFibGVOYW1lfV9hZ2dyZWdhdGVgXS5hZ2dyZWdhdGUuY291bnQgOiBJbmZpbml0eSxcbiAgICAgICAgLi4uKG9wdGlvbnM/Lm1pbmltYWw/Lmxlbmd0aFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBtaW5pbWFsOiBvcHRpb25zLm1pbmltYWwucmVkdWNlKFxuICAgICAgICAgICAgICAgIChtaW5pbWFscywgY3VycmVudCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIC4uLihtaW5pbWFscyBhcyBhbnkpLFxuICAgICAgICAgICAgICAgICAgLi4uc2V0KFxuICAgICAgICAgICAgICAgICAgICBtaW5pbWFscyBhcyBhbnksXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICByZXN1bHRbYCR7dGhpcy50YWJsZU5hbWV9X2FnZ3JlZ2F0ZWBdLmFnZ3JlZ2F0ZS5taW5bXG4gICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQudG9TdHJpbmcoKS5zcGxpdCgnLicpLnBvcCgpIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZHMsXG4gICAgICAgICAgICAgICAgICAgICAgKT8uY29sdW1uTmFtZSB8fCAoY3VycmVudCBhcyBhbnkpXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICApIGFzIFJlcG9zaXRvcnlGaW5kUmVzdWx0PE1CYXNlPlsnbWluaW1hbCddLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgICAuLi4ob3B0aW9ucz8ubWF4aW11bT8ubGVuZ3RoXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIG1heGltdW06IG9wdGlvbnMubWF4aW11bS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKG1heGltdW1zLCBjdXJyZW50KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgLi4uKG1heGltdW1zIGFzIGFueSksXG4gICAgICAgICAgICAgICAgICAuLi5zZXQoXG4gICAgICAgICAgICAgICAgICAgIG1heGltdW1zIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudCBhcyBhbnksXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtgJHt0aGlzLnRhYmxlTmFtZX1fYWdncmVnYXRlYF0uYWdncmVnYXRlLm1heFtcbiAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC50b1N0cmluZygpLnNwbGl0KCcuJykucG9wKCkgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgICAgICApPy5jb2x1bW5OYW1lIHx8IChjdXJyZW50IGFzIGFueSlcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICkgYXMgUmVwb3NpdG9yeUZpbmRSZXN1bHQ8TUJhc2U+WydtYXhpbXVtJ10sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICAgIC4uLighcGFyYW1zLmxpbWl0cz8ub2Zmc2V0ICYmXG4gICAgICAgICAgb3B0aW9ucz8uZGlzdGluY3Q/Lmxlbmd0aCAmJiB7XG4gICAgICAgICAgICBkaXN0aW5jdDogb3B0aW9ucz8uZGlzdGluY3QucmVkdWNlKChkaXN0aW5jdCwgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBkaXN0aW5jdE9wdGlvbiA9XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZHMuZmluZCgoZmllbGRPcHRpb24pID0+IGZpZWxkT3B0aW9uID09PSBjdXJyZW50KSA/P1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkT3B0aW9uKSA9PiBPYmplY3Qua2V5cyhmaWVsZE9wdGlvbikuc2hpZnQoKSA9PT0gY3VycmVudClcbiAgICAgICAgICAgICAgY29uc3QgZmllbGROYW1lID0gT2JqZWN0LnZhbHVlcyhkaXN0aW5jdE9wdGlvbikuc2hpZnQoKT8uY29sdW1uTmFtZSB8fCBjdXJyZW50XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5kaXN0aW5jdCxcbiAgICAgICAgICAgICAgICBbY3VycmVudC50b1N0cmluZygpXTogcmVzdWx0W2Ake3RoaXMudGFibGVOYW1lfV8ke2N1cnJlbnQudG9TdHJpbmcoKX1fZGlzdGluY3RgXS5tYXAoXG4gICAgICAgICAgICAgICAgICAob2JqOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+KSA9PiBvYmpbZmllbGROYW1lXSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7fSBhcyBhbnkpLFxuICAgICAgICAgIH0pLFxuICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRPcmRlckJ5QXR0cmlidXRlcyA9IChvcmRlckJ5OiBSZXBvc2l0b3J5T3JkZXJCeTxNQmFzZT4sIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4pID0+XG4gICAgICBPYmplY3Qua2V5cyhvcmRlckJ5KS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIGN1cnJlbnQpID0+IFtcbiAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAge1xuICAgICAgICAgICAgW0F0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoY3VycmVudCBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPiwgZmllbGRzKVxuICAgICAgICAgICAgICAuY29sdW1uTmFtZV06XG4gICAgICAgICAgICAgIG9yZGVyQnlbY3VycmVudCBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPl0gPT09ICdhc2MnXG4gICAgICAgICAgICAgICAgPyAnYXNjX251bGxzX2xhc3QnXG4gICAgICAgICAgICAgICAgOiAnZGVzY19udWxsc19sYXN0JyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBbXSxcbiAgICAgIClcblxuICAgIGJpbmRBZ2dyZXRhZ2VBdHRyaWJ1dGVzID0gKFxuICAgICAgYWdncmVnYXRlczoge1xuICAgICAgICBtaW5pbWFsPzogRmluZFJlcG9zaXRvcnlQYXJhbXM8TUJhc2U+WydvcHRpb25zJ11bJ21pbmltYWwnXVxuICAgICAgICBtYXhpbXVtPzogRmluZFJlcG9zaXRvcnlQYXJhbXM8TUJhc2U+WydvcHRpb25zJ11bJ21heGltdW0nXVxuICAgICAgfSxcbiAgICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXG4gICAgKSA9PiBbXG4gICAgICAuLi4oYWdncmVnYXRlcz8ubWluaW1hbD8ubGVuZ3RoXG4gICAgICAgID8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtaW46IHRoaXMuYmluZEF0dHJpYnV0ZXNUb0NvbHVtbnMoYWdncmVnYXRlcz8ubWluaW1hbCwgZmllbGRzKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICA6IFtdKSxcbiAgICAgIC4uLihhZ2dyZWdhdGVzPy5tYXhpbXVtPy5sZW5ndGhcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1heDogdGhpcy5iaW5kQXR0cmlidXRlc1RvQ29sdW1ucyhhZ2dyZWdhdGVzPy5tYXhpbXVtLCBmaWVsZHMpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIDogW10pLFxuICAgIF1cblxuICAgIGJpbmREaXN0aW5jdEF0dHJpYnV0ZXMgPSAoXG4gICAgICBkaXN0aW5jdDogRmluZFJlcG9zaXRvcnlQYXJhbXM8TUJhc2U+WydvcHRpb25zJ11bJ2Rpc3RpbmN0J10sXG4gICAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+LFxuICAgICkgPT4gdGhpcy5iaW5kQXR0cmlidXRlc1RvQ29sdW1ucyhkaXN0aW5jdCwgZmllbGRzKVxuXG4gICAgYmluZEF0dHJpYnV0ZXNUb0NvbHVtbnMgPSAoXG4gICAgICBhdHRyaWJ1dGVzOiBBcnJheTxOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPiB8IHt9PixcbiAgICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXG4gICAgKSA9PlxuICAgICAgYXR0cmlidXRlcy5tYXAoXG4gICAgICAgIChhdHRyKSA9PlxuICAgICAgICAgIEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoXG4gICAgICAgICAgICBhdHRyLnRvU3RyaW5nKCkuc3BsaXQoJy4nKS5wb3AoKSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICApPy5jb2x1bW5OYW1lIHx8IGF0dHIsXG4gICAgICApXG4gIH1cbn1cbiJdfQ==
1
+ import { DebugHelper, isNil, set } from '../../../utils';
2
+ import { AttributeOptionHelper, BindFilterQueryHelper } from './helpers';
3
+ export const withFindHasuraGraphQL = (MixinBase) => {
4
+ return class FindHasuraGraphQLMixin extends MixinBase {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.bindOrderByAttributes = (orderBy, fields) => Object.keys(orderBy).reduce((acc, current) => [
8
+ ...acc,
9
+ {
10
+ [AttributeOptionHelper.FindByAttribute(current, fields)
11
+ .columnName]: orderBy[current] === 'asc'
12
+ ? 'asc_nulls_last'
13
+ : 'desc_nulls_last',
14
+ },
15
+ ], []);
16
+ this.bindAggretageAttributes = (aggregates, fields) => [
17
+ ...(aggregates?.minimal?.length
18
+ ? [
19
+ {
20
+ min: this.bindAttributesToColumns(aggregates?.minimal, fields),
21
+ },
22
+ ]
23
+ : []),
24
+ ...(aggregates?.maximum?.length
25
+ ? [
26
+ {
27
+ max: this.bindAttributesToColumns(aggregates?.maximum, fields),
28
+ },
29
+ ]
30
+ : []),
31
+ ];
32
+ this.bindDistinctAttributes = (distinct, fields) => this.bindAttributesToColumns(distinct, fields);
33
+ this.bindAttributesToColumns = (attributes, fields) => attributes.map((attr) => AttributeOptionHelper.FindByAttribute(attr.toString().split('.').pop(), fields)?.columnName || attr);
34
+ }
35
+ async find(params) {
36
+ this.logger = DebugHelper.from(this, 'find');
37
+ const { filters, limits, orderBy, options } = params || {};
38
+ const enableCount = options?.enableCount ?? true;
39
+ const variablesFilters = isNil(filters)
40
+ ? {}
41
+ : {
42
+ where: {
43
+ value: BindFilterQueryHelper.MakeGraphQLWhere(filters, this.fields),
44
+ type: `${this.tableName}_bool_exp`,
45
+ required: true,
46
+ },
47
+ };
48
+ const variablesCount = {
49
+ ...(isNil(orderBy)
50
+ ? {}
51
+ : {
52
+ order_by: {
53
+ type: `${this.tableName}_order_by!`,
54
+ list: true,
55
+ value: this.bindOrderByAttributes(orderBy, this.fields),
56
+ },
57
+ }),
58
+ ...variablesFilters,
59
+ };
60
+ const variables = {
61
+ ...(isNil(limits) ? {} : limits),
62
+ ...variablesCount,
63
+ };
64
+ const aggregateFields = [
65
+ ...(enableCount ? ['count'] : []),
66
+ ...this.bindAggretageAttributes(params.options, this.fields),
67
+ ];
68
+ const result = await this.query([
69
+ {
70
+ operation: this.tableName,
71
+ fields: params.fields
72
+ ? params.fields
73
+ .map((fieldName) => this.fields.find((fieldOption) => fieldOption === fieldName) ??
74
+ this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === fieldName))
75
+ .filter(Boolean)
76
+ : this.fields,
77
+ variables,
78
+ },
79
+ ...(aggregateFields.length > 0
80
+ ? [
81
+ {
82
+ operation: `${this.tableName}_aggregate`,
83
+ fields: [
84
+ {
85
+ aggregate: aggregateFields,
86
+ },
87
+ ],
88
+ variables: variablesCount,
89
+ },
90
+ ]
91
+ : []),
92
+ ...((!params.limits?.offset &&
93
+ params.options?.distinct?.map((distinct) => {
94
+ const distinctOption = this.fields.find((fieldOption) => fieldOption === distinct) ??
95
+ this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === distinct);
96
+ const fieldName = Object.values(distinctOption).shift()?.columnName || distinct;
97
+ return {
98
+ operation: {
99
+ name: `${this.tableName}`,
100
+ alias: `${this.tableName}_${distinct.toString()}_distinct`,
101
+ },
102
+ fields: [distinctOption],
103
+ variables: {
104
+ ...variablesFilters,
105
+ [`${this.tableName}_${fieldName}_distinct`]: {
106
+ type: `${this.tableName}_select_column!`,
107
+ list: true,
108
+ value: fieldName,
109
+ name: 'distinct_on',
110
+ },
111
+ },
112
+ };
113
+ })) ||
114
+ []),
115
+ ]);
116
+ const data = result[this.tableName].map((row) => this.convertDataFromHasura(row));
117
+ return {
118
+ data,
119
+ count: enableCount ? result[`${this.tableName}_aggregate`].aggregate.count : Infinity,
120
+ ...(options?.minimal?.length
121
+ ? {
122
+ minimal: options.minimal.reduce((minimals, current) => ({
123
+ ...minimals,
124
+ ...set(minimals, current, result[`${this.tableName}_aggregate`].aggregate.min[AttributeOptionHelper.FindByAttribute(current.toString().split('.').pop(), this.fields)?.columnName || current]),
125
+ }), {}),
126
+ }
127
+ : {}),
128
+ ...(options?.maximum?.length
129
+ ? {
130
+ maximum: options.maximum.reduce((maximums, current) => ({
131
+ ...maximums,
132
+ ...set(maximums, current, result[`${this.tableName}_aggregate`].aggregate.max[AttributeOptionHelper.FindByAttribute(current.toString().split('.').pop(), this.fields)?.columnName || current]),
133
+ }), {}),
134
+ }
135
+ : {}),
136
+ ...(!params.limits?.offset &&
137
+ options?.distinct?.length && {
138
+ distinct: options?.distinct.reduce((distinct, current) => {
139
+ const distinctOption = this.fields.find((fieldOption) => fieldOption === current) ??
140
+ this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === current);
141
+ const fieldName = Object.values(distinctOption).shift()?.columnName || current;
142
+ return {
143
+ ...distinct,
144
+ [current.toString()]: result[`${this.tableName}_${current.toString()}_distinct`].map((obj) => obj[fieldName]),
145
+ };
146
+ }, {}),
147
+ }),
148
+ };
149
+ }
150
+ };
151
+ };
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maW5kLWhhc3VyYS1ncmFwaHFsLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL3dpdGgtZmluZC1oYXN1cmEtZ3JhcGhxbC5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFeEUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FJbkMsU0FBMkQsRUFDM0QsRUFBRTtJQUNGLE9BQU8sTUFBTSxzQkFBdUIsU0FBUSxTQUFTO1FBQTlDOztZQTBKTCwwQkFBcUIsR0FBRyxDQUFDLE9BQWlDLEVBQUUsTUFBa0MsRUFBRSxFQUFFLENBQ2hHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUN6QixDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixHQUFHLEdBQUc7Z0JBQ047b0JBQ0UsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsT0FBdUQsRUFBRSxNQUFNLENBQUM7eUJBQ3BHLFVBQVUsQ0FBQyxFQUNaLE9BQU8sQ0FBQyxPQUF1RCxDQUFDLEtBQUssS0FBSzt3QkFDeEUsQ0FBQyxDQUFDLGdCQUFnQjt3QkFDbEIsQ0FBQyxDQUFDLGlCQUFpQjtpQkFDeEI7YUFDRixFQUNELEVBQUUsQ0FDSCxDQUFBO1lBRUgsNEJBQXVCLEdBQUcsQ0FDeEIsVUFHQyxFQUNELE1BQWtDLEVBQ2xDLEVBQUUsQ0FBQztnQkFDSCxHQUFHLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNO29CQUM3QixDQUFDLENBQUM7d0JBQ0U7NEJBQ0UsR0FBRyxF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O2dCQUNQLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTTtvQkFDeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLElBQUk7b0JBQzNCLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTt3QkFDdkQsTUFBTSxjQUFjLEdBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEtBQUssT0FBTyxDQUFDOzRCQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQTt3QkFDakYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLElBQUksT0FBTyxDQUFBO3dCQUU5RSxPQUFPOzRCQUNMLEdBQUcsUUFBUTs0QkFDWCxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQ2xGLENBQUMsR0FBb0MsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUN6RDt5QkFDRixDQUFBO29CQUNILENBQUMsRUFBRSxFQUFTLENBQUM7aUJBQ2QsQ0FBQzthQUNMLENBQUE7UUFDSCxDQUFDO0tBd0RGLENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEZpbmRSZXBvc2l0b3J5LFxyXG4gIEZpbmRSZXBvc2l0b3J5UGFyYW1zLFxyXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcclxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLFxyXG4gIFJlcG9zaXRvcnlGaW5kUmVzdWx0LFxyXG4gIFJlcG9zaXRvcnlPcmRlckJ5LFxyXG59IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgRGVidWdIZWxwZXIsIGlzTmlsLCBNaXhpbkN0b3IsIHNldCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQgeyBHcmFwaFFMUGFyYW1zLCBHcmFwaFFMUmVwb3NpdG9yeSwgSGFzdXJhR3JhcGhRTEZpZWxkcyB9IGZyb20gJy4uL3R5cGVzJ1xyXG5pbXBvcnQgeyBBdHRyaWJ1dGVPcHRpb25IZWxwZXIsIEJpbmRGaWx0ZXJRdWVyeUhlbHBlciB9IGZyb20gJy4vaGVscGVycydcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRmluZEhhc3VyYUdyYXBoUUwgPSA8XHJcbiAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2UsIE1CYXNlWydpZGVudGlmaWVyc0ZpZWxkcyddW251bWJlcl0+LFxyXG4gIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+PixcclxuPihcclxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4+ICYgVE1peGluQmFzZSxcclxuKSA9PiB7XHJcbiAgcmV0dXJuIGNsYXNzIEZpbmRIYXN1cmFHcmFwaFFMTWl4aW4gZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBGaW5kUmVwb3NpdG9yeTxNQmFzZT4ge1xyXG4gICAgYXN5bmMgZmluZChwYXJhbXM/OiBGaW5kUmVwb3NpdG9yeVBhcmFtczxNQmFzZT4pOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kUmVzdWx0PE1CYXNlPj4ge1xyXG4gICAgICB0aGlzLmxvZ2dlciA9IERlYnVnSGVscGVyLmZyb20odGhpcywgJ2ZpbmQnKVxyXG5cclxuICAgICAgY29uc3QgeyBmaWx0ZXJzLCBsaW1pdHMsIG9yZGVyQnksIG9wdGlvbnMgfSA9IHBhcmFtcyB8fCB7fVxyXG4gICAgICBjb25zdCBlbmFibGVDb3VudCA9IG9wdGlvbnM/LmVuYWJsZUNvdW50ID8/IHRydWVcclxuICAgICAgY29uc3QgdmFyaWFibGVzRmlsdGVycyA9IGlzTmlsKGZpbHRlcnMpXHJcbiAgICAgICAgPyB7fVxyXG4gICAgICAgIDoge1xyXG4gICAgICAgICAgICB3aGVyZToge1xyXG4gICAgICAgICAgICAgIHZhbHVlOiBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuTWFrZUdyYXBoUUxXaGVyZShmaWx0ZXJzLCB0aGlzLmZpZWxkcyksXHJcbiAgICAgICAgICAgICAgdHlwZTogYCR7dGhpcy50YWJsZU5hbWV9X2Jvb2xfZXhwYCxcclxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH1cclxuICAgICAgY29uc3QgdmFyaWFibGVzQ291bnQgPSB7XHJcbiAgICAgICAgLi4uKGlzTmlsKG9yZGVyQnkpXHJcbiAgICAgICAgICA/IHt9XHJcbiAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICBvcmRlcl9ieToge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogYCR7dGhpcy50YWJsZU5hbWV9X29yZGVyX2J5IWAsXHJcbiAgICAgICAgICAgICAgICBsaXN0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuYmluZE9yZGVyQnlBdHRyaWJ1dGVzKG9yZGVyQnksIHRoaXMuZmllbGRzKSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAuLi52YXJpYWJsZXNGaWx0ZXJzLFxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHtcclxuICAgICAgICAuLi4oaXNOaWwobGltaXRzKSA/IHt9IDogbGltaXRzKSxcclxuICAgICAgICAuLi52YXJpYWJsZXNDb3VudCxcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBhZ2dyZWdhdGVGaWVsZHMgPSBbXHJcbiAgICAgICAgLi4uKGVuYWJsZUNvdW50ID8gWydjb3VudCddIDogW10pLFxyXG4gICAgICAgIC4uLnRoaXMuYmluZEFnZ3JldGFnZUF0dHJpYnV0ZXMocGFyYW1zLm9wdGlvbnMsIHRoaXMuZmllbGRzKSxcclxuICAgICAgXVxyXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnF1ZXJ5KFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcGVyYXRpb246IHRoaXMudGFibGVOYW1lLFxyXG4gICAgICAgICAgZmllbGRzOiBwYXJhbXMuZmllbGRzXHJcbiAgICAgICAgICAgID8gcGFyYW1zLmZpZWxkc1xyXG4gICAgICAgICAgICAgICAgLm1hcChcclxuICAgICAgICAgICAgICAgICAgKGZpZWxkTmFtZSkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkcy5maW5kKChmaWVsZE9wdGlvbikgPT4gZmllbGRPcHRpb24gPT09IGZpZWxkTmFtZSkgPz9cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkcy5maW5kKChmaWVsZE9wdGlvbikgPT4gT2JqZWN0LmtleXMoZmllbGRPcHRpb24pLnNoaWZ0KCkgPT09IGZpZWxkTmFtZSksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXHJcbiAgICAgICAgICAgIDogdGhpcy5maWVsZHMsXHJcbiAgICAgICAgICB2YXJpYWJsZXMsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi4oYWdncmVnYXRlRmllbGRzLmxlbmd0aCA+IDBcclxuICAgICAgICAgID8gW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogYCR7dGhpcy50YWJsZU5hbWV9X2FnZ3JlZ2F0ZWAsXHJcbiAgICAgICAgICAgICAgICBmaWVsZHM6IFtcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZTogYWdncmVnYXRlRmllbGRzLFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogdmFyaWFibGVzQ291bnQsXHJcbiAgICAgICAgICAgICAgfSBhcyBHcmFwaFFMUGFyYW1zPE1CYXNlPixcclxuICAgICAgICAgICAgXVxyXG4gICAgICAgICAgOiBbXSksXHJcbiAgICAgICAgLi4uKCghcGFyYW1zLmxpbWl0cz8ub2Zmc2V0ICYmXHJcbiAgICAgICAgICBwYXJhbXMub3B0aW9ucz8uZGlzdGluY3Q/Lm1hcCgoZGlzdGluY3QpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZGlzdGluY3RPcHRpb24gPVxyXG4gICAgICAgICAgICAgIHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkT3B0aW9uKSA9PiBmaWVsZE9wdGlvbiA9PT0gZGlzdGluY3QpID8/XHJcbiAgICAgICAgICAgICAgdGhpcy5maWVsZHMuZmluZCgoZmllbGRPcHRpb24pID0+IE9iamVjdC5rZXlzKGZpZWxkT3B0aW9uKS5zaGlmdCgpID09PSBkaXN0aW5jdClcclxuICAgICAgICAgICAgY29uc3QgZmllbGROYW1lID0gT2JqZWN0LnZhbHVlcyhkaXN0aW5jdE9wdGlvbikuc2hpZnQoKT8uY29sdW1uTmFtZSB8fCBkaXN0aW5jdFxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBvcGVyYXRpb246IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IGAke3RoaXMudGFibGVOYW1lfWAsXHJcbiAgICAgICAgICAgICAgICBhbGlhczogYCR7dGhpcy50YWJsZU5hbWV9XyR7ZGlzdGluY3QudG9TdHJpbmcoKX1fZGlzdGluY3RgLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZmllbGRzOiBbZGlzdGluY3RPcHRpb25dLFxyXG4gICAgICAgICAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgICAgICAgICAgLi4udmFyaWFibGVzRmlsdGVycyxcclxuICAgICAgICAgICAgICAgIFtgJHt0aGlzLnRhYmxlTmFtZX1fJHtmaWVsZE5hbWV9X2Rpc3RpbmN0YF06IHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogYCR7dGhpcy50YWJsZU5hbWV9X3NlbGVjdF9jb2x1bW4hYCxcclxuICAgICAgICAgICAgICAgICAgbGlzdDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpZWxkTmFtZSxcclxuICAgICAgICAgICAgICAgICAgbmFtZTogJ2Rpc3RpbmN0X29uJyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSBhcyBHcmFwaFFMUGFyYW1zPE1CYXNlPlxyXG4gICAgICAgICAgfSkpIHx8XHJcbiAgICAgICAgICBbXSksXHJcbiAgICAgIF0pXHJcbiAgICAgIGNvbnN0IGRhdGE6IE1CYXNlW10gPSByZXN1bHRbdGhpcy50YWJsZU5hbWVdLm1hcCgocm93OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+KSA9PlxyXG4gICAgICAgIHRoaXMuY29udmVydERhdGFGcm9tSGFzdXJhKHJvdyksXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICBjb3VudDogZW5hYmxlQ291bnQgPyByZXN1bHRbYCR7dGhpcy50YWJsZU5hbWV9X2FnZ3JlZ2F0ZWBdLmFnZ3JlZ2F0ZS5jb3VudCA6IEluZmluaXR5LFxyXG4gICAgICAgIC4uLihvcHRpb25zPy5taW5pbWFsPy5sZW5ndGhcclxuICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgIG1pbmltYWw6IG9wdGlvbnMubWluaW1hbC5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAobWluaW1hbHMsIGN1cnJlbnQpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgIC4uLihtaW5pbWFscyBhcyBhbnkpLFxyXG4gICAgICAgICAgICAgICAgICAuLi5zZXQoXHJcbiAgICAgICAgICAgICAgICAgICAgbWluaW1hbHMgYXMgYW55LFxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgYXMgYW55LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtgJHt0aGlzLnRhYmxlTmFtZX1fYWdncmVnYXRlYF0uYWdncmVnYXRlLm1pbltcclxuICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQudG9TdHJpbmcoKS5zcGxpdCgnLicpLnBvcCgpIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkcyxcclxuICAgICAgICAgICAgICAgICAgICAgICk/LmNvbHVtbk5hbWUgfHwgKGN1cnJlbnQgYXMgYW55KVxyXG4gICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICAgICkgYXMgUmVwb3NpdG9yeUZpbmRSZXN1bHQ8TUJhc2U+WydtaW5pbWFsJ10sXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDoge30pLFxyXG4gICAgICAgIC4uLihvcHRpb25zPy5tYXhpbXVtPy5sZW5ndGhcclxuICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgIG1heGltdW06IG9wdGlvbnMubWF4aW11bS5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAobWF4aW11bXMsIGN1cnJlbnQpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgIC4uLihtYXhpbXVtcyBhcyBhbnkpLFxyXG4gICAgICAgICAgICAgICAgICAuLi5zZXQoXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4aW11bXMgYXMgYW55LFxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgYXMgYW55LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtgJHt0aGlzLnRhYmxlTmFtZX1fYWdncmVnYXRlYF0uYWdncmVnYXRlLm1heFtcclxuICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQudG9TdHJpbmcoKS5zcGxpdCgnLicpLnBvcCgpIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkcyxcclxuICAgICAgICAgICAgICAgICAgICAgICk/LmNvbHVtbk5hbWUgfHwgKGN1cnJlbnQgYXMgYW55KVxyXG4gICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICAgICkgYXMgUmVwb3NpdG9yeUZpbmRSZXN1bHQ8TUJhc2U+WydtYXhpbXVtJ10sXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDoge30pLFxyXG4gICAgICAgIC4uLighcGFyYW1zLmxpbWl0cz8ub2Zmc2V0ICYmXHJcbiAgICAgICAgICBvcHRpb25zPy5kaXN0aW5jdD8ubGVuZ3RoICYmIHtcclxuICAgICAgICAgICAgZGlzdGluY3Q6IG9wdGlvbnM/LmRpc3RpbmN0LnJlZHVjZSgoZGlzdGluY3QsIGN1cnJlbnQpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkaXN0aW5jdE9wdGlvbiA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkcy5maW5kKChmaWVsZE9wdGlvbikgPT4gZmllbGRPcHRpb24gPT09IGN1cnJlbnQpID8/XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkcy5maW5kKChmaWVsZE9wdGlvbikgPT4gT2JqZWN0LmtleXMoZmllbGRPcHRpb24pLnNoaWZ0KCkgPT09IGN1cnJlbnQpXHJcbiAgICAgICAgICAgICAgY29uc3QgZmllbGROYW1lID0gT2JqZWN0LnZhbHVlcyhkaXN0aW5jdE9wdGlvbikuc2hpZnQoKT8uY29sdW1uTmFtZSB8fCBjdXJyZW50XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAuLi5kaXN0aW5jdCxcclxuICAgICAgICAgICAgICAgIFtjdXJyZW50LnRvU3RyaW5nKCldOiByZXN1bHRbYCR7dGhpcy50YWJsZU5hbWV9XyR7Y3VycmVudC50b1N0cmluZygpfV9kaXN0aW5jdGBdLm1hcChcclxuICAgICAgICAgICAgICAgICAgKG9iajogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPikgPT4gb2JqW2ZpZWxkTmFtZV0sXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwge30gYXMgYW55KSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYmluZE9yZGVyQnlBdHRyaWJ1dGVzID0gKG9yZGVyQnk6IFJlcG9zaXRvcnlPcmRlckJ5PE1CYXNlPiwgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPikgPT5cclxuICAgICAgT2JqZWN0LmtleXMob3JkZXJCeSkucmVkdWNlKFxyXG4gICAgICAgIChhY2MsIGN1cnJlbnQpID0+IFtcclxuICAgICAgICAgIC4uLmFjYyxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgW0F0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoY3VycmVudCBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPiwgZmllbGRzKVxyXG4gICAgICAgICAgICAgIC5jb2x1bW5OYW1lXTpcclxuICAgICAgICAgICAgICBvcmRlckJ5W2N1cnJlbnQgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dID09PSAnYXNjJ1xyXG4gICAgICAgICAgICAgICAgPyAnYXNjX251bGxzX2xhc3QnXHJcbiAgICAgICAgICAgICAgICA6ICdkZXNjX251bGxzX2xhc3QnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIFtdLFxyXG4gICAgICApXHJcblxyXG4gICAgYmluZEFnZ3JldGFnZUF0dHJpYnV0ZXMgPSAoXHJcbiAgICAgIGFnZ3JlZ2F0ZXM6IHtcclxuICAgICAgICBtaW5pbWFsPzogRmluZFJlcG9zaXRvcnlQYXJhbXM8TUJhc2U+WydvcHRpb25zJ11bJ21pbmltYWwnXVxyXG4gICAgICAgIG1heGltdW0/OiBGaW5kUmVwb3NpdG9yeVBhcmFtczxNQmFzZT5bJ29wdGlvbnMnXVsnbWF4aW11bSddXHJcbiAgICAgIH0sXHJcbiAgICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXHJcbiAgICApID0+IFtcclxuICAgICAgLi4uKGFnZ3JlZ2F0ZXM/Lm1pbmltYWw/Lmxlbmd0aFxyXG4gICAgICAgID8gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgbWluOiB0aGlzLmJpbmRBdHRyaWJ1dGVzVG9Db2x1bW5zKGFnZ3JlZ2F0ZXM/Lm1pbmltYWwsIGZpZWxkcyksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgOiBbXSksXHJcbiAgICAgIC4uLihhZ2dyZWdhdGVzPy5tYXhpbXVtPy5sZW5ndGhcclxuICAgICAgICA/IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIG1heDogdGhpcy5iaW5kQXR0cmlidXRlc1RvQ29sdW1ucyhhZ2dyZWdhdGVzPy5tYXhpbXVtLCBmaWVsZHMpLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIDogW10pLFxyXG4gICAgXVxyXG5cclxuICAgIGJpbmREaXN0aW5jdEF0dHJpYnV0ZXMgPSAoXHJcbiAgICAgIGRpc3RpbmN0OiBGaW5kUmVwb3NpdG9yeVBhcmFtczxNQmFzZT5bJ29wdGlvbnMnXVsnZGlzdGluY3QnXSxcclxuICAgICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcclxuICAgICkgPT4gdGhpcy5iaW5kQXR0cmlidXRlc1RvQ29sdW1ucyhkaXN0aW5jdCwgZmllbGRzKVxyXG5cclxuICAgIGJpbmRBdHRyaWJ1dGVzVG9Db2x1bW5zID0gKFxyXG4gICAgICBhdHRyaWJ1dGVzOiBBcnJheTxOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPiB8IHt9PixcclxuICAgICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcclxuICAgICkgPT5cclxuICAgICAgYXR0cmlidXRlcy5tYXAoXHJcbiAgICAgICAgKGF0dHIpID0+XHJcbiAgICAgICAgICBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKFxyXG4gICAgICAgICAgICBhdHRyLnRvU3RyaW5nKCkuc3BsaXQoJy4nKS5wb3AoKSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcclxuICAgICAgICAgICAgZmllbGRzLFxyXG4gICAgICAgICAgKT8uY29sdW1uTmFtZSB8fCBhdHRyLFxyXG4gICAgICApXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,37 +1,37 @@
1
- import { NotFoundError } from '../../../errors';
2
- import { DebugHelper, isNil } from '../../../utils';
3
- import { AttributeOptionHelper } from './helpers';
4
- export const withGetHasuraGraphQL = (MixinBase) => {
5
- return class GetHasuraGraphQLMixin extends MixinBase {
6
- constructor(...params) {
7
- const options = params?.[0];
8
- super(...params);
9
- this.getGraphQLOperation = options?.getGraphQLOperation || `${this.tableName}_by_pk`;
10
- }
11
- async get(identifiers) {
12
- this.logger = DebugHelper.from(this, 'get');
13
- const instance = this.model.toInstance(identifiers);
14
- const result = await this.query(this.getGraphQLOperation, this.fields, this.model.identifiersFields.reduce((ids, identifier) => {
15
- const identifierBinded = identifier;
16
- if (isNil(instance[identifierBinded]))
17
- return ids;
18
- const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
19
- const value = columnOption?.to?.(identifiers[identifier], instance) ||
20
- identifiers[identifier];
21
- return {
22
- ...ids,
23
- [columnOption.columnName]: {
24
- type: this.getAttributeGraphQLTypeOf(columnOption.type || value),
25
- value,
26
- required: true,
27
- },
28
- };
29
- }, {}));
30
- const data = result[this.getGraphQLOperation];
31
- if (isNil(data))
32
- throw new NotFoundError(`${instance.constructor.name} not found`);
33
- return this.convertDataFromHasura(result[this.getGraphQLOperation]);
34
- }
35
- };
36
- };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQWEsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBTWpELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBSWxDLFNBQTJELEVBQzNELEVBQUU7SUFDRixPQUFPLE1BQU0scUJBQXNCLFNBQVEsU0FBUztRQUdsRCxZQUFZLEdBQUcsTUFBYTtZQUMxQixNQUFNLE9BQU8sR0FBeUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFFakQsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUE7WUFFaEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsQ0FBQTtRQUN0RixDQUFDO1FBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUF1QztZQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBRTNDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FDN0IsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFO2dCQUN0RCxNQUFNLGdCQUFnQixHQUdsQixVQUFVLENBQUE7Z0JBRWQsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7b0JBQUUsT0FBTyxHQUFHLENBQUE7Z0JBRWpELE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUNuRixNQUFNLEtBQUssR0FDVCxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQXNDLENBQUMsRUFBRSxRQUFRLENBQUM7b0JBQ2pGLFdBQVcsQ0FBQyxVQUFzQyxDQUFDLENBQUE7Z0JBRXJELE9BQU87b0JBQ0wsR0FBRyxHQUFHO29CQUNOLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFO3dCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO3dCQUNoRSxLQUFLO3dCQUNMLFFBQVEsRUFBRSxJQUFJO3FCQUNmO2lCQUNGLENBQUE7WUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ1AsQ0FBQTtZQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtZQUU3QyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQTtZQUVsRixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQTtRQUNyRSxDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEdldFJlcG9zaXRvcnksXG4gIEdldFJlcG9zaXRvcnlQYXJhbXMsXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lcyxcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgTm90Rm91bmRFcnJvciB9IGZyb20gJy4uLy4uLy4uL2Vycm9ycydcbmltcG9ydCB7IERlYnVnSGVscGVyLCBNaXhpbkN0b3IsIGlzTmlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBHcmFwaFFMUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBBdHRyaWJ1dGVPcHRpb25IZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMnXG5cbmV4cG9ydCB0eXBlIEdldENvbnN0cnVjdG9yUGFyYW1zID0ge1xuICBnZXRHcmFwaFFMT3BlcmF0aW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCB3aXRoR2V0SGFzdXJhR3JhcGhRTCA9IDxcbiAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2UsIE1CYXNlWydpZGVudGlmaWVyc0ZpZWxkcyddW251bWJlcl0+LFxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPj4sXG4+KFxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4+ICYgVE1peGluQmFzZSxcbikgPT4ge1xuICByZXR1cm4gY2xhc3MgR2V0SGFzdXJhR3JhcGhRTE1peGluIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgR2V0UmVwb3NpdG9yeTxNQmFzZT4ge1xuICAgIGdldEdyYXBoUUxPcGVyYXRpb246IHN0cmluZ1xuXG4gICAgY29uc3RydWN0b3IoLi4ucGFyYW1zOiBhbnlbXSkge1xuICAgICAgY29uc3Qgb3B0aW9uczogR2V0Q29uc3RydWN0b3JQYXJhbXMgPSBwYXJhbXM/LlswXVxuXG4gICAgICBzdXBlciguLi5wYXJhbXMpXG5cbiAgICAgIHRoaXMuZ2V0R3JhcGhRTE9wZXJhdGlvbiA9IG9wdGlvbnM/LmdldEdyYXBoUUxPcGVyYXRpb24gfHwgYCR7dGhpcy50YWJsZU5hbWV9X2J5X3BrYFxuICAgIH1cblxuICAgIGFzeW5jIGdldChpZGVudGlmaWVyczogR2V0UmVwb3NpdG9yeVBhcmFtczxNQmFzZT4pOiBQcm9taXNlPE1CYXNlPiB7XG4gICAgICB0aGlzLmxvZ2dlciA9IERlYnVnSGVscGVyLmZyb20odGhpcywgJ2dldCcpXG5cbiAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5tb2RlbC50b0luc3RhbmNlKGlkZW50aWZpZXJzKVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5xdWVyeShcbiAgICAgICAgdGhpcy5nZXRHcmFwaFFMT3BlcmF0aW9uLFxuICAgICAgICB0aGlzLmZpZWxkcyxcbiAgICAgICAgdGhpcy5tb2RlbC5pZGVudGlmaWVyc0ZpZWxkcy5yZWR1Y2UoKGlkcywgaWRlbnRpZmllcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGlkZW50aWZpZXJCaW5kZWQ6IEV4dHJhY3Q8XG4gICAgICAgICAgICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICAgICAgICAgIE1CYXNlWydpZGVudGlmaWVyc0ZpZWxkcyddW251bWJlcl1cbiAgICAgICAgICA+ID0gaWRlbnRpZmllclxuXG4gICAgICAgICAgaWYgKGlzTmlsKGluc3RhbmNlW2lkZW50aWZpZXJCaW5kZWRdKSkgcmV0dXJuIGlkc1xuXG4gICAgICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShpZGVudGlmaWVyLCB0aGlzLmZpZWxkcylcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgICBjb2x1bW5PcHRpb24/LnRvPy4oaWRlbnRpZmllcnNbaWRlbnRpZmllciBhcyBrZXlvZiB0eXBlb2YgaWRlbnRpZmllcnNdLCBpbnN0YW5jZSkgfHxcbiAgICAgICAgICAgIGlkZW50aWZpZXJzW2lkZW50aWZpZXIgYXMga2V5b2YgdHlwZW9mIGlkZW50aWZpZXJzXVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmlkcyxcbiAgICAgICAgICAgIFtjb2x1bW5PcHRpb24uY29sdW1uTmFtZV06IHtcbiAgICAgICAgICAgICAgdHlwZTogdGhpcy5nZXRBdHRyaWJ1dGVHcmFwaFFMVHlwZU9mKGNvbHVtbk9wdGlvbi50eXBlIHx8IHZhbHVlKSxcbiAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcbiAgICAgIClcbiAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHRbdGhpcy5nZXRHcmFwaFFMT3BlcmF0aW9uXVxuXG4gICAgICBpZiAoaXNOaWwoZGF0YSkpIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGAke2luc3RhbmNlLmNvbnN0cnVjdG9yLm5hbWV9IG5vdCBmb3VuZGApXG5cbiAgICAgIHJldHVybiB0aGlzLmNvbnZlcnREYXRhRnJvbUhhc3VyYShyZXN1bHRbdGhpcy5nZXRHcmFwaFFMT3BlcmF0aW9uXSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
1
+ import { NotFoundError } from '../../../errors';
2
+ import { DebugHelper, isNil } from '../../../utils';
3
+ import { AttributeOptionHelper } from './helpers';
4
+ export const withGetHasuraGraphQL = (MixinBase) => {
5
+ return class GetHasuraGraphQLMixin extends MixinBase {
6
+ constructor(...params) {
7
+ const options = params?.[0];
8
+ super(...params);
9
+ this.getGraphQLOperation = options?.getGraphQLOperation || `${this.tableName}_by_pk`;
10
+ }
11
+ async get(identifiers) {
12
+ this.logger = DebugHelper.from(this, 'get');
13
+ const instance = this.model.toInstance(identifiers);
14
+ const result = await this.query(this.getGraphQLOperation, this.fields, this.model.identifiersFields.reduce((ids, identifier) => {
15
+ const identifierBinded = identifier;
16
+ if (isNil(instance[identifierBinded]))
17
+ return ids;
18
+ const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
19
+ const value = columnOption?.to?.(identifiers[identifier], instance) ||
20
+ identifiers[identifier];
21
+ return {
22
+ ...ids,
23
+ [columnOption.columnName]: {
24
+ type: this.getAttributeGraphQLTypeOf(columnOption.type || value),
25
+ value,
26
+ required: true,
27
+ },
28
+ };
29
+ }, {}));
30
+ const data = result[this.getGraphQLOperation];
31
+ if (isNil(data))
32
+ throw new NotFoundError(`${instance.constructor.name} not found`);
33
+ return this.convertDataFromHasura(result[this.getGraphQLOperation]);
34
+ }
35
+ };
36
+ };
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQWEsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBTWpELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBSWxDLFNBQTJELEVBQzNELEVBQUU7SUFDRixPQUFPLE1BQU0scUJBQXNCLFNBQVEsU0FBUztRQUdsRCxZQUFZLEdBQUcsTUFBYTtZQUMxQixNQUFNLE9BQU8sR0FBeUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFFakQsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUE7WUFFaEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsQ0FBQTtRQUN0RixDQUFDO1FBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUF1QztZQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBRTNDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FDN0IsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFO2dCQUN0RCxNQUFNLGdCQUFnQixHQUdsQixVQUFVLENBQUE7Z0JBRWQsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7b0JBQUUsT0FBTyxHQUFHLENBQUE7Z0JBRWpELE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUNuRixNQUFNLEtBQUssR0FDVCxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQXNDLENBQUMsRUFBRSxRQUFRLENBQUM7b0JBQ2pGLFdBQVcsQ0FBQyxVQUFzQyxDQUFDLENBQUE7Z0JBRXJELE9BQU87b0JBQ0wsR0FBRyxHQUFHO29CQUNOLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFO3dCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO3dCQUNoRSxLQUFLO3dCQUNMLFFBQVEsRUFBRSxJQUFJO3FCQUNmO2lCQUNGLENBQUE7WUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ1AsQ0FBQTtZQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtZQUU3QyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQTtZQUVsRixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQTtRQUNyRSxDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgR2V0UmVwb3NpdG9yeSxcclxuICBHZXRSZXBvc2l0b3J5UGFyYW1zLFxyXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcclxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLFxyXG59IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgTm90Rm91bmRFcnJvciB9IGZyb20gJy4uLy4uLy4uL2Vycm9ycydcclxuaW1wb3J0IHsgRGVidWdIZWxwZXIsIE1peGluQ3RvciwgaXNOaWwgfSBmcm9tICcuLi8uLi8uLi91dGlscydcclxuaW1wb3J0IHsgR3JhcGhRTFJlcG9zaXRvcnkgfSBmcm9tICcuLi90eXBlcydcclxuXHJcbmltcG9ydCB7IEF0dHJpYnV0ZU9wdGlvbkhlbHBlciB9IGZyb20gJy4vaGVscGVycydcclxuXHJcbmV4cG9ydCB0eXBlIEdldENvbnN0cnVjdG9yUGFyYW1zID0ge1xyXG4gIGdldEdyYXBoUUxPcGVyYXRpb24/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhHZXRIYXN1cmFHcmFwaFFMID0gPFxyXG4gIE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1CYXNlLCBNQmFzZVsnaWRlbnRpZmllcnNGaWVsZHMnXVtudW1iZXJdPixcclxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPj4sXHJcbj4oXHJcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+PiAmIFRNaXhpbkJhc2UsXHJcbikgPT4ge1xyXG4gIHJldHVybiBjbGFzcyBHZXRIYXN1cmFHcmFwaFFMTWl4aW4gZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBHZXRSZXBvc2l0b3J5PE1CYXNlPiB7XHJcbiAgICBnZXRHcmFwaFFMT3BlcmF0aW9uOiBzdHJpbmdcclxuXHJcbiAgICBjb25zdHJ1Y3RvciguLi5wYXJhbXM6IGFueVtdKSB7XHJcbiAgICAgIGNvbnN0IG9wdGlvbnM6IEdldENvbnN0cnVjdG9yUGFyYW1zID0gcGFyYW1zPy5bMF1cclxuXHJcbiAgICAgIHN1cGVyKC4uLnBhcmFtcylcclxuXHJcbiAgICAgIHRoaXMuZ2V0R3JhcGhRTE9wZXJhdGlvbiA9IG9wdGlvbnM/LmdldEdyYXBoUUxPcGVyYXRpb24gfHwgYCR7dGhpcy50YWJsZU5hbWV9X2J5X3BrYFxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldChpZGVudGlmaWVyczogR2V0UmVwb3NpdG9yeVBhcmFtczxNQmFzZT4pOiBQcm9taXNlPE1CYXNlPiB7XHJcbiAgICAgIHRoaXMubG9nZ2VyID0gRGVidWdIZWxwZXIuZnJvbSh0aGlzLCAnZ2V0JylcclxuXHJcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5tb2RlbC50b0luc3RhbmNlKGlkZW50aWZpZXJzKVxyXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnF1ZXJ5KFxyXG4gICAgICAgIHRoaXMuZ2V0R3JhcGhRTE9wZXJhdGlvbixcclxuICAgICAgICB0aGlzLmZpZWxkcyxcclxuICAgICAgICB0aGlzLm1vZGVsLmlkZW50aWZpZXJzRmllbGRzLnJlZHVjZSgoaWRzLCBpZGVudGlmaWVyKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpZGVudGlmaWVyQmluZGVkOiBFeHRyYWN0PFxyXG4gICAgICAgICAgICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcclxuICAgICAgICAgICAgTUJhc2VbJ2lkZW50aWZpZXJzRmllbGRzJ11bbnVtYmVyXVxyXG4gICAgICAgICAgPiA9IGlkZW50aWZpZXJcclxuXHJcbiAgICAgICAgICBpZiAoaXNOaWwoaW5zdGFuY2VbaWRlbnRpZmllckJpbmRlZF0pKSByZXR1cm4gaWRzXHJcblxyXG4gICAgICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShpZGVudGlmaWVyLCB0aGlzLmZpZWxkcylcclxuICAgICAgICAgIGNvbnN0IHZhbHVlID1cclxuICAgICAgICAgICAgY29sdW1uT3B0aW9uPy50bz8uKGlkZW50aWZpZXJzW2lkZW50aWZpZXIgYXMga2V5b2YgdHlwZW9mIGlkZW50aWZpZXJzXSwgaW5zdGFuY2UpIHx8XHJcbiAgICAgICAgICAgIGlkZW50aWZpZXJzW2lkZW50aWZpZXIgYXMga2V5b2YgdHlwZW9mIGlkZW50aWZpZXJzXVxyXG5cclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLmlkcyxcclxuICAgICAgICAgICAgW2NvbHVtbk9wdGlvbi5jb2x1bW5OYW1lXToge1xyXG4gICAgICAgICAgICAgIHR5cGU6IHRoaXMuZ2V0QXR0cmlidXRlR3JhcGhRTFR5cGVPZihjb2x1bW5PcHRpb24udHlwZSB8fCB2YWx1ZSksXHJcbiAgICAgICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwge30pLFxyXG4gICAgICApXHJcbiAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHRbdGhpcy5nZXRHcmFwaFFMT3BlcmF0aW9uXVxyXG5cclxuICAgICAgaWYgKGlzTmlsKGRhdGEpKSB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgJHtpbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lfSBub3QgZm91bmRgKVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuY29udmVydERhdGFGcm9tSGFzdXJhKHJlc3VsdFt0aGlzLmdldEdyYXBoUUxPcGVyYXRpb25dKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=