@infrab4a/connect 3.8.3 → 3.9.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/README.md +24 -24
  2. package/bundles/infrab4a-connect.umd.js +5214 -5127
  3. package/bundles/infrab4a-connect.umd.js.map +1 -1
  4. package/domain/catalog/index.d.ts +2 -2
  5. package/domain/catalog/models/category-filter.d.ts +9 -9
  6. package/domain/catalog/models/category.d.ts +25 -25
  7. package/domain/catalog/models/enums/index.d.ts +2 -2
  8. package/domain/catalog/models/enums/product-genders.enum.d.ts +5 -5
  9. package/domain/catalog/models/enums/shops.enum.d.ts +6 -6
  10. package/domain/catalog/models/filter-option.d.ts +10 -10
  11. package/domain/catalog/models/filter.d.ts +13 -13
  12. package/domain/catalog/models/index.d.ts +9 -9
  13. package/domain/catalog/models/kit-product.d.ts +12 -12
  14. package/domain/catalog/models/product.d.ts +40 -40
  15. package/domain/catalog/models/types/category-condition.type.d.ts +4 -4
  16. package/domain/catalog/models/types/category-metadata.type.d.ts +4 -4
  17. package/domain/catalog/models/types/index.d.ts +9 -9
  18. package/domain/catalog/models/types/product-gender.type.d.ts +1 -1
  19. package/domain/catalog/models/types/product-metadata.type.d.ts +4 -4
  20. package/domain/catalog/models/types/product-review.type.d.ts +17 -17
  21. package/domain/catalog/models/types/shop-description.type.d.ts +7 -7
  22. package/domain/catalog/models/types/shop-price.type.d.ts +6 -6
  23. package/domain/catalog/models/types/stock.type.d.ts +3 -3
  24. package/domain/catalog/models/types/variant-grade.type.d.ts +4 -4
  25. package/domain/catalog/models/variant.d.ts +18 -18
  26. package/domain/catalog/repositories/category-filter.repository.d.ts +5 -5
  27. package/domain/catalog/repositories/category.repository.d.ts +15 -15
  28. package/domain/catalog/repositories/filter-option.repository.d.ts +4 -4
  29. package/domain/catalog/repositories/filter.repository.d.ts +4 -4
  30. package/domain/catalog/repositories/index.d.ts +7 -7
  31. package/domain/catalog/repositories/product.repository.d.ts +13 -13
  32. package/domain/catalog/repositories/subscription-product.repository.d.ts +4 -4
  33. package/domain/catalog/repositories/variant.repository.d.ts +4 -4
  34. package/domain/generic/index.d.ts +2 -2
  35. package/domain/generic/model/base.model.d.ts +10 -10
  36. package/domain/generic/model/identifier-fields.d.ts +4 -4
  37. package/domain/generic/model/index.d.ts +3 -3
  38. package/domain/generic/model/types/base-model-builder.type.d.ts +15 -15
  39. package/domain/generic/model/types/identifier-model.type.d.ts +7 -7
  40. package/domain/generic/model/types/index.d.ts +5 -5
  41. package/domain/generic/model/types/model-base-structure.type.d.ts +6 -6
  42. package/domain/generic/model/types/non-function-properties.type.d.ts +12 -12
  43. package/domain/generic/model/types/non-function-property-name.type.d.ts +4 -4
  44. package/domain/generic/repository/create.repository.d.ts +8 -8
  45. package/domain/generic/repository/crud.repository.d.ts +19 -19
  46. package/domain/generic/repository/delete.repository.d.ts +7 -7
  47. package/domain/generic/repository/enums/index.d.ts +2 -2
  48. package/domain/generic/repository/enums/update-option-actions.enum.d.ts +7 -7
  49. package/domain/generic/repository/enums/where.enum.d.ts +14 -14
  50. package/domain/generic/repository/find.repository.d.ts +14 -14
  51. package/domain/generic/repository/get.repository.d.ts +5 -5
  52. package/domain/generic/repository/index.d.ts +9 -9
  53. package/domain/generic/repository/read.repository.d.ts +14 -14
  54. package/domain/generic/repository/types/index.d.ts +6 -6
  55. package/domain/generic/repository/types/repository-find-filters.type.d.ts +13 -13
  56. package/domain/generic/repository/types/repository-find-result.type.d.ts +4 -4
  57. package/domain/generic/repository/types/repository-limit-options.type.d.ts +4 -4
  58. package/domain/generic/repository/types/repository-order-by-list.type.d.ts +5 -5
  59. package/domain/generic/repository/types/repository-update-params.type.d.ts +11 -11
  60. package/domain/generic/repository/types/where-options.type.d.ts +2 -2
  61. package/domain/generic/repository/update.repository.d.ts +6 -6
  62. package/domain/index.d.ts +6 -6
  63. package/domain/location/index.d.ts +1 -1
  64. package/domain/location/models/address.d.ts +22 -22
  65. package/domain/location/models/index.d.ts +2 -2
  66. package/domain/location/models/types/index.d.ts +3 -3
  67. package/domain/location/models/types/location-bound.type.d.ts +6 -6
  68. package/domain/location/models/types/location-geometry.type.d.ts +7 -7
  69. package/domain/location/models/types/location-lat-lng.type.d.ts +4 -4
  70. package/domain/shop-settings/enums/filter-type.enum.d.ts +19 -19
  71. package/domain/shop-settings/enums/index.d.ts +2 -2
  72. package/domain/shop-settings/enums/questions-filters.enum.d.ts +19 -19
  73. package/domain/shop-settings/helpers/beauty-questions.helper.d.ts +9 -9
  74. package/domain/shop-settings/helpers/index.d.ts +1 -1
  75. package/domain/shop-settings/index.d.ts +4 -4
  76. package/domain/shop-settings/models/home.d.ts +18 -18
  77. package/domain/shop-settings/models/index.d.ts +4 -4
  78. package/domain/shop-settings/models/shop-menu.d.ts +7 -7
  79. package/domain/shop-settings/models/shop-settings.d.ts +9 -9
  80. package/domain/shop-settings/models/types/banner.type.d.ts +6 -6
  81. package/domain/shop-settings/models/types/benefit.type.d.ts +5 -5
  82. package/domain/shop-settings/models/types/home-data.type.d.ts +15 -15
  83. package/domain/shop-settings/models/types/index.d.ts +10 -10
  84. package/domain/shop-settings/models/types/menu-nav.type.d.ts +8 -8
  85. package/domain/shop-settings/models/types/shop-banner.type.d.ts +12 -12
  86. package/domain/shop-settings/models/types/shop-brands.type.d.ts +10 -10
  87. package/domain/shop-settings/models/types/shop-carousel.type.d.ts +5 -5
  88. package/domain/shop-settings/models/types/shop-collection.type.d.ts +9 -9
  89. package/domain/shop-settings/models/types/shop-section.type.d.ts +9 -9
  90. package/domain/shop-settings/models/types/sub-menu.type.d.ts +8 -8
  91. package/domain/shop-settings/repositories/home.repository.d.ts +4 -4
  92. package/domain/shop-settings/repositories/index.d.ts +3 -3
  93. package/domain/shop-settings/repositories/shop-menu.repository.d.ts +4 -4
  94. package/domain/shop-settings/repositories/shop-settings.repository.d.ts +4 -4
  95. package/domain/shopping/index.d.ts +2 -2
  96. package/domain/shopping/models/buy-2-win.d.ts +16 -18
  97. package/domain/shopping/models/campaign-dashboard.d.ts +15 -15
  98. package/domain/shopping/models/campaign-hashtag.d.ts +18 -18
  99. package/domain/shopping/models/checkout.d.ts +27 -27
  100. package/domain/shopping/models/coupons/coupon.d.ts +32 -32
  101. package/domain/shopping/models/coupons/enums/coupon-club-mens.enum.d.ts +5 -5
  102. package/domain/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +4 -4
  103. package/domain/shopping/models/coupons/enums/coupon-types.enum.d.ts +4 -4
  104. package/domain/shopping/models/coupons/enums/exclusivities.enum.d.ts +8 -8
  105. package/domain/shopping/models/coupons/enums/index.d.ts +3 -3
  106. package/domain/shopping/models/coupons/index.d.ts +2 -2
  107. package/domain/shopping/models/enums/checkout-types.enum.d.ts +5 -5
  108. package/domain/shopping/models/enums/index.d.ts +2 -2
  109. package/domain/shopping/models/enums/order-status.enum.d.ts +10 -10
  110. package/domain/shopping/models/index.d.ts +12 -12
  111. package/domain/shopping/models/line-item.d.ts +8 -8
  112. package/domain/shopping/models/order.d.ts +9 -9
  113. package/domain/shopping/models/payment.d.ts +67 -67
  114. package/domain/shopping/models/shipping-method.d.ts +16 -16
  115. package/domain/shopping/models/subscription/checkout.d.ts +21 -21
  116. package/domain/shopping/models/subscription/index.d.ts +2 -2
  117. package/domain/shopping/models/subscription/plan.d.ts +10 -10
  118. package/domain/shopping/models/types/index.d.ts +7 -7
  119. package/domain/shopping/models/types/payment-address.type.d.ts +12 -12
  120. package/domain/shopping/models/types/payment-billing.type.d.ts +7 -7
  121. package/domain/shopping/models/types/payment-card.type.d.ts +14 -14
  122. package/domain/shopping/models/types/payment-customer.type.d.ts +18 -18
  123. package/domain/shopping/models/types/payment-document.type.d.ts +6 -6
  124. package/domain/shopping/models/types/payment-item.type.d.ts +11 -11
  125. package/domain/shopping/models/types/payment-shipping.type.d.ts +10 -10
  126. package/domain/shopping/repositories/buy-2-win.repository.d.ts +4 -4
  127. package/domain/shopping/repositories/campaign-dashboard.repository.d.ts +4 -4
  128. package/domain/shopping/repositories/campaign-hashtag.repository.d.ts +4 -4
  129. package/domain/shopping/repositories/checkout.repository.d.ts +4 -4
  130. package/domain/shopping/repositories/coupon.repository.d.ts +4 -4
  131. package/domain/shopping/repositories/index.d.ts +9 -9
  132. package/domain/shopping/repositories/legacy-order.repository.d.ts +3 -3
  133. package/domain/shopping/repositories/order.repository.d.ts +4 -4
  134. package/domain/shopping/repositories/payment.repository.d.ts +4 -4
  135. package/domain/shopping/repositories/subscription/checkout.repository.d.ts +4 -4
  136. package/domain/shopping/repositories/subscription/index.d.ts +2 -2
  137. package/domain/shopping/repositories/subscription/plan.repository.d.ts +4 -4
  138. package/domain/users/errors/index.d.ts +3 -3
  139. package/domain/users/errors/unauthorized.error.d.ts +5 -5
  140. package/domain/users/errors/user-already-registered.error.d.ts +5 -5
  141. package/domain/users/errors/weak-password.error.d.ts +5 -5
  142. package/domain/users/index.d.ts +5 -5
  143. package/domain/users/models/beauty-profile.d.ts +11 -11
  144. package/domain/users/models/enums/accessory-importances.enum.d.ts +5 -5
  145. package/domain/users/models/enums/area.enum.d.ts +11 -11
  146. package/domain/users/models/enums/beard-problems.enum.d.ts +9 -9
  147. package/domain/users/models/enums/beard-sizes.enum.d.ts +7 -7
  148. package/domain/users/models/enums/beauty-product-importances.enum.d.ts +6 -6
  149. package/domain/users/models/enums/body-problems.enum.d.ts +11 -11
  150. package/domain/users/models/enums/body-shapes.enum.d.ts +7 -7
  151. package/domain/users/models/enums/body-tattoos.enum.d.ts +5 -5
  152. package/domain/users/models/enums/face-skin-oilinesses.enum.d.ts +7 -7
  153. package/domain/users/models/enums/face-skin-problems.enum.d.ts +10 -10
  154. package/domain/users/models/enums/face-skin-tones.enum.d.ts +8 -8
  155. package/domain/users/models/enums/family-incomes.enum.d.ts +8 -8
  156. package/domain/users/models/enums/fragrance-importances.enum.d.ts +5 -5
  157. package/domain/users/models/enums/hair-colors.enum.d.ts +10 -10
  158. package/domain/users/models/enums/hair-problems.enum.d.ts +10 -10
  159. package/domain/users/models/enums/hair-strands.enum.d.ts +8 -8
  160. package/domain/users/models/enums/hair-types.enum.d.ts +7 -7
  161. package/domain/users/models/enums/index.d.ts +20 -20
  162. package/domain/users/models/enums/office-position.enum.d.ts +6 -6
  163. package/domain/users/models/enums/product-spents.enum.d.ts +8 -8
  164. package/domain/users/models/enums/user-type.enum.d.ts +8 -8
  165. package/domain/users/models/index.d.ts +7 -7
  166. package/domain/users/models/lead.d.ts +7 -8
  167. package/domain/users/models/subscription/edition.d.ts +16 -16
  168. package/domain/users/models/subscription/enums/billing-status.enum.d.ts +3 -3
  169. package/domain/users/models/subscription/enums/edition-status.enum.d.ts +4 -4
  170. package/domain/users/models/subscription/enums/index.d.ts +4 -4
  171. package/domain/users/models/subscription/enums/payment-type.enum.d.ts +5 -5
  172. package/domain/users/models/subscription/enums/status.enum.d.ts +4 -4
  173. package/domain/users/models/subscription/index.d.ts +4 -4
  174. package/domain/users/models/subscription/payment.d.ts +13 -13
  175. package/domain/users/models/subscription/subscription.d.ts +28 -28
  176. package/domain/users/models/user-address.d.ts +7 -7
  177. package/domain/users/models/user-payment-method.d.ts +14 -14
  178. package/domain/users/models/user.d.ts +28 -28
  179. package/domain/users/repositories/beauty-profile.repository.d.ts +4 -4
  180. package/domain/users/repositories/edition.repository.d.ts +4 -4
  181. package/domain/users/repositories/index.d.ts +8 -8
  182. package/domain/users/repositories/lead.repository.d.ts +4 -4
  183. package/domain/users/repositories/subscription-payment.repository.d.ts +4 -4
  184. package/domain/users/repositories/subscription.repository.d.ts +4 -4
  185. package/domain/users/repositories/user-address.repository.d.ts +4 -4
  186. package/domain/users/repositories/user-payment-method.repository.d.ts +4 -4
  187. package/domain/users/repositories/user.repository.d.ts +6 -6
  188. package/domain/users/services/authentication.service.d.ts +12 -12
  189. package/domain/users/services/index.d.ts +3 -3
  190. package/domain/users/services/register.service.d.ts +7 -7
  191. package/domain/users/services/types/basic-user-data.type.d.ts +4 -4
  192. package/domain/users/services/types/index.d.ts +1 -1
  193. package/domain/users/use-cases/authentication.d.ts +21 -21
  194. package/domain/users/use-cases/index.d.ts +4 -4
  195. package/domain/users/use-cases/recovery-password.d.ts +6 -6
  196. package/domain/users/use-cases/register.d.ts +13 -13
  197. package/domain/users/use-cases/signout.d.ts +6 -6
  198. package/errors/duplicated-results.error.d.ts +5 -5
  199. package/errors/index.d.ts +4 -4
  200. package/errors/invalid-argument.error.d.ts +5 -5
  201. package/errors/not-found.error.d.ts +5 -5
  202. package/errors/required-argument.error.d.ts +6 -6
  203. package/esm2015/domain/catalog/index.js +3 -3
  204. package/esm2015/domain/catalog/models/category-filter.js +10 -10
  205. package/esm2015/domain/catalog/models/category.js +17 -17
  206. package/esm2015/domain/catalog/models/enums/index.js +3 -3
  207. package/esm2015/domain/catalog/models/enums/product-genders.enum.js +7 -7
  208. package/esm2015/domain/catalog/models/enums/shops.enum.js +8 -8
  209. package/esm2015/domain/catalog/models/filter-option.js +10 -10
  210. package/esm2015/domain/catalog/models/filter.js +10 -10
  211. package/esm2015/domain/catalog/models/index.js +10 -10
  212. package/esm2015/domain/catalog/models/kit-product.js +18 -18
  213. package/esm2015/domain/catalog/models/product.js +17 -17
  214. package/esm2015/domain/catalog/models/types/category-condition.type.js +2 -2
  215. package/esm2015/domain/catalog/models/types/category-metadata.type.js +2 -2
  216. package/esm2015/domain/catalog/models/types/index.js +10 -10
  217. package/esm2015/domain/catalog/models/types/product-gender.type.js +2 -2
  218. package/esm2015/domain/catalog/models/types/product-metadata.type.js +2 -2
  219. package/esm2015/domain/catalog/models/types/product-review.type.js +2 -2
  220. package/esm2015/domain/catalog/models/types/shop-description.type.js +2 -2
  221. package/esm2015/domain/catalog/models/types/shop-price.type.js +2 -2
  222. package/esm2015/domain/catalog/models/types/stock.type.js +2 -2
  223. package/esm2015/domain/catalog/models/types/variant-grade.type.js +2 -2
  224. package/esm2015/domain/catalog/models/variant.js +10 -10
  225. package/esm2015/domain/catalog/repositories/category-filter.repository.js +2 -2
  226. package/esm2015/domain/catalog/repositories/category.repository.js +2 -2
  227. package/esm2015/domain/catalog/repositories/filter-option.repository.js +2 -2
  228. package/esm2015/domain/catalog/repositories/filter.repository.js +2 -2
  229. package/esm2015/domain/catalog/repositories/index.js +8 -8
  230. package/esm2015/domain/catalog/repositories/product.repository.js +2 -2
  231. package/esm2015/domain/catalog/repositories/subscription-product.repository.js +2 -2
  232. package/esm2015/domain/catalog/repositories/variant.repository.js +2 -2
  233. package/esm2015/domain/generic/index.js +3 -3
  234. package/esm2015/domain/generic/model/base.model.js +23 -23
  235. package/esm2015/domain/generic/model/identifier-fields.js +2 -2
  236. package/esm2015/domain/generic/model/index.js +4 -4
  237. package/esm2015/domain/generic/model/types/base-model-builder.type.js +2 -2
  238. package/esm2015/domain/generic/model/types/identifier-model.type.js +2 -2
  239. package/esm2015/domain/generic/model/types/index.js +6 -6
  240. package/esm2015/domain/generic/model/types/model-base-structure.type.js +2 -2
  241. package/esm2015/domain/generic/model/types/non-function-properties.type.js +2 -2
  242. package/esm2015/domain/generic/model/types/non-function-property-name.type.js +2 -2
  243. package/esm2015/domain/generic/repository/create.repository.js +2 -2
  244. package/esm2015/domain/generic/repository/crud.repository.js +2 -2
  245. package/esm2015/domain/generic/repository/delete.repository.js +2 -2
  246. package/esm2015/domain/generic/repository/enums/index.js +3 -3
  247. package/esm2015/domain/generic/repository/enums/update-option-actions.enum.js +9 -9
  248. package/esm2015/domain/generic/repository/enums/where.enum.js +16 -16
  249. package/esm2015/domain/generic/repository/find.repository.js +2 -2
  250. package/esm2015/domain/generic/repository/get.repository.js +2 -2
  251. package/esm2015/domain/generic/repository/index.js +10 -10
  252. package/esm2015/domain/generic/repository/read.repository.js +2 -2
  253. package/esm2015/domain/generic/repository/types/index.js +7 -7
  254. package/esm2015/domain/generic/repository/types/repository-find-filters.type.js +2 -2
  255. package/esm2015/domain/generic/repository/types/repository-find-result.type.js +2 -2
  256. package/esm2015/domain/generic/repository/types/repository-limit-options.type.js +2 -2
  257. package/esm2015/domain/generic/repository/types/repository-order-by-list.type.js +2 -2
  258. package/esm2015/domain/generic/repository/types/repository-update-params.type.js +2 -2
  259. package/esm2015/domain/generic/repository/types/where-options.type.js +2 -2
  260. package/esm2015/domain/generic/repository/update.repository.js +2 -2
  261. package/esm2015/domain/index.js +7 -7
  262. package/esm2015/domain/location/index.js +2 -2
  263. package/esm2015/domain/location/models/address.js +7 -7
  264. package/esm2015/domain/location/models/index.js +3 -3
  265. package/esm2015/domain/location/models/types/index.js +4 -4
  266. package/esm2015/domain/location/models/types/location-bound.type.js +2 -2
  267. package/esm2015/domain/location/models/types/location-geometry.type.js +2 -2
  268. package/esm2015/domain/location/models/types/location-lat-lng.type.js +2 -2
  269. package/esm2015/domain/shop-settings/enums/filter-type.enum.js +21 -21
  270. package/esm2015/domain/shop-settings/enums/index.js +3 -3
  271. package/esm2015/domain/shop-settings/enums/questions-filters.enum.js +21 -21
  272. package/esm2015/domain/shop-settings/helpers/beauty-questions.helper.js +46 -46
  273. package/esm2015/domain/shop-settings/helpers/index.js +2 -2
  274. package/esm2015/domain/shop-settings/index.js +5 -5
  275. package/esm2015/domain/shop-settings/models/home.js +7 -7
  276. package/esm2015/domain/shop-settings/models/index.js +5 -5
  277. package/esm2015/domain/shop-settings/models/shop-menu.js +7 -7
  278. package/esm2015/domain/shop-settings/models/shop-settings.js +7 -7
  279. package/esm2015/domain/shop-settings/models/types/banner.type.js +2 -2
  280. package/esm2015/domain/shop-settings/models/types/benefit.type.js +2 -2
  281. package/esm2015/domain/shop-settings/models/types/home-data.type.js +2 -2
  282. package/esm2015/domain/shop-settings/models/types/index.js +11 -11
  283. package/esm2015/domain/shop-settings/models/types/menu-nav.type.js +2 -2
  284. package/esm2015/domain/shop-settings/models/types/shop-banner.type.js +2 -2
  285. package/esm2015/domain/shop-settings/models/types/shop-brands.type.js +2 -2
  286. package/esm2015/domain/shop-settings/models/types/shop-carousel.type.js +2 -2
  287. package/esm2015/domain/shop-settings/models/types/shop-collection.type.js +2 -2
  288. package/esm2015/domain/shop-settings/models/types/shop-section.type.js +2 -2
  289. package/esm2015/domain/shop-settings/models/types/sub-menu.type.js +2 -2
  290. package/esm2015/domain/shop-settings/repositories/home.repository.js +2 -2
  291. package/esm2015/domain/shop-settings/repositories/index.js +4 -4
  292. package/esm2015/domain/shop-settings/repositories/shop-menu.repository.js +2 -2
  293. package/esm2015/domain/shop-settings/repositories/shop-settings.repository.js +2 -2
  294. package/esm2015/domain/shopping/index.js +3 -3
  295. package/esm2015/domain/shopping/models/buy-2-win.js +14 -14
  296. package/esm2015/domain/shopping/models/campaign-dashboard.js +7 -7
  297. package/esm2015/domain/shopping/models/campaign-hashtag.js +7 -7
  298. package/esm2015/domain/shopping/models/checkout.js +38 -38
  299. package/esm2015/domain/shopping/models/coupons/coupon.js +38 -38
  300. package/esm2015/domain/shopping/models/coupons/enums/coupon-club-mens.enum.js +7 -7
  301. package/esm2015/domain/shopping/models/coupons/enums/coupon-subtypes.enum.js +6 -6
  302. package/esm2015/domain/shopping/models/coupons/enums/coupon-types.enum.js +10 -10
  303. package/esm2015/domain/shopping/models/coupons/enums/exclusivities.enum.js +10 -10
  304. package/esm2015/domain/shopping/models/coupons/enums/index.js +4 -4
  305. package/esm2015/domain/shopping/models/coupons/index.js +3 -3
  306. package/esm2015/domain/shopping/models/enums/checkout-types.enum.js +7 -7
  307. package/esm2015/domain/shopping/models/enums/index.js +3 -3
  308. package/esm2015/domain/shopping/models/enums/order-status.enum.js +12 -12
  309. package/esm2015/domain/shopping/models/index.js +13 -13
  310. package/esm2015/domain/shopping/models/line-item.js +4 -4
  311. package/esm2015/domain/shopping/models/order.js +11 -11
  312. package/esm2015/domain/shopping/models/payment.js +169 -169
  313. package/esm2015/domain/shopping/models/shipping-method.js +7 -7
  314. package/esm2015/domain/shopping/models/subscription/checkout.js +28 -28
  315. package/esm2015/domain/shopping/models/subscription/index.js +3 -3
  316. package/esm2015/domain/shopping/models/subscription/plan.js +7 -7
  317. package/esm2015/domain/shopping/models/types/index.js +8 -8
  318. package/esm2015/domain/shopping/models/types/payment-address.type.js +2 -2
  319. package/esm2015/domain/shopping/models/types/payment-billing.type.js +2 -2
  320. package/esm2015/domain/shopping/models/types/payment-card.type.js +2 -2
  321. package/esm2015/domain/shopping/models/types/payment-customer.type.js +2 -2
  322. package/esm2015/domain/shopping/models/types/payment-document.type.js +2 -2
  323. package/esm2015/domain/shopping/models/types/payment-item.type.js +2 -2
  324. package/esm2015/domain/shopping/models/types/payment-shipping.type.js +2 -2
  325. package/esm2015/domain/shopping/repositories/buy-2-win.repository.js +2 -2
  326. package/esm2015/domain/shopping/repositories/campaign-dashboard.repository.js +2 -2
  327. package/esm2015/domain/shopping/repositories/campaign-hashtag.repository.js +2 -2
  328. package/esm2015/domain/shopping/repositories/checkout.repository.js +2 -2
  329. package/esm2015/domain/shopping/repositories/coupon.repository.js +2 -2
  330. package/esm2015/domain/shopping/repositories/index.js +10 -10
  331. package/esm2015/domain/shopping/repositories/legacy-order.repository.js +2 -2
  332. package/esm2015/domain/shopping/repositories/order.repository.js +2 -2
  333. package/esm2015/domain/shopping/repositories/payment.repository.js +2 -2
  334. package/esm2015/domain/shopping/repositories/subscription/checkout.repository.js +2 -2
  335. package/esm2015/domain/shopping/repositories/subscription/index.js +3 -3
  336. package/esm2015/domain/shopping/repositories/subscription/plan.repository.js +2 -2
  337. package/esm2015/domain/users/errors/index.js +4 -4
  338. package/esm2015/domain/users/errors/unauthorized.error.js +8 -8
  339. package/esm2015/domain/users/errors/user-already-registered.error.js +8 -8
  340. package/esm2015/domain/users/errors/weak-password.error.js +8 -8
  341. package/esm2015/domain/users/index.js +6 -6
  342. package/esm2015/domain/users/models/beauty-profile.js +12 -12
  343. package/esm2015/domain/users/models/enums/accessory-importances.enum.js +7 -7
  344. package/esm2015/domain/users/models/enums/area.enum.js +13 -13
  345. package/esm2015/domain/users/models/enums/beard-problems.enum.js +11 -11
  346. package/esm2015/domain/users/models/enums/beard-sizes.enum.js +9 -9
  347. package/esm2015/domain/users/models/enums/beauty-product-importances.enum.js +8 -8
  348. package/esm2015/domain/users/models/enums/body-problems.enum.js +13 -13
  349. package/esm2015/domain/users/models/enums/body-shapes.enum.js +9 -9
  350. package/esm2015/domain/users/models/enums/body-tattoos.enum.js +7 -7
  351. package/esm2015/domain/users/models/enums/face-skin-oilinesses.enum.js +9 -9
  352. package/esm2015/domain/users/models/enums/face-skin-problems.enum.js +12 -12
  353. package/esm2015/domain/users/models/enums/face-skin-tones.enum.js +10 -10
  354. package/esm2015/domain/users/models/enums/family-incomes.enum.js +10 -10
  355. package/esm2015/domain/users/models/enums/fragrance-importances.enum.js +7 -7
  356. package/esm2015/domain/users/models/enums/hair-colors.enum.js +12 -12
  357. package/esm2015/domain/users/models/enums/hair-problems.enum.js +12 -12
  358. package/esm2015/domain/users/models/enums/hair-strands.enum.js +10 -10
  359. package/esm2015/domain/users/models/enums/hair-types.enum.js +9 -9
  360. package/esm2015/domain/users/models/enums/index.js +21 -21
  361. package/esm2015/domain/users/models/enums/office-position.enum.js +8 -8
  362. package/esm2015/domain/users/models/enums/product-spents.enum.js +10 -10
  363. package/esm2015/domain/users/models/enums/user-type.enum.js +10 -10
  364. package/esm2015/domain/users/models/index.js +8 -8
  365. package/esm2015/domain/users/models/lead.js +7 -7
  366. package/esm2015/domain/users/models/subscription/edition.js +7 -7
  367. package/esm2015/domain/users/models/subscription/enums/billing-status.enum.js +5 -5
  368. package/esm2015/domain/users/models/subscription/enums/edition-status.enum.js +6 -6
  369. package/esm2015/domain/users/models/subscription/enums/index.js +5 -5
  370. package/esm2015/domain/users/models/subscription/enums/payment-type.enum.js +7 -7
  371. package/esm2015/domain/users/models/subscription/enums/status.enum.js +6 -6
  372. package/esm2015/domain/users/models/subscription/index.js +5 -5
  373. package/esm2015/domain/users/models/subscription/payment.js +14 -14
  374. package/esm2015/domain/users/models/subscription/subscription.js +43 -43
  375. package/esm2015/domain/users/models/user-address.js +7 -7
  376. package/esm2015/domain/users/models/user-payment-method.js +7 -7
  377. package/esm2015/domain/users/models/user.js +26 -26
  378. package/esm2015/domain/users/repositories/beauty-profile.repository.js +2 -2
  379. package/esm2015/domain/users/repositories/edition.repository.js +2 -2
  380. package/esm2015/domain/users/repositories/index.js +9 -9
  381. package/esm2015/domain/users/repositories/lead.repository.js +2 -2
  382. package/esm2015/domain/users/repositories/subscription-payment.repository.js +2 -2
  383. package/esm2015/domain/users/repositories/subscription.repository.js +2 -2
  384. package/esm2015/domain/users/repositories/user-address.repository.js +2 -2
  385. package/esm2015/domain/users/repositories/user-payment-method.repository.js +2 -2
  386. package/esm2015/domain/users/repositories/user.repository.js +2 -2
  387. package/esm2015/domain/users/services/authentication.service.js +2 -2
  388. package/esm2015/domain/users/services/index.js +4 -4
  389. package/esm2015/domain/users/services/register.service.js +2 -2
  390. package/esm2015/domain/users/services/types/basic-user-data.type.js +2 -2
  391. package/esm2015/domain/users/services/types/index.js +2 -2
  392. package/esm2015/domain/users/use-cases/authentication.js +40 -40
  393. package/esm2015/domain/users/use-cases/index.js +5 -5
  394. package/esm2015/domain/users/use-cases/recovery-password.js +12 -12
  395. package/esm2015/domain/users/use-cases/register.js +34 -34
  396. package/esm2015/domain/users/use-cases/signout.js +12 -12
  397. package/esm2015/errors/duplicated-results.error.js +8 -8
  398. package/esm2015/errors/index.js +5 -5
  399. package/esm2015/errors/invalid-argument.error.js +8 -8
  400. package/esm2015/errors/not-found.error.js +8 -8
  401. package/esm2015/errors/required-argument.error.js +9 -9
  402. package/esm2015/index.js +6 -6
  403. package/esm2015/infra/elasticsearch/adapters/axios.adapter.js +57 -57
  404. package/esm2015/infra/elasticsearch/adapters/elastic-search.adapter.js +62 -2
  405. package/esm2015/infra/elasticsearch/adapters/index.js +3 -3
  406. package/esm2015/infra/elasticsearch/index.js +4 -4
  407. package/esm2015/infra/elasticsearch/indexes/index.js +2 -2
  408. package/esm2015/infra/elasticsearch/indexes/products-index.js +146 -94
  409. package/esm2015/infra/elasticsearch/types/elastic-search-result.js +2 -2
  410. package/esm2015/infra/elasticsearch/types/index.js +2 -2
  411. package/esm2015/infra/firebase/auth/authentication-firebase-auth.service.js +52 -52
  412. package/esm2015/infra/firebase/auth/index.js +3 -3
  413. package/esm2015/infra/firebase/auth/register-firebase-auth.service.js +26 -26
  414. package/esm2015/infra/firebase/auth/types/firebase-user-with-id.type.js +2 -2
  415. package/esm2015/infra/firebase/firestore/enums/firestore-field-type.enum.js +10 -10
  416. package/esm2015/infra/firebase/firestore/enums/index.js +2 -2
  417. package/esm2015/infra/firebase/firestore/index.js +4 -4
  418. package/esm2015/infra/firebase/firestore/mixins/index.js +10 -10
  419. package/esm2015/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +31 -31
  420. package/esm2015/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +10 -10
  421. package/esm2015/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +18 -18
  422. package/esm2015/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +98 -98
  423. package/esm2015/infra/firebase/firestore/mixins/with-firestore.mixin.js +49 -49
  424. package/esm2015/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +24 -24
  425. package/esm2015/infra/firebase/firestore/mixins/with-helpers.mixin.js +17 -17
  426. package/esm2015/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +11 -11
  427. package/esm2015/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +45 -45
  428. package/esm2015/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +73 -73
  429. package/esm2015/infra/firebase/firestore/repositories/catalog/index.js +5 -5
  430. package/esm2015/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js +55 -55
  431. package/esm2015/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.js +14 -14
  432. package/esm2015/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.js +12 -12
  433. package/esm2015/infra/firebase/firestore/repositories/index.js +5 -5
  434. package/esm2015/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.js +56 -56
  435. package/esm2015/infra/firebase/firestore/repositories/shop-settings/index.js +4 -4
  436. package/esm2015/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.js +12 -12
  437. package/esm2015/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.js +12 -12
  438. package/esm2015/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.js +12 -12
  439. package/esm2015/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.js +12 -12
  440. package/esm2015/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.js +12 -12
  441. package/esm2015/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.js +12 -12
  442. package/esm2015/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.js +12 -12
  443. package/esm2015/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.js +29 -29
  444. package/esm2015/infra/firebase/firestore/repositories/shopping/index.js +11 -11
  445. package/esm2015/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.js +9 -9
  446. package/esm2015/infra/firebase/firestore/repositories/shopping/order-firestore.repository.js +40 -40
  447. package/esm2015/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.js +12 -12
  448. package/esm2015/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.js +12 -12
  449. package/esm2015/infra/firebase/firestore/repositories/users/index.js +9 -9
  450. package/esm2015/infra/firebase/firestore/repositories/users/lead-firestore.repository.js +12 -12
  451. package/esm2015/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.js +14 -14
  452. package/esm2015/infra/firebase/firestore/repositories/users/subscription-firestore.repository.js +12 -12
  453. package/esm2015/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.js +14 -14
  454. package/esm2015/infra/firebase/firestore/repositories/users/user-address-firestore.repository.js +14 -14
  455. package/esm2015/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.js +14 -14
  456. package/esm2015/infra/firebase/firestore/repositories/users/user-firestore.repository.js +68 -68
  457. package/esm2015/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.js +14 -14
  458. package/esm2015/infra/firebase/firestore/types/firestore-sub.repository.type.js +2 -2
  459. package/esm2015/infra/firebase/firestore/types/firestore.helpers.type.js +2 -2
  460. package/esm2015/infra/firebase/firestore/types/firestore.repository.type.js +2 -2
  461. package/esm2015/infra/firebase/firestore/types/index.js +4 -4
  462. package/esm2015/infra/firebase/index.js +3 -3
  463. package/esm2015/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.js +13 -13
  464. package/esm2015/infra/hasura-graphql/enums/hasura-graphql-where.enum.js +15 -15
  465. package/esm2015/infra/hasura-graphql/enums/index.js +3 -3
  466. package/esm2015/infra/hasura-graphql/index.js +5 -5
  467. package/esm2015/infra/hasura-graphql/mixins/helpers/attribute-option.helper.js +31 -31
  468. package/esm2015/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.js +53 -53
  469. package/esm2015/infra/hasura-graphql/mixins/helpers/filter-option.helper.js +22 -22
  470. package/esm2015/infra/hasura-graphql/mixins/helpers/graphql-field.helper.js +86 -86
  471. package/esm2015/infra/hasura-graphql/mixins/helpers/index.js +5 -5
  472. package/esm2015/infra/hasura-graphql/mixins/index.js +8 -8
  473. package/esm2015/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.js +45 -45
  474. package/esm2015/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.js +10 -10
  475. package/esm2015/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.js +29 -29
  476. package/esm2015/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.js +50 -50
  477. package/esm2015/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.js +35 -35
  478. package/esm2015/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.js +94 -94
  479. package/esm2015/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.js +56 -56
  480. package/esm2015/infra/hasura-graphql/models/category-hasura-graphql.js +4 -4
  481. package/esm2015/infra/hasura-graphql/models/index.js +5 -5
  482. package/esm2015/infra/hasura-graphql/models/kit-product-hasura-graphql.js +15 -15
  483. package/esm2015/infra/hasura-graphql/models/product-hasura-graphql.js +11 -11
  484. package/esm2015/infra/hasura-graphql/models/variant-hasura-graphql.js +9 -9
  485. package/esm2015/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.js +24 -24
  486. package/esm2015/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js +322 -323
  487. package/esm2015/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.js +123 -123
  488. package/esm2015/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.js +21 -21
  489. package/esm2015/infra/hasura-graphql/repositories/catalog/index.js +7 -7
  490. package/esm2015/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js +481 -481
  491. package/esm2015/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.js +116 -116
  492. package/esm2015/infra/hasura-graphql/repositories/index.js +2 -2
  493. package/esm2015/infra/hasura-graphql/types/fields.type.js +2 -2
  494. package/esm2015/infra/hasura-graphql/types/graphql.repository.type.js +2 -2
  495. package/esm2015/infra/hasura-graphql/types/hasura-graphql-auth-options.type.js +2 -2
  496. package/esm2015/infra/hasura-graphql/types/hasura-graphql-fields.type.js +2 -2
  497. package/esm2015/infra/hasura-graphql/types/hasura-graphql-headers.type.js +2 -2
  498. package/esm2015/infra/hasura-graphql/types/index.js +9 -9
  499. package/esm2015/infra/hasura-graphql/types/nested-field.type.js +2 -2
  500. package/esm2015/infra/hasura-graphql/types/query-builder-options.type.js +2 -2
  501. package/esm2015/infra/hasura-graphql/types/variable-options.type.js +2 -2
  502. package/esm2015/infra/index.js +4 -4
  503. package/esm2015/infrab4a-connect.js +4 -4
  504. package/esm2015/utils/index.js +8 -8
  505. package/esm2015/utils/is-uuid.js +3 -3
  506. package/esm2015/utils/mixins/base.mixin.js +6 -6
  507. package/esm2015/utils/mixins/index.js +4 -4
  508. package/esm2015/utils/mixins/merge-constructor-params.type.js +2 -2
  509. package/esm2015/utils/mixins/mixin-ctor.type.js +2 -2
  510. package/esm2015/utils/parse-datetime.js +14 -14
  511. package/esm2015/utils/types/array-element.type.js +2 -2
  512. package/esm2015/utils/types/index.js +3 -3
  513. package/esm2015/utils/types/prop.type.js +2 -2
  514. package/fesm2015/infrab4a-connect.js +3604 -3493
  515. package/fesm2015/infrab4a-connect.js.map +1 -1
  516. package/index.d.ts +5 -5
  517. package/infra/elasticsearch/adapters/axios.adapter.d.ts +14 -14
  518. package/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +22 -7
  519. package/infra/elasticsearch/adapters/index.d.ts +2 -2
  520. package/infra/elasticsearch/index.d.ts +3 -3
  521. package/infra/elasticsearch/indexes/index.d.ts +1 -1
  522. package/infra/elasticsearch/indexes/products-index.d.ts +15 -15
  523. package/infra/elasticsearch/types/elastic-search-result.d.ts +7 -7
  524. package/infra/elasticsearch/types/index.d.ts +1 -1
  525. package/infra/firebase/auth/authentication-firebase-auth.service.d.ts +12 -12
  526. package/infra/firebase/auth/index.d.ts +2 -2
  527. package/infra/firebase/auth/register-firebase-auth.service.d.ts +8 -8
  528. package/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +3 -3
  529. package/infra/firebase/firestore/enums/firestore-field-type.enum.d.ts +8 -8
  530. package/infra/firebase/firestore/enums/index.d.ts +1 -1
  531. package/infra/firebase/firestore/index.d.ts +3 -3
  532. package/infra/firebase/firestore/mixins/index.d.ts +9 -9
  533. package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +4 -4
  534. package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +4 -4
  535. package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +4 -4
  536. package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +4 -4
  537. package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +4 -4
  538. package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +4 -4
  539. package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +11 -11
  540. package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +7 -7
  541. package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +7 -7
  542. package/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +18 -18
  543. package/infra/firebase/firestore/repositories/catalog/index.d.ts +4 -4
  544. package/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +12 -12
  545. package/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +13 -13
  546. package/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +8 -8
  547. package/infra/firebase/firestore/repositories/index.d.ts +4 -4
  548. package/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +16 -16
  549. package/infra/firebase/firestore/repositories/shop-settings/index.d.ts +3 -3
  550. package/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +8 -8
  551. package/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +8 -8
  552. package/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +8 -8
  553. package/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.d.ts +9 -9
  554. package/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.d.ts +9 -9
  555. package/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +8 -8
  556. package/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +8 -8
  557. package/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +12 -12
  558. package/infra/firebase/firestore/repositories/shopping/index.d.ts +10 -10
  559. package/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +7 -7
  560. package/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +13 -13
  561. package/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +8 -8
  562. package/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +8 -8
  563. package/infra/firebase/firestore/repositories/users/index.d.ts +8 -8
  564. package/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +8 -8
  565. package/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +13 -13
  566. package/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +8 -8
  567. package/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +13 -13
  568. package/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +13 -13
  569. package/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +13 -13
  570. package/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +17 -17
  571. package/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +13 -13
  572. package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +6 -6
  573. package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +8 -8
  574. package/infra/firebase/firestore/types/firestore.repository.type.d.ts +14 -14
  575. package/infra/firebase/firestore/types/index.d.ts +3 -3
  576. package/infra/firebase/index.d.ts +2 -2
  577. package/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.d.ts +11 -11
  578. package/infra/hasura-graphql/enums/hasura-graphql-where.enum.d.ts +13 -13
  579. package/infra/hasura-graphql/enums/index.d.ts +2 -2
  580. package/infra/hasura-graphql/index.d.ts +4 -4
  581. package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +13 -13
  582. package/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.d.ts +10 -10
  583. package/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +6 -6
  584. package/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +8 -8
  585. package/infra/hasura-graphql/mixins/helpers/index.d.ts +4 -4
  586. package/infra/hasura-graphql/mixins/index.d.ts +7 -7
  587. package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +8 -8
  588. package/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +11 -11
  589. package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +7 -7
  590. package/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +20 -20
  591. package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +24 -24
  592. package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +11 -11
  593. package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +14 -14
  594. package/infra/hasura-graphql/models/category-hasura-graphql.d.ts +6 -6
  595. package/infra/hasura-graphql/models/index.d.ts +4 -4
  596. package/infra/hasura-graphql/models/kit-product-hasura-graphql.d.ts +6 -6
  597. package/infra/hasura-graphql/models/product-hasura-graphql.d.ts +14 -14
  598. package/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +9 -9
  599. package/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.d.ts +11 -11
  600. package/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +31 -31
  601. package/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.d.ts +18 -18
  602. package/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.d.ts +10 -10
  603. package/infra/hasura-graphql/repositories/catalog/index.d.ts +6 -6
  604. package/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +29 -29
  605. package/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +14 -14
  606. package/infra/hasura-graphql/repositories/index.d.ts +1 -1
  607. package/infra/hasura-graphql/types/fields.type.d.ts +2 -2
  608. package/infra/hasura-graphql/types/graphql.repository.type.d.ts +21 -21
  609. package/infra/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +8 -8
  610. package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +40 -40
  611. package/infra/hasura-graphql/types/hasura-graphql-headers.type.d.ts +7 -7
  612. package/infra/hasura-graphql/types/index.d.ts +8 -8
  613. package/infra/hasura-graphql/types/nested-field.type.d.ts +7 -7
  614. package/infra/hasura-graphql/types/query-builder-options.type.d.ts +7 -7
  615. package/infra/hasura-graphql/types/variable-options.type.d.ts +9 -9
  616. package/infra/index.d.ts +3 -3
  617. package/infrab4a-connect.d.ts +5 -5
  618. package/package.json +2 -1
  619. package/utils/index.d.ts +7 -7
  620. package/utils/is-uuid.d.ts +1 -1
  621. package/utils/mixins/base.mixin.d.ts +3 -3
  622. package/utils/mixins/index.d.ts +3 -3
  623. package/utils/mixins/merge-constructor-params.type.d.ts +3 -3
  624. package/utils/mixins/mixin-ctor.type.d.ts +1 -1
  625. package/utils/parse-datetime.d.ts +1 -1
  626. package/utils/types/array-element.type.d.ts +1 -1
  627. package/utils/types/index.d.ts +2 -2
  628. package/utils/types/prop.type.d.ts +1 -1
@@ -1,50 +1,50 @@
1
- import { __awaiter } from "tslib";
2
- import { isNil } from '../../../utils';
3
- import { BindFilterQueryHelper } from './helpers';
4
- export const withFindHasuraGraphQL = (MixinBase) => {
5
- return class FindHasuraGraphQLMixin extends MixinBase {
6
- find(params) {
7
- var _a;
8
- return __awaiter(this, void 0, void 0, function* () {
9
- const { filters, limits, orderBy, options } = params || {};
10
- const enableCount = (_a = options === null || options === void 0 ? void 0 : options.enableCount) !== null && _a !== void 0 ? _a : true;
11
- const variablesCount = Object.assign(Object.assign({}, (isNil(orderBy) ? {} : { order_by: { type: `${this.tableName}_order_by!`, list: true, value: orderBy } })), (isNil(filters)
12
- ? {}
13
- : {
14
- where: {
15
- value: BindFilterQueryHelper.MakeGraphQLWhere(filters, this.fields),
16
- type: `${this.tableName}_bool_exp`,
17
- required: true,
18
- },
19
- }));
20
- const variables = Object.assign(Object.assign({}, (isNil(limits) ? {} : limits)), variablesCount);
21
- const result = yield this.query([
22
- {
23
- operation: this.tableName,
24
- fields: params.fields
25
- ? params.fields
26
- .map((fieldName) => {
27
- var _a;
28
- return (_a = this.fields.find((fieldOption) => fieldOption === fieldName)) !== null && _a !== void 0 ? _a : this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === fieldName);
29
- })
30
- .filter(Boolean)
31
- : this.fields,
32
- variables,
33
- },
34
- ...(enableCount
35
- ? [
36
- {
37
- operation: `${this.tableName}_aggregate`,
38
- fields: [{ aggregate: ['count'] }],
39
- variables: variablesCount,
40
- },
41
- ]
42
- : []),
43
- ]);
44
- const data = result[this.tableName].map((row) => this.convertDataFromHasura(row));
45
- return { data, count: enableCount ? result[`${this.tableName}_aggregate`].aggregate.count : Infinity };
46
- });
47
- }
48
- };
49
- };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maW5kLWhhc3VyYS1ncmFwaHFsLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL3dpdGgtZmluZC1oYXN1cmEtZ3JhcGhxbC5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLEtBQUssRUFBYSxNQUFNLGdCQUFnQixDQUFBO0FBR2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUVqRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUluQyxTQUEyRCxFQUMzRCxFQUFFO0lBQ0YsT0FBTyxNQUFNLHNCQUF1QixTQUFRLFNBQVM7UUFDN0MsSUFBSSxDQUFDLE1BQW9DOzs7Z0JBQzdDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFBO2dCQUMxRCxNQUFNLFdBQVcsR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXLG1DQUFJLElBQUksQ0FBQTtnQkFDaEQsTUFBTSxjQUFjLG1DQUNmLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FDekcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO29CQUNoQixDQUFDLENBQUMsRUFBRTtvQkFDSixDQUFDLENBQUM7d0JBQ0UsS0FBSyxFQUFFOzRCQUNMLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQzs0QkFDbkUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVzs0QkFDbEMsUUFBUSxFQUFFLElBQUk7eUJBQ2Y7cUJBQ0YsQ0FBQyxDQUNQLENBQUE7Z0JBQ0QsTUFBTSxTQUFTLG1DQUNWLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUM3QixjQUFjLENBQ2xCLENBQUE7Z0JBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUM5Qjt3QkFDRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7d0JBQ3pCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTs0QkFDbkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNO2lDQUNWLEdBQUcsQ0FDRixDQUFDLFNBQVMsRUFBRSxFQUFFOztnQ0FDWixPQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUMsbUNBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFBOzZCQUFBLENBQ3BGO2lDQUNBLE1BQU0sQ0FBQyxPQUFPLENBQUM7NEJBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTTt3QkFDZixTQUFTO3FCQUNWO29CQUNELEdBQUcsQ0FBQyxXQUFXO3dCQUNiLENBQUMsQ0FBQzs0QkFDRTtnQ0FDRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZO2dDQUN4QyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0NBQ2xDLFNBQVMsRUFBRSxjQUFjOzZCQUNGO3lCQUMxQjt3QkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUNSLENBQUMsQ0FBQTtnQkFDRixNQUFNLElBQUksR0FBWSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7Z0JBRTFGLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7O1NBQ3ZHO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbmRSZXBvc2l0b3J5LCBGaW5kUmVwb3NpdG9yeVBhcmFtcywgTW9kZWxCYXNlU3RydWN0dXJlLCBSZXBvc2l0b3J5RmluZFJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IGlzTmlsLCBNaXhpbkN0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscydcbmltcG9ydCB7IEdyYXBoUUxQYXJhbXMsIEdyYXBoUUxSZXBvc2l0b3J5IH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IEJpbmRGaWx0ZXJRdWVyeUhlbHBlciB9IGZyb20gJy4vaGVscGVycydcblxuZXhwb3J0IGNvbnN0IHdpdGhGaW5kSGFzdXJhR3JhcGhRTCA9IDxcbiAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+Pixcbj4oXG4gIE1peGluQmFzZTogTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPj4gJiBUTWl4aW5CYXNlLFxuKSA9PiB7XG4gIHJldHVybiBjbGFzcyBGaW5kSGFzdXJhR3JhcGhRTE1peGluIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgRmluZFJlcG9zaXRvcnk8TUJhc2U+IHtcbiAgICBhc3luYyBmaW5kKHBhcmFtcz86IEZpbmRSZXBvc2l0b3J5UGFyYW1zPE1CYXNlPik6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8TUJhc2U+PiB7XG4gICAgICBjb25zdCB7IGZpbHRlcnMsIGxpbWl0cywgb3JkZXJCeSwgb3B0aW9ucyB9ID0gcGFyYW1zIHx8IHt9XG4gICAgICBjb25zdCBlbmFibGVDb3VudCA9IG9wdGlvbnM/LmVuYWJsZUNvdW50ID8/IHRydWVcbiAgICAgIGNvbnN0IHZhcmlhYmxlc0NvdW50ID0ge1xuICAgICAgICAuLi4oaXNOaWwob3JkZXJCeSkgPyB7fSA6IHsgb3JkZXJfYnk6IHsgdHlwZTogYCR7dGhpcy50YWJsZU5hbWV9X29yZGVyX2J5IWAsIGxpc3Q6IHRydWUsIHZhbHVlOiBvcmRlckJ5IH0gfSksXG4gICAgICAgIC4uLihpc05pbChmaWx0ZXJzKVxuICAgICAgICAgID8ge31cbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogQmluZEZpbHRlclF1ZXJ5SGVscGVyLk1ha2VHcmFwaFFMV2hlcmUoZmlsdGVycywgdGhpcy5maWVsZHMpLFxuICAgICAgICAgICAgICAgIHR5cGU6IGAke3RoaXMudGFibGVOYW1lfV9ib29sX2V4cGAsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHtcbiAgICAgICAgLi4uKGlzTmlsKGxpbWl0cykgPyB7fSA6IGxpbWl0cyksXG4gICAgICAgIC4uLnZhcmlhYmxlc0NvdW50LFxuICAgICAgfVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5xdWVyeShbXG4gICAgICAgIHtcbiAgICAgICAgICBvcGVyYXRpb246IHRoaXMudGFibGVOYW1lLFxuICAgICAgICAgIGZpZWxkczogcGFyYW1zLmZpZWxkc1xuICAgICAgICAgICAgPyBwYXJhbXMuZmllbGRzXG4gICAgICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgICAgIChmaWVsZE5hbWUpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkT3B0aW9uKSA9PiBmaWVsZE9wdGlvbiA9PT0gZmllbGROYW1lKSA/P1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkcy5maW5kKChmaWVsZE9wdGlvbikgPT4gT2JqZWN0LmtleXMoZmllbGRPcHRpb24pLnNoaWZ0KCkgPT09IGZpZWxkTmFtZSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgIDogdGhpcy5maWVsZHMsXG4gICAgICAgICAgdmFyaWFibGVzLFxuICAgICAgICB9LFxuICAgICAgICAuLi4oZW5hYmxlQ291bnRcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogYCR7dGhpcy50YWJsZU5hbWV9X2FnZ3JlZ2F0ZWAsXG4gICAgICAgICAgICAgICAgZmllbGRzOiBbeyBhZ2dyZWdhdGU6IFsnY291bnQnXSB9XSxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlc0NvdW50LFxuICAgICAgICAgICAgICB9IGFzIEdyYXBoUUxQYXJhbXM8TUJhc2U+LFxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogW10pLFxuICAgICAgXSlcbiAgICAgIGNvbnN0IGRhdGE6IE1CYXNlW10gPSByZXN1bHRbdGhpcy50YWJsZU5hbWVdLm1hcCgocm93KSA9PiB0aGlzLmNvbnZlcnREYXRhRnJvbUhhc3VyYShyb3cpKVxuXG4gICAgICByZXR1cm4geyBkYXRhLCBjb3VudDogZW5hYmxlQ291bnQgPyByZXN1bHRbYCR7dGhpcy50YWJsZU5hbWV9X2FnZ3JlZ2F0ZWBdLmFnZ3JlZ2F0ZS5jb3VudCA6IEluZmluaXR5IH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
1
+ import { __awaiter } from "tslib";
2
+ import { isNil } from '../../../utils';
3
+ import { BindFilterQueryHelper } from './helpers';
4
+ export const withFindHasuraGraphQL = (MixinBase) => {
5
+ return class FindHasuraGraphQLMixin extends MixinBase {
6
+ find(params) {
7
+ var _a;
8
+ return __awaiter(this, void 0, void 0, function* () {
9
+ const { filters, limits, orderBy, options } = params || {};
10
+ const enableCount = (_a = options === null || options === void 0 ? void 0 : options.enableCount) !== null && _a !== void 0 ? _a : true;
11
+ const variablesCount = Object.assign(Object.assign({}, (isNil(orderBy) ? {} : { order_by: { type: `${this.tableName}_order_by!`, list: true, value: orderBy } })), (isNil(filters)
12
+ ? {}
13
+ : {
14
+ where: {
15
+ value: BindFilterQueryHelper.MakeGraphQLWhere(filters, this.fields),
16
+ type: `${this.tableName}_bool_exp`,
17
+ required: true,
18
+ },
19
+ }));
20
+ const variables = Object.assign(Object.assign({}, (isNil(limits) ? {} : limits)), variablesCount);
21
+ const result = yield this.query([
22
+ {
23
+ operation: this.tableName,
24
+ fields: params.fields
25
+ ? params.fields
26
+ .map((fieldName) => {
27
+ var _a;
28
+ return (_a = this.fields.find((fieldOption) => fieldOption === fieldName)) !== null && _a !== void 0 ? _a : this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === fieldName);
29
+ })
30
+ .filter(Boolean)
31
+ : this.fields,
32
+ variables,
33
+ },
34
+ ...(enableCount
35
+ ? [
36
+ {
37
+ operation: `${this.tableName}_aggregate`,
38
+ fields: [{ aggregate: ['count'] }],
39
+ variables: variablesCount,
40
+ },
41
+ ]
42
+ : []),
43
+ ]);
44
+ const data = result[this.tableName].map((row) => this.convertDataFromHasura(row));
45
+ return { data, count: enableCount ? result[`${this.tableName}_aggregate`].aggregate.count : Infinity };
46
+ });
47
+ }
48
+ };
49
+ };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maW5kLWhhc3VyYS1ncmFwaHFsLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL3dpdGgtZmluZC1oYXN1cmEtZ3JhcGhxbC5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLEtBQUssRUFBYSxNQUFNLGdCQUFnQixDQUFBO0FBR2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUVqRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUluQyxTQUEyRCxFQUMzRCxFQUFFO0lBQ0YsT0FBTyxNQUFNLHNCQUF1QixTQUFRLFNBQVM7UUFDN0MsSUFBSSxDQUFDLE1BQW9DOzs7Z0JBQzdDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFBO2dCQUMxRCxNQUFNLFdBQVcsR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXLG1DQUFJLElBQUksQ0FBQTtnQkFDaEQsTUFBTSxjQUFjLG1DQUNmLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FDekcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO29CQUNoQixDQUFDLENBQUMsRUFBRTtvQkFDSixDQUFDLENBQUM7d0JBQ0UsS0FBSyxFQUFFOzRCQUNMLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQzs0QkFDbkUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVzs0QkFDbEMsUUFBUSxFQUFFLElBQUk7eUJBQ2Y7cUJBQ0YsQ0FBQyxDQUNQLENBQUE7Z0JBQ0QsTUFBTSxTQUFTLG1DQUNWLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUM3QixjQUFjLENBQ2xCLENBQUE7Z0JBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUM5Qjt3QkFDRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7d0JBQ3pCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTs0QkFDbkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNO2lDQUNWLEdBQUcsQ0FDRixDQUFDLFNBQVMsRUFBRSxFQUFFOztnQ0FDWixPQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUMsbUNBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFBOzZCQUFBLENBQ3BGO2lDQUNBLE1BQU0sQ0FBQyxPQUFPLENBQUM7NEJBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTTt3QkFDZixTQUFTO3FCQUNWO29CQUNELEdBQUcsQ0FBQyxXQUFXO3dCQUNiLENBQUMsQ0FBQzs0QkFDRTtnQ0FDRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZO2dDQUN4QyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0NBQ2xDLFNBQVMsRUFBRSxjQUFjOzZCQUNGO3lCQUMxQjt3QkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUNSLENBQUMsQ0FBQTtnQkFDRixNQUFNLElBQUksR0FBWSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7Z0JBRTFGLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7O1NBQ3ZHO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbmRSZXBvc2l0b3J5LCBGaW5kUmVwb3NpdG9yeVBhcmFtcywgTW9kZWxCYXNlU3RydWN0dXJlLCBSZXBvc2l0b3J5RmluZFJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgaXNOaWwsIE1peGluQ3RvciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQgeyBHcmFwaFFMUGFyYW1zLCBHcmFwaFFMUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xyXG5cclxuaW1wb3J0IHsgQmluZEZpbHRlclF1ZXJ5SGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzJ1xyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhGaW5kSGFzdXJhR3JhcGhRTCA9IDxcclxuICBNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSxcclxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPj4sXHJcbj4oXHJcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+PiAmIFRNaXhpbkJhc2UsXHJcbikgPT4ge1xyXG4gIHJldHVybiBjbGFzcyBGaW5kSGFzdXJhR3JhcGhRTE1peGluIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgRmluZFJlcG9zaXRvcnk8TUJhc2U+IHtcclxuICAgIGFzeW5jIGZpbmQocGFyYW1zPzogRmluZFJlcG9zaXRvcnlQYXJhbXM8TUJhc2U+KTogUHJvbWlzZTxSZXBvc2l0b3J5RmluZFJlc3VsdDxNQmFzZT4+IHtcclxuICAgICAgY29uc3QgeyBmaWx0ZXJzLCBsaW1pdHMsIG9yZGVyQnksIG9wdGlvbnMgfSA9IHBhcmFtcyB8fCB7fVxyXG4gICAgICBjb25zdCBlbmFibGVDb3VudCA9IG9wdGlvbnM/LmVuYWJsZUNvdW50ID8/IHRydWVcclxuICAgICAgY29uc3QgdmFyaWFibGVzQ291bnQgPSB7XHJcbiAgICAgICAgLi4uKGlzTmlsKG9yZGVyQnkpID8ge30gOiB7IG9yZGVyX2J5OiB7IHR5cGU6IGAke3RoaXMudGFibGVOYW1lfV9vcmRlcl9ieSFgLCBsaXN0OiB0cnVlLCB2YWx1ZTogb3JkZXJCeSB9IH0pLFxyXG4gICAgICAgIC4uLihpc05pbChmaWx0ZXJzKVxyXG4gICAgICAgICAgPyB7fVxyXG4gICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgd2hlcmU6IHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBCaW5kRmlsdGVyUXVlcnlIZWxwZXIuTWFrZUdyYXBoUUxXaGVyZShmaWx0ZXJzLCB0aGlzLmZpZWxkcyksXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBgJHt0aGlzLnRhYmxlTmFtZX1fYm9vbF9leHBgLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdmFyaWFibGVzID0ge1xyXG4gICAgICAgIC4uLihpc05pbChsaW1pdHMpID8ge30gOiBsaW1pdHMpLFxyXG4gICAgICAgIC4uLnZhcmlhYmxlc0NvdW50LFxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucXVlcnkoW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG9wZXJhdGlvbjogdGhpcy50YWJsZU5hbWUsXHJcbiAgICAgICAgICBmaWVsZHM6IHBhcmFtcy5maWVsZHNcclxuICAgICAgICAgICAgPyBwYXJhbXMuZmllbGRzXHJcbiAgICAgICAgICAgICAgICAubWFwKFxyXG4gICAgICAgICAgICAgICAgICAoZmllbGROYW1lKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkT3B0aW9uKSA9PiBmaWVsZE9wdGlvbiA9PT0gZmllbGROYW1lKSA/P1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkT3B0aW9uKSA9PiBPYmplY3Qua2V5cyhmaWVsZE9wdGlvbikuc2hpZnQoKSA9PT0gZmllbGROYW1lKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcclxuICAgICAgICAgICAgOiB0aGlzLmZpZWxkcyxcclxuICAgICAgICAgIHZhcmlhYmxlcyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLihlbmFibGVDb3VudFxyXG4gICAgICAgICAgPyBbXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBgJHt0aGlzLnRhYmxlTmFtZX1fYWdncmVnYXRlYCxcclxuICAgICAgICAgICAgICAgIGZpZWxkczogW3sgYWdncmVnYXRlOiBbJ2NvdW50J10gfV0sXHJcbiAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlc0NvdW50LFxyXG4gICAgICAgICAgICAgIH0gYXMgR3JhcGhRTFBhcmFtczxNQmFzZT4sXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIDogW10pLFxyXG4gICAgICBdKVxyXG4gICAgICBjb25zdCBkYXRhOiBNQmFzZVtdID0gcmVzdWx0W3RoaXMudGFibGVOYW1lXS5tYXAoKHJvdykgPT4gdGhpcy5jb252ZXJ0RGF0YUZyb21IYXN1cmEocm93KSlcclxuXHJcbiAgICAgIHJldHVybiB7IGRhdGEsIGNvdW50OiBlbmFibGVDb3VudCA/IHJlc3VsdFtgJHt0aGlzLnRhYmxlTmFtZX1fYWdncmVnYXRlYF0uYWdncmVnYXRlLmNvdW50IDogSW5maW5pdHkgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,35 +1,35 @@
1
- import { __awaiter } from "tslib";
2
- import { NotFoundError } from '../../../errors';
3
- import { isNil } from '../../../utils';
4
- import { AttributeOptionHelper } from './helpers';
5
- export const withGetHasuraGraphQL = (MixinBase) => {
6
- return class GetHasuraGraphQLMixin extends MixinBase {
7
- constructor(...params) {
8
- const options = params === null || params === void 0 ? void 0 : params[0];
9
- super(...params);
10
- this.getGraphQLOperation = (options === null || options === void 0 ? void 0 : options.getGraphQLOperation) || `${this.tableName}_by_pk`;
11
- }
12
- get(identifiers) {
13
- return __awaiter(this, void 0, void 0, function* () {
14
- const instance = this.model.toInstance(identifiers);
15
- const result = yield this.query(this.getGraphQLOperation, this.fields, this.model.identifiersFields.reduce((ids, identifier) => {
16
- var _a;
17
- if (isNil(instance[identifier]))
18
- return ids;
19
- const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
20
- const value = ((_a = columnOption === null || columnOption === void 0 ? void 0 : columnOption.to) === null || _a === void 0 ? void 0 : _a.call(columnOption, identifiers[identifier.toString()], instance)) || identifiers[identifier.toString()];
21
- return Object.assign(Object.assign({}, ids), { [columnOption.columnName]: {
22
- type: this.getAttributeGraphQLTypeOf(columnOption.type || value),
23
- value,
24
- required: true,
25
- } });
26
- }, {}));
27
- const data = result[this.getGraphQLOperation];
28
- if (isNil(data))
29
- throw new NotFoundError(`${instance.constructor.name} not found`);
30
- return this.convertDataFromHasura(result[this.getGraphQLOperation]);
31
- });
32
- }
33
- };
34
- };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFhLE1BQU0sZ0JBQWdCLENBQUE7QUFHakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBTWpELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBSWxDLFNBQTJELEVBQzNELEVBQUU7SUFDRixPQUFPLE1BQU0scUJBQXNCLFNBQVEsU0FBUztRQUdsRCxZQUFZLEdBQUcsTUFBTTtZQUNuQixNQUFNLE9BQU8sR0FBeUIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFHLENBQUMsQ0FBQyxDQUFBO1lBRWpELEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFBO1lBRWhCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxtQkFBbUIsS0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsQ0FBQTtRQUN0RixDQUFDO1FBRUssR0FBRyxDQUFDLFdBQXVDOztnQkFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUE7Z0JBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FDN0IsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFOztvQkFDdEQsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUFFLE9BQU8sR0FBRyxDQUFBO29CQUUzQyxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtvQkFDbkYsTUFBTSxLQUFLLEdBQ1QsQ0FBQSxNQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxFQUFFLCtDQUFoQixZQUFZLEVBQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtvQkFFeEcsdUNBQ0ssR0FBRyxLQUNOLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFOzRCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDOzRCQUNoRSxLQUFLOzRCQUNMLFFBQVEsRUFBRSxJQUFJO3lCQUNmLElBQ0Y7Z0JBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNQLENBQUE7Z0JBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO2dCQUU3QyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQTtnQkFFbEYsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUE7WUFDckUsQ0FBQztTQUFBO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldFJlcG9zaXRvcnksIEdldFJlcG9zaXRvcnlQYXJhbXMsIE1vZGVsQmFzZVN0cnVjdHVyZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IE5vdEZvdW5kRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBpc05pbCwgTWl4aW5DdG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBHcmFwaFFMUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBBdHRyaWJ1dGVPcHRpb25IZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMnXG5cbmV4cG9ydCB0eXBlIEdldENvbnN0cnVjdG9yUGFyYW1zID0ge1xuICBnZXRHcmFwaFFMT3BlcmF0aW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCB3aXRoR2V0SGFzdXJhR3JhcGhRTCA9IDxcbiAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+Pixcbj4oXG4gIE1peGluQmFzZTogTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPj4gJiBUTWl4aW5CYXNlLFxuKSA9PiB7XG4gIHJldHVybiBjbGFzcyBHZXRIYXN1cmFHcmFwaFFMTWl4aW4gZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBHZXRSZXBvc2l0b3J5PE1CYXNlPiB7XG4gICAgZ2V0R3JhcGhRTE9wZXJhdGlvbjogc3RyaW5nXG5cbiAgICBjb25zdHJ1Y3RvciguLi5wYXJhbXMpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IEdldENvbnN0cnVjdG9yUGFyYW1zID0gcGFyYW1zPy5bMF1cblxuICAgICAgc3VwZXIoLi4ucGFyYW1zKVxuXG4gICAgICB0aGlzLmdldEdyYXBoUUxPcGVyYXRpb24gPSBvcHRpb25zPy5nZXRHcmFwaFFMT3BlcmF0aW9uIHx8IGAke3RoaXMudGFibGVOYW1lfV9ieV9wa2BcbiAgICB9XG5cbiAgICBhc3luYyBnZXQoaWRlbnRpZmllcnM6IEdldFJlcG9zaXRvcnlQYXJhbXM8TUJhc2U+KTogUHJvbWlzZTxNQmFzZT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLm1vZGVsLnRvSW5zdGFuY2UoaWRlbnRpZmllcnMpXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnF1ZXJ5KFxuICAgICAgICB0aGlzLmdldEdyYXBoUUxPcGVyYXRpb24sXG4gICAgICAgIHRoaXMuZmllbGRzLFxuICAgICAgICB0aGlzLm1vZGVsLmlkZW50aWZpZXJzRmllbGRzLnJlZHVjZSgoaWRzLCBpZGVudGlmaWVyKSA9PiB7XG4gICAgICAgICAgaWYgKGlzTmlsKGluc3RhbmNlW2lkZW50aWZpZXJdKSkgcmV0dXJuIGlkc1xuXG4gICAgICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShpZGVudGlmaWVyLCB0aGlzLmZpZWxkcylcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgICBjb2x1bW5PcHRpb24/LnRvPy4oaWRlbnRpZmllcnNbaWRlbnRpZmllci50b1N0cmluZygpXSwgaW5zdGFuY2UpIHx8IGlkZW50aWZpZXJzW2lkZW50aWZpZXIudG9TdHJpbmcoKV1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5pZHMsXG4gICAgICAgICAgICBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiB7XG4gICAgICAgICAgICAgIHR5cGU6IHRoaXMuZ2V0QXR0cmlidXRlR3JhcGhRTFR5cGVPZihjb2x1bW5PcHRpb24udHlwZSB8fCB2YWx1ZSksXG4gICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9LCB7fSksXG4gICAgICApXG4gICAgICBjb25zdCBkYXRhID0gcmVzdWx0W3RoaXMuZ2V0R3JhcGhRTE9wZXJhdGlvbl1cblxuICAgICAgaWYgKGlzTmlsKGRhdGEpKSB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgJHtpbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lfSBub3QgZm91bmRgKVxuXG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0RGF0YUZyb21IYXN1cmEocmVzdWx0W3RoaXMuZ2V0R3JhcGhRTE9wZXJhdGlvbl0pXG4gICAgfVxuICB9XG59XG4iXX0=
1
+ import { __awaiter } from "tslib";
2
+ import { NotFoundError } from '../../../errors';
3
+ import { isNil } from '../../../utils';
4
+ import { AttributeOptionHelper } from './helpers';
5
+ export const withGetHasuraGraphQL = (MixinBase) => {
6
+ return class GetHasuraGraphQLMixin extends MixinBase {
7
+ constructor(...params) {
8
+ const options = params === null || params === void 0 ? void 0 : params[0];
9
+ super(...params);
10
+ this.getGraphQLOperation = (options === null || options === void 0 ? void 0 : options.getGraphQLOperation) || `${this.tableName}_by_pk`;
11
+ }
12
+ get(identifiers) {
13
+ return __awaiter(this, void 0, void 0, function* () {
14
+ const instance = this.model.toInstance(identifiers);
15
+ const result = yield this.query(this.getGraphQLOperation, this.fields, this.model.identifiersFields.reduce((ids, identifier) => {
16
+ var _a;
17
+ if (isNil(instance[identifier]))
18
+ return ids;
19
+ const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
20
+ const value = ((_a = columnOption === null || columnOption === void 0 ? void 0 : columnOption.to) === null || _a === void 0 ? void 0 : _a.call(columnOption, identifiers[identifier.toString()], instance)) || identifiers[identifier.toString()];
21
+ return Object.assign(Object.assign({}, ids), { [columnOption.columnName]: {
22
+ type: this.getAttributeGraphQLTypeOf(columnOption.type || value),
23
+ value,
24
+ required: true,
25
+ } });
26
+ }, {}));
27
+ const data = result[this.getGraphQLOperation];
28
+ if (isNil(data))
29
+ throw new NotFoundError(`${instance.constructor.name} not found`);
30
+ return this.convertDataFromHasura(result[this.getGraphQLOperation]);
31
+ });
32
+ }
33
+ };
34
+ };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFhLE1BQU0sZ0JBQWdCLENBQUE7QUFHakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBTWpELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBSWxDLFNBQTJELEVBQzNELEVBQUU7SUFDRixPQUFPLE1BQU0scUJBQXNCLFNBQVEsU0FBUztRQUdsRCxZQUFZLEdBQUcsTUFBTTtZQUNuQixNQUFNLE9BQU8sR0FBeUIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFHLENBQUMsQ0FBQyxDQUFBO1lBRWpELEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFBO1lBRWhCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxtQkFBbUIsS0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsQ0FBQTtRQUN0RixDQUFDO1FBRUssR0FBRyxDQUFDLFdBQXVDOztnQkFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUE7Z0JBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FDN0IsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFOztvQkFDdEQsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUFFLE9BQU8sR0FBRyxDQUFBO29CQUUzQyxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtvQkFDbkYsTUFBTSxLQUFLLEdBQ1QsQ0FBQSxNQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxFQUFFLCtDQUFoQixZQUFZLEVBQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtvQkFFeEcsdUNBQ0ssR0FBRyxLQUNOLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFOzRCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDOzRCQUNoRSxLQUFLOzRCQUNMLFFBQVEsRUFBRSxJQUFJO3lCQUNmLElBQ0Y7Z0JBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNQLENBQUE7Z0JBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO2dCQUU3QyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQTtnQkFFbEYsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUE7WUFDckUsQ0FBQztTQUFBO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldFJlcG9zaXRvcnksIEdldFJlcG9zaXRvcnlQYXJhbXMsIE1vZGVsQmFzZVN0cnVjdHVyZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgTm90Rm91bmRFcnJvciB9IGZyb20gJy4uLy4uLy4uL2Vycm9ycydcclxuaW1wb3J0IHsgaXNOaWwsIE1peGluQ3RvciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQgeyBHcmFwaFFMUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xyXG5cclxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzJ1xyXG5cclxuZXhwb3J0IHR5cGUgR2V0Q29uc3RydWN0b3JQYXJhbXMgPSB7XHJcbiAgZ2V0R3JhcGhRTE9wZXJhdGlvbj86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aEdldEhhc3VyYUdyYXBoUUwgPSA8XHJcbiAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXHJcbiAgVE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4+LFxyXG4+KFxyXG4gIE1peGluQmFzZTogTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPj4gJiBUTWl4aW5CYXNlLFxyXG4pID0+IHtcclxuICByZXR1cm4gY2xhc3MgR2V0SGFzdXJhR3JhcGhRTE1peGluIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgR2V0UmVwb3NpdG9yeTxNQmFzZT4ge1xyXG4gICAgZ2V0R3JhcGhRTE9wZXJhdGlvbjogc3RyaW5nXHJcblxyXG4gICAgY29uc3RydWN0b3IoLi4ucGFyYW1zKSB7XHJcbiAgICAgIGNvbnN0IG9wdGlvbnM6IEdldENvbnN0cnVjdG9yUGFyYW1zID0gcGFyYW1zPy5bMF1cclxuXHJcbiAgICAgIHN1cGVyKC4uLnBhcmFtcylcclxuXHJcbiAgICAgIHRoaXMuZ2V0R3JhcGhRTE9wZXJhdGlvbiA9IG9wdGlvbnM/LmdldEdyYXBoUUxPcGVyYXRpb24gfHwgYCR7dGhpcy50YWJsZU5hbWV9X2J5X3BrYFxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldChpZGVudGlmaWVyczogR2V0UmVwb3NpdG9yeVBhcmFtczxNQmFzZT4pOiBQcm9taXNlPE1CYXNlPiB7XHJcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5tb2RlbC50b0luc3RhbmNlKGlkZW50aWZpZXJzKVxyXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnF1ZXJ5KFxyXG4gICAgICAgIHRoaXMuZ2V0R3JhcGhRTE9wZXJhdGlvbixcclxuICAgICAgICB0aGlzLmZpZWxkcyxcclxuICAgICAgICB0aGlzLm1vZGVsLmlkZW50aWZpZXJzRmllbGRzLnJlZHVjZSgoaWRzLCBpZGVudGlmaWVyKSA9PiB7XHJcbiAgICAgICAgICBpZiAoaXNOaWwoaW5zdGFuY2VbaWRlbnRpZmllcl0pKSByZXR1cm4gaWRzXHJcblxyXG4gICAgICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShpZGVudGlmaWVyLCB0aGlzLmZpZWxkcylcclxuICAgICAgICAgIGNvbnN0IHZhbHVlID1cclxuICAgICAgICAgICAgY29sdW1uT3B0aW9uPy50bz8uKGlkZW50aWZpZXJzW2lkZW50aWZpZXIudG9TdHJpbmcoKV0sIGluc3RhbmNlKSB8fCBpZGVudGlmaWVyc1tpZGVudGlmaWVyLnRvU3RyaW5nKCldXHJcblxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4uaWRzLFxyXG4gICAgICAgICAgICBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiB7XHJcbiAgICAgICAgICAgICAgdHlwZTogdGhpcy5nZXRBdHRyaWJ1dGVHcmFwaFFMVHlwZU9mKGNvbHVtbk9wdGlvbi50eXBlIHx8IHZhbHVlKSxcclxuICAgICAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7fSksXHJcbiAgICAgIClcclxuICAgICAgY29uc3QgZGF0YSA9IHJlc3VsdFt0aGlzLmdldEdyYXBoUUxPcGVyYXRpb25dXHJcblxyXG4gICAgICBpZiAoaXNOaWwoZGF0YSkpIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGAke2luc3RhbmNlLmNvbnN0cnVjdG9yLm5hbWV9IG5vdCBmb3VuZGApXHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0RGF0YUZyb21IYXN1cmEocmVzdWx0W3RoaXMuZ2V0R3JhcGhRTE9wZXJhdGlvbl0pXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,94 +1,94 @@
1
- import { __awaiter } from "tslib";
2
- import axios from 'axios';
3
- import { mutation, query } from 'gql-query-builder';
4
- import { isBoolean, isInteger, isNaN, isNil, isNumber, isString, isUUID, parseISO, } from '../../../utils';
5
- import { GraphQLFieldHelper } from './helpers';
6
- export const withHasuraGraphQL = (MixinBase) => {
7
- return class HasuraGraphQLMixin extends MixinBase {
8
- constructor(...params) {
9
- const options = params[0];
10
- super(...params);
11
- this.tableName = options.tableName;
12
- this.endpoint = options.endpoint;
13
- this.authOptions = options.authOptions;
14
- this.model = options.model;
15
- this.fields = options.fields || this.model.identifiersFields;
16
- }
17
- get headers() {
18
- return Object.assign(Object.assign(Object.assign({ 'Content-Type': 'application/json' }, (isNil(this.authOptions.authToken) ? {} : { Authorization: this.authOptions.authToken })), (isNil(this.authOptions.adminSecret) ? {} : { 'X-Hasura-Admin-Secret': this.authOptions.adminSecret })), (isNil(this.authOptions.authRole)
19
- ? {}
20
- : { 'X-Hasura-Role': this.authOptions.authRole.role, 'X-Hasura-User-Id': this.authOptions.authRole.userId }));
21
- }
22
- mutation(operation, fields, variables) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- const resultQuery = mutation({
25
- operation,
26
- variables,
27
- fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),
28
- });
29
- return this.fetch(resultQuery);
30
- });
31
- }
32
- query(operation, fields, variables) {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- const resultQuery = GraphQLFieldHelper.CheckIsGraphQLParams(operation)
35
- ? query(operation.map((option) => ({
36
- operation: option.operation,
37
- variables: option.variables,
38
- fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(option.fields),
39
- })))
40
- : query({
41
- operation,
42
- variables,
43
- fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),
44
- });
45
- return this.fetch(resultQuery);
46
- });
47
- }
48
- fetch(params) {
49
- return __awaiter(this, void 0, void 0, function* () {
50
- const headers = this.headers;
51
- const { data: result } = yield axios({
52
- url: `${this.endpoint}`,
53
- method: 'POST',
54
- data: params,
55
- headers,
56
- });
57
- if (!isNil(result.errors))
58
- throw new Error(JSON.stringify(result.errors));
59
- return result.data;
60
- });
61
- }
62
- getAttributeGraphQLTypeOf(value) {
63
- if (isUUID(value))
64
- return 'uuid';
65
- if (isString(value))
66
- return 'String';
67
- if (isBoolean(value))
68
- return 'Boolean';
69
- if (value instanceof Date)
70
- return 'timestamptz';
71
- if (isInteger(value))
72
- return 'Int';
73
- if (isNumber(value))
74
- return 'numeric';
75
- throw new Error('Type not implemented yet');
76
- }
77
- checkIfIsDateTimeAndParse(value) {
78
- if (!/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/.test(value))
79
- return value;
80
- const date = parseISO(value);
81
- if (isNaN(date.getTime()))
82
- return value;
83
- return date;
84
- }
85
- convertDataFromHasura(data) {
86
- const plain = GraphQLFieldHelper.ConvertFieldValueFrom(data, this.fields);
87
- return this.model.toInstance(plain);
88
- }
89
- convertDataToHasura(instance, update = false) {
90
- return GraphQLFieldHelper.ConvertFieldValueTo(instance, this.fields, update);
91
- }
92
- };
93
- };
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1oYXN1cmEtZ3JhcGhxbC5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL21peGlucy93aXRoLWhhc3VyYS1ncmFwaHFsLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUduRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUdOLFFBQVEsR0FDVCxNQUFNLGdCQUFnQixDQUFBO0FBVXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQVU5QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixTQUFZLEVBQ3FHLEVBQUU7SUFDbkgsT0FBTyxNQUFNLGtCQUFtQixTQUFRLFNBQVM7UUFrQi9DLFlBQVksR0FBRyxNQUFNO1lBQ25CLE1BQU0sT0FBTyxHQUE2QixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFFbkQsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUE7WUFFaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFBO1lBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQTtZQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUE7WUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFBO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFnRCxDQUFBO1FBQzlG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Q0FBQTtZQUNwQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxTQUFTLENBQUE7WUFDdEMsSUFBSSxLQUFLLFlBQVksSUFBSTtnQkFBRSxPQUFPLGFBQWEsQ0FBQTtZQUMvQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUE7WUFDbEMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sU0FBUyxDQUFBO1lBRXJDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtRQUM3QyxDQUFDO1FBRUQseUJBQXlCLENBQUMsS0FBYTtZQUNyQyxJQUFJLENBQUMsa0RBQWtELENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQTtZQUVqRixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7WUFFNUIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFBO1lBRXZDLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELHFCQUFxQixDQUFDLElBQXFDO1lBQ3pELE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7WUFFekUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyQyxDQUFDO1FBRUQsbUJBQW1CLENBQUMsUUFBZSxFQUFFLE1BQU0sR0FBRyxLQUFLO1lBQ2pELE9BQU8sa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDOUUsQ0FBQztLQUNGLENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnXG5pbXBvcnQgeyBtdXRhdGlvbiwgcXVlcnkgfSBmcm9tICdncWwtcXVlcnktYnVpbGRlcidcblxuaW1wb3J0IHsgQmFzZU1vZGVsQnVpbGRlciwgTW9kZWxCYXNlU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHtcbiAgaXNCb29sZWFuLFxuICBpc0ludGVnZXIsXG4gIGlzTmFOLFxuICBpc05pbCxcbiAgaXNOdW1iZXIsXG4gIGlzU3RyaW5nLFxuICBpc1VVSUQsXG4gIE1lcmdlQ29uc3RydWN0b3JQYXJhbXMsXG4gIE1peGluQ3RvcixcbiAgcGFyc2VJU08sXG59IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHtcbiAgR3JhcGhRTFBhcmFtcyxcbiAgR3JhcGhRTFJlcG9zaXRvcnksXG4gIEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucyxcbiAgSGFzdXJhR3JhcGhRTEZpZWxkcyxcbiAgSGFzdXJhR3JhcGhRTEhlYWRlcnMsXG4gIFZhcmlhYmxlT3B0aW9ucyxcbn0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IEdyYXBoUUxGaWVsZEhlbHBlciB9IGZyb20gJy4vaGVscGVycydcblxuZXhwb3J0IHR5cGUgQ29uc3RydWN0b3JQYXJhbXM8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+ID0ge1xuICB0YWJsZU5hbWU6IHN0cmluZ1xuICBtb2RlbDogQmFzZU1vZGVsQnVpbGRlcjxNb2RlbD5cbiAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPlxuICBlbmRwb2ludDogc3RyaW5nXG4gIGF1dGhPcHRpb25zOiBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnNcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhIYXN1cmFHcmFwaFFMID0gPE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLCBUIGV4dGVuZHMgTWl4aW5DdG9yID0gTWl4aW5DdG9yPihcbiAgTWl4aW5CYXNlOiBULFxuKTogTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPiwgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtczxDb25zdHJ1Y3RvclBhcmFtczxNQmFzZT4sIENvbnN0cnVjdG9yUGFyYW1ldGVyczxUPj4+ID0+IHtcbiAgcmV0dXJuIGNsYXNzIEhhc3VyYUdyYXBoUUxNaXhpbiBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPiB7XG4gICAgdGFibGVOYW1lOiBzdHJpbmdcbiAgICBlbmRwb2ludDogc3RyaW5nXG4gICAgYXV0aE9wdGlvbnM6IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9uc1xuICAgIG1vZGVsOiBCYXNlTW9kZWxCdWlsZGVyPE1CYXNlPlxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT5cblxuICAgIGdldCBoZWFkZXJzKCk6IEhhc3VyYUdyYXBoUUxIZWFkZXJzIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIC4uLihpc05pbCh0aGlzLmF1dGhPcHRpb25zLmF1dGhUb2tlbikgPyB7fSA6IHsgQXV0aG9yaXphdGlvbjogdGhpcy5hdXRoT3B0aW9ucy5hdXRoVG9rZW4gfSksXG4gICAgICAgIC4uLihpc05pbCh0aGlzLmF1dGhPcHRpb25zLmFkbWluU2VjcmV0KSA/IHt9IDogeyAnWC1IYXN1cmEtQWRtaW4tU2VjcmV0JzogdGhpcy5hdXRoT3B0aW9ucy5hZG1pblNlY3JldCB9KSxcbiAgICAgICAgLi4uKGlzTmlsKHRoaXMuYXV0aE9wdGlvbnMuYXV0aFJvbGUpXG4gICAgICAgICAgPyB7fVxuICAgICAgICAgIDogeyAnWC1IYXN1cmEtUm9sZSc6IHRoaXMuYXV0aE9wdGlvbnMuYXV0aFJvbGUucm9sZSwgJ1gtSGFzdXJhLVVzZXItSWQnOiB0aGlzLmF1dGhPcHRpb25zLmF1dGhSb2xlLnVzZXJJZCB9KSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvciguLi5wYXJhbXMpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IENvbnN0cnVjdG9yUGFyYW1zPE1CYXNlPiA9IHBhcmFtc1swXVxuXG4gICAgICBzdXBlciguLi5wYXJhbXMpXG5cbiAgICAgIHRoaXMudGFibGVOYW1lID0gb3B0aW9ucy50YWJsZU5hbWVcbiAgICAgIHRoaXMuZW5kcG9pbnQgPSBvcHRpb25zLmVuZHBvaW50XG4gICAgICB0aGlzLmF1dGhPcHRpb25zID0gb3B0aW9ucy5hdXRoT3B0aW9uc1xuICAgICAgdGhpcy5tb2RlbCA9IG9wdGlvbnMubW9kZWxcbiAgICAgIHRoaXMuZmllbGRzID0gb3B0aW9ucy5maWVsZHMgfHwgKHRoaXMubW9kZWwuaWRlbnRpZmllcnNGaWVsZHMgYXMgSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4pXG4gICAgfVxuXG4gICAgYXN5bmMgbXV0YXRpb248UmV0dXJuRmllbGRzID0gYW55PihcbiAgICAgIG9wZXJhdGlvbjogc3RyaW5nLFxuICAgICAgZmllbGRzPzogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXG4gICAgICB2YXJpYWJsZXM/OiBWYXJpYWJsZU9wdGlvbnMsXG4gICAgKTogUHJvbWlzZTxSZXR1cm5GaWVsZHM+IHtcbiAgICAgIGNvbnN0IHJlc3VsdFF1ZXJ5ID0gbXV0YXRpb24oe1xuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHZhcmlhYmxlcyxcbiAgICAgICAgZmllbGRzOiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzKGZpZWxkcyksXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4gdGhpcy5mZXRjaChyZXN1bHRRdWVyeSlcbiAgICB9XG5cbiAgICBhc3luYyBxdWVyeTxSZXR1cm5GaWVsZHMgPSBhbnk+KFxuICAgICAgb3BlcmF0aW9uOiBzdHJpbmcgfCBHcmFwaFFMUGFyYW1zPE1CYXNlPltdLFxuICAgICAgZmllbGRzPzogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXG4gICAgICB2YXJpYWJsZXM/OiBWYXJpYWJsZU9wdGlvbnMsXG4gICAgKTogUHJvbWlzZTxSZXR1cm5GaWVsZHM+IHtcbiAgICAgIGNvbnN0IHJlc3VsdFF1ZXJ5ID0gR3JhcGhRTEZpZWxkSGVscGVyLkNoZWNrSXNHcmFwaFFMUGFyYW1zKG9wZXJhdGlvbilcbiAgICAgICAgPyBxdWVyeShcbiAgICAgICAgICAgIG9wZXJhdGlvbi5tYXAoKG9wdGlvbikgPT4gKHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiBvcHRpb24ub3BlcmF0aW9uLFxuICAgICAgICAgICAgICB2YXJpYWJsZXM6IG9wdGlvbi52YXJpYWJsZXMsXG4gICAgICAgICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhvcHRpb24uZmllbGRzKSxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICApXG4gICAgICAgIDogcXVlcnkoe1xuICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgdmFyaWFibGVzLFxuICAgICAgICAgICAgZmllbGRzOiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzKGZpZWxkcyksXG4gICAgICAgICAgfSlcblxuICAgICAgcmV0dXJuIHRoaXMuZmV0Y2gocmVzdWx0UXVlcnkpXG4gICAgfVxuXG4gICAgYXN5bmMgZmV0Y2g8UmV0dXJuRmllbGRzID0gYW55PihwYXJhbXM6IHsgdmFyaWFibGVzOiBhbnk7IHF1ZXJ5OiBzdHJpbmcgfSk6IFByb21pc2U8UmV0dXJuRmllbGRzPiB7XG4gICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5oZWFkZXJzXG4gICAgICBjb25zdCB7IGRhdGE6IHJlc3VsdCB9ID0gYXdhaXQgYXhpb3Moe1xuICAgICAgICB1cmw6IGAke3RoaXMuZW5kcG9pbnR9YCxcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGRhdGE6IHBhcmFtcyxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pXG5cbiAgICAgIGlmICghaXNOaWwocmVzdWx0LmVycm9ycykpIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeShyZXN1bHQuZXJyb3JzKSlcblxuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhXG4gICAgfVxuXG4gICAgZ2V0QXR0cmlidXRlR3JhcGhRTFR5cGVPZjxGaWVsZFR5cGU+KHZhbHVlOiBGaWVsZFR5cGUpOiBzdHJpbmcge1xuICAgICAgaWYgKGlzVVVJRCh2YWx1ZSBhcyBhbnkpKSByZXR1cm4gJ3V1aWQnXG4gICAgICBpZiAoaXNTdHJpbmcodmFsdWUpKSByZXR1cm4gJ1N0cmluZydcbiAgICAgIGlmIChpc0Jvb2xlYW4odmFsdWUpKSByZXR1cm4gJ0Jvb2xlYW4nXG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gJ3RpbWVzdGFtcHR6J1xuICAgICAgaWYgKGlzSW50ZWdlcih2YWx1ZSkpIHJldHVybiAnSW50J1xuICAgICAgaWYgKGlzTnVtYmVyKHZhbHVlKSkgcmV0dXJuICdudW1lcmljJ1xuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1R5cGUgbm90IGltcGxlbWVudGVkIHlldCcpXG4gICAgfVxuXG4gICAgY2hlY2tJZklzRGF0ZVRpbWVBbmRQYXJzZSh2YWx1ZTogc3RyaW5nKTogRGF0ZSB8IHN0cmluZyB7XG4gICAgICBpZiAoIS9eXFxkezR9LSgwWzEtOV18MVswLTJdKS0oMFsxLTldfFsxMl1bMC05XXwzWzAxXSkkLy50ZXN0KHZhbHVlKSkgcmV0dXJuIHZhbHVlXG5cbiAgICAgIGNvbnN0IGRhdGUgPSBwYXJzZUlTTyh2YWx1ZSlcblxuICAgICAgaWYgKGlzTmFOKGRhdGUuZ2V0VGltZSgpKSkgcmV0dXJuIHZhbHVlXG5cbiAgICAgIHJldHVybiBkYXRlXG4gICAgfVxuXG4gICAgY29udmVydERhdGFGcm9tSGFzdXJhKGRhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4pOiBNQmFzZSB7XG4gICAgICBjb25zdCBwbGFpbiA9IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZUZyb20oZGF0YSwgdGhpcy5maWVsZHMpXG5cbiAgICAgIHJldHVybiB0aGlzLm1vZGVsLnRvSW5zdGFuY2UocGxhaW4pXG4gICAgfVxuXG4gICAgY29udmVydERhdGFUb0hhc3VyYShpbnN0YW5jZTogTUJhc2UsIHVwZGF0ZSA9IGZhbHNlKTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPiB7XG4gICAgICByZXR1cm4gR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRGaWVsZFZhbHVlVG8oaW5zdGFuY2UsIHRoaXMuZmllbGRzLCB1cGRhdGUpXG4gICAgfVxuICB9XG59XG4iXX0=
1
+ import { __awaiter } from "tslib";
2
+ import axios from 'axios';
3
+ import { mutation, query } from 'gql-query-builder';
4
+ import { isBoolean, isInteger, isNaN, isNil, isNumber, isString, isUUID, parseISO, } from '../../../utils';
5
+ import { GraphQLFieldHelper } from './helpers';
6
+ export const withHasuraGraphQL = (MixinBase) => {
7
+ return class HasuraGraphQLMixin extends MixinBase {
8
+ constructor(...params) {
9
+ const options = params[0];
10
+ super(...params);
11
+ this.tableName = options.tableName;
12
+ this.endpoint = options.endpoint;
13
+ this.authOptions = options.authOptions;
14
+ this.model = options.model;
15
+ this.fields = options.fields || this.model.identifiersFields;
16
+ }
17
+ get headers() {
18
+ return Object.assign(Object.assign(Object.assign({ 'Content-Type': 'application/json' }, (isNil(this.authOptions.authToken) ? {} : { Authorization: this.authOptions.authToken })), (isNil(this.authOptions.adminSecret) ? {} : { 'X-Hasura-Admin-Secret': this.authOptions.adminSecret })), (isNil(this.authOptions.authRole)
19
+ ? {}
20
+ : { 'X-Hasura-Role': this.authOptions.authRole.role, 'X-Hasura-User-Id': this.authOptions.authRole.userId }));
21
+ }
22
+ mutation(operation, fields, variables) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ const resultQuery = mutation({
25
+ operation,
26
+ variables,
27
+ fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),
28
+ });
29
+ return this.fetch(resultQuery);
30
+ });
31
+ }
32
+ query(operation, fields, variables) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const resultQuery = GraphQLFieldHelper.CheckIsGraphQLParams(operation)
35
+ ? query(operation.map((option) => ({
36
+ operation: option.operation,
37
+ variables: option.variables,
38
+ fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(option.fields),
39
+ })))
40
+ : query({
41
+ operation,
42
+ variables,
43
+ fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),
44
+ });
45
+ return this.fetch(resultQuery);
46
+ });
47
+ }
48
+ fetch(params) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ const headers = this.headers;
51
+ const { data: result } = yield axios({
52
+ url: `${this.endpoint}`,
53
+ method: 'POST',
54
+ data: params,
55
+ headers,
56
+ });
57
+ if (!isNil(result.errors))
58
+ throw new Error(JSON.stringify(result.errors));
59
+ return result.data;
60
+ });
61
+ }
62
+ getAttributeGraphQLTypeOf(value) {
63
+ if (isUUID(value))
64
+ return 'uuid';
65
+ if (isString(value))
66
+ return 'String';
67
+ if (isBoolean(value))
68
+ return 'Boolean';
69
+ if (value instanceof Date)
70
+ return 'timestamptz';
71
+ if (isInteger(value))
72
+ return 'Int';
73
+ if (isNumber(value))
74
+ return 'numeric';
75
+ throw new Error('Type not implemented yet');
76
+ }
77
+ checkIfIsDateTimeAndParse(value) {
78
+ if (!/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/.test(value))
79
+ return value;
80
+ const date = parseISO(value);
81
+ if (isNaN(date.getTime()))
82
+ return value;
83
+ return date;
84
+ }
85
+ convertDataFromHasura(data) {
86
+ const plain = GraphQLFieldHelper.ConvertFieldValueFrom(data, this.fields);
87
+ return this.model.toInstance(plain);
88
+ }
89
+ convertDataToHasura(instance, update = false) {
90
+ return GraphQLFieldHelper.ConvertFieldValueTo(instance, this.fields, update);
91
+ }
92
+ };
93
+ };
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1oYXN1cmEtZ3JhcGhxbC5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL21peGlucy93aXRoLWhhc3VyYS1ncmFwaHFsLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUduRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUdOLFFBQVEsR0FDVCxNQUFNLGdCQUFnQixDQUFBO0FBVXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQVU5QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixTQUFZLEVBQ3FHLEVBQUU7SUFDbkgsT0FBTyxNQUFNLGtCQUFtQixTQUFRLFNBQVM7UUFrQi9DLFlBQVksR0FBRyxNQUFNO1lBQ25CLE1BQU0sT0FBTyxHQUE2QixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFFbkQsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUE7WUFFaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFBO1lBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQTtZQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUE7WUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFBO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFnRCxDQUFBO1FBQzlG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Q0FBQTtZQUNwQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxTQUFTLENBQUE7WUFDdEMsSUFBSSxLQUFLLFlBQVksSUFBSTtnQkFBRSxPQUFPLGFBQWEsQ0FBQTtZQUMvQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUE7WUFDbEMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sU0FBUyxDQUFBO1lBRXJDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtRQUM3QyxDQUFDO1FBRUQseUJBQXlCLENBQUMsS0FBYTtZQUNyQyxJQUFJLENBQUMsa0RBQWtELENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQTtZQUVqRixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7WUFFNUIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFBO1lBRXZDLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELHFCQUFxQixDQUFDLElBQXFDO1lBQ3pELE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7WUFFekUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyQyxDQUFDO1FBRUQsbUJBQW1CLENBQUMsUUFBZSxFQUFFLE1BQU0sR0FBRyxLQUFLO1lBQ2pELE9BQU8sa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDOUUsQ0FBQztLQUNGLENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnXHJcbmltcG9ydCB7IG11dGF0aW9uLCBxdWVyeSB9IGZyb20gJ2dxbC1xdWVyeS1idWlsZGVyJ1xyXG5cclxuaW1wb3J0IHsgQmFzZU1vZGVsQnVpbGRlciwgTW9kZWxCYXNlU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQge1xyXG4gIGlzQm9vbGVhbixcclxuICBpc0ludGVnZXIsXHJcbiAgaXNOYU4sXHJcbiAgaXNOaWwsXHJcbiAgaXNOdW1iZXIsXHJcbiAgaXNTdHJpbmcsXHJcbiAgaXNVVUlELFxyXG4gIE1lcmdlQ29uc3RydWN0b3JQYXJhbXMsXHJcbiAgTWl4aW5DdG9yLFxyXG4gIHBhcnNlSVNPLFxyXG59IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQge1xyXG4gIEdyYXBoUUxQYXJhbXMsXHJcbiAgR3JhcGhRTFJlcG9zaXRvcnksXHJcbiAgSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zLFxyXG4gIEhhc3VyYUdyYXBoUUxGaWVsZHMsXHJcbiAgSGFzdXJhR3JhcGhRTEhlYWRlcnMsXHJcbiAgVmFyaWFibGVPcHRpb25zLFxyXG59IGZyb20gJy4uL3R5cGVzJ1xyXG5cclxuaW1wb3J0IHsgR3JhcGhRTEZpZWxkSGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzJ1xyXG5cclxuZXhwb3J0IHR5cGUgQ29uc3RydWN0b3JQYXJhbXM8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+ID0ge1xyXG4gIHRhYmxlTmFtZTogc3RyaW5nXHJcbiAgbW9kZWw6IEJhc2VNb2RlbEJ1aWxkZXI8TW9kZWw+XHJcbiAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPlxyXG4gIGVuZHBvaW50OiBzdHJpbmdcclxuICBhdXRoT3B0aW9uczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoSGFzdXJhR3JhcGhRTCA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSwgVCBleHRlbmRzIE1peGluQ3RvciA9IE1peGluQ3Rvcj4oXHJcbiAgTWl4aW5CYXNlOiBULFxyXG4pOiBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+LCBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zPENvbnN0cnVjdG9yUGFyYW1zPE1CYXNlPiwgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFQ+Pj4gPT4ge1xyXG4gIHJldHVybiBjbGFzcyBIYXN1cmFHcmFwaFFMTWl4aW4gZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4ge1xyXG4gICAgdGFibGVOYW1lOiBzdHJpbmdcclxuICAgIGVuZHBvaW50OiBzdHJpbmdcclxuICAgIGF1dGhPcHRpb25zOiBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnNcclxuICAgIG1vZGVsOiBCYXNlTW9kZWxCdWlsZGVyPE1CYXNlPlxyXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPlxyXG5cclxuICAgIGdldCBoZWFkZXJzKCk6IEhhc3VyYUdyYXBoUUxIZWFkZXJzIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgIC4uLihpc05pbCh0aGlzLmF1dGhPcHRpb25zLmF1dGhUb2tlbikgPyB7fSA6IHsgQXV0aG9yaXphdGlvbjogdGhpcy5hdXRoT3B0aW9ucy5hdXRoVG9rZW4gfSksXHJcbiAgICAgICAgLi4uKGlzTmlsKHRoaXMuYXV0aE9wdGlvbnMuYWRtaW5TZWNyZXQpID8ge30gOiB7ICdYLUhhc3VyYS1BZG1pbi1TZWNyZXQnOiB0aGlzLmF1dGhPcHRpb25zLmFkbWluU2VjcmV0IH0pLFxyXG4gICAgICAgIC4uLihpc05pbCh0aGlzLmF1dGhPcHRpb25zLmF1dGhSb2xlKVxyXG4gICAgICAgICAgPyB7fVxyXG4gICAgICAgICAgOiB7ICdYLUhhc3VyYS1Sb2xlJzogdGhpcy5hdXRoT3B0aW9ucy5hdXRoUm9sZS5yb2xlLCAnWC1IYXN1cmEtVXNlci1JZCc6IHRoaXMuYXV0aE9wdGlvbnMuYXV0aFJvbGUudXNlcklkIH0pLFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoLi4ucGFyYW1zKSB7XHJcbiAgICAgIGNvbnN0IG9wdGlvbnM6IENvbnN0cnVjdG9yUGFyYW1zPE1CYXNlPiA9IHBhcmFtc1swXVxyXG5cclxuICAgICAgc3VwZXIoLi4ucGFyYW1zKVxyXG5cclxuICAgICAgdGhpcy50YWJsZU5hbWUgPSBvcHRpb25zLnRhYmxlTmFtZVxyXG4gICAgICB0aGlzLmVuZHBvaW50ID0gb3B0aW9ucy5lbmRwb2ludFxyXG4gICAgICB0aGlzLmF1dGhPcHRpb25zID0gb3B0aW9ucy5hdXRoT3B0aW9uc1xyXG4gICAgICB0aGlzLm1vZGVsID0gb3B0aW9ucy5tb2RlbFxyXG4gICAgICB0aGlzLmZpZWxkcyA9IG9wdGlvbnMuZmllbGRzIHx8ICh0aGlzLm1vZGVsLmlkZW50aWZpZXJzRmllbGRzIGFzIEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+KVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG11dGF0aW9uPFJldHVybkZpZWxkcyA9IGFueT4oXHJcbiAgICAgIG9wZXJhdGlvbjogc3RyaW5nLFxyXG4gICAgICBmaWVsZHM/OiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcclxuICAgICAgdmFyaWFibGVzPzogVmFyaWFibGVPcHRpb25zLFxyXG4gICAgKTogUHJvbWlzZTxSZXR1cm5GaWVsZHM+IHtcclxuICAgICAgY29uc3QgcmVzdWx0UXVlcnkgPSBtdXRhdGlvbih7XHJcbiAgICAgICAgb3BlcmF0aW9uLFxyXG4gICAgICAgIHZhcmlhYmxlcyxcclxuICAgICAgICBmaWVsZHM6IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMoZmllbGRzKSxcclxuICAgICAgfSlcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmZldGNoKHJlc3VsdFF1ZXJ5KVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHF1ZXJ5PFJldHVybkZpZWxkcyA9IGFueT4oXHJcbiAgICAgIG9wZXJhdGlvbjogc3RyaW5nIHwgR3JhcGhRTFBhcmFtczxNQmFzZT5bXSxcclxuICAgICAgZmllbGRzPzogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXHJcbiAgICAgIHZhcmlhYmxlcz86IFZhcmlhYmxlT3B0aW9ucyxcclxuICAgICk6IFByb21pc2U8UmV0dXJuRmllbGRzPiB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdFF1ZXJ5ID0gR3JhcGhRTEZpZWxkSGVscGVyLkNoZWNrSXNHcmFwaFFMUGFyYW1zKG9wZXJhdGlvbilcclxuICAgICAgICA/IHF1ZXJ5KFxyXG4gICAgICAgICAgICBvcGVyYXRpb24ubWFwKChvcHRpb24pID0+ICh7XHJcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiBvcHRpb24ub3BlcmF0aW9uLFxyXG4gICAgICAgICAgICAgIHZhcmlhYmxlczogb3B0aW9uLnZhcmlhYmxlcyxcclxuICAgICAgICAgICAgICBmaWVsZHM6IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMob3B0aW9uLmZpZWxkcyksXHJcbiAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgIClcclxuICAgICAgICA6IHF1ZXJ5KHtcclxuICAgICAgICAgICAgb3BlcmF0aW9uLFxyXG4gICAgICAgICAgICB2YXJpYWJsZXMsXHJcbiAgICAgICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZHMpLFxyXG4gICAgICAgICAgfSlcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmZldGNoKHJlc3VsdFF1ZXJ5KVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGZldGNoPFJldHVybkZpZWxkcyA9IGFueT4ocGFyYW1zOiB7IHZhcmlhYmxlczogYW55OyBxdWVyeTogc3RyaW5nIH0pOiBQcm9taXNlPFJldHVybkZpZWxkcz4ge1xyXG4gICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5oZWFkZXJzXHJcbiAgICAgIGNvbnN0IHsgZGF0YTogcmVzdWx0IH0gPSBhd2FpdCBheGlvcyh7XHJcbiAgICAgICAgdXJsOiBgJHt0aGlzLmVuZHBvaW50fWAsXHJcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgICAgZGF0YTogcGFyYW1zLFxyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcblxyXG4gICAgICBpZiAoIWlzTmlsKHJlc3VsdC5lcnJvcnMpKSB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkocmVzdWx0LmVycm9ycykpXHJcblxyXG4gICAgICByZXR1cm4gcmVzdWx0LmRhdGFcclxuICAgIH1cclxuXHJcbiAgICBnZXRBdHRyaWJ1dGVHcmFwaFFMVHlwZU9mPEZpZWxkVHlwZT4odmFsdWU6IEZpZWxkVHlwZSk6IHN0cmluZyB7XHJcbiAgICAgIGlmIChpc1VVSUQodmFsdWUgYXMgYW55KSkgcmV0dXJuICd1dWlkJ1xyXG4gICAgICBpZiAoaXNTdHJpbmcodmFsdWUpKSByZXR1cm4gJ1N0cmluZydcclxuICAgICAgaWYgKGlzQm9vbGVhbih2YWx1ZSkpIHJldHVybiAnQm9vbGVhbidcclxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuICd0aW1lc3RhbXB0eidcclxuICAgICAgaWYgKGlzSW50ZWdlcih2YWx1ZSkpIHJldHVybiAnSW50J1xyXG4gICAgICBpZiAoaXNOdW1iZXIodmFsdWUpKSByZXR1cm4gJ251bWVyaWMnXHJcblxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1R5cGUgbm90IGltcGxlbWVudGVkIHlldCcpXHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tJZklzRGF0ZVRpbWVBbmRQYXJzZSh2YWx1ZTogc3RyaW5nKTogRGF0ZSB8IHN0cmluZyB7XHJcbiAgICAgIGlmICghL15cXGR7NH0tKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEyXVswLTldfDNbMDFdKSQvLnRlc3QodmFsdWUpKSByZXR1cm4gdmFsdWVcclxuXHJcbiAgICAgIGNvbnN0IGRhdGUgPSBwYXJzZUlTTyh2YWx1ZSlcclxuXHJcbiAgICAgIGlmIChpc05hTihkYXRlLmdldFRpbWUoKSkpIHJldHVybiB2YWx1ZVxyXG5cclxuICAgICAgcmV0dXJuIGRhdGVcclxuICAgIH1cclxuXHJcbiAgICBjb252ZXJ0RGF0YUZyb21IYXN1cmEoZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPik6IE1CYXNlIHtcclxuICAgICAgY29uc3QgcGxhaW4gPSBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydEZpZWxkVmFsdWVGcm9tKGRhdGEsIHRoaXMuZmllbGRzKVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXMubW9kZWwudG9JbnN0YW5jZShwbGFpbilcclxuICAgIH1cclxuXHJcbiAgICBjb252ZXJ0RGF0YVRvSGFzdXJhKGluc3RhbmNlOiBNQmFzZSwgdXBkYXRlID0gZmFsc2UpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+IHtcclxuICAgICAgcmV0dXJuIEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZVRvKGluc3RhbmNlLCB0aGlzLmZpZWxkcywgdXBkYXRlKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,56 +1,56 @@
1
- import { __awaiter } from "tslib";
2
- import { BaseModel, UpdateOptionActions, } from '../../../domain';
3
- import { isNil } from '../../../utils';
4
- import { AttributeOptionHelper } from './helpers';
5
- export const withUpdateHasuraGraphQL = (MixinBase) => {
6
- const getValueByAction = (options) => {
7
- if (options instanceof BaseModel)
8
- return options.toPlain();
9
- if (isNil(options === null || options === void 0 ? void 0 : options.action))
10
- return options;
11
- if ([UpdateOptionActions.REMOVE_FIELD.toString(), UpdateOptionActions.NULL.toString()].includes(options.action))
12
- return null;
13
- return options.value;
14
- };
15
- return class UpdateHasuraGraphQLMixin extends MixinBase {
16
- constructor(...params) {
17
- const options = params === null || params === void 0 ? void 0 : params[0];
18
- super(...params);
19
- this.updateGraphQLOperation = (options === null || options === void 0 ? void 0 : options.updateGraphQLOperation) || `update_${this.tableName}_by_pk`;
20
- this.updateGraphQLObjectType = (options === null || options === void 0 ? void 0 : options.updateGraphQLObjectType) || `${this.tableName}_set_input`;
21
- this.updateGraphQLPKType = (options === null || options === void 0 ? void 0 : options.updateGraphQLPKType) || `${this.tableName}_pk_columns_input`;
22
- }
23
- update(data) {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- const plainData = this.paramsToPlain(data);
26
- yield this.mutation(this.updateGraphQLOperation, this.model.identifiersFields.map((field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName), {
27
- _set: {
28
- type: this.updateGraphQLObjectType,
29
- value: this.convertDataToHasura(this.model.toInstance(plainData), true),
30
- required: true,
31
- },
32
- pk_columns: { type: this.updateGraphQLPKType, value: this.getUpdateModelKeys(plainData), required: true },
33
- });
34
- return this.model.toInstance(plainData);
35
- });
36
- }
37
- paramsToPlain(params) {
38
- const model = this.model;
39
- if (model.isModel(params))
40
- return params.toPlain();
41
- return Object.keys(params).reduce((data, currentKey) => (Object.assign(Object.assign({}, data), (params[currentKey] !== undefined && { [currentKey]: getValueByAction(params[currentKey]) }))), {});
42
- }
43
- getUpdateModelKeys(data) {
44
- const instance = this.model.toInstance(data);
45
- return this.model.identifiersFields.reduce((ids, identifier) => {
46
- var _a;
47
- if (isNil(instance[identifier]))
48
- return ids;
49
- const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
50
- const value = ((_a = columnOption === null || columnOption === void 0 ? void 0 : columnOption.to) === null || _a === void 0 ? void 0 : _a.call(columnOption, data[identifier.toString()], instance)) || data[columnOption.attributeName];
51
- return Object.assign(Object.assign({}, ids), { [columnOption.columnName]: value });
52
- }, {});
53
- }
54
- };
55
- };
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC11cGRhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC11cGRhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBSVQsbUJBQW1CLEdBR3BCLE1BQU0saUJBQWlCLENBQUE7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBcUMsTUFBTSxnQkFBZ0IsQ0FBQTtBQUd6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFZakQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FJckMsU0FBMkQsRUFJM0QsRUFBRTtJQUNGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUE2QixFQUFXLEVBQUU7UUFDbEUsSUFBSSxPQUFPLFlBQVksU0FBUztZQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzFELElBQUksS0FBSyxDQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLENBQUM7WUFBRSxPQUFPLE9BQU8sQ0FBQTtRQUMxQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQzdHLE9BQU8sSUFBSSxDQUFBO1FBRWIsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFBO0lBQ3RCLENBQUMsQ0FBQTtJQUVELE9BQU8sTUFBTSx3QkFBeUIsU0FBUSxTQUFTO1FBS3JELFlBQVksR0FBRyxNQUFNO1lBQ25CLE1BQU0sT0FBTyxHQUE0QixNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUcsQ0FB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QkFBWixZQUFZLENBQUUsRUFBRSwrQ0FBaEIsWUFBWSxFQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFBO2dCQUUzRyx1Q0FDSyxHQUFHLEtBQ04sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxJQUNqQztZQUNILENBQUMsRUFBRSxFQUErQyxDQUFDLENBQUE7UUFDckQsQ0FBQztLQUNLLENBQUE7QUFDVixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlTW9kZWwsXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllcyxcbiAgUmVwb3NpdG9yeVVwZGF0ZVBhcmFtcyxcbiAgVXBkYXRlT3B0aW9uQWN0aW9ucyxcbiAgVXBkYXRlT3B0aW9ucyxcbiAgVXBkYXRlUmVwb3NpdG9yeSxcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgaXNOaWwsIE1lcmdlQ29uc3RydWN0b3JQYXJhbXMsIE1peGluQ3RvciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgR3JhcGhRTFJlcG9zaXRvcnksIEhhc3VyYUdyYXBoUUxGaWVsZHMgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5leHBvcnQgdHlwZSBVcGRhdGVIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeVR5cGU8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+ID0gVXBkYXRlUmVwb3NpdG9yeTxNQmFzZT4gJiB7XG4gIHBhcmFtc1RvUGxhaW4ocGFyYW1zOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPE1CYXNlPik6IFBhcnRpYWw8TUJhc2U+XG59XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUNvbnN0cnVjdG9yUGFyYW1zID0ge1xuICB1cGRhdGVHcmFwaFFMT3BlcmF0aW9uPzogc3RyaW5nXG4gIHVwZGF0ZUdyYXBoUUxPYmplY3RUeXBlPzogc3RyaW5nXG4gIHVwZGF0ZUdyYXBoUUxQS1R5cGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhVcGRhdGVIYXN1cmFHcmFwaFFMID0gPFxuICBNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgVE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4+LFxuPihcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+PiAmIFRNaXhpbkJhc2UsXG4pOiBNaXhpbkN0b3I8XG4gIEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPiAmIFVwZGF0ZUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5VHlwZTxNQmFzZT4gJiBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4sXG4gIE1lcmdlQ29uc3RydWN0b3JQYXJhbXM8VXBkYXRlQ29uc3RydWN0b3JQYXJhbXMsIENvbnN0cnVjdG9yUGFyYW1ldGVyczxUTWl4aW5CYXNlPj5cbj4gPT4ge1xuICBjb25zdCBnZXRWYWx1ZUJ5QWN0aW9uID0gKG9wdGlvbnM6IFVwZGF0ZU9wdGlvbnM8TUJhc2U+KTogdW5rbm93biA9PiB7XG4gICAgaWYgKG9wdGlvbnMgaW5zdGFuY2VvZiBCYXNlTW9kZWwpIHJldHVybiBvcHRpb25zLnRvUGxhaW4oKVxuICAgIGlmIChpc05pbChvcHRpb25zPy5hY3Rpb24pKSByZXR1cm4gb3B0aW9uc1xuICAgIGlmIChbVXBkYXRlT3B0aW9uQWN0aW9ucy5SRU1PVkVfRklFTEQudG9TdHJpbmcoKSwgVXBkYXRlT3B0aW9uQWN0aW9ucy5OVUxMLnRvU3RyaW5nKCldLmluY2x1ZGVzKG9wdGlvbnMuYWN0aW9uKSlcbiAgICAgIHJldHVybiBudWxsXG5cbiAgICByZXR1cm4gb3B0aW9ucy52YWx1ZVxuICB9XG5cbiAgcmV0dXJuIGNsYXNzIFVwZGF0ZUhhc3VyYUdyYXBoUUxNaXhpbiBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIFVwZGF0ZVJlcG9zaXRvcnk8TUJhc2U+IHtcbiAgICB1cGRhdGVHcmFwaFFMT3BlcmF0aW9uOiBzdHJpbmdcbiAgICB1cGRhdGVHcmFwaFFMT2JqZWN0VHlwZTogc3RyaW5nXG4gICAgdXBkYXRlR3JhcGhRTFBLVHlwZTogc3RyaW5nXG5cbiAgICBjb25zdHJ1Y3RvciguLi5wYXJhbXMpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IFVwZGF0ZUNvbnN0cnVjdG9yUGFyYW1zID0gcGFyYW1zPy5bMF1cblxuICAgICAgc3VwZXIoLi4ucGFyYW1zKVxuXG4gICAgICB0aGlzLnVwZGF0ZUdyYXBoUUxPcGVyYXRpb24gPSBvcHRpb25zPy51cGRhdGVHcmFwaFFMT3BlcmF0aW9uIHx8IGB1cGRhdGVfJHt0aGlzLnRhYmxlTmFtZX1fYnlfcGtgXG4gICAgICB0aGlzLnVwZGF0ZUdyYXBoUUxPYmplY3RUeXBlID0gb3B0aW9ucz8udXBkYXRlR3JhcGhRTE9iamVjdFR5cGUgfHwgYCR7dGhpcy50YWJsZU5hbWV9X3NldF9pbnB1dGBcbiAgICAgIHRoaXMudXBkYXRlR3JhcGhRTFBLVHlwZSA9IG9wdGlvbnM/LnVwZGF0ZUdyYXBoUUxQS1R5cGUgfHwgYCR7dGhpcy50YWJsZU5hbWV9X3BrX2NvbHVtbnNfaW5wdXRgXG4gICAgfVxuXG4gICAgYXN5bmMgdXBkYXRlKGRhdGE6IFJlcG9zaXRvcnlVcGRhdGVQYXJhbXM8TUJhc2U+KTogUHJvbWlzZTxNQmFzZT4ge1xuICAgICAgY29uc3QgcGxhaW5EYXRhID0gdGhpcy5wYXJhbXNUb1BsYWluKGRhdGEpXG5cbiAgICAgIGF3YWl0IHRoaXMubXV0YXRpb24oXG4gICAgICAgIHRoaXMudXBkYXRlR3JhcGhRTE9wZXJhdGlvbixcbiAgICAgICAgdGhpcy5tb2RlbC5pZGVudGlmaWVyc0ZpZWxkcy5tYXAoXG4gICAgICAgICAgKGZpZWxkKSA9PiBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKGZpZWxkLCB0aGlzLmZpZWxkcykuY29sdW1uTmFtZSxcbiAgICAgICAgKSBhcyBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgICAgICAge1xuICAgICAgICAgIF9zZXQ6IHtcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudXBkYXRlR3JhcGhRTE9iamVjdFR5cGUsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5jb252ZXJ0RGF0YVRvSGFzdXJhKHRoaXMubW9kZWwudG9JbnN0YW5jZShwbGFpbkRhdGEpLCB0cnVlKSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGtfY29sdW1uczogeyB0eXBlOiB0aGlzLnVwZGF0ZUdyYXBoUUxQS1R5cGUsIHZhbHVlOiB0aGlzLmdldFVwZGF0ZU1vZGVsS2V5cyhwbGFpbkRhdGEpLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gdGhpcy5tb2RlbC50b0luc3RhbmNlKHBsYWluRGF0YSlcbiAgICB9XG5cbiAgICBwYXJhbXNUb1BsYWluKHBhcmFtczogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxNQmFzZT4pOiBQYXJ0aWFsPE1CYXNlPiB7XG4gICAgICBjb25zdCBtb2RlbCA9IHRoaXMubW9kZWxcblxuICAgICAgaWYgKG1vZGVsLmlzTW9kZWwocGFyYW1zKSkgcmV0dXJuIHBhcmFtcy50b1BsYWluKClcblxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHBhcmFtcykucmVkdWNlKFxuICAgICAgICAoZGF0YSwgY3VycmVudEtleSkgPT4gKHtcbiAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgIC4uLihwYXJhbXNbY3VycmVudEtleV0gIT09IHVuZGVmaW5lZCAmJiB7IFtjdXJyZW50S2V5XTogZ2V0VmFsdWVCeUFjdGlvbihwYXJhbXNbY3VycmVudEtleV0pIH0pLFxuICAgICAgICB9KSxcbiAgICAgICAge30sXG4gICAgICApXG4gICAgfVxuXG4gICAgZ2V0VXBkYXRlTW9kZWxLZXlzKGRhdGE6IFBhcnRpYWw8TUJhc2U+KTogTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllczxNQmFzZT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLm1vZGVsLnRvSW5zdGFuY2UoZGF0YSlcblxuICAgICAgcmV0dXJuIHRoaXMubW9kZWwuaWRlbnRpZmllcnNGaWVsZHMucmVkdWNlKChpZHMsIGlkZW50aWZpZXIpID0+IHtcbiAgICAgICAgaWYgKGlzTmlsKGluc3RhbmNlW2lkZW50aWZpZXJdKSkgcmV0dXJuIGlkc1xuXG4gICAgICAgIGNvbnN0IGNvbHVtbk9wdGlvbiA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoaWRlbnRpZmllciwgdGhpcy5maWVsZHMpXG4gICAgICAgIGNvbnN0IHZhbHVlID0gY29sdW1uT3B0aW9uPy50bz8uKGRhdGFbaWRlbnRpZmllci50b1N0cmluZygpXSwgaW5zdGFuY2UpIHx8IGRhdGFbY29sdW1uT3B0aW9uLmF0dHJpYnV0ZU5hbWVdXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5pZHMsXG4gICAgICAgICAgW2NvbHVtbk9wdGlvbi5jb2x1bW5OYW1lXTogdmFsdWUsXG4gICAgICAgIH1cbiAgICAgIH0sIHt9IGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnRpZXM8TUJhc2U+KVxuICAgIH1cbiAgfSBhcyBhbnlcbn1cbiJdfQ==
1
+ import { __awaiter } from "tslib";
2
+ import { BaseModel, UpdateOptionActions, } from '../../../domain';
3
+ import { isNil } from '../../../utils';
4
+ import { AttributeOptionHelper } from './helpers';
5
+ export const withUpdateHasuraGraphQL = (MixinBase) => {
6
+ const getValueByAction = (options) => {
7
+ if (options instanceof BaseModel)
8
+ return options.toPlain();
9
+ if (isNil(options === null || options === void 0 ? void 0 : options.action))
10
+ return options;
11
+ if ([UpdateOptionActions.REMOVE_FIELD.toString(), UpdateOptionActions.NULL.toString()].includes(options.action))
12
+ return null;
13
+ return options.value;
14
+ };
15
+ return class UpdateHasuraGraphQLMixin extends MixinBase {
16
+ constructor(...params) {
17
+ const options = params === null || params === void 0 ? void 0 : params[0];
18
+ super(...params);
19
+ this.updateGraphQLOperation = (options === null || options === void 0 ? void 0 : options.updateGraphQLOperation) || `update_${this.tableName}_by_pk`;
20
+ this.updateGraphQLObjectType = (options === null || options === void 0 ? void 0 : options.updateGraphQLObjectType) || `${this.tableName}_set_input`;
21
+ this.updateGraphQLPKType = (options === null || options === void 0 ? void 0 : options.updateGraphQLPKType) || `${this.tableName}_pk_columns_input`;
22
+ }
23
+ update(data) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const plainData = this.paramsToPlain(data);
26
+ yield this.mutation(this.updateGraphQLOperation, this.model.identifiersFields.map((field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName), {
27
+ _set: {
28
+ type: this.updateGraphQLObjectType,
29
+ value: this.convertDataToHasura(this.model.toInstance(plainData), true),
30
+ required: true,
31
+ },
32
+ pk_columns: { type: this.updateGraphQLPKType, value: this.getUpdateModelKeys(plainData), required: true },
33
+ });
34
+ return this.model.toInstance(plainData);
35
+ });
36
+ }
37
+ paramsToPlain(params) {
38
+ const model = this.model;
39
+ if (model.isModel(params))
40
+ return params.toPlain();
41
+ return Object.keys(params).reduce((data, currentKey) => (Object.assign(Object.assign({}, data), (params[currentKey] !== undefined && { [currentKey]: getValueByAction(params[currentKey]) }))), {});
42
+ }
43
+ getUpdateModelKeys(data) {
44
+ const instance = this.model.toInstance(data);
45
+ return this.model.identifiersFields.reduce((ids, identifier) => {
46
+ var _a;
47
+ if (isNil(instance[identifier]))
48
+ return ids;
49
+ const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
50
+ const value = ((_a = columnOption === null || columnOption === void 0 ? void 0 : columnOption.to) === null || _a === void 0 ? void 0 : _a.call(columnOption, data[identifier.toString()], instance)) || data[columnOption.attributeName];
51
+ return Object.assign(Object.assign({}, ids), { [columnOption.columnName]: value });
52
+ }, {});
53
+ }
54
+ };
55
+ };
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC11cGRhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC11cGRhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBSVQsbUJBQW1CLEdBR3BCLE1BQU0saUJBQWlCLENBQUE7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBcUMsTUFBTSxnQkFBZ0IsQ0FBQTtBQUd6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFZakQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FJckMsU0FBMkQsRUFJM0QsRUFBRTtJQUNGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUE2QixFQUFXLEVBQUU7UUFDbEUsSUFBSSxPQUFPLFlBQVksU0FBUztZQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzFELElBQUksS0FBSyxDQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLENBQUM7WUFBRSxPQUFPLE9BQU8sQ0FBQTtRQUMxQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQzdHLE9BQU8sSUFBSSxDQUFBO1FBRWIsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFBO0lBQ3RCLENBQUMsQ0FBQTtJQUVELE9BQU8sTUFBTSx3QkFBeUIsU0FBUSxTQUFTO1FBS3JELFlBQVksR0FBRyxNQUFNO1lBQ25CLE1BQU0sT0FBTyxHQUE0QixNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUcsQ0FB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QkFBWixZQUFZLENBQUUsRUFBRSwrQ0FBaEIsWUFBWSxFQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFBO2dCQUUzRyx1Q0FDSyxHQUFHLEtBQ04sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxJQUNqQztZQUNILENBQUMsRUFBRSxFQUErQyxDQUFDLENBQUE7UUFDckQsQ0FBQztLQUNLLENBQUE7QUFDVixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEJhc2VNb2RlbCxcclxuICBNb2RlbEJhc2VTdHJ1Y3R1cmUsXHJcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllcyxcclxuICBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zLFxyXG4gIFVwZGF0ZU9wdGlvbkFjdGlvbnMsXHJcbiAgVXBkYXRlT3B0aW9ucyxcclxuICBVcGRhdGVSZXBvc2l0b3J5LFxyXG59IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgaXNOaWwsIE1lcmdlQ29uc3RydWN0b3JQYXJhbXMsIE1peGluQ3RvciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xyXG5pbXBvcnQgeyBHcmFwaFFMUmVwb3NpdG9yeSwgSGFzdXJhR3JhcGhRTEZpZWxkcyB9IGZyb20gJy4uL3R5cGVzJ1xyXG5cclxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzJ1xyXG5cclxuZXhwb3J0IHR5cGUgVXBkYXRlSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnlUeXBlPE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPiA9IFVwZGF0ZVJlcG9zaXRvcnk8TUJhc2U+ICYge1xyXG4gIHBhcmFtc1RvUGxhaW4ocGFyYW1zOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPE1CYXNlPik6IFBhcnRpYWw8TUJhc2U+XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFVwZGF0ZUNvbnN0cnVjdG9yUGFyYW1zID0ge1xyXG4gIHVwZGF0ZUdyYXBoUUxPcGVyYXRpb24/OiBzdHJpbmdcclxuICB1cGRhdGVHcmFwaFFMT2JqZWN0VHlwZT86IHN0cmluZ1xyXG4gIHVwZGF0ZUdyYXBoUUxQS1R5cGU/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhVcGRhdGVIYXN1cmFHcmFwaFFMID0gPFxyXG4gIE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxyXG4gIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+PixcclxuPihcclxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4+ICYgVE1peGluQmFzZSxcclxuKTogTWl4aW5DdG9yPFxyXG4gIEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPiAmIFVwZGF0ZUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5VHlwZTxNQmFzZT4gJiBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4sXHJcbiAgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtczxVcGRhdGVDb25zdHJ1Y3RvclBhcmFtcywgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFRNaXhpbkJhc2U+PlxyXG4+ID0+IHtcclxuICBjb25zdCBnZXRWYWx1ZUJ5QWN0aW9uID0gKG9wdGlvbnM6IFVwZGF0ZU9wdGlvbnM8TUJhc2U+KTogdW5rbm93biA9PiB7XHJcbiAgICBpZiAob3B0aW9ucyBpbnN0YW5jZW9mIEJhc2VNb2RlbCkgcmV0dXJuIG9wdGlvbnMudG9QbGFpbigpXHJcbiAgICBpZiAoaXNOaWwob3B0aW9ucz8uYWN0aW9uKSkgcmV0dXJuIG9wdGlvbnNcclxuICAgIGlmIChbVXBkYXRlT3B0aW9uQWN0aW9ucy5SRU1PVkVfRklFTEQudG9TdHJpbmcoKSwgVXBkYXRlT3B0aW9uQWN0aW9ucy5OVUxMLnRvU3RyaW5nKCldLmluY2x1ZGVzKG9wdGlvbnMuYWN0aW9uKSlcclxuICAgICAgcmV0dXJuIG51bGxcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucy52YWx1ZVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNsYXNzIFVwZGF0ZUhhc3VyYUdyYXBoUUxNaXhpbiBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIFVwZGF0ZVJlcG9zaXRvcnk8TUJhc2U+IHtcclxuICAgIHVwZGF0ZUdyYXBoUUxPcGVyYXRpb246IHN0cmluZ1xyXG4gICAgdXBkYXRlR3JhcGhRTE9iamVjdFR5cGU6IHN0cmluZ1xyXG4gICAgdXBkYXRlR3JhcGhRTFBLVHlwZTogc3RyaW5nXHJcblxyXG4gICAgY29uc3RydWN0b3IoLi4ucGFyYW1zKSB7XHJcbiAgICAgIGNvbnN0IG9wdGlvbnM6IFVwZGF0ZUNvbnN0cnVjdG9yUGFyYW1zID0gcGFyYW1zPy5bMF1cclxuXHJcbiAgICAgIHN1cGVyKC4uLnBhcmFtcylcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlR3JhcGhRTE9wZXJhdGlvbiA9IG9wdGlvbnM/LnVwZGF0ZUdyYXBoUUxPcGVyYXRpb24gfHwgYHVwZGF0ZV8ke3RoaXMudGFibGVOYW1lfV9ieV9wa2BcclxuICAgICAgdGhpcy51cGRhdGVHcmFwaFFMT2JqZWN0VHlwZSA9IG9wdGlvbnM/LnVwZGF0ZUdyYXBoUUxPYmplY3RUeXBlIHx8IGAke3RoaXMudGFibGVOYW1lfV9zZXRfaW5wdXRgXHJcbiAgICAgIHRoaXMudXBkYXRlR3JhcGhRTFBLVHlwZSA9IG9wdGlvbnM/LnVwZGF0ZUdyYXBoUUxQS1R5cGUgfHwgYCR7dGhpcy50YWJsZU5hbWV9X3BrX2NvbHVtbnNfaW5wdXRgXHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgdXBkYXRlKGRhdGE6IFJlcG9zaXRvcnlVcGRhdGVQYXJhbXM8TUJhc2U+KTogUHJvbWlzZTxNQmFzZT4ge1xyXG4gICAgICBjb25zdCBwbGFpbkRhdGEgPSB0aGlzLnBhcmFtc1RvUGxhaW4oZGF0YSlcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMubXV0YXRpb24oXHJcbiAgICAgICAgdGhpcy51cGRhdGVHcmFwaFFMT3BlcmF0aW9uLFxyXG4gICAgICAgIHRoaXMubW9kZWwuaWRlbnRpZmllcnNGaWVsZHMubWFwKFxyXG4gICAgICAgICAgKGZpZWxkKSA9PiBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKGZpZWxkLCB0aGlzLmZpZWxkcykuY29sdW1uTmFtZSxcclxuICAgICAgICApIGFzIEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIF9zZXQ6IHtcclxuICAgICAgICAgICAgdHlwZTogdGhpcy51cGRhdGVHcmFwaFFMT2JqZWN0VHlwZSxcclxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuY29udmVydERhdGFUb0hhc3VyYSh0aGlzLm1vZGVsLnRvSW5zdGFuY2UocGxhaW5EYXRhKSwgdHJ1ZSksXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHBrX2NvbHVtbnM6IHsgdHlwZTogdGhpcy51cGRhdGVHcmFwaFFMUEtUeXBlLCB2YWx1ZTogdGhpcy5nZXRVcGRhdGVNb2RlbEtleXMocGxhaW5EYXRhKSwgcmVxdWlyZWQ6IHRydWUgfSxcclxuICAgICAgICB9LFxyXG4gICAgICApXHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5tb2RlbC50b0luc3RhbmNlKHBsYWluRGF0YSlcclxuICAgIH1cclxuXHJcbiAgICBwYXJhbXNUb1BsYWluKHBhcmFtczogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxNQmFzZT4pOiBQYXJ0aWFsPE1CYXNlPiB7XHJcbiAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5tb2RlbFxyXG5cclxuICAgICAgaWYgKG1vZGVsLmlzTW9kZWwocGFyYW1zKSkgcmV0dXJuIHBhcmFtcy50b1BsYWluKClcclxuXHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhwYXJhbXMpLnJlZHVjZShcclxuICAgICAgICAoZGF0YSwgY3VycmVudEtleSkgPT4gKHtcclxuICAgICAgICAgIC4uLmRhdGEsXHJcbiAgICAgICAgICAuLi4ocGFyYW1zW2N1cnJlbnRLZXldICE9PSB1bmRlZmluZWQgJiYgeyBbY3VycmVudEtleV06IGdldFZhbHVlQnlBY3Rpb24ocGFyYW1zW2N1cnJlbnRLZXldKSB9KSxcclxuICAgICAgICB9KSxcclxuICAgICAgICB7fSxcclxuICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIGdldFVwZGF0ZU1vZGVsS2V5cyhkYXRhOiBQYXJ0aWFsPE1CYXNlPik6IE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnRpZXM8TUJhc2U+IHtcclxuICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLm1vZGVsLnRvSW5zdGFuY2UoZGF0YSlcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLm1vZGVsLmlkZW50aWZpZXJzRmllbGRzLnJlZHVjZSgoaWRzLCBpZGVudGlmaWVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzTmlsKGluc3RhbmNlW2lkZW50aWZpZXJdKSkgcmV0dXJuIGlkc1xyXG5cclxuICAgICAgICBjb25zdCBjb2x1bW5PcHRpb24gPSBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKGlkZW50aWZpZXIsIHRoaXMuZmllbGRzKVxyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gY29sdW1uT3B0aW9uPy50bz8uKGRhdGFbaWRlbnRpZmllci50b1N0cmluZygpXSwgaW5zdGFuY2UpIHx8IGRhdGFbY29sdW1uT3B0aW9uLmF0dHJpYnV0ZU5hbWVdXHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pZHMsXHJcbiAgICAgICAgICBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiB2YWx1ZSxcclxuICAgICAgICB9XHJcbiAgICAgIH0sIHt9IGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnRpZXM8TUJhc2U+KVxyXG4gICAgfVxyXG4gIH0gYXMgYW55XHJcbn1cclxuIl19