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

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 (674) hide show
  1. package/README.md +24 -24
  2. package/domain/catalog/index.d.ts +2 -2
  3. package/domain/catalog/models/category.d.ts +24 -24
  4. package/domain/catalog/models/enums/index.d.ts +2 -2
  5. package/domain/catalog/models/enums/product-genders.enum.d.ts +5 -5
  6. package/domain/catalog/models/enums/shops.enum.d.ts +6 -6
  7. package/domain/catalog/models/index.d.ts +6 -6
  8. package/domain/catalog/models/kit-product.d.ts +12 -12
  9. package/domain/catalog/models/product.d.ts +39 -39
  10. package/domain/catalog/models/types/category-condition.type.d.ts +4 -4
  11. package/domain/catalog/models/types/category-filter.type.d.ts +4 -4
  12. package/domain/catalog/models/types/category-metadata.type.d.ts +4 -4
  13. package/domain/catalog/models/types/index.d.ts +10 -10
  14. package/domain/catalog/models/types/product-gender.type.d.ts +1 -1
  15. package/domain/catalog/models/types/product-metadata.type.d.ts +4 -4
  16. package/domain/catalog/models/types/product-review.type.d.ts +17 -17
  17. package/domain/catalog/models/types/shop-description.type.d.ts +7 -7
  18. package/domain/catalog/models/types/shop-price.type.d.ts +6 -6
  19. package/domain/catalog/models/types/stock.type.d.ts +3 -3
  20. package/domain/catalog/models/types/variant-grade.type.d.ts +4 -4
  21. package/domain/catalog/models/variant.d.ts +18 -18
  22. package/domain/catalog/repositories/category.repository.d.ts +15 -15
  23. package/domain/catalog/repositories/index.d.ts +4 -4
  24. package/domain/catalog/repositories/product.repository.d.ts +12 -12
  25. package/domain/catalog/repositories/subscription-product.repository.d.ts +4 -4
  26. package/domain/catalog/repositories/variant.repository.d.ts +4 -4
  27. package/domain/generic/index.d.ts +2 -2
  28. package/domain/generic/model/base.model.d.ts +10 -10
  29. package/domain/generic/model/identifier-fields.d.ts +4 -4
  30. package/domain/generic/model/index.d.ts +3 -3
  31. package/domain/generic/model/types/base-model-builder.type.d.ts +15 -15
  32. package/domain/generic/model/types/identifier-model.type.d.ts +7 -7
  33. package/domain/generic/model/types/index.d.ts +5 -5
  34. package/domain/generic/model/types/model-base-structure.type.d.ts +6 -6
  35. package/domain/generic/model/types/non-function-properties.type.d.ts +12 -12
  36. package/domain/generic/model/types/non-function-property-name.type.d.ts +4 -4
  37. package/domain/generic/repository/create.repository.d.ts +8 -8
  38. package/domain/generic/repository/crud.repository.d.ts +19 -19
  39. package/domain/generic/repository/delete.repository.d.ts +7 -7
  40. package/domain/generic/repository/enums/index.d.ts +2 -2
  41. package/domain/generic/repository/enums/update-option-actions.enum.d.ts +7 -7
  42. package/domain/generic/repository/enums/where.enum.d.ts +14 -14
  43. package/domain/generic/repository/find.repository.d.ts +11 -11
  44. package/domain/generic/repository/get.repository.d.ts +5 -5
  45. package/domain/generic/repository/index.d.ts +9 -9
  46. package/domain/generic/repository/read.repository.d.ts +14 -14
  47. package/domain/generic/repository/types/index.d.ts +6 -6
  48. package/domain/generic/repository/types/repository-find-filters.type.d.ts +13 -13
  49. package/domain/generic/repository/types/repository-find-result.type.d.ts +4 -4
  50. package/domain/generic/repository/types/repository-limit-options.type.d.ts +4 -4
  51. package/domain/generic/repository/types/repository-order-by-list.type.d.ts +5 -5
  52. package/domain/generic/repository/types/repository-update-params.type.d.ts +11 -11
  53. package/domain/generic/repository/types/where-options.type.d.ts +2 -2
  54. package/domain/generic/repository/update.repository.d.ts +6 -6
  55. package/domain/index.d.ts +6 -6
  56. package/domain/location/index.d.ts +1 -1
  57. package/domain/location/models/address.d.ts +22 -22
  58. package/domain/location/models/index.d.ts +2 -2
  59. package/domain/location/models/types/index.d.ts +3 -3
  60. package/domain/location/models/types/location-bound.type.d.ts +6 -6
  61. package/domain/location/models/types/location-geometry.type.d.ts +7 -7
  62. package/domain/location/models/types/location-lat-lng.type.d.ts +4 -4
  63. package/domain/shop-settings/enums/filter-type.enum.d.ts +19 -19
  64. package/domain/shop-settings/enums/index.d.ts +2 -2
  65. package/domain/shop-settings/enums/questions-filters.enum.d.ts +19 -19
  66. package/domain/shop-settings/helpers/beauty-questions.helper.d.ts +9 -9
  67. package/domain/shop-settings/helpers/index.d.ts +1 -1
  68. package/domain/shop-settings/index.d.ts +4 -4
  69. package/domain/shop-settings/models/home.d.ts +18 -18
  70. package/domain/shop-settings/models/index.d.ts +3 -4
  71. package/domain/shop-settings/models/shop-menu.d.ts +7 -7
  72. package/domain/shop-settings/models/types/banner.type.d.ts +6 -6
  73. package/domain/shop-settings/models/types/benefit.type.d.ts +5 -5
  74. package/domain/shop-settings/models/types/home-data.type.d.ts +15 -15
  75. package/domain/shop-settings/models/types/index.d.ts +5 -10
  76. package/domain/shop-settings/models/types/menu-nav.type.d.ts +8 -8
  77. package/domain/shop-settings/models/types/sub-menu.type.d.ts +8 -8
  78. package/domain/shop-settings/repositories/home.repository.d.ts +4 -4
  79. package/domain/shop-settings/repositories/index.d.ts +2 -3
  80. package/domain/shop-settings/repositories/shop-menu.repository.d.ts +4 -4
  81. package/domain/shopping/index.d.ts +2 -2
  82. package/domain/shopping/models/buy-2-win.d.ts +16 -16
  83. package/domain/shopping/models/checkout.d.ts +27 -27
  84. package/domain/shopping/models/coupons/coupon.d.ts +32 -32
  85. package/domain/shopping/models/coupons/enums/coupon-club-mens.enum.d.ts +5 -5
  86. package/domain/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +4 -4
  87. package/domain/shopping/models/coupons/enums/coupon-types.enum.d.ts +4 -4
  88. package/domain/shopping/models/coupons/enums/exclusivities.enum.d.ts +8 -8
  89. package/domain/shopping/models/coupons/enums/index.d.ts +3 -3
  90. package/domain/shopping/models/coupons/index.d.ts +2 -2
  91. package/domain/shopping/models/enums/checkout-types.enum.d.ts +5 -5
  92. package/domain/shopping/models/enums/index.d.ts +2 -2
  93. package/domain/shopping/models/enums/order-status.enum.d.ts +10 -10
  94. package/domain/shopping/models/index.d.ts +11 -11
  95. package/domain/shopping/models/line-item.d.ts +8 -8
  96. package/domain/shopping/models/order.d.ts +9 -9
  97. package/domain/shopping/models/payment.d.ts +67 -67
  98. package/domain/shopping/models/shipping-method.d.ts +16 -16
  99. package/domain/shopping/models/subscription/checkout.d.ts +21 -21
  100. package/domain/shopping/models/subscription/index.d.ts +2 -2
  101. package/domain/shopping/models/subscription/plan.d.ts +10 -10
  102. package/domain/shopping/models/types/index.d.ts +7 -7
  103. package/domain/shopping/models/types/payment-address.type.d.ts +12 -12
  104. package/domain/shopping/models/types/payment-billing.type.d.ts +7 -7
  105. package/domain/shopping/models/types/payment-card.type.d.ts +14 -14
  106. package/domain/shopping/models/types/payment-customer.type.d.ts +18 -18
  107. package/domain/shopping/models/types/payment-document.type.d.ts +6 -6
  108. package/domain/shopping/models/types/payment-item.type.d.ts +11 -11
  109. package/domain/shopping/models/types/payment-shipping.type.d.ts +10 -10
  110. package/domain/shopping/repositories/buy-2-win.repository.d.ts +4 -4
  111. package/domain/shopping/repositories/checkout.repository.d.ts +4 -4
  112. package/domain/shopping/repositories/coupon.repository.d.ts +4 -4
  113. package/domain/shopping/repositories/index.d.ts +7 -7
  114. package/domain/shopping/repositories/legacy-order.repository.d.ts +3 -3
  115. package/domain/shopping/repositories/order.repository.d.ts +4 -4
  116. package/domain/shopping/repositories/payment.repository.d.ts +4 -4
  117. package/domain/shopping/repositories/subscription/checkout.repository.d.ts +4 -4
  118. package/domain/shopping/repositories/subscription/index.d.ts +2 -2
  119. package/domain/shopping/repositories/subscription/plan.repository.d.ts +4 -4
  120. package/domain/users/errors/index.d.ts +3 -3
  121. package/domain/users/errors/unauthorized.error.d.ts +5 -5
  122. package/domain/users/errors/user-already-registered.error.d.ts +5 -5
  123. package/domain/users/errors/weak-password.error.d.ts +5 -5
  124. package/domain/users/index.d.ts +5 -5
  125. package/domain/users/models/beauty-profile.d.ts +11 -11
  126. package/domain/users/models/enums/accessory-importances.enum.d.ts +5 -5
  127. package/domain/users/models/enums/area.enum.d.ts +11 -11
  128. package/domain/users/models/enums/beard-problems.enum.d.ts +9 -9
  129. package/domain/users/models/enums/beard-sizes.enum.d.ts +7 -7
  130. package/domain/users/models/enums/beauty-product-importances.enum.d.ts +6 -6
  131. package/domain/users/models/enums/body-problems.enum.d.ts +11 -11
  132. package/domain/users/models/enums/body-shapes.enum.d.ts +7 -7
  133. package/domain/users/models/enums/body-tattoos.enum.d.ts +5 -5
  134. package/domain/users/models/enums/face-skin-oilinesses.enum.d.ts +7 -7
  135. package/domain/users/models/enums/face-skin-problems.enum.d.ts +10 -10
  136. package/domain/users/models/enums/face-skin-tones.enum.d.ts +8 -8
  137. package/domain/users/models/enums/family-incomes.enum.d.ts +8 -8
  138. package/domain/users/models/enums/fragrance-importances.enum.d.ts +5 -5
  139. package/domain/users/models/enums/hair-colors.enum.d.ts +10 -10
  140. package/domain/users/models/enums/hair-problems.enum.d.ts +10 -10
  141. package/domain/users/models/enums/hair-strands.enum.d.ts +8 -8
  142. package/domain/users/models/enums/hair-types.enum.d.ts +7 -7
  143. package/domain/users/models/enums/index.d.ts +20 -20
  144. package/domain/users/models/enums/office-position.enum.d.ts +6 -6
  145. package/domain/users/models/enums/product-spents.enum.d.ts +8 -8
  146. package/domain/users/models/enums/user-type.enum.d.ts +8 -8
  147. package/domain/users/models/index.d.ts +7 -7
  148. package/domain/users/models/lead.d.ts +7 -7
  149. package/domain/users/models/subscription/edition.d.ts +16 -16
  150. package/domain/users/models/subscription/enums/billing-status.enum.d.ts +3 -3
  151. package/domain/users/models/subscription/enums/edition-status.enum.d.ts +4 -4
  152. package/domain/users/models/subscription/enums/index.d.ts +4 -4
  153. package/domain/users/models/subscription/enums/payment-type.enum.d.ts +5 -5
  154. package/domain/users/models/subscription/enums/status.enum.d.ts +4 -4
  155. package/domain/users/models/subscription/index.d.ts +4 -4
  156. package/domain/users/models/subscription/payment.d.ts +13 -13
  157. package/domain/users/models/subscription/subscription.d.ts +28 -28
  158. package/domain/users/models/user-address.d.ts +7 -7
  159. package/domain/users/models/user-payment-method.d.ts +14 -14
  160. package/domain/users/models/user.d.ts +28 -28
  161. package/domain/users/repositories/beauty-profile.repository.d.ts +4 -4
  162. package/domain/users/repositories/edition.repository.d.ts +4 -4
  163. package/domain/users/repositories/index.d.ts +8 -8
  164. package/domain/users/repositories/lead.repository.d.ts +4 -4
  165. package/domain/users/repositories/subscription-payment.repository.d.ts +4 -4
  166. package/domain/users/repositories/subscription.repository.d.ts +4 -4
  167. package/domain/users/repositories/user-address.repository.d.ts +4 -4
  168. package/domain/users/repositories/user-payment-method.repository.d.ts +4 -4
  169. package/domain/users/repositories/user.repository.d.ts +6 -6
  170. package/domain/users/services/authentication.service.d.ts +12 -12
  171. package/domain/users/services/index.d.ts +3 -3
  172. package/domain/users/services/register.service.d.ts +7 -7
  173. package/domain/users/services/types/basic-user-data.type.d.ts +4 -4
  174. package/domain/users/services/types/index.d.ts +1 -1
  175. package/domain/users/use-cases/authentication.d.ts +21 -21
  176. package/domain/users/use-cases/index.d.ts +4 -4
  177. package/domain/users/use-cases/recovery-password.d.ts +6 -6
  178. package/domain/users/use-cases/register.d.ts +13 -13
  179. package/domain/users/use-cases/signout.d.ts +6 -6
  180. package/errors/duplicated-results.error.d.ts +5 -5
  181. package/errors/index.d.ts +4 -4
  182. package/errors/invalid-argument.error.d.ts +5 -5
  183. package/errors/not-found.error.d.ts +5 -5
  184. package/errors/required-argument.error.d.ts +6 -6
  185. package/{esm2015/domain/catalog/index.js → esm2020/domain/catalog/index.mjs} +3 -3
  186. package/esm2020/domain/catalog/models/category.mjs +10 -0
  187. package/{esm2015/domain/catalog/models/enums/index.js → esm2020/domain/catalog/models/enums/index.mjs} +3 -3
  188. package/{esm2015/domain/catalog/models/enums/product-genders.enum.js → esm2020/domain/catalog/models/enums/product-genders.enum.mjs} +7 -7
  189. package/{esm2015/domain/catalog/models/enums/shops.enum.js → esm2020/domain/catalog/models/enums/shops.enum.mjs} +8 -8
  190. package/{esm2015/domain/catalog/models/index.js → esm2020/domain/catalog/models/index.mjs} +7 -7
  191. package/{esm2015/domain/catalog/models/kit-product.js → esm2020/domain/catalog/models/kit-product.mjs} +18 -18
  192. package/esm2020/domain/catalog/models/product.mjs +17 -0
  193. package/{esm2015/domain/catalog/models/types/category-condition.type.js → esm2020/domain/catalog/models/types/category-condition.type.mjs} +2 -2
  194. package/{esm2015/domain/catalog/models/types/category-filter.type.js → esm2020/domain/catalog/models/types/category-filter.type.mjs} +2 -2
  195. package/{esm2015/domain/catalog/models/types/category-metadata.type.js → esm2020/domain/catalog/models/types/category-metadata.type.mjs} +2 -2
  196. package/{esm2015/domain/catalog/models/types/index.js → esm2020/domain/catalog/models/types/index.mjs} +11 -11
  197. package/{esm2015/domain/catalog/models/types/product-gender.type.js → esm2020/domain/catalog/models/types/product-gender.type.mjs} +2 -2
  198. package/{esm2015/domain/catalog/models/types/product-metadata.type.js → esm2020/domain/catalog/models/types/product-metadata.type.mjs} +2 -2
  199. package/esm2020/domain/catalog/models/types/product-review.type.mjs +2 -0
  200. package/{esm2015/domain/catalog/models/types/shop-description.type.js → esm2020/domain/catalog/models/types/shop-description.type.mjs} +2 -2
  201. package/{esm2015/domain/catalog/models/types/shop-price.type.js → esm2020/domain/catalog/models/types/shop-price.type.mjs} +2 -2
  202. package/{esm2015/domain/catalog/models/types/stock.type.js → esm2020/domain/catalog/models/types/stock.type.mjs} +2 -2
  203. package/{esm2015/domain/catalog/models/types/variant-grade.type.js → esm2020/domain/catalog/models/types/variant-grade.type.mjs} +2 -2
  204. package/esm2020/domain/catalog/models/variant.mjs +10 -0
  205. package/esm2020/domain/catalog/repositories/category.repository.mjs +2 -0
  206. package/{esm2015/domain/catalog/repositories/index.js → esm2020/domain/catalog/repositories/index.mjs} +5 -5
  207. package/esm2020/domain/catalog/repositories/product.repository.mjs +2 -0
  208. package/{esm2015/domain/catalog/repositories/subscription-product.repository.js → esm2020/domain/catalog/repositories/subscription-product.repository.mjs} +2 -2
  209. package/{esm2015/domain/catalog/repositories/variant.repository.js → esm2020/domain/catalog/repositories/variant.repository.mjs} +2 -2
  210. package/{esm2015/domain/generic/index.js → esm2020/domain/generic/index.mjs} +3 -3
  211. package/esm2020/domain/generic/model/base.model.mjs +23 -0
  212. package/{esm2015/domain/generic/model/identifier-fields.js → esm2020/domain/generic/model/identifier-fields.mjs} +2 -2
  213. package/{esm2015/domain/generic/model/index.js → esm2020/domain/generic/model/index.mjs} +4 -4
  214. package/esm2020/domain/generic/model/types/base-model-builder.type.mjs +2 -0
  215. package/esm2020/domain/generic/model/types/identifier-model.type.mjs +2 -0
  216. package/{esm2015/domain/generic/model/types/index.js → esm2020/domain/generic/model/types/index.mjs} +6 -6
  217. package/{esm2015/domain/generic/model/types/model-base-structure.type.js → esm2020/domain/generic/model/types/model-base-structure.type.mjs} +2 -2
  218. package/esm2020/domain/generic/model/types/non-function-properties.type.mjs +2 -0
  219. package/{esm2015/domain/generic/model/types/non-function-property-name.type.js → esm2020/domain/generic/model/types/non-function-property-name.type.mjs} +2 -2
  220. package/esm2020/domain/generic/repository/create.repository.mjs +2 -0
  221. package/esm2020/domain/generic/repository/crud.repository.mjs +2 -0
  222. package/esm2020/domain/generic/repository/delete.repository.mjs +2 -0
  223. package/{esm2015/domain/generic/repository/enums/index.js → esm2020/domain/generic/repository/enums/index.mjs} +3 -3
  224. package/{esm2015/domain/generic/repository/enums/update-option-actions.enum.js → esm2020/domain/generic/repository/enums/update-option-actions.enum.mjs} +9 -9
  225. package/{esm2015/domain/generic/repository/enums/where.enum.js → esm2020/domain/generic/repository/enums/where.enum.mjs} +16 -16
  226. package/esm2020/domain/generic/repository/find.repository.mjs +2 -0
  227. package/esm2020/domain/generic/repository/get.repository.mjs +2 -0
  228. package/{esm2015/domain/generic/repository/index.js → esm2020/domain/generic/repository/index.mjs} +10 -10
  229. package/esm2020/domain/generic/repository/read.repository.mjs +2 -0
  230. package/{esm2015/domain/generic/repository/types/index.js → esm2020/domain/generic/repository/types/index.mjs} +7 -7
  231. package/esm2020/domain/generic/repository/types/repository-find-filters.type.mjs +2 -0
  232. package/{esm2015/domain/generic/repository/types/repository-find-result.type.js → esm2020/domain/generic/repository/types/repository-find-result.type.mjs} +2 -2
  233. package/{esm2015/domain/generic/repository/types/repository-limit-options.type.js → esm2020/domain/generic/repository/types/repository-limit-options.type.mjs} +2 -2
  234. package/{esm2015/domain/generic/repository/types/repository-order-by-list.type.js → esm2020/domain/generic/repository/types/repository-order-by-list.type.mjs} +2 -2
  235. package/esm2020/domain/generic/repository/types/repository-update-params.type.mjs +2 -0
  236. package/{esm2015/domain/generic/repository/types/where-options.type.js → esm2020/domain/generic/repository/types/where-options.type.mjs} +2 -2
  237. package/esm2020/domain/generic/repository/update.repository.mjs +2 -0
  238. package/{esm2015/domain/index.js → esm2020/domain/index.mjs} +7 -7
  239. package/{esm2015/domain/location/index.js → esm2020/domain/location/index.mjs} +2 -2
  240. package/esm2020/domain/location/models/address.mjs +7 -0
  241. package/{esm2015/domain/location/models/index.js → esm2020/domain/location/models/index.mjs} +3 -3
  242. package/{esm2015/domain/location/models/types/index.js → esm2020/domain/location/models/types/index.mjs} +4 -4
  243. package/{esm2015/domain/location/models/types/location-bound.type.js → esm2020/domain/location/models/types/location-bound.type.mjs} +2 -2
  244. package/{esm2015/domain/location/models/types/location-geometry.type.js → esm2020/domain/location/models/types/location-geometry.type.mjs} +2 -2
  245. package/{esm2015/domain/location/models/types/location-lat-lng.type.js → esm2020/domain/location/models/types/location-lat-lng.type.mjs} +2 -2
  246. package/{esm2015/domain/shop-settings/enums/filter-type.enum.js → esm2020/domain/shop-settings/enums/filter-type.enum.mjs} +21 -21
  247. package/{esm2015/domain/shop-settings/enums/index.js → esm2020/domain/shop-settings/enums/index.mjs} +3 -3
  248. package/{esm2015/domain/shop-settings/enums/questions-filters.enum.js → esm2020/domain/shop-settings/enums/questions-filters.enum.mjs} +21 -21
  249. package/{esm2015/domain/shop-settings/helpers/beauty-questions.helper.js → esm2020/domain/shop-settings/helpers/beauty-questions.helper.mjs} +46 -46
  250. package/{esm2015/domain/shop-settings/helpers/index.js → esm2020/domain/shop-settings/helpers/index.mjs} +2 -2
  251. package/{esm2015/domain/shop-settings/index.js → esm2020/domain/shop-settings/index.mjs} +5 -5
  252. package/esm2020/domain/shop-settings/models/home.mjs +7 -0
  253. package/{esm2015/domain/shop-settings/models/index.js → esm2020/domain/shop-settings/models/index.mjs} +4 -5
  254. package/{esm2015/domain/shop-settings/models/shop-menu.js → esm2020/domain/shop-settings/models/shop-menu.mjs} +7 -7
  255. package/{esm2015/domain/shop-settings/models/types/banner.type.js → esm2020/domain/shop-settings/models/types/banner.type.mjs} +2 -2
  256. package/{esm2015/domain/shop-settings/models/types/benefit.type.js → esm2020/domain/shop-settings/models/types/benefit.type.mjs} +2 -2
  257. package/esm2020/domain/shop-settings/models/types/home-data.type.mjs +2 -0
  258. package/esm2020/domain/shop-settings/models/types/index.mjs +6 -0
  259. package/{esm2015/domain/shop-settings/models/types/menu-nav.type.js → esm2020/domain/shop-settings/models/types/menu-nav.type.mjs} +2 -2
  260. package/{esm2015/domain/shop-settings/models/types/sub-menu.type.js → esm2020/domain/shop-settings/models/types/sub-menu.type.mjs} +2 -2
  261. package/{esm2015/domain/shop-settings/repositories/home.repository.js → esm2020/domain/shop-settings/repositories/home.repository.mjs} +2 -2
  262. package/{esm2015/domain/shop-settings/repositories/index.js → esm2020/domain/shop-settings/repositories/index.mjs} +3 -4
  263. package/{esm2015/domain/shop-settings/repositories/shop-menu.repository.js → esm2020/domain/shop-settings/repositories/shop-menu.repository.mjs} +2 -2
  264. package/{esm2015/domain/shopping/index.js → esm2020/domain/shopping/index.mjs} +3 -3
  265. package/{esm2015/domain/shopping/models/buy-2-win.js → esm2020/domain/shopping/models/buy-2-win.mjs} +14 -14
  266. package/esm2020/domain/shopping/models/checkout.mjs +38 -0
  267. package/{esm2015/domain/shopping/models/coupons/coupon.js → esm2020/domain/shopping/models/coupons/coupon.mjs} +38 -38
  268. package/{esm2015/domain/shopping/models/coupons/enums/coupon-club-mens.enum.js → esm2020/domain/shopping/models/coupons/enums/coupon-club-mens.enum.mjs} +7 -7
  269. package/{esm2015/domain/shopping/models/coupons/enums/coupon-subtypes.enum.js → esm2020/domain/shopping/models/coupons/enums/coupon-subtypes.enum.mjs} +6 -6
  270. package/{esm2015/domain/shopping/models/coupons/enums/coupon-types.enum.js → esm2020/domain/shopping/models/coupons/enums/coupon-types.enum.mjs} +10 -10
  271. package/{esm2015/domain/shopping/models/coupons/enums/exclusivities.enum.js → esm2020/domain/shopping/models/coupons/enums/exclusivities.enum.mjs} +10 -10
  272. package/{esm2015/domain/shopping/models/coupons/enums/index.js → esm2020/domain/shopping/models/coupons/enums/index.mjs} +4 -4
  273. package/{esm2015/domain/shopping/models/coupons/index.js → esm2020/domain/shopping/models/coupons/index.mjs} +3 -3
  274. package/{esm2015/domain/shopping/models/enums/checkout-types.enum.js → esm2020/domain/shopping/models/enums/checkout-types.enum.mjs} +7 -7
  275. package/{esm2015/domain/shopping/models/enums/index.js → esm2020/domain/shopping/models/enums/index.mjs} +3 -3
  276. package/{esm2015/domain/shopping/models/enums/order-status.enum.js → esm2020/domain/shopping/models/enums/order-status.enum.mjs} +12 -12
  277. package/{esm2015/domain/shopping/models/index.js → esm2020/domain/shopping/models/index.mjs} +12 -12
  278. package/{esm2015/domain/shopping/models/line-item.js → esm2020/domain/shopping/models/line-item.mjs} +4 -4
  279. package/{esm2015/domain/shopping/models/order.js → esm2020/domain/shopping/models/order.mjs} +11 -11
  280. package/esm2020/domain/shopping/models/payment.mjs +169 -0
  281. package/{esm2015/domain/shopping/models/shipping-method.js → esm2020/domain/shopping/models/shipping-method.mjs} +7 -7
  282. package/{esm2015/domain/shopping/models/subscription/checkout.js → esm2020/domain/shopping/models/subscription/checkout.mjs} +28 -28
  283. package/{esm2015/domain/shopping/models/subscription/index.js → esm2020/domain/shopping/models/subscription/index.mjs} +3 -3
  284. package/{esm2015/domain/shopping/models/subscription/plan.js → esm2020/domain/shopping/models/subscription/plan.mjs} +7 -7
  285. package/{esm2015/domain/shopping/models/types/index.js → esm2020/domain/shopping/models/types/index.mjs} +8 -8
  286. package/esm2020/domain/shopping/models/types/payment-address.type.mjs +2 -0
  287. package/{esm2015/domain/shopping/models/types/payment-billing.type.js → esm2020/domain/shopping/models/types/payment-billing.type.mjs} +2 -2
  288. package/esm2020/domain/shopping/models/types/payment-card.type.mjs +2 -0
  289. package/esm2020/domain/shopping/models/types/payment-customer.type.mjs +2 -0
  290. package/{esm2015/domain/shopping/models/types/payment-document.type.js → esm2020/domain/shopping/models/types/payment-document.type.mjs} +2 -2
  291. package/{esm2015/domain/shopping/models/types/payment-item.type.js → esm2020/domain/shopping/models/types/payment-item.type.mjs} +2 -2
  292. package/{esm2015/domain/shopping/models/types/payment-shipping.type.js → esm2020/domain/shopping/models/types/payment-shipping.type.mjs} +2 -2
  293. package/{esm2015/domain/shopping/repositories/buy-2-win.repository.js → esm2020/domain/shopping/repositories/buy-2-win.repository.mjs} +2 -2
  294. package/{esm2015/domain/shopping/repositories/checkout.repository.js → esm2020/domain/shopping/repositories/checkout.repository.mjs} +2 -2
  295. package/{esm2015/domain/shopping/repositories/coupon.repository.js → esm2020/domain/shopping/repositories/coupon.repository.mjs} +2 -2
  296. package/{esm2015/domain/shopping/repositories/index.js → esm2020/domain/shopping/repositories/index.mjs} +8 -8
  297. package/{esm2015/domain/shopping/repositories/legacy-order.repository.js → esm2020/domain/shopping/repositories/legacy-order.repository.mjs} +2 -2
  298. package/{esm2015/domain/shopping/repositories/order.repository.js → esm2020/domain/shopping/repositories/order.repository.mjs} +2 -2
  299. package/{esm2015/domain/shopping/repositories/payment.repository.js → esm2020/domain/shopping/repositories/payment.repository.mjs} +2 -2
  300. package/{esm2015/domain/shopping/repositories/subscription/checkout.repository.js → esm2020/domain/shopping/repositories/subscription/checkout.repository.mjs} +2 -2
  301. package/{esm2015/domain/shopping/repositories/subscription/index.js → esm2020/domain/shopping/repositories/subscription/index.mjs} +3 -3
  302. package/{esm2015/domain/shopping/repositories/subscription/plan.repository.js → esm2020/domain/shopping/repositories/subscription/plan.repository.mjs} +2 -2
  303. package/{esm2015/domain/users/errors/index.js → esm2020/domain/users/errors/index.mjs} +4 -4
  304. package/{esm2015/domain/users/errors/unauthorized.error.js → esm2020/domain/users/errors/unauthorized.error.mjs} +8 -8
  305. package/{esm2015/domain/users/errors/user-already-registered.error.js → esm2020/domain/users/errors/user-already-registered.error.mjs} +8 -8
  306. package/{esm2015/domain/users/errors/weak-password.error.js → esm2020/domain/users/errors/weak-password.error.mjs} +8 -8
  307. package/{esm2015/domain/users/index.js → esm2020/domain/users/index.mjs} +6 -6
  308. package/{esm2015/domain/users/models/beauty-profile.js → esm2020/domain/users/models/beauty-profile.mjs} +12 -12
  309. package/{esm2015/domain/users/models/enums/accessory-importances.enum.js → esm2020/domain/users/models/enums/accessory-importances.enum.mjs} +7 -7
  310. package/{esm2015/domain/users/models/enums/area.enum.js → esm2020/domain/users/models/enums/area.enum.mjs} +13 -13
  311. package/{esm2015/domain/users/models/enums/beard-problems.enum.js → esm2020/domain/users/models/enums/beard-problems.enum.mjs} +11 -11
  312. package/{esm2015/domain/users/models/enums/beard-sizes.enum.js → esm2020/domain/users/models/enums/beard-sizes.enum.mjs} +9 -9
  313. package/{esm2015/domain/users/models/enums/beauty-product-importances.enum.js → esm2020/domain/users/models/enums/beauty-product-importances.enum.mjs} +8 -8
  314. package/{esm2015/domain/users/models/enums/body-problems.enum.js → esm2020/domain/users/models/enums/body-problems.enum.mjs} +13 -13
  315. package/{esm2015/domain/users/models/enums/body-shapes.enum.js → esm2020/domain/users/models/enums/body-shapes.enum.mjs} +9 -9
  316. package/{esm2015/domain/users/models/enums/body-tattoos.enum.js → esm2020/domain/users/models/enums/body-tattoos.enum.mjs} +7 -7
  317. package/{esm2015/domain/users/models/enums/face-skin-oilinesses.enum.js → esm2020/domain/users/models/enums/face-skin-oilinesses.enum.mjs} +9 -9
  318. package/{esm2015/domain/users/models/enums/face-skin-problems.enum.js → esm2020/domain/users/models/enums/face-skin-problems.enum.mjs} +12 -12
  319. package/{esm2015/domain/users/models/enums/face-skin-tones.enum.js → esm2020/domain/users/models/enums/face-skin-tones.enum.mjs} +10 -10
  320. package/{esm2015/domain/users/models/enums/family-incomes.enum.js → esm2020/domain/users/models/enums/family-incomes.enum.mjs} +10 -10
  321. package/{esm2015/domain/users/models/enums/fragrance-importances.enum.js → esm2020/domain/users/models/enums/fragrance-importances.enum.mjs} +7 -7
  322. package/{esm2015/domain/users/models/enums/hair-colors.enum.js → esm2020/domain/users/models/enums/hair-colors.enum.mjs} +12 -12
  323. package/{esm2015/domain/users/models/enums/hair-problems.enum.js → esm2020/domain/users/models/enums/hair-problems.enum.mjs} +12 -12
  324. package/{esm2015/domain/users/models/enums/hair-strands.enum.js → esm2020/domain/users/models/enums/hair-strands.enum.mjs} +10 -10
  325. package/{esm2015/domain/users/models/enums/hair-types.enum.js → esm2020/domain/users/models/enums/hair-types.enum.mjs} +9 -9
  326. package/{esm2015/domain/users/models/enums/index.js → esm2020/domain/users/models/enums/index.mjs} +21 -21
  327. package/{esm2015/domain/users/models/enums/office-position.enum.js → esm2020/domain/users/models/enums/office-position.enum.mjs} +8 -8
  328. package/{esm2015/domain/users/models/enums/product-spents.enum.js → esm2020/domain/users/models/enums/product-spents.enum.mjs} +10 -10
  329. package/{esm2015/domain/users/models/enums/user-type.enum.js → esm2020/domain/users/models/enums/user-type.enum.mjs} +10 -10
  330. package/{esm2015/domain/users/models/index.js → esm2020/domain/users/models/index.mjs} +8 -8
  331. package/{esm2015/domain/users/models/lead.js → esm2020/domain/users/models/lead.mjs} +7 -7
  332. package/esm2020/domain/users/models/subscription/edition.mjs +7 -0
  333. package/{esm2015/domain/users/models/subscription/enums/billing-status.enum.js → esm2020/domain/users/models/subscription/enums/billing-status.enum.mjs} +5 -5
  334. package/{esm2015/domain/users/models/subscription/enums/edition-status.enum.js → esm2020/domain/users/models/subscription/enums/edition-status.enum.mjs} +6 -6
  335. package/{esm2015/domain/users/models/subscription/enums/index.js → esm2020/domain/users/models/subscription/enums/index.mjs} +5 -5
  336. package/{esm2015/domain/users/models/subscription/enums/payment-type.enum.js → esm2020/domain/users/models/subscription/enums/payment-type.enum.mjs} +7 -7
  337. package/{esm2015/domain/users/models/subscription/enums/status.enum.js → esm2020/domain/users/models/subscription/enums/status.enum.mjs} +6 -6
  338. package/{esm2015/domain/users/models/subscription/index.js → esm2020/domain/users/models/subscription/index.mjs} +5 -5
  339. package/{esm2015/domain/users/models/subscription/payment.js → esm2020/domain/users/models/subscription/payment.mjs} +14 -14
  340. package/{esm2015/domain/users/models/subscription/subscription.js → esm2020/domain/users/models/subscription/subscription.mjs} +43 -43
  341. package/{esm2015/domain/users/models/user-address.js → esm2020/domain/users/models/user-address.mjs} +7 -7
  342. package/{esm2015/domain/users/models/user-payment-method.js → esm2020/domain/users/models/user-payment-method.mjs} +7 -7
  343. package/{esm2015/domain/users/models/user.js → esm2020/domain/users/models/user.mjs} +26 -26
  344. package/{esm2015/domain/users/repositories/beauty-profile.repository.js → esm2020/domain/users/repositories/beauty-profile.repository.mjs} +2 -2
  345. package/{esm2015/domain/users/repositories/edition.repository.js → esm2020/domain/users/repositories/edition.repository.mjs} +2 -2
  346. package/{esm2015/domain/users/repositories/index.js → esm2020/domain/users/repositories/index.mjs} +9 -9
  347. package/{esm2015/domain/users/repositories/lead.repository.js → esm2020/domain/users/repositories/lead.repository.mjs} +2 -2
  348. package/{esm2015/domain/users/repositories/subscription-payment.repository.js → esm2020/domain/users/repositories/subscription-payment.repository.mjs} +2 -2
  349. package/{esm2015/domain/users/repositories/subscription.repository.js → esm2020/domain/users/repositories/subscription.repository.mjs} +2 -2
  350. package/{esm2015/domain/users/repositories/user-address.repository.js → esm2020/domain/users/repositories/user-address.repository.mjs} +2 -2
  351. package/{esm2015/domain/users/repositories/user-payment-method.repository.js → esm2020/domain/users/repositories/user-payment-method.repository.mjs} +2 -2
  352. package/esm2020/domain/users/repositories/user.repository.mjs +2 -0
  353. package/esm2020/domain/users/services/authentication.service.mjs +2 -0
  354. package/{esm2015/domain/users/services/index.js → esm2020/domain/users/services/index.mjs} +4 -4
  355. package/{esm2015/domain/users/services/register.service.js → esm2020/domain/users/services/register.service.mjs} +2 -2
  356. package/{esm2015/domain/users/services/types/basic-user-data.type.js → esm2020/domain/users/services/types/basic-user-data.type.mjs} +2 -2
  357. package/{esm2015/domain/users/services/types/index.js → esm2020/domain/users/services/types/index.mjs} +2 -2
  358. package/esm2020/domain/users/use-cases/authentication.mjs +43 -0
  359. package/{esm2015/domain/users/use-cases/index.js → esm2020/domain/users/use-cases/index.mjs} +5 -5
  360. package/esm2020/domain/users/use-cases/recovery-password.mjs +9 -0
  361. package/esm2020/domain/users/use-cases/register.mjs +38 -0
  362. package/esm2020/domain/users/use-cases/signout.mjs +9 -0
  363. package/{esm2015/errors/duplicated-results.error.js → esm2020/errors/duplicated-results.error.mjs} +8 -8
  364. package/{esm2015/errors/index.js → esm2020/errors/index.mjs} +5 -5
  365. package/{esm2015/errors/invalid-argument.error.js → esm2020/errors/invalid-argument.error.mjs} +8 -8
  366. package/{esm2015/errors/not-found.error.js → esm2020/errors/not-found.error.mjs} +8 -8
  367. package/{esm2015/errors/required-argument.error.js → esm2020/errors/required-argument.error.mjs} +9 -9
  368. package/{esm2015/index.js → esm2020/index.mjs} +6 -6
  369. package/esm2020/infra/elasticsearch/adapters/axios.adapter.mjs +48 -0
  370. package/esm2020/infra/elasticsearch/adapters/elastic-search.adapter.mjs +2 -0
  371. package/{esm2015/infra/elasticsearch/adapters/index.js → esm2020/infra/elasticsearch/adapters/index.mjs} +3 -3
  372. package/{esm2015/infra/elasticsearch/index.js → esm2020/infra/elasticsearch/index.mjs} +4 -4
  373. package/{esm2015/infra/elasticsearch/indexes/index.js → esm2020/infra/elasticsearch/indexes/index.mjs} +2 -2
  374. package/esm2020/infra/elasticsearch/indexes/products-index.mjs +88 -0
  375. package/{esm2015/infra/elasticsearch/types/elastic-search-result.js → esm2020/infra/elasticsearch/types/elastic-search-result.mjs} +2 -2
  376. package/{esm2015/infra/elasticsearch/types/index.js → esm2020/infra/elasticsearch/types/index.mjs} +2 -2
  377. package/esm2020/infra/firebase/auth/authentication-firebase-auth.service.mjs +41 -0
  378. package/{esm2015/infra/firebase/auth/index.js → esm2020/infra/firebase/auth/index.mjs} +3 -3
  379. package/esm2020/infra/firebase/auth/register-firebase-auth.service.mjs +23 -0
  380. package/{esm2015/infra/firebase/auth/types/firebase-user-with-id.type.js → esm2020/infra/firebase/auth/types/firebase-user-with-id.type.mjs} +2 -2
  381. package/esm2020/infra/firebase/firestore/enums/firestore-field-type.enum.mjs +10 -0
  382. package/esm2020/infra/firebase/firestore/enums/index.mjs +2 -0
  383. package/{esm2015/infra/firebase/firestore/index.js → esm2020/infra/firebase/firestore/index.mjs} +4 -4
  384. package/{esm2015/infra/firebase/firestore/mixins/index.js → esm2020/infra/firebase/firestore/mixins/index.mjs} +10 -10
  385. package/esm2020/infra/firebase/firestore/mixins/with-create-firestore.mixin.mjs +25 -0
  386. package/esm2020/infra/firebase/firestore/mixins/with-crud-firestore.mixin.mjs +10 -0
  387. package/esm2020/infra/firebase/firestore/mixins/with-delete-firestore.mixin.mjs +15 -0
  388. package/esm2020/infra/firebase/firestore/mixins/with-find-firestore.mixin.mjs +94 -0
  389. package/esm2020/infra/firebase/firestore/mixins/with-firestore.mixin.mjs +52 -0
  390. package/esm2020/infra/firebase/firestore/mixins/with-get-firestore.mixin.mjs +21 -0
  391. package/{esm2015/infra/firebase/firestore/mixins/with-helpers.mixin.js → esm2020/infra/firebase/firestore/mixins/with-helpers.mixin.mjs} +17 -17
  392. package/esm2020/infra/firebase/firestore/mixins/with-sub-collection.mixin.mjs +11 -0
  393. package/esm2020/infra/firebase/firestore/mixins/with-update-firestore.mixin.mjs +42 -0
  394. package/esm2020/infra/firebase/firestore/repositories/catalog/category-firestore.repository.mjs +64 -0
  395. package/{esm2015/infra/firebase/firestore/repositories/catalog/index.js → esm2020/infra/firebase/firestore/repositories/catalog/index.mjs} +5 -5
  396. package/esm2020/infra/firebase/firestore/repositories/catalog/product-firestore.repository.mjs +45 -0
  397. package/{esm2015/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.mjs} +14 -14
  398. package/{esm2015/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.mjs} +12 -12
  399. package/{esm2015/infra/firebase/firestore/repositories/index.js → esm2020/infra/firebase/firestore/repositories/index.mjs} +5 -5
  400. package/esm2020/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.mjs +54 -0
  401. package/{esm2015/infra/firebase/firestore/repositories/shop-settings/index.js → esm2020/infra/firebase/firestore/repositories/shop-settings/index.mjs} +3 -4
  402. package/{esm2015/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.mjs} +12 -12
  403. package/{esm2015/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.mjs} +12 -12
  404. package/{esm2015/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.mjs} +12 -12
  405. package/{esm2015/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.mjs} +12 -12
  406. package/{esm2015/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.mjs} +29 -29
  407. package/{esm2015/infra/firebase/firestore/repositories/shopping/index.js → esm2020/infra/firebase/firestore/repositories/shopping/index.mjs} +9 -9
  408. package/{esm2015/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.mjs} +9 -9
  409. package/esm2020/infra/firebase/firestore/repositories/shopping/order-firestore.repository.mjs +38 -0
  410. package/{esm2015/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.mjs} +12 -12
  411. package/{esm2015/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.mjs} +12 -12
  412. package/{esm2015/infra/firebase/firestore/repositories/users/index.js → esm2020/infra/firebase/firestore/repositories/users/index.mjs} +9 -9
  413. package/{esm2015/infra/firebase/firestore/repositories/users/lead-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/users/lead-firestore.repository.mjs} +12 -12
  414. package/{esm2015/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.mjs} +14 -14
  415. package/{esm2015/infra/firebase/firestore/repositories/users/subscription-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/users/subscription-firestore.repository.mjs} +12 -12
  416. package/{esm2015/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.mjs} +14 -14
  417. package/{esm2015/infra/firebase/firestore/repositories/users/user-address-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/users/user-address-firestore.repository.mjs} +14 -14
  418. package/{esm2015/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.mjs} +14 -14
  419. package/esm2020/infra/firebase/firestore/repositories/users/user-firestore.repository.mjs +56 -0
  420. package/{esm2015/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.js → esm2020/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.mjs} +14 -14
  421. package/esm2020/infra/firebase/firestore/types/firestore-sub.repository.type.mjs +2 -0
  422. package/esm2020/infra/firebase/firestore/types/firestore.helpers.type.mjs +2 -0
  423. package/esm2020/infra/firebase/firestore/types/firestore.repository.type.mjs +2 -0
  424. package/{esm2015/infra/firebase/firestore/types/index.js → esm2020/infra/firebase/firestore/types/index.mjs} +4 -4
  425. package/{esm2015/infra/firebase/index.js → esm2020/infra/firebase/index.mjs} +3 -3
  426. package/{esm2015/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.js → esm2020/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.mjs} +13 -13
  427. package/{esm2015/infra/hasura-graphql/enums/hasura-graphql-where.enum.js → esm2020/infra/hasura-graphql/enums/hasura-graphql-where.enum.mjs} +15 -15
  428. package/{esm2015/infra/hasura-graphql/enums/index.js → esm2020/infra/hasura-graphql/enums/index.mjs} +3 -3
  429. package/{esm2015/infra/hasura-graphql/index.js → esm2020/infra/hasura-graphql/index.mjs} +5 -5
  430. package/esm2020/infra/hasura-graphql/mixins/helpers/attribute-option.helper.mjs +32 -0
  431. package/esm2020/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.mjs +68 -0
  432. package/esm2020/infra/hasura-graphql/mixins/helpers/filter-option.helper.mjs +22 -0
  433. package/esm2020/infra/hasura-graphql/mixins/helpers/graphql-field.helper.mjs +96 -0
  434. package/{esm2015/infra/hasura-graphql/mixins/helpers/index.js → esm2020/infra/hasura-graphql/mixins/helpers/index.mjs} +5 -4
  435. package/{esm2015/infra/hasura-graphql/mixins/index.js → esm2020/infra/hasura-graphql/mixins/index.mjs} +8 -8
  436. package/esm2020/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.mjs +37 -0
  437. package/esm2020/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.mjs +10 -0
  438. package/esm2020/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.mjs +29 -0
  439. package/esm2020/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.mjs +46 -0
  440. package/esm2020/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.mjs +34 -0
  441. package/esm2020/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.mjs +92 -0
  442. package/esm2020/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.mjs +58 -0
  443. package/{esm2015/infra/hasura-graphql/models/category-hasura-graphql.js → esm2020/infra/hasura-graphql/models/category-hasura-graphql.mjs} +4 -4
  444. package/{esm2015/infra/hasura-graphql/models/index.js → esm2020/infra/hasura-graphql/models/index.mjs} +5 -5
  445. package/{esm2015/infra/hasura-graphql/models/kit-product-hasura-graphql.js → esm2020/infra/hasura-graphql/models/kit-product-hasura-graphql.mjs} +15 -15
  446. package/{esm2015/infra/hasura-graphql/models/product-hasura-graphql.js → esm2020/infra/hasura-graphql/models/product-hasura-graphql.mjs} +11 -11
  447. package/{esm2015/infra/hasura-graphql/models/variant-hasura-graphql.js → esm2020/infra/hasura-graphql/models/variant-hasura-graphql.mjs} +9 -9
  448. package/esm2020/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.mjs +219 -0
  449. package/{esm2015/infra/hasura-graphql/repositories/catalog/index.js → esm2020/infra/hasura-graphql/repositories/catalog/index.mjs} +4 -4
  450. package/esm2020/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.mjs +466 -0
  451. package/esm2020/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.mjs +106 -0
  452. package/{esm2015/infra/hasura-graphql/repositories/index.js → esm2020/infra/hasura-graphql/repositories/index.mjs} +2 -2
  453. package/{esm2015/infra/hasura-graphql/types/fields.type.js → esm2020/infra/hasura-graphql/types/fields.type.mjs} +2 -2
  454. package/esm2020/infra/hasura-graphql/types/graphql.repository.type.mjs +2 -0
  455. package/{esm2015/infra/hasura-graphql/types/hasura-graphql-auth-options.type.js → esm2020/infra/hasura-graphql/types/hasura-graphql-auth-options.type.mjs} +2 -2
  456. package/esm2020/infra/hasura-graphql/types/hasura-graphql-fields.type.mjs +2 -0
  457. package/{esm2015/infra/hasura-graphql/types/hasura-graphql-headers.type.js → esm2020/infra/hasura-graphql/types/hasura-graphql-headers.type.mjs} +2 -2
  458. package/{esm2015/infra/hasura-graphql/types/index.js → esm2020/infra/hasura-graphql/types/index.mjs} +9 -9
  459. package/{esm2015/infra/hasura-graphql/types/nested-field.type.js → esm2020/infra/hasura-graphql/types/nested-field.type.mjs} +2 -2
  460. package/{esm2015/infra/hasura-graphql/types/query-builder-options.type.js → esm2020/infra/hasura-graphql/types/query-builder-options.type.mjs} +2 -2
  461. package/{esm2015/infra/hasura-graphql/types/variable-options.type.js → esm2020/infra/hasura-graphql/types/variable-options.type.mjs} +2 -2
  462. package/{esm2015/infra/index.js → esm2020/infra/index.mjs} +4 -4
  463. package/{esm2015/infrab4a-connect.js → esm2020/infrab4a-connect.mjs} +4 -4
  464. package/{esm2015/utils/index.js → esm2020/utils/index.mjs} +8 -8
  465. package/{esm2015/utils/is-uuid.js → esm2020/utils/is-uuid.mjs} +3 -3
  466. package/{esm2015/utils/mixins/base.mixin.js → esm2020/utils/mixins/base.mixin.mjs} +6 -6
  467. package/{esm2015/utils/mixins/index.js → esm2020/utils/mixins/index.mjs} +4 -4
  468. package/{esm2015/utils/mixins/merge-constructor-params.type.js → esm2020/utils/mixins/merge-constructor-params.type.mjs} +2 -2
  469. package/{esm2015/utils/mixins/mixin-ctor.type.js → esm2020/utils/mixins/mixin-ctor.type.mjs} +2 -2
  470. package/{esm2015/utils/parse-datetime.js → esm2020/utils/parse-datetime.mjs} +14 -14
  471. package/{esm2015/utils/types/array-element.type.js → esm2020/utils/types/array-element.type.mjs} +2 -2
  472. package/{esm2015/utils/types/index.js → esm2020/utils/types/index.mjs} +3 -3
  473. package/{esm2015/utils/types/prop.type.js → esm2020/utils/types/prop.type.mjs} +2 -2
  474. package/fesm2015/{infrab4a-connect.js → infrab4a-connect.mjs} +3158 -3073
  475. package/fesm2015/infrab4a-connect.mjs.map +1 -0
  476. package/fesm2020/infrab4a-connect.mjs +3261 -0
  477. package/fesm2020/infrab4a-connect.mjs.map +1 -0
  478. package/index.d.ts +5 -5
  479. package/infra/elasticsearch/adapters/axios.adapter.d.ts +14 -14
  480. package/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +7 -7
  481. package/infra/elasticsearch/adapters/index.d.ts +2 -2
  482. package/infra/elasticsearch/index.d.ts +3 -3
  483. package/infra/elasticsearch/indexes/index.d.ts +1 -1
  484. package/infra/elasticsearch/indexes/products-index.d.ts +15 -15
  485. package/infra/elasticsearch/types/elastic-search-result.d.ts +7 -7
  486. package/infra/elasticsearch/types/index.d.ts +1 -1
  487. package/infra/firebase/auth/authentication-firebase-auth.service.d.ts +12 -12
  488. package/infra/firebase/auth/index.d.ts +2 -2
  489. package/infra/firebase/auth/register-firebase-auth.service.d.ts +8 -8
  490. package/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +3 -3
  491. package/infra/firebase/firestore/enums/firestore-field-type.enum.d.ts +8 -0
  492. package/infra/firebase/firestore/enums/index.d.ts +1 -0
  493. package/infra/firebase/firestore/index.d.ts +3 -3
  494. package/infra/firebase/firestore/mixins/index.d.ts +9 -9
  495. package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +4 -4
  496. package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +4 -4
  497. package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +4 -4
  498. package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +4 -4
  499. package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +4 -4
  500. package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +4 -4
  501. package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +11 -11
  502. package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +7 -7
  503. package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +7 -7
  504. package/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +17 -17
  505. package/infra/firebase/firestore/repositories/catalog/index.d.ts +4 -4
  506. package/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +11 -11
  507. package/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +13 -13
  508. package/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +8 -8
  509. package/infra/firebase/firestore/repositories/index.d.ts +4 -4
  510. package/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +16 -16
  511. package/infra/firebase/firestore/repositories/shop-settings/index.d.ts +2 -3
  512. package/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +8 -8
  513. package/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +8 -8
  514. package/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +8 -8
  515. package/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +8 -8
  516. package/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +12 -12
  517. package/infra/firebase/firestore/repositories/shopping/index.d.ts +8 -8
  518. package/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +7 -7
  519. package/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +13 -8
  520. package/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +8 -8
  521. package/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +8 -8
  522. package/infra/firebase/firestore/repositories/users/index.d.ts +8 -8
  523. package/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +8 -8
  524. package/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +13 -13
  525. package/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +8 -8
  526. package/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +13 -13
  527. package/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +13 -13
  528. package/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +13 -13
  529. package/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +17 -17
  530. package/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +13 -13
  531. package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +6 -6
  532. package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +8 -8
  533. package/infra/firebase/firestore/types/firestore.repository.type.d.ts +14 -12
  534. package/infra/firebase/firestore/types/index.d.ts +3 -3
  535. package/infra/firebase/index.d.ts +2 -2
  536. package/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.d.ts +11 -11
  537. package/infra/hasura-graphql/enums/hasura-graphql-where.enum.d.ts +13 -13
  538. package/infra/hasura-graphql/enums/index.d.ts +2 -2
  539. package/infra/hasura-graphql/index.d.ts +4 -4
  540. package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +13 -13
  541. package/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.d.ts +10 -0
  542. package/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +6 -6
  543. package/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +8 -8
  544. package/infra/hasura-graphql/mixins/helpers/index.d.ts +4 -3
  545. package/infra/hasura-graphql/mixins/index.d.ts +7 -7
  546. package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +8 -8
  547. package/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +11 -11
  548. package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +7 -7
  549. package/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +25 -31
  550. package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +24 -24
  551. package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +11 -11
  552. package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +14 -14
  553. package/infra/hasura-graphql/models/category-hasura-graphql.d.ts +6 -6
  554. package/infra/hasura-graphql/models/index.d.ts +4 -4
  555. package/infra/hasura-graphql/models/kit-product-hasura-graphql.d.ts +6 -6
  556. package/infra/hasura-graphql/models/product-hasura-graphql.d.ts +14 -14
  557. package/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +9 -9
  558. package/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +27 -27
  559. package/infra/hasura-graphql/repositories/catalog/index.d.ts +3 -3
  560. package/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +28 -28
  561. package/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +14 -14
  562. package/infra/hasura-graphql/repositories/index.d.ts +1 -1
  563. package/infra/hasura-graphql/types/fields.type.d.ts +2 -2
  564. package/infra/hasura-graphql/types/graphql.repository.type.d.ts +21 -21
  565. package/infra/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +8 -8
  566. package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +40 -36
  567. package/infra/hasura-graphql/types/hasura-graphql-headers.type.d.ts +7 -7
  568. package/infra/hasura-graphql/types/index.d.ts +8 -8
  569. package/infra/hasura-graphql/types/nested-field.type.d.ts +7 -7
  570. package/infra/hasura-graphql/types/query-builder-options.type.d.ts +7 -7
  571. package/infra/hasura-graphql/types/variable-options.type.d.ts +9 -9
  572. package/infra/index.d.ts +3 -3
  573. package/package.json +21 -8
  574. package/utils/index.d.ts +7 -7
  575. package/utils/is-uuid.d.ts +1 -1
  576. package/utils/mixins/base.mixin.d.ts +3 -3
  577. package/utils/mixins/index.d.ts +3 -3
  578. package/utils/mixins/merge-constructor-params.type.d.ts +3 -3
  579. package/utils/mixins/mixin-ctor.type.d.ts +1 -1
  580. package/utils/parse-datetime.d.ts +1 -1
  581. package/utils/types/array-element.type.d.ts +1 -1
  582. package/utils/types/index.d.ts +2 -2
  583. package/utils/types/prop.type.d.ts +1 -1
  584. package/bundles/infrab4a-connect.umd.js +0 -4981
  585. package/bundles/infrab4a-connect.umd.js.map +0 -1
  586. package/domain/shop-settings/models/shop-settings.d.ts +0 -9
  587. package/domain/shop-settings/models/types/shop-banner.type.d.ts +0 -10
  588. package/domain/shop-settings/models/types/shop-brands.type.d.ts +0 -10
  589. package/domain/shop-settings/models/types/shop-carousel.type.d.ts +0 -5
  590. package/domain/shop-settings/models/types/shop-collection.type.d.ts +0 -8
  591. package/domain/shop-settings/models/types/shop-section.type.d.ts +0 -9
  592. package/domain/shop-settings/repositories/shop-settings.repository.d.ts +0 -4
  593. package/esm2015/domain/catalog/models/category.js +0 -10
  594. package/esm2015/domain/catalog/models/product.js +0 -17
  595. package/esm2015/domain/catalog/models/types/product-review.type.js +0 -2
  596. package/esm2015/domain/catalog/models/variant.js +0 -10
  597. package/esm2015/domain/catalog/repositories/category.repository.js +0 -2
  598. package/esm2015/domain/catalog/repositories/product.repository.js +0 -2
  599. package/esm2015/domain/generic/model/base.model.js +0 -23
  600. package/esm2015/domain/generic/model/types/base-model-builder.type.js +0 -2
  601. package/esm2015/domain/generic/model/types/identifier-model.type.js +0 -2
  602. package/esm2015/domain/generic/model/types/non-function-properties.type.js +0 -2
  603. package/esm2015/domain/generic/repository/create.repository.js +0 -2
  604. package/esm2015/domain/generic/repository/crud.repository.js +0 -2
  605. package/esm2015/domain/generic/repository/delete.repository.js +0 -2
  606. package/esm2015/domain/generic/repository/find.repository.js +0 -2
  607. package/esm2015/domain/generic/repository/get.repository.js +0 -2
  608. package/esm2015/domain/generic/repository/read.repository.js +0 -2
  609. package/esm2015/domain/generic/repository/types/repository-find-filters.type.js +0 -2
  610. package/esm2015/domain/generic/repository/types/repository-update-params.type.js +0 -2
  611. package/esm2015/domain/generic/repository/update.repository.js +0 -2
  612. package/esm2015/domain/location/models/address.js +0 -7
  613. package/esm2015/domain/shop-settings/models/home.js +0 -7
  614. package/esm2015/domain/shop-settings/models/shop-settings.js +0 -7
  615. package/esm2015/domain/shop-settings/models/types/home-data.type.js +0 -2
  616. package/esm2015/domain/shop-settings/models/types/index.js +0 -11
  617. package/esm2015/domain/shop-settings/models/types/shop-banner.type.js +0 -2
  618. package/esm2015/domain/shop-settings/models/types/shop-brands.type.js +0 -2
  619. package/esm2015/domain/shop-settings/models/types/shop-carousel.type.js +0 -2
  620. package/esm2015/domain/shop-settings/models/types/shop-collection.type.js +0 -2
  621. package/esm2015/domain/shop-settings/models/types/shop-section.type.js +0 -2
  622. package/esm2015/domain/shop-settings/repositories/shop-settings.repository.js +0 -2
  623. package/esm2015/domain/shopping/models/checkout.js +0 -38
  624. package/esm2015/domain/shopping/models/payment.js +0 -169
  625. package/esm2015/domain/shopping/models/types/payment-address.type.js +0 -2
  626. package/esm2015/domain/shopping/models/types/payment-card.type.js +0 -2
  627. package/esm2015/domain/shopping/models/types/payment-customer.type.js +0 -2
  628. package/esm2015/domain/users/models/subscription/edition.js +0 -7
  629. package/esm2015/domain/users/repositories/user.repository.js +0 -2
  630. package/esm2015/domain/users/services/authentication.service.js +0 -2
  631. package/esm2015/domain/users/use-cases/authentication.js +0 -40
  632. package/esm2015/domain/users/use-cases/recovery-password.js +0 -12
  633. package/esm2015/domain/users/use-cases/register.js +0 -34
  634. package/esm2015/domain/users/use-cases/signout.js +0 -12
  635. package/esm2015/infra/elasticsearch/adapters/axios.adapter.js +0 -57
  636. package/esm2015/infra/elasticsearch/adapters/elastic-search.adapter.js +0 -2
  637. package/esm2015/infra/elasticsearch/indexes/products-index.js +0 -93
  638. package/esm2015/infra/firebase/auth/authentication-firebase-auth.service.js +0 -52
  639. package/esm2015/infra/firebase/auth/register-firebase-auth.service.js +0 -26
  640. package/esm2015/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +0 -31
  641. package/esm2015/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +0 -10
  642. package/esm2015/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +0 -18
  643. package/esm2015/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +0 -92
  644. package/esm2015/infra/firebase/firestore/mixins/with-firestore.mixin.js +0 -22
  645. package/esm2015/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +0 -24
  646. package/esm2015/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +0 -11
  647. package/esm2015/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +0 -45
  648. package/esm2015/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +0 -71
  649. package/esm2015/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js +0 -52
  650. package/esm2015/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.js +0 -56
  651. package/esm2015/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.js +0 -12
  652. package/esm2015/infra/firebase/firestore/repositories/shopping/order-firestore.repository.js +0 -12
  653. package/esm2015/infra/firebase/firestore/repositories/users/user-firestore.repository.js +0 -68
  654. package/esm2015/infra/firebase/firestore/types/firestore-sub.repository.type.js +0 -2
  655. package/esm2015/infra/firebase/firestore/types/firestore.helpers.type.js +0 -2
  656. package/esm2015/infra/firebase/firestore/types/firestore.repository.type.js +0 -2
  657. package/esm2015/infra/hasura-graphql/mixins/helpers/attribute-option.helper.js +0 -31
  658. package/esm2015/infra/hasura-graphql/mixins/helpers/filter-option.helper.js +0 -22
  659. package/esm2015/infra/hasura-graphql/mixins/helpers/graphql-field.helper.js +0 -72
  660. package/esm2015/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.js +0 -45
  661. package/esm2015/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.js +0 -10
  662. package/esm2015/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.js +0 -29
  663. package/esm2015/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.js +0 -93
  664. package/esm2015/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.js +0 -35
  665. package/esm2015/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.js +0 -94
  666. package/esm2015/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.js +0 -56
  667. package/esm2015/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js +0 -230
  668. package/esm2015/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js +0 -455
  669. package/esm2015/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.js +0 -116
  670. package/esm2015/infra/hasura-graphql/types/graphql.repository.type.js +0 -2
  671. package/esm2015/infra/hasura-graphql/types/hasura-graphql-fields.type.js +0 -2
  672. package/fesm2015/infrab4a-connect.js.map +0 -1
  673. package/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +0 -8
  674. package/infrab4a-connect.d.ts +0 -5
@@ -0,0 +1,25 @@
1
+ import { isEmpty } from '../../../../utils';
2
+ export const withCreateFirestore = (MixinBase) => {
3
+ return class CreateFirestore extends MixinBase {
4
+ async create(data) {
5
+ const docRef = await this.save(this.model.toInstance(data));
6
+ const doc = await docRef.get();
7
+ return doc.data();
8
+ }
9
+ async save(data) {
10
+ const id = data[data.identifiersFields.shift()]?.toString();
11
+ const collectionPath = this.buildCollectionPathForAdd(data);
12
+ if (isEmpty(id))
13
+ return this.collection(collectionPath).add(data);
14
+ const docRef = this.collection(collectionPath).doc(id);
15
+ await docRef.set(data);
16
+ return docRef;
17
+ }
18
+ buildCollectionPathForAdd(identifiers) {
19
+ return this.isSubCollection(this)
20
+ ? `${this.parentRepository.collectionName}/${identifiers[this.parentIdField]}/${this.collectionName}`
21
+ : this.collectionName;
22
+ }
23
+ };
24
+ };
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jcmVhdGUtZmlyZXN0b3JlLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLWNyZWF0ZS1maXJlc3RvcmUubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLE9BQU8sRUFBcUMsTUFBTSxtQkFBbUIsQ0FBQTtBQUU5RSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUlqQyxTQUFnRixFQUloRixFQUFFO0lBQ0YsT0FBTyxNQUFNLGVBQWdCLFNBQVEsU0FBUztRQUM1QyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQW1DO1lBQzlDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFXLENBQUMsQ0FBQyxDQUFBO1lBQ2xFLE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFBO1lBRTlCLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ25CLENBQUM7UUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQVc7WUFDcEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFBO1lBQzNELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUUzRCxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUVqRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN0RCxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7WUFFdEIsT0FBTyxNQUFNLENBQUE7UUFDZixDQUFDO1FBRUQseUJBQXlCLENBQUMsV0FBMkI7WUFDbkQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3JHLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFBO1FBQ3pCLENBQUM7S0FDSyxDQUFBO0FBQ1YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9jdW1lbnRSZWZlcmVuY2UgfSBmcm9tICdAZmlyZWJhc2UvZmlyZXN0b3JlLXR5cGVzJ1xuXG5pbXBvcnQgeyBDcmVhdGVSZXBvc2l0b3J5LCBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zLCBNb2RlbEJhc2VTdHJ1Y3R1cmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBGaXJlc3RvcmVIZWxwZXJzLCBGaXJlc3RvcmVSZXBvc2l0b3J5IH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBpc0VtcHR5LCBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zLCBNaXhpbkN0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscydcblxuZXhwb3J0IGNvbnN0IHdpdGhDcmVhdGVGaXJlc3RvcmUgPSA8XG4gIFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+Pixcbj4oXG4gIE1peGluQmFzZTogTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+ICYgRmlyZXN0b3JlSGVscGVycz4gJiBUTWl4aW5CYXNlLFxuKTogTWl4aW5DdG9yPFxuICBGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIEluc3RhbmNlVHlwZTxUTWl4aW5CYXNlPiAmIENyZWF0ZVJlcG9zaXRvcnk8VEJhc2U+ICYgRmlyZXN0b3JlSGVscGVycyxcbiAgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtczx7fSwgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFRNaXhpbkJhc2U+PlxuPiA9PiB7XG4gIHJldHVybiBjbGFzcyBDcmVhdGVGaXJlc3RvcmUgZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBDcmVhdGVSZXBvc2l0b3J5PFRCYXNlPiB7XG4gICAgYXN5bmMgY3JlYXRlKGRhdGE6IENyZWF0ZVJlcG9zaXRvcnlQYXJhbXM8VEJhc2U+KTogUHJvbWlzZTxUQmFzZT4ge1xuICAgICAgY29uc3QgZG9jUmVmID0gYXdhaXQgdGhpcy5zYXZlKHRoaXMubW9kZWwudG9JbnN0YW5jZShkYXRhIGFzIGFueSkpXG4gICAgICBjb25zdCBkb2MgPSBhd2FpdCBkb2NSZWYuZ2V0KClcblxuICAgICAgcmV0dXJuIGRvYy5kYXRhKClcbiAgICB9XG5cbiAgICBhc3luYyBzYXZlKGRhdGE6IFRCYXNlKTogUHJvbWlzZTxEb2N1bWVudFJlZmVyZW5jZTxUQmFzZT4+IHtcbiAgICAgIGNvbnN0IGlkID0gZGF0YVtkYXRhLmlkZW50aWZpZXJzRmllbGRzLnNoaWZ0KCldPy50b1N0cmluZygpXG4gICAgICBjb25zdCBjb2xsZWN0aW9uUGF0aCA9IHRoaXMuYnVpbGRDb2xsZWN0aW9uUGF0aEZvckFkZChkYXRhKVxuXG4gICAgICBpZiAoaXNFbXB0eShpZCkpIHJldHVybiB0aGlzLmNvbGxlY3Rpb24oY29sbGVjdGlvblBhdGgpLmFkZChkYXRhKVxuXG4gICAgICBjb25zdCBkb2NSZWYgPSB0aGlzLmNvbGxlY3Rpb24oY29sbGVjdGlvblBhdGgpLmRvYyhpZClcbiAgICAgIGF3YWl0IGRvY1JlZi5zZXQoZGF0YSlcblxuICAgICAgcmV0dXJuIGRvY1JlZlxuICAgIH1cblxuICAgIGJ1aWxkQ29sbGVjdGlvblBhdGhGb3JBZGQoaWRlbnRpZmllcnM6IFBhcnRpYWw8VEJhc2U+KTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmlzU3ViQ29sbGVjdGlvbih0aGlzKVxuICAgICAgICA/IGAke3RoaXMucGFyZW50UmVwb3NpdG9yeS5jb2xsZWN0aW9uTmFtZX0vJHtpZGVudGlmaWVyc1t0aGlzLnBhcmVudElkRmllbGRdfS8ke3RoaXMuY29sbGVjdGlvbk5hbWV9YFxuICAgICAgICA6IHRoaXMuY29sbGVjdGlvbk5hbWVcbiAgICB9XG4gIH0gYXMgYW55XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { withCreateFirestore } from './with-create-firestore.mixin';
2
+ import { withDeleteFirestore } from './with-delete-firestore.mixin';
3
+ import { withFindFirestore } from './with-find-firestore.mixin';
4
+ import { withGetFirestore } from './with-get-firestore.mixin';
5
+ import { withUpdateFirestore } from './with-update-firestore.mixin';
6
+ export const withCrudFirestore = (MixinBase) => {
7
+ return class CrudFirestore extends withUpdateFirestore(withGetFirestore(withFindFirestore(withDeleteFirestore(withCreateFirestore(MixinBase))))) {
8
+ };
9
+ };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jcnVkLWZpcmVzdG9yZS5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9taXhpbnMvd2l0aC1jcnVkLWZpcmVzdG9yZS5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUVuRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUsvQixTQUFnRixFQUloRixFQUFFO0lBQ0YsT0FBTyxNQUFNLGFBQ1gsU0FBUSxtQkFBbUIsQ0FDekIsZ0JBQWdCLENBQ2QsaUJBQWlCLENBQ2YsbUJBQW1CLENBQ2pCLG1CQUFtQixDQUFDLFNBQXFFLENBQUMsQ0FDM0YsQ0FDRixDQUNGLENBQ0Y7S0FDeUMsQ0FBQTtBQUM5QyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbEJhc2VTdHJ1Y3R1cmUsIENydWRSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtcywgTWl4aW5DdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5cbmltcG9ydCB7IHdpdGhDcmVhdGVGaXJlc3RvcmUgfSBmcm9tICcuL3dpdGgtY3JlYXRlLWZpcmVzdG9yZS5taXhpbidcbmltcG9ydCB7IHdpdGhEZWxldGVGaXJlc3RvcmUgfSBmcm9tICcuL3dpdGgtZGVsZXRlLWZpcmVzdG9yZS5taXhpbidcbmltcG9ydCB7IHdpdGhGaW5kRmlyZXN0b3JlIH0gZnJvbSAnLi93aXRoLWZpbmQtZmlyZXN0b3JlLm1peGluJ1xuaW1wb3J0IHsgd2l0aEdldEZpcmVzdG9yZSB9IGZyb20gJy4vd2l0aC1nZXQtZmlyZXN0b3JlLm1peGluJ1xuaW1wb3J0IHsgd2l0aFVwZGF0ZUZpcmVzdG9yZSB9IGZyb20gJy4vd2l0aC11cGRhdGUtZmlyZXN0b3JlLm1peGluJ1xuXG5leHBvcnQgY29uc3Qgd2l0aENydWRGaXJlc3RvcmUgPSA8XG4gIFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBSZXBvc2l0b3J5ID0gQ3J1ZFJlcG9zaXRvcnk8VEJhc2U+LFxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yID0gTWl4aW5DdG9yLFxuPihcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4gJiBGaXJlc3RvcmVIZWxwZXJzPiAmIFRNaXhpbkJhc2UsXG4pOiBNaXhpbkN0b3I8XG4gIEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+ICYgUmVwb3NpdG9yeSAmIEZpcmVzdG9yZUhlbHBlcnMsXG4gIE1lcmdlQ29uc3RydWN0b3JQYXJhbXM8e30sIENvbnN0cnVjdG9yUGFyYW1ldGVyczxUTWl4aW5CYXNlPj5cbj4gPT4ge1xuICByZXR1cm4gY2xhc3MgQ3J1ZEZpcmVzdG9yZVxuICAgIGV4dGVuZHMgd2l0aFVwZGF0ZUZpcmVzdG9yZShcbiAgICAgIHdpdGhHZXRGaXJlc3RvcmUoXG4gICAgICAgIHdpdGhGaW5kRmlyZXN0b3JlKFxuICAgICAgICAgIHdpdGhEZWxldGVGaXJlc3RvcmUoXG4gICAgICAgICAgICB3aXRoQ3JlYXRlRmlyZXN0b3JlKE1peGluQmFzZSBhcyBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4gJiBGaXJlc3RvcmVIZWxwZXJzPiksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKVxuICAgIGltcGxlbWVudHMgQ3J1ZFJlcG9zaXRvcnk8VEJhc2U+IHt9IGFzIGFueVxufVxuIl19
@@ -0,0 +1,15 @@
1
+ export const withDeleteFirestore = (MixinBase) => {
2
+ return class DeleteFirestore extends MixinBase {
3
+ async delete(identifiers) {
4
+ await this.collection(this.buildCollectionPathForRemove(identifiers))
5
+ .doc(Object.values(identifiers).shift().toString())
6
+ .delete();
7
+ }
8
+ buildCollectionPathForRemove(identifiers) {
9
+ return this.isSubCollection(this)
10
+ ? `${this.parentRepository.collectionName}/${identifiers[this.parentIdField]}/${this.collectionName}`
11
+ : this.collectionName;
12
+ }
13
+ };
14
+ };
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kZWxldGUtZmlyZXN0b3JlLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLWRlbGV0ZS1maXJlc3RvcmUubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FJakMsU0FBZ0YsRUFJaEYsRUFBRTtJQUNGLE9BQU8sTUFBTSxlQUFnQixTQUFRLFNBQVM7UUFDNUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUEwQztZQUNyRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUNsRSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDbEQsTUFBTSxFQUFFLENBQUE7UUFDYixDQUFDO1FBRUQsNEJBQTRCLENBQUMsV0FBb0M7WUFDL0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3JHLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFBO1FBQ3pCLENBQUM7S0FDSyxDQUFBO0FBQ1YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWRlbnRpZmllcnNNb2RlbCwgTW9kZWxCYXNlU3RydWN0dXJlLCBEZWxldGVSZXBvc2l0b3J5LCBEZWxldGVSZXBvc2l0b3J5UGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtcywgTWl4aW5DdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5cbmV4cG9ydCBjb25zdCB3aXRoRGVsZXRlRmlyZXN0b3JlID0gPFxuICBUQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgVE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPj4sXG4+KFxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIEZpcmVzdG9yZUhlbHBlcnM+ICYgVE1peGluQmFzZSxcbik6IE1peGluQ3RvcjxcbiAgRmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4gJiBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4gJiBEZWxldGVSZXBvc2l0b3J5PFRCYXNlPiAmIEZpcmVzdG9yZUhlbHBlcnMsXG4gIE1lcmdlQ29uc3RydWN0b3JQYXJhbXM8e30sIENvbnN0cnVjdG9yUGFyYW1ldGVyczxUTWl4aW5CYXNlPj5cbj4gPT4ge1xuICByZXR1cm4gY2xhc3MgRGVsZXRlRmlyZXN0b3JlIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgRGVsZXRlUmVwb3NpdG9yeTxUQmFzZT4ge1xuICAgIGFzeW5jIGRlbGV0ZShpZGVudGlmaWVyczogRGVsZXRlUmVwb3NpdG9yeVBhcmFtczxUQmFzZT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbih0aGlzLmJ1aWxkQ29sbGVjdGlvblBhdGhGb3JSZW1vdmUoaWRlbnRpZmllcnMpKVxuICAgICAgICAuZG9jKE9iamVjdC52YWx1ZXMoaWRlbnRpZmllcnMpLnNoaWZ0KCkudG9TdHJpbmcoKSlcbiAgICAgICAgLmRlbGV0ZSgpXG4gICAgfVxuXG4gICAgYnVpbGRDb2xsZWN0aW9uUGF0aEZvclJlbW92ZShpZGVudGlmaWVyczogSWRlbnRpZmllcnNNb2RlbDxUQmFzZT4pOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuaXNTdWJDb2xsZWN0aW9uKHRoaXMpXG4gICAgICAgID8gYCR7dGhpcy5wYXJlbnRSZXBvc2l0b3J5LmNvbGxlY3Rpb25OYW1lfS8ke2lkZW50aWZpZXJzW3RoaXMucGFyZW50SWRGaWVsZF19LyR7dGhpcy5jb2xsZWN0aW9uTmFtZX1gXG4gICAgICAgIDogdGhpcy5jb2xsZWN0aW9uTmFtZVxuICAgIH1cbiAgfSBhcyBhbnlcbn1cbiJdfQ==
@@ -0,0 +1,94 @@
1
+ import { Where, } from '../../../../domain';
2
+ import { isDate, isNil, isNumber, isObject, isString, set } from '../../../../utils';
3
+ import { FirestoreFieldType } from '../enums';
4
+ export const withFindFirestore = (MixinBase) => {
5
+ const checkIfIsFilterOption = (filter) => !isNil(filter?.operator);
6
+ const getValueFromFilter = (filter) => {
7
+ return checkIfIsFilterOption(filter) ? filter.value : filter;
8
+ };
9
+ const getFinalValueFrom = (value) => isNumber(value) || isString(value) || isDate(value) || Array.isArray(value)
10
+ ? value
11
+ : Object.values(getFinalValueFrom);
12
+ return class FindFirestore extends MixinBase {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.makeFirestoreWhere = (queryReference, filter) => Object.keys(filter).reduce((query, fieldName) => this.buildWhereSentence(query, fieldName, filter[fieldName]), queryReference);
16
+ this.buildWhereSentence = (queryReference, fieldName, options) => {
17
+ if (this.isSubCollection(this) && fieldName === this.parentIdField)
18
+ return queryReference;
19
+ const value = options?.value || options;
20
+ const object = {};
21
+ set(object, fieldName, value);
22
+ const plainInstance = new this.model(object).toPlain();
23
+ const firestoreFieldName = fieldName.toString().indexOf('.') > -1
24
+ ? fieldName.toString()
25
+ : Object.keys(plainInstance).find((key) => plainInstance[key]);
26
+ if (options?.operator === Where.LIKE) {
27
+ if (Array.isArray(options?.value) &&
28
+ (this.fields[firestoreFieldName] === FirestoreFieldType.Array || !this.fields[firestoreFieldName]))
29
+ return queryReference.where(firestoreFieldName, 'array-contains-any', options.value);
30
+ queryReference = queryReference.where(firestoreFieldName, '>=', options.value);
31
+ queryReference = queryReference.where(firestoreFieldName, '<=', `${options.value}~`);
32
+ return queryReference;
33
+ }
34
+ if (options?.operator === Where.IN &&
35
+ Array.isArray(options?.value) &&
36
+ (this.fields[firestoreFieldName] === FirestoreFieldType.Array || !this.fields[firestoreFieldName]))
37
+ return queryReference.where(firestoreFieldName, 'array-contains', options.value);
38
+ if (isObject(options) && isNil(options?.operator) && isNil(options?.value)) {
39
+ return Object.keys(options).reduce((queryReferenceWithWhere, key) => this.buildWhereSentence(queryReferenceWithWhere, `${fieldName.toString()}.${key}`, options[key]), queryReference);
40
+ }
41
+ return queryReference.where(firestoreFieldName, options?.operator || '==', options?.value || options);
42
+ };
43
+ }
44
+ async find({ filters, limits, orderBy, } = {}) {
45
+ const orderByKeys = Object.keys(orderBy || {});
46
+ let query = this.collection(this.buildCollectionPathForFind(filters || {}));
47
+ query = this.makeFirestoreWhere(query, filters || {});
48
+ if (orderByKeys.length) {
49
+ const filtersKeysWithUnordered = Object.keys(filters || {}).filter((filterKey) => !orderByKeys.includes(filterKey));
50
+ if (filtersKeysWithUnordered.length)
51
+ filtersKeysWithUnordered.forEach((filterKey) => (orderBy = {
52
+ ...(![Where.EQUALS].includes(filters[filterKey].operator) ? { [filterKey]: 'asc' } : {}),
53
+ ...orderBy,
54
+ }));
55
+ Object.keys(orderBy).forEach((fieldName) => (query = query.orderBy(fieldName, orderBy[fieldName])));
56
+ }
57
+ query = await this.defineLimits(query, filters, limits);
58
+ const docs = await query.get();
59
+ const data = docs.docs.map((doc) => doc.data());
60
+ return {
61
+ data,
62
+ count: this.calculateCount(data, limits),
63
+ };
64
+ }
65
+ buildCollectionPathForFind(filters) {
66
+ if (!this.isSubCollection(this))
67
+ return this.collectionName;
68
+ const parentIdField = this.parentIdField;
69
+ const parentId = getValueFromFilter(filters?.[parentIdField]);
70
+ return `${this.parentRepository.collectionName}/${parentId}/${this.collectionName}`;
71
+ }
72
+ async defineLimits(query, filters, limits) {
73
+ if (limits?.offset) {
74
+ if (this.model.isModel(limits.offset))
75
+ query = query.startAfter(await this.collection(this.buildCollectionPathForFind(filters))
76
+ .doc(limits.offset[limits.offset.identifiersFields.shift()])
77
+ .get());
78
+ else if (isNumber(limits.offset) || isString(limits.offset))
79
+ query = query.startAt(limits.offset);
80
+ }
81
+ if (limits?.limit)
82
+ query = query.limit(limits.limit);
83
+ return query;
84
+ }
85
+ calculateCount(data, limits) {
86
+ if (data.length <= 0)
87
+ return 0;
88
+ if (data.length < limits?.limit)
89
+ return data.length;
90
+ return Infinity;
91
+ }
92
+ };
93
+ };
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maW5kLWZpcmVzdG9yZS5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9taXhpbnMvd2l0aC1maW5kLWZpcmVzdG9yZS5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBVUwsS0FBSyxHQUNOLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQXFDLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3ZILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUc3QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUkvQixTQUFnRixFQUloRixFQUFFO0lBQ0YsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE1BQVcsRUFBdUQsRUFBRSxDQUNqRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDMUIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BQXVDLEVBQU8sRUFBRTtRQUMxRSxPQUFPLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFDOUQsQ0FBQyxDQUFBO0lBQ0QsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQ3ZDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3pFLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMs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RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7WUFFbkQsT0FBTyxRQUFRLENBQUE7UUFDakIsQ0FBQztLQUNLLENBQUE7QUFDVixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uUmVmZXJlbmNlLCBRdWVyeSwgV2hlcmVGaWx0ZXJPcCB9IGZyb20gJ0BmaXJlYmFzZS9maXJlc3RvcmUtdHlwZXMnXG5cbmltcG9ydCB7XG4gIEZpbmRSZXBvc2l0b3J5LFxuICBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lcyxcbiAgUmVwb3NpdG9yeUZpbmRGaWVsZCxcbiAgUmVwb3NpdG9yeUZpbmRGaWVsdGVycyxcbiAgUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnMsXG4gIFJlcG9zaXRvcnlGaW5kUmVzdWx0LFxuICBSZXBvc2l0b3J5TGltaXRPcHRpb25zLFxuICBSZXBvc2l0b3J5T3JkZXJCeSxcbiAgV2hlcmUsXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IGlzRGF0ZSwgaXNOaWwsIGlzTnVtYmVyLCBpc09iamVjdCwgaXNTdHJpbmcsIE1lcmdlQ29uc3RydWN0b3JQYXJhbXMsIE1peGluQ3Rvciwgc2V0IH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBGaXJlc3RvcmVGaWVsZFR5cGUgfSBmcm9tICcuLi9lbnVtcydcbmltcG9ydCB7IEZpcmVzdG9yZUhlbHBlcnMsIEZpcmVzdG9yZVJlcG9zaXRvcnkgfSBmcm9tICcuLi90eXBlcydcblxuZXhwb3J0IGNvbnN0IHdpdGhGaW5kRmlyZXN0b3JlID0gPFxuICBUQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgVE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPj4sXG4+KFxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIEZpcmVzdG9yZUhlbHBlcnM+ICYgVE1peGluQmFzZSxcbik6IE1peGluQ3RvcjxcbiAgRmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4gJiBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4gJiBGaW5kUmVwb3NpdG9yeTxUQmFzZT4gJiBGaXJlc3RvcmVIZWxwZXJzLFxuICBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zPHt9LCBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VE1peGluQmFzZT4+XG4+ID0+IHtcbiAgY29uc3QgY2hlY2tJZklzRmlsdGVyT3B0aW9uID0gKGZpbHRlcjogYW55KTogZmlsdGVyIGlzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPFRCYXNlLCBhbnk+ID0+XG4gICAgIWlzTmlsKGZpbHRlcj8ub3BlcmF0b3IpXG4gIGNvbnN0IGdldFZhbHVlRnJvbUZpbHRlciA9IChmaWx0ZXI6IFJlcG9zaXRvcnlGaW5kRmllbGQ8VEJhc2UsIGFueT4pOiBhbnkgPT4ge1xuICAgIHJldHVybiBjaGVja0lmSXNGaWx0ZXJPcHRpb24oZmlsdGVyKSA/IGZpbHRlci52YWx1ZSA6IGZpbHRlclxuICB9XG4gIGNvbnN0IGdldEZpbmFsVmFsdWVGcm9tID0gKHZhbHVlOiBhbnkpID0+XG4gICAgaXNOdW1iZXIodmFsdWUpIHx8IGlzU3RyaW5nKHZhbHVlKSB8fCBpc0RhdGUodmFsdWUpIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICA/IHZhbHVlXG4gICAgICA6IE9iamVjdC52YWx1ZXMoZ2V0RmluYWxWYWx1ZUZyb20pXG5cbiAgcmV0dXJuIGNsYXNzIEZpbmRGaXJlc3RvcmUgZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBGaW5kUmVwb3NpdG9yeTxUQmFzZT4ge1xuICAgIGFzeW5jIGZpbmQoe1xuICAgICAgZmlsdGVycyxcbiAgICAgIGxpbWl0cyxcbiAgICAgIG9yZGVyQnksXG4gICAgfToge1xuICAgICAgZmlsdGVycz86IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8VEJhc2U+XG4gICAgICBsaW1pdHM/OiBSZXBvc2l0b3J5TGltaXRPcHRpb25zPFRCYXNlPlxuICAgICAgb3JkZXJCeT86IFJlcG9zaXRvcnlPcmRlckJ5PFRCYXNlPlxuICAgIH0gPSB7fSk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8VEJhc2U+PiB7XG4gICAgICBjb25zdCBvcmRlckJ5S2V5cyA9IE9iamVjdC5rZXlzKG9yZGVyQnkgfHwge30pXG4gICAgICBsZXQgcXVlcnk6IENvbGxlY3Rpb25SZWZlcmVuY2U8VEJhc2U+IHwgUXVlcnk8VEJhc2U+ID0gdGhpcy5jb2xsZWN0aW9uKFxuICAgICAgICB0aGlzLmJ1aWxkQ29sbGVjdGlvblBhdGhGb3JGaW5kKGZpbHRlcnMgfHwge30pLFxuICAgICAgKVxuXG4gICAgICBxdWVyeSA9IHRoaXMubWFrZUZpcmVzdG9yZVdoZXJlKHF1ZXJ5LCBmaWx0ZXJzIHx8IHt9KVxuXG4gICAgICBpZiAob3JkZXJCeUtleXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnNLZXlzV2l0aFVub3JkZXJlZCA9IE9iamVjdC5rZXlzKGZpbHRlcnMgfHwge30pLmZpbHRlcihcbiAgICAgICAgICAoZmlsdGVyS2V5KSA9PiAhb3JkZXJCeUtleXMuaW5jbHVkZXMoZmlsdGVyS2V5KSxcbiAgICAgICAgKVxuXG4gICAgICAgIGlmIChmaWx0ZXJzS2V5c1dpdGhVbm9yZGVyZWQubGVuZ3RoKVxuICAgICAgICAgIGZpbHRlcnNLZXlzV2l0aFVub3JkZXJlZC5mb3JFYWNoKFxuICAgICAgICAgICAgKGZpbHRlcktleSkgPT5cbiAgICAgICAgICAgICAgKG9yZGVyQnkgPSB7XG4gICAgICAgICAgICAgICAgLi4uKCFbV2hlcmUuRVFVQUxTXS5pbmNsdWRlcyhmaWx0ZXJzW2ZpbHRlcktleV0ub3BlcmF0b3IpID8geyBbZmlsdGVyS2V5XTogJ2FzYycgfSA6IHt9KSxcbiAgICAgICAgICAgICAgICAuLi5vcmRlckJ5LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICApXG5cbiAgICAgICAgT2JqZWN0LmtleXMob3JkZXJCeSkuZm9yRWFjaCgoZmllbGROYW1lKSA9PiAocXVlcnkgPSBxdWVyeS5vcmRlckJ5KGZpZWxkTmFtZSwgb3JkZXJCeVtmaWVsZE5hbWVdKSkpXG4gICAgICB9XG5cbiAgICAgIHF1ZXJ5ID0gYXdhaXQgdGhpcy5kZWZpbmVMaW1pdHMocXVlcnksIGZpbHRlcnMsIGxpbWl0cylcblxuICAgICAgY29uc3QgZG9jcyA9IGF3YWl0IHF1ZXJ5LmdldCgpXG4gICAgICBjb25zdCBkYXRhID0gZG9jcy5kb2NzLm1hcCgoZG9jKSA9PiBkb2MuZGF0YSgpKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhLFxuICAgICAgICBjb3VudDogdGhpcy5jYWxjdWxhdGVDb3VudChkYXRhLCBsaW1pdHMpLFxuICAgICAgfVxuICAgIH1cblxuICAgIGJ1aWxkQ29sbGVjdGlvblBhdGhGb3JGaW5kKGZpbHRlcnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8VEJhc2U+KTogc3RyaW5nIHtcbiAgICAgIGlmICghdGhpcy5pc1N1YkNvbGxlY3Rpb248VEJhc2U+KHRoaXMpKSByZXR1cm4gdGhpcy5jb2xsZWN0aW9uTmFtZVxuXG4gICAgICBjb25zdCBwYXJlbnRJZEZpZWxkID0gdGhpcy5wYXJlbnRJZEZpZWxkXG4gICAgICBjb25zdCBwYXJlbnRJZCA9IGdldFZhbHVlRnJvbUZpbHRlcihmaWx0ZXJzPy5bcGFyZW50SWRGaWVsZF0pXG5cbiAgICAgIHJldHVybiBgJHt0aGlzLnBhcmVudFJlcG9zaXRvcnkuY29sbGVjdGlvbk5hbWV9LyR7cGFyZW50SWR9LyR7dGhpcy5jb2xsZWN0aW9uTmFtZX1gXG4gICAgfVxuXG4gICAgbWFrZUZpcmVzdG9yZVdoZXJlID0gKFxuICAgICAgcXVlcnlSZWZlcmVuY2U6IENvbGxlY3Rpb25SZWZlcmVuY2U8VEJhc2U+IHwgUXVlcnk8VEJhc2U+LFxuICAgICAgZmlsdGVyOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFRCYXNlPixcbiAgICApOiBRdWVyeTxUQmFzZT4gPT5cbiAgICAgIE9iamVjdC5rZXlzKGZpbHRlcikucmVkdWNlKFxuICAgICAgICAocXVlcnk6IFF1ZXJ5PFRCYXNlPiwgZmllbGROYW1lOiBzdHJpbmcpID0+IHRoaXMuYnVpbGRXaGVyZVNlbnRlbmNlKHF1ZXJ5LCBmaWVsZE5hbWUsIGZpbHRlcltmaWVsZE5hbWVdKSxcbiAgICAgICAgcXVlcnlSZWZlcmVuY2UsXG4gICAgICApXG5cbiAgICBidWlsZFdoZXJlU2VudGVuY2UgPSAoXG4gICAgICBxdWVyeVJlZmVyZW5jZTogQ29sbGVjdGlvblJlZmVyZW5jZTxUQmFzZT4gfCBRdWVyeTxUQmFzZT4sXG4gICAgICBmaWVsZE5hbWU6IE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4gfCBzdHJpbmcsXG4gICAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxUQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPj4sXG4gICAgKTogUXVlcnk8VEJhc2U+ID0+IHtcbiAgICAgIGlmICh0aGlzLmlzU3ViQ29sbGVjdGlvbjxUQmFzZT4odGhpcykgJiYgZmllbGROYW1lID09PSB0aGlzLnBhcmVudElkRmllbGQpIHJldHVybiBxdWVyeVJlZmVyZW5jZVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IG9wdGlvbnM/LnZhbHVlIHx8IG9wdGlvbnNcbiAgICAgIGNvbnN0IG9iamVjdCA9IHt9XG5cbiAgICAgIHNldChvYmplY3QsIGZpZWxkTmFtZSwgdmFsdWUpXG5cbiAgICAgIGNvbnN0IHBsYWluSW5zdGFuY2UgPSBuZXcgdGhpcy5tb2RlbChvYmplY3QpLnRvUGxhaW4oKVxuICAgICAgY29uc3QgZmlyZXN0b3JlRmllbGROYW1lID1cbiAgICAgICAgZmllbGROYW1lLnRvU3RyaW5nKCkuaW5kZXhPZignLicpID4gLTFcbiAgICAgICAgICA/IGZpZWxkTmFtZS50b1N0cmluZygpXG4gICAgICAgICAgOiBPYmplY3Qua2V5cyhwbGFpbkluc3RhbmNlKS5maW5kKChrZXkpID0+IHBsYWluSW5zdGFuY2Vba2V5XSlcblxuICAgICAgaWYgKG9wdGlvbnM/Lm9wZXJhdG9yID09PSBXaGVyZS5MSUtFKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBBcnJheS5pc0FycmF5KG9wdGlvbnM/LnZhbHVlKSAmJlxuICAgICAgICAgICh0aGlzLmZpZWxkc1tmaXJlc3RvcmVGaWVsZE5hbWVdID09PSBGaXJlc3RvcmVGaWVsZFR5cGUuQXJyYXkgfHwgIXRoaXMuZmllbGRzW2ZpcmVzdG9yZUZpZWxkTmFtZV0pXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gcXVlcnlSZWZlcmVuY2Uud2hlcmUoZmlyZXN0b3JlRmllbGROYW1lLCAnYXJyYXktY29udGFpbnMtYW55Jywgb3B0aW9ucy52YWx1ZSlcblxuICAgICAgICBxdWVyeVJlZmVyZW5jZSA9IHF1ZXJ5UmVmZXJlbmNlLndoZXJlKGZpcmVzdG9yZUZpZWxkTmFtZSwgJz49Jywgb3B0aW9ucy52YWx1ZSlcbiAgICAgICAgcXVlcnlSZWZlcmVuY2UgPSBxdWVyeVJlZmVyZW5jZS53aGVyZShmaXJlc3RvcmVGaWVsZE5hbWUsICc8PScsIGAke29wdGlvbnMudmFsdWV9fmApXG5cbiAgICAgICAgcmV0dXJuIHF1ZXJ5UmVmZXJlbmNlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIG9wdGlvbnM/Lm9wZXJhdG9yID09PSBXaGVyZS5JTiAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KG9wdGlvbnM/LnZhbHVlKSAmJlxuICAgICAgICAodGhpcy5maWVsZHNbZmlyZXN0b3JlRmllbGROYW1lXSA9PT0gRmlyZXN0b3JlRmllbGRUeXBlLkFycmF5IHx8ICF0aGlzLmZpZWxkc1tmaXJlc3RvcmVGaWVsZE5hbWVdKVxuICAgICAgKVxuICAgICAgICByZXR1cm4gcXVlcnlSZWZlcmVuY2Uud2hlcmUoZmlyZXN0b3JlRmllbGROYW1lLCAnYXJyYXktY29udGFpbnMnLCBvcHRpb25zLnZhbHVlKVxuICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpICYmIGlzTmlsKG9wdGlvbnM/Lm9wZXJhdG9yKSAmJiBpc05pbChvcHRpb25zPy52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLnJlZHVjZShcbiAgICAgICAgICAocXVlcnlSZWZlcmVuY2VXaXRoV2hlcmUsIGtleSkgPT5cbiAgICAgICAgICAgIHRoaXMuYnVpbGRXaGVyZVNlbnRlbmNlKHF1ZXJ5UmVmZXJlbmNlV2l0aFdoZXJlLCBgJHtmaWVsZE5hbWUudG9TdHJpbmcoKX0uJHtrZXl9YCwgb3B0aW9uc1trZXldKSxcbiAgICAgICAgICBxdWVyeVJlZmVyZW5jZSxcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcXVlcnlSZWZlcmVuY2Uud2hlcmUoXG4gICAgICAgIGZpcmVzdG9yZUZpZWxkTmFtZSxcbiAgICAgICAgKG9wdGlvbnM/Lm9wZXJhdG9yIGFzIFdoZXJlRmlsdGVyT3ApIHx8ICc9PScsXG4gICAgICAgIG9wdGlvbnM/LnZhbHVlIHx8IG9wdGlvbnMsXG4gICAgICApXG4gICAgfVxuXG4gICAgYXN5bmMgZGVmaW5lTGltaXRzKFxuICAgICAgcXVlcnk6IENvbGxlY3Rpb25SZWZlcmVuY2U8VEJhc2U+IHwgUXVlcnk8VEJhc2U+LFxuICAgICAgZmlsdGVyczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxUQmFzZT4sXG4gICAgICBsaW1pdHM6IFJlcG9zaXRvcnlMaW1pdE9wdGlvbnM8VEJhc2U+LFxuICAgICk6IFByb21pc2U8UXVlcnk8VEJhc2U+PiB7XG4gICAgICBpZiAobGltaXRzPy5vZmZzZXQpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZWwuaXNNb2RlbChsaW1pdHMub2Zmc2V0KSlcbiAgICAgICAgICBxdWVyeSA9IHF1ZXJ5LnN0YXJ0QWZ0ZXIoXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbGxlY3Rpb24odGhpcy5idWlsZENvbGxlY3Rpb25QYXRoRm9yRmluZChmaWx0ZXJzKSlcbiAgICAgICAgICAgICAgLmRvYyhsaW1pdHMub2Zmc2V0W2xpbWl0cy5vZmZzZXQuaWRlbnRpZmllcnNGaWVsZHMuc2hpZnQoKSBhcyBzdHJpbmddKVxuICAgICAgICAgICAgICAuZ2V0KCksXG4gICAgICAgICAgKVxuICAgICAgICBlbHNlIGlmIChpc051bWJlcihsaW1pdHMub2Zmc2V0KSB8fCBpc1N0cmluZyhsaW1pdHMub2Zmc2V0KSkgcXVlcnkgPSBxdWVyeS5zdGFydEF0KGxpbWl0cy5vZmZzZXQpXG4gICAgICB9XG4gICAgICBpZiAobGltaXRzPy5saW1pdCkgcXVlcnkgPSBxdWVyeS5saW1pdChsaW1pdHMubGltaXQpXG5cbiAgICAgIHJldHVybiBxdWVyeVxuICAgIH1cblxuICAgIGNhbGN1bGF0ZUNvdW50KGRhdGE6IFRCYXNlW10sIGxpbWl0czogUmVwb3NpdG9yeUxpbWl0T3B0aW9uczxUQmFzZT4pOiBudW1iZXIge1xuICAgICAgaWYgKGRhdGEubGVuZ3RoIDw9IDApIHJldHVybiAwXG4gICAgICBpZiAoZGF0YS5sZW5ndGggPCBsaW1pdHM/LmxpbWl0KSByZXR1cm4gZGF0YS5sZW5ndGhcblxuICAgICAgcmV0dXJuIEluZmluaXR5XG4gICAgfVxuICB9IGFzIGFueVxufVxuIl19
@@ -0,0 +1,52 @@
1
+ export const withFirestore = (MixinBase) => {
2
+ const isObjectsAndNoDate = (data) => data &&
3
+ !Array.isArray(data) &&
4
+ typeof data === 'object' &&
5
+ data?.constructor.name !== 'Timestamp' &&
6
+ !('seconds' in data);
7
+ const bindDate = (data, keyName) => {
8
+ if (data?.constructor.name === 'Timestamp')
9
+ return data.toDate();
10
+ if (data && typeof data === 'object' && 'seconds' in data)
11
+ return new Date(data.seconds * 1000);
12
+ if (typeof data === 'number' && ['createdAt', 'updatedAt'].includes(keyName))
13
+ return new Date(data);
14
+ return data;
15
+ };
16
+ const bindAllDateFromObject = (data) => {
17
+ return Object.keys(data).reduce((object, key) => ({
18
+ ...object,
19
+ [key]: isObjectsAndNoDate(data[key])
20
+ ? bindAllDateFromObject(data[key])
21
+ : Array.isArray(data[key])
22
+ ? data[key].map((element) => (isObjectsAndNoDate(element) ? bindAllDateFromObject(element) : element))
23
+ : bindDate(data[key], key),
24
+ }), {});
25
+ };
26
+ return class extends MixinBase {
27
+ collection(path) {
28
+ return this.firestore.collection(path || this.collectionName).withConverter(this.buildModelInstance());
29
+ }
30
+ buildModelInstance() {
31
+ return {
32
+ toFirestore: (data) => (data?.toPlain ? data.toPlain() : data),
33
+ fromFirestore: (snap) => {
34
+ const data = snap.data();
35
+ let bindedData;
36
+ try {
37
+ const ids = { id: snap.id };
38
+ bindedData = bindAllDateFromObject(data);
39
+ return this.model.toInstance({ ...bindedData, ...ids });
40
+ }
41
+ catch (error) {
42
+ console.info('id', snap.id);
43
+ console.info('data', JSON.stringify(bindedData));
44
+ console.error(error);
45
+ throw error;
46
+ }
47
+ },
48
+ };
49
+ }
50
+ };
51
+ };
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maXJlc3RvcmUubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvbWl4aW5zL3dpdGgtZmlyZXN0b3JlLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUMzQixTQUFZLEVBQ2tDLEVBQUU7SUFDaEQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQVMsRUFBVyxFQUFFLENBQ2hELElBQUk7UUFDSixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDeEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLEtBQUssV0FBVztRQUN0QyxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFBO0lBQ3RCLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBeUIsRUFBRSxPQUFlLEVBQXVCLEVBQUU7UUFDbkYsSUFBSSxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksS0FBSyxXQUFXO1lBQUUsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDaEUsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFBO1FBQy9GLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRW5HLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxDQUFBO0lBQ0QsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLElBQVEsRUFBMEQsRUFBRTtRQUNqRyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUM3QixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEIsR0FBRyxNQUFNO1lBQ1QsQ0FBQyxHQUFHLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDMUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDdEcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDO1NBQzdCLENBQUMsRUFDRixFQUE0RCxDQUM3RCxDQUFBO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsT0FBTyxLQUFNLFNBQVEsU0FBUztRQU01QixVQUFVLENBQUMsSUFBYTtZQUN0QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUE7UUFDeEcsQ0FBQztRQUVELGtCQUFrQjtZQUloQixPQUFPO2dCQUNMLFdBQVcsRUFBRSxDQUFDLElBQVcsRUFBZ0IsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25GLGFBQWEsRUFBRSxDQUFDLElBQWtDLEVBQVMsRUFBRTtvQkFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO29CQUN4QixJQUFJLFVBQWtFLENBQUE7b0JBRXRFLElBQUk7d0JBQ0YsTUFBTSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFBO3dCQUUzQixVQUFVLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUE7d0JBRXhDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUE7cUJBQ3hEO29CQUFDLE9BQU8sS0FBSyxFQUFFO3dCQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTt3QkFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO3dCQUNoRCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO3dCQUVwQixNQUFNLEtBQUssQ0FBQTtxQkFDWjtnQkFDSCxDQUFDO2FBQ0YsQ0FBQTtRQUNILENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvblJlZmVyZW5jZSwgRG9jdW1lbnREYXRhLCBGaXJlYmFzZUZpcmVzdG9yZSwgUXVlcnlEb2N1bWVudFNuYXBzaG90IH0gZnJvbSAnQGZpcmViYXNlL2ZpcmVzdG9yZS10eXBlcydcblxuaW1wb3J0IHtcbiAgQmFzZU1vZGVsQnVpbGRlcixcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbCxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lcyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgTWl4aW5DdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBGaXJlc3RvcmVGaWVsZFR5cGUgfSBmcm9tICcuLi9lbnVtcydcbmltcG9ydCB7IEZpcmVzdG9yZVJlcG9zaXRvcnkgfSBmcm9tICcuLi90eXBlcydcblxuZXhwb3J0IGNvbnN0IHdpdGhGaXJlc3RvcmUgPSA8VEJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsIFQgZXh0ZW5kcyBNaXhpbkN0b3IgPSBNaXhpbkN0b3I+KFxuICBNaXhpbkJhc2U6IFQsXG4pOiBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4sIG5ldmVyPiA9PiB7XG4gIGNvbnN0IGlzT2JqZWN0c0FuZE5vRGF0ZSA9IChkYXRhOiBhbnkpOiBib29sZWFuID0+XG4gICAgZGF0YSAmJlxuICAgICFBcnJheS5pc0FycmF5KGRhdGEpICYmXG4gICAgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmXG4gICAgZGF0YT8uY29uc3RydWN0b3IubmFtZSAhPT0gJ1RpbWVzdGFtcCcgJiZcbiAgICAhKCdzZWNvbmRzJyBpbiBkYXRhKVxuICBjb25zdCBiaW5kRGF0ZSA9IChkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBrZXlOYW1lOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0+IHtcbiAgICBpZiAoZGF0YT8uY29uc3RydWN0b3IubmFtZSA9PT0gJ1RpbWVzdGFtcCcpIHJldHVybiBkYXRhLnRvRGF0ZSgpXG4gICAgaWYgKGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmICdzZWNvbmRzJyBpbiBkYXRhKSByZXR1cm4gbmV3IERhdGUoZGF0YS5zZWNvbmRzICogMTAwMClcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdudW1iZXInICYmIFsnY3JlYXRlZEF0JywgJ3VwZGF0ZWRBdCddLmluY2x1ZGVzKGtleU5hbWUpKSByZXR1cm4gbmV3IERhdGUoZGF0YSlcblxuICAgIHJldHVybiBkYXRhXG4gIH1cbiAgY29uc3QgYmluZEFsbERhdGVGcm9tT2JqZWN0ID0gKGRhdGE6IHt9KTogTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllc1dpdGhOb1BhcnRpYWw8VEJhc2U+ID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZGF0YSkucmVkdWNlKFxuICAgICAgKG9iamVjdCwga2V5KSA9PiAoe1xuICAgICAgICAuLi5vYmplY3QsXG4gICAgICAgIFtrZXldOiBpc09iamVjdHNBbmROb0RhdGUoZGF0YVtrZXldKVxuICAgICAgICAgID8gYmluZEFsbERhdGVGcm9tT2JqZWN0KGRhdGFba2V5XSlcbiAgICAgICAgICA6IEFycmF5LmlzQXJyYXkoZGF0YVtrZXldKVxuICAgICAgICAgID8gZGF0YVtrZXldLm1hcCgoZWxlbWVudCkgPT4gKGlzT2JqZWN0c0FuZE5vRGF0ZShlbGVtZW50KSA/IGJpbmRBbGxEYXRlRnJvbU9iamVjdChlbGVtZW50KSA6IGVsZW1lbnQpKVxuICAgICAgICAgIDogYmluZERhdGUoZGF0YVtrZXldLCBrZXkpLFxuICAgICAgfSksXG4gICAgICB7fSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbDxUQmFzZT4sXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgRmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4ge1xuICAgIHJlYWRvbmx5IGZpcmVzdG9yZT86IEZpcmViYXNlRmlyZXN0b3JlXG4gICAgY29sbGVjdGlvbk5hbWU6IHN0cmluZ1xuICAgIG1vZGVsOiBCYXNlTW9kZWxCdWlsZGVyPFRCYXNlPlxuICAgIGZpZWxkczogUmVjb3JkPE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8VEJhc2U+LCBGaXJlc3RvcmVGaWVsZFR5cGU+XG5cbiAgICBjb2xsZWN0aW9uKHBhdGg/OiBzdHJpbmcpOiBDb2xsZWN0aW9uUmVmZXJlbmNlPFRCYXNlPiB7XG4gICAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUuY29sbGVjdGlvbihwYXRoIHx8IHRoaXMuY29sbGVjdGlvbk5hbWUpLndpdGhDb252ZXJ0ZXIodGhpcy5idWlsZE1vZGVsSW5zdGFuY2UoKSlcbiAgICB9XG5cbiAgICBidWlsZE1vZGVsSW5zdGFuY2UoKToge1xuICAgICAgdG9GaXJlc3RvcmU6IChkYXRhOiBUQmFzZSkgPT4gRG9jdW1lbnREYXRhXG4gICAgICBmcm9tRmlyZXN0b3JlOiAoc25hcDogUXVlcnlEb2N1bWVudFNuYXBzaG90PFRCYXNlPikgPT4gVEJhc2VcbiAgICB9IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogVEJhc2UpOiBEb2N1bWVudERhdGEgPT4gKGRhdGE/LnRvUGxhaW4gPyBkYXRhLnRvUGxhaW4oKSA6IGRhdGEpLFxuICAgICAgICBmcm9tRmlyZXN0b3JlOiAoc25hcDogUXVlcnlEb2N1bWVudFNuYXBzaG90PFRCYXNlPik6IFRCYXNlID0+IHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gc25hcC5kYXRhKClcbiAgICAgICAgICBsZXQgYmluZGVkRGF0YTogTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllc1dpdGhOb1BhcnRpYWw8VEJhc2U+XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgaWRzID0geyBpZDogc25hcC5pZCB9XG5cbiAgICAgICAgICAgIGJpbmRlZERhdGEgPSBiaW5kQWxsRGF0ZUZyb21PYmplY3QoZGF0YSlcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwudG9JbnN0YW5jZSh7IC4uLmJpbmRlZERhdGEsIC4uLmlkcyB9KVxuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmluZm8oJ2lkJywgc25hcC5pZClcbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnZGF0YScsIEpTT04uc3RyaW5naWZ5KGJpbmRlZERhdGEpKVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcblxuICAgICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { isNil } from '../../../../utils';
2
+ import { NotFoundError } from '../../../../errors';
3
+ export const withGetFirestore = (MixinBase) => {
4
+ return class GetFirestore extends MixinBase {
5
+ async get(identifiers) {
6
+ const doc = await this.collection(this.buildCollectionPathForGet(identifiers))
7
+ .doc(Object.values(identifiers).shift().toString())
8
+ .get();
9
+ const data = doc.data();
10
+ if (isNil(data))
11
+ throw new NotFoundError(`Document ${JSON.stringify(identifiers)} not found`);
12
+ return data;
13
+ }
14
+ buildCollectionPathForGet(identifiers) {
15
+ return this.isSubCollection(this)
16
+ ? `${this.parentRepository.collectionName}/${identifiers[this.parentIdField]}/${this.collectionName}`
17
+ : this.collectionName;
18
+ }
19
+ };
20
+ };
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1nZXQtZmlyZXN0b3JlLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLWdldC1maXJlc3RvcmUubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBcUMsTUFBTSxtQkFBbUIsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFbEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FJOUIsU0FBZ0YsRUFJaEYsRUFBRTtJQUNGLE9BQU8sTUFBTSxZQUFhLFNBQVEsU0FBUztRQUN6QyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQXlDO1lBQ2pELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQzNFLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNsRCxHQUFHLEVBQUUsQ0FBQTtZQUNSLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUV2QixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxZQUFZLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBRTdGLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELHlCQUF5QixDQUFDLFdBQXlDO1lBQ2pFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNyRyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQTtRQUN6QixDQUFDO0tBQ0ssQ0FBQTtBQUNWLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsQmFzZVN0cnVjdHVyZSwgR2V0UmVwb3NpdG9yeSwgTm9uRnVuY3Rpb25Qcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgaXNOaWwsIE1lcmdlQ29uc3RydWN0b3JQYXJhbXMsIE1peGluQ3RvciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgTm90Rm91bmRFcnJvciB9IGZyb20gJy4uLy4uLy4uLy4uL2Vycm9ycydcblxuZXhwb3J0IGNvbnN0IHdpdGhHZXRGaXJlc3RvcmUgPSA8XG4gIFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+Pixcbj4oXG4gIE1peGluQmFzZTogTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+ICYgRmlyZXN0b3JlSGVscGVycz4gJiBUTWl4aW5CYXNlLFxuKTogTWl4aW5DdG9yPFxuICBGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIEluc3RhbmNlVHlwZTxUTWl4aW5CYXNlPiAmIEdldFJlcG9zaXRvcnk8VEJhc2U+ICYgRmlyZXN0b3JlSGVscGVycyxcbiAgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtczx7fSwgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFRNaXhpbkJhc2U+PlxuPiA9PiB7XG4gIHJldHVybiBjbGFzcyBHZXRGaXJlc3RvcmUgZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBHZXRSZXBvc2l0b3J5PFRCYXNlPiB7XG4gICAgYXN5bmMgZ2V0KGlkZW50aWZpZXJzOiBOb25GdW5jdGlvblByb3BlcnRpZXM8VEJhc2U+KTogUHJvbWlzZTxUQmFzZT4ge1xuICAgICAgY29uc3QgZG9jID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKHRoaXMuYnVpbGRDb2xsZWN0aW9uUGF0aEZvckdldChpZGVudGlmaWVycykpXG4gICAgICAgIC5kb2MoT2JqZWN0LnZhbHVlcyhpZGVudGlmaWVycykuc2hpZnQoKS50b1N0cmluZygpKVxuICAgICAgICAuZ2V0KClcbiAgICAgIGNvbnN0IGRhdGEgPSBkb2MuZGF0YSgpXG5cbiAgICAgIGlmIChpc05pbChkYXRhKSkgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYERvY3VtZW50ICR7SlNPTi5zdHJpbmdpZnkoaWRlbnRpZmllcnMpfSBub3QgZm91bmRgKVxuXG4gICAgICByZXR1cm4gZGF0YVxuICAgIH1cblxuICAgIGJ1aWxkQ29sbGVjdGlvblBhdGhGb3JHZXQoaWRlbnRpZmllcnM6IE5vbkZ1bmN0aW9uUHJvcGVydGllczxUQmFzZT4pOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuaXNTdWJDb2xsZWN0aW9uKHRoaXMpXG4gICAgICAgID8gYCR7dGhpcy5wYXJlbnRSZXBvc2l0b3J5LmNvbGxlY3Rpb25OYW1lfS8ke2lkZW50aWZpZXJzW3RoaXMucGFyZW50SWRGaWVsZF19LyR7dGhpcy5jb2xsZWN0aW9uTmFtZX1gXG4gICAgICAgIDogdGhpcy5jb2xsZWN0aW9uTmFtZVxuICAgIH1cbiAgfSBhcyBhbnlcbn1cbiJdfQ==
@@ -1,17 +1,17 @@
1
- import { isNil } from '../../../../utils';
2
- export const withHelpers = (MixinBase) => {
3
- return class extends MixinBase {
4
- toArray(snapShot) {
5
- if (Array.isArray(snapShot)) {
6
- return snapShot.map((doc) => doc.data());
7
- }
8
- else {
9
- return snapShot.docs.map((doc) => doc.data());
10
- }
11
- }
12
- isSubCollection(repository) {
13
- return !isNil(Object.keys(this).find((key) => key === 'parentRepository'));
14
- }
15
- };
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1oZWxwZXJzLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLWhlbHBlcnMubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLEtBQUssRUFBYSxNQUFNLG1CQUFtQixDQUFBO0FBRXBELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUEyQyxTQUFpQyxFQUFFLEVBQUU7SUFDekcsT0FBTyxLQUFNLFNBQVEsU0FBUztRQUM1QixPQUFPLENBQStCLFFBQXVEO1lBQzNGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBNkIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7YUFDbkU7aUJBQU07Z0JBQ0wsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQTZCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2FBQ3hFO1FBQ0gsQ0FBQztRQUVELGVBQWUsQ0FDYixVQUFrQztZQUVsQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUFBO1FBQzVFLENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlTbmFwc2hvdCwgUXVlcnlEb2N1bWVudFNuYXBzaG90IH0gZnJvbSAnQGZpcmViYXNlL2ZpcmVzdG9yZS10eXBlcydcclxuXHJcbmltcG9ydCB7IE1vZGVsQmFzZVN0cnVjdHVyZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcclxuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSwgRmlyZXN0b3JlU3ViUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xyXG5pbXBvcnQgeyBpc05pbCwgTWl4aW5DdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aEhlbHBlcnMgPSA8VE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvciA9IE1peGluQ3Rvcj4oTWl4aW5CYXNlOiBNaXhpbkN0b3IgJiBUTWl4aW5CYXNlKSA9PiB7XHJcbiAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgRmlyZXN0b3JlSGVscGVycyB7XHJcbiAgICB0b0FycmF5PFQgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+KHNuYXBTaG90OiBRdWVyeVNuYXBzaG90PFQ+IHwgUXVlcnlEb2N1bWVudFNuYXBzaG90PFQ+W10pOiBUW10ge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShzbmFwU2hvdCkpIHtcclxuICAgICAgICByZXR1cm4gc25hcFNob3QubWFwKChkb2M6IFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdDxUPikgPT4gZG9jLmRhdGEoKSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gc25hcFNob3QuZG9jcy5tYXAoKGRvYzogUXVlcnlEb2N1bWVudFNuYXBzaG90PFQ+KSA9PiBkb2MuZGF0YSgpKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNTdWJDb2xsZWN0aW9uPFQgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+KFxyXG4gICAgICByZXBvc2l0b3J5OiBGaXJlc3RvcmVSZXBvc2l0b3J5PFQ+LFxyXG4gICAgKTogcmVwb3NpdG9yeSBpcyBGaXJlc3RvcmVTdWJSZXBvc2l0b3J5PFQ+IHtcclxuICAgICAgcmV0dXJuICFpc05pbChPYmplY3Qua2V5cyh0aGlzKS5maW5kKChrZXkpID0+IGtleSA9PT0gJ3BhcmVudFJlcG9zaXRvcnknKSlcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
1
+ import { isNil } from '../../../../utils';
2
+ export const withHelpers = (MixinBase) => {
3
+ return class extends MixinBase {
4
+ toArray(snapShot) {
5
+ if (Array.isArray(snapShot)) {
6
+ return snapShot.map((doc) => doc.data());
7
+ }
8
+ else {
9
+ return snapShot.docs.map((doc) => doc.data());
10
+ }
11
+ }
12
+ isSubCollection(repository) {
13
+ return !isNil(Object.keys(this).find((key) => key === 'parentRepository'));
14
+ }
15
+ };
16
+ };
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1oZWxwZXJzLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLWhlbHBlcnMubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLEtBQUssRUFBYSxNQUFNLG1CQUFtQixDQUFBO0FBRXBELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUEyQyxTQUFpQyxFQUFFLEVBQUU7SUFDekcsT0FBTyxLQUFNLFNBQVEsU0FBUztRQUM1QixPQUFPLENBQStCLFFBQXVEO1lBQzNGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBNkIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7YUFDbkU7aUJBQU07Z0JBQ0wsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQTZCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2FBQ3hFO1FBQ0gsQ0FBQztRQUVELGVBQWUsQ0FDYixVQUFrQztZQUVsQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUFBO1FBQzVFLENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlTbmFwc2hvdCwgUXVlcnlEb2N1bWVudFNuYXBzaG90IH0gZnJvbSAnQGZpcmViYXNlL2ZpcmVzdG9yZS10eXBlcydcblxuaW1wb3J0IHsgTW9kZWxCYXNlU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSwgRmlyZXN0b3JlU3ViUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgaXNOaWwsIE1peGluQ3RvciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuXG5leHBvcnQgY29uc3Qgd2l0aEhlbHBlcnMgPSA8VE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvciA9IE1peGluQ3Rvcj4oTWl4aW5CYXNlOiBNaXhpbkN0b3IgJiBUTWl4aW5CYXNlKSA9PiB7XG4gIHJldHVybiBjbGFzcyBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIEZpcmVzdG9yZUhlbHBlcnMge1xuICAgIHRvQXJyYXk8VCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4oc25hcFNob3Q6IFF1ZXJ5U25hcHNob3Q8VD4gfCBRdWVyeURvY3VtZW50U25hcHNob3Q8VD5bXSk6IFRbXSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShzbmFwU2hvdCkpIHtcbiAgICAgICAgcmV0dXJuIHNuYXBTaG90Lm1hcCgoZG9jOiBRdWVyeURvY3VtZW50U25hcHNob3Q8VD4pID0+IGRvYy5kYXRhKCkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc25hcFNob3QuZG9jcy5tYXAoKGRvYzogUXVlcnlEb2N1bWVudFNuYXBzaG90PFQ+KSA9PiBkb2MuZGF0YSgpKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlzU3ViQ29sbGVjdGlvbjxUIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPihcbiAgICAgIHJlcG9zaXRvcnk6IEZpcmVzdG9yZVJlcG9zaXRvcnk8VD4sXG4gICAgKTogcmVwb3NpdG9yeSBpcyBGaXJlc3RvcmVTdWJSZXBvc2l0b3J5PFQ+IHtcbiAgICAgIHJldHVybiAhaXNOaWwoT2JqZWN0LmtleXModGhpcykuZmluZCgoa2V5KSA9PiBrZXkgPT09ICdwYXJlbnRSZXBvc2l0b3J5JykpXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ export const withSubCollection = (MixinBase, ParentModel) => {
2
+ return class SubCollectionMix extends MixinBase {
3
+ constructor(...args) {
4
+ super(args);
5
+ }
6
+ collection(path) {
7
+ return super.collection(path);
8
+ }
9
+ };
10
+ };
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zdWItY29sbGVjdGlvbi5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9taXhpbnMvd2l0aC1zdWItY29sbGVjdGlvbi5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUsvQixTQUE2RCxFQUM3RCxXQUFrQyxFQU9sQyxFQUFFO0lBQ0YsT0FBTyxNQUFNLGdCQUNYLFNBQVEsU0FBUztRQU1qQixZQUFZLEdBQUcsSUFBZ0I7WUFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2IsQ0FBQztRQUVELFVBQVUsQ0FBQyxJQUFhO1lBQ3RCLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMvQixDQUFDO0tBQ0ssQ0FBQTtBQUNWLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25SZWZlcmVuY2UgfSBmcm9tICdAZmlyZWJhc2UvZmlyZXN0b3JlLXR5cGVzJ1xuXG5pbXBvcnQgeyBJZGVudGlmaWVyc01vZGVsLCBNb2RlbEJhc2VTdHJ1Y3R1cmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBGaXJlc3RvcmVIZWxwZXJzLCBGaXJlc3RvcmVSZXBvc2l0b3J5LCBGaXJlc3RvcmVTdWJSZXBvc2l0b3J5IH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zLCBNaXhpbkN0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscydcblxuZXhwb3J0IGNvbnN0IHdpdGhTdWJDb2xsZWN0aW9uID0gPFxuICBUQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgVEJhc2VQYXJlbnQgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4+LFxuPihcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4+ICYgVE1peGluQmFzZSxcbiAgUGFyZW50TW9kZWw6IG5ldyAoKSA9PiBUQmFzZVBhcmVudCxcbik6IE1peGluQ3RvcjxcbiAgRmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4gJlxuICAgIEluc3RhbmNlVHlwZTxUTWl4aW5CYXNlPiAmXG4gICAgRmlyZXN0b3JlU3ViUmVwb3NpdG9yeTxUQmFzZSwgSW5zdGFuY2VUeXBlPHR5cGVvZiBQYXJlbnRNb2RlbD4+ICZcbiAgICBGaXJlc3RvcmVIZWxwZXJzLFxuICBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zPHt9LCBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VE1peGluQmFzZT4+XG4+ID0+IHtcbiAgcmV0dXJuIGNsYXNzIFN1YkNvbGxlY3Rpb25NaXhcbiAgICBleHRlbmRzIE1peGluQmFzZVxuICAgIGltcGxlbWVudHMgRmlyZXN0b3JlU3ViUmVwb3NpdG9yeTxUQmFzZSwgSW5zdGFuY2VUeXBlPHR5cGVvZiBQYXJlbnRNb2RlbD4+XG4gIHtcbiAgICByZWFkb25seSBwYXJlbnRSZXBvc2l0b3J5OiBGaXJlc3RvcmVSZXBvc2l0b3J5PEluc3RhbmNlVHlwZTx0eXBlb2YgUGFyZW50TW9kZWw+PlxuICAgIHBhcmVudElkRmllbGQ6IGtleW9mIElkZW50aWZpZXJzTW9kZWw8VEJhc2U+XG5cbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzOiBBcnJheTxhbnk+KSB7XG4gICAgICBzdXBlcihhcmdzKVxuICAgIH1cblxuICAgIGNvbGxlY3Rpb24ocGF0aD86IHN0cmluZyk6IENvbGxlY3Rpb25SZWZlcmVuY2U8VEJhc2U+IHtcbiAgICAgIHJldHVybiBzdXBlci5jb2xsZWN0aW9uKHBhdGgpXG4gICAgfVxuICB9IGFzIGFueVxufVxuIl19
@@ -0,0 +1,42 @@
1
+ import firebase from 'firebase';
2
+ import { UpdateOptionActions, } from '../../../../domain';
3
+ import { isNil } from '../../../../utils';
4
+ export const withUpdateFirestore = (MixinBase) => {
5
+ const getValueFromParams = (params, field) => (isNil(params[field]?.value) ? params[field] : params[field].value) || null;
6
+ const getValueByAction = (options) => {
7
+ const fieldValues = firebase.firestore.FieldValue;
8
+ if (isNil(options.action))
9
+ return options;
10
+ if (options.action === UpdateOptionActions.REMOVE_FIELD)
11
+ return fieldValues.delete();
12
+ if (Array.isArray(options.value)) {
13
+ if (options.action === UpdateOptionActions.MERGE)
14
+ return fieldValues.arrayUnion(...options.value);
15
+ if (options.action === UpdateOptionActions.REMOVE)
16
+ return fieldValues.arrayRemove(...options.value);
17
+ }
18
+ return options.value;
19
+ };
20
+ return class UpdateFirestore extends MixinBase {
21
+ async update(data) {
22
+ const model = new this.model();
23
+ const keyField = model.identifiersFields.shift();
24
+ const docRef = this.collection(this.buildCollectionPathForUpdate(data)).doc(getValueFromParams(data, keyField).toString());
25
+ await docRef.set(this.paramsToPlain(data), { merge: true });
26
+ const doc = await docRef.get();
27
+ return doc.data();
28
+ }
29
+ buildCollectionPathForUpdate(identifiers) {
30
+ return this.isSubCollection(this)
31
+ ? `${this.parentRepository.collectionName}/${getValueFromParams(identifiers, this.parentIdField)}/${this.collectionName}`
32
+ : this.collectionName;
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) => ({ ...data, [currentKey]: getValueByAction(params[currentKey]) }), {});
39
+ }
40
+ };
41
+ };
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC11cGRhdGUtZmlyZXN0b3JlLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLXVwZGF0ZS1maXJlc3RvcmUubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxRQUFRLE1BQU0sVUFBVSxDQUFBO0FBRS9CLE9BQU8sRUFJTCxtQkFBbUIsR0FHcEIsTUFBTSxvQkFBb0IsQ0FBQTtBQUUzQixPQUFPLEVBQUUsS0FBSyxFQUErQyxNQUFNLG1CQUFtQixDQUFBO0FBTXRGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBSWpDLFNBQWdGLEVBSWhGLEVBQUU7SUFDRixNQUFNLGtCQUFrQixHQUFHLENBQ3pCLE1BQXFDLEVBQ3JDLEtBQXNDLEVBQ1ksRUFBRSxDQUNwRCxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBZSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQTtJQUMzRyxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBNkIsRUFBMkMsRUFBRTtRQUNsRyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQTtRQUVqRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQUUsT0FBTyxPQUFPLENBQUE7UUFDekMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLG1CQUFtQixDQUFDLFlBQVk7WUFBRSxPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNwRixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQyxLQUFLO2dCQUFFLE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNqRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssbUJBQW1CLENBQUMsTUFBTTtnQkFBRSxPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDcEc7UUFFRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUE7SUFDdEIsQ0FBQyxDQUFBO0lBRUQsT0FBTyxNQUFNLGVBQWdCLFNBQVEsU0FBUztRQUM1QyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQW1DO1lBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQzlCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUNoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FDekUsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUM5QyxDQUFBO1lBRUQsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUUzRCxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUU5QixPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNuQixDQUFDO1FBRUQsNEJBQTRCLENBQUMsV0FBMEM7WUFDckUsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUM1RixJQUFJLENBQUMsY0FDUCxFQUFFO2dCQUNKLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFBO1FBQ3pCLENBQUM7UUFFRCxhQUFhLENBQUMsTUFBcUM7WUFDakQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtZQUV4QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO2dCQUFFLE9BQU8sTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBRWxELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQy9CLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUN2RixFQUFFLENBQ0gsQ0FBQTtRQUNILENBQUM7S0FDSyxDQUFBO0FBQ1YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlJ1xuXG5pbXBvcnQge1xuICBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lcyxcbiAgUmVwb3NpdG9yeVVwZGF0ZVBhcmFtcyxcbiAgVXBkYXRlT3B0aW9uQWN0aW9ucyxcbiAgVXBkYXRlT3B0aW9ucyxcbiAgVXBkYXRlUmVwb3NpdG9yeSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgaXNOaWwsIE1lcmdlQ29uc3RydWN0b3JQYXJhbXMsIE1peGluQ3RvciwgUHJvcFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscydcblxuZXhwb3J0IHR5cGUgVXBkYXRlRmlyZXN0b3JlUmVwb3NpdG9yeVR5cGU8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+ID0gVXBkYXRlUmVwb3NpdG9yeTxNQmFzZT4gJiB7XG4gIHBhcmFtc1RvUGxhaW4ocGFyYW1zOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPE1CYXNlPik6IFBhcnRpYWw8TUJhc2U+XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoVXBkYXRlRmlyZXN0b3JlID0gPFxuICBUQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgVE1peGluQmFzZSBleHRlbmRzIE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPj4sXG4+KFxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIEZpcmVzdG9yZUhlbHBlcnM+ICYgVE1peGluQmFzZSxcbik6IE1peGluQ3RvcjxcbiAgRmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4gJiBVcGRhdGVSZXBvc2l0b3J5PFRCYXNlPiAmIEluc3RhbmNlVHlwZTxUTWl4aW5CYXNlPiAmIEZpcmVzdG9yZUhlbHBlcnMsXG4gIE1lcmdlQ29uc3RydWN0b3JQYXJhbXM8e30sIENvbnN0cnVjdG9yUGFyYW1ldGVyczxUTWl4aW5CYXNlPj5cbj4gPT4ge1xuICBjb25zdCBnZXRWYWx1ZUZyb21QYXJhbXMgPSAoXG4gICAgcGFyYW1zOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPFRCYXNlPixcbiAgICBmaWVsZDogTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPixcbiAgKTogUHJvcFR5cGU8VEJhc2UsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4+ID0+XG4gICAgKGlzTmlsKHBhcmFtc1tmaWVsZCBhcyBzdHJpbmddPy52YWx1ZSkgPyBwYXJhbXNbZmllbGQgYXMgc3RyaW5nXSA6IHBhcmFtc1tmaWVsZCBhcyBzdHJpbmddLnZhbHVlKSB8fCBudWxsXG4gIGNvbnN0IGdldFZhbHVlQnlBY3Rpb24gPSAob3B0aW9uczogVXBkYXRlT3B0aW9uczxUQmFzZT4pOiBmaXJlYmFzZS5maXJlc3RvcmUuRmllbGRWYWx1ZSB8IHVua25vd24gPT4ge1xuICAgIGNvbnN0IGZpZWxkVmFsdWVzID0gZmlyZWJhc2UuZmlyZXN0b3JlLkZpZWxkVmFsdWVcblxuICAgIGlmIChpc05pbChvcHRpb25zLmFjdGlvbikpIHJldHVybiBvcHRpb25zXG4gICAgaWYgKG9wdGlvbnMuYWN0aW9uID09PSBVcGRhdGVPcHRpb25BY3Rpb25zLlJFTU9WRV9GSUVMRCkgcmV0dXJuIGZpZWxkVmFsdWVzLmRlbGV0ZSgpXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucy52YWx1ZSkpIHtcbiAgICAgIGlmIChvcHRpb25zLmFjdGlvbiA9PT0gVXBkYXRlT3B0aW9uQWN0aW9ucy5NRVJHRSkgcmV0dXJuIGZpZWxkVmFsdWVzLmFycmF5VW5pb24oLi4ub3B0aW9ucy52YWx1ZSlcbiAgICAgIGlmIChvcHRpb25zLmFjdGlvbiA9PT0gVXBkYXRlT3B0aW9uQWN0aW9ucy5SRU1PVkUpIHJldHVybiBmaWVsZFZhbHVlcy5hcnJheVJlbW92ZSguLi5vcHRpb25zLnZhbHVlKVxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zLnZhbHVlXG4gIH1cblxuICByZXR1cm4gY2xhc3MgVXBkYXRlRmlyZXN0b3JlIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgVXBkYXRlUmVwb3NpdG9yeTxUQmFzZT4ge1xuICAgIGFzeW5jIHVwZGF0ZShkYXRhOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPFRCYXNlPik6IFByb21pc2U8VEJhc2U+IHtcbiAgICAgIGNvbnN0IG1vZGVsID0gbmV3IHRoaXMubW9kZWwoKVxuICAgICAgY29uc3Qga2V5RmllbGQgPSBtb2RlbC5pZGVudGlmaWVyc0ZpZWxkcy5zaGlmdCgpXG4gICAgICBjb25zdCBkb2NSZWYgPSB0aGlzLmNvbGxlY3Rpb24odGhpcy5idWlsZENvbGxlY3Rpb25QYXRoRm9yVXBkYXRlKGRhdGEpKS5kb2MoXG4gICAgICAgIGdldFZhbHVlRnJvbVBhcmFtcyhkYXRhLCBrZXlGaWVsZCkudG9TdHJpbmcoKSxcbiAgICAgIClcblxuICAgICAgYXdhaXQgZG9jUmVmLnNldCh0aGlzLnBhcmFtc1RvUGxhaW4oZGF0YSksIHsgbWVyZ2U6IHRydWUgfSlcblxuICAgICAgY29uc3QgZG9jID0gYXdhaXQgZG9jUmVmLmdldCgpXG5cbiAgICAgIHJldHVybiBkb2MuZGF0YSgpXG4gICAgfVxuXG4gICAgYnVpbGRDb2xsZWN0aW9uUGF0aEZvclVwZGF0ZShpZGVudGlmaWVyczogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxUQmFzZT4pOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuaXNTdWJDb2xsZWN0aW9uKHRoaXMpXG4gICAgICAgID8gYCR7dGhpcy5wYXJlbnRSZXBvc2l0b3J5LmNvbGxlY3Rpb25OYW1lfS8ke2dldFZhbHVlRnJvbVBhcmFtcyhpZGVudGlmaWVycywgdGhpcy5wYXJlbnRJZEZpZWxkKX0vJHtcbiAgICAgICAgICAgIHRoaXMuY29sbGVjdGlvbk5hbWVcbiAgICAgICAgICB9YFxuICAgICAgICA6IHRoaXMuY29sbGVjdGlvbk5hbWVcbiAgICB9XG5cbiAgICBwYXJhbXNUb1BsYWluKHBhcmFtczogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxUQmFzZT4pOiBQYXJ0aWFsPFRCYXNlPiB7XG4gICAgICBjb25zdCBtb2RlbCA9IHRoaXMubW9kZWxcblxuICAgICAgaWYgKG1vZGVsLmlzTW9kZWwocGFyYW1zKSkgcmV0dXJuIHBhcmFtcy50b1BsYWluKClcblxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHBhcmFtcykucmVkdWNlKFxuICAgICAgICAoZGF0YSwgY3VycmVudEtleSkgPT4gKHsgLi4uZGF0YSwgW2N1cnJlbnRLZXldOiBnZXRWYWx1ZUJ5QWN0aW9uKHBhcmFtc1tjdXJyZW50S2V5XSkgfSksXG4gICAgICAgIHt9LFxuICAgICAgKVxuICAgIH1cbiAgfSBhcyBhbnlcbn1cbiJdfQ==
@@ -0,0 +1,64 @@
1
+ import { Category } from '../../../../../domain';
2
+ import { Base, chunk } from '../../../../../utils';
3
+ import { DuplicatedResultsError, NotFoundError, RequiredArgumentError } from '../../../../../errors';
4
+ import { withCrudFirestore, withFirestore, withHelpers } from '../../mixins';
5
+ export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
6
+ constructor(firestore) {
7
+ super();
8
+ this.firestore = firestore;
9
+ this.collectionName = 'categories';
10
+ this.model = Category;
11
+ }
12
+ getCategoryBySlug(slug, shop) {
13
+ return this.collection(this.collectionName)
14
+ .where('slug', '==', slug)
15
+ .where('shop', '==', shop)
16
+ .where('published', '==', true)
17
+ .get()
18
+ .then((snap) => {
19
+ if (snap.size > 1)
20
+ throw new DuplicatedResultsError('Query returned duplicated values');
21
+ if (snap.empty)
22
+ throw new NotFoundError(`Document with slug ${slug} not found`);
23
+ return snap.docs[0].data();
24
+ })
25
+ .catch((error) => error);
26
+ }
27
+ async getCategoriesForHome(categoryIds, limit = 4) {
28
+ const categorySnap = await this.collection(this.collectionName)
29
+ .where('id', 'in', categoryIds.filter(Boolean))
30
+ .where('published', '==', true)
31
+ .get();
32
+ if (categorySnap.empty)
33
+ throw new NotFoundError('Categories not found');
34
+ const categories = categorySnap.docs.map((doc) => doc.data());
35
+ const homeSections = await Promise.all(categories.map(async (category) => ({
36
+ category,
37
+ products: await this.mountCategory(category, { limit, hasStock: true }),
38
+ })));
39
+ return homeSections;
40
+ }
41
+ async mountCategory(category, options) {
42
+ if (!category.products)
43
+ throw new RequiredArgumentError(['Category products is empty']);
44
+ const chunks = chunk(category.products, 10);
45
+ const products = [];
46
+ for (const productIds of chunks) {
47
+ if (options?.limit && products.length >= options?.limit)
48
+ break;
49
+ let query = await this.collection('productsErpVitrine')
50
+ .where('published', '==', true)
51
+ .where('id', 'in', productIds);
52
+ if (options?.hasStock)
53
+ query = query.where('stock.quantity', '>', 0);
54
+ if (options?.limit)
55
+ query = query.limit(options?.limit);
56
+ const productSnap = await query.get();
57
+ if (productSnap.empty)
58
+ continue;
59
+ products.push(...productSnap.docs.map((doc) => doc.data()));
60
+ }
61
+ return products;
62
+ }
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvcmVwb3NpdG9yaWVzL2NhdGFsb2cvY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFFBQVEsRUFBc0MsTUFBTSx1QkFBdUIsQ0FBQTtBQUNwRixPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRWxELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNwRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUU1RSxNQUFNLE9BQU8sMkJBQ1gsU0FBUSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFXLElBQUksQ0FBQyxDQUFDLENBQUM7SUFHckUsWUFBcUIsU0FBNEI7UUFDL0MsS0FBSyxFQUFFLENBQUE7UUFEWSxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUUvQyxJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQTtRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQTtJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBWSxFQUFFLElBQVc7UUFDekMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDeEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO2FBQ3pCLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQzthQUN6QixLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJ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LEtBQUs7Z0JBQUUsU0FBUTtZQUUvQixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7U0FDNUQ7UUFFRCxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaXJlYmFzZUZpcmVzdG9yZSB9IGZyb20gJ0BmaXJlYmFzZS9maXJlc3RvcmUtdHlwZXMnXG5cbmltcG9ydCB7IENhdGVnb3J5LCBDYXRlZ29yeVJlcG9zaXRvcnksIFByb2R1Y3QsIFNob3BzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgQmFzZSwgY2h1bmsgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcblxuaW1wb3J0IHsgRHVwbGljYXRlZFJlc3VsdHNFcnJvciwgTm90Rm91bmRFcnJvciwgUmVxdWlyZWRBcmd1bWVudEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZXJyb3JzJ1xuaW1wb3J0IHsgd2l0aENydWRGaXJlc3RvcmUsIHdpdGhGaXJlc3RvcmUsIHdpdGhIZWxwZXJzIH0gZnJvbSAnLi4vLi4vbWl4aW5zJ1xuXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlGaXJlc3RvcmVSZXBvc2l0b3J5XG4gIGV4dGVuZHMgd2l0aENydWRGaXJlc3RvcmUod2l0aEhlbHBlcnMod2l0aEZpcmVzdG9yZTxDYXRlZ29yeT4oQmFzZSkpKVxuICBpbXBsZW1lbnRzIENhdGVnb3J5UmVwb3NpdG9yeVxue1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBmaXJlc3RvcmU6IEZpcmViYXNlRmlyZXN0b3JlKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29sbGVjdGlvbk5hbWUgPSAnY2F0ZWdvcmllcydcbiAgICB0aGlzLm1vZGVsID0gQ2F0ZWdvcnlcbiAgfVxuXG4gIGdldENhdGVnb3J5QnlTbHVnKHNsdWc6IHN0cmluZywgc2hvcDogU2hvcHMpOiBQcm9taXNlPENhdGVnb3J5PiB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbih0aGlzLmNvbGxlY3Rpb25OYW1lKVxuICAgICAgLndoZXJlKCdzbHVnJywgJz09Jywgc2x1ZylcbiAgICAgIC53aGVyZSgnc2hvcCcsICc9PScsIHNob3ApXG4gICAgICAud2hlcmUoJ3B1Ymxpc2hlZCcsICc9PScsIHRydWUpXG4gICAgICAuZ2V0KClcbiAgICAgIC50aGVuKChzbmFwKSA9PiB7XG4gICAgICAgIGlmIChzbmFwLnNpemUgPiAxKSB0aHJvdyBuZXcgRHVwbGljYXRlZFJlc3VsdHNFcnJvcignUXVlcnkgcmV0dXJuZWQgZHVwbGljYXRlZCB2YWx1ZXMnKVxuXG4gICAgICAgIGlmIChzbmFwLmVtcHR5KSB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgRG9jdW1lbnQgd2l0aCBzbHVnICR7c2x1Z30gbm90IGZvdW5kYClcblxuICAgICAgICByZXR1cm4gc25hcC5kb2NzWzBdLmRhdGEoKVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGVycm9yKVxuICB9XG5cbiAgYXN5bmMgZ2V0Q2F0ZWdvcmllc0ZvckhvbWUoY2F0ZWdvcnlJZHM6IHN0cmluZ1tdLCBsaW1pdCA9IDQpOiBQcm9taXNlPHsgY2F0ZWdvcnk6IENhdGVnb3J5OyBwcm9kdWN0czogUHJvZHVjdFtdIH1bXT4ge1xuICAgIGNvbnN0IGNhdGVnb3J5U25hcCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbih0aGlzLmNvbGxlY3Rpb25OYW1lKVxuICAgICAgLndoZXJlKCdpZCcsICdpbicsIGNhdGVnb3J5SWRzLmZpbHRlcihCb29sZWFuKSlcbiAgICAgIC53aGVyZSgncHVibGlzaGVkJywgJz09JywgdHJ1ZSlcbiAgICAgIC5nZXQoKVxuXG4gICAgaWYgKGNhdGVnb3J5U25hcC5lbXB0eSkgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoJ0NhdGVnb3JpZXMgbm90IGZvdW5kJylcblxuICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBjYXRlZ29yeVNuYXAuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmRhdGEoKSlcbiAgICBjb25zdCBob21lU2VjdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGNhdGVnb3JpZXMubWFwKGFzeW5jIChjYXRlZ29yeSkgPT4gKHtcbiAgICAgICAgY2F0ZWdvcnksXG4gICAgICAgIHByb2R1Y3RzOiBhd2FpdCB0aGlzLm1vdW50Q2F0ZWdvcnkoY2F0ZWdvcnksIHsgbGltaXQsIGhhc1N0b2NrOiB0cnVlIH0pLFxuICAgICAgfSkpLFxuICAgIClcblxuICAgIHJldHVybiBob21lU2VjdGlvbnNcbiAgfVxuXG4gIGFzeW5jIG1vdW50Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5LCBvcHRpb25zPzogeyBsaW1pdD86IG51bWJlcjsgaGFzU3RvY2s/OiBib29sZWFuIH0pOiBQcm9taXNlPFByb2R1Y3RbXT4ge1xuICAgIGlmICghY2F0ZWdvcnkucHJvZHVjdHMpIHRocm93IG5ldyBSZXF1aXJlZEFyZ3VtZW50RXJyb3IoWydDYXRlZ29yeSBwcm9kdWN0cyBpcyBlbXB0eSddKVxuXG4gICAgY29uc3QgY2h1bmtzID0gY2h1bmsoY2F0ZWdvcnkucHJvZHVjdHMsIDEwKVxuICAgIGNvbnN0IHByb2R1Y3RzID0gW11cblxuICAgIGZvciAoY29uc3QgcHJvZHVjdElkcyBvZiBjaHVua3MpIHtcbiAgICAgIGlmIChvcHRpb25zPy5saW1pdCAmJiBwcm9kdWN0cy5sZW5ndGggPj0gb3B0aW9ucz8ubGltaXQpIGJyZWFrXG5cbiAgICAgIGxldCBxdWVyeSA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbigncHJvZHVjdHNFcnBWaXRyaW5lJylcbiAgICAgICAgLndoZXJlKCdwdWJsaXNoZWQnLCAnPT0nLCB0cnVlKVxuICAgICAgICAud2hlcmUoJ2lkJywgJ2luJywgcHJvZHVjdElkcylcblxuICAgICAgaWYgKG9wdGlvbnM/Lmhhc1N0b2NrKSBxdWVyeSA9IHF1ZXJ5LndoZXJlKCdzdG9jay5xdWFudGl0eScsICc+JywgMClcbiAgICAgIGlmIChvcHRpb25zPy5saW1pdCkgcXVlcnkgPSBxdWVyeS5saW1pdChvcHRpb25zPy5saW1pdClcblxuICAgICAgY29uc3QgcHJvZHVjdFNuYXAgPSBhd2FpdCBxdWVyeS5nZXQoKVxuXG4gICAgICBpZiAocHJvZHVjdFNuYXAuZW1wdHkpIGNvbnRpbnVlXG5cbiAgICAgIHByb2R1Y3RzLnB1c2goLi4ucHJvZHVjdFNuYXAuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmRhdGEoKSkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2R1Y3RzXG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
- export * from './category-firestore.repository';
2
- export * from './product-firestore.repository';
3
- export * from './product-variant-firestore.repository';
4
- export * from './subscription-product-firestore.repository';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvcmVwb3NpdG9yaWVzL2NhdGFsb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyw2Q0FBNkMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnknXHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1maXJlc3RvcmUucmVwb3NpdG9yeSdcclxuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0LXZhcmlhbnQtZmlyZXN0b3JlLnJlcG9zaXRvcnknXHJcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9uLXByb2R1Y3QtZmlyZXN0b3JlLnJlcG9zaXRvcnknXHJcbiJdfQ==
1
+ export * from './category-firestore.repository';
2
+ export * from './product-firestore.repository';
3
+ export * from './product-variant-firestore.repository';
4
+ export * from './subscription-product-firestore.repository';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvcmVwb3NpdG9yaWVzL2NhdGFsb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyw2Q0FBNkMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnknXG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QtZmlyZXN0b3JlLnJlcG9zaXRvcnknXG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QtdmFyaWFudC1maXJlc3RvcmUucmVwb3NpdG9yeSdcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9uLXByb2R1Y3QtZmlyZXN0b3JlLnJlcG9zaXRvcnknXG4iXX0=
@@ -0,0 +1,45 @@
1
+ import { Product, Where } from '../../../../../domain';
2
+ import { Base } from '../../../../../utils';
3
+ import { withCrudFirestore, withFirestore, withHelpers } from '../../mixins';
4
+ export class ProductFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
5
+ constructor(firestore) {
6
+ super();
7
+ this.firestore = firestore;
8
+ this.reviews = {};
9
+ this.collectionName = 'productsErpVitrine';
10
+ this.model = Product;
11
+ }
12
+ async getBySlug(slug) {
13
+ const result = await this.find({
14
+ filters: {
15
+ slug: { operator: Where.EQUALS, value: slug },
16
+ },
17
+ });
18
+ return result?.data?.shift();
19
+ }
20
+ async fetchReviews(status) {
21
+ const { data: products } = await this.find();
22
+ products.forEach((product) => {
23
+ if ([undefined, 0].includes(product.reviews?.length))
24
+ return;
25
+ const productInfo = {
26
+ productId: product.id,
27
+ productName: product.name,
28
+ productSku: product.sku,
29
+ };
30
+ this.reviews.pending = [];
31
+ this.reviews.approved = [];
32
+ this.reviews.rejected = [];
33
+ product.reviews.forEach((review) => {
34
+ if ([null, undefined].includes(review.status))
35
+ return this.reviews.pending.push({ ...review, ...productInfo });
36
+ if (review.status === false)
37
+ return this.reviews.rejected.push({ ...review, ...productInfo });
38
+ if (!!review.status)
39
+ return this.reviews.approved.push({ ...review, ...productInfo });
40
+ });
41
+ });
42
+ return this.reviews[status];
43
+ }
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1maXJlc3RvcmUucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9yZXBvc2l0b3JpZXMvY2F0YWxvZy9wcm9kdWN0LWZpcmVzdG9yZS5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQWdFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3BILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUU1RSxNQUFNLE9BQU8sMEJBQ1gsU0FBUSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFVLElBQUksQ0FBQyxDQUFDLENBQUM7SUFLcEUsWUFBcUIsU0FBNEI7UUFDL0MsS0FBSyxFQUFFLENBQUE7UUFEWSxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUZ6QyxZQUFPLEdBQWlFLEVBQUUsQ0FBQTtRQUloRixJQUFJLENBQUMsY0FBYyxHQUFHLG9CQUFvQixDQUFBO1FBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFBO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQVk7UUFDMUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdCLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO2FBQzlDO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsT0FBTyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFBO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQTBCO1FBQzNDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7UUFFNUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO2dCQUFFLE9BQU07WUFFNUQsTUFBTSxXQUFXLEdBQUc7Z0JBQ2xCLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDckIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO2dCQUN6QixVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUc7YUFDeEIsQ0FBQTtZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQTtZQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO1lBRTFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7b0JBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLENBQUE7Z0JBQzlHLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxLQUFLO29CQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQyxDQUFBO2dCQUM3RixJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTTtvQkFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUMsQ0FBQTtZQUN2RixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO1FBRUYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpcmViYXNlRmlyZXN0b3JlIH0gZnJvbSAnQGZpcmViYXNlL2ZpcmVzdG9yZS10eXBlcydcblxuaW1wb3J0IHsgUHJvZHVjdCwgUHJvZHVjdFJlcG9zaXRvcnksIFJldmlld1N0YXR1c1BhcmFtcywgUmV2aWV3V2l0aFByb2R1Y3REYXRhLCBXaGVyZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcblxuaW1wb3J0IHsgd2l0aENydWRGaXJlc3RvcmUsIHdpdGhGaXJlc3RvcmUsIHdpdGhIZWxwZXJzIH0gZnJvbSAnLi4vLi4vbWl4aW5zJ1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdEZpcmVzdG9yZVJlcG9zaXRvcnlcbiAgZXh0ZW5kcyB3aXRoQ3J1ZEZpcmVzdG9yZSh3aXRoSGVscGVycyh3aXRoRmlyZXN0b3JlPFByb2R1Y3Q+KEJhc2UpKSlcbiAgaW1wbGVtZW50cyBQcm9kdWN0UmVwb3NpdG9yeVxue1xuICBwcml2YXRlIHJldmlld3M6IFBhcnRpYWw8UmVjb3JkPFJldmlld1N0YXR1c1BhcmFtcywgUmV2aWV3V2l0aFByb2R1Y3REYXRhW10+PiA9IHt9XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZmlyZXN0b3JlOiBGaXJlYmFzZUZpcmVzdG9yZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbGxlY3Rpb25OYW1lID0gJ3Byb2R1Y3RzRXJwVml0cmluZSdcbiAgICB0aGlzLm1vZGVsID0gUHJvZHVjdFxuICB9XG5cbiAgYXN5bmMgZ2V0QnlTbHVnKHNsdWc6IHN0cmluZyk6IFByb21pc2U8UHJvZHVjdD4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZmluZCh7XG4gICAgICBmaWx0ZXJzOiB7XG4gICAgICAgIHNsdWc6IHsgb3BlcmF0b3I6IFdoZXJlLkVRVUFMUywgdmFsdWU6IHNsdWcgfSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHJldHVybiByZXN1bHQ/LmRhdGE/LnNoaWZ0KClcbiAgfVxuXG4gIGFzeW5jIGZldGNoUmV2aWV3cyhzdGF0dXM6IFJldmlld1N0YXR1c1BhcmFtcyk6IFByb21pc2U8UmV2aWV3V2l0aFByb2R1Y3REYXRhW10+IHtcbiAgICBjb25zdCB7IGRhdGE6IHByb2R1Y3RzIH0gPSBhd2FpdCB0aGlzLmZpbmQoKVxuXG4gICAgcHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdCkgPT4ge1xuICAgICAgaWYgKFt1bmRlZmluZWQsIDBdLmluY2x1ZGVzKHByb2R1Y3QucmV2aWV3cz8ubGVuZ3RoKSkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IHByb2R1Y3RJbmZvID0ge1xuICAgICAgICBwcm9kdWN0SWQ6IHByb2R1Y3QuaWQsXG4gICAgICAgIHByb2R1Y3ROYW1lOiBwcm9kdWN0Lm5hbWUsXG4gICAgICAgIHByb2R1Y3RTa3U6IHByb2R1Y3Quc2t1LFxuICAgICAgfVxuXG4gICAgICB0aGlzLnJldmlld3MucGVuZGluZyA9IFtdXG4gICAgICB0aGlzLnJldmlld3MuYXBwcm92ZWQgPSBbXVxuICAgICAgdGhpcy5yZXZpZXdzLnJlamVjdGVkID0gW11cblxuICAgICAgcHJvZHVjdC5yZXZpZXdzLmZvckVhY2goKHJldmlldykgPT4ge1xuICAgICAgICBpZiAoW251bGwsIHVuZGVmaW5lZF0uaW5jbHVkZXMocmV2aWV3LnN0YXR1cykpIHJldHVybiB0aGlzLnJldmlld3MucGVuZGluZy5wdXNoKHsgLi4ucmV2aWV3LCAuLi5wcm9kdWN0SW5mbyB9KVxuICAgICAgICBpZiAocmV2aWV3LnN0YXR1cyA9PT0gZmFsc2UpIHJldHVybiB0aGlzLnJldmlld3MucmVqZWN0ZWQucHVzaCh7IC4uLnJldmlldywgLi4ucHJvZHVjdEluZm8gfSlcbiAgICAgICAgaWYgKCEhcmV2aWV3LnN0YXR1cykgcmV0dXJuIHRoaXMucmV2aWV3cy5hcHByb3ZlZC5wdXNoKHsgLi4ucmV2aWV3LCAuLi5wcm9kdWN0SW5mbyB9KVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgcmV0dXJuIHRoaXMucmV2aWV3c1tzdGF0dXNdXG4gIH1cbn1cbiJdfQ==
@@ -1,14 +1,14 @@
1
- import { Base } from '../../../../../utils';
2
- import { Product, Variant } from '../../../../../domain';
3
- import { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins';
4
- export class ProductVariantFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base))), Product) {
5
- constructor(firestore, parentRepository) {
6
- super();
7
- this.firestore = firestore;
8
- this.parentRepository = parentRepository;
9
- this.collectionName = 'variants';
10
- this.parentIdField = 'productId';
11
- this.model = Variant;
12
- }
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12YXJpYW50LWZpcmVzdG9yZS5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL3JlcG9zaXRvcmllcy9jYXRhbG9nL3Byb2R1Y3QtdmFyaWFudC1maXJlc3RvcmUucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQXFCLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFJL0YsTUFBTSxPQUFPLGlDQUNYLFNBQVEsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBR2hHLFlBQXFCLFNBQTRCLEVBQVcsZ0JBQTRDO1FBQ3RHLEtBQUssRUFBRSxDQUFBO1FBRFksY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFBVyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTRCO1FBRXRHLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFBO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFBO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFBO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpcmViYXNlRmlyZXN0b3JlIH0gZnJvbSAnQGZpcmViYXNlL2ZpcmVzdG9yZS10eXBlcydcclxuXHJcbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcclxuaW1wb3J0IHsgUHJvZHVjdCwgVmFyaWFudCwgVmFyaWFudFJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nXHJcbmltcG9ydCB7IHdpdGhDcnVkRmlyZXN0b3JlLCB3aXRoRmlyZXN0b3JlLCB3aXRoSGVscGVycywgd2l0aFN1YkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9taXhpbnMnXHJcblxyXG5pbXBvcnQgeyBQcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4vcHJvZHVjdC1maXJlc3RvcmUucmVwb3NpdG9yeSdcclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0VmFyaWFudEZpcmVzdG9yZVJlcG9zaXRvcnlcclxuICBleHRlbmRzIHdpdGhTdWJDb2xsZWN0aW9uKHdpdGhDcnVkRmlyZXN0b3JlKHdpdGhIZWxwZXJzKHdpdGhGaXJlc3RvcmU8VmFyaWFudD4oQmFzZSkpKSwgUHJvZHVjdClcclxuICBpbXBsZW1lbnRzIFZhcmlhbnRSZXBvc2l0b3J5XHJcbntcclxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBmaXJlc3RvcmU6IEZpcmViYXNlRmlyZXN0b3JlLCByZWFkb25seSBwYXJlbnRSZXBvc2l0b3J5OiBQcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeSkge1xyXG4gICAgc3VwZXIoKVxyXG4gICAgdGhpcy5jb2xsZWN0aW9uTmFtZSA9ICd2YXJpYW50cydcclxuICAgIHRoaXMucGFyZW50SWRGaWVsZCA9ICdwcm9kdWN0SWQnXHJcbiAgICB0aGlzLm1vZGVsID0gVmFyaWFudFxyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Base } from '../../../../../utils';
2
+ import { Product, Variant } from '../../../../../domain';
3
+ import { withCrudFirestore, withFirestore, withHelpers, withSubCollection } from '../../mixins';
4
+ export class ProductVariantFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base))), Product) {
5
+ constructor(firestore, parentRepository) {
6
+ super();
7
+ this.firestore = firestore;
8
+ this.parentRepository = parentRepository;
9
+ this.collectionName = 'variants';
10
+ this.parentIdField = 'productId';
11
+ this.model = Variant;
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12YXJpYW50LWZpcmVzdG9yZS5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL3JlcG9zaXRvcmllcy9jYXRhbG9nL3Byb2R1Y3QtdmFyaWFudC1maXJlc3RvcmUucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQXFCLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFJL0YsTUFBTSxPQUFPLGlDQUNYLFNBQVEsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBR2hHLFlBQXFCLFNBQTRCLEVBQVcsZ0JBQTRDO1FBQ3RHLEtBQUssRUFBRSxDQUFBO1FBRFksY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFBVyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTRCO1FBRXRHLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFBO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFBO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFBO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpcmViYXNlRmlyZXN0b3JlIH0gZnJvbSAnQGZpcmViYXNlL2ZpcmVzdG9yZS10eXBlcydcblxuaW1wb3J0IHsgQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgUHJvZHVjdCwgVmFyaWFudCwgVmFyaWFudFJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyB3aXRoQ3J1ZEZpcmVzdG9yZSwgd2l0aEZpcmVzdG9yZSwgd2l0aEhlbHBlcnMsIHdpdGhTdWJDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vbWl4aW5zJ1xuXG5pbXBvcnQgeyBQcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4vcHJvZHVjdC1maXJlc3RvcmUucmVwb3NpdG9yeSdcblxuZXhwb3J0IGNsYXNzIFByb2R1Y3RWYXJpYW50RmlyZXN0b3JlUmVwb3NpdG9yeVxuICBleHRlbmRzIHdpdGhTdWJDb2xsZWN0aW9uKHdpdGhDcnVkRmlyZXN0b3JlKHdpdGhIZWxwZXJzKHdpdGhGaXJlc3RvcmU8VmFyaWFudD4oQmFzZSkpKSwgUHJvZHVjdClcbiAgaW1wbGVtZW50cyBWYXJpYW50UmVwb3NpdG9yeVxue1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBmaXJlc3RvcmU6IEZpcmViYXNlRmlyZXN0b3JlLCByZWFkb25seSBwYXJlbnRSZXBvc2l0b3J5OiBQcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbGxlY3Rpb25OYW1lID0gJ3ZhcmlhbnRzJ1xuICAgIHRoaXMucGFyZW50SWRGaWVsZCA9ICdwcm9kdWN0SWQnXG4gICAgdGhpcy5tb2RlbCA9IFZhcmlhbnRcbiAgfVxufVxuIl19