@infrab4a/connect 3.3.0-beta.2 → 3.3.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/README.md +24 -24
  2. package/bundles/infrab4a-connect.umd.js +5031 -0
  3. package/bundles/infrab4a-connect.umd.js.map +1 -0
  4. package/domain/catalog/index.d.ts +2 -2
  5. package/domain/catalog/models/category.d.ts +24 -24
  6. package/domain/catalog/models/enums/index.d.ts +2 -2
  7. package/domain/catalog/models/enums/product-genders.enum.d.ts +5 -5
  8. package/domain/catalog/models/enums/shops.enum.d.ts +6 -6
  9. package/domain/catalog/models/index.d.ts +6 -6
  10. package/domain/catalog/models/kit-product.d.ts +12 -12
  11. package/domain/catalog/models/product.d.ts +39 -39
  12. package/domain/catalog/models/types/category-condition.type.d.ts +4 -4
  13. package/domain/catalog/models/types/category-filter.type.d.ts +4 -4
  14. package/domain/catalog/models/types/category-metadata.type.d.ts +4 -4
  15. package/domain/catalog/models/types/index.d.ts +10 -10
  16. package/domain/catalog/models/types/product-gender.type.d.ts +1 -1
  17. package/domain/catalog/models/types/product-metadata.type.d.ts +4 -4
  18. package/domain/catalog/models/types/product-review.type.d.ts +17 -17
  19. package/domain/catalog/models/types/shop-description.type.d.ts +7 -7
  20. package/domain/catalog/models/types/shop-price.type.d.ts +6 -6
  21. package/domain/catalog/models/types/stock.type.d.ts +3 -3
  22. package/domain/catalog/models/types/variant-grade.type.d.ts +4 -4
  23. package/domain/catalog/models/variant.d.ts +18 -18
  24. package/domain/catalog/repositories/category.repository.d.ts +15 -15
  25. package/domain/catalog/repositories/index.d.ts +4 -4
  26. package/domain/catalog/repositories/product.repository.d.ts +12 -12
  27. package/domain/catalog/repositories/subscription-product.repository.d.ts +4 -4
  28. package/domain/catalog/repositories/variant.repository.d.ts +4 -4
  29. package/domain/generic/index.d.ts +2 -2
  30. package/domain/generic/model/base.model.d.ts +10 -10
  31. package/domain/generic/model/identifier-fields.d.ts +4 -4
  32. package/domain/generic/model/index.d.ts +3 -3
  33. package/domain/generic/model/types/base-model-builder.type.d.ts +15 -15
  34. package/domain/generic/model/types/identifier-model.type.d.ts +7 -7
  35. package/domain/generic/model/types/index.d.ts +5 -5
  36. package/domain/generic/model/types/model-base-structure.type.d.ts +6 -6
  37. package/domain/generic/model/types/non-function-properties.type.d.ts +12 -12
  38. package/domain/generic/model/types/non-function-property-name.type.d.ts +4 -4
  39. package/domain/generic/repository/create.repository.d.ts +8 -8
  40. package/domain/generic/repository/crud.repository.d.ts +19 -19
  41. package/domain/generic/repository/delete.repository.d.ts +7 -7
  42. package/domain/generic/repository/enums/index.d.ts +2 -2
  43. package/domain/generic/repository/enums/update-option-actions.enum.d.ts +7 -7
  44. package/domain/generic/repository/enums/where.enum.d.ts +14 -14
  45. package/domain/generic/repository/find.repository.d.ts +11 -11
  46. package/domain/generic/repository/get.repository.d.ts +5 -5
  47. package/domain/generic/repository/index.d.ts +9 -9
  48. package/domain/generic/repository/read.repository.d.ts +14 -14
  49. package/domain/generic/repository/types/index.d.ts +6 -6
  50. package/domain/generic/repository/types/repository-find-filters.type.d.ts +13 -13
  51. package/domain/generic/repository/types/repository-find-result.type.d.ts +4 -4
  52. package/domain/generic/repository/types/repository-limit-options.type.d.ts +4 -4
  53. package/domain/generic/repository/types/repository-order-by-list.type.d.ts +5 -5
  54. package/domain/generic/repository/types/repository-update-params.type.d.ts +11 -11
  55. package/domain/generic/repository/types/where-options.type.d.ts +2 -2
  56. package/domain/generic/repository/update.repository.d.ts +6 -6
  57. package/domain/index.d.ts +6 -6
  58. package/domain/location/index.d.ts +1 -1
  59. package/domain/location/models/address.d.ts +22 -22
  60. package/domain/location/models/index.d.ts +2 -2
  61. package/domain/location/models/types/index.d.ts +3 -3
  62. package/domain/location/models/types/location-bound.type.d.ts +6 -6
  63. package/domain/location/models/types/location-geometry.type.d.ts +7 -7
  64. package/domain/location/models/types/location-lat-lng.type.d.ts +4 -4
  65. package/domain/shop-settings/enums/filter-type.enum.d.ts +19 -19
  66. package/domain/shop-settings/enums/index.d.ts +2 -2
  67. package/domain/shop-settings/enums/questions-filters.enum.d.ts +19 -19
  68. package/domain/shop-settings/helpers/beauty-questions.helper.d.ts +9 -9
  69. package/domain/shop-settings/helpers/index.d.ts +1 -1
  70. package/domain/shop-settings/index.d.ts +4 -4
  71. package/domain/shop-settings/models/home.d.ts +18 -18
  72. package/domain/shop-settings/models/index.d.ts +4 -3
  73. package/domain/shop-settings/models/shop-menu.d.ts +7 -7
  74. package/domain/shop-settings/models/shop-settings.d.ts +9 -0
  75. package/domain/shop-settings/models/types/banner.type.d.ts +6 -6
  76. package/domain/shop-settings/models/types/benefit.type.d.ts +5 -5
  77. package/domain/shop-settings/models/types/home-data.type.d.ts +15 -15
  78. package/domain/shop-settings/models/types/index.d.ts +10 -5
  79. package/domain/shop-settings/models/types/menu-nav.type.d.ts +8 -8
  80. package/domain/shop-settings/models/types/shop-banner.type.d.ts +11 -0
  81. package/domain/shop-settings/models/types/shop-brands.type.d.ts +10 -0
  82. package/domain/shop-settings/models/types/shop-carousel.type.d.ts +5 -0
  83. package/domain/shop-settings/models/types/shop-collection.type.d.ts +9 -0
  84. package/domain/shop-settings/models/types/shop-section.type.d.ts +9 -0
  85. package/domain/shop-settings/models/types/sub-menu.type.d.ts +8 -8
  86. package/domain/shop-settings/repositories/home.repository.d.ts +4 -4
  87. package/domain/shop-settings/repositories/index.d.ts +3 -2
  88. package/domain/shop-settings/repositories/shop-menu.repository.d.ts +4 -4
  89. package/domain/shop-settings/repositories/shop-settings.repository.d.ts +4 -0
  90. package/domain/shopping/index.d.ts +2 -2
  91. package/domain/shopping/models/buy-2-win.d.ts +16 -16
  92. package/domain/shopping/models/checkout.d.ts +27 -27
  93. package/domain/shopping/models/coupons/coupon.d.ts +32 -32
  94. package/domain/shopping/models/coupons/enums/coupon-club-mens.enum.d.ts +5 -5
  95. package/domain/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +4 -4
  96. package/domain/shopping/models/coupons/enums/coupon-types.enum.d.ts +4 -4
  97. package/domain/shopping/models/coupons/enums/exclusivities.enum.d.ts +8 -8
  98. package/domain/shopping/models/coupons/enums/index.d.ts +3 -3
  99. package/domain/shopping/models/coupons/index.d.ts +2 -2
  100. package/domain/shopping/models/enums/checkout-types.enum.d.ts +5 -5
  101. package/domain/shopping/models/enums/index.d.ts +2 -2
  102. package/domain/shopping/models/enums/order-status.enum.d.ts +10 -10
  103. package/domain/shopping/models/index.d.ts +11 -11
  104. package/domain/shopping/models/line-item.d.ts +8 -8
  105. package/domain/shopping/models/order.d.ts +9 -9
  106. package/domain/shopping/models/payment.d.ts +67 -67
  107. package/domain/shopping/models/shipping-method.d.ts +16 -16
  108. package/domain/shopping/models/subscription/checkout.d.ts +21 -21
  109. package/domain/shopping/models/subscription/index.d.ts +2 -2
  110. package/domain/shopping/models/subscription/plan.d.ts +10 -10
  111. package/domain/shopping/models/types/index.d.ts +7 -7
  112. package/domain/shopping/models/types/payment-address.type.d.ts +12 -12
  113. package/domain/shopping/models/types/payment-billing.type.d.ts +7 -7
  114. package/domain/shopping/models/types/payment-card.type.d.ts +14 -14
  115. package/domain/shopping/models/types/payment-customer.type.d.ts +18 -18
  116. package/domain/shopping/models/types/payment-document.type.d.ts +6 -6
  117. package/domain/shopping/models/types/payment-item.type.d.ts +11 -11
  118. package/domain/shopping/models/types/payment-shipping.type.d.ts +10 -10
  119. package/domain/shopping/repositories/buy-2-win.repository.d.ts +4 -4
  120. package/domain/shopping/repositories/checkout.repository.d.ts +4 -4
  121. package/domain/shopping/repositories/coupon.repository.d.ts +4 -4
  122. package/domain/shopping/repositories/index.d.ts +7 -7
  123. package/domain/shopping/repositories/legacy-order.repository.d.ts +3 -3
  124. package/domain/shopping/repositories/order.repository.d.ts +4 -4
  125. package/domain/shopping/repositories/payment.repository.d.ts +4 -4
  126. package/domain/shopping/repositories/subscription/checkout.repository.d.ts +4 -4
  127. package/domain/shopping/repositories/subscription/index.d.ts +2 -2
  128. package/domain/shopping/repositories/subscription/plan.repository.d.ts +4 -4
  129. package/domain/users/errors/index.d.ts +3 -3
  130. package/domain/users/errors/unauthorized.error.d.ts +5 -5
  131. package/domain/users/errors/user-already-registered.error.d.ts +5 -5
  132. package/domain/users/errors/weak-password.error.d.ts +5 -5
  133. package/domain/users/index.d.ts +5 -5
  134. package/domain/users/models/beauty-profile.d.ts +11 -11
  135. package/domain/users/models/enums/accessory-importances.enum.d.ts +5 -5
  136. package/domain/users/models/enums/area.enum.d.ts +11 -11
  137. package/domain/users/models/enums/beard-problems.enum.d.ts +9 -9
  138. package/domain/users/models/enums/beard-sizes.enum.d.ts +7 -7
  139. package/domain/users/models/enums/beauty-product-importances.enum.d.ts +6 -6
  140. package/domain/users/models/enums/body-problems.enum.d.ts +11 -11
  141. package/domain/users/models/enums/body-shapes.enum.d.ts +7 -7
  142. package/domain/users/models/enums/body-tattoos.enum.d.ts +5 -5
  143. package/domain/users/models/enums/face-skin-oilinesses.enum.d.ts +7 -7
  144. package/domain/users/models/enums/face-skin-problems.enum.d.ts +10 -10
  145. package/domain/users/models/enums/face-skin-tones.enum.d.ts +8 -8
  146. package/domain/users/models/enums/family-incomes.enum.d.ts +8 -8
  147. package/domain/users/models/enums/fragrance-importances.enum.d.ts +5 -5
  148. package/domain/users/models/enums/hair-colors.enum.d.ts +10 -10
  149. package/domain/users/models/enums/hair-problems.enum.d.ts +10 -10
  150. package/domain/users/models/enums/hair-strands.enum.d.ts +8 -8
  151. package/domain/users/models/enums/hair-types.enum.d.ts +7 -7
  152. package/domain/users/models/enums/index.d.ts +20 -20
  153. package/domain/users/models/enums/office-position.enum.d.ts +6 -6
  154. package/domain/users/models/enums/product-spents.enum.d.ts +8 -8
  155. package/domain/users/models/enums/user-type.enum.d.ts +8 -8
  156. package/domain/users/models/index.d.ts +7 -7
  157. package/domain/users/models/lead.d.ts +7 -7
  158. package/domain/users/models/subscription/edition.d.ts +16 -16
  159. package/domain/users/models/subscription/enums/billing-status.enum.d.ts +3 -3
  160. package/domain/users/models/subscription/enums/edition-status.enum.d.ts +4 -4
  161. package/domain/users/models/subscription/enums/index.d.ts +4 -4
  162. package/domain/users/models/subscription/enums/payment-type.enum.d.ts +5 -5
  163. package/domain/users/models/subscription/enums/status.enum.d.ts +4 -4
  164. package/domain/users/models/subscription/index.d.ts +4 -4
  165. package/domain/users/models/subscription/payment.d.ts +13 -13
  166. package/domain/users/models/subscription/subscription.d.ts +28 -28
  167. package/domain/users/models/user-address.d.ts +7 -7
  168. package/domain/users/models/user-payment-method.d.ts +14 -14
  169. package/domain/users/models/user.d.ts +28 -28
  170. package/domain/users/repositories/beauty-profile.repository.d.ts +4 -4
  171. package/domain/users/repositories/edition.repository.d.ts +4 -4
  172. package/domain/users/repositories/index.d.ts +8 -8
  173. package/domain/users/repositories/lead.repository.d.ts +4 -4
  174. package/domain/users/repositories/subscription-payment.repository.d.ts +4 -4
  175. package/domain/users/repositories/subscription.repository.d.ts +4 -4
  176. package/domain/users/repositories/user-address.repository.d.ts +4 -4
  177. package/domain/users/repositories/user-payment-method.repository.d.ts +4 -4
  178. package/domain/users/repositories/user.repository.d.ts +6 -6
  179. package/domain/users/services/authentication.service.d.ts +12 -12
  180. package/domain/users/services/index.d.ts +3 -3
  181. package/domain/users/services/register.service.d.ts +7 -7
  182. package/domain/users/services/types/basic-user-data.type.d.ts +4 -4
  183. package/domain/users/services/types/index.d.ts +1 -1
  184. package/domain/users/use-cases/authentication.d.ts +21 -21
  185. package/domain/users/use-cases/index.d.ts +4 -4
  186. package/domain/users/use-cases/recovery-password.d.ts +6 -6
  187. package/domain/users/use-cases/register.d.ts +13 -13
  188. package/domain/users/use-cases/signout.d.ts +6 -6
  189. package/errors/duplicated-results.error.d.ts +5 -5
  190. package/errors/index.d.ts +4 -4
  191. package/errors/invalid-argument.error.d.ts +5 -5
  192. package/errors/not-found.error.d.ts +5 -5
  193. package/errors/required-argument.error.d.ts +6 -6
  194. package/{esm2020/domain/catalog/index.mjs → esm2015/domain/catalog/index.js} +3 -3
  195. package/esm2015/domain/catalog/models/category.js +10 -0
  196. package/{esm2020/domain/catalog/models/enums/index.mjs → esm2015/domain/catalog/models/enums/index.js} +3 -3
  197. package/{esm2020/domain/catalog/models/enums/product-genders.enum.mjs → esm2015/domain/catalog/models/enums/product-genders.enum.js} +7 -7
  198. package/{esm2020/domain/catalog/models/enums/shops.enum.mjs → esm2015/domain/catalog/models/enums/shops.enum.js} +8 -8
  199. package/{esm2020/domain/catalog/models/index.mjs → esm2015/domain/catalog/models/index.js} +7 -7
  200. package/{esm2020/domain/catalog/models/kit-product.mjs → esm2015/domain/catalog/models/kit-product.js} +18 -18
  201. package/esm2015/domain/catalog/models/product.js +17 -0
  202. package/{esm2020/domain/catalog/models/types/category-condition.type.mjs → esm2015/domain/catalog/models/types/category-condition.type.js} +2 -2
  203. package/{esm2020/domain/catalog/models/types/category-filter.type.mjs → esm2015/domain/catalog/models/types/category-filter.type.js} +2 -2
  204. package/{esm2020/domain/catalog/models/types/category-metadata.type.mjs → esm2015/domain/catalog/models/types/category-metadata.type.js} +2 -2
  205. package/{esm2020/domain/catalog/models/types/index.mjs → esm2015/domain/catalog/models/types/index.js} +11 -11
  206. package/{esm2020/domain/catalog/models/types/product-gender.type.mjs → esm2015/domain/catalog/models/types/product-gender.type.js} +2 -2
  207. package/{esm2020/domain/catalog/models/types/product-metadata.type.mjs → esm2015/domain/catalog/models/types/product-metadata.type.js} +2 -2
  208. package/esm2015/domain/catalog/models/types/product-review.type.js +2 -0
  209. package/{esm2020/domain/catalog/models/types/shop-description.type.mjs → esm2015/domain/catalog/models/types/shop-description.type.js} +2 -2
  210. package/{esm2020/domain/catalog/models/types/shop-price.type.mjs → esm2015/domain/catalog/models/types/shop-price.type.js} +2 -2
  211. package/{esm2020/domain/catalog/models/types/stock.type.mjs → esm2015/domain/catalog/models/types/stock.type.js} +2 -2
  212. package/{esm2020/domain/catalog/models/types/variant-grade.type.mjs → esm2015/domain/catalog/models/types/variant-grade.type.js} +2 -2
  213. package/esm2015/domain/catalog/models/variant.js +10 -0
  214. package/esm2015/domain/catalog/repositories/category.repository.js +2 -0
  215. package/{esm2020/domain/catalog/repositories/index.mjs → esm2015/domain/catalog/repositories/index.js} +5 -5
  216. package/esm2015/domain/catalog/repositories/product.repository.js +2 -0
  217. package/{esm2020/domain/catalog/repositories/subscription-product.repository.mjs → esm2015/domain/catalog/repositories/subscription-product.repository.js} +2 -2
  218. package/{esm2020/domain/catalog/repositories/variant.repository.mjs → esm2015/domain/catalog/repositories/variant.repository.js} +2 -2
  219. package/{esm2020/domain/generic/index.mjs → esm2015/domain/generic/index.js} +3 -3
  220. package/esm2015/domain/generic/model/base.model.js +23 -0
  221. package/{esm2020/domain/generic/model/identifier-fields.mjs → esm2015/domain/generic/model/identifier-fields.js} +2 -2
  222. package/{esm2020/domain/generic/model/index.mjs → esm2015/domain/generic/model/index.js} +4 -4
  223. package/esm2015/domain/generic/model/types/base-model-builder.type.js +2 -0
  224. package/esm2015/domain/generic/model/types/identifier-model.type.js +2 -0
  225. package/{esm2020/domain/generic/model/types/index.mjs → esm2015/domain/generic/model/types/index.js} +6 -6
  226. package/{esm2020/domain/generic/model/types/model-base-structure.type.mjs → esm2015/domain/generic/model/types/model-base-structure.type.js} +2 -2
  227. package/esm2015/domain/generic/model/types/non-function-properties.type.js +2 -0
  228. package/{esm2020/domain/generic/model/types/non-function-property-name.type.mjs → esm2015/domain/generic/model/types/non-function-property-name.type.js} +2 -2
  229. package/esm2015/domain/generic/repository/create.repository.js +2 -0
  230. package/esm2015/domain/generic/repository/crud.repository.js +2 -0
  231. package/esm2015/domain/generic/repository/delete.repository.js +2 -0
  232. package/{esm2020/domain/generic/repository/enums/index.mjs → esm2015/domain/generic/repository/enums/index.js} +3 -3
  233. package/{esm2020/domain/generic/repository/enums/update-option-actions.enum.mjs → esm2015/domain/generic/repository/enums/update-option-actions.enum.js} +9 -9
  234. package/{esm2020/domain/generic/repository/enums/where.enum.mjs → esm2015/domain/generic/repository/enums/where.enum.js} +16 -16
  235. package/esm2015/domain/generic/repository/find.repository.js +2 -0
  236. package/esm2015/domain/generic/repository/get.repository.js +2 -0
  237. package/{esm2020/domain/generic/repository/index.mjs → esm2015/domain/generic/repository/index.js} +10 -10
  238. package/esm2015/domain/generic/repository/read.repository.js +2 -0
  239. package/{esm2020/domain/generic/repository/types/index.mjs → esm2015/domain/generic/repository/types/index.js} +7 -7
  240. package/esm2015/domain/generic/repository/types/repository-find-filters.type.js +2 -0
  241. package/{esm2020/domain/generic/repository/types/repository-find-result.type.mjs → esm2015/domain/generic/repository/types/repository-find-result.type.js} +2 -2
  242. package/{esm2020/domain/generic/repository/types/repository-limit-options.type.mjs → esm2015/domain/generic/repository/types/repository-limit-options.type.js} +2 -2
  243. package/{esm2020/domain/generic/repository/types/repository-order-by-list.type.mjs → esm2015/domain/generic/repository/types/repository-order-by-list.type.js} +2 -2
  244. package/esm2015/domain/generic/repository/types/repository-update-params.type.js +2 -0
  245. package/{esm2020/domain/generic/repository/types/where-options.type.mjs → esm2015/domain/generic/repository/types/where-options.type.js} +2 -2
  246. package/esm2015/domain/generic/repository/update.repository.js +2 -0
  247. package/{esm2020/domain/index.mjs → esm2015/domain/index.js} +7 -7
  248. package/{esm2020/domain/location/index.mjs → esm2015/domain/location/index.js} +2 -2
  249. package/esm2015/domain/location/models/address.js +7 -0
  250. package/{esm2020/domain/location/models/index.mjs → esm2015/domain/location/models/index.js} +3 -3
  251. package/{esm2020/domain/location/models/types/index.mjs → esm2015/domain/location/models/types/index.js} +4 -4
  252. package/{esm2020/domain/location/models/types/location-bound.type.mjs → esm2015/domain/location/models/types/location-bound.type.js} +2 -2
  253. package/{esm2020/domain/location/models/types/location-geometry.type.mjs → esm2015/domain/location/models/types/location-geometry.type.js} +2 -2
  254. package/{esm2020/domain/location/models/types/location-lat-lng.type.mjs → esm2015/domain/location/models/types/location-lat-lng.type.js} +2 -2
  255. package/{esm2020/domain/shop-settings/enums/filter-type.enum.mjs → esm2015/domain/shop-settings/enums/filter-type.enum.js} +21 -21
  256. package/{esm2020/domain/shop-settings/enums/index.mjs → esm2015/domain/shop-settings/enums/index.js} +3 -3
  257. package/{esm2020/domain/shop-settings/enums/questions-filters.enum.mjs → esm2015/domain/shop-settings/enums/questions-filters.enum.js} +21 -21
  258. package/{esm2020/domain/shop-settings/helpers/beauty-questions.helper.mjs → esm2015/domain/shop-settings/helpers/beauty-questions.helper.js} +46 -46
  259. package/{esm2020/domain/shop-settings/helpers/index.mjs → esm2015/domain/shop-settings/helpers/index.js} +2 -2
  260. package/{esm2020/domain/shop-settings/index.mjs → esm2015/domain/shop-settings/index.js} +5 -5
  261. package/esm2015/domain/shop-settings/models/home.js +7 -0
  262. package/{esm2020/domain/shop-settings/models/index.mjs → esm2015/domain/shop-settings/models/index.js} +5 -4
  263. package/{esm2020/domain/shop-settings/models/shop-menu.mjs → esm2015/domain/shop-settings/models/shop-menu.js} +7 -7
  264. package/esm2015/domain/shop-settings/models/shop-settings.js +7 -0
  265. package/{esm2020/domain/shop-settings/models/types/banner.type.mjs → esm2015/domain/shop-settings/models/types/banner.type.js} +2 -2
  266. package/{esm2020/domain/shop-settings/models/types/benefit.type.mjs → esm2015/domain/shop-settings/models/types/benefit.type.js} +2 -2
  267. package/esm2015/domain/shop-settings/models/types/home-data.type.js +2 -0
  268. package/esm2015/domain/shop-settings/models/types/index.js +11 -0
  269. package/{esm2020/domain/shop-settings/models/types/menu-nav.type.mjs → esm2015/domain/shop-settings/models/types/menu-nav.type.js} +2 -2
  270. package/esm2015/domain/shop-settings/models/types/shop-banner.type.js +2 -0
  271. package/esm2015/domain/shop-settings/models/types/shop-brands.type.js +2 -0
  272. package/esm2015/domain/shop-settings/models/types/shop-carousel.type.js +2 -0
  273. package/esm2015/domain/shop-settings/models/types/shop-collection.type.js +2 -0
  274. package/esm2015/domain/shop-settings/models/types/shop-section.type.js +2 -0
  275. package/{esm2020/domain/shop-settings/models/types/sub-menu.type.mjs → esm2015/domain/shop-settings/models/types/sub-menu.type.js} +2 -2
  276. package/{esm2020/domain/shop-settings/repositories/home.repository.mjs → esm2015/domain/shop-settings/repositories/home.repository.js} +2 -2
  277. package/{esm2020/domain/shop-settings/repositories/index.mjs → esm2015/domain/shop-settings/repositories/index.js} +4 -3
  278. package/{esm2020/domain/shop-settings/repositories/shop-menu.repository.mjs → esm2015/domain/shop-settings/repositories/shop-menu.repository.js} +2 -2
  279. package/esm2015/domain/shop-settings/repositories/shop-settings.repository.js +2 -0
  280. package/{esm2020/domain/shopping/index.mjs → esm2015/domain/shopping/index.js} +3 -3
  281. package/{esm2020/domain/shopping/models/buy-2-win.mjs → esm2015/domain/shopping/models/buy-2-win.js} +14 -14
  282. package/esm2015/domain/shopping/models/checkout.js +38 -0
  283. package/{esm2020/domain/shopping/models/coupons/coupon.mjs → esm2015/domain/shopping/models/coupons/coupon.js} +38 -38
  284. package/{esm2020/domain/shopping/models/coupons/enums/coupon-club-mens.enum.mjs → esm2015/domain/shopping/models/coupons/enums/coupon-club-mens.enum.js} +7 -7
  285. package/{esm2020/domain/shopping/models/coupons/enums/coupon-subtypes.enum.mjs → esm2015/domain/shopping/models/coupons/enums/coupon-subtypes.enum.js} +6 -6
  286. package/{esm2020/domain/shopping/models/coupons/enums/coupon-types.enum.mjs → esm2015/domain/shopping/models/coupons/enums/coupon-types.enum.js} +10 -10
  287. package/{esm2020/domain/shopping/models/coupons/enums/exclusivities.enum.mjs → esm2015/domain/shopping/models/coupons/enums/exclusivities.enum.js} +10 -10
  288. package/{esm2020/domain/shopping/models/coupons/enums/index.mjs → esm2015/domain/shopping/models/coupons/enums/index.js} +4 -4
  289. package/{esm2020/domain/shopping/models/coupons/index.mjs → esm2015/domain/shopping/models/coupons/index.js} +3 -3
  290. package/{esm2020/domain/shopping/models/enums/checkout-types.enum.mjs → esm2015/domain/shopping/models/enums/checkout-types.enum.js} +7 -7
  291. package/{esm2020/domain/shopping/models/enums/index.mjs → esm2015/domain/shopping/models/enums/index.js} +3 -3
  292. package/{esm2020/domain/shopping/models/enums/order-status.enum.mjs → esm2015/domain/shopping/models/enums/order-status.enum.js} +12 -12
  293. package/{esm2020/domain/shopping/models/index.mjs → esm2015/domain/shopping/models/index.js} +12 -12
  294. package/{esm2020/domain/shopping/models/line-item.mjs → esm2015/domain/shopping/models/line-item.js} +4 -4
  295. package/{esm2020/domain/shopping/models/order.mjs → esm2015/domain/shopping/models/order.js} +11 -11
  296. package/esm2015/domain/shopping/models/payment.js +169 -0
  297. package/{esm2020/domain/shopping/models/shipping-method.mjs → esm2015/domain/shopping/models/shipping-method.js} +7 -7
  298. package/{esm2020/domain/shopping/models/subscription/checkout.mjs → esm2015/domain/shopping/models/subscription/checkout.js} +28 -28
  299. package/{esm2020/domain/shopping/models/subscription/index.mjs → esm2015/domain/shopping/models/subscription/index.js} +3 -3
  300. package/{esm2020/domain/shopping/models/subscription/plan.mjs → esm2015/domain/shopping/models/subscription/plan.js} +7 -7
  301. package/{esm2020/domain/shopping/models/types/index.mjs → esm2015/domain/shopping/models/types/index.js} +8 -8
  302. package/esm2015/domain/shopping/models/types/payment-address.type.js +2 -0
  303. package/{esm2020/domain/shopping/models/types/payment-billing.type.mjs → esm2015/domain/shopping/models/types/payment-billing.type.js} +2 -2
  304. package/esm2015/domain/shopping/models/types/payment-card.type.js +2 -0
  305. package/esm2015/domain/shopping/models/types/payment-customer.type.js +2 -0
  306. package/{esm2020/domain/shopping/models/types/payment-document.type.mjs → esm2015/domain/shopping/models/types/payment-document.type.js} +2 -2
  307. package/{esm2020/domain/shopping/models/types/payment-item.type.mjs → esm2015/domain/shopping/models/types/payment-item.type.js} +2 -2
  308. package/{esm2020/domain/shopping/models/types/payment-shipping.type.mjs → esm2015/domain/shopping/models/types/payment-shipping.type.js} +2 -2
  309. package/{esm2020/domain/shopping/repositories/buy-2-win.repository.mjs → esm2015/domain/shopping/repositories/buy-2-win.repository.js} +2 -2
  310. package/{esm2020/domain/shopping/repositories/checkout.repository.mjs → esm2015/domain/shopping/repositories/checkout.repository.js} +2 -2
  311. package/{esm2020/domain/shopping/repositories/coupon.repository.mjs → esm2015/domain/shopping/repositories/coupon.repository.js} +2 -2
  312. package/{esm2020/domain/shopping/repositories/index.mjs → esm2015/domain/shopping/repositories/index.js} +8 -8
  313. package/{esm2020/domain/shopping/repositories/legacy-order.repository.mjs → esm2015/domain/shopping/repositories/legacy-order.repository.js} +2 -2
  314. package/{esm2020/domain/shopping/repositories/order.repository.mjs → esm2015/domain/shopping/repositories/order.repository.js} +2 -2
  315. package/{esm2020/domain/shopping/repositories/payment.repository.mjs → esm2015/domain/shopping/repositories/payment.repository.js} +2 -2
  316. package/{esm2020/domain/shopping/repositories/subscription/checkout.repository.mjs → esm2015/domain/shopping/repositories/subscription/checkout.repository.js} +2 -2
  317. package/{esm2020/domain/shopping/repositories/subscription/index.mjs → esm2015/domain/shopping/repositories/subscription/index.js} +3 -3
  318. package/{esm2020/domain/shopping/repositories/subscription/plan.repository.mjs → esm2015/domain/shopping/repositories/subscription/plan.repository.js} +2 -2
  319. package/{esm2020/domain/users/errors/index.mjs → esm2015/domain/users/errors/index.js} +4 -4
  320. package/{esm2020/domain/users/errors/unauthorized.error.mjs → esm2015/domain/users/errors/unauthorized.error.js} +8 -8
  321. package/{esm2020/domain/users/errors/user-already-registered.error.mjs → esm2015/domain/users/errors/user-already-registered.error.js} +8 -8
  322. package/{esm2020/domain/users/errors/weak-password.error.mjs → esm2015/domain/users/errors/weak-password.error.js} +8 -8
  323. package/{esm2020/domain/users/index.mjs → esm2015/domain/users/index.js} +6 -6
  324. package/{esm2020/domain/users/models/beauty-profile.mjs → esm2015/domain/users/models/beauty-profile.js} +12 -12
  325. package/{esm2020/domain/users/models/enums/accessory-importances.enum.mjs → esm2015/domain/users/models/enums/accessory-importances.enum.js} +7 -7
  326. package/{esm2020/domain/users/models/enums/area.enum.mjs → esm2015/domain/users/models/enums/area.enum.js} +13 -13
  327. package/{esm2020/domain/users/models/enums/beard-problems.enum.mjs → esm2015/domain/users/models/enums/beard-problems.enum.js} +11 -11
  328. package/{esm2020/domain/users/models/enums/beard-sizes.enum.mjs → esm2015/domain/users/models/enums/beard-sizes.enum.js} +9 -9
  329. package/{esm2020/domain/users/models/enums/beauty-product-importances.enum.mjs → esm2015/domain/users/models/enums/beauty-product-importances.enum.js} +8 -8
  330. package/{esm2020/domain/users/models/enums/body-problems.enum.mjs → esm2015/domain/users/models/enums/body-problems.enum.js} +13 -13
  331. package/{esm2020/domain/users/models/enums/body-shapes.enum.mjs → esm2015/domain/users/models/enums/body-shapes.enum.js} +9 -9
  332. package/{esm2020/domain/users/models/enums/body-tattoos.enum.mjs → esm2015/domain/users/models/enums/body-tattoos.enum.js} +7 -7
  333. package/{esm2020/domain/users/models/enums/face-skin-oilinesses.enum.mjs → esm2015/domain/users/models/enums/face-skin-oilinesses.enum.js} +9 -9
  334. package/{esm2020/domain/users/models/enums/face-skin-problems.enum.mjs → esm2015/domain/users/models/enums/face-skin-problems.enum.js} +12 -12
  335. package/{esm2020/domain/users/models/enums/face-skin-tones.enum.mjs → esm2015/domain/users/models/enums/face-skin-tones.enum.js} +10 -10
  336. package/{esm2020/domain/users/models/enums/family-incomes.enum.mjs → esm2015/domain/users/models/enums/family-incomes.enum.js} +10 -10
  337. package/{esm2020/domain/users/models/enums/fragrance-importances.enum.mjs → esm2015/domain/users/models/enums/fragrance-importances.enum.js} +7 -7
  338. package/{esm2020/domain/users/models/enums/hair-colors.enum.mjs → esm2015/domain/users/models/enums/hair-colors.enum.js} +12 -12
  339. package/{esm2020/domain/users/models/enums/hair-problems.enum.mjs → esm2015/domain/users/models/enums/hair-problems.enum.js} +12 -12
  340. package/{esm2020/domain/users/models/enums/hair-strands.enum.mjs → esm2015/domain/users/models/enums/hair-strands.enum.js} +10 -10
  341. package/{esm2020/domain/users/models/enums/hair-types.enum.mjs → esm2015/domain/users/models/enums/hair-types.enum.js} +9 -9
  342. package/{esm2020/domain/users/models/enums/index.mjs → esm2015/domain/users/models/enums/index.js} +21 -21
  343. package/{esm2020/domain/users/models/enums/office-position.enum.mjs → esm2015/domain/users/models/enums/office-position.enum.js} +8 -8
  344. package/{esm2020/domain/users/models/enums/product-spents.enum.mjs → esm2015/domain/users/models/enums/product-spents.enum.js} +10 -10
  345. package/{esm2020/domain/users/models/enums/user-type.enum.mjs → esm2015/domain/users/models/enums/user-type.enum.js} +10 -10
  346. package/{esm2020/domain/users/models/index.mjs → esm2015/domain/users/models/index.js} +8 -8
  347. package/{esm2020/domain/users/models/lead.mjs → esm2015/domain/users/models/lead.js} +7 -7
  348. package/esm2015/domain/users/models/subscription/edition.js +7 -0
  349. package/{esm2020/domain/users/models/subscription/enums/billing-status.enum.mjs → esm2015/domain/users/models/subscription/enums/billing-status.enum.js} +5 -5
  350. package/{esm2020/domain/users/models/subscription/enums/edition-status.enum.mjs → esm2015/domain/users/models/subscription/enums/edition-status.enum.js} +6 -6
  351. package/{esm2020/domain/users/models/subscription/enums/index.mjs → esm2015/domain/users/models/subscription/enums/index.js} +5 -5
  352. package/{esm2020/domain/users/models/subscription/enums/payment-type.enum.mjs → esm2015/domain/users/models/subscription/enums/payment-type.enum.js} +7 -7
  353. package/{esm2020/domain/users/models/subscription/enums/status.enum.mjs → esm2015/domain/users/models/subscription/enums/status.enum.js} +6 -6
  354. package/{esm2020/domain/users/models/subscription/index.mjs → esm2015/domain/users/models/subscription/index.js} +5 -5
  355. package/{esm2020/domain/users/models/subscription/payment.mjs → esm2015/domain/users/models/subscription/payment.js} +14 -14
  356. package/{esm2020/domain/users/models/subscription/subscription.mjs → esm2015/domain/users/models/subscription/subscription.js} +43 -43
  357. package/{esm2020/domain/users/models/user-address.mjs → esm2015/domain/users/models/user-address.js} +7 -7
  358. package/{esm2020/domain/users/models/user-payment-method.mjs → esm2015/domain/users/models/user-payment-method.js} +7 -7
  359. package/{esm2020/domain/users/models/user.mjs → esm2015/domain/users/models/user.js} +26 -26
  360. package/{esm2020/domain/users/repositories/beauty-profile.repository.mjs → esm2015/domain/users/repositories/beauty-profile.repository.js} +2 -2
  361. package/{esm2020/domain/users/repositories/edition.repository.mjs → esm2015/domain/users/repositories/edition.repository.js} +2 -2
  362. package/{esm2020/domain/users/repositories/index.mjs → esm2015/domain/users/repositories/index.js} +9 -9
  363. package/{esm2020/domain/users/repositories/lead.repository.mjs → esm2015/domain/users/repositories/lead.repository.js} +2 -2
  364. package/{esm2020/domain/users/repositories/subscription-payment.repository.mjs → esm2015/domain/users/repositories/subscription-payment.repository.js} +2 -2
  365. package/{esm2020/domain/users/repositories/subscription.repository.mjs → esm2015/domain/users/repositories/subscription.repository.js} +2 -2
  366. package/{esm2020/domain/users/repositories/user-address.repository.mjs → esm2015/domain/users/repositories/user-address.repository.js} +2 -2
  367. package/{esm2020/domain/users/repositories/user-payment-method.repository.mjs → esm2015/domain/users/repositories/user-payment-method.repository.js} +2 -2
  368. package/esm2015/domain/users/repositories/user.repository.js +2 -0
  369. package/esm2015/domain/users/services/authentication.service.js +2 -0
  370. package/{esm2020/domain/users/services/index.mjs → esm2015/domain/users/services/index.js} +4 -4
  371. package/{esm2020/domain/users/services/register.service.mjs → esm2015/domain/users/services/register.service.js} +2 -2
  372. package/{esm2020/domain/users/services/types/basic-user-data.type.mjs → esm2015/domain/users/services/types/basic-user-data.type.js} +2 -2
  373. package/{esm2020/domain/users/services/types/index.mjs → esm2015/domain/users/services/types/index.js} +2 -2
  374. package/esm2015/domain/users/use-cases/authentication.js +40 -0
  375. package/{esm2020/domain/users/use-cases/index.mjs → esm2015/domain/users/use-cases/index.js} +5 -5
  376. package/esm2015/domain/users/use-cases/recovery-password.js +12 -0
  377. package/esm2015/domain/users/use-cases/register.js +34 -0
  378. package/esm2015/domain/users/use-cases/signout.js +12 -0
  379. package/{esm2020/errors/duplicated-results.error.mjs → esm2015/errors/duplicated-results.error.js} +8 -8
  380. package/{esm2020/errors/index.mjs → esm2015/errors/index.js} +5 -5
  381. package/{esm2020/errors/invalid-argument.error.mjs → esm2015/errors/invalid-argument.error.js} +8 -8
  382. package/{esm2020/errors/not-found.error.mjs → esm2015/errors/not-found.error.js} +8 -8
  383. package/{esm2020/errors/required-argument.error.mjs → esm2015/errors/required-argument.error.js} +9 -9
  384. package/{esm2020/index.mjs → esm2015/index.js} +6 -6
  385. package/esm2015/infra/elasticsearch/adapters/axios.adapter.js +57 -0
  386. package/esm2015/infra/elasticsearch/adapters/elastic-search.adapter.js +2 -0
  387. package/{esm2020/infra/elasticsearch/adapters/index.mjs → esm2015/infra/elasticsearch/adapters/index.js} +3 -3
  388. package/{esm2020/infra/elasticsearch/index.mjs → esm2015/infra/elasticsearch/index.js} +4 -4
  389. package/{esm2020/infra/elasticsearch/indexes/index.mjs → esm2015/infra/elasticsearch/indexes/index.js} +2 -2
  390. package/esm2015/infra/elasticsearch/indexes/products-index.js +93 -0
  391. package/{esm2020/infra/elasticsearch/types/elastic-search-result.mjs → esm2015/infra/elasticsearch/types/elastic-search-result.js} +2 -2
  392. package/{esm2020/infra/elasticsearch/types/index.mjs → esm2015/infra/elasticsearch/types/index.js} +2 -2
  393. package/esm2015/infra/firebase/auth/authentication-firebase-auth.service.js +52 -0
  394. package/{esm2020/infra/firebase/auth/index.mjs → esm2015/infra/firebase/auth/index.js} +3 -3
  395. package/esm2015/infra/firebase/auth/register-firebase-auth.service.js +26 -0
  396. package/{esm2020/infra/firebase/auth/types/firebase-user-with-id.type.mjs → esm2015/infra/firebase/auth/types/firebase-user-with-id.type.js} +2 -2
  397. package/{esm2020/infra/firebase/firestore/index.mjs → esm2015/infra/firebase/firestore/index.js} +4 -4
  398. package/{esm2020/infra/firebase/firestore/mixins/index.mjs → esm2015/infra/firebase/firestore/mixins/index.js} +10 -10
  399. package/esm2015/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +31 -0
  400. package/esm2015/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +10 -0
  401. package/esm2015/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +18 -0
  402. package/esm2015/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +92 -0
  403. package/esm2015/infra/firebase/firestore/mixins/with-firestore.mixin.js +22 -0
  404. package/esm2015/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +24 -0
  405. package/{esm2020/infra/firebase/firestore/mixins/with-helpers.mixin.mjs → esm2015/infra/firebase/firestore/mixins/with-helpers.mixin.js} +17 -17
  406. package/esm2015/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +11 -0
  407. package/esm2015/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +45 -0
  408. package/esm2015/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +71 -0
  409. package/{esm2020/infra/firebase/firestore/repositories/catalog/index.mjs → esm2015/infra/firebase/firestore/repositories/catalog/index.js} +5 -5
  410. package/esm2015/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js +52 -0
  411. package/{esm2020/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.js} +14 -14
  412. package/{esm2020/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.js} +12 -12
  413. package/{esm2020/infra/firebase/firestore/repositories/index.mjs → esm2015/infra/firebase/firestore/repositories/index.js} +5 -5
  414. package/esm2015/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.js +56 -0
  415. package/{esm2020/infra/firebase/firestore/repositories/shop-settings/index.mjs → esm2015/infra/firebase/firestore/repositories/shop-settings/index.js} +4 -3
  416. package/{esm2020/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.js} +12 -12
  417. package/esm2015/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.js +12 -0
  418. package/{esm2020/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.js} +12 -12
  419. package/{esm2020/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.js} +12 -12
  420. package/{esm2020/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.js} +12 -12
  421. package/{esm2020/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.js} +29 -29
  422. package/{esm2020/infra/firebase/firestore/repositories/shopping/index.mjs → esm2015/infra/firebase/firestore/repositories/shopping/index.js} +9 -9
  423. package/{esm2020/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.js} +9 -9
  424. package/esm2015/infra/firebase/firestore/repositories/shopping/order-firestore.repository.js +35 -0
  425. package/{esm2020/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.js} +12 -12
  426. package/{esm2020/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.js} +12 -12
  427. package/{esm2020/infra/firebase/firestore/repositories/users/index.mjs → esm2015/infra/firebase/firestore/repositories/users/index.js} +9 -9
  428. package/{esm2020/infra/firebase/firestore/repositories/users/lead-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/users/lead-firestore.repository.js} +12 -12
  429. package/{esm2020/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.js} +14 -14
  430. package/{esm2020/infra/firebase/firestore/repositories/users/subscription-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/users/subscription-firestore.repository.js} +12 -12
  431. package/{esm2020/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.js} +14 -14
  432. package/{esm2020/infra/firebase/firestore/repositories/users/user-address-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/users/user-address-firestore.repository.js} +14 -14
  433. package/{esm2020/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.js} +14 -14
  434. package/esm2015/infra/firebase/firestore/repositories/users/user-firestore.repository.js +68 -0
  435. package/{esm2020/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.mjs → esm2015/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.js} +14 -14
  436. package/esm2015/infra/firebase/firestore/types/firestore-sub.repository.type.js +2 -0
  437. package/esm2015/infra/firebase/firestore/types/firestore.helpers.type.js +2 -0
  438. package/esm2015/infra/firebase/firestore/types/firestore.repository.type.js +2 -0
  439. package/{esm2020/infra/firebase/firestore/types/index.mjs → esm2015/infra/firebase/firestore/types/index.js} +4 -4
  440. package/{esm2020/infra/firebase/index.mjs → esm2015/infra/firebase/index.js} +3 -3
  441. package/{esm2020/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.mjs → esm2015/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.js} +13 -13
  442. package/{esm2020/infra/hasura-graphql/enums/hasura-graphql-where.enum.mjs → esm2015/infra/hasura-graphql/enums/hasura-graphql-where.enum.js} +15 -15
  443. package/{esm2020/infra/hasura-graphql/enums/index.mjs → esm2015/infra/hasura-graphql/enums/index.js} +3 -3
  444. package/{esm2020/infra/hasura-graphql/index.mjs → esm2015/infra/hasura-graphql/index.js} +5 -5
  445. package/esm2015/infra/hasura-graphql/mixins/helpers/attribute-option.helper.js +31 -0
  446. package/esm2015/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.js +53 -0
  447. package/esm2015/infra/hasura-graphql/mixins/helpers/filter-option.helper.js +22 -0
  448. package/esm2015/infra/hasura-graphql/mixins/helpers/graphql-field.helper.js +86 -0
  449. package/{esm2020/infra/hasura-graphql/mixins/helpers/index.mjs → esm2015/infra/hasura-graphql/mixins/helpers/index.js} +5 -5
  450. package/{esm2020/infra/hasura-graphql/mixins/index.mjs → esm2015/infra/hasura-graphql/mixins/index.js} +8 -8
  451. package/esm2015/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.js +45 -0
  452. package/esm2015/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.js +10 -0
  453. package/esm2015/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.js +29 -0
  454. package/esm2015/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.js +45 -0
  455. package/esm2015/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.js +35 -0
  456. package/esm2015/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.js +94 -0
  457. package/esm2015/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.js +56 -0
  458. package/{esm2020/infra/hasura-graphql/models/category-hasura-graphql.mjs → esm2015/infra/hasura-graphql/models/category-hasura-graphql.js} +4 -4
  459. package/{esm2020/infra/hasura-graphql/models/index.mjs → esm2015/infra/hasura-graphql/models/index.js} +5 -5
  460. package/{esm2020/infra/hasura-graphql/models/kit-product-hasura-graphql.mjs → esm2015/infra/hasura-graphql/models/kit-product-hasura-graphql.js} +15 -15
  461. package/{esm2020/infra/hasura-graphql/models/product-hasura-graphql.mjs → esm2015/infra/hasura-graphql/models/product-hasura-graphql.js} +11 -11
  462. package/{esm2020/infra/hasura-graphql/models/variant-hasura-graphql.mjs → esm2015/infra/hasura-graphql/models/variant-hasura-graphql.js} +9 -9
  463. package/esm2015/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js +230 -0
  464. package/{esm2020/infra/hasura-graphql/repositories/catalog/index.mjs → esm2015/infra/hasura-graphql/repositories/catalog/index.js} +4 -4
  465. package/esm2015/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js +462 -0
  466. package/esm2015/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.js +116 -0
  467. package/{esm2020/infra/hasura-graphql/repositories/index.mjs → esm2015/infra/hasura-graphql/repositories/index.js} +2 -2
  468. package/{esm2020/infra/hasura-graphql/types/fields.type.mjs → esm2015/infra/hasura-graphql/types/fields.type.js} +2 -2
  469. package/esm2015/infra/hasura-graphql/types/graphql.repository.type.js +2 -0
  470. package/{esm2020/infra/hasura-graphql/types/hasura-graphql-auth-options.type.mjs → esm2015/infra/hasura-graphql/types/hasura-graphql-auth-options.type.js} +2 -2
  471. package/esm2015/infra/hasura-graphql/types/hasura-graphql-fields.type.js +2 -0
  472. package/{esm2020/infra/hasura-graphql/types/hasura-graphql-headers.type.mjs → esm2015/infra/hasura-graphql/types/hasura-graphql-headers.type.js} +2 -2
  473. package/{esm2020/infra/hasura-graphql/types/index.mjs → esm2015/infra/hasura-graphql/types/index.js} +9 -9
  474. package/{esm2020/infra/hasura-graphql/types/nested-field.type.mjs → esm2015/infra/hasura-graphql/types/nested-field.type.js} +2 -2
  475. package/{esm2020/infra/hasura-graphql/types/query-builder-options.type.mjs → esm2015/infra/hasura-graphql/types/query-builder-options.type.js} +2 -2
  476. package/{esm2020/infra/hasura-graphql/types/variable-options.type.mjs → esm2015/infra/hasura-graphql/types/variable-options.type.js} +2 -2
  477. package/{esm2020/infra/index.mjs → esm2015/infra/index.js} +4 -4
  478. package/{esm2020/infrab4a-connect.mjs → esm2015/infrab4a-connect.js} +4 -4
  479. package/{esm2020/utils/index.mjs → esm2015/utils/index.js} +8 -8
  480. package/{esm2020/utils/is-uuid.mjs → esm2015/utils/is-uuid.js} +3 -3
  481. package/{esm2020/utils/mixins/base.mixin.mjs → esm2015/utils/mixins/base.mixin.js} +6 -6
  482. package/{esm2020/utils/mixins/index.mjs → esm2015/utils/mixins/index.js} +4 -4
  483. package/{esm2020/utils/mixins/merge-constructor-params.type.mjs → esm2015/utils/mixins/merge-constructor-params.type.js} +2 -2
  484. package/{esm2020/utils/mixins/mixin-ctor.type.mjs → esm2015/utils/mixins/mixin-ctor.type.js} +2 -2
  485. package/{esm2020/utils/parse-datetime.mjs → esm2015/utils/parse-datetime.js} +14 -14
  486. package/{esm2020/utils/types/array-element.type.mjs → esm2015/utils/types/array-element.type.js} +2 -2
  487. package/{esm2020/utils/types/index.mjs → esm2015/utils/types/index.js} +3 -3
  488. package/{esm2020/utils/types/prop.type.mjs → esm2015/utils/types/prop.type.js} +2 -2
  489. package/fesm2015/{infrab4a-connect.mjs → infrab4a-connect.js} +3112 -3152
  490. package/fesm2015/infrab4a-connect.js.map +1 -0
  491. package/index.d.ts +5 -5
  492. package/infra/elasticsearch/adapters/axios.adapter.d.ts +14 -14
  493. package/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +7 -7
  494. package/infra/elasticsearch/adapters/index.d.ts +2 -2
  495. package/infra/elasticsearch/index.d.ts +3 -3
  496. package/infra/elasticsearch/indexes/index.d.ts +1 -1
  497. package/infra/elasticsearch/indexes/products-index.d.ts +15 -15
  498. package/infra/elasticsearch/types/elastic-search-result.d.ts +7 -7
  499. package/infra/elasticsearch/types/index.d.ts +1 -1
  500. package/infra/firebase/auth/authentication-firebase-auth.service.d.ts +12 -12
  501. package/infra/firebase/auth/index.d.ts +2 -2
  502. package/infra/firebase/auth/register-firebase-auth.service.d.ts +8 -8
  503. package/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +3 -3
  504. package/infra/firebase/firestore/index.d.ts +3 -3
  505. package/infra/firebase/firestore/mixins/index.d.ts +9 -9
  506. package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +4 -4
  507. package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +4 -4
  508. package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +4 -4
  509. package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +4 -4
  510. package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +4 -4
  511. package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +4 -4
  512. package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +11 -11
  513. package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +7 -7
  514. package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +7 -7
  515. package/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +17 -17
  516. package/infra/firebase/firestore/repositories/catalog/index.d.ts +4 -4
  517. package/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +11 -11
  518. package/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +13 -13
  519. package/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +8 -8
  520. package/infra/firebase/firestore/repositories/index.d.ts +4 -4
  521. package/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +16 -16
  522. package/infra/firebase/firestore/repositories/shop-settings/index.d.ts +3 -2
  523. package/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +8 -8
  524. package/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +8 -0
  525. package/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +8 -8
  526. package/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +8 -8
  527. package/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +8 -8
  528. package/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +12 -12
  529. package/infra/firebase/firestore/repositories/shopping/index.d.ts +8 -8
  530. package/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +7 -7
  531. package/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +13 -13
  532. package/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +8 -8
  533. package/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +8 -8
  534. package/infra/firebase/firestore/repositories/users/index.d.ts +8 -8
  535. package/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +8 -8
  536. package/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +13 -13
  537. package/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +8 -8
  538. package/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +13 -13
  539. package/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +13 -13
  540. package/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +13 -13
  541. package/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +17 -17
  542. package/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +13 -13
  543. package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +6 -6
  544. package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +8 -8
  545. package/infra/firebase/firestore/types/firestore.repository.type.d.ts +12 -14
  546. package/infra/firebase/firestore/types/index.d.ts +3 -3
  547. package/infra/firebase/index.d.ts +2 -2
  548. package/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.d.ts +11 -11
  549. package/infra/hasura-graphql/enums/hasura-graphql-where.enum.d.ts +13 -13
  550. package/infra/hasura-graphql/enums/index.d.ts +2 -2
  551. package/infra/hasura-graphql/index.d.ts +4 -4
  552. package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +13 -13
  553. package/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.d.ts +10 -10
  554. package/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +6 -6
  555. package/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +8 -8
  556. package/infra/hasura-graphql/mixins/helpers/index.d.ts +4 -4
  557. package/infra/hasura-graphql/mixins/index.d.ts +7 -7
  558. package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +8 -8
  559. package/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +11 -11
  560. package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +7 -7
  561. package/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +25 -25
  562. package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +24 -24
  563. package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +11 -11
  564. package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +14 -14
  565. package/infra/hasura-graphql/models/category-hasura-graphql.d.ts +6 -6
  566. package/infra/hasura-graphql/models/index.d.ts +4 -4
  567. package/infra/hasura-graphql/models/kit-product-hasura-graphql.d.ts +6 -6
  568. package/infra/hasura-graphql/models/product-hasura-graphql.d.ts +14 -14
  569. package/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +9 -9
  570. package/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +27 -27
  571. package/infra/hasura-graphql/repositories/catalog/index.d.ts +3 -3
  572. package/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +28 -28
  573. package/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +14 -14
  574. package/infra/hasura-graphql/repositories/index.d.ts +1 -1
  575. package/infra/hasura-graphql/types/fields.type.d.ts +2 -2
  576. package/infra/hasura-graphql/types/graphql.repository.type.d.ts +21 -21
  577. package/infra/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +8 -8
  578. package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +40 -40
  579. package/infra/hasura-graphql/types/hasura-graphql-headers.type.d.ts +7 -7
  580. package/infra/hasura-graphql/types/index.d.ts +8 -8
  581. package/infra/hasura-graphql/types/nested-field.type.d.ts +7 -7
  582. package/infra/hasura-graphql/types/query-builder-options.type.d.ts +7 -7
  583. package/infra/hasura-graphql/types/variable-options.type.d.ts +9 -9
  584. package/infra/index.d.ts +3 -3
  585. package/infrab4a-connect.d.ts +5 -0
  586. package/package.json +8 -21
  587. package/utils/index.d.ts +7 -7
  588. package/utils/is-uuid.d.ts +1 -1
  589. package/utils/mixins/base.mixin.d.ts +3 -3
  590. package/utils/mixins/index.d.ts +3 -3
  591. package/utils/mixins/merge-constructor-params.type.d.ts +3 -3
  592. package/utils/mixins/mixin-ctor.type.d.ts +1 -1
  593. package/utils/parse-datetime.d.ts +1 -1
  594. package/utils/types/array-element.type.d.ts +1 -1
  595. package/utils/types/index.d.ts +2 -2
  596. package/utils/types/prop.type.d.ts +1 -1
  597. package/esm2020/domain/catalog/models/category.mjs +0 -10
  598. package/esm2020/domain/catalog/models/product.mjs +0 -17
  599. package/esm2020/domain/catalog/models/types/product-review.type.mjs +0 -2
  600. package/esm2020/domain/catalog/models/variant.mjs +0 -10
  601. package/esm2020/domain/catalog/repositories/category.repository.mjs +0 -2
  602. package/esm2020/domain/catalog/repositories/product.repository.mjs +0 -2
  603. package/esm2020/domain/generic/model/base.model.mjs +0 -23
  604. package/esm2020/domain/generic/model/types/base-model-builder.type.mjs +0 -2
  605. package/esm2020/domain/generic/model/types/identifier-model.type.mjs +0 -2
  606. package/esm2020/domain/generic/model/types/non-function-properties.type.mjs +0 -2
  607. package/esm2020/domain/generic/repository/create.repository.mjs +0 -2
  608. package/esm2020/domain/generic/repository/crud.repository.mjs +0 -2
  609. package/esm2020/domain/generic/repository/delete.repository.mjs +0 -2
  610. package/esm2020/domain/generic/repository/find.repository.mjs +0 -2
  611. package/esm2020/domain/generic/repository/get.repository.mjs +0 -2
  612. package/esm2020/domain/generic/repository/read.repository.mjs +0 -2
  613. package/esm2020/domain/generic/repository/types/repository-find-filters.type.mjs +0 -2
  614. package/esm2020/domain/generic/repository/types/repository-update-params.type.mjs +0 -2
  615. package/esm2020/domain/generic/repository/update.repository.mjs +0 -2
  616. package/esm2020/domain/location/models/address.mjs +0 -7
  617. package/esm2020/domain/shop-settings/models/home.mjs +0 -7
  618. package/esm2020/domain/shop-settings/models/types/home-data.type.mjs +0 -2
  619. package/esm2020/domain/shop-settings/models/types/index.mjs +0 -6
  620. package/esm2020/domain/shopping/models/checkout.mjs +0 -38
  621. package/esm2020/domain/shopping/models/payment.mjs +0 -169
  622. package/esm2020/domain/shopping/models/types/payment-address.type.mjs +0 -2
  623. package/esm2020/domain/shopping/models/types/payment-card.type.mjs +0 -2
  624. package/esm2020/domain/shopping/models/types/payment-customer.type.mjs +0 -2
  625. package/esm2020/domain/users/models/subscription/edition.mjs +0 -7
  626. package/esm2020/domain/users/repositories/user.repository.mjs +0 -2
  627. package/esm2020/domain/users/services/authentication.service.mjs +0 -2
  628. package/esm2020/domain/users/use-cases/authentication.mjs +0 -43
  629. package/esm2020/domain/users/use-cases/recovery-password.mjs +0 -9
  630. package/esm2020/domain/users/use-cases/register.mjs +0 -38
  631. package/esm2020/domain/users/use-cases/signout.mjs +0 -9
  632. package/esm2020/infra/elasticsearch/adapters/axios.adapter.mjs +0 -48
  633. package/esm2020/infra/elasticsearch/adapters/elastic-search.adapter.mjs +0 -2
  634. package/esm2020/infra/elasticsearch/indexes/products-index.mjs +0 -88
  635. package/esm2020/infra/firebase/auth/authentication-firebase-auth.service.mjs +0 -41
  636. package/esm2020/infra/firebase/auth/register-firebase-auth.service.mjs +0 -23
  637. package/esm2020/infra/firebase/firestore/enums/firestore-field-type.enum.mjs +0 -10
  638. package/esm2020/infra/firebase/firestore/enums/index.mjs +0 -2
  639. package/esm2020/infra/firebase/firestore/mixins/with-create-firestore.mixin.mjs +0 -25
  640. package/esm2020/infra/firebase/firestore/mixins/with-crud-firestore.mixin.mjs +0 -10
  641. package/esm2020/infra/firebase/firestore/mixins/with-delete-firestore.mixin.mjs +0 -15
  642. package/esm2020/infra/firebase/firestore/mixins/with-find-firestore.mixin.mjs +0 -94
  643. package/esm2020/infra/firebase/firestore/mixins/with-firestore.mixin.mjs +0 -52
  644. package/esm2020/infra/firebase/firestore/mixins/with-get-firestore.mixin.mjs +0 -21
  645. package/esm2020/infra/firebase/firestore/mixins/with-sub-collection.mixin.mjs +0 -11
  646. package/esm2020/infra/firebase/firestore/mixins/with-update-firestore.mixin.mjs +0 -42
  647. package/esm2020/infra/firebase/firestore/repositories/catalog/category-firestore.repository.mjs +0 -64
  648. package/esm2020/infra/firebase/firestore/repositories/catalog/product-firestore.repository.mjs +0 -45
  649. package/esm2020/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.mjs +0 -54
  650. package/esm2020/infra/firebase/firestore/repositories/shopping/order-firestore.repository.mjs +0 -38
  651. package/esm2020/infra/firebase/firestore/repositories/users/user-firestore.repository.mjs +0 -56
  652. package/esm2020/infra/firebase/firestore/types/firestore-sub.repository.type.mjs +0 -2
  653. package/esm2020/infra/firebase/firestore/types/firestore.helpers.type.mjs +0 -2
  654. package/esm2020/infra/firebase/firestore/types/firestore.repository.type.mjs +0 -2
  655. package/esm2020/infra/hasura-graphql/mixins/helpers/attribute-option.helper.mjs +0 -32
  656. package/esm2020/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.mjs +0 -68
  657. package/esm2020/infra/hasura-graphql/mixins/helpers/filter-option.helper.mjs +0 -22
  658. package/esm2020/infra/hasura-graphql/mixins/helpers/graphql-field.helper.mjs +0 -96
  659. package/esm2020/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.mjs +0 -37
  660. package/esm2020/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.mjs +0 -10
  661. package/esm2020/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.mjs +0 -29
  662. package/esm2020/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.mjs +0 -46
  663. package/esm2020/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.mjs +0 -34
  664. package/esm2020/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.mjs +0 -92
  665. package/esm2020/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.mjs +0 -58
  666. package/esm2020/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.mjs +0 -219
  667. package/esm2020/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.mjs +0 -466
  668. package/esm2020/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.mjs +0 -106
  669. package/esm2020/infra/hasura-graphql/types/graphql.repository.type.mjs +0 -2
  670. package/esm2020/infra/hasura-graphql/types/hasura-graphql-fields.type.mjs +0 -2
  671. package/fesm2015/infrab4a-connect.mjs.map +0 -1
  672. package/fesm2020/infrab4a-connect.mjs +0 -3261
  673. package/fesm2020/infrab4a-connect.mjs.map +0 -1
  674. package/infra/firebase/firestore/enums/firestore-field-type.enum.d.ts +0 -8
  675. package/infra/firebase/firestore/enums/index.d.ts +0 -1
@@ -1,92 +0,0 @@
1
- import { mutation, query } from 'gql-query-builder';
2
- import fetch from 'node-fetch';
3
- import { isBoolean, isInteger, isNaN, isNil, isNumber, isString, isUUID, parseISO, } from '../../../utils';
4
- import { GraphQLFieldHelper } from './helpers';
5
- export const withHasuraGraphQL = (MixinBase) => {
6
- return class HasuraGraphQLMixin extends MixinBase {
7
- constructor(...params) {
8
- const options = params[0];
9
- super(...params);
10
- this.tableName = options.tableName;
11
- this.endpoint = options.endpoint;
12
- this.authOptions = options.authOptions;
13
- this.model = options.model;
14
- this.fields = options.fields || this.model.identifiersFields;
15
- }
16
- get headers() {
17
- return {
18
- 'Content-Type': 'application/json',
19
- ...(isNil(this.authOptions.authToken) ? {} : { Authorization: this.authOptions.authToken }),
20
- ...(isNil(this.authOptions.adminSecret) ? {} : { 'X-Hasura-Admin-Secret': this.authOptions.adminSecret }),
21
- ...(isNil(this.authOptions.authRole)
22
- ? {}
23
- : { 'X-Hasura-Role': this.authOptions.authRole.role, 'X-Hasura-User-Id': this.authOptions.authRole.userId }),
24
- };
25
- }
26
- async mutation(operation, fields, variables) {
27
- const resultQuery = mutation({
28
- operation,
29
- variables,
30
- fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),
31
- });
32
- return this.fetch(resultQuery);
33
- }
34
- async query(operation, fields, variables) {
35
- const resultQuery = GraphQLFieldHelper.CheckIsGraphQLParams(operation)
36
- ? query(operation.map((option) => ({
37
- operation: option.operation,
38
- variables: option.variables,
39
- fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(option.fields),
40
- })))
41
- : query({
42
- operation,
43
- variables,
44
- fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),
45
- });
46
- return this.fetch(resultQuery);
47
- }
48
- async fetch(params) {
49
- const headers = this.headers;
50
- const response = await fetch(`${this.endpoint}`, {
51
- method: 'POST',
52
- body: JSON.stringify(params),
53
- headers,
54
- });
55
- const result = await response.json();
56
- if (!isNil(result.errors))
57
- throw new Error(JSON.stringify(result.errors));
58
- return result.data;
59
- }
60
- getAttributeGraphQLTypeOf(value) {
61
- if (isUUID(value))
62
- return 'uuid';
63
- if (isString(value))
64
- return 'String';
65
- if (isBoolean(value))
66
- return 'Boolean';
67
- if (value instanceof Date)
68
- return 'timestamptz';
69
- if (isInteger(value))
70
- return 'Int';
71
- if (isNumber(value))
72
- return 'numeric';
73
- throw new Error('Type not implemented yet');
74
- }
75
- checkIfIsDateTimeAndParse(value) {
76
- if (!/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/.test(value))
77
- return value;
78
- const date = parseISO(value);
79
- if (isNaN(date.getTime()))
80
- return value;
81
- return date;
82
- }
83
- convertDataFromHasura(data) {
84
- const plain = GraphQLFieldHelper.ConvertFieldValueFrom(data, this.fields);
85
- return this.model.toInstance(plain);
86
- }
87
- convertDataToHasura(instance, update = false) {
88
- return GraphQLFieldHelper.ConvertFieldValueTo(instance, this.fields, update);
89
- }
90
- };
91
- };
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1oYXN1cmEtZ3JhcGhxbC5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL21peGlucy93aXRoLWhhc3VyYS1ncmFwaHFsLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbkQsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBRzlCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxLQUFLLEVBQ0wsUUFBUSxFQUNSLFFBQVEsRUFDUixNQUFNLEVBR04sUUFBUSxHQUNULE1BQU0sZ0JBQWdCLENBQUE7QUFVdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBVTlDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQy9CLFNBQVksRUFDcUcsRUFBRTtJQUNuSCxPQUFPLE1BQU0sa0JBQW1CLFNBQVEsU0FBUztRQWtCL0MsWUFBWSxHQUFHLE1BQU07WUFDbkIsTUFBTSxPQUFPLEdBQTZCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUVuRCxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQTtZQUVoQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUE7WUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFBO1lBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQTtZQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWdELENBQUE7UUFDOUYs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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG11dGF0aW9uLCBxdWVyeSB9IGZyb20gJ2dxbC1xdWVyeS1idWlsZGVyJ1xuaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnXG5cbmltcG9ydCB7IEJhc2VNb2RlbEJ1aWxkZXIsIE1vZGVsQmFzZVN0cnVjdHVyZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7XG4gIGlzQm9vbGVhbixcbiAgaXNJbnRlZ2VyLFxuICBpc05hTixcbiAgaXNOaWwsXG4gIGlzTnVtYmVyLFxuICBpc1N0cmluZyxcbiAgaXNVVUlELFxuICBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zLFxuICBNaXhpbkN0b3IsXG4gIHBhcnNlSVNPLFxufSBmcm9tICcuLi8uLi8uLi91dGlscydcbmltcG9ydCB7XG4gIEdyYXBoUUxQYXJhbXMsXG4gIEdyYXBoUUxSZXBvc2l0b3J5LFxuICBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMsXG4gIEhhc3VyYUdyYXBoUUxGaWVsZHMsXG4gIEhhc3VyYUdyYXBoUUxIZWFkZXJzLFxuICBWYXJpYWJsZU9wdGlvbnMsXG59IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBHcmFwaFFMRmllbGRIZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMnXG5cbmV4cG9ydCB0eXBlIENvbnN0cnVjdG9yUGFyYW1zPE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPiA9IHtcbiAgdGFibGVOYW1lOiBzdHJpbmdcbiAgbW9kZWw6IEJhc2VNb2RlbEJ1aWxkZXI8TW9kZWw+XG4gIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5cbiAgZW5kcG9pbnQ6IHN0cmluZ1xuICBhdXRoT3B0aW9uczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zXG59XG5cbmV4cG9ydCBjb25zdCB3aXRoSGFzdXJhR3JhcGhRTCA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSwgVCBleHRlbmRzIE1peGluQ3RvciA9IE1peGluQ3Rvcj4oXG4gIE1peGluQmFzZTogVCxcbik6IE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4sIE1lcmdlQ29uc3RydWN0b3JQYXJhbXM8Q29uc3RydWN0b3JQYXJhbXM8TUJhc2U+LCBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VD4+PiA9PiB7XG4gIHJldHVybiBjbGFzcyBIYXN1cmFHcmFwaFFMTWl4aW4gZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4ge1xuICAgIHRhYmxlTmFtZTogc3RyaW5nXG4gICAgZW5kcG9pbnQ6IHN0cmluZ1xuICAgIGF1dGhPcHRpb25zOiBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnNcbiAgICBtb2RlbDogQmFzZU1vZGVsQnVpbGRlcjxNQmFzZT5cbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+XG5cbiAgICBnZXQgaGVhZGVycygpOiBIYXN1cmFHcmFwaFFMSGVhZGVycyB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi4oaXNOaWwodGhpcy5hdXRoT3B0aW9ucy5hdXRoVG9rZW4pID8ge30gOiB7IEF1dGhvcml6YXRpb246IHRoaXMuYXV0aE9wdGlvbnMuYXV0aFRva2VuIH0pLFxuICAgICAgICAuLi4oaXNOaWwodGhpcy5hdXRoT3B0aW9ucy5hZG1pblNlY3JldCkgPyB7fSA6IHsgJ1gtSGFzdXJhLUFkbWluLVNlY3JldCc6IHRoaXMuYXV0aE9wdGlvbnMuYWRtaW5TZWNyZXQgfSksXG4gICAgICAgIC4uLihpc05pbCh0aGlzLmF1dGhPcHRpb25zLmF1dGhSb2xlKVxuICAgICAgICAgID8ge31cbiAgICAgICAgICA6IHsgJ1gtSGFzdXJhLVJvbGUnOiB0aGlzLmF1dGhPcHRpb25zLmF1dGhSb2xlLnJvbGUsICdYLUhhc3VyYS1Vc2VyLUlkJzogdGhpcy5hdXRoT3B0aW9ucy5hdXRoUm9sZS51c2VySWQgfSksXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoLi4ucGFyYW1zKSB7XG4gICAgICBjb25zdCBvcHRpb25zOiBDb25zdHJ1Y3RvclBhcmFtczxNQmFzZT4gPSBwYXJhbXNbMF1cblxuICAgICAgc3VwZXIoLi4ucGFyYW1zKVxuXG4gICAgICB0aGlzLnRhYmxlTmFtZSA9IG9wdGlvbnMudGFibGVOYW1lXG4gICAgICB0aGlzLmVuZHBvaW50ID0gb3B0aW9ucy5lbmRwb2ludFxuICAgICAgdGhpcy5hdXRoT3B0aW9ucyA9IG9wdGlvbnMuYXV0aE9wdGlvbnNcbiAgICAgIHRoaXMubW9kZWwgPSBvcHRpb25zLm1vZGVsXG4gICAgICB0aGlzLmZpZWxkcyA9IG9wdGlvbnMuZmllbGRzIHx8ICh0aGlzLm1vZGVsLmlkZW50aWZpZXJzRmllbGRzIGFzIEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+KVxuICAgIH1cblxuICAgIGFzeW5jIG11dGF0aW9uPFJldHVybkZpZWxkcyA9IGFueT4oXG4gICAgICBvcGVyYXRpb246IHN0cmluZyxcbiAgICAgIGZpZWxkcz86IEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+LFxuICAgICAgdmFyaWFibGVzPzogVmFyaWFibGVPcHRpb25zLFxuICAgICk6IFByb21pc2U8UmV0dXJuRmllbGRzPiB7XG4gICAgICBjb25zdCByZXN1bHRRdWVyeSA9IG11dGF0aW9uKHtcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICB2YXJpYWJsZXMsXG4gICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZHMpLFxuICAgICAgfSlcblxuICAgICAgcmV0dXJuIHRoaXMuZmV0Y2gocmVzdWx0UXVlcnkpXG4gICAgfVxuXG4gICAgYXN5bmMgcXVlcnk8UmV0dXJuRmllbGRzID0gYW55PihcbiAgICAgIG9wZXJhdGlvbjogc3RyaW5nIHwgR3JhcGhRTFBhcmFtczxNQmFzZT5bXSxcbiAgICAgIGZpZWxkcz86IEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+LFxuICAgICAgdmFyaWFibGVzPzogVmFyaWFibGVPcHRpb25zLFxuICAgICk6IFByb21pc2U8UmV0dXJuRmllbGRzPiB7XG4gICAgICBjb25zdCByZXN1bHRRdWVyeSA9IEdyYXBoUUxGaWVsZEhlbHBlci5DaGVja0lzR3JhcGhRTFBhcmFtcyhvcGVyYXRpb24pXG4gICAgICAgID8gcXVlcnkoXG4gICAgICAgICAgICBvcGVyYXRpb24ubWFwKChvcHRpb24pID0+ICh7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogb3B0aW9uLm9wZXJhdGlvbixcbiAgICAgICAgICAgICAgdmFyaWFibGVzOiBvcHRpb24udmFyaWFibGVzLFxuICAgICAgICAgICAgICBmaWVsZHM6IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMob3B0aW9uLmZpZWxkcyksXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKVxuICAgICAgICA6IHF1ZXJ5KHtcbiAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgIHZhcmlhYmxlcyxcbiAgICAgICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZHMpLFxuICAgICAgICAgIH0pXG5cbiAgICAgIHJldHVybiB0aGlzLmZldGNoKHJlc3VsdFF1ZXJ5KVxuICAgIH1cblxuICAgIGFzeW5jIGZldGNoPFJldHVybkZpZWxkcyA9IGFueT4ocGFyYW1zOiB7IHZhcmlhYmxlczogYW55OyBxdWVyeTogc3RyaW5nIH0pOiBQcm9taXNlPFJldHVybkZpZWxkcz4ge1xuICAgICAgY29uc3QgaGVhZGVycyA9IHRoaXMuaGVhZGVyc1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt0aGlzLmVuZHBvaW50fWAsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHBhcmFtcyksXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgaWYgKCFpc05pbChyZXN1bHQuZXJyb3JzKSkgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHJlc3VsdC5lcnJvcnMpKVxuXG4gICAgICByZXR1cm4gcmVzdWx0LmRhdGFcbiAgICB9XG5cbiAgICBnZXRBdHRyaWJ1dGVHcmFwaFFMVHlwZU9mPEZpZWxkVHlwZT4odmFsdWU6IEZpZWxkVHlwZSk6IHN0cmluZyB7XG4gICAgICBpZiAoaXNVVUlEKHZhbHVlIGFzIGFueSkpIHJldHVybiAndXVpZCdcbiAgICAgIGlmIChpc1N0cmluZyh2YWx1ZSkpIHJldHVybiAnU3RyaW5nJ1xuICAgICAgaWYgKGlzQm9vbGVhbih2YWx1ZSkpIHJldHVybiAnQm9vbGVhbidcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHJldHVybiAndGltZXN0YW1wdHonXG4gICAgICBpZiAoaXNJbnRlZ2VyKHZhbHVlKSkgcmV0dXJuICdJbnQnXG4gICAgICBpZiAoaXNOdW1iZXIodmFsdWUpKSByZXR1cm4gJ251bWVyaWMnXG5cbiAgICAgIHRocm93IG5ldyBFcnJvcignVHlwZSBub3QgaW1wbGVtZW50ZWQgeWV0JylcbiAgICB9XG5cbiAgICBjaGVja0lmSXNEYXRlVGltZUFuZFBhcnNlKHZhbHVlOiBzdHJpbmcpOiBEYXRlIHwgc3RyaW5nIHtcbiAgICAgIGlmICghL15cXGR7NH0tKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEyXVswLTldfDNbMDFdKSQvLnRlc3QodmFsdWUpKSByZXR1cm4gdmFsdWVcblxuICAgICAgY29uc3QgZGF0ZSA9IHBhcnNlSVNPKHZhbHVlKVxuXG4gICAgICBpZiAoaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSByZXR1cm4gdmFsdWVcblxuICAgICAgcmV0dXJuIGRhdGVcbiAgICB9XG5cbiAgICBjb252ZXJ0RGF0YUZyb21IYXN1cmEoZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPik6IE1CYXNlIHtcbiAgICAgIGNvbnN0IHBsYWluID0gR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRGaWVsZFZhbHVlRnJvbShkYXRhLCB0aGlzLmZpZWxkcylcblxuICAgICAgcmV0dXJuIHRoaXMubW9kZWwudG9JbnN0YW5jZShwbGFpbilcbiAgICB9XG5cbiAgICBjb252ZXJ0RGF0YVRvSGFzdXJhKGluc3RhbmNlOiBNQmFzZSwgdXBkYXRlID0gZmFsc2UpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+IHtcbiAgICAgIHJldHVybiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydEZpZWxkVmFsdWVUbyhpbnN0YW5jZSwgdGhpcy5maWVsZHMsIHVwZGF0ZSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,58 +0,0 @@
1
- import { BaseModel, UpdateOptionActions, } from '../../../domain';
2
- import { isNil } from '../../../utils';
3
- import { AttributeOptionHelper } from './helpers';
4
- export const withUpdateHasuraGraphQL = (MixinBase) => {
5
- const getValueByAction = (options) => {
6
- if (options instanceof BaseModel)
7
- return options.toPlain();
8
- if (isNil(options?.action))
9
- return options;
10
- if ([UpdateOptionActions.REMOVE_FIELD.toString(), UpdateOptionActions.NULL.toString()].includes(options.action))
11
- return null;
12
- return options.value;
13
- };
14
- return class UpdateHasuraGraphQLMixin extends MixinBase {
15
- constructor(...params) {
16
- const options = params?.[0];
17
- super(...params);
18
- this.updateGraphQLOperation = options?.updateGraphQLOperation || `update_${this.tableName}_by_pk`;
19
- this.updateGraphQLObjectType = options?.updateGraphQLObjectType || `${this.tableName}_set_input`;
20
- this.updateGraphQLPKType = options?.updateGraphQLPKType || `${this.tableName}_pk_columns_input`;
21
- }
22
- async update(data) {
23
- const plainData = this.paramsToPlain(data);
24
- await this.mutation(this.updateGraphQLOperation, this.model.identifiersFields.map((field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName), {
25
- _set: {
26
- type: this.updateGraphQLObjectType,
27
- value: this.convertDataToHasura(this.model.toInstance(plainData), true),
28
- required: true,
29
- },
30
- pk_columns: { type: this.updateGraphQLPKType, value: this.getUpdateModelKeys(plainData), required: true },
31
- });
32
- return this.model.toInstance(plainData);
33
- }
34
- paramsToPlain(params) {
35
- const model = this.model;
36
- if (model.isModel(params))
37
- return params.toPlain();
38
- return Object.keys(params).reduce((data, currentKey) => ({
39
- ...data,
40
- ...(params[currentKey] !== undefined && { [currentKey]: getValueByAction(params[currentKey]) }),
41
- }), {});
42
- }
43
- getUpdateModelKeys(data) {
44
- const instance = this.model.toInstance(data);
45
- return this.model.identifiersFields.reduce((ids, identifier) => {
46
- if (isNil(instance[identifier]))
47
- return ids;
48
- const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
49
- const value = columnOption?.to?.(data[identifier.toString()], instance) || data[columnOption.attributeName];
50
- return {
51
- ...ids,
52
- [columnOption.columnName]: value,
53
- };
54
- }, {});
55
- }
56
- };
57
- };
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC11cGRhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC11cGRhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFJVCxtQkFBbUIsR0FHcEIsTUFBTSxpQkFBaUIsQ0FBQTtBQUN4QixPQUFPLEVBQUUsS0FBSyxFQUFxQyxNQUFNLGdCQUFnQixDQUFBO0FBR3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQVlqRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUlyQyxTQUEyRCxFQUkzRCxFQUFFO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQTZCLEVBQVcsRUFBRTtRQUNsRSxJQUFJLE9BQU8sWUFBWSxTQUFTO1lBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDMUQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztZQUFFLE9BQU8sT0FBTyxDQUFBO1FBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDN0csT0FBTyxJQUFJLENBQUE7UUFFYixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUE7SUFDdEIsQ0FBQyxDQUFBO0lBRUQsT0FBTyxNQUFNLHdCQUF5QixTQUFRLFNBQVM7UUFLckQsWUFBWSxHQUFHLE1BQU07WUFDbkIsTUFBTSxPQUFPLEdBQTRCLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBRXBELEtBQUssQ0FBQyxHQUFHLE1BQU0s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T0FBTztvQkFDTCxHQUFHLEdBQUc7b0JBQ04sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSztpQkFDakMsQ0FBQTtZQUNILENBQUMsRUFBRSxFQUErQyxDQUFDLENBQUE7UUFDckQsQ0FBQztLQUNLLENBQUE7QUFDVixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlTW9kZWwsXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllcyxcbiAgUmVwb3NpdG9yeVVwZGF0ZVBhcmFtcyxcbiAgVXBkYXRlT3B0aW9uQWN0aW9ucyxcbiAgVXBkYXRlT3B0aW9ucyxcbiAgVXBkYXRlUmVwb3NpdG9yeSxcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgaXNOaWwsIE1lcmdlQ29uc3RydWN0b3JQYXJhbXMsIE1peGluQ3RvciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgR3JhcGhRTFJlcG9zaXRvcnksIEhhc3VyYUdyYXBoUUxGaWVsZHMgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5leHBvcnQgdHlwZSBVcGRhdGVIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeVR5cGU8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+ID0gVXBkYXRlUmVwb3NpdG9yeTxNQmFzZT4gJiB7XG4gIHBhcmFtc1RvUGxhaW4ocGFyYW1zOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPE1CYXNlPik6IFBhcnRpYWw8TUJhc2U+XG59XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUNvbnN0cnVjdG9yUGFyYW1zID0ge1xuICB1cGRhdGVHcmFwaFFMT3BlcmF0aW9uPzogc3RyaW5nXG4gIHVwZGF0ZUdyYXBoUUxPYmplY3RUeXBlPzogc3RyaW5nXG4gIHVwZGF0ZUdyYXBoUUxQS1R5cGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhVcGRhdGVIYXN1cmFHcmFwaFFMID0gPFxuICBNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgVE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4+LFxuPihcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+PiAmIFRNaXhpbkJhc2UsXG4pOiBNaXhpbkN0b3I8XG4gIEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPiAmIFVwZGF0ZUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5VHlwZTxNQmFzZT4gJiBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4sXG4gIE1lcmdlQ29uc3RydWN0b3JQYXJhbXM8VXBkYXRlQ29uc3RydWN0b3JQYXJhbXMsIENvbnN0cnVjdG9yUGFyYW1ldGVyczxUTWl4aW5CYXNlPj5cbj4gPT4ge1xuICBjb25zdCBnZXRWYWx1ZUJ5QWN0aW9uID0gKG9wdGlvbnM6IFVwZGF0ZU9wdGlvbnM8TUJhc2U+KTogdW5rbm93biA9PiB7XG4gICAgaWYgKG9wdGlvbnMgaW5zdGFuY2VvZiBCYXNlTW9kZWwpIHJldHVybiBvcHRpb25zLnRvUGxhaW4oKVxuICAgIGlmIChpc05pbChvcHRpb25zPy5hY3Rpb24pKSByZXR1cm4gb3B0aW9uc1xuICAgIGlmIChbVXBkYXRlT3B0aW9uQWN0aW9ucy5SRU1PVkVfRklFTEQudG9TdHJpbmcoKSwgVXBkYXRlT3B0aW9uQWN0aW9ucy5OVUxMLnRvU3RyaW5nKCldLmluY2x1ZGVzKG9wdGlvbnMuYWN0aW9uKSlcbiAgICAgIHJldHVybiBudWxsXG5cbiAgICByZXR1cm4gb3B0aW9ucy52YWx1ZVxuICB9XG5cbiAgcmV0dXJuIGNsYXNzIFVwZGF0ZUhhc3VyYUdyYXBoUUxNaXhpbiBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIFVwZGF0ZVJlcG9zaXRvcnk8TUJhc2U+IHtcbiAgICB1cGRhdGVHcmFwaFFMT3BlcmF0aW9uOiBzdHJpbmdcbiAgICB1cGRhdGVHcmFwaFFMT2JqZWN0VHlwZTogc3RyaW5nXG4gICAgdXBkYXRlR3JhcGhRTFBLVHlwZTogc3RyaW5nXG5cbiAgICBjb25zdHJ1Y3RvciguLi5wYXJhbXMpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IFVwZGF0ZUNvbnN0cnVjdG9yUGFyYW1zID0gcGFyYW1zPy5bMF1cblxuICAgICAgc3VwZXIoLi4ucGFyYW1zKVxuXG4gICAgICB0aGlzLnVwZGF0ZUdyYXBoUUxPcGVyYXRpb24gPSBvcHRpb25zPy51cGRhdGVHcmFwaFFMT3BlcmF0aW9uIHx8IGB1cGRhdGVfJHt0aGlzLnRhYmxlTmFtZX1fYnlfcGtgXG4gICAgICB0aGlzLnVwZGF0ZUdyYXBoUUxPYmplY3RUeXBlID0gb3B0aW9ucz8udXBkYXRlR3JhcGhRTE9iamVjdFR5cGUgfHwgYCR7dGhpcy50YWJsZU5hbWV9X3NldF9pbnB1dGBcbiAgICAgIHRoaXMudXBkYXRlR3JhcGhRTFBLVHlwZSA9IG9wdGlvbnM/LnVwZGF0ZUdyYXBoUUxQS1R5cGUgfHwgYCR7dGhpcy50YWJsZU5hbWV9X3BrX2NvbHVtbnNfaW5wdXRgXG4gICAgfVxuXG4gICAgYXN5bmMgdXBkYXRlKGRhdGE6IFJlcG9zaXRvcnlVcGRhdGVQYXJhbXM8TUJhc2U+KTogUHJvbWlzZTxNQmFzZT4ge1xuICAgICAgY29uc3QgcGxhaW5EYXRhID0gdGhpcy5wYXJhbXNUb1BsYWluKGRhdGEpXG5cbiAgICAgIGF3YWl0IHRoaXMubXV0YXRpb24oXG4gICAgICAgIHRoaXMudXBkYXRlR3JhcGhRTE9wZXJhdGlvbixcbiAgICAgICAgdGhpcy5tb2RlbC5pZGVudGlmaWVyc0ZpZWxkcy5tYXAoXG4gICAgICAgICAgKGZpZWxkKSA9PiBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKGZpZWxkLCB0aGlzLmZpZWxkcykuY29sdW1uTmFtZSxcbiAgICAgICAgKSBhcyBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgICAgICAge1xuICAgICAgICAgIF9zZXQ6IHtcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudXBkYXRlR3JhcGhRTE9iamVjdFR5cGUsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5jb252ZXJ0RGF0YVRvSGFzdXJhKHRoaXMubW9kZWwudG9JbnN0YW5jZShwbGFpbkRhdGEpLCB0cnVlKSxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGtfY29sdW1uczogeyB0eXBlOiB0aGlzLnVwZGF0ZUdyYXBoUUxQS1R5cGUsIHZhbHVlOiB0aGlzLmdldFVwZGF0ZU1vZGVsS2V5cyhwbGFpbkRhdGEpLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gdGhpcy5tb2RlbC50b0luc3RhbmNlKHBsYWluRGF0YSlcbiAgICB9XG5cbiAgICBwYXJhbXNUb1BsYWluKHBhcmFtczogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxNQmFzZT4pOiBQYXJ0aWFsPE1CYXNlPiB7XG4gICAgICBjb25zdCBtb2RlbCA9IHRoaXMubW9kZWxcblxuICAgICAgaWYgKG1vZGVsLmlzTW9kZWwocGFyYW1zKSkgcmV0dXJuIHBhcmFtcy50b1BsYWluKClcblxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHBhcmFtcykucmVkdWNlKFxuICAgICAgICAoZGF0YSwgY3VycmVudEtleSkgPT4gKHtcbiAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgIC4uLihwYXJhbXNbY3VycmVudEtleV0gIT09IHVuZGVmaW5lZCAmJiB7IFtjdXJyZW50S2V5XTogZ2V0VmFsdWVCeUFjdGlvbihwYXJhbXNbY3VycmVudEtleV0pIH0pLFxuICAgICAgICB9KSxcbiAgICAgICAge30sXG4gICAgICApXG4gICAgfVxuXG4gICAgZ2V0VXBkYXRlTW9kZWxLZXlzKGRhdGE6IFBhcnRpYWw8TUJhc2U+KTogTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllczxNQmFzZT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLm1vZGVsLnRvSW5zdGFuY2UoZGF0YSlcblxuICAgICAgcmV0dXJuIHRoaXMubW9kZWwuaWRlbnRpZmllcnNGaWVsZHMucmVkdWNlKChpZHMsIGlkZW50aWZpZXIpID0+IHtcbiAgICAgICAgaWYgKGlzTmlsKGluc3RhbmNlW2lkZW50aWZpZXJdKSkgcmV0dXJuIGlkc1xuXG4gICAgICAgIGNvbnN0IGNvbHVtbk9wdGlvbiA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoaWRlbnRpZmllciwgdGhpcy5maWVsZHMpXG4gICAgICAgIGNvbnN0IHZhbHVlID0gY29sdW1uT3B0aW9uPy50bz8uKGRhdGFbaWRlbnRpZmllci50b1N0cmluZygpXSwgaW5zdGFuY2UpIHx8IGRhdGFbY29sdW1uT3B0aW9uLmF0dHJpYnV0ZU5hbWVdXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5pZHMsXG4gICAgICAgICAgW2NvbHVtbk9wdGlvbi5jb2x1bW5OYW1lXTogdmFsdWUsXG4gICAgICAgIH1cbiAgICAgIH0sIHt9IGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnRpZXM8TUJhc2U+KVxuICAgIH1cbiAgfSBhcyBhbnlcbn1cbiJdfQ==
@@ -1,219 +0,0 @@
1
- import { Category, Where, } from '../../../../domain';
2
- import { DuplicatedResultsError, NotFoundError } from '../../../../errors';
3
- import { Base, omit } from '../../../../utils';
4
- import { HasuraGraphQLColumnType } from '../../enums';
5
- import { withCrudHasuraGraphQL, withHasuraGraphQL } from '../../mixins';
6
- export class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
7
- constructor(endpoint, authOptions, productRepository) {
8
- super({
9
- tableName: 'category',
10
- model: Category,
11
- endpoint,
12
- authOptions,
13
- fields: [
14
- { id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },
15
- { firestoreId: { columnName: 'firestore_id' } },
16
- 'name',
17
- 'description',
18
- 'image',
19
- 'published',
20
- 'shop',
21
- 'slug',
22
- { brandCategory: { columnName: 'brand_category' } },
23
- { brandCategoryBanner: { columnName: 'brand_banner' } },
24
- { brandCategoryBannerMobile: { columnName: 'brand_banner_mobile' } },
25
- { brandLogo: { columnName: 'brand_logo' } },
26
- { brandCondition: { columnName: 'brand_condition' } },
27
- {
28
- conditions: {
29
- columnName: 'tag_condition',
30
- type: HasuraGraphQLColumnType.Jsonb,
31
- from: (tags, row) => ({ brand: row.brand_condition, tags: Array.isArray(tags) ? tags : [] }),
32
- bindPersistData: (value) => {
33
- return {
34
- brand_condition: value.brand,
35
- tag_condition: value?.tags || [],
36
- };
37
- },
38
- bindFindFilter: (sentence) => {
39
- return {
40
- ...(sentence.brand ? { brand_condition: sentence.brand } : {}),
41
- ...(sentence.tags ? { tag_condition: sentence.tags } : {}),
42
- };
43
- },
44
- },
45
- },
46
- 'filters',
47
- { createdAt: { columnName: 'created_at' } },
48
- { updatedAt: { columnName: 'updated_at' } },
49
- {
50
- products: {
51
- columnName: 'products',
52
- fields: ['product_id'],
53
- from: (value) => value.map((product) => product.product_id.toString()),
54
- to: (productIds) => productIds.map((productId) => ({
55
- product_id: +productId,
56
- })),
57
- },
58
- },
59
- {
60
- metadata: {
61
- columnName: 'metadata',
62
- fields: ['title', 'description'],
63
- bindPersistData: (value) => ({
64
- metadata: { data: value },
65
- }),
66
- },
67
- },
68
- ],
69
- });
70
- this.productRepository = productRepository;
71
- }
72
- async create(params) {
73
- const { metadata, ...data } = params;
74
- return super.create({ ...data, metadata: metadata || { description: null, title: null } });
75
- }
76
- async get(identifiers) {
77
- return Number.isNaN(+identifiers.id)
78
- ? (await this.find({ filters: { firestoreId: identifiers.id } })).data?.[0]
79
- : super.get(identifiers);
80
- }
81
- async update(params) {
82
- const { products, id: checkId, metadata, ...data } = params;
83
- const plainData = this.paramsToPlain({ id: checkId });
84
- const id = await this.getId(plainData.id);
85
- const category = await super.update({ id, ...data });
86
- category.products = products && (await this.updateProducts(+id, { products }));
87
- category.metadata = metadata && (await this.updateMetadata(+id, { metadata }));
88
- return category;
89
- }
90
- async getCategoryBySlug(slug, shop) {
91
- if (!slug)
92
- return;
93
- const { data, count } = await this.find({ filters: { slug, shop, published: true } });
94
- if (count > 1)
95
- throw new DuplicatedResultsError('Query returned duplicated values');
96
- if (!count)
97
- throw new NotFoundError(`Category with slug ${slug} not found`);
98
- return data.shift();
99
- }
100
- async getCategoriesForHome(categoryIds, limit = 4) {
101
- if (!categoryIds?.length)
102
- return [];
103
- const categoriesFirestore = categoryIds.filter((categoryId) => Number.isNaN(+categoryId));
104
- const categoriesHasura = categoryIds.filter((categoryId) => +categoryId > 0);
105
- const categories = [];
106
- if (categoriesFirestore.length)
107
- categories.push(...(await this.find({
108
- filters: { firestoreId: { operator: Where.IN, value: categoriesFirestore.filter(Boolean) }, published: true },
109
- }).then(({ data }) => data)));
110
- if (categoriesHasura.length)
111
- categories.push(...(await this.find({
112
- filters: { id: { operator: Where.IN, value: categoriesHasura.filter(Boolean) }, published: true },
113
- }).then(({ data }) => data)));
114
- if (!categories.length)
115
- return [];
116
- const homeSections = await Promise.all(categories.map(async (category) => ({
117
- category,
118
- products: await this.mountCategory(category, { limit, hasStock: true }),
119
- })));
120
- return homeSections;
121
- }
122
- async mountCategory(category, options) {
123
- if (!category?.products?.length)
124
- return [];
125
- const products = [];
126
- const { data: productsData } = await this.productRepository.find({
127
- filters: {
128
- id: { operator: Where.IN, value: category.products },
129
- published: true,
130
- ...(options?.hasStock ? { stock: { quantity: { operator: Where.GT, value: 0 } } } : {}),
131
- },
132
- fields: [
133
- 'id',
134
- 'name',
135
- 'slug',
136
- 'images',
137
- 'miniatures',
138
- 'price',
139
- 'fullPrice',
140
- 'subscriberDiscountPercentage',
141
- 'subscriberPrice',
142
- 'stock',
143
- 'published',
144
- 'CEST',
145
- 'EAN',
146
- 'NCM',
147
- 'brand',
148
- 'costPrice',
149
- 'hasVariants',
150
- 'isKit',
151
- 'sku',
152
- 'rate',
153
- 'tags',
154
- 'type',
155
- 'shoppingCount',
156
- ],
157
- ...(options?.limit ? { limits: { limit: options?.limit } } : {}),
158
- });
159
- products.push(...productsData);
160
- return products;
161
- }
162
- async getId(id) {
163
- if (!Number.isNaN(+id))
164
- return id;
165
- const { data } = await this.find({ filters: { firestoreId: id } });
166
- if (data?.[0]?.id)
167
- return data?.[0]?.id;
168
- throw new NotFoundError(`Category with id ${id} not found`);
169
- }
170
- async updateProducts(categoryId, { products }) {
171
- if ('action' in products && products.action === 'remove') {
172
- await this.mutation('delete_category_product', ['affected_rows'], {
173
- where: {
174
- type: 'category_product_bool_exp',
175
- required: true,
176
- value: { category_id: { _eq: categoryId } },
177
- },
178
- });
179
- return [];
180
- }
181
- const plainData = this.paramsToPlain({ products });
182
- if (!plainData.products || plainData.products.length <= 0)
183
- return [];
184
- await this.mutation('delete_category_product', ['affected_rows'], {
185
- where: {
186
- type: 'category_product_bool_exp',
187
- required: true,
188
- value: { category_id: { _eq: categoryId } },
189
- },
190
- });
191
- await this.mutation('insert_category_product', ['affected_rows'], {
192
- objects: {
193
- type: '[category_product_insert_input!]',
194
- required: true,
195
- value: plainData.products.map((productId) => ({ category_id: categoryId, product_id: productId })),
196
- },
197
- });
198
- return plainData.products;
199
- }
200
- async updateMetadata(categoryId, { metadata }) {
201
- const plainData = this.paramsToPlain({ metadata });
202
- if (!plainData.metadata)
203
- return;
204
- await this.mutation('update_category_metadata_by_pk', ['category_id'], {
205
- pk_columns: {
206
- value: { category_id: categoryId },
207
- type: 'category_metadata_pk_columns_input',
208
- required: true,
209
- },
210
- _set: {
211
- value: omit(metadata, ['category_id']),
212
- type: 'category_metadata_set_input',
213
- required: true,
214
- },
215
- });
216
- return plainData.metadata;
217
- }
218
- }
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktaGFzdXJhLWdyYXBocWwucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL3JlcG9zaXRvcmllcy9jYXRhbG9nL2NhdGVnb3J5LWhhc3VyYS1ncmFwaHFsLnJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFRUixLQUFLLEdBQ04sTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBTXZFLE1BQU0sT0FBTywrQkFDWCxTQUFRLHFCQUFxQixDQUFDLGlCQUFpQixDQUF3QixJQUFJLENBQUMsQ0FBQztJQUc3RSxZQUNFLFFBQWdCLEVBQ2hCLFdBQXFDLEVBQ3BCLGlCQUFpRDtRQUVsRSxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsVUFBVTtZQUNyQixLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVE7WUFDUixXQUFXO1lBQ1gsTUFBTSxFQUFFO2dCQUNOLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUU7Z0JBQ3RGLEVBQUUsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFB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QUU7WUFDckUsVUFBVSxFQUFFO2dCQUNWLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7Z0JBQ2xDLElBQUksRUFBRSxvQ0FBb0M7Z0JBQzFDLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxFQUFFLDZCQUE2QjtnQkFDbkMsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGLENBQUMsQ0FBQTtRQUVGLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQTtJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDYXRlZ29yeSxcbiAgQ2F0ZWdvcnlNZXRhZGF0YSxcbiAgQ2F0ZWdvcnlSZXBvc2l0b3J5LFxuICBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zLFxuICBHZXRSZXBvc2l0b3J5UGFyYW1zLFxuICBQcm9kdWN0LFxuICBTaG9wcyxcbiAgVXBkYXRlUmVwb3NpdG9yeVBhcmFtcyxcbiAgV2hlcmUsXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IER1cGxpY2F0ZWRSZXN1bHRzRXJyb3IsIE5vdEZvdW5kRXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBCYXNlLCBvbWl0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBIYXN1cmFHcmFwaFFMQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zJ1xuaW1wb3J0IHsgd2l0aENydWRIYXN1cmFHcmFwaFFMLCB3aXRoSGFzdXJhR3JhcGhRTCB9IGZyb20gJy4uLy4uL21peGlucydcbmltcG9ydCB7IENhdGVnb3J5SGFzdXJhR3JhcGhRTCB9IGZyb20gJy4uLy4uL21vZGVscydcbmltcG9ydCB7IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgfSBmcm9tICcuL3Byb2R1Y3QtaGFzdXJhLWdyYXBocWwucmVwb3NpdG9yeSdcblxuZXhwb3J0IGNsYXNzIENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnlcbiAgZXh0ZW5kcyB3aXRoQ3J1ZEhhc3VyYUdyYXBoUUwod2l0aEhhc3VyYUdyYXBoUUw8Q2F0ZWdvcnlIYXN1cmFHcmFwaFFMPihCYXNlKSlcbiAgaW1wbGVtZW50cyBDYXRlZ29yeVJlcG9zaXRvcnlcbntcbiAgY29uc3RydWN0b3IoXG4gICAgZW5kcG9pbnQ6IHN0cmluZyxcbiAgICBhdXRoT3B0aW9uczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgKSB7XG4gICAgc3VwZXIoe1xuICAgICAgdGFibGVOYW1lOiAnY2F0ZWdvcnknLFxuICAgICAgbW9kZWw6IENhdGVnb3J5LFxuICAgICAgZW5kcG9pbnQsXG4gICAgICBhdXRoT3B0aW9ucyxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7IGlkOiB7IGNvbHVtbk5hbWU6ICdpZCcsIHRvOiAodmFsdWUpID0+ICt2YWx1ZSwgZnJvbTogKHZhbHVlKSA9PiB2YWx1ZS50b1N0cmluZygpIH0gfSxcbiAgICAgICAgeyBmaXJlc3RvcmVJZDogeyBjb2x1bW5OYW1lOiAnZmlyZXN0b3JlX2lkJyB9IH0sXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2ltYWdlJyxcbiAgICAgICAgJ3B1Ymxpc2hlZCcsXG4gICAgICAgICdzaG9wJyxcbiAgICAgICAgJ3NsdWcnLFxuICAgICAgICB7IGJyYW5kQ2F0ZWdvcnk6IHsgY29sdW1uTmFtZTogJ2JyYW5kX2NhdGVnb3J5JyB9IH0sXG4gICAgICAgIHsgYnJhbmRDYXRlZ29yeUJhbm5lcjogeyBjb2x1bW5OYW1lOiAnYnJhbmRfYmFubmVyJyB9IH0sXG4gICAgICAgIHsgYnJhbmRDYXRlZ29yeUJhbm5lck1vYmlsZTogeyBjb2x1bW5OYW1lOiAnYnJhbmRfYmFubmVyX21vYmlsZScgfSB9LFxuICAgICAgICB7IGJyYW5kTG9nbzogeyBjb2x1bW5OYW1lOiAnYnJhbmRfbG9nbycgfSB9LFxuICAgICAgICB7IGJyYW5kQ29uZGl0aW9uOiB7IGNvbHVtbk5hbWU6ICdicmFuZF9jb25kaXRpb24nIH0gfSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgIGNvbHVtbk5hbWU6ICd0YWdfY29uZGl0aW9uJyxcbiAgICAgICAgICAgIHR5cGU6IEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlLkpzb25iLFxuICAgICAgICAgICAgZnJvbTogKHRhZ3M6IHVua25vd24sIHJvdykgPT4gKHsgYnJhbmQ6IHJvdy5icmFuZF9jb25kaXRpb24sIHRhZ3M6IEFycmF5LmlzQXJyYXkodGFncykgPyB0YWdzIDogW10gfSksXG4gICAgICAgICAgICBiaW5kUGVyc2lzdERhdGE6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGJyYW5kX2NvbmRpdGlvbjogdmFsdWUuYnJhbmQsXG4gICAgICAgICAgICAgICAgdGFnX2NvbmRpdGlvbjogdmFsdWU/LnRhZ3MgfHwgW10sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBiaW5kRmluZEZpbHRlcjogKHNlbnRlbmNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi4oc2VudGVuY2UuYnJhbmQgPyB7IGJyYW5kX2NvbmRpdGlvbjogc2VudGVuY2UuYnJhbmQgfSA6IHt9KSxcbiAgICAgICAgICAgICAgICAuLi4oc2VudGVuY2UudGFncyA/IHsgdGFnX2NvbmRpdGlvbjogc2VudGVuY2UudGFncyB9IDoge30pLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgICdmaWx0ZXJzJyxcbiAgICAgICAgeyBjcmVhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ2NyZWF0ZWRfYXQnIH0gfSxcbiAgICAgICAgeyB1cGRhdGVkQXQ6IHsgY29sdW1uTmFtZTogJ3VwZGF0ZWRfYXQnIH0gfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb2R1Y3RzOiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiAncHJvZHVjdHMnLFxuICAgICAgICAgICAgZmllbGRzOiBbJ3Byb2R1Y3RfaWQnXSxcbiAgICAgICAgICAgIGZyb206ICh2YWx1ZTogeyBwcm9kdWN0X2lkOiBudW1iZXIgfVtdKSA9PiB2YWx1ZS5tYXAoKHByb2R1Y3QpID0+IHByb2R1Y3QucHJvZHVjdF9pZC50b1N0cmluZygpKSxcbiAgICAgICAgICAgIHRvOiAocHJvZHVjdElkcykgPT5cbiAgICAgICAgICAgICAgcHJvZHVjdElkcy5tYXAoKHByb2R1Y3RJZCkgPT4gKHtcbiAgICAgICAgICAgICAgICBwcm9kdWN0X2lkOiArcHJvZHVjdElkLFxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lOiAnbWV0YWRhdGEnLFxuICAgICAgICAgICAgZmllbGRzOiBbJ3RpdGxlJywgJ2Rlc2NyaXB0aW9uJ10sXG4gICAgICAgICAgICBiaW5kUGVyc2lzdERhdGE6ICh2YWx1ZSkgPT4gKHtcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IHsgZGF0YTogdmFsdWUgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBjcmVhdGUocGFyYW1zOiBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zPENhdGVnb3J5SGFzdXJhR3JhcGhRTD4pOiBQcm9taXNlPENhdGVnb3J5SGFzdXJhR3JhcGhRTD4ge1xuICAgIGNvbnN0IHsgbWV0YWRhdGEsIC4uLmRhdGEgfSA9IHBhcmFtc1xuXG4gICAgcmV0dXJuIHN1cGVyLmNyZWF0ZSh7IC4uLmRhdGEsIG1ldGFkYXRhOiBtZXRhZGF0YSB8fCB7IGRlc2NyaXB0aW9uOiBudWxsLCB0aXRsZTogbnVsbCB9IH0pXG4gIH1cblxuICBhc3luYyBnZXQoaWRlbnRpZmllcnM6IEdldFJlcG9zaXRvcnlQYXJhbXM8Q2F0ZWdvcnlIYXN1cmFHcmFwaFFMPik6IFByb21pc2U8Q2F0ZWdvcnlIYXN1cmFHcmFwaFFMPiB7XG4gICAgcmV0dXJuIE51bWJlci5pc05hTigraWRlbnRpZmllcnMuaWQpXG4gICAgICA/IChhd2FpdCB0aGlzLmZpbmQoeyBmaWx0ZXJzOiB7IGZpcmVzdG9yZUlkOiBpZGVudGlmaWVycy5pZCB9IH0pKS5kYXRhPy5bMF1cbiAgICAgIDogc3VwZXIuZ2V0KGlkZW50aWZpZXJzKVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlKHBhcmFtczogVXBkYXRlUmVwb3NpdG9yeVBhcmFtczxDYXRlZ29yeUhhc3VyYUdyYXBoUUw+KTogUHJvbWlzZTxDYXRlZ29yeUhhc3VyYUdyYXBoUUw+IHtcbiAgICBjb25zdCB7IHByb2R1Y3RzLCBpZDogY2hlY2tJZCwgbWV0YWRhdGEsIC4uLmRhdGEgfSA9IHBhcmFtc1xuICAgIGNvbnN0IHBsYWluRGF0YSA9IHRoaXMucGFyYW1zVG9QbGFpbih7IGlkOiBjaGVja0lkIH0pXG4gICAgY29uc3QgaWQgPSBhd2FpdCB0aGlzLmdldElkKHBsYWluRGF0YS5pZClcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IHN1cGVyLnVwZGF0ZSh7IGlkLCAuLi5kYXRhIH0pXG5cbiAgICBjYXRlZ29yeS5wcm9kdWN0cyA9IHByb2R1Y3RzICYmIChhd2FpdCB0aGlzLnVwZGF0ZVByb2R1Y3RzKCtpZCwgeyBwcm9kdWN0cyB9KSlcbiAgICBjYXRlZ29yeS5tZXRhZGF0YSA9IG1ldGFkYXRhICYmIChhd2FpdCB0aGlzLnVwZGF0ZU1ldGFkYXRhKCtpZCwgeyBtZXRhZGF0YSB9KSlcblxuICAgIHJldHVybiBjYXRlZ29yeVxuICB9XG5cbiAgYXN5bmMgZ2V0Q2F0ZWdvcnlCeVNsdWcoc2x1Zzogc3RyaW5nLCBzaG9wOiBTaG9wcyk6IFByb21pc2U8Q2F0ZWdvcnk+IHtcbiAgICBpZiAoIXNsdWcpIHJldHVyblxuXG4gICAgY29uc3QgeyBkYXRhLCBjb3VudCB9ID0gYXdhaXQgdGhpcy5maW5kKHsgZmlsdGVyczogeyBzbHVnLCBzaG9wLCBwdWJsaXNoZWQ6IHRydWUgfSB9KVxuXG4gICAgaWYgKGNvdW50ID4gMSkgdGhyb3cgbmV3IER1cGxpY2F0ZWRSZXN1bHRzRXJyb3IoJ1F1ZXJ5IHJldHVybmVkIGR1cGxpY2F0ZWQgdmFsdWVzJylcbiAgICBpZiAoIWNvdW50KSB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgQ2F0ZWdvcnkgd2l0aCBzbHVnICR7c2x1Z30gbm90IGZvdW5kYClcblxuICAgIHJldHVybiBkYXRhLnNoaWZ0KClcbiAgfVxuXG4gIGFzeW5jIGdldENhdGVnb3JpZXNGb3JIb21lKGNhdGVnb3J5SWRzOiBzdHJpbmdbXSwgbGltaXQgPSA0KTogUHJvbWlzZTx7IGNhdGVnb3J5OiBDYXRlZ29yeTsgcHJvZHVjdHM6IFByb2R1Y3RbXSB9W10+IHtcbiAgICBpZiAoIWNhdGVnb3J5SWRzPy5sZW5ndGgpIHJldHVybiBbXVxuXG4gICAgY29uc3QgY2F0ZWdvcmllc0ZpcmVzdG9yZSA9IGNhdGVnb3J5SWRzLmZpbHRlcigoY2F0ZWdvcnlJZCkgPT4gTnVtYmVyLmlzTmFOKCtjYXRlZ29yeUlkKSlcbiAgICBjb25zdCBjYXRlZ29yaWVzSGFzdXJhID0gY2F0ZWdvcnlJZHMuZmlsdGVyKChjYXRlZ29yeUlkKSA9PiArY2F0ZWdvcnlJZCA+IDApXG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IFtdXG5cbiAgICBpZiAoY2F0ZWdvcmllc0ZpcmVzdG9yZS5sZW5ndGgpXG4gICAgICBjYXRlZ29yaWVzLnB1c2goXG4gICAgICAgIC4uLihhd2FpdCB0aGlzLmZpbmQoe1xuICAgICAgICAgIGZpbHRlcnM6IHsgZmlyZXN0b3JlSWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogY2F0ZWdvcmllc0ZpcmVzdG9yZS5maWx0ZXIoQm9vbGVhbikgfSwgcHVibGlzaGVkOiB0cnVlIH0sXG4gICAgICAgIH0pLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhKSksXG4gICAgICApXG4gICAgaWYgKGNhdGVnb3JpZXNIYXN1cmEubGVuZ3RoKVxuICAgICAgY2F0ZWdvcmllcy5wdXNoKFxuICAgICAgICAuLi4oYXdhaXQgdGhpcy5maW5kKHtcbiAgICAgICAgICBmaWx0ZXJzOiB7IGlkOiB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IGNhdGVnb3JpZXNIYXN1cmEuZmlsdGVyKEJvb2xlYW4pIH0sIHB1Ymxpc2hlZDogdHJ1ZSB9LFxuICAgICAgICB9KS50aGVuKCh7IGRhdGEgfSkgPT4gZGF0YSkpLFxuICAgICAgKVxuXG4gICAgaWYgKCFjYXRlZ29yaWVzLmxlbmd0aCkgcmV0dXJuIFtdXG5cbiAgICBjb25zdCBob21lU2VjdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGNhdGVnb3JpZXMubWFwKGFzeW5jIChjYXRlZ29yeSkgPT4gKHtcbiAgICAgICAgY2F0ZWdvcnksXG4gICAgICAgIHByb2R1Y3RzOiBhd2FpdCB0aGlzLm1vdW50Q2F0ZWdvcnkoY2F0ZWdvcnksIHsgbGltaXQsIGhhc1N0b2NrOiB0cnVlIH0pLFxuICAgICAgfSkpLFxuICAgIClcblxuICAgIHJldHVybiBob21lU2VjdGlvbnNcbiAgfVxuXG4gIGFzeW5jIG1vdW50Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5LCBvcHRpb25zPzogeyBsaW1pdD86IG51bWJlcjsgaGFzU3RvY2s/OiBib29sZWFuIH0pOiBQcm9taXNlPFByb2R1Y3RbXT4ge1xuICAgIGlmICghY2F0ZWdvcnk/LnByb2R1Y3RzPy5sZW5ndGgpIHJldHVybiBbXVxuXG4gICAgY29uc3QgcHJvZHVjdHMgPSBbXVxuICAgIGNvbnN0IHsgZGF0YTogcHJvZHVjdHNEYXRhIH0gPSBhd2FpdCB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5LmZpbmQoe1xuICAgICAgZmlsdGVyczoge1xuICAgICAgICBpZDogeyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBjYXRlZ29yeS5wcm9kdWN0cyB9LFxuICAgICAgICBwdWJsaXNoZWQ6IHRydWUsXG4gICAgICAgIC4uLihvcHRpb25zPy5oYXNTdG9jayA/IHsgc3RvY2s6IHsgcXVhbnRpdHk6IHsgb3BlcmF0b3I6IFdoZXJlLkdULCB2YWx1ZTogMCB9IH0gfSA6IHt9KSxcbiAgICAgIH0sXG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAgJ2lkJyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnc2x1ZycsXG4gICAgICAgICdpbWFnZXMnLFxuICAgICAgICAnbWluaWF0dXJlcycsXG4gICAgICAgICdwcmljZScsXG4gICAgICAgICdmdWxsUHJpY2UnLFxuICAgICAgICAnc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZScsXG4gICAgICAgICdzdWJzY3JpYmVyUHJpY2UnLFxuICAgICAgICAnc3RvY2snLFxuICAgICAgICAncHVibGlzaGVkJyxcbiAgICAgICAgJ0NFU1QnLFxuICAgICAgICAnRUFOJyxcbiAgICAgICAgJ05DTScsXG4gICAgICAgICdicmFuZCcsXG4gICAgICAgICdjb3N0UHJpY2UnLFxuICAgICAgICAnaGFzVmFyaWFudHMnLFxuICAgICAgICAnaXNLaXQnLFxuICAgICAgICAnc2t1JyxcbiAgICAgICAgJ3JhdGUnLFxuICAgICAgICAndGFncycsXG4gICAgICAgICd0eXBlJyxcbiAgICAgICAgJ3Nob3BwaW5nQ291bnQnLFxuICAgICAgXSxcbiAgICAgIC4uLihvcHRpb25zPy5saW1pdCA/IHsgbGltaXRzOiB7IGxpbWl0OiBvcHRpb25zPy5saW1pdCB9IH0gOiB7fSksXG4gICAgfSlcblxuICAgIHByb2R1Y3RzLnB1c2goLi4ucHJvZHVjdHNEYXRhKVxuXG4gICAgcmV0dXJuIHByb2R1Y3RzXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldElkKGlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghTnVtYmVyLmlzTmFOKCtpZCkpIHJldHVybiBpZFxuXG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmZpbmQoeyBmaWx0ZXJzOiB7IGZpcmVzdG9yZUlkOiBpZCB9IH0pXG5cbiAgICBpZiAoZGF0YT8uWzBdPy5pZCkgcmV0dXJuIGRhdGE/LlswXT8uaWRcblxuICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBDYXRlZ29yeSB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZGApXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVByb2R1Y3RzKFxuICAgIGNhdGVnb3J5SWQ6IG51bWJlcixcbiAgICB7IHByb2R1Y3RzIH06IFBpY2s8VXBkYXRlUmVwb3NpdG9yeVBhcmFtczxDYXRlZ29yeUhhc3VyYUdyYXBoUUw+LCAncHJvZHVjdHMnPixcbiAgKTogUHJvbWlzZTxDYXRlZ29yeUhhc3VyYUdyYXBoUUxbJ3Byb2R1Y3RzJ10+IHtcbiAgICBpZiAoJ2FjdGlvbicgaW4gcHJvZHVjdHMgJiYgcHJvZHVjdHMuYWN0aW9uID09PSAncmVtb3ZlJykge1xuICAgICAgYXdhaXQgdGhpcy5tdXRhdGlvbignZGVsZXRlX2NhdGVnb3J5X3Byb2R1Y3QnLCBbJ2FmZmVjdGVkX3Jvd3MnXSwge1xuICAgICAgICB3aGVyZToge1xuICAgICAgICAgIHR5cGU6ICdjYXRlZ29yeV9wcm9kdWN0X2Jvb2xfZXhwJyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogeyBjYXRlZ29yeV9pZDogeyBfZXE6IGNhdGVnb3J5SWQgfSB9LFxuICAgICAgICB9LFxuICAgICAgfSlcblxuICAgICAgcmV0dXJuIFtdXG4gICAgfVxuXG4gICAgY29uc3QgcGxhaW5EYXRhID0gdGhpcy5wYXJhbXNUb1BsYWluKHsgcHJvZHVjdHMgfSlcblxuICAgIGlmICghcGxhaW5EYXRhLnByb2R1Y3RzIHx8IHBsYWluRGF0YS5wcm9kdWN0cy5sZW5ndGggPD0gMCkgcmV0dXJuIFtdXG5cbiAgICBhd2FpdCB0aGlzLm11dGF0aW9uKCdkZWxldGVfY2F0ZWdvcnlfcHJvZHVjdCcsIFsnYWZmZWN0ZWRfcm93cyddLCB7XG4gICAgICB3aGVyZToge1xuICAgICAgICB0eXBlOiAnY2F0ZWdvcnlfcHJvZHVjdF9ib29sX2V4cCcsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB2YWx1ZTogeyBjYXRlZ29yeV9pZDogeyBfZXE6IGNhdGVnb3J5SWQgfSB9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgYXdhaXQgdGhpcy5tdXRhdGlvbignaW5zZXJ0X2NhdGVnb3J5X3Byb2R1Y3QnLCBbJ2FmZmVjdGVkX3Jvd3MnXSwge1xuICAgICAgb2JqZWN0czoge1xuICAgICAgICB0eXBlOiAnW2NhdGVnb3J5X3Byb2R1Y3RfaW5zZXJ0X2lucHV0IV0nLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHBsYWluRGF0YS5wcm9kdWN0cy5tYXAoKHByb2R1Y3RJZCkgPT4gKHsgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5SWQsIHByb2R1Y3RfaWQ6IHByb2R1Y3RJZCB9KSksXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICByZXR1cm4gcGxhaW5EYXRhLnByb2R1Y3RzXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZU1ldGFkYXRhKFxuICAgIGNhdGVnb3J5SWQ6IG51bWJlcixcbiAgICB7IG1ldGFkYXRhIH06IFBpY2s8VXBkYXRlUmVwb3NpdG9yeVBhcmFtczxDYXRlZ29yeUhhc3VyYUdyYXBoUUw+LCAnbWV0YWRhdGEnPixcbiAgKTogUHJvbWlzZTxDYXRlZ29yeU1ldGFkYXRhPiB7XG4gICAgY29uc3QgcGxhaW5EYXRhID0gdGhpcy5wYXJhbXNUb1BsYWluKHsgbWV0YWRhdGEgfSlcblxuICAgIGlmICghcGxhaW5EYXRhLm1ldGFkYXRhKSByZXR1cm5cblxuICAgIGF3YWl0IHRoaXMubXV0YXRpb24oJ3VwZGF0ZV9jYXRlZ29yeV9tZXRhZGF0YV9ieV9waycsIFsnY2F0ZWdvcnlfaWQnXSwge1xuICAgICAgcGtfY29sdW1uczoge1xuICAgICAgICB2YWx1ZTogeyBjYXRlZ29yeV9pZDogY2F0ZWdvcnlJZCB9LFxuICAgICAgICB0eXBlOiAnY2F0ZWdvcnlfbWV0YWRhdGFfcGtfY29sdW1uc19pbnB1dCcsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIF9zZXQ6IHtcbiAgICAgICAgdmFsdWU6IG9taXQobWV0YWRhdGEsIFsnY2F0ZWdvcnlfaWQnXSksXG4gICAgICAgIHR5cGU6ICdjYXRlZ29yeV9tZXRhZGF0YV9zZXRfaW5wdXQnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHJldHVybiBwbGFpbkRhdGEubWV0YWRhdGFcbiAgfVxufVxuIl19