@infrab4a/connect 4.0.1-beta.2 → 4.0.1-beta.4

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 (800) hide show
  1. package/README.md +24 -24
  2. package/domain/catalog/helpers/index.d.ts +1 -0
  3. package/domain/catalog/helpers/round-product-price.helper.d.ts +4 -0
  4. package/domain/catalog/index.d.ts +3 -2
  5. package/domain/catalog/models/category-base.d.ts +30 -0
  6. package/domain/catalog/models/category-collection-children.d.ts +13 -0
  7. package/domain/catalog/models/category-filter.d.ts +13 -0
  8. package/domain/catalog/models/category-for-product.d.ts +5 -0
  9. package/domain/catalog/models/category.d.ts +7 -24
  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 -0
  14. package/domain/catalog/models/filter.d.ts +12 -0
  15. package/domain/catalog/models/index.d.ts +11 -6
  16. package/domain/catalog/models/kit-product.d.ts +12 -12
  17. package/domain/catalog/models/product-base.d.ts +40 -0
  18. package/domain/catalog/models/product-for-category.d.ts +7 -0
  19. package/domain/catalog/models/product-for-kit.d.ts +7 -0
  20. package/domain/catalog/models/product.d.ts +9 -39
  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 -0
  24. package/domain/catalog/models/types/index.d.ts +11 -10
  25. package/domain/catalog/models/types/product-evaluation.type.d.ts +6 -0
  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 -7
  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 -18
  34. package/domain/catalog/models/wishlist.d.ts +8 -0
  35. package/domain/catalog/repositories/category-collection-children.repository.d.ts +4 -0
  36. package/domain/catalog/repositories/category-filter.repository.d.ts +6 -0
  37. package/domain/catalog/repositories/category.repository.d.ts +18 -15
  38. package/domain/catalog/repositories/filter-option.repository.d.ts +4 -0
  39. package/domain/catalog/repositories/filter.repository.d.ts +4 -0
  40. package/domain/catalog/repositories/index.d.ts +9 -4
  41. package/domain/catalog/repositories/product.repository.d.ts +15 -12
  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 -0
  45. package/domain/generic/index.d.ts +2 -2
  46. package/domain/generic/model/base.model.d.ts +14 -10
  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 -15
  50. package/domain/generic/model/types/identifier-model.type.d.ts +8 -7
  51. package/domain/generic/model/types/index.d.ts +5 -5
  52. package/domain/generic/model/types/model-base-structure.type.d.ts +12 -6
  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 -4
  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 -11
  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 -4
  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 -22
  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 +2 -2
  83. package/domain/shop-settings/enums/questions-filters.enum.d.ts +19 -19
  84. package/domain/shop-settings/helpers/beauty-questions.helper.d.ts +9 -9
  85. package/domain/shop-settings/helpers/index.d.ts +1 -1
  86. package/domain/shop-settings/index.d.ts +4 -4
  87. package/domain/shop-settings/models/home.d.ts +18 -18
  88. package/domain/shop-settings/models/index.d.ts +4 -3
  89. package/domain/shop-settings/models/shop-menu.d.ts +7 -7
  90. package/domain/shop-settings/models/shop-settings.d.ts +9 -0
  91. package/domain/shop-settings/models/types/banner.type.d.ts +6 -6
  92. package/domain/shop-settings/models/types/benefit.type.d.ts +5 -5
  93. package/domain/shop-settings/models/types/home-data.type.d.ts +15 -15
  94. package/domain/shop-settings/models/types/index.d.ts +10 -5
  95. package/domain/shop-settings/models/types/menu-nav.type.d.ts +8 -8
  96. package/domain/shop-settings/models/types/shop-banner.type.d.ts +12 -0
  97. package/domain/shop-settings/models/types/shop-brands.type.d.ts +10 -0
  98. package/domain/shop-settings/models/types/shop-carousel.type.d.ts +5 -0
  99. package/domain/shop-settings/models/types/shop-collection.type.d.ts +9 -0
  100. package/domain/shop-settings/models/types/shop-section.type.d.ts +9 -0
  101. package/domain/shop-settings/models/types/sub-menu.type.d.ts +8 -8
  102. package/domain/shop-settings/repositories/home.repository.d.ts +4 -4
  103. package/domain/shop-settings/repositories/index.d.ts +3 -2
  104. package/domain/shop-settings/repositories/shop-menu.repository.d.ts +4 -4
  105. package/domain/shop-settings/repositories/shop-settings.repository.d.ts +4 -0
  106. package/domain/shopping/index.d.ts +2 -2
  107. package/domain/shopping/models/buy-2-win.d.ts +18 -16
  108. package/domain/shopping/models/campaign-dashboard.d.ts +15 -0
  109. package/domain/shopping/models/campaign-hashtag.d.ts +18 -0
  110. package/domain/shopping/models/checkout.d.ts +26 -27
  111. package/domain/shopping/models/coupons/coupon.d.ts +60 -32
  112. package/domain/shopping/models/coupons/enums/coupon-club-mens.enum.d.ts +5 -5
  113. package/domain/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +4 -4
  114. package/domain/shopping/models/coupons/enums/coupon-types.enum.d.ts +4 -4
  115. package/domain/shopping/models/coupons/enums/exclusivities.enum.d.ts +8 -8
  116. package/domain/shopping/models/coupons/enums/index.d.ts +3 -3
  117. package/domain/shopping/models/coupons/index.d.ts +2 -2
  118. package/domain/shopping/models/enums/checkout-types.enum.d.ts +5 -5
  119. package/domain/shopping/models/enums/index.d.ts +2 -2
  120. package/domain/shopping/models/enums/order-status.enum.d.ts +10 -10
  121. package/domain/shopping/models/index.d.ts +12 -11
  122. package/domain/shopping/models/line-item.d.ts +8 -8
  123. package/domain/shopping/models/order.d.ts +10 -9
  124. package/domain/shopping/models/payment.d.ts +67 -67
  125. package/domain/shopping/models/shipping-method.d.ts +17 -16
  126. package/domain/shopping/models/subscription/checkout.d.ts +20 -21
  127. package/domain/shopping/models/subscription/index.d.ts +2 -2
  128. package/domain/shopping/models/subscription/plan.d.ts +10 -10
  129. package/domain/shopping/models/types/index.d.ts +7 -7
  130. package/domain/shopping/models/types/payment-address.type.d.ts +12 -12
  131. package/domain/shopping/models/types/payment-billing.type.d.ts +7 -7
  132. package/domain/shopping/models/types/payment-card.type.d.ts +14 -14
  133. package/domain/shopping/models/types/payment-customer.type.d.ts +18 -18
  134. package/domain/shopping/models/types/payment-document.type.d.ts +6 -6
  135. package/domain/shopping/models/types/payment-item.type.d.ts +11 -11
  136. package/domain/shopping/models/types/payment-shipping.type.d.ts +10 -10
  137. package/domain/shopping/repositories/buy-2-win.repository.d.ts +4 -4
  138. package/domain/shopping/repositories/campaign-dashboard.repository.d.ts +4 -0
  139. package/domain/shopping/repositories/campaign-hashtag.repository.d.ts +4 -0
  140. package/domain/shopping/repositories/checkout.repository.d.ts +4 -4
  141. package/domain/shopping/repositories/coupon.repository.d.ts +4 -4
  142. package/domain/shopping/repositories/index.d.ts +9 -7
  143. package/domain/shopping/repositories/legacy-order.repository.d.ts +3 -3
  144. package/domain/shopping/repositories/order.repository.d.ts +4 -4
  145. package/domain/shopping/repositories/payment.repository.d.ts +4 -4
  146. package/domain/shopping/repositories/subscription/checkout.repository.d.ts +4 -4
  147. package/domain/shopping/repositories/subscription/index.d.ts +2 -2
  148. package/domain/shopping/repositories/subscription/plan.repository.d.ts +4 -4
  149. package/domain/users/errors/index.d.ts +3 -3
  150. package/domain/users/errors/unauthorized.error.d.ts +4 -5
  151. package/domain/users/errors/user-already-registered.error.d.ts +4 -5
  152. package/domain/users/errors/weak-password.error.d.ts +4 -5
  153. package/domain/users/index.d.ts +5 -5
  154. package/domain/users/models/beauty-profile.d.ts +11 -11
  155. package/domain/users/models/enums/accessory-importances.enum.d.ts +5 -5
  156. package/domain/users/models/enums/area.enum.d.ts +11 -11
  157. package/domain/users/models/enums/beard-problems.enum.d.ts +9 -9
  158. package/domain/users/models/enums/beard-sizes.enum.d.ts +7 -7
  159. package/domain/users/models/enums/beauty-product-importances.enum.d.ts +6 -6
  160. package/domain/users/models/enums/body-problems.enum.d.ts +11 -11
  161. package/domain/users/models/enums/body-shapes.enum.d.ts +7 -7
  162. package/domain/users/models/enums/body-tattoos.enum.d.ts +5 -5
  163. package/domain/users/models/enums/face-skin-oilinesses.enum.d.ts +7 -7
  164. package/domain/users/models/enums/face-skin-problems.enum.d.ts +10 -10
  165. package/domain/users/models/enums/face-skin-tones.enum.d.ts +8 -8
  166. package/domain/users/models/enums/family-incomes.enum.d.ts +8 -8
  167. package/domain/users/models/enums/fragrance-importances.enum.d.ts +5 -5
  168. package/domain/users/models/enums/hair-colors.enum.d.ts +10 -10
  169. package/domain/users/models/enums/hair-problems.enum.d.ts +10 -10
  170. package/domain/users/models/enums/hair-strands.enum.d.ts +8 -8
  171. package/domain/users/models/enums/hair-types.enum.d.ts +7 -7
  172. package/domain/users/models/enums/index.d.ts +20 -20
  173. package/domain/users/models/enums/office-position.enum.d.ts +6 -6
  174. package/domain/users/models/enums/product-spents.enum.d.ts +8 -8
  175. package/domain/users/models/enums/user-type.enum.d.ts +8 -8
  176. package/domain/users/models/index.d.ts +7 -7
  177. package/domain/users/models/lead.d.ts +8 -7
  178. package/domain/users/models/subscription/edition.d.ts +16 -16
  179. package/domain/users/models/subscription/enums/billing-status.enum.d.ts +3 -3
  180. package/domain/users/models/subscription/enums/edition-status.enum.d.ts +4 -4
  181. package/domain/users/models/subscription/enums/index.d.ts +4 -4
  182. package/domain/users/models/subscription/enums/payment-type.enum.d.ts +5 -5
  183. package/domain/users/models/subscription/enums/status.enum.d.ts +4 -4
  184. package/domain/users/models/subscription/index.d.ts +4 -4
  185. package/domain/users/models/subscription/payment.d.ts +13 -13
  186. package/domain/users/models/subscription/subscription.d.ts +28 -28
  187. package/domain/users/models/user-address.d.ts +6 -7
  188. package/domain/users/models/user-payment-method.d.ts +14 -14
  189. package/domain/users/models/user.d.ts +27 -28
  190. package/domain/users/repositories/beauty-profile.repository.d.ts +4 -4
  191. package/domain/users/repositories/edition.repository.d.ts +4 -4
  192. package/domain/users/repositories/index.d.ts +8 -8
  193. package/domain/users/repositories/lead.repository.d.ts +4 -4
  194. package/domain/users/repositories/subscription-payment.repository.d.ts +4 -4
  195. package/domain/users/repositories/subscription.repository.d.ts +4 -4
  196. package/domain/users/repositories/user-address.repository.d.ts +4 -4
  197. package/domain/users/repositories/user-payment-method.repository.d.ts +4 -4
  198. package/domain/users/repositories/user.repository.d.ts +6 -6
  199. package/domain/users/services/authentication.service.d.ts +12 -12
  200. package/domain/users/services/index.d.ts +3 -3
  201. package/domain/users/services/register.service.d.ts +7 -7
  202. package/domain/users/services/types/basic-user-data.type.d.ts +4 -4
  203. package/domain/users/services/types/index.d.ts +1 -1
  204. package/domain/users/use-cases/authentication.d.ts +21 -21
  205. package/domain/users/use-cases/index.d.ts +4 -4
  206. package/domain/users/use-cases/recovery-password.d.ts +6 -6
  207. package/domain/users/use-cases/register.d.ts +13 -13
  208. package/domain/users/use-cases/signout.d.ts +6 -6
  209. package/errors/duplicated-results.error.d.ts +4 -5
  210. package/errors/index.d.ts +4 -4
  211. package/errors/invalid-argument.error.d.ts +4 -5
  212. package/errors/not-found.error.d.ts +4 -5
  213. package/errors/required-argument.error.d.ts +6 -6
  214. package/esm2020/domain/catalog/helpers/index.mjs +2 -0
  215. package/esm2020/domain/catalog/helpers/round-product-price.helper.mjs +15 -0
  216. package/{esm2015/domain/catalog/index.js → esm2020/domain/catalog/index.mjs} +4 -3
  217. package/esm2020/domain/catalog/models/category-base.mjs +18 -0
  218. package/esm2020/domain/catalog/models/category-collection-children.mjs +13 -0
  219. package/esm2020/domain/catalog/models/category-filter.mjs +19 -0
  220. package/esm2020/domain/catalog/models/category-for-product.mjs +7 -0
  221. package/esm2020/domain/catalog/models/category.mjs +14 -0
  222. package/{esm2015/domain/catalog/models/enums/index.js → esm2020/domain/catalog/models/enums/index.mjs} +3 -3
  223. package/{esm2015/domain/catalog/models/enums/product-genders.enum.js → esm2020/domain/catalog/models/enums/product-genders.enum.mjs} +7 -7
  224. package/{esm2015/domain/catalog/models/enums/shops.enum.js → esm2020/domain/catalog/models/enums/shops.enum.mjs} +8 -8
  225. package/esm2020/domain/catalog/models/filter-option.mjs +7 -0
  226. package/esm2020/domain/catalog/models/filter.mjs +7 -0
  227. package/esm2020/domain/catalog/models/index.mjs +12 -0
  228. package/esm2020/domain/catalog/models/kit-product.mjs +18 -0
  229. package/esm2020/domain/catalog/models/product-base.mjs +25 -0
  230. package/esm2020/domain/catalog/models/product-for-category.mjs +14 -0
  231. package/esm2020/domain/catalog/models/product-for-kit.mjs +14 -0
  232. package/esm2020/domain/catalog/models/product.mjs +19 -0
  233. package/{esm2015/domain/catalog/models/types/category-condition.type.js → esm2020/domain/catalog/models/types/category-condition.type.mjs} +2 -2
  234. package/{esm2015/domain/catalog/models/types/category-metadata.type.js → esm2020/domain/catalog/models/types/category-metadata.type.mjs} +2 -2
  235. package/esm2020/domain/catalog/models/types/category-product.mjs +2 -0
  236. package/esm2020/domain/catalog/models/types/index.mjs +12 -0
  237. package/esm2020/domain/catalog/models/types/product-evaluation.type.mjs +2 -0
  238. package/{esm2015/domain/catalog/models/types/product-gender.type.js → esm2020/domain/catalog/models/types/product-gender.type.mjs} +2 -2
  239. package/{esm2015/domain/catalog/models/types/product-metadata.type.js → esm2020/domain/catalog/models/types/product-metadata.type.mjs} +2 -2
  240. package/esm2020/domain/catalog/models/types/product-review.type.mjs +2 -0
  241. package/{esm2015/domain/catalog/models/types/shop-description.type.js → esm2020/domain/catalog/models/types/shop-description.type.mjs} +2 -2
  242. package/{esm2015/domain/catalog/models/types/shop-price.type.js → esm2020/domain/catalog/models/types/shop-price.type.mjs} +2 -2
  243. package/{esm2015/domain/catalog/models/types/stock.type.js → esm2020/domain/catalog/models/types/stock.type.mjs} +2 -2
  244. package/{esm2015/domain/catalog/models/types/variant-grade.type.js → esm2020/domain/catalog/models/types/variant-grade.type.mjs} +2 -2
  245. package/esm2020/domain/catalog/models/variant.mjs +7 -0
  246. package/esm2020/domain/catalog/models/wishlist.mjs +7 -0
  247. package/esm2020/domain/catalog/repositories/category-collection-children.repository.mjs +2 -0
  248. package/esm2020/domain/catalog/repositories/category-filter.repository.mjs +2 -0
  249. package/esm2020/domain/catalog/repositories/category.repository.mjs +2 -0
  250. package/esm2020/domain/catalog/repositories/filter-option.repository.mjs +2 -0
  251. package/esm2020/domain/catalog/repositories/filter.repository.mjs +2 -0
  252. package/esm2020/domain/catalog/repositories/index.mjs +10 -0
  253. package/esm2020/domain/catalog/repositories/product.repository.mjs +2 -0
  254. package/{esm2015/domain/catalog/repositories/subscription-product.repository.js → esm2020/domain/catalog/repositories/subscription-product.repository.mjs} +2 -2
  255. package/{esm2015/domain/catalog/repositories/variant.repository.js → esm2020/domain/catalog/repositories/variant.repository.mjs} +2 -2
  256. package/esm2020/domain/catalog/repositories/wishlist.repository.mjs +2 -0
  257. package/{esm2015/domain/generic/index.js → esm2020/domain/generic/index.mjs} +3 -3
  258. package/esm2020/domain/generic/model/base.model.mjs +24 -0
  259. package/{esm2015/domain/generic/model/identifier-fields.js → esm2020/domain/generic/model/identifier-fields.mjs} +2 -2
  260. package/{esm2015/domain/generic/model/index.js → esm2020/domain/generic/model/index.mjs} +4 -4
  261. package/esm2020/domain/generic/model/types/base-model-builder.type.mjs +2 -0
  262. package/esm2020/domain/generic/model/types/identifier-model.type.mjs +2 -0
  263. package/{esm2015/domain/generic/model/types/index.js → esm2020/domain/generic/model/types/index.mjs} +6 -6
  264. package/esm2020/domain/generic/model/types/model-base-structure.type.mjs +2 -0
  265. package/esm2020/domain/generic/model/types/non-function-properties.type.mjs +2 -0
  266. package/esm2020/domain/generic/model/types/non-function-property-name.type.mjs +2 -0
  267. package/esm2020/domain/generic/repository/create.repository.mjs +2 -0
  268. package/esm2020/domain/generic/repository/crud.repository.mjs +2 -0
  269. package/esm2020/domain/generic/repository/delete.repository.mjs +2 -0
  270. package/{esm2015/domain/generic/repository/enums/index.js → esm2020/domain/generic/repository/enums/index.mjs} +3 -3
  271. package/{esm2015/domain/generic/repository/enums/update-option-actions.enum.js → esm2020/domain/generic/repository/enums/update-option-actions.enum.mjs} +9 -9
  272. package/{esm2015/domain/generic/repository/enums/where.enum.js → esm2020/domain/generic/repository/enums/where.enum.mjs} +16 -16
  273. package/esm2020/domain/generic/repository/find.repository.mjs +2 -0
  274. package/esm2020/domain/generic/repository/get.repository.mjs +2 -0
  275. package/{esm2015/domain/generic/repository/index.js → esm2020/domain/generic/repository/index.mjs} +10 -10
  276. package/esm2020/domain/generic/repository/read.repository.mjs +2 -0
  277. package/{esm2015/domain/generic/repository/types/index.js → esm2020/domain/generic/repository/types/index.mjs} +7 -7
  278. package/esm2020/domain/generic/repository/types/repository-find-filters.type.mjs +2 -0
  279. package/esm2020/domain/generic/repository/types/repository-find-result.type.mjs +2 -0
  280. package/{esm2015/domain/generic/repository/types/repository-limit-options.type.js → esm2020/domain/generic/repository/types/repository-limit-options.type.mjs} +2 -2
  281. package/{esm2015/domain/generic/repository/types/repository-order-by-list.type.js → esm2020/domain/generic/repository/types/repository-order-by-list.type.mjs} +2 -2
  282. package/esm2020/domain/generic/repository/types/repository-update-params.type.mjs +2 -0
  283. package/{esm2015/domain/generic/repository/types/where-options.type.js → esm2020/domain/generic/repository/types/where-options.type.mjs} +2 -2
  284. package/esm2020/domain/generic/repository/update.repository.mjs +2 -0
  285. package/{esm2015/domain/index.js → esm2020/domain/index.mjs} +7 -7
  286. package/{esm2015/domain/location/index.js → esm2020/domain/location/index.mjs} +2 -2
  287. package/esm2020/domain/location/models/address.mjs +7 -0
  288. package/{esm2015/domain/location/models/index.js → esm2020/domain/location/models/index.mjs} +3 -3
  289. package/{esm2015/domain/location/models/types/index.js → esm2020/domain/location/models/types/index.mjs} +4 -4
  290. package/{esm2015/domain/location/models/types/location-bound.type.js → esm2020/domain/location/models/types/location-bound.type.mjs} +2 -2
  291. package/{esm2015/domain/location/models/types/location-geometry.type.js → esm2020/domain/location/models/types/location-geometry.type.mjs} +2 -2
  292. package/{esm2015/domain/location/models/types/location-lat-lng.type.js → esm2020/domain/location/models/types/location-lat-lng.type.mjs} +2 -2
  293. package/{esm2015/domain/shop-settings/enums/filter-type.enum.js → esm2020/domain/shop-settings/enums/filter-type.enum.mjs} +21 -21
  294. package/{esm2015/domain/shop-settings/enums/index.js → esm2020/domain/shop-settings/enums/index.mjs} +3 -3
  295. package/{esm2015/domain/shop-settings/enums/questions-filters.enum.js → esm2020/domain/shop-settings/enums/questions-filters.enum.mjs} +21 -21
  296. package/{esm2015/domain/shop-settings/helpers/beauty-questions.helper.js → esm2020/domain/shop-settings/helpers/beauty-questions.helper.mjs} +47 -46
  297. package/{esm2015/domain/shop-settings/helpers/index.js → esm2020/domain/shop-settings/helpers/index.mjs} +2 -2
  298. package/{esm2015/domain/shop-settings/index.js → esm2020/domain/shop-settings/index.mjs} +5 -5
  299. package/esm2020/domain/shop-settings/models/home.mjs +7 -0
  300. package/{esm2015/domain/shop-settings/models/index.js → esm2020/domain/shop-settings/models/index.mjs} +5 -4
  301. package/{esm2015/domain/shop-settings/models/shop-menu.js → esm2020/domain/shop-settings/models/shop-menu.mjs} +7 -7
  302. package/esm2020/domain/shop-settings/models/shop-settings.mjs +7 -0
  303. package/{esm2015/domain/shop-settings/models/types/banner.type.js → esm2020/domain/shop-settings/models/types/banner.type.mjs} +2 -2
  304. package/{esm2015/domain/shop-settings/models/types/benefit.type.js → esm2020/domain/shop-settings/models/types/benefit.type.mjs} +2 -2
  305. package/esm2020/domain/shop-settings/models/types/home-data.type.mjs +2 -0
  306. package/esm2020/domain/shop-settings/models/types/index.mjs +11 -0
  307. package/{esm2015/domain/shop-settings/models/types/menu-nav.type.js → esm2020/domain/shop-settings/models/types/menu-nav.type.mjs} +2 -2
  308. package/esm2020/domain/shop-settings/models/types/shop-banner.type.mjs +2 -0
  309. package/esm2020/domain/shop-settings/models/types/shop-brands.type.mjs +2 -0
  310. package/esm2020/domain/shop-settings/models/types/shop-carousel.type.mjs +2 -0
  311. package/esm2020/domain/shop-settings/models/types/shop-collection.type.mjs +2 -0
  312. package/esm2020/domain/shop-settings/models/types/shop-section.type.mjs +2 -0
  313. package/{esm2015/domain/shop-settings/models/types/sub-menu.type.js → esm2020/domain/shop-settings/models/types/sub-menu.type.mjs} +2 -2
  314. package/{esm2015/domain/shop-settings/repositories/home.repository.js → esm2020/domain/shop-settings/repositories/home.repository.mjs} +2 -2
  315. package/{esm2015/domain/shop-settings/repositories/index.js → esm2020/domain/shop-settings/repositories/index.mjs} +4 -3
  316. package/{esm2015/domain/shop-settings/repositories/shop-menu.repository.js → esm2020/domain/shop-settings/repositories/shop-menu.repository.mjs} +2 -2
  317. package/esm2020/domain/shop-settings/repositories/shop-settings.repository.mjs +2 -0
  318. package/{esm2015/domain/shopping/index.js → esm2020/domain/shopping/index.mjs} +3 -3
  319. package/esm2020/domain/shopping/models/buy-2-win.mjs +14 -0
  320. package/esm2020/domain/shopping/models/campaign-dashboard.mjs +7 -0
  321. package/esm2020/domain/shopping/models/campaign-hashtag.mjs +7 -0
  322. package/esm2020/domain/shopping/models/checkout.mjs +37 -0
  323. package/esm2020/domain/shopping/models/coupons/coupon.mjs +38 -0
  324. package/{esm2015/domain/shopping/models/coupons/enums/coupon-club-mens.enum.js → esm2020/domain/shopping/models/coupons/enums/coupon-club-mens.enum.mjs} +7 -7
  325. package/{esm2015/domain/shopping/models/coupons/enums/coupon-subtypes.enum.js → esm2020/domain/shopping/models/coupons/enums/coupon-subtypes.enum.mjs} +6 -6
  326. package/{esm2015/domain/shopping/models/coupons/enums/coupon-types.enum.js → esm2020/domain/shopping/models/coupons/enums/coupon-types.enum.mjs} +10 -10
  327. package/{esm2015/domain/shopping/models/coupons/enums/exclusivities.enum.js → esm2020/domain/shopping/models/coupons/enums/exclusivities.enum.mjs} +10 -10
  328. package/{esm2015/domain/shopping/models/coupons/enums/index.js → esm2020/domain/shopping/models/coupons/enums/index.mjs} +4 -4
  329. package/{esm2015/domain/shopping/models/coupons/index.js → esm2020/domain/shopping/models/coupons/index.mjs} +3 -3
  330. package/{esm2015/domain/shopping/models/enums/checkout-types.enum.js → esm2020/domain/shopping/models/enums/checkout-types.enum.mjs} +7 -7
  331. package/{esm2015/domain/shopping/models/enums/index.js → esm2020/domain/shopping/models/enums/index.mjs} +3 -3
  332. package/{esm2015/domain/shopping/models/enums/order-status.enum.js → esm2020/domain/shopping/models/enums/order-status.enum.mjs} +12 -12
  333. package/esm2020/domain/shopping/models/index.mjs +13 -0
  334. package/{esm2015/domain/shopping/models/line-item.js → esm2020/domain/shopping/models/line-item.mjs} +4 -4
  335. package/{esm2015/domain/shopping/models/order.js → esm2020/domain/shopping/models/order.mjs} +11 -11
  336. package/esm2020/domain/shopping/models/payment.mjs +169 -0
  337. package/esm2020/domain/shopping/models/shipping-method.mjs +7 -0
  338. package/esm2020/domain/shopping/models/subscription/checkout.mjs +28 -0
  339. package/{esm2015/domain/shopping/models/subscription/index.js → esm2020/domain/shopping/models/subscription/index.mjs} +3 -3
  340. package/{esm2015/domain/shopping/models/subscription/plan.js → esm2020/domain/shopping/models/subscription/plan.mjs} +7 -7
  341. package/{esm2015/domain/shopping/models/types/index.js → esm2020/domain/shopping/models/types/index.mjs} +8 -8
  342. package/esm2020/domain/shopping/models/types/payment-address.type.mjs +2 -0
  343. package/{esm2015/domain/shopping/models/types/payment-billing.type.js → esm2020/domain/shopping/models/types/payment-billing.type.mjs} +2 -2
  344. package/esm2020/domain/shopping/models/types/payment-card.type.mjs +2 -0
  345. package/esm2020/domain/shopping/models/types/payment-customer.type.mjs +2 -0
  346. package/{esm2015/domain/shopping/models/types/payment-document.type.js → esm2020/domain/shopping/models/types/payment-document.type.mjs} +2 -2
  347. package/{esm2015/domain/shopping/models/types/payment-item.type.js → esm2020/domain/shopping/models/types/payment-item.type.mjs} +2 -2
  348. package/{esm2015/domain/shopping/models/types/payment-shipping.type.js → esm2020/domain/shopping/models/types/payment-shipping.type.mjs} +2 -2
  349. package/{esm2015/domain/shopping/repositories/buy-2-win.repository.js → esm2020/domain/shopping/repositories/buy-2-win.repository.mjs} +2 -2
  350. package/esm2020/domain/shopping/repositories/campaign-dashboard.repository.mjs +2 -0
  351. package/esm2020/domain/shopping/repositories/campaign-hashtag.repository.mjs +2 -0
  352. package/{esm2015/domain/shopping/repositories/checkout.repository.js → esm2020/domain/shopping/repositories/checkout.repository.mjs} +2 -2
  353. package/{esm2015/domain/shopping/repositories/coupon.repository.js → esm2020/domain/shopping/repositories/coupon.repository.mjs} +2 -2
  354. package/esm2020/domain/shopping/repositories/index.mjs +10 -0
  355. package/{esm2015/domain/shopping/repositories/legacy-order.repository.js → esm2020/domain/shopping/repositories/legacy-order.repository.mjs} +2 -2
  356. package/{esm2015/domain/shopping/repositories/order.repository.js → esm2020/domain/shopping/repositories/order.repository.mjs} +2 -2
  357. package/{esm2015/domain/shopping/repositories/payment.repository.js → esm2020/domain/shopping/repositories/payment.repository.mjs} +2 -2
  358. package/{esm2015/domain/shopping/repositories/subscription/checkout.repository.js → esm2020/domain/shopping/repositories/subscription/checkout.repository.mjs} +2 -2
  359. package/{esm2015/domain/shopping/repositories/subscription/index.js → esm2020/domain/shopping/repositories/subscription/index.mjs} +3 -3
  360. package/{esm2015/domain/shopping/repositories/subscription/plan.repository.js → esm2020/domain/shopping/repositories/subscription/plan.repository.mjs} +2 -2
  361. package/{esm2015/domain/users/errors/index.js → esm2020/domain/users/errors/index.mjs} +4 -4
  362. package/{esm2015/domain/users/errors/unauthorized.error.js → esm2020/domain/users/errors/unauthorized.error.mjs} +7 -8
  363. package/{esm2015/domain/users/errors/user-already-registered.error.js → esm2020/domain/users/errors/user-already-registered.error.mjs} +7 -8
  364. package/{esm2015/domain/users/errors/weak-password.error.js → esm2020/domain/users/errors/weak-password.error.mjs} +7 -8
  365. package/{esm2015/domain/users/index.js → esm2020/domain/users/index.mjs} +6 -6
  366. package/esm2020/domain/users/models/beauty-profile.mjs +12 -0
  367. package/{esm2015/domain/users/models/enums/accessory-importances.enum.js → esm2020/domain/users/models/enums/accessory-importances.enum.mjs} +7 -7
  368. package/{esm2015/domain/users/models/enums/area.enum.js → esm2020/domain/users/models/enums/area.enum.mjs} +13 -13
  369. package/{esm2015/domain/users/models/enums/beard-problems.enum.js → esm2020/domain/users/models/enums/beard-problems.enum.mjs} +11 -11
  370. package/{esm2015/domain/users/models/enums/beard-sizes.enum.js → esm2020/domain/users/models/enums/beard-sizes.enum.mjs} +9 -9
  371. package/{esm2015/domain/users/models/enums/beauty-product-importances.enum.js → esm2020/domain/users/models/enums/beauty-product-importances.enum.mjs} +8 -8
  372. package/{esm2015/domain/users/models/enums/body-problems.enum.js → esm2020/domain/users/models/enums/body-problems.enum.mjs} +13 -13
  373. package/{esm2015/domain/users/models/enums/body-shapes.enum.js → esm2020/domain/users/models/enums/body-shapes.enum.mjs} +9 -9
  374. package/{esm2015/domain/users/models/enums/body-tattoos.enum.js → esm2020/domain/users/models/enums/body-tattoos.enum.mjs} +7 -7
  375. package/{esm2015/domain/users/models/enums/face-skin-oilinesses.enum.js → esm2020/domain/users/models/enums/face-skin-oilinesses.enum.mjs} +9 -9
  376. package/{esm2015/domain/users/models/enums/face-skin-problems.enum.js → esm2020/domain/users/models/enums/face-skin-problems.enum.mjs} +12 -12
  377. package/{esm2015/domain/users/models/enums/face-skin-tones.enum.js → esm2020/domain/users/models/enums/face-skin-tones.enum.mjs} +10 -10
  378. package/{esm2015/domain/users/models/enums/family-incomes.enum.js → esm2020/domain/users/models/enums/family-incomes.enum.mjs} +10 -10
  379. package/{esm2015/domain/users/models/enums/fragrance-importances.enum.js → esm2020/domain/users/models/enums/fragrance-importances.enum.mjs} +7 -7
  380. package/{esm2015/domain/users/models/enums/hair-colors.enum.js → esm2020/domain/users/models/enums/hair-colors.enum.mjs} +12 -12
  381. package/{esm2015/domain/users/models/enums/hair-problems.enum.js → esm2020/domain/users/models/enums/hair-problems.enum.mjs} +12 -12
  382. package/{esm2015/domain/users/models/enums/hair-strands.enum.js → esm2020/domain/users/models/enums/hair-strands.enum.mjs} +10 -10
  383. package/{esm2015/domain/users/models/enums/hair-types.enum.js → esm2020/domain/users/models/enums/hair-types.enum.mjs} +9 -9
  384. package/{esm2015/domain/users/models/enums/index.js → esm2020/domain/users/models/enums/index.mjs} +21 -21
  385. package/{esm2015/domain/users/models/enums/office-position.enum.js → esm2020/domain/users/models/enums/office-position.enum.mjs} +8 -8
  386. package/{esm2015/domain/users/models/enums/product-spents.enum.js → esm2020/domain/users/models/enums/product-spents.enum.mjs} +10 -10
  387. package/{esm2015/domain/users/models/enums/user-type.enum.js → esm2020/domain/users/models/enums/user-type.enum.mjs} +10 -10
  388. package/{esm2015/domain/users/models/index.js → esm2020/domain/users/models/index.mjs} +8 -8
  389. package/{esm2015/domain/users/models/lead.js → esm2020/domain/users/models/lead.mjs} +7 -7
  390. package/esm2020/domain/users/models/subscription/edition.mjs +7 -0
  391. package/{esm2015/domain/users/models/subscription/enums/billing-status.enum.js → esm2020/domain/users/models/subscription/enums/billing-status.enum.mjs} +5 -5
  392. package/{esm2015/domain/users/models/subscription/enums/edition-status.enum.js → esm2020/domain/users/models/subscription/enums/edition-status.enum.mjs} +6 -6
  393. package/{esm2015/domain/users/models/subscription/enums/index.js → esm2020/domain/users/models/subscription/enums/index.mjs} +5 -5
  394. package/{esm2015/domain/users/models/subscription/enums/payment-type.enum.js → esm2020/domain/users/models/subscription/enums/payment-type.enum.mjs} +7 -7
  395. package/{esm2015/domain/users/models/subscription/enums/status.enum.js → esm2020/domain/users/models/subscription/enums/status.enum.mjs} +6 -6
  396. package/{esm2015/domain/users/models/subscription/index.js → esm2020/domain/users/models/subscription/index.mjs} +5 -5
  397. package/esm2020/domain/users/models/subscription/payment.mjs +14 -0
  398. package/esm2020/domain/users/models/subscription/subscription.mjs +43 -0
  399. package/{esm2015/domain/users/models/user-address.js → esm2020/domain/users/models/user-address.mjs} +7 -7
  400. package/esm2020/domain/users/models/user-payment-method.mjs +7 -0
  401. package/esm2020/domain/users/models/user.mjs +26 -0
  402. package/{esm2015/domain/users/repositories/beauty-profile.repository.js → esm2020/domain/users/repositories/beauty-profile.repository.mjs} +2 -2
  403. package/{esm2015/domain/users/repositories/edition.repository.js → esm2020/domain/users/repositories/edition.repository.mjs} +2 -2
  404. package/{esm2015/domain/users/repositories/index.js → esm2020/domain/users/repositories/index.mjs} +9 -9
  405. package/{esm2015/domain/users/repositories/lead.repository.js → esm2020/domain/users/repositories/lead.repository.mjs} +2 -2
  406. package/{esm2015/domain/users/repositories/subscription-payment.repository.js → esm2020/domain/users/repositories/subscription-payment.repository.mjs} +2 -2
  407. package/{esm2015/domain/users/repositories/subscription.repository.js → esm2020/domain/users/repositories/subscription.repository.mjs} +2 -2
  408. package/{esm2015/domain/users/repositories/user-address.repository.js → esm2020/domain/users/repositories/user-address.repository.mjs} +2 -2
  409. package/{esm2015/domain/users/repositories/user-payment-method.repository.js → esm2020/domain/users/repositories/user-payment-method.repository.mjs} +2 -2
  410. package/esm2020/domain/users/repositories/user.repository.mjs +2 -0
  411. package/esm2020/domain/users/services/authentication.service.mjs +2 -0
  412. package/{esm2015/domain/users/services/index.js → esm2020/domain/users/services/index.mjs} +4 -4
  413. package/{esm2015/domain/users/services/register.service.js → esm2020/domain/users/services/register.service.mjs} +2 -2
  414. package/{esm2015/domain/users/services/types/basic-user-data.type.js → esm2020/domain/users/services/types/basic-user-data.type.mjs} +2 -2
  415. package/{esm2015/domain/users/services/types/index.js → esm2020/domain/users/services/types/index.mjs} +2 -2
  416. package/esm2020/domain/users/use-cases/authentication.mjs +43 -0
  417. package/{esm2015/domain/users/use-cases/index.js → esm2020/domain/users/use-cases/index.mjs} +5 -5
  418. package/esm2020/domain/users/use-cases/recovery-password.mjs +9 -0
  419. package/esm2020/domain/users/use-cases/register.mjs +38 -0
  420. package/esm2020/domain/users/use-cases/signout.mjs +9 -0
  421. package/{esm2015/errors/duplicated-results.error.js → esm2020/errors/duplicated-results.error.mjs} +7 -8
  422. package/{esm2015/errors/index.js → esm2020/errors/index.mjs} +5 -5
  423. package/{esm2015/errors/invalid-argument.error.js → esm2020/errors/invalid-argument.error.mjs} +7 -8
  424. package/{esm2015/errors/not-found.error.js → esm2020/errors/not-found.error.mjs} +7 -8
  425. package/{esm2015/errors/required-argument.error.js → esm2020/errors/required-argument.error.mjs} +9 -9
  426. package/{esm2015/index.js → esm2020/index.mjs} +6 -6
  427. package/esm2020/infra/elasticsearch/adapters/axios.adapter.mjs +67 -0
  428. package/esm2020/infra/elasticsearch/adapters/elastic-search.adapter.mjs +2 -0
  429. package/{esm2015/infra/elasticsearch/adapters/index.js → esm2020/infra/elasticsearch/adapters/index.mjs} +3 -3
  430. package/{esm2015/infra/elasticsearch/index.js → esm2020/infra/elasticsearch/index.mjs} +4 -4
  431. package/{esm2015/infra/elasticsearch/indexes/index.js → esm2020/infra/elasticsearch/indexes/index.mjs} +2 -2
  432. package/esm2020/infra/elasticsearch/indexes/products-index.mjs +104 -0
  433. package/{esm2015/infra/elasticsearch/types/elastic-search-result.js → esm2020/infra/elasticsearch/types/elastic-search-result.mjs} +2 -2
  434. package/{esm2015/infra/elasticsearch/types/index.js → esm2020/infra/elasticsearch/types/index.mjs} +2 -2
  435. package/esm2020/infra/firebase/auth/authentication-firebase-auth.service.mjs +41 -0
  436. package/{esm2015/infra/firebase/auth/index.js → esm2020/infra/firebase/auth/index.mjs} +3 -3
  437. package/esm2020/infra/firebase/auth/register-firebase-auth.service.mjs +33 -0
  438. package/{esm2015/infra/firebase/auth/types/firebase-user-with-id.type.js → esm2020/infra/firebase/auth/types/firebase-user-with-id.type.mjs} +2 -2
  439. package/{esm2015/infra/firebase/firestore/enums/firestore-field-type.enum.js → esm2020/infra/firebase/firestore/enums/firestore-field-type.enum.mjs} +10 -10
  440. package/{esm2015/infra/firebase/firestore/enums/index.js → esm2020/infra/firebase/firestore/enums/index.mjs} +2 -2
  441. package/{esm2015/infra/firebase/firestore/index.js → esm2020/infra/firebase/firestore/index.mjs} +4 -4
  442. package/{esm2015/infra/firebase/firestore/mixins/index.js → esm2020/infra/firebase/firestore/mixins/index.mjs} +10 -10
  443. package/esm2020/infra/firebase/firestore/mixins/with-create-firestore.mixin.mjs +31 -0
  444. package/esm2020/infra/firebase/firestore/mixins/with-crud-firestore.mixin.mjs +10 -0
  445. package/esm2020/infra/firebase/firestore/mixins/with-delete-firestore.mixin.mjs +18 -0
  446. package/esm2020/infra/firebase/firestore/mixins/with-find-firestore.mixin.mjs +110 -0
  447. package/esm2020/infra/firebase/firestore/mixins/with-firestore.mixin.mjs +80 -0
  448. package/esm2020/infra/firebase/firestore/mixins/with-get-firestore.mixin.mjs +23 -0
  449. package/esm2020/infra/firebase/firestore/mixins/with-helpers.mixin.mjs +17 -0
  450. package/esm2020/infra/firebase/firestore/mixins/with-sub-collection.mixin.mjs +13 -0
  451. package/esm2020/infra/firebase/firestore/mixins/with-update-firestore.mixin.mjs +51 -0
  452. package/esm2020/infra/firebase/firestore/repositories/catalog/category-firestore.repository.mjs +67 -0
  453. package/{esm2015/infra/firebase/firestore/repositories/catalog/index.js → esm2020/infra/firebase/firestore/repositories/catalog/index.mjs} +5 -5
  454. package/esm2020/infra/firebase/firestore/repositories/catalog/product-firestore.repository.mjs +54 -0
  455. package/esm2020/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.mjs +16 -0
  456. package/esm2020/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.mjs +14 -0
  457. package/{esm2015/infra/firebase/firestore/repositories/index.js → esm2020/infra/firebase/firestore/repositories/index.mjs} +5 -5
  458. package/esm2020/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.mjs +60 -0
  459. package/{esm2015/infra/firebase/firestore/repositories/shop-settings/index.js → esm2020/infra/firebase/firestore/repositories/shop-settings/index.mjs} +4 -3
  460. package/esm2020/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.mjs +14 -0
  461. package/esm2020/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.mjs +14 -0
  462. package/esm2020/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.mjs +14 -0
  463. package/esm2020/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.mjs +14 -0
  464. package/esm2020/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.mjs +14 -0
  465. package/esm2020/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.mjs +14 -0
  466. package/esm2020/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.mjs +14 -0
  467. package/esm2020/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.mjs +31 -0
  468. package/esm2020/infra/firebase/firestore/repositories/shopping/index.mjs +11 -0
  469. package/esm2020/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.mjs +11 -0
  470. package/esm2020/infra/firebase/firestore/repositories/shopping/order-firestore.repository.mjs +40 -0
  471. package/esm2020/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.mjs +14 -0
  472. package/esm2020/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.mjs +14 -0
  473. package/{esm2015/infra/firebase/firestore/repositories/users/index.js → esm2020/infra/firebase/firestore/repositories/users/index.mjs} +9 -9
  474. package/esm2020/infra/firebase/firestore/repositories/users/lead-firestore.repository.mjs +14 -0
  475. package/esm2020/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.mjs +16 -0
  476. package/esm2020/infra/firebase/firestore/repositories/users/subscription-firestore.repository.mjs +14 -0
  477. package/esm2020/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.mjs +16 -0
  478. package/esm2020/infra/firebase/firestore/repositories/users/user-address-firestore.repository.mjs +16 -0
  479. package/esm2020/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.mjs +16 -0
  480. package/esm2020/infra/firebase/firestore/repositories/users/user-firestore.repository.mjs +50 -0
  481. package/esm2020/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.mjs +16 -0
  482. package/esm2020/infra/firebase/firestore/types/firestore-interceptors.type.mjs +2 -0
  483. package/esm2020/infra/firebase/firestore/types/firestore-sub.repository.type.mjs +2 -0
  484. package/esm2020/infra/firebase/firestore/types/firestore.helpers.type.mjs +2 -0
  485. package/esm2020/infra/firebase/firestore/types/firestore.repository.type.mjs +2 -0
  486. package/esm2020/infra/firebase/firestore/types/index.mjs +5 -0
  487. package/{esm2015/infra/firebase/index.js → esm2020/infra/firebase/index.mjs} +3 -3
  488. package/{esm2015/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.js → esm2020/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.mjs} +13 -13
  489. package/{esm2015/infra/hasura-graphql/enums/hasura-graphql-where.enum.js → esm2020/infra/hasura-graphql/enums/hasura-graphql-where.enum.mjs} +17 -15
  490. package/{esm2015/infra/hasura-graphql/enums/index.js → esm2020/infra/hasura-graphql/enums/index.mjs} +3 -3
  491. package/{esm2015/infra/hasura-graphql/index.js → esm2020/infra/hasura-graphql/index.mjs} +5 -5
  492. package/esm2020/infra/hasura-graphql/mixins/helpers/attribute-option.helper.mjs +35 -0
  493. package/esm2020/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.mjs +71 -0
  494. package/esm2020/infra/hasura-graphql/mixins/helpers/filter-option.helper.mjs +22 -0
  495. package/esm2020/infra/hasura-graphql/mixins/helpers/graphql-field.helper.mjs +125 -0
  496. package/{esm2015/infra/hasura-graphql/mixins/helpers/index.js → esm2020/infra/hasura-graphql/mixins/helpers/index.mjs} +5 -5
  497. package/{esm2015/infra/hasura-graphql/mixins/index.js → esm2020/infra/hasura-graphql/mixins/index.mjs} +8 -8
  498. package/esm2020/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.mjs +39 -0
  499. package/esm2020/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.mjs +10 -0
  500. package/esm2020/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.mjs +31 -0
  501. package/esm2020/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.mjs +152 -0
  502. package/esm2020/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.mjs +37 -0
  503. package/esm2020/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.mjs +108 -0
  504. package/esm2020/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.mjs +62 -0
  505. package/{esm2015/infra/hasura-graphql/models/category-hasura-graphql.js → esm2020/infra/hasura-graphql/models/category-hasura-graphql.mjs} +4 -4
  506. package/{esm2015/infra/hasura-graphql/models/index.js → esm2020/infra/hasura-graphql/models/index.mjs} +5 -5
  507. package/{esm2015/infra/hasura-graphql/models/kit-product-hasura-graphql.js → esm2020/infra/hasura-graphql/models/kit-product-hasura-graphql.mjs} +15 -15
  508. package/esm2020/infra/hasura-graphql/models/product-hasura-graphql.mjs +11 -0
  509. package/{esm2015/infra/hasura-graphql/models/variant-hasura-graphql.js → esm2020/infra/hasura-graphql/models/variant-hasura-graphql.mjs} +9 -9
  510. package/esm2020/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.mjs +39 -0
  511. package/esm2020/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.mjs +107 -0
  512. package/esm2020/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.mjs +338 -0
  513. package/esm2020/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.mjs +105 -0
  514. package/esm2020/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.mjs +22 -0
  515. package/esm2020/infra/hasura-graphql/repositories/catalog/index.mjs +9 -0
  516. package/esm2020/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.mjs +516 -0
  517. package/esm2020/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.mjs +114 -0
  518. package/esm2020/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.mjs +238 -0
  519. package/{esm2015/infra/hasura-graphql/repositories/index.js → esm2020/infra/hasura-graphql/repositories/index.mjs} +2 -2
  520. package/{esm2015/infra/hasura-graphql/types/fields.type.js → esm2020/infra/hasura-graphql/types/fields.type.mjs} +2 -2
  521. package/esm2020/infra/hasura-graphql/types/graphql.repository.type.mjs +2 -0
  522. package/{esm2015/infra/hasura-graphql/types/hasura-graphql-auth-options.type.js → esm2020/infra/hasura-graphql/types/hasura-graphql-auth-options.type.mjs} +2 -2
  523. package/esm2020/infra/hasura-graphql/types/hasura-graphql-fields.type.mjs +2 -0
  524. package/{esm2015/infra/hasura-graphql/types/hasura-graphql-headers.type.js → esm2020/infra/hasura-graphql/types/hasura-graphql-headers.type.mjs} +2 -2
  525. package/{esm2015/infra/hasura-graphql/types/index.js → esm2020/infra/hasura-graphql/types/index.mjs} +9 -9
  526. package/{esm2015/infra/hasura-graphql/types/nested-field.type.js → esm2020/infra/hasura-graphql/types/nested-field.type.mjs} +2 -2
  527. package/{esm2015/infra/hasura-graphql/types/query-builder-options.type.js → esm2020/infra/hasura-graphql/types/query-builder-options.type.mjs} +2 -2
  528. package/{esm2015/infra/hasura-graphql/types/variable-options.type.js → esm2020/infra/hasura-graphql/types/variable-options.type.mjs} +2 -2
  529. package/{esm2015/infra/index.js → esm2020/infra/index.mjs} +4 -4
  530. package/{esm2015/infrab4a-connect.js → esm2020/infrab4a-connect.mjs} +4 -4
  531. package/esm2020/utils/decorators/debug.class.decorator.mjs +7 -0
  532. package/esm2020/utils/decorators/index.mjs +3 -0
  533. package/esm2020/utils/decorators/trace.method.decorator.mjs +81 -0
  534. package/esm2020/utils/get.mjs +3 -0
  535. package/esm2020/utils/helpers/class-name.helper.mjs +15 -0
  536. package/esm2020/utils/helpers/debug-decorator.helper.mjs +18 -0
  537. package/esm2020/utils/helpers/debug.helper.mjs +150 -0
  538. package/esm2020/utils/helpers/index.mjs +5 -0
  539. package/esm2020/utils/helpers/reflect.helper.mjs +165 -0
  540. package/esm2020/utils/index.mjs +13 -0
  541. package/{esm2015/utils/is-uuid.js → esm2020/utils/is-uuid.mjs} +3 -3
  542. package/esm2020/utils/is.mjs +4 -0
  543. package/esm2020/utils/log.utils.mjs +9 -0
  544. package/{esm2015/utils/mixins/base.mixin.js → esm2020/utils/mixins/base.mixin.mjs} +6 -6
  545. package/{esm2015/utils/mixins/index.js → esm2020/utils/mixins/index.mjs} +4 -4
  546. package/{esm2015/utils/mixins/merge-constructor-params.type.js → esm2020/utils/mixins/merge-constructor-params.type.mjs} +2 -2
  547. package/{esm2015/utils/mixins/mixin-ctor.type.js → esm2020/utils/mixins/mixin-ctor.type.mjs} +2 -2
  548. package/{esm2015/utils/parse-datetime.js → esm2020/utils/parse-datetime.mjs} +14 -14
  549. package/{esm2015/utils/types/array-element.type.js → esm2020/utils/types/array-element.type.mjs} +2 -2
  550. package/{esm2015/utils/types/index.js → esm2020/utils/types/index.mjs} +3 -3
  551. package/{esm2015/utils/types/prop.type.js → esm2020/utils/types/prop.type.mjs} +2 -2
  552. package/fesm2015/{infrab4a-connect.js → infrab4a-connect.mjs} +4789 -3163
  553. package/fesm2015/infrab4a-connect.mjs.map +1 -0
  554. package/fesm2020/infrab4a-connect.mjs +4857 -0
  555. package/fesm2020/infrab4a-connect.mjs.map +1 -0
  556. package/index.d.ts +5 -5
  557. package/infra/elasticsearch/adapters/axios.adapter.d.ts +16 -14
  558. package/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +8 -7
  559. package/infra/elasticsearch/adapters/index.d.ts +2 -2
  560. package/infra/elasticsearch/index.d.ts +3 -3
  561. package/infra/elasticsearch/indexes/index.d.ts +1 -1
  562. package/infra/elasticsearch/indexes/products-index.d.ts +13 -15
  563. package/infra/elasticsearch/types/elastic-search-result.d.ts +9 -7
  564. package/infra/elasticsearch/types/index.d.ts +1 -1
  565. package/infra/firebase/auth/authentication-firebase-auth.service.d.ts +12 -12
  566. package/infra/firebase/auth/index.d.ts +2 -2
  567. package/infra/firebase/auth/register-firebase-auth.service.d.ts +8 -8
  568. package/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +5 -3
  569. package/infra/firebase/firestore/enums/firestore-field-type.enum.d.ts +8 -8
  570. package/infra/firebase/firestore/enums/index.d.ts +1 -1
  571. package/infra/firebase/firestore/index.d.ts +3 -3
  572. package/infra/firebase/firestore/mixins/index.d.ts +9 -9
  573. package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +4 -4
  574. package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +5 -4
  575. package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +4 -4
  576. package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +4 -4
  577. package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +13 -4
  578. package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +4 -4
  579. package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +11 -11
  580. package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +11 -7
  581. package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +7 -7
  582. package/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +20 -17
  583. package/infra/firebase/firestore/repositories/catalog/index.d.ts +4 -4
  584. package/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +12 -11
  585. package/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +12 -13
  586. package/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +7 -8
  587. package/infra/firebase/firestore/repositories/index.d.ts +4 -4
  588. package/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +16 -16
  589. package/infra/firebase/firestore/repositories/shop-settings/index.d.ts +3 -2
  590. package/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +7 -8
  591. package/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +7 -0
  592. package/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +7 -8
  593. package/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.d.ts +8 -0
  594. package/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.d.ts +8 -0
  595. package/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +7 -8
  596. package/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +7 -8
  597. package/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +12 -12
  598. package/infra/firebase/firestore/repositories/shopping/index.d.ts +10 -8
  599. package/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +6 -7
  600. package/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +13 -13
  601. package/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +7 -8
  602. package/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +7 -8
  603. package/infra/firebase/firestore/repositories/users/index.d.ts +8 -8
  604. package/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +7 -8
  605. package/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +12 -13
  606. package/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +7 -8
  607. package/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +12 -13
  608. package/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +12 -13
  609. package/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +12 -13
  610. package/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +17 -17
  611. package/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +12 -13
  612. package/infra/firebase/firestore/types/firestore-interceptors.type.d.ts +14 -0
  613. package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +6 -6
  614. package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +8 -8
  615. package/infra/firebase/firestore/types/firestore.repository.type.d.ts +16 -14
  616. package/infra/firebase/firestore/types/index.d.ts +4 -3
  617. package/infra/firebase/index.d.ts +2 -2
  618. package/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.d.ts +11 -11
  619. package/infra/hasura-graphql/enums/hasura-graphql-where.enum.d.ts +15 -13
  620. package/infra/hasura-graphql/enums/index.d.ts +2 -2
  621. package/infra/hasura-graphql/index.d.ts +4 -4
  622. package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +19 -13
  623. package/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.d.ts +10 -10
  624. package/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +8 -6
  625. package/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +12 -8
  626. package/infra/hasura-graphql/mixins/helpers/index.d.ts +4 -4
  627. package/infra/hasura-graphql/mixins/index.d.ts +7 -7
  628. package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +9 -8
  629. package/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +11 -11
  630. package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +7 -7
  631. package/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +34 -25
  632. package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +25 -24
  633. package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +23 -11
  634. package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +14 -14
  635. package/infra/hasura-graphql/models/category-hasura-graphql.d.ts +6 -6
  636. package/infra/hasura-graphql/models/index.d.ts +4 -4
  637. package/infra/hasura-graphql/models/kit-product-hasura-graphql.d.ts +6 -6
  638. package/infra/hasura-graphql/models/product-hasura-graphql.d.ts +18 -14
  639. package/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +10 -9
  640. package/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.d.ts +10 -0
  641. package/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.d.ts +12 -0
  642. package/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +34 -27
  643. package/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.d.ts +18 -0
  644. package/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.d.ts +10 -0
  645. package/infra/hasura-graphql/repositories/catalog/index.d.ts +8 -3
  646. package/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +30 -28
  647. package/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +14 -14
  648. package/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.d.ts +27 -0
  649. package/infra/hasura-graphql/repositories/index.d.ts +1 -1
  650. package/infra/hasura-graphql/types/fields.type.d.ts +2 -2
  651. package/infra/hasura-graphql/types/graphql.repository.type.d.ts +24 -21
  652. package/infra/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +8 -8
  653. package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +44 -40
  654. package/infra/hasura-graphql/types/hasura-graphql-headers.type.d.ts +7 -7
  655. package/infra/hasura-graphql/types/index.d.ts +8 -8
  656. package/infra/hasura-graphql/types/nested-field.type.d.ts +7 -7
  657. package/infra/hasura-graphql/types/query-builder-options.type.d.ts +7 -7
  658. package/infra/hasura-graphql/types/variable-options.type.d.ts +9 -9
  659. package/infra/index.d.ts +3 -3
  660. package/package.json +23 -9
  661. package/utils/decorators/debug.class.decorator.d.ts +2 -0
  662. package/utils/decorators/index.d.ts +2 -0
  663. package/utils/decorators/trace.method.decorator.d.ts +14 -0
  664. package/utils/get.d.ts +1 -0
  665. package/utils/helpers/class-name.helper.d.ts +3 -0
  666. package/utils/helpers/debug-decorator.helper.d.ts +9 -0
  667. package/utils/helpers/debug.helper.d.ts +60 -0
  668. package/utils/helpers/index.d.ts +4 -0
  669. package/utils/helpers/reflect.helper.d.ts +50 -0
  670. package/utils/index.d.ts +13 -7
  671. package/utils/is-uuid.d.ts +1 -1
  672. package/utils/is.d.ts +1 -0
  673. package/utils/log.utils.d.ts +7 -0
  674. package/utils/mixins/base.mixin.d.ts +3 -3
  675. package/utils/mixins/index.d.ts +3 -3
  676. package/utils/mixins/merge-constructor-params.type.d.ts +3 -3
  677. package/utils/mixins/mixin-ctor.type.d.ts +1 -1
  678. package/utils/parse-datetime.d.ts +1 -1
  679. package/utils/types/array-element.type.d.ts +1 -1
  680. package/utils/types/index.d.ts +2 -2
  681. package/utils/types/prop.type.d.ts +1 -1
  682. package/bundles/infrab4a-connect.umd.js +0 -5146
  683. package/bundles/infrab4a-connect.umd.js.map +0 -1
  684. package/domain/catalog/models/types/category-filter.type.d.ts +0 -4
  685. package/esm2015/domain/catalog/models/category.js +0 -10
  686. package/esm2015/domain/catalog/models/index.js +0 -7
  687. package/esm2015/domain/catalog/models/kit-product.js +0 -18
  688. package/esm2015/domain/catalog/models/product.js +0 -17
  689. package/esm2015/domain/catalog/models/types/category-filter.type.js +0 -2
  690. package/esm2015/domain/catalog/models/types/index.js +0 -11
  691. package/esm2015/domain/catalog/models/types/product-review.type.js +0 -2
  692. package/esm2015/domain/catalog/models/variant.js +0 -10
  693. package/esm2015/domain/catalog/repositories/category.repository.js +0 -2
  694. package/esm2015/domain/catalog/repositories/index.js +0 -5
  695. package/esm2015/domain/catalog/repositories/product.repository.js +0 -2
  696. package/esm2015/domain/generic/model/base.model.js +0 -23
  697. package/esm2015/domain/generic/model/types/base-model-builder.type.js +0 -2
  698. package/esm2015/domain/generic/model/types/identifier-model.type.js +0 -2
  699. package/esm2015/domain/generic/model/types/model-base-structure.type.js +0 -2
  700. package/esm2015/domain/generic/model/types/non-function-properties.type.js +0 -2
  701. package/esm2015/domain/generic/model/types/non-function-property-name.type.js +0 -2
  702. package/esm2015/domain/generic/repository/create.repository.js +0 -2
  703. package/esm2015/domain/generic/repository/crud.repository.js +0 -2
  704. package/esm2015/domain/generic/repository/delete.repository.js +0 -2
  705. package/esm2015/domain/generic/repository/find.repository.js +0 -2
  706. package/esm2015/domain/generic/repository/get.repository.js +0 -2
  707. package/esm2015/domain/generic/repository/read.repository.js +0 -2
  708. package/esm2015/domain/generic/repository/types/repository-find-filters.type.js +0 -2
  709. package/esm2015/domain/generic/repository/types/repository-find-result.type.js +0 -2
  710. package/esm2015/domain/generic/repository/types/repository-update-params.type.js +0 -2
  711. package/esm2015/domain/generic/repository/update.repository.js +0 -2
  712. package/esm2015/domain/location/models/address.js +0 -7
  713. package/esm2015/domain/shop-settings/models/home.js +0 -7
  714. package/esm2015/domain/shop-settings/models/types/home-data.type.js +0 -2
  715. package/esm2015/domain/shop-settings/models/types/index.js +0 -6
  716. package/esm2015/domain/shopping/models/buy-2-win.js +0 -14
  717. package/esm2015/domain/shopping/models/checkout.js +0 -38
  718. package/esm2015/domain/shopping/models/coupons/coupon.js +0 -38
  719. package/esm2015/domain/shopping/models/index.js +0 -12
  720. package/esm2015/domain/shopping/models/payment.js +0 -169
  721. package/esm2015/domain/shopping/models/shipping-method.js +0 -7
  722. package/esm2015/domain/shopping/models/subscription/checkout.js +0 -28
  723. package/esm2015/domain/shopping/models/types/payment-address.type.js +0 -2
  724. package/esm2015/domain/shopping/models/types/payment-card.type.js +0 -2
  725. package/esm2015/domain/shopping/models/types/payment-customer.type.js +0 -2
  726. package/esm2015/domain/shopping/repositories/index.js +0 -8
  727. package/esm2015/domain/users/models/beauty-profile.js +0 -12
  728. package/esm2015/domain/users/models/subscription/edition.js +0 -7
  729. package/esm2015/domain/users/models/subscription/payment.js +0 -14
  730. package/esm2015/domain/users/models/subscription/subscription.js +0 -43
  731. package/esm2015/domain/users/models/user-payment-method.js +0 -7
  732. package/esm2015/domain/users/models/user.js +0 -26
  733. package/esm2015/domain/users/repositories/user.repository.js +0 -2
  734. package/esm2015/domain/users/services/authentication.service.js +0 -2
  735. package/esm2015/domain/users/use-cases/authentication.js +0 -40
  736. package/esm2015/domain/users/use-cases/recovery-password.js +0 -12
  737. package/esm2015/domain/users/use-cases/register.js +0 -34
  738. package/esm2015/domain/users/use-cases/signout.js +0 -12
  739. package/esm2015/infra/elasticsearch/adapters/axios.adapter.js +0 -57
  740. package/esm2015/infra/elasticsearch/adapters/elastic-search.adapter.js +0 -2
  741. package/esm2015/infra/elasticsearch/indexes/products-index.js +0 -93
  742. package/esm2015/infra/firebase/auth/authentication-firebase-auth.service.js +0 -52
  743. package/esm2015/infra/firebase/auth/register-firebase-auth.service.js +0 -26
  744. package/esm2015/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +0 -31
  745. package/esm2015/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +0 -10
  746. package/esm2015/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +0 -18
  747. package/esm2015/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +0 -96
  748. package/esm2015/infra/firebase/firestore/mixins/with-firestore.mixin.js +0 -49
  749. package/esm2015/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +0 -24
  750. package/esm2015/infra/firebase/firestore/mixins/with-helpers.mixin.js +0 -17
  751. package/esm2015/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +0 -11
  752. package/esm2015/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +0 -45
  753. package/esm2015/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +0 -71
  754. package/esm2015/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js +0 -52
  755. package/esm2015/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.js +0 -14
  756. package/esm2015/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.js +0 -12
  757. package/esm2015/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.js +0 -56
  758. package/esm2015/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.js +0 -12
  759. package/esm2015/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.js +0 -12
  760. package/esm2015/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.js +0 -12
  761. package/esm2015/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.js +0 -12
  762. package/esm2015/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.js +0 -29
  763. package/esm2015/infra/firebase/firestore/repositories/shopping/index.js +0 -9
  764. package/esm2015/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.js +0 -9
  765. package/esm2015/infra/firebase/firestore/repositories/shopping/order-firestore.repository.js +0 -40
  766. package/esm2015/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.js +0 -12
  767. package/esm2015/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.js +0 -12
  768. package/esm2015/infra/firebase/firestore/repositories/users/lead-firestore.repository.js +0 -12
  769. package/esm2015/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.js +0 -14
  770. package/esm2015/infra/firebase/firestore/repositories/users/subscription-firestore.repository.js +0 -12
  771. package/esm2015/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.js +0 -14
  772. package/esm2015/infra/firebase/firestore/repositories/users/user-address-firestore.repository.js +0 -14
  773. package/esm2015/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.js +0 -14
  774. package/esm2015/infra/firebase/firestore/repositories/users/user-firestore.repository.js +0 -68
  775. package/esm2015/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.js +0 -14
  776. package/esm2015/infra/firebase/firestore/types/firestore-sub.repository.type.js +0 -2
  777. package/esm2015/infra/firebase/firestore/types/firestore.helpers.type.js +0 -2
  778. package/esm2015/infra/firebase/firestore/types/firestore.repository.type.js +0 -2
  779. package/esm2015/infra/firebase/firestore/types/index.js +0 -4
  780. package/esm2015/infra/hasura-graphql/mixins/helpers/attribute-option.helper.js +0 -31
  781. package/esm2015/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.js +0 -53
  782. package/esm2015/infra/hasura-graphql/mixins/helpers/filter-option.helper.js +0 -22
  783. package/esm2015/infra/hasura-graphql/mixins/helpers/graphql-field.helper.js +0 -86
  784. package/esm2015/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.js +0 -45
  785. package/esm2015/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.js +0 -10
  786. package/esm2015/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.js +0 -29
  787. package/esm2015/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.js +0 -45
  788. package/esm2015/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.js +0 -35
  789. package/esm2015/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.js +0 -94
  790. package/esm2015/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.js +0 -56
  791. package/esm2015/infra/hasura-graphql/models/product-hasura-graphql.js +0 -11
  792. package/esm2015/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js +0 -241
  793. package/esm2015/infra/hasura-graphql/repositories/catalog/index.js +0 -4
  794. package/esm2015/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js +0 -462
  795. package/esm2015/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.js +0 -116
  796. package/esm2015/infra/hasura-graphql/types/graphql.repository.type.js +0 -2
  797. package/esm2015/infra/hasura-graphql/types/hasura-graphql-fields.type.js +0 -2
  798. package/esm2015/utils/index.js +0 -8
  799. package/fesm2015/infrab4a-connect.js.map +0 -1
  800. package/infrab4a-connect.d.ts +0 -5
@@ -0,0 +1,16 @@
1
+ import { User, UserPaymentMethod } from '../../../../../domain';
2
+ import { Base } from '../../../../../utils';
3
+ import { withCrudFirestore, withFirestore, withHelpers, withSubCollection, } from '../../mixins';
4
+ export class UserPaymentMethodFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base))), User) {
5
+ constructor({ firestore, interceptors }, parentRepository) {
6
+ super({
7
+ firestore,
8
+ collectionName: 'payment_method',
9
+ parentIdField: 'userId',
10
+ model: UserPaymentMethod,
11
+ interceptors,
12
+ });
13
+ this.parentRepository = parentRepository;
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wYXltZW50LW1ldGhvZC1maXJlc3RvcmUucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9yZXBvc2l0b3JpZXMvdXNlcnMvdXNlci1wYXltZW50LW1ldGhvZC1maXJlc3RvcmUucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUErQixNQUFNLHVCQUF1QixDQUFBO0FBQzVGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUMzQyxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixXQUFXLEVBQ1gsaUJBQWlCLEdBQ2xCLE1BQU0sY0FBYyxDQUFBO0FBR3JCLE1BQU0sT0FBTyxvQ0FDWCxTQUFRLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQW9CLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7SUFHdkcsWUFDRSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFGLEVBQzVGLGdCQUF5QztRQUUzRCxLQUFLLENBQUM7WUFDSixTQUFTO1lBQ1QsY0FBYyxFQUFFLGdCQUFnQjtZQUNoQyxhQUFhLEVBQUUsUUFBUTtZQUN2QixLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLFlBQVk7U0FDYixDQUFDLENBQUE7UUFSZ0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtJQVM3RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyLCBVc2VyUGF5bWVudE1ldGhvZCwgVXNlclBheW1lbnRNZXRob2RSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHtcbiAgRmlyZXN0b3JlQ29uc3RydWN0b3JQYXJhbXMsXG4gIHdpdGhDcnVkRmlyZXN0b3JlLFxuICB3aXRoRmlyZXN0b3JlLFxuICB3aXRoSGVscGVycyxcbiAgd2l0aFN1YkNvbGxlY3Rpb24sXG59IGZyb20gJy4uLy4uL21peGlucydcbmltcG9ydCB7IFVzZXJGaXJlc3RvcmVSZXBvc2l0b3J5IH0gZnJvbSAnLi91c2VyLWZpcmVzdG9yZS5yZXBvc2l0b3J5J1xuXG5leHBvcnQgY2xhc3MgVXNlclBheW1lbnRNZXRob2RGaXJlc3RvcmVSZXBvc2l0b3J5XG4gIGV4dGVuZHMgd2l0aFN1YkNvbGxlY3Rpb24od2l0aENydWRGaXJlc3RvcmUod2l0aEhlbHBlcnMod2l0aEZpcmVzdG9yZTxVc2VyUGF5bWVudE1ldGhvZD4oQmFzZSkpKSwgVXNlcilcbiAgaW1wbGVtZW50cyBVc2VyUGF5bWVudE1ldGhvZFJlcG9zaXRvcnlcbntcbiAgY29uc3RydWN0b3IoXG4gICAgeyBmaXJlc3RvcmUsIGludGVyY2VwdG9ycyB9OiBQaWNrPEZpcmVzdG9yZUNvbnN0cnVjdG9yUGFyYW1zPFVzZXJQYXltZW50TWV0aG9kPiwgJ2ZpcmVzdG9yZScgfCAnaW50ZXJjZXB0b3JzJz4sXG4gICAgb3ZlcnJpZGUgcmVhZG9ubHkgcGFyZW50UmVwb3NpdG9yeTogVXNlckZpcmVzdG9yZVJlcG9zaXRvcnksXG4gICkge1xuICAgIHN1cGVyKHtcbiAgICAgIGZpcmVzdG9yZSxcbiAgICAgIGNvbGxlY3Rpb25OYW1lOiAncGF5bWVudF9tZXRob2QnLFxuICAgICAgcGFyZW50SWRGaWVsZDogJ3VzZXJJZCcsXG4gICAgICBtb2RlbDogVXNlclBheW1lbnRNZXRob2QsXG4gICAgICBpbnRlcmNlcHRvcnMsXG4gICAgfSlcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLWludGVyY2VwdG9ycy50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL3R5cGVzL2ZpcmVzdG9yZS1pbnRlcmNlcHRvcnMudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzLFxuICBSZXBvc2l0b3J5TGltaXRPcHRpb25zLFxuICBSZXBvc2l0b3J5T3JkZXJCeSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuXG5leHBvcnQgdHlwZSBGaXJlc3RvcmVJbnRlcnRjZXB0b3JSZXF1ZXN0UGFyYW1zPFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLCBUID0gYW55PiA9IHtcbiAgaW5zdGFuY2U/OiBUQmFzZVxuICBmaW5kPzoge1xuICAgIGZpbHRlcnM/OiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFRCYXNlPlxuICAgIGxpbWl0cz86IFJlcG9zaXRvcnlMaW1pdE9wdGlvbnM8VEJhc2U+XG4gICAgb3JkZXJCeT86IFJlcG9zaXRvcnlPcmRlckJ5PFRCYXNlPlxuICB9XG59ICYgVFxuXG5leHBvcnQgaW50ZXJmYWNlIEZpcmVzdG9yZUludGVyY2VwdG9yczxUQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4ge1xuICByZXF1ZXN0PzogPFI+KFxuICAgIHJlcXVlc3Q6IEZpcmVzdG9yZUludGVydGNlcHRvclJlcXVlc3RQYXJhbXM8VEJhc2UsIFI+LFxuICApID0+IFByb21pc2U8RmlyZXN0b3JlSW50ZXJ0Y2VwdG9yUmVxdWVzdFBhcmFtczxUQmFzZSwgUj4+XG4gIHJlc3BvbnNlPzxSLCBUPihyZXNwb25zZTogVEJhc2UsIHJlcXVlc3Q6IEZpcmVzdG9yZUludGVydGNlcHRvclJlcXVlc3RQYXJhbXM8VEJhc2UsIFQ+KTogUHJvbWlzZTxUQmFzZSAmIFI+XG4gIHJlc3BvbnNlPzxSLCBUPihyZXNwb25zZTogVEJhc2VbXSwgcmVxdWVzdDogRmlyZXN0b3JlSW50ZXJ0Y2VwdG9yUmVxdWVzdFBhcmFtczxUQmFzZSwgVD4pOiBQcm9taXNlPFRCYXNlW10gJiBSPlxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLXN1Yi5yZXBvc2l0b3J5LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvdHlwZXMvZmlyZXN0b3JlLXN1Yi5yZXBvc2l0b3J5LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkZW50aWZpZXJNb2RlbCwgTW9kZWxCYXNlU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgRmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4vZmlyZXN0b3JlLnJlcG9zaXRvcnkudHlwZSdcblxuZXhwb3J0IHR5cGUgRmlyZXN0b3JlU3ViUmVwb3NpdG9yeTxcbiAgTW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TW9kZWw+LFxuICBQYXJlbnRNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxQYXJlbnRNb2RlbD4sXG4+ID0ge1xuICByZWFkb25seSBwYXJlbnRSZXBvc2l0b3J5OiBGaXJlc3RvcmVSZXBvc2l0b3J5PFBhcmVudE1vZGVsPlxuICBwYXJlbnRJZEZpZWxkOiBJZGVudGlmaWVyTW9kZWw8TW9kZWw+XG59ICYgRmlyZXN0b3JlUmVwb3NpdG9yeTxNb2RlbD5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLmhlbHBlcnMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS90eXBlcy9maXJlc3RvcmUuaGVscGVycy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeURvY3VtZW50U25hcHNob3QsIFF1ZXJ5U25hcHNob3QgfSBmcm9tICdmaXJlYmFzZS9maXJlc3RvcmUnXG5cbmltcG9ydCB7IE1vZGVsQmFzZVN0cnVjdHVyZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcblxuaW1wb3J0IHsgRmlyZXN0b3JlU3ViUmVwb3NpdG9yeSB9IGZyb20gJy4vZmlyZXN0b3JlLXN1Yi5yZXBvc2l0b3J5LnR5cGUnXG5pbXBvcnQgeyBGaXJlc3RvcmVSZXBvc2l0b3J5IH0gZnJvbSAnLi9maXJlc3RvcmUucmVwb3NpdG9yeS50eXBlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpcmVzdG9yZUhlbHBlcnMge1xuICB0b0FycmF5PFQgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8VD4+KHNuYXBTaG90OiBRdWVyeVNuYXBzaG90PFQ+IHwgQXJyYXk8UXVlcnlEb2N1bWVudFNuYXBzaG90PFQ+Pik6IEFycmF5PFQ+XG4gIGlzU3ViQ29sbGVjdGlvbjxUIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPFQ+LCBFIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPEU+PihcbiAgICByZXBvc2l0b3J5OiBGaXJlc3RvcmVSZXBvc2l0b3J5PFQ+IHwgRmlyZXN0b3JlU3ViUmVwb3NpdG9yeTxULCBFPixcbiAgKTogcmVwb3NpdG9yeSBpcyBGaXJlc3RvcmVTdWJSZXBvc2l0b3J5PFQsIEU+XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLnJlcG9zaXRvcnkudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS90eXBlcy9maXJlc3RvcmUucmVwb3NpdG9yeS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uUmVmZXJlbmNlLCBEb2N1bWVudERhdGEsIEZpcmVzdG9yZSwgUXVlcnlEb2N1bWVudFNuYXBzaG90IH0gZnJvbSAnZmlyZWJhc2UvZmlyZXN0b3JlJ1xuXG5pbXBvcnQgeyBCYXNlTW9kZWxCdWlsZGVyLCBNb2RlbEJhc2VTdHJ1Y3R1cmUsIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBGaXJlc3RvcmVGaWVsZFR5cGUgfSBmcm9tICcuLi9lbnVtcydcbmltcG9ydCB7IEZpcmVzdG9yZUludGVyY2VwdG9ycyB9IGZyb20gJy4vZmlyZXN0b3JlLWludGVyY2VwdG9ycy50eXBlJ1xuXG5leHBvcnQgdHlwZSBGaXJlc3RvcmVSZXBvc2l0b3J5PE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1vZGVsPj4gPSB7XG4gIHJlYWRvbmx5IGZpcmVzdG9yZT86IEZpcmVzdG9yZVxuICBjb2xsZWN0aW9uTmFtZTogc3RyaW5nXG4gIG1vZGVsOiBCYXNlTW9kZWxCdWlsZGVyPE1vZGVsPlxuICBjb2xsZWN0aW9uKHBhdGg/OiBzdHJpbmcpOiBDb2xsZWN0aW9uUmVmZXJlbmNlPE1vZGVsPlxuICBmaWVsZHM/OiBQYXJ0aWFsPFJlY29yZDxOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1vZGVsPiwgRmlyZXN0b3JlRmllbGRUeXBlPj5cbiAgaW50ZXJjZXB0b3JzPzogRmlyZXN0b3JlSW50ZXJjZXB0b3JzPE1vZGVsPlxuICBidWlsZE1vZGVsSW5zdGFuY2UoKToge1xuICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogTW9kZWwpID0+IERvY3VtZW50RGF0YVxuICAgIGZyb21GaXJlc3RvcmU6IChzbmFwOiBRdWVyeURvY3VtZW50U25hcHNob3Q8TW9kZWw+KSA9PiBNb2RlbFxuICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export * from './firestore-interceptors.type';
2
+ export * from './firestore-sub.repository.type';
3
+ export * from './firestore.helpers.type';
4
+ export * from './firestore.repository.type';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsMEJBQTBCLENBQUE7QUFDeEMsY0FBYyw2QkFBNkIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmlyZXN0b3JlLWludGVyY2VwdG9ycy50eXBlJ1xuZXhwb3J0ICogZnJvbSAnLi9maXJlc3RvcmUtc3ViLnJlcG9zaXRvcnkudHlwZSdcbmV4cG9ydCAqIGZyb20gJy4vZmlyZXN0b3JlLmhlbHBlcnMudHlwZSdcbmV4cG9ydCAqIGZyb20gJy4vZmlyZXN0b3JlLnJlcG9zaXRvcnkudHlwZSdcbiJdfQ==
@@ -1,3 +1,3 @@
1
- export * from './firestore';
2
- export * from './auth';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLFFBQVEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmlyZXN0b3JlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGgnXHJcbiJdfQ==
1
+ export * from './firestore';
2
+ export * from './auth';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLFFBQVEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmlyZXN0b3JlJ1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoJ1xuIl19
@@ -1,13 +1,13 @@
1
- export var HasuraGraphQLColumnType;
2
- (function (HasuraGraphQLColumnType) {
3
- HasuraGraphQLColumnType["Int"] = "Int";
4
- HasuraGraphQLColumnType["Float"] = "Float";
5
- HasuraGraphQLColumnType["Boolean"] = "Boolean";
6
- HasuraGraphQLColumnType["String"] = "String";
7
- HasuraGraphQLColumnType["DateTime"] = "timestampz";
8
- HasuraGraphQLColumnType["Json"] = "json";
9
- HasuraGraphQLColumnType["Jsonb"] = "jsonb";
10
- HasuraGraphQLColumnType["Enum"] = "enum";
11
- HasuraGraphQLColumnType["Uuid"] = "uuid";
12
- })(HasuraGraphQLColumnType || (HasuraGraphQLColumnType = {}));
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLWdyYXBocWwtY29sdW1uLXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL2VudW1zL2hhc3VyYS1ncmFwaHFsLWNvbHVtbi10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksdUJBVVg7QUFWRCxXQUFZLHVCQUF1QjtJQUNqQyxzQ0FBVyxDQUFBO0lBQ1gsMENBQWUsQ0FBQTtJQUNmLDhDQUFtQixDQUFBO0lBQ25CLDRDQUFpQixDQUFBO0lBQ2pCLGtEQUF1QixDQUFBO0lBQ3ZCLHdDQUFhLENBQUE7SUFDYiwwQ0FBZSxDQUFBO0lBQ2Ysd0NBQWEsQ0FBQTtJQUNiLHdDQUFhLENBQUE7QUFDZixDQUFDLEVBVlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQVVsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlIHtcclxuICBJbnQgPSAnSW50JyxcclxuICBGbG9hdCA9ICdGbG9hdCcsXHJcbiAgQm9vbGVhbiA9ICdCb29sZWFuJyxcclxuICBTdHJpbmcgPSAnU3RyaW5nJyxcclxuICBEYXRlVGltZSA9ICd0aW1lc3RhbXB6JyxcclxuICBKc29uID0gJ2pzb24nLFxyXG4gIEpzb25iID0gJ2pzb25iJyxcclxuICBFbnVtID0gJ2VudW0nLFxyXG4gIFV1aWQgPSAndXVpZCcsXHJcbn1cclxuIl19
1
+ export var HasuraGraphQLColumnType;
2
+ (function (HasuraGraphQLColumnType) {
3
+ HasuraGraphQLColumnType["Int"] = "Int";
4
+ HasuraGraphQLColumnType["Float"] = "Float";
5
+ HasuraGraphQLColumnType["Boolean"] = "Boolean";
6
+ HasuraGraphQLColumnType["String"] = "String";
7
+ HasuraGraphQLColumnType["DateTime"] = "timestampz";
8
+ HasuraGraphQLColumnType["Json"] = "json";
9
+ HasuraGraphQLColumnType["Jsonb"] = "jsonb";
10
+ HasuraGraphQLColumnType["Enum"] = "enum";
11
+ HasuraGraphQLColumnType["Uuid"] = "uuid";
12
+ })(HasuraGraphQLColumnType || (HasuraGraphQLColumnType = {}));
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLWdyYXBocWwtY29sdW1uLXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL2VudW1zL2hhc3VyYS1ncmFwaHFsLWNvbHVtbi10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksdUJBVVg7QUFWRCxXQUFZLHVCQUF1QjtJQUNqQyxzQ0FBVyxDQUFBO0lBQ1gsMENBQWUsQ0FBQTtJQUNmLDhDQUFtQixDQUFBO0lBQ25CLDRDQUFpQixDQUFBO0lBQ2pCLGtEQUF1QixDQUFBO0lBQ3ZCLHdDQUFhLENBQUE7SUFDYiwwQ0FBZSxDQUFBO0lBQ2Ysd0NBQWEsQ0FBQTtJQUNiLHdDQUFhLENBQUE7QUFDZixDQUFDLEVBVlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQVVsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlIHtcbiAgSW50ID0gJ0ludCcsXG4gIEZsb2F0ID0gJ0Zsb2F0JyxcbiAgQm9vbGVhbiA9ICdCb29sZWFuJyxcbiAgU3RyaW5nID0gJ1N0cmluZycsXG4gIERhdGVUaW1lID0gJ3RpbWVzdGFtcHonLFxuICBKc29uID0gJ2pzb24nLFxuICBKc29uYiA9ICdqc29uYicsXG4gIEVudW0gPSAnZW51bScsXG4gIFV1aWQgPSAndXVpZCcsXG59XG4iXX0=
@@ -1,15 +1,17 @@
1
- export var HasuraGraphQLWhere;
2
- (function (HasuraGraphQLWhere) {
3
- HasuraGraphQLWhere["EQUALS"] = "_eq";
4
- HasuraGraphQLWhere["GT"] = "_gt";
5
- HasuraGraphQLWhere["GTE"] = "_gte";
6
- HasuraGraphQLWhere["IN"] = "_in";
7
- HasuraGraphQLWhere["NOTIN"] = "_nin";
8
- HasuraGraphQLWhere["LT"] = "_lt";
9
- HasuraGraphQLWhere["LTE"] = "_lte";
10
- HasuraGraphQLWhere["LIKE"] = "_like";
11
- HasuraGraphQLWhere["NOTLIKE"] = "_nlike";
12
- HasuraGraphQLWhere["ISNULL"] = "_is_null";
13
- HasuraGraphQLWhere["ISNOTNULL"] = "_is_null";
14
- })(HasuraGraphQLWhere || (HasuraGraphQLWhere = {}));
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLWdyYXBocWwtd2hlcmUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL2VudW1zL2hhc3VyYS1ncmFwaHFsLXdoZXJlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksa0JBWVg7QUFaRCxXQUFZLGtCQUFrQjtJQUM1QixvQ0FBYyxDQUFBO0lBQ2QsZ0NBQVUsQ0FBQTtJQUNWLGtDQUFZLENBQUE7SUFDWixnQ0FBVSxDQUFBO0lBQ1Ysb0NBQWMsQ0FBQTtJQUNkLGdDQUFVLENBQUE7SUFDVixrQ0FBWSxDQUFBO0lBQ1osb0NBQWMsQ0FBQTtJQUNkLHdDQUFrQixDQUFBO0lBQ2xCLHlDQUFtQixDQUFBO0lBQ25CLDRDQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFaVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBWTdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gSGFzdXJhR3JhcGhRTFdoZXJlIHtcclxuICBFUVVBTFMgPSAnX2VxJyxcclxuICBHVCA9ICdfZ3QnLFxyXG4gIEdURSA9ICdfZ3RlJyxcclxuICBJTiA9ICdfaW4nLFxyXG4gIE5PVElOID0gJ19uaW4nLFxyXG4gIExUID0gJ19sdCcsXHJcbiAgTFRFID0gJ19sdGUnLFxyXG4gIExJS0UgPSAnX2xpa2UnLFxyXG4gIE5PVExJS0UgPSAnX25saWtlJyxcclxuICBJU05VTEwgPSAnX2lzX251bGwnLFxyXG4gIElTTk9UTlVMTCA9ICdfaXNfbnVsbCcsXHJcbn1cclxuIl19
1
+ export var HasuraGraphQLWhere;
2
+ (function (HasuraGraphQLWhere) {
3
+ HasuraGraphQLWhere["EQUALS"] = "_eq";
4
+ HasuraGraphQLWhere["GT"] = "_gt";
5
+ HasuraGraphQLWhere["GTE"] = "_gte";
6
+ HasuraGraphQLWhere["IN"] = "_in";
7
+ HasuraGraphQLWhere["NOTIN"] = "_nin";
8
+ HasuraGraphQLWhere["LT"] = "_lt";
9
+ HasuraGraphQLWhere["LTE"] = "_lte";
10
+ HasuraGraphQLWhere["LIKE"] = "_like";
11
+ HasuraGraphQLWhere["NOTLIKE"] = "_nlike";
12
+ HasuraGraphQLWhere["ISNULL"] = "_is_null";
13
+ HasuraGraphQLWhere["ISNOTNULL"] = "_is_null";
14
+ HasuraGraphQLWhere["JSON_CONTAINS"] = "_contains";
15
+ HasuraGraphQLWhere["JSON_HAS_KEYS_ANY"] = "_has_keys_any";
16
+ })(HasuraGraphQLWhere || (HasuraGraphQLWhere = {}));
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLWdyYXBocWwtd2hlcmUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL2VudW1zL2hhc3VyYS1ncmFwaHFsLXdoZXJlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksa0JBY1g7QUFkRCxXQUFZLGtCQUFrQjtJQUM1QixvQ0FBYyxDQUFBO0lBQ2QsZ0NBQVUsQ0FBQTtJQUNWLGtDQUFZLENBQUE7SUFDWixnQ0FBVSxDQUFBO0lBQ1Ysb0NBQWMsQ0FBQTtJQUNkLGdDQUFVLENBQUE7SUFDVixrQ0FBWSxDQUFBO0lBQ1osb0NBQWMsQ0FBQTtJQUNkLHdDQUFrQixDQUFBO0lBQ2xCLHlDQUFtQixDQUFBO0lBQ25CLDRDQUFzQixDQUFBO0lBQ3RCLGlEQUEyQixDQUFBO0lBQzNCLHlEQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFkVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBYzdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gSGFzdXJhR3JhcGhRTFdoZXJlIHtcbiAgRVFVQUxTID0gJ19lcScsXG4gIEdUID0gJ19ndCcsXG4gIEdURSA9ICdfZ3RlJyxcbiAgSU4gPSAnX2luJyxcbiAgTk9USU4gPSAnX25pbicsXG4gIExUID0gJ19sdCcsXG4gIExURSA9ICdfbHRlJyxcbiAgTElLRSA9ICdfbGlrZScsXG4gIE5PVExJS0UgPSAnX25saWtlJyxcbiAgSVNOVUxMID0gJ19pc19udWxsJyxcbiAgSVNOT1ROVUxMID0gJ19pc19udWxsJyxcbiAgSlNPTl9DT05UQUlOUyA9ICdfY29udGFpbnMnLFxuICBKU09OX0hBU19LRVlTX0FOWSA9ICdfaGFzX2tleXNfYW55Jyxcbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
- export * from './hasura-graphql-where.enum';
2
- export * from './hasura-graphql-column-type.enum';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9lbnVtcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsbUNBQW1DLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hhc3VyYS1ncmFwaHFsLXdoZXJlLmVudW0nXHJcbmV4cG9ydCAqIGZyb20gJy4vaGFzdXJhLWdyYXBocWwtY29sdW1uLXR5cGUuZW51bSdcclxuIl19
1
+ export * from './hasura-graphql-where.enum';
2
+ export * from './hasura-graphql-column-type.enum';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9lbnVtcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsbUNBQW1DLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hhc3VyYS1ncmFwaHFsLXdoZXJlLmVudW0nXG5leHBvcnQgKiBmcm9tICcuL2hhc3VyYS1ncmFwaHFsLWNvbHVtbi10eXBlLmVudW0nXG4iXX0=
@@ -1,5 +1,5 @@
1
- export * from './mixins';
2
- export * from './models';
3
- export * from './repositories';
4
- export * from './types';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9taXhpbnMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJ1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcG9zaXRvcmllcydcclxuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcclxuIl19
1
+ export * from './mixins';
2
+ export * from './models';
3
+ export * from './repositories';
4
+ export * from './types';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9taXhpbnMnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscydcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3NpdG9yaWVzJ1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { is, isNil, isObject } from '../../../../utils';
2
+ export class AttributeOptionHelper {
3
+ }
4
+ AttributeOptionHelper.FindByAttribute = (attributeName, fields) => {
5
+ if (fields.includes(attributeName))
6
+ return { columnName: attributeName.toString(), attributeName, to: (value) => value, from: (value) => value };
7
+ const field = fields.find((columnOption) => isObject(columnOption) && Object.keys(columnOption).includes(attributeName.toString()));
8
+ const fieldOption = is(field)?.[attributeName];
9
+ if (isNil(fieldOption))
10
+ return { columnName: attributeName.toString(), attributeName };
11
+ if (Array.isArray(fieldOption))
12
+ return { columnName: attributeName.toString(), attributeName, fields: fieldOption };
13
+ return { attributeName, columnName: attributeName.toString(), ...fieldOption };
14
+ };
15
+ AttributeOptionHelper.CheckIsColumnOption = (fieldValue) => !!fieldValue?.columnName;
16
+ AttributeOptionHelper.FindColumnOptionFromList = (columnName, fields) => {
17
+ if (fields.includes(columnName))
18
+ return { columnName, attributeName: columnName };
19
+ const field = is(fields.find((field) => {
20
+ if (!isObject(field))
21
+ return false;
22
+ const columnOption = Object.values(field).find((option) => AttributeOptionHelper.CheckIsColumnOption(option) && option.columnName === columnName ? option : {});
23
+ return AttributeOptionHelper.CheckIsColumnOption(columnOption) && columnOption?.columnName === columnName;
24
+ }) || {});
25
+ const attributeName = Object.keys(field).find((fieldOptionFromList) => AttributeOptionHelper.CheckIsColumnOption(field[fieldOptionFromList]) || Array.isArray(field[fieldOptionFromList]));
26
+ const fieldOption = field?.[attributeName];
27
+ if (Array.isArray(fieldOption))
28
+ return { attributeName: attributeName, fields: fieldOption };
29
+ return {
30
+ attributeName: attributeName || columnName,
31
+ columnName,
32
+ ...fieldOption,
33
+ };
34
+ };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLW9wdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQVF2RCxNQUFNLE9BQU8scUJBQXFCOztBQUN6QixxQ0FBZSxHQUFHLENBSXZCLGFBQXdCLEVBQ3hCLE1BQWtDLEVBQ08sRUFBRTtJQUMzQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBb0IsQ0FBQztRQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUU5RyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUN2QixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUN6RyxDQUFBO0lBQ0QsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUE0RCxLQUFLLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBRXpHLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLGFBQWEsRUFBRSxDQUFBO0lBQ3RGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFBO0lBRW5ILE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFBO0FBQ2hGLENBQUMsQ0FBQTtBQUVNLHlDQUFtQixHQUFHLENBQzNCLFVBQW1ELEVBQ0YsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFBO0FBRXZFLDhDQUF3QixHQUFHLENBQ2hDLFVBQWtCLEVBQ2xCLE1BQXdDLEVBQ21FLEVBQUU7SUFDN0csSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQXNELENBQUM7UUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsVUFBZ0UsRUFBRSxDQUFBO0lBRXhHLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FDZCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUVsQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ3hELHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEcsQ0FBQTtRQUVELE9BQU8scUJBQXFCLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxFQUFFLFVBQVUsS0FBSyxVQUFVLENBQUE7SUFDM0csQ0FBQyxDQUFDLElBQUksRUFBRSxDQUNULENBQUE7SUFDRCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDM0MsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQ3RCLHFCQUFxQixDQUFDLG1CQUFtQixDQUN2QyxLQUFLLENBQUMsbUJBQXlFLENBQUMsQ0FDakYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBeUUsQ0FBQyxDQUFDLENBQ2pELENBQUE7SUFDdkQsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUE7SUFFMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQW1FLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFBO0lBRXBILE9BQU87UUFDTCxhQUFhLEVBQUUsYUFBYSxJQUFLLFVBQWlFO1FBQ2xHLFVBQVU7UUFDVixHQUFHLFdBQVc7S0FDZixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxCYXNlU3RydWN0dXJlLCBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgaXMsIGlzTmlsLCBpc09iamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgQ29sdW1uT3B0aW9ucywgSGFzdXJhR3JhcGhRTEZpZWxkcyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG50eXBlIEZpbmRCeUF0dHJpYnV0ZVJlc3VsdDxcbiAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2U+LFxuICBBdHRyaWJ1dGUgZXh0ZW5kcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbj4gPSBDb2x1bW5PcHRpb25zPE1CYXNlW0F0dHJpYnV0ZV0sIE1CYXNlPiAmIHsgYXR0cmlidXRlTmFtZTogQXR0cmlidXRlIH1cblxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZU9wdGlvbkhlbHBlciB7XG4gIHN0YXRpYyBGaW5kQnlBdHRyaWJ1dGUgPSA8XG4gICAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2UsIE1CYXNlWydpZGVudGlmaWVyc0ZpZWxkcyddW251bWJlcl0+LFxuICAgIEF0dHJpYnV0ZSBleHRlbmRzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+ID0gTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gID4oXG4gICAgYXR0cmlidXRlTmFtZTogQXR0cmlidXRlLFxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXG4gICk6IEZpbmRCeUF0dHJpYnV0ZVJlc3VsdDxNQmFzZSwgQXR0cmlidXRlPiA9PiB7XG4gICAgaWYgKGZpZWxkcy5pbmNsdWRlcyhhdHRyaWJ1dGVOYW1lIGFzIGFueSkpXG4gICAgICByZXR1cm4geyBjb2x1bW5OYW1lOiBhdHRyaWJ1dGVOYW1lLnRvU3RyaW5nKCksIGF0dHJpYnV0ZU5hbWUsIHRvOiAodmFsdWUpID0+IHZhbHVlLCBmcm9tOiAodmFsdWUpID0+IHZhbHVlIH1cblxuICAgIGNvbnN0IGZpZWxkID0gZmllbGRzLmZpbmQoXG4gICAgICAoY29sdW1uT3B0aW9uKSA9PiBpc09iamVjdChjb2x1bW5PcHRpb24pICYmIE9iamVjdC5rZXlzKGNvbHVtbk9wdGlvbikuaW5jbHVkZXMoYXR0cmlidXRlTmFtZS50b1N0cmluZygpKSxcbiAgICApXG4gICAgY29uc3QgZmllbGRPcHRpb24gPSBpczxSZWNvcmQ8QXR0cmlidXRlLCBDb2x1bW5PcHRpb25zPE1CYXNlW0F0dHJpYnV0ZV0sIE1CYXNlPj4+KGZpZWxkKT8uW2F0dHJpYnV0ZU5hbWVdXG5cbiAgICBpZiAoaXNOaWwoZmllbGRPcHRpb24pKSByZXR1cm4geyBjb2x1bW5OYW1lOiBhdHRyaWJ1dGVOYW1lLnRvU3RyaW5nKCksIGF0dHJpYnV0ZU5hbWUgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkT3B0aW9uKSkgcmV0dXJuIHsgY29sdW1uTmFtZTogYXR0cmlidXRlTmFtZS50b1N0cmluZygpLCBhdHRyaWJ1dGVOYW1lLCBmaWVsZHM6IGZpZWxkT3B0aW9uIH1cblxuICAgIHJldHVybiB7IGF0dHJpYnV0ZU5hbWUsIGNvbHVtbk5hbWU6IGF0dHJpYnV0ZU5hbWUudG9TdHJpbmcoKSwgLi4uZmllbGRPcHRpb24gfVxuICB9XG5cbiAgc3RhdGljIENoZWNrSXNDb2x1bW5PcHRpb24gPSA8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TW9kZWw+LCBQYXJlbnRNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4oXG4gICAgZmllbGRWYWx1ZTogQ29sdW1uT3B0aW9uczxNb2RlbCwgUGFyZW50TW9kZWw+IHwgYW55LFxuICApOiBmaWVsZFZhbHVlIGlzIENvbHVtbk9wdGlvbnM8TW9kZWwsIFBhcmVudE1vZGVsPiA9PiAhIWZpZWxkVmFsdWU/LmNvbHVtbk5hbWVcblxuICBzdGF0aWMgRmluZENvbHVtbk9wdGlvbkZyb21MaXN0ID0gPE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLCBQYXJlbnRNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4oXG4gICAgY29sdW1uTmFtZTogc3RyaW5nLFxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxQYXJlbnRNb2RlbD4sXG4gICk6IENvbHVtbk9wdGlvbnM8TW9kZWwsIFBhcmVudE1vZGVsPiAmIHsgYXR0cmlidXRlTmFtZTogTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxQYXJlbnRNb2RlbD4gfSA9PiB7XG4gICAgaWYgKGZpZWxkcy5pbmNsdWRlcyhjb2x1bW5OYW1lIGFzIEhhc3VyYUdyYXBoUUxGaWVsZHM8UGFyZW50TW9kZWw+W251bWJlcl0pKVxuICAgICAgcmV0dXJuIHsgY29sdW1uTmFtZSwgYXR0cmlidXRlTmFtZTogY29sdW1uTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPiB9XG5cbiAgICBjb25zdCBmaWVsZCA9IGlzPFJlY29yZDxOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPiwgQ29sdW1uT3B0aW9uczxNb2RlbCwgUGFyZW50TW9kZWw+Pj4oXG4gICAgICBmaWVsZHMuZmluZCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKCFpc09iamVjdChmaWVsZCkpIHJldHVybiBmYWxzZVxuXG4gICAgICAgIGNvbnN0IGNvbHVtbk9wdGlvbiA9IE9iamVjdC52YWx1ZXMoZmllbGQpLmZpbmQoKG9wdGlvbikgPT5cbiAgICAgICAgICBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuQ2hlY2tJc0NvbHVtbk9wdGlvbihvcHRpb24pICYmIG9wdGlvbi5jb2x1bW5OYW1lID09PSBjb2x1bW5OYW1lID8gb3B0aW9uIDoge30sXG4gICAgICAgIClcblxuICAgICAgICByZXR1cm4gQXR0cmlidXRlT3B0aW9uSGVscGVyLkNoZWNrSXNDb2x1bW5PcHRpb24oY29sdW1uT3B0aW9uKSAmJiBjb2x1bW5PcHRpb24/LmNvbHVtbk5hbWUgPT09IGNvbHVtbk5hbWVcbiAgICAgIH0pIHx8IHt9LFxuICAgIClcbiAgICBjb25zdCBhdHRyaWJ1dGVOYW1lID0gT2JqZWN0LmtleXMoZmllbGQpLmZpbmQoXG4gICAgICAoZmllbGRPcHRpb25Gcm9tTGlzdCkgPT5cbiAgICAgICAgQXR0cmlidXRlT3B0aW9uSGVscGVyLkNoZWNrSXNDb2x1bW5PcHRpb24oXG4gICAgICAgICAgZmllbGRbZmllbGRPcHRpb25Gcm9tTGlzdCBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPl0sXG4gICAgICAgICkgfHwgQXJyYXkuaXNBcnJheShmaWVsZFtmaWVsZE9wdGlvbkZyb21MaXN0IGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+XSksXG4gICAgKSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPlxuICAgIGNvbnN0IGZpZWxkT3B0aW9uID0gZmllbGQ/LlthdHRyaWJ1dGVOYW1lXVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRPcHRpb24pKVxuICAgICAgcmV0dXJuIHsgYXR0cmlidXRlTmFtZTogYXR0cmlidXRlTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPiwgZmllbGRzOiBmaWVsZE9wdGlvbiB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRlTmFtZTogYXR0cmlidXRlTmFtZSB8fCAoY29sdW1uTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPiksXG4gICAgICBjb2x1bW5OYW1lLFxuICAgICAgLi4uZmllbGRPcHRpb24sXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,71 @@
1
+ import { Where, } from '../../../../domain';
2
+ import { is, isNil, isObject } from '../../../../utils';
3
+ import { HasuraGraphQLColumnType, HasuraGraphQLWhere } from '../../enums';
4
+ import { AttributeOptionHelper } from './attribute-option.helper';
5
+ import { FilterOptionHelper } from './filter-option.helper';
6
+ export class BindFilterQueryHelper {
7
+ }
8
+ BindFilterQueryHelper.MakeGraphQLWhere = (filter, fields) => Object.keys(filter).reduce((variables, fieldName) => {
9
+ const columnOption = AttributeOptionHelper.FindByAttribute(fieldName, fields);
10
+ if (!columnOption.bindFindFilter)
11
+ return {
12
+ ...variables,
13
+ ...{
14
+ [columnOption.columnName]: BindFilterQueryHelper.BuildWhereSentence(fieldName, filter[fieldName], fields),
15
+ },
16
+ };
17
+ const builtFilter = columnOption.bindFindFilter(filter[fieldName]);
18
+ return {
19
+ ...variables,
20
+ ...Object.keys(builtFilter).reduce((variablesList, columnName) => ({
21
+ ...variablesList,
22
+ [columnName]: BindFilterQueryHelper.BuildWhereSentence(fieldName, builtFilter[columnName], fields),
23
+ }), {}),
24
+ };
25
+ }, {});
26
+ BindFilterQueryHelper.BuildWhereSentence = (field, options, fields) => {
27
+ const fieldSentenceOptions = AttributeOptionHelper.FindByAttribute(field, fields);
28
+ const isNestedField = !Array.isArray(options) &&
29
+ isObject(options) &&
30
+ isNil(options?.operator) &&
31
+ isNil(options?.value) &&
32
+ isNil(fieldSentenceOptions?.to);
33
+ if (isNestedField)
34
+ return Object.keys(options).reduce((variables, key) => {
35
+ const fieldOptions = AttributeOptionHelper.FindByAttribute(key, fieldSentenceOptions?.fields || fields);
36
+ const columnName = fieldOptions.columnName;
37
+ const columnFields = fieldOptions.fields;
38
+ return {
39
+ ...variables,
40
+ [columnName]: BindFilterQueryHelper.BuildWhereSentence(key, is(is(options)[key]), fieldSentenceOptions?.fields || columnFields || fields),
41
+ };
42
+ }, {});
43
+ if (!Array.isArray(options) && !isNil(fieldSentenceOptions.fields))
44
+ return {
45
+ [fieldSentenceOptions.fields[0]]: BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions),
46
+ };
47
+ if (!Array.isArray(options) && isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
48
+ options = Object.values(options)[0];
49
+ return Array.isArray(options)
50
+ ? options.reduce((whereSentence, option) => ({
51
+ ...whereSentence,
52
+ ...BindFilterQueryHelper.BuildOperatorSentence(option, fieldSentenceOptions),
53
+ }), {})
54
+ : BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions);
55
+ };
56
+ BindFilterQueryHelper.BuildOperatorSentence = (options, fieldOption) => ({
57
+ [BindFilterQueryHelper.GetHasuraOperator(options, fieldOption)]: FilterOptionHelper.GetValueFromFilter(options, fieldOption),
58
+ });
59
+ BindFilterQueryHelper.GetHasuraOperator = (options, fieldOption) => FilterOptionHelper.CheckIfIsFilterOption(options)
60
+ ? fieldOption.type === HasuraGraphQLColumnType.Jsonb
61
+ ? BindFilterQueryHelper.GetHasuraJsonbOperator(options)
62
+ : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find((graphQLOperator) => graphQLOperator ===
63
+ Object.keys(Where).find((operator) => Where[operator] === options?.operator))]
64
+ : HasuraGraphQLWhere.EQUALS;
65
+ BindFilterQueryHelper.GetHasuraJsonbOperator = (options) => options.operator === Where.IN
66
+ ? HasuraGraphQLWhere.JSON_CONTAINS
67
+ : options.operator === Where.LIKE
68
+ ? HasuraGraphQLWhere.JSON_HAS_KEYS_ANY
69
+ : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find((graphQLOperator) => graphQLOperator ===
70
+ Object.keys(Where).find((operator) => Where[operator] === options?.operator))];
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL2hlbHBlcnMvYmluZC1maWx0ZXItcXVlcnkuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxLQUFLLEdBQ04sTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFM0QsTUFBTSxPQUFPLHFCQUFxQjs7QUFDekIsc0NBQWdCLEdBQUcsQ0FDeEIsTUFBcUMsRUFDckMsTUFBa0MsRUFDakIsRUFBRSxDQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQTBCLEVBQUUsU0FBaUIsRUFBRSxFQUFFO0lBQzNFLE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLGVBQWUsQ0FDeEQsU0FBeUQsRUFDekQsTUFBTSxDQUNQLENBQUE7SUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWM7UUFDOUIsT0FBTztZQUNMLEdBQUcsU0FBUztZQUNaLEdBQUc7Z0JBQ0QsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUscUJBQXFCLENBQUMsa0JBQWtCLENBQ2pFLFNBQXlELEVBQ3pELE1BQU0sQ0FBQyxTQUF5RCxDQUcvRCxFQUNELE1BQU0sQ0FDUDthQUNGO1NBQ0YsQ0FBQTtJQUVILE1BQU0sV0FBVyxHQUFr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S0FBSyxDQUFDLElBQUk7UUFDakMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQjtRQUN0QyxDQUFDLENBQUMsa0JBQWtCLENBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQ2xDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FDbEIsZUFBZTtZQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBOEIsQ0FBQyxLQUFLLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FDbEUsQ0FDckMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lcyxcbiAgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzLFxuICBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzLFxuICBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9ucyxcbiAgV2hlcmUsXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IGlzLCBpc05pbCwgaXNPYmplY3QgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlLCBIYXN1cmFHcmFwaFFMV2hlcmUgfSBmcm9tICcuLi8uLi9lbnVtcydcbmltcG9ydCB7IENvbHVtbk9wdGlvbnMsIEhhc3VyYUdyYXBoUUxGaWVsZHMsIFZhcmlhYmxlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlcidcbmltcG9ydCB7IEZpbHRlck9wdGlvbkhlbHBlciB9IGZyb20gJy4vZmlsdGVyLW9wdGlvbi5oZWxwZXInXG5cbmV4cG9ydCBjbGFzcyBCaW5kRmlsdGVyUXVlcnlIZWxwZXIge1xuICBzdGF0aWMgTWFrZUdyYXBoUUxXaGVyZSA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIGZpbHRlcjogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxNQmFzZT4sXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgKTogVmFyaWFibGVPcHRpb25zID0+XG4gICAgT2JqZWN0LmtleXMoZmlsdGVyKS5yZWR1Y2UoKHZhcmlhYmxlczogVmFyaWFibGVPcHRpb25zLCBmaWVsZE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShcbiAgICAgICAgZmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxuICAgICAgICBmaWVsZHMsXG4gICAgICApXG5cbiAgICAgIGlmICghY29sdW1uT3B0aW9uLmJpbmRGaW5kRmlsdGVyKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnZhcmlhYmxlcyxcbiAgICAgICAgICAuLi57XG4gICAgICAgICAgICBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRXaGVyZVNlbnRlbmNlKFxuICAgICAgICAgICAgICBmaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gICAgICAgICAgICAgIGZpbHRlcltmaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dIGFzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPFxuICAgICAgICAgICAgICAgIE1CYXNlLFxuICAgICAgICAgICAgICAgIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+XG4gICAgICAgICAgICAgID4sXG4gICAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuXG4gICAgICBjb25zdCBidWlsdEZpbHRlcjogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxNQmFzZT4gPSBjb2x1bW5PcHRpb24uYmluZEZpbmRGaWx0ZXIoXG4gICAgICAgIGZpbHRlcltmaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPl0gYXMgUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnM8XG4gICAgICAgICAgTUJhc2UsXG4gICAgICAgICAgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPlxuICAgICAgICA+LFxuICAgICAgKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi52YXJpYWJsZXMsXG4gICAgICAgIC4uLk9iamVjdC5rZXlzKGJ1aWx0RmlsdGVyKS5yZWR1Y2UoXG4gICAgICAgICAgKHZhcmlhYmxlc0xpc3Q6IFZhcmlhYmxlT3B0aW9ucywgY29sdW1uTmFtZTogc3RyaW5nKSA9PiAoe1xuICAgICAgICAgICAgLi4udmFyaWFibGVzTGlzdCxcbiAgICAgICAgICAgIFtjb2x1bW5OYW1lXTogQmluZEZpbHRlclF1ZXJ5SGVscGVyLkJ1aWxkV2hlcmVTZW50ZW5jZShcbiAgICAgICAgICAgICAgZmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxuICAgICAgICAgICAgICBidWlsdEZpbHRlcltjb2x1bW5OYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+XSBhcyBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxcbiAgICAgICAgICAgICAgICBNQmFzZSxcbiAgICAgICAgICAgICAgICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPlxuICAgICAgICAgICAgICA+LFxuICAgICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHt9LFxuICAgICAgICApLFxuICAgICAgfVxuICAgIH0sIHt9KVxuXG4gIHN0YXRpYyBCdWlsZFdoZXJlU2VudGVuY2UgPSA8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2U+PihcbiAgICBmaWVsZDogTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gICAgb3B0aW9uczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnM8TUJhc2UsIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+PixcbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+LFxuICApOiBWYXJpYWJsZU9wdGlvbnMgPT4ge1xuICAgIGNvbnN0IGZpZWxkU2VudGVuY2VPcHRpb25zID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZTxNQmFzZT4oZmllbGQsIGZpZWxkcylcbiAgICBjb25zdCBpc05lc3RlZEZpZWxkID1cbiAgICAgICFBcnJheS5pc0FycmF5KG9wdGlvbnMpICYmXG4gICAgICBpc09iamVjdChvcHRpb25zKSAmJlxuICAgICAgaXNOaWwob3B0aW9ucz8ub3BlcmF0b3IpICYmXG4gICAgICBpc05pbChvcHRpb25zPy52YWx1ZSkgJiZcbiAgICAgIGlzTmlsKGZpZWxkU2VudGVuY2VPcHRpb25zPy50bylcblxuICAgIGlmIChpc05lc3RlZEZpZWxkKVxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLnJlZHVjZSgodmFyaWFibGVzLCBrZXkpID0+IHtcbiAgICAgICAgY29uc3QgZmllbGRPcHRpb25zID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZTxNQmFzZT4oXG4gICAgICAgICAga2V5IGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+LFxuICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zPy5maWVsZHMgfHwgKGZpZWxkcyBhcyBhbnkpLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IGNvbHVtbk5hbWUgPSBmaWVsZE9wdGlvbnMuY29sdW1uTmFtZVxuICAgICAgICBjb25zdCBjb2x1bW5GaWVsZHMgPSBmaWVsZE9wdGlvbnMuZmllbGRzXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi52YXJpYWJsZXMsXG4gICAgICAgICAgW2NvbHVtbk5hbWVdOiBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRXaGVyZVNlbnRlbmNlPE1CYXNlPihcbiAgICAgICAgICAgIGtleSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICAgICAgICAgIGlzPFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPj4+KFxuICAgICAgICAgICAgICBpczxSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPE1CYXNlPj4ob3B0aW9ucylba2V5IGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+XSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmaWVsZFNlbnRlbmNlT3B0aW9ucz8uZmllbGRzIHx8IGNvbHVtbkZpZWxkcyB8fCAoZmllbGRzIGFzIGFueSksXG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgfSwge30pXG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkob3B0aW9ucykgJiYgIWlzTmlsKGZpZWxkU2VudGVuY2VPcHRpb25zLmZpZWxkcykpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBbZmllbGRTZW50ZW5jZU9wdGlvbnMuZmllbGRzWzBdIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TUJhc2U+XTpcbiAgICAgICAgICBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuQnVpbGRPcGVyYXRvclNlbnRlbmNlKFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIENvbHVtbk9wdGlvbnM8TUJhc2VbTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLCBNQmFzZT4sXG4gICAgICAgICAgKSxcbiAgICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJiBpc09iamVjdChvcHRpb25zKSAmJiAhRmlsdGVyT3B0aW9uSGVscGVyLkNoZWNrSWZJc0ZpbHRlck9wdGlvbihvcHRpb25zKSlcbiAgICAgIG9wdGlvbnMgPSBPYmplY3QudmFsdWVzKG9wdGlvbnMpWzBdIGFzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBhbnk+XG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShvcHRpb25zKVxuICAgICAgPyBvcHRpb25zLnJlZHVjZShcbiAgICAgICAgICAod2hlcmVTZW50ZW5jZSwgb3B0aW9uKSA9PiAoe1xuICAgICAgICAgICAgLi4ud2hlcmVTZW50ZW5jZSxcbiAgICAgICAgICAgIC4uLkJpbmRGaWx0ZXJRdWVyeUhlbHBlci5CdWlsZE9wZXJhdG9yU2VudGVuY2UoXG4gICAgICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICAgICAgZmllbGRTZW50ZW5jZU9wdGlvbnMgYXMgQ29sdW1uT3B0aW9uczxNQmFzZVtOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPl0sIE1CYXNlPixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSksXG4gICAgICAgICAge30sXG4gICAgICAgIClcbiAgICAgIDogQmluZEZpbHRlclF1ZXJ5SGVscGVyLkJ1aWxkT3BlcmF0b3JTZW50ZW5jZShcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIENvbHVtbk9wdGlvbnM8TUJhc2VbTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT5dLCBNQmFzZT4sXG4gICAgICAgIClcbiAgfVxuXG4gIHN0YXRpYyBCdWlsZE9wZXJhdG9yU2VudGVuY2UgPSA8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2U+PihcbiAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgYW55PixcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICk6IFZhcmlhYmxlT3B0aW9ucyA9PiAoe1xuICAgIFtCaW5kRmlsdGVyUXVlcnlIZWxwZXIuR2V0SGFzdXJhT3BlcmF0b3Iob3B0aW9ucywgZmllbGRPcHRpb24pXTogRmlsdGVyT3B0aW9uSGVscGVyLkdldFZhbHVlRnJvbUZpbHRlcihcbiAgICAgIG9wdGlvbnMsXG4gICAgICBmaWVsZE9wdGlvbixcbiAgICApLFxuICB9KVxuXG4gIHN0YXRpYyBHZXRIYXN1cmFPcGVyYXRvciA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+PixcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICk6IEhhc3VyYUdyYXBoUUxXaGVyZSA9PlxuICAgIEZpbHRlck9wdGlvbkhlbHBlci5DaGVja0lmSXNGaWx0ZXJPcHRpb24ob3B0aW9ucylcbiAgICAgID8gZmllbGRPcHRpb24udHlwZSA9PT0gSGFzdXJhR3JhcGhRTENvbHVtblR5cGUuSnNvbmJcbiAgICAgICAgPyBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuR2V0SGFzdXJhSnNvbmJPcGVyYXRvcihvcHRpb25zKVxuICAgICAgICA6IEhhc3VyYUdyYXBoUUxXaGVyZVtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKEhhc3VyYUdyYXBoUUxXaGVyZSkuZmluZChcbiAgICAgICAgICAgICAgKGdyYXBoUUxPcGVyYXRvcikgPT5cbiAgICAgICAgICAgICAgICBncmFwaFFMT3BlcmF0b3IgPT09XG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoV2hlcmUpLmZpbmQoKG9wZXJhdG9yKSA9PiBXaGVyZVtvcGVyYXRvciBhcyBrZXlvZiB0eXBlb2YgV2hlcmVdID09PSBvcHRpb25zPy5vcGVyYXRvciksXG4gICAgICAgICAgICApIGFzIGtleW9mIHR5cGVvZiBIYXN1cmFHcmFwaFFMV2hlcmVcbiAgICAgICAgICBdXG4gICAgICA6IEhhc3VyYUdyYXBoUUxXaGVyZS5FUVVBTFNcblxuICBzdGF0aWMgR2V0SGFzdXJhSnNvbmJPcGVyYXRvciA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNQmFzZT4+KFxuICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+PixcbiAgKTogSGFzdXJhR3JhcGhRTFdoZXJlID0+XG4gICAgb3B0aW9ucy5vcGVyYXRvciA9PT0gV2hlcmUuSU5cbiAgICAgID8gSGFzdXJhR3JhcGhRTFdoZXJlLkpTT05fQ09OVEFJTlNcbiAgICAgIDogb3B0aW9ucy5vcGVyYXRvciA9PT0gV2hlcmUuTElLRVxuICAgICAgPyBIYXN1cmFHcmFwaFFMV2hlcmUuSlNPTl9IQVNfS0VZU19BTllcbiAgICAgIDogSGFzdXJhR3JhcGhRTFdoZXJlW1xuICAgICAgICAgIE9iamVjdC5rZXlzKEhhc3VyYUdyYXBoUUxXaGVyZSkuZmluZChcbiAgICAgICAgICAgIChncmFwaFFMT3BlcmF0b3IpID0+XG4gICAgICAgICAgICAgIGdyYXBoUUxPcGVyYXRvciA9PT1cbiAgICAgICAgICAgICAgT2JqZWN0LmtleXMoV2hlcmUpLmZpbmQoKG9wZXJhdG9yKSA9PiBXaGVyZVtvcGVyYXRvciBhcyBrZXlvZiB0eXBlb2YgV2hlcmVdID09PSBvcHRpb25zPy5vcGVyYXRvciksXG4gICAgICAgICAgKSBhcyBrZXlvZiB0eXBlb2YgSGFzdXJhR3JhcGhRTFdoZXJlXG4gICAgICAgIF1cbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Where } from '../../../../domain';
2
+ import { isNil } from '../../../../utils';
3
+ export class FilterOptionHelper {
4
+ }
5
+ FilterOptionHelper.CheckIfIsFilterOption = (filter) => !isNil(filter?.operator);
6
+ FilterOptionHelper.GetValueFromFilter = (filter, fieldOption) => {
7
+ if (!FilterOptionHelper.CheckIfIsFilterOption(filter))
8
+ return filter;
9
+ if (filter.operator === Where.ISNULL)
10
+ return true;
11
+ if (filter.operator === Where.ISNOTNULL)
12
+ return false;
13
+ const converter = fieldOption.to
14
+ ? fieldOption.to
15
+ : (value) => filter.operator === Where.LIKE && !Array.isArray(filter.value) && value.indexOf('%') < 0
16
+ ? `%${value}%`
17
+ : value;
18
+ return Array.isArray(filter.value) && !fieldOption.fields && [Where.IN, Where.NOTIN].includes(filter.operator)
19
+ ? filter.value.map((fieldValue) => converter(fieldValue))
20
+ : converter(filter.value);
21
+ };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW9wdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9maWx0ZXItb3B0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFELEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUd6QyxNQUFNLE9BQU8sa0JBQWtCOztBQUN0Qix3Q0FBcUIsR0FBRyxDQUM3QixNQUFXLEVBQzBDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFFM0UscUNBQWtCLEdBQUcsQ0FDMUIsTUFBaUQsRUFDakQsV0FBb0MsRUFDL0IsRUFBRTtJQUNQLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQTtJQUNwRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQTtJQUNqRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFNBQVM7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUVyRCxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsRUFBRTtRQUM5QixDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDaEIsQ0FBQyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FDYixNQUFNLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDdEYsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHO1lBQ2QsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUVmLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDNUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBWSxDQUFDLENBQUE7QUFDcEMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxCYXNlU3RydWN0dXJlLCBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9ucywgV2hlcmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgQ29sdW1uT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5leHBvcnQgY2xhc3MgRmlsdGVyT3B0aW9uSGVscGVyIHtcbiAgc3RhdGljIENoZWNrSWZJc0ZpbHRlck9wdGlvbiA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4oXG4gICAgZmlsdGVyOiBhbnksXG4gICk6IGZpbHRlciBpcyBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNb2RlbCwgYW55PiA9PiAhaXNOaWwoZmlsdGVyPy5vcGVyYXRvcilcblxuICBzdGF0aWMgR2V0VmFsdWVGcm9tRmlsdGVyID0gPE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1vZGVsPj4oXG4gICAgZmlsdGVyOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNb2RlbCwgYW55PixcbiAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICk6IGFueSA9PiB7XG4gICAgaWYgKCFGaWx0ZXJPcHRpb25IZWxwZXIuQ2hlY2tJZklzRmlsdGVyT3B0aW9uKGZpbHRlcikpIHJldHVybiBmaWx0ZXJcbiAgICBpZiAoZmlsdGVyLm9wZXJhdG9yID09PSBXaGVyZS5JU05VTEwpIHJldHVybiB0cnVlXG4gICAgaWYgKGZpbHRlci5vcGVyYXRvciA9PT0gV2hlcmUuSVNOT1ROVUxMKSByZXR1cm4gZmFsc2VcblxuICAgIGNvbnN0IGNvbnZlcnRlciA9IGZpZWxkT3B0aW9uLnRvXG4gICAgICA/IGZpZWxkT3B0aW9uLnRvXG4gICAgICA6ICh2YWx1ZTogYW55KSA9PlxuICAgICAgICAgIGZpbHRlci5vcGVyYXRvciA9PT0gV2hlcmUuTElLRSAmJiAhQXJyYXkuaXNBcnJheShmaWx0ZXIudmFsdWUpICYmIHZhbHVlLmluZGV4T2YoJyUnKSA8IDBcbiAgICAgICAgICAgID8gYCUke3ZhbHVlfSVgXG4gICAgICAgICAgICA6IHZhbHVlXG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShmaWx0ZXIudmFsdWUpICYmICFmaWVsZE9wdGlvbi5maWVsZHMgJiYgW1doZXJlLklOLCBXaGVyZS5OT1RJTl0uaW5jbHVkZXMoZmlsdGVyLm9wZXJhdG9yKVxuICAgICAgPyBmaWx0ZXIudmFsdWUubWFwKChmaWVsZFZhbHVlKSA9PiBjb252ZXJ0ZXIoZmllbGRWYWx1ZSkpXG4gICAgICA6IGNvbnZlcnRlcihmaWx0ZXIudmFsdWUgYXMgYW55KVxuICB9XG59XG4iXX0=
@@ -0,0 +1,125 @@
1
+ import { BaseModel, } from '../../../../domain';
2
+ import { is, isDate, isEmpty, isNil, isObject, isString, parseDateTime } from '../../../../utils';
3
+ import { AttributeOptionHelper } from './attribute-option.helper';
4
+ import { BindFilterQueryHelper } from './bind-filter-query.helper';
5
+ export class GraphQLFieldHelper {
6
+ }
7
+ GraphQLFieldHelper.CheckIsGraphQLParams = (params) => !isString(params) && Array.isArray(params) && params.length >= 0 && !!params[0].operation;
8
+ GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields = (fields) => {
9
+ return fields
10
+ ?.map((field) => {
11
+ if (isString(field))
12
+ return field.toString();
13
+ if (field === 'affected_rows')
14
+ return field;
15
+ const fieldName = Object.keys(field).shift();
16
+ const fieldValue = is(field[fieldName]);
17
+ if (Array.isArray(fieldValue))
18
+ return { [fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue) };
19
+ if (!AttributeOptionHelper.CheckIsColumnOption(fieldValue))
20
+ return;
21
+ const isNestedField = !!fieldValue.fields;
22
+ if (isNestedField)
23
+ return GraphQLFieldHelper.ConvertNestedFieldsToGraphQLFields(fieldName, fieldValue);
24
+ return fieldValue.columnName;
25
+ })
26
+ .filter((field) => !!field);
27
+ };
28
+ GraphQLFieldHelper.ConvertFieldValueFrom = (data, fields) => Object.keys(data).reduce((result, columnName) => {
29
+ const { attributeName, fields: attributeFields, from, } = AttributeOptionHelper.FindColumnOptionFromList(columnName, fields);
30
+ if (!!attributeFields && Array.isArray(attributeFields)) {
31
+ if (Array.isArray(data[columnName]))
32
+ return {
33
+ ...result,
34
+ [attributeName]: from
35
+ ? from(data[columnName], data)
36
+ : is(data[columnName]).map((value) => GraphQLFieldHelper.ConvertFieldValueFrom(is(value), attributeFields)),
37
+ };
38
+ if (isObject(data[columnName]))
39
+ return {
40
+ ...result,
41
+ [attributeName]: !!from
42
+ ? from(data[columnName])
43
+ : GraphQLFieldHelper.ConvertFieldValueFrom(is(data[columnName]), attributeFields),
44
+ };
45
+ }
46
+ if (!!from)
47
+ return { ...result, [attributeName]: from(data[columnName], data) };
48
+ return {
49
+ ...result,
50
+ [attributeName]: isString(data[columnName]) ? parseDateTime(data[columnName].toString()) : data[columnName],
51
+ };
52
+ }, {});
53
+ GraphQLFieldHelper.ConvertFieldValueTo = (instance, fields, update = false) => {
54
+ const data = instance.toPlain?.() || instance;
55
+ return Object.keys(data).reduce((result, attributeName) => {
56
+ const { columnName, fields: attributeFields, foreignKeyColumn, to, bindPersistData, } = AttributeOptionHelper.FindByAttribute(attributeName, fields);
57
+ if (bindPersistData)
58
+ return {
59
+ ...result,
60
+ ...bindPersistData(data[attributeName], instance),
61
+ };
62
+ if (isNil(columnName))
63
+ return result;
64
+ if (!!foreignKeyColumn &&
65
+ !isEmpty(foreignKeyColumn) &&
66
+ !Object.keys(foreignKeyColumn).filter((key) => !is(data[attributeName])?.[key]).length)
67
+ return Object.keys(foreignKeyColumn).reduce((object, current) => {
68
+ const { columnName: foreignColumnName } = AttributeOptionHelper.FindByAttribute(foreignKeyColumn[current], fields);
69
+ return {
70
+ ...object,
71
+ [foreignColumnName]: data[attributeName]?.[current],
72
+ };
73
+ }, { ...result });
74
+ if (update &&
75
+ isObject(data[attributeName]) &&
76
+ !isNil(attributeFields) &&
77
+ !isDate(data[attributeName]))
78
+ return result;
79
+ if (!!columnName &&
80
+ Array.isArray(attributeFields) &&
81
+ isObject(data[attributeName])) {
82
+ const converted = !isNil(columnName) && to
83
+ ? to(instance[attributeName], instance)
84
+ : data[attributeName];
85
+ return {
86
+ ...result,
87
+ ...(converted !== undefined
88
+ ? {
89
+ [columnName]: {
90
+ data: instance[attributeName] instanceof BaseModel
91
+ ? GraphQLFieldHelper.ConvertFieldValueTo(data[attributeName], attributeFields)
92
+ : converted,
93
+ },
94
+ }
95
+ : {}),
96
+ };
97
+ }
98
+ if (!!to)
99
+ return {
100
+ ...result,
101
+ [columnName]: to(instance[attributeName], instance),
102
+ };
103
+ return { ...result, [columnName]: data[attributeName] };
104
+ }, {});
105
+ };
106
+ GraphQLFieldHelper.ConvertNestedFieldsToGraphQLFields = (fieldName, fieldValue) => {
107
+ const hasCustomFilters = !!fieldValue.filters;
108
+ if (hasCustomFilters)
109
+ return {
110
+ operation: fieldValue.columnName || fieldName,
111
+ fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
112
+ variables: {
113
+ [`${fieldValue.columnName}_where`]: {
114
+ name: 'where',
115
+ type: fieldValue.filters.filterType,
116
+ value: BindFilterQueryHelper.MakeGraphQLWhere(fieldValue.filters.filters, fieldValue.fields),
117
+ required: true,
118
+ },
119
+ },
120
+ };
121
+ return {
122
+ [fieldValue.columnName || fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
123
+ };
124
+ };
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1maWVsZC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9ncmFwaHFsLWZpZWxkLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxHQUtWLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWpHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRWxFLE1BQU0sT0FBTyxrQkFBa0I7O0FBQ3RCLHVDQUFvQixHQUFHLENBQzVCLE1BQW9ELEVBQ2xCLEVBQUUsQ0FDcEMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtBQUVwRixvREFBaUMsR0FBRyxDQUN6QyxNQUFrQyxFQUMxQixFQUFFO0lBQ1YsT0FBTyxNQUFNO1FBQ1gsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNkLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQzVDLElBQUksS0FBSyxLQUFLLGVBQWU7WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUUzQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUss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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJT3BlcmF0aW9uIH0gZnJvbSAnZ3FsLXF1ZXJ5LWJ1aWxkZXIvYnVpbGQvSVF1ZXJ5QnVpbGRlck9wdGlvbnMnXG5pbXBvcnQge1xuICBCYXNlTW9kZWwsXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllc1dpdGhOb1BhcnRpYWwsXG4gIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXMsXG4gIFBhcnRpYWxJZGVudGlmaWVyc01vZGVsLFxufSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBpcywgaXNEYXRlLCBpc0VtcHR5LCBpc05pbCwgaXNPYmplY3QsIGlzU3RyaW5nLCBwYXJzZURhdGVUaW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBDb2x1bW5PcHRpb25zLCBGaWVsZHMsIEdyYXBoUUxQYXJhbXMsIEhhc3VyYUdyYXBoUUxGaWVsZHMgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7IEF0dHJpYnV0ZU9wdGlvbkhlbHBlciB9IGZyb20gJy4vYXR0cmlidXRlLW9wdGlvbi5oZWxwZXInXG5pbXBvcnQgeyBCaW5kRmlsdGVyUXVlcnlIZWxwZXIgfSBmcm9tICcuL2JpbmQtZmlsdGVyLXF1ZXJ5LmhlbHBlcidcblxuZXhwb3J0IGNsYXNzIEdyYXBoUUxGaWVsZEhlbHBlciB7XG4gIHN0YXRpYyBDaGVja0lzR3JhcGhRTFBhcmFtcyA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNb2RlbD4+KFxuICAgIHBhcmFtczogc3RyaW5nIHwgSU9wZXJhdGlvbiB8IEdyYXBoUUxQYXJhbXM8TW9kZWw+W10sXG4gICk6IHBhcmFtcyBpcyBHcmFwaFFMUGFyYW1zPE1vZGVsPltdID0+XG4gICAgIWlzU3RyaW5nKHBhcmFtcykgJiYgQXJyYXkuaXNBcnJheShwYXJhbXMpICYmIHBhcmFtcy5sZW5ndGggPj0gMCAmJiAhIXBhcmFtc1swXS5vcGVyYXRpb25cblxuICBzdGF0aWMgQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzID0gPE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1vZGVsPj4oXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPixcbiAgKTogRmllbGRzID0+IHtcbiAgICByZXR1cm4gZmllbGRzXG4gICAgICA/Lm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGlzU3RyaW5nKGZpZWxkKSkgcmV0dXJuIGZpZWxkLnRvU3RyaW5nKClcbiAgICAgICAgaWYgKGZpZWxkID09PSAnYWZmZWN0ZWRfcm93cycpIHJldHVybiBmaWVsZFxuXG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IE9iamVjdC5rZXlzKGZpZWxkKS5zaGlmdCgpXG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSBpczxDb2x1bW5PcHRpb25zPGFueSwgTW9kZWw+PihmaWVsZFtmaWVsZE5hbWUgYXMga2V5b2YgdHlwZW9mIGZpZWxkXSlcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZFZhbHVlKSlcbiAgICAgICAgICByZXR1cm4geyBbZmllbGROYW1lXTogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZFZhbHVlKSB9XG4gICAgICAgIGlmICghQXR0cmlidXRlT3B0aW9uSGVscGVyLkNoZWNrSXNDb2x1bW5PcHRpb24oZmllbGRWYWx1ZSkpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IGlzTmVzdGVkRmllbGQgPSAhIWZpZWxkVmFsdWUuZmllbGRzXG5cbiAgICAgICAgaWYgKGlzTmVzdGVkRmllbGQpIHJldHVybiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydE5lc3RlZEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZE5hbWUsIGZpZWxkVmFsdWUgYXMgYW55KVxuXG4gICAgICAgIHJldHVybiBmaWVsZFZhbHVlLmNvbHVtbk5hbWVcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChmaWVsZCkgPT4gISFmaWVsZClcbiAgfVxuXG4gIHN0YXRpYyBDb252ZXJ0RmllbGRWYWx1ZUZyb20gPSA8XG4gICAgTW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gICAgUmVjb3JkRGF0YVR5cGUgZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXIgfCBEYXRhVHlwZSB8IERhdGUsXG4gICAgRGF0YVR5cGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBSZWNvcmREYXRhVHlwZSB8IFJlY29yZERhdGFUeXBlW10+LFxuICA+KFxuICAgIGRhdGE6IERhdGFUeXBlLFxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD4sXG4gICk6IE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnRpZXNXaXRoTm9QYXJ0aWFsPE1vZGVsPiB8IFBhcnRpYWxJZGVudGlmaWVyc01vZGVsPE1vZGVsPiA9PlxuICAgIE9iamVjdC5rZXlzKGRhdGEpLnJlZHVjZSgocmVzdWx0LCBjb2x1bW5OYW1lKSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGF0dHJpYnV0ZU5hbWUsXG4gICAgICAgIGZpZWxkczogYXR0cmlidXRlRmllbGRzLFxuICAgICAgICBmcm9tLFxuICAgICAgfSA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQ29sdW1uT3B0aW9uRnJvbUxpc3QoY29sdW1uTmFtZSwgZmllbGRzKVxuXG4gICAgICBpZiAoISFhdHRyaWJ1dGVGaWVsZHMgJiYgQXJyYXkuaXNBcnJheShhdHRyaWJ1dGVGaWVsZHMpKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGFbY29sdW1uTmFtZV0pKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICBbYXR0cmlidXRlTmFtZV06IGZyb21cbiAgICAgICAgICAgICAgPyBmcm9tKGRhdGFbY29sdW1uTmFtZV0sIGRhdGEpXG4gICAgICAgICAgICAgIDogaXM8UmVjb3JkRGF0YVR5cGVbXT4oZGF0YVtjb2x1bW5OYW1lXSkubWFwKCh2YWx1ZSkgPT5cbiAgICAgICAgICAgICAgICAgIEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZUZyb20oaXM8RGF0YVR5cGU+KHZhbHVlKSwgYXR0cmlidXRlRmllbGRzKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgIH1cbiAgICAgICAgaWYgKGlzT2JqZWN0KGRhdGFbY29sdW1uTmFtZV0pKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICBbYXR0cmlidXRlTmFtZV06ICEhZnJvbVxuICAgICAgICAgICAgICA/IGZyb20oZGF0YVtjb2x1bW5OYW1lXSlcbiAgICAgICAgICAgICAgOiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydEZpZWxkVmFsdWVGcm9tKGlzPERhdGFUeXBlPihkYXRhW2NvbHVtbk5hbWVdKSwgYXR0cmlidXRlRmllbGRzKSxcbiAgICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghIWZyb20pIHJldHVybiB7IC4uLnJlc3VsdCwgW2F0dHJpYnV0ZU5hbWVdOiBmcm9tKGRhdGFbY29sdW1uTmFtZV0sIGRhdGEpIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICBbYXR0cmlidXRlTmFtZV06IGlzU3RyaW5nKGRhdGFbY29sdW1uTmFtZV0pID8gcGFyc2VEYXRlVGltZShkYXRhW2NvbHVtbk5hbWVdLnRvU3RyaW5nKCkpIDogZGF0YVtjb2x1bW5OYW1lXSxcbiAgICAgIH1cbiAgICB9LCB7fSlcblxuICBzdGF0aWMgQ29udmVydEZpZWxkVmFsdWVUbyA9IDxcbiAgICBNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZTxNb2RlbD4sXG4gICAgRGF0YVR5cGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBEYXRhVHlwZSB8IERhdGU+LFxuICA+KFxuICAgIGluc3RhbmNlOiBNb2RlbCxcbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+LFxuICAgIHVwZGF0ZSA9IGZhbHNlLFxuICApOiBEYXRhVHlwZSA9PiB7XG4gICAgY29uc3QgZGF0YTogUGFydGlhbDxNb2RlbD4gPSBpbnN0YW5jZS50b1BsYWluPy4oKSB8fCBpbnN0YW5jZVxuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEpLnJlZHVjZSgocmVzdWx0LCBhdHRyaWJ1dGVOYW1lKSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGNvbHVtbk5hbWUsXG4gICAgICAgIGZpZWxkczogYXR0cmlidXRlRmllbGRzLFxuICAgICAgICBmb3JlaWduS2V5Q29sdW1uLFxuICAgICAgICB0byxcbiAgICAgICAgYmluZFBlcnNpc3REYXRhLFxuICAgICAgfSA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1vZGVsPiwgZmllbGRzKVxuXG4gICAgICBpZiAoYmluZFBlcnNpc3REYXRhKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAuLi5iaW5kUGVyc2lzdERhdGEoZGF0YVthdHRyaWJ1dGVOYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TW9kZWw+XSwgaW5zdGFuY2UpLFxuICAgICAgICB9XG4gICAgICBpZiAoaXNOaWwoY29sdW1uTmFtZSkpIHJldHVybiByZXN1bHRcbiAgICAgIGlmIChcbiAgICAgICAgISFmb3JlaWduS2V5Q29sdW1uICYmXG4gICAgICAgICFpc0VtcHR5KGZvcmVpZ25LZXlDb2x1bW4pICYmXG4gICAgICAgICFPYmplY3Qua2V5cyhmb3JlaWduS2V5Q29sdW1uKS5maWx0ZXIoXG4gICAgICAgICAgKGtleSkgPT5cbiAgICAgICAgICAgICFpczxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihkYXRhW2F0dHJpYnV0ZU5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNb2RlbD5dKT8uW2tleV0sXG4gICAgICAgICkubGVuZ3RoXG4gICAgICApXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhmb3JlaWduS2V5Q29sdW1uKS5yZWR1Y2UoXG4gICAgICAgICAgKG9iamVjdCwgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBjb2x1bW5OYW1lOiBmb3JlaWduQ29sdW1uTmFtZSB9ID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgZm9yZWlnbktleUNvbHVtbltjdXJyZW50IGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dLFxuICAgICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLm9iamVjdCxcbiAgICAgICAgICAgICAgW2ZvcmVpZ25Db2x1bW5OYW1lXTogZGF0YVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dPy5bY3VycmVudF0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IC4uLnJlc3VsdCB9LFxuICAgICAgICApXG5cbiAgICAgIGlmIChcbiAgICAgICAgdXBkYXRlICYmXG4gICAgICAgIGlzT2JqZWN0KGRhdGFbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXSkgJiZcbiAgICAgICAgIWlzTmlsKGF0dHJpYnV0ZUZpZWxkcykgJiZcbiAgICAgICAgIWlzRGF0ZShkYXRhW2F0dHJpYnV0ZU5hbWUgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV0pXG4gICAgICApXG4gICAgICAgIHJldHVybiByZXN1bHRcblxuICAgICAgaWYgKFxuICAgICAgICAhIWNvbHVtbk5hbWUgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheShhdHRyaWJ1dGVGaWVsZHMpICYmXG4gICAgICAgIGlzT2JqZWN0KGRhdGFbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXSlcbiAgICAgICkge1xuICAgICAgICBjb25zdCBjb252ZXJ0ZWQgPVxuICAgICAgICAgICFpc05pbChjb2x1bW5OYW1lKSAmJiB0b1xuICAgICAgICAgICAgPyB0byhpbnN0YW5jZVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dLCBpbnN0YW5jZSlcbiAgICAgICAgICAgIDogZGF0YVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgLi4uKGNvbnZlcnRlZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBbY29sdW1uTmFtZV06IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlW2F0dHJpYnV0ZU5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNb2RlbD5dIGluc3RhbmNlb2YgQmFzZU1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgPyBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydEZpZWxkVmFsdWVUbyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVGaWVsZHMgYXMgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD4sXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgOiBjb252ZXJ0ZWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7fSksXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCEhdG8pXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIFtjb2x1bW5OYW1lXTogdG8oaW5zdGFuY2VbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXSwgaW5zdGFuY2UpLFxuICAgICAgICB9XG5cbiAgICAgIHJldHVybiB7IC4uLnJlc3VsdCwgW2NvbHVtbk5hbWVdOiBkYXRhW2F0dHJpYnV0ZU5hbWUgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV0gfVxuICAgIH0sIHt9IGFzIERhdGFUeXBlKVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgQ29udmVydE5lc3RlZEZpZWxkc1RvR3JhcGhRTEZpZWxkcyA9IDxcbiAgICBUIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPFQ+LFxuICAgIFAgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8UD4sXG4gID4oXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXG4gICAgZmllbGRWYWx1ZTogQ29sdW1uT3B0aW9uczxULCBQPixcbiAgKSA9PiB7XG4gICAgY29uc3QgaGFzQ3VzdG9tRmlsdGVycyA9ICEhZmllbGRWYWx1ZS5maWx0ZXJzXG5cbiAgICBpZiAoaGFzQ3VzdG9tRmlsdGVycylcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG9wZXJhdGlvbjogZmllbGRWYWx1ZS5jb2x1bW5OYW1lIHx8IGZpZWxkTmFtZSxcbiAgICAgICAgZmllbGRzOiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzKGZpZWxkVmFsdWUuZmllbGRzKSxcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgW2Ake2ZpZWxkVmFsdWUuY29sdW1uTmFtZX1fd2hlcmVgXToge1xuICAgICAgICAgICAgbmFtZTogJ3doZXJlJyxcbiAgICAgICAgICAgIHR5cGU6IGZpZWxkVmFsdWUuZmlsdGVycy5maWx0ZXJUeXBlLFxuICAgICAgICAgICAgdmFsdWU6IEJpbmRGaWx0ZXJRdWVyeUhlbHBlci5NYWtlR3JhcGhRTFdoZXJlKGZpZWxkVmFsdWUuZmlsdGVycy5maWx0ZXJzLCBmaWVsZFZhbHVlLmZpZWxkcyksXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIFtmaWVsZFZhbHVlLmNvbHVtbk5hbWUgfHwgZmllbGROYW1lXTogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZFZhbHVlLmZpZWxkcyksXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- export * from './attribute-option.helper';
2
- export * from './bind-filter-query.helper';
3
- export * from './filter-option.helper';
4
- export * from './graphql-field.helper';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLHdCQUF3QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlcidcclxuZXhwb3J0ICogZnJvbSAnLi9iaW5kLWZpbHRlci1xdWVyeS5oZWxwZXInXHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLW9wdGlvbi5oZWxwZXInXHJcbmV4cG9ydCAqIGZyb20gJy4vZ3JhcGhxbC1maWVsZC5oZWxwZXInXHJcbiJdfQ==
1
+ export * from './attribute-option.helper';
2
+ export * from './bind-filter-query.helper';
3
+ export * from './filter-option.helper';
4
+ export * from './graphql-field.helper';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLHdCQUF3QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlcidcbmV4cG9ydCAqIGZyb20gJy4vYmluZC1maWx0ZXItcXVlcnkuaGVscGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItb3B0aW9uLmhlbHBlcidcbmV4cG9ydCAqIGZyb20gJy4vZ3JhcGhxbC1maWVsZC5oZWxwZXInXG4iXX0=
@@ -1,8 +1,8 @@
1
- export * from './with-create-hasura-graphql.mixin';
2
- export * from './with-delete-hasura-graphql.mixin';
3
- export * from './with-hasura-graphql.mixin';
4
- export * from './with-update-hasura-graphql.mixin';
5
- export * from './with-get-hasura-graphql.mixin';
6
- export * from './with-find-hasura-graphql.mixin';
7
- export * from './with-crud-hasura-graphql.mixin';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQTtBQUNsRCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxvQ0FBb0MsQ0FBQTtBQUNsRCxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsa0NBQWtDLENBQUE7QUFDaEQsY0FBYyxrQ0FBa0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd2l0aC1jcmVhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4nXHJcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1kZWxldGUtaGFzdXJhLWdyYXBocWwubWl4aW4nXHJcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1oYXN1cmEtZ3JhcGhxbC5taXhpbidcclxuZXhwb3J0ICogZnJvbSAnLi93aXRoLXVwZGF0ZS1oYXN1cmEtZ3JhcGhxbC5taXhpbidcclxuZXhwb3J0ICogZnJvbSAnLi93aXRoLWdldC1oYXN1cmEtZ3JhcGhxbC5taXhpbidcclxuZXhwb3J0ICogZnJvbSAnLi93aXRoLWZpbmQtaGFzdXJhLWdyYXBocWwubWl4aW4nXHJcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1jcnVkLWhhc3VyYS1ncmFwaHFsLm1peGluJ1xyXG4iXX0=
1
+ export * from './with-create-hasura-graphql.mixin';
2
+ export * from './with-delete-hasura-graphql.mixin';
3
+ export * from './with-hasura-graphql.mixin';
4
+ export * from './with-update-hasura-graphql.mixin';
5
+ export * from './with-get-hasura-graphql.mixin';
6
+ export * from './with-find-hasura-graphql.mixin';
7
+ export * from './with-crud-hasura-graphql.mixin';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQTtBQUNsRCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxvQ0FBb0MsQ0FBQTtBQUNsRCxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsa0NBQWtDLENBQUE7QUFDaEQsY0FBYyxrQ0FBa0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd2l0aC1jcmVhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4nXG5leHBvcnQgKiBmcm9tICcuL3dpdGgtZGVsZXRlLWhhc3VyYS1ncmFwaHFsLm1peGluJ1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLWhhc3VyYS1ncmFwaHFsLm1peGluJ1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLXVwZGF0ZS1oYXN1cmEtZ3JhcGhxbC5taXhpbidcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4nXG5leHBvcnQgKiBmcm9tICcuL3dpdGgtZmluZC1oYXN1cmEtZ3JhcGhxbC5taXhpbidcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1jcnVkLWhhc3VyYS1ncmFwaHFsLm1peGluJ1xuIl19
@@ -0,0 +1,39 @@
1
+ import { DebugHelper } from '../../../utils';
2
+ import { AttributeOptionHelper } from './helpers';
3
+ export const withCreateHasuraGraphQL = (MixinBase) => {
4
+ return class CreateHasuraGraphQLMixin extends MixinBase {
5
+ constructor(...params) {
6
+ const options = params?.[0];
7
+ super(...params);
8
+ this.insertGraphQLOperation = options?.insertGraphQLOperation || `insert_${this.tableName}_one`;
9
+ this.insertGraphQLObjectType = options?.insertGraphQLObjectType || `${this.tableName}_insert_input`;
10
+ }
11
+ async create(data) {
12
+ this.logger = DebugHelper.from(this, 'create');
13
+ const newData = await this.save(this.model.toInstance(data));
14
+ return this.model.toInstance(newData);
15
+ }
16
+ async save(data) {
17
+ const primaryKeyColumns = this.model.identifiersFields.map((field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName);
18
+ const foreignKeyColumns = this.fields
19
+ .map((field) => {
20
+ const columnOptions = Object.values(field).shift();
21
+ return (AttributeOptionHelper.CheckIsColumnOption(columnOptions) &&
22
+ columnOptions.foreignKeyColumn && [
23
+ ...Object.values(columnOptions.foreignKeyColumn).map((foreignKeyName) => AttributeOptionHelper.FindByAttribute(foreignKeyName, this.fields)?.columnName),
24
+ {
25
+ [columnOptions.columnName]: Object.keys(columnOptions.foreignKeyColumn).map((foreignKeyField) => AttributeOptionHelper.FindByAttribute(foreignKeyField, columnOptions?.fields)
26
+ ?.columnName || foreignKeyField),
27
+ },
28
+ ]);
29
+ })
30
+ .filter(Boolean)
31
+ .reduce((keys, current) => [...keys, ...current], []);
32
+ const result = await this.mutation(this.insertGraphQLOperation, [...primaryKeyColumns, ...foreignKeyColumns], {
33
+ object: { type: this.insertGraphQLObjectType, required: true, value: this.convertDataToHasura(data) },
34
+ });
35
+ return { ...data.toPlain(), ...this.convertDataFromHasura(result[this.insertGraphQLOperation]).toPlain() };
36
+ }
37
+ };
38
+ };
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jcmVhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC1jcmVhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBcUMsTUFBTSxnQkFBZ0IsQ0FBQTtBQUcvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFRakQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FJckMsU0FBMkQsRUFJM0QsRUFBRTtJQUNGLE9BQU8sTUFBTSx3QkFBeUIsU0FBUSxTQUFTO1FBSXJELFlBQVksR0FBRyxNQUFhO1lBQzFCLE1BQU0sT0FBTyxHQUE0QixNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUVwRCxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQTtZQUVoQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsT0FBTyxFQUFFLHNCQUFzQixJQUFJLFVBQVUsSUFBSSxDQUFDLFNBQVMsTUFBTSxDQUFBO1lBQy9GLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxPQUFPLEVBQUUsdUJBQXVCLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxlQUFlLENBQUE7UUFDckcsQ0FBQztRQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBbUM7WUFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUU5QyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUU1RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7UUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQVc7WUFDcEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FDeEQsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FDbEQsQ0FBQTtZQUMvQixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxNQUFNO2lCQUNsQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDYixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO2dCQUVsRCxPQUFPLENBQ0wscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDO29CQUN4RCxhQUFhLENBQUMsZ0JBQWdCLElBQUk7b0JBQ2hDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLENBQ2xELENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FDakIscUJBQXFCLENBQUMsZUFBZSxDQUFDLGNBQXFCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVUsQ0FDeEY7b0JBQ0Q7d0JBQ0UsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLENBQ3pFLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FDbEIscUJBQXFCLENBQUMsZUFBZSxDQUFDLGVBQXNCLEVBQUUsYUFBYSxFQUFFLE1BQWEsQ0FBQzs0QkFDekYsRUFBRSxVQUFVLElBQUksZUFBZSxDQUNwQztxQkFDRjtpQkFDRixDQUNGLENBQUE7WUFDSCxDQUFDLENBQUM7aUJBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQztpQkFDZixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFFdkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUNoQyxJQUFJLENBQUMsc0JBQXNCLEVBQzNCLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxHQUFHLGlCQUFpQixDQUErQixFQUMxRTtnQkFDRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRTthQUN0RyxDQUNGLENBQUE7WUFFRCxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQTtRQUM1RyxDQUFDO0tBQ0ssQ0FBQTtBQUNWLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyZWF0ZVJlcG9zaXRvcnksIENyZWF0ZVJlcG9zaXRvcnlQYXJhbXMsIE1vZGVsQmFzZVN0cnVjdHVyZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IERlYnVnSGVscGVyLCBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zLCBNaXhpbkN0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscydcbmltcG9ydCB7IEdyYXBoUUxSZXBvc2l0b3J5LCBIYXN1cmFHcmFwaFFMRmllbGRzIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IEF0dHJpYnV0ZU9wdGlvbkhlbHBlciB9IGZyb20gJy4vaGVscGVycydcblxuZXhwb3J0IHR5cGUgQ3JlYXRlQ29uc3RydWN0b3JQYXJhbXMgPSB7XG4gIGluc2VydEdyYXBoUUxPcGVyYXRpb24/OiBzdHJpbmdcbiAgaW5zZXJ0QWxsR3JhcGhRTE9wZXJhdGlvbj86IHN0cmluZ1xuICBpbnNlcnRHcmFwaFFMT2JqZWN0VHlwZT86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3Qgd2l0aENyZWF0ZUhhc3VyYUdyYXBoUUwgPSA8XG4gIE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPE1CYXNlLCBNQmFzZVsnaWRlbnRpZmllcnNGaWVsZHMnXVtudW1iZXJdPixcbiAgVE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4+LFxuPihcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+PiAmIFRNaXhpbkJhc2UsXG4pOiBNaXhpbkN0b3I8XG4gIEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPiAmIEluc3RhbmNlVHlwZTxUTWl4aW5CYXNlPiAmIENyZWF0ZVJlcG9zaXRvcnk8TUJhc2U+LFxuICBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zPFtDcmVhdGVDb25zdHJ1Y3RvclBhcmFtcywgLi4uYW55W11dLCBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VE1peGluQmFzZT4+XG4+ID0+IHtcbiAgcmV0dXJuIGNsYXNzIENyZWF0ZUhhc3VyYUdyYXBoUUxNaXhpbiBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIENyZWF0ZVJlcG9zaXRvcnk8TUJhc2U+IHtcbiAgICBpbnNlcnRHcmFwaFFMT3BlcmF0aW9uOiBzdHJpbmdcbiAgICBpbnNlcnRHcmFwaFFMT2JqZWN0VHlwZTogc3RyaW5nXG5cbiAgICBjb25zdHJ1Y3RvciguLi5wYXJhbXM6IGFueVtdKSB7XG4gICAgICBjb25zdCBvcHRpb25zOiBDcmVhdGVDb25zdHJ1Y3RvclBhcmFtcyA9IHBhcmFtcz8uWzBdXG5cbiAgICAgIHN1cGVyKC4uLnBhcmFtcylcblxuICAgICAgdGhpcy5pbnNlcnRHcmFwaFFMT3BlcmF0aW9uID0gb3B0aW9ucz8uaW5zZXJ0R3JhcGhRTE9wZXJhdGlvbiB8fCBgaW5zZXJ0XyR7dGhpcy50YWJsZU5hbWV9X29uZWBcbiAgICAgIHRoaXMuaW5zZXJ0R3JhcGhRTE9iamVjdFR5cGUgPSBvcHRpb25zPy5pbnNlcnRHcmFwaFFMT2JqZWN0VHlwZSB8fCBgJHt0aGlzLnRhYmxlTmFtZX1faW5zZXJ0X2lucHV0YFxuICAgIH1cblxuICAgIGFzeW5jIGNyZWF0ZShkYXRhOiBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zPE1CYXNlPik6IFByb21pc2U8TUJhc2U+IHtcbiAgICAgIHRoaXMubG9nZ2VyID0gRGVidWdIZWxwZXIuZnJvbSh0aGlzLCAnY3JlYXRlJylcblxuICAgICAgY29uc3QgbmV3RGF0YSA9IGF3YWl0IHRoaXMuc2F2ZSh0aGlzLm1vZGVsLnRvSW5zdGFuY2UoZGF0YSkpXG5cbiAgICAgIHJldHVybiB0aGlzLm1vZGVsLnRvSW5zdGFuY2UobmV3RGF0YSlcbiAgICB9XG5cbiAgICBhc3luYyBzYXZlKGRhdGE6IE1CYXNlKTogUHJvbWlzZTxQYXJ0aWFsPE1CYXNlPj4ge1xuICAgICAgY29uc3QgcHJpbWFyeUtleUNvbHVtbnMgPSB0aGlzLm1vZGVsLmlkZW50aWZpZXJzRmllbGRzLm1hcChcbiAgICAgICAgKGZpZWxkKSA9PiBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKGZpZWxkLCB0aGlzLmZpZWxkcykuY29sdW1uTmFtZSxcbiAgICAgICkgYXMgSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT5cbiAgICAgIGNvbnN0IGZvcmVpZ25LZXlDb2x1bW5zID0gdGhpcy5maWVsZHNcbiAgICAgICAgLm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBjb2x1bW5PcHRpb25zID0gT2JqZWN0LnZhbHVlcyhmaWVsZCkuc2hpZnQoKVxuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5DaGVja0lzQ29sdW1uT3B0aW9uKGNvbHVtbk9wdGlvbnMpICYmXG4gICAgICAgICAgICBjb2x1bW5PcHRpb25zLmZvcmVpZ25LZXlDb2x1bW4gJiYgW1xuICAgICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKGNvbHVtbk9wdGlvbnMuZm9yZWlnbktleUNvbHVtbikubWFwKFxuICAgICAgICAgICAgICAgIChmb3JlaWduS2V5TmFtZSkgPT5cbiAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoZm9yZWlnbktleU5hbWUgYXMgYW55LCB0aGlzLmZpZWxkcyk/LmNvbHVtbk5hbWUsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBbY29sdW1uT3B0aW9ucy5jb2x1bW5OYW1lXTogT2JqZWN0LmtleXMoY29sdW1uT3B0aW9ucy5mb3JlaWduS2V5Q29sdW1uKS5tYXAoXG4gICAgICAgICAgICAgICAgICAoZm9yZWlnbktleUZpZWxkKSA9PlxuICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKGZvcmVpZ25LZXlGaWVsZCBhcyBhbnksIGNvbHVtbk9wdGlvbnM/LmZpZWxkcyBhcyBhbnkpXG4gICAgICAgICAgICAgICAgICAgICAgPy5jb2x1bW5OYW1lIHx8IGZvcmVpZ25LZXlGaWVsZCxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXVxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAucmVkdWNlKChrZXlzLCBjdXJyZW50KSA9PiBbLi4ua2V5cywgLi4uY3VycmVudF0sIFtdKVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLm11dGF0aW9uPFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+PihcbiAgICAgICAgdGhpcy5pbnNlcnRHcmFwaFFMT3BlcmF0aW9uLFxuICAgICAgICBbLi4ucHJpbWFyeUtleUNvbHVtbnMsIC4uLmZvcmVpZ25LZXlDb2x1bW5zXSBhcyBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgICAgICAge1xuICAgICAgICAgIG9iamVjdDogeyB0eXBlOiB0aGlzLmluc2VydEdyYXBoUUxPYmplY3RUeXBlLCByZXF1aXJlZDogdHJ1ZSwgdmFsdWU6IHRoaXMuY29udmVydERhdGFUb0hhc3VyYShkYXRhKSB9LFxuICAgICAgICB9LFxuICAgICAgKVxuXG4gICAgICByZXR1cm4geyAuLi5kYXRhLnRvUGxhaW4oKSwgLi4udGhpcy5jb252ZXJ0RGF0YUZyb21IYXN1cmEocmVzdWx0W3RoaXMuaW5zZXJ0R3JhcGhRTE9wZXJhdGlvbl0pLnRvUGxhaW4oKSB9XG4gICAgfVxuICB9IGFzIGFueVxufVxuIl19