@infrab4a/connect 4.0.2-beta.2 → 4.0.2-beta.3

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 (1018) hide show
  1. package/index.d.ts +1 -0
  2. package/index.js +2 -5154
  3. package/index.js.map +1 -0
  4. package/package.json +32 -29
  5. package/src/domain/catalog/helpers/index.d.ts +1 -0
  6. package/src/domain/catalog/helpers/index.js +2 -0
  7. package/src/domain/catalog/helpers/index.js.map +1 -0
  8. package/src/domain/catalog/helpers/round-product-price.helper.d.ts +4 -0
  9. package/src/domain/catalog/helpers/round-product-price.helper.js +15 -0
  10. package/src/domain/catalog/helpers/round-product-price.helper.js.map +1 -0
  11. package/src/domain/catalog/index.d.ts +3 -0
  12. package/src/domain/catalog/index.js +4 -0
  13. package/src/domain/catalog/index.js.map +1 -0
  14. package/src/domain/catalog/models/category-base.d.ts +30 -0
  15. package/src/domain/catalog/models/category-base.js +18 -0
  16. package/src/domain/catalog/models/category-base.js.map +1 -0
  17. package/src/domain/catalog/models/category-collection-children.d.ts +13 -0
  18. package/src/domain/catalog/models/category-collection-children.js +13 -0
  19. package/src/domain/catalog/models/category-collection-children.js.map +1 -0
  20. package/src/domain/catalog/models/category-filter.d.ts +13 -0
  21. package/src/domain/catalog/models/category-filter.js +19 -0
  22. package/src/domain/catalog/models/category-filter.js.map +1 -0
  23. package/src/domain/catalog/models/category-for-product.d.ts +5 -0
  24. package/src/domain/catalog/models/category-for-product.js +7 -0
  25. package/src/domain/catalog/models/category-for-product.js.map +1 -0
  26. package/src/domain/catalog/models/category.d.ts +7 -0
  27. package/src/domain/catalog/models/category.js +14 -0
  28. package/src/domain/catalog/models/category.js.map +1 -0
  29. package/src/domain/catalog/models/enums/index.d.ts +2 -0
  30. package/src/domain/catalog/models/enums/index.js +3 -0
  31. package/src/domain/catalog/models/enums/index.js.map +1 -0
  32. package/src/domain/catalog/models/enums/product-genders.enum.d.ts +5 -0
  33. package/src/domain/catalog/models/enums/product-genders.enum.js +7 -0
  34. package/src/domain/catalog/models/enums/product-genders.enum.js.map +1 -0
  35. package/src/domain/catalog/models/enums/shops.enum.d.ts +6 -0
  36. package/src/domain/catalog/models/enums/shops.enum.js +8 -0
  37. package/src/domain/catalog/models/enums/shops.enum.js.map +1 -0
  38. package/src/domain/catalog/models/filter-option.d.ts +9 -0
  39. package/src/domain/catalog/models/filter-option.js +7 -0
  40. package/src/domain/catalog/models/filter-option.js.map +1 -0
  41. package/src/domain/catalog/models/filter.d.ts +12 -0
  42. package/src/domain/catalog/models/filter.js +7 -0
  43. package/src/domain/catalog/models/filter.js.map +1 -0
  44. package/src/domain/catalog/models/index.d.ts +11 -0
  45. package/src/domain/catalog/models/index.js +12 -0
  46. package/src/domain/catalog/models/index.js.map +1 -0
  47. package/src/domain/catalog/models/kit-product.d.ts +12 -0
  48. package/src/domain/catalog/models/kit-product.js +18 -0
  49. package/src/domain/catalog/models/kit-product.js.map +1 -0
  50. package/src/domain/catalog/models/product-base.d.ts +40 -0
  51. package/src/domain/catalog/models/product-base.js +25 -0
  52. package/src/domain/catalog/models/product-base.js.map +1 -0
  53. package/src/domain/catalog/models/product-for-category.d.ts +7 -0
  54. package/src/domain/catalog/models/product-for-category.js +14 -0
  55. package/src/domain/catalog/models/product-for-category.js.map +1 -0
  56. package/src/domain/catalog/models/product-for-kit.d.ts +7 -0
  57. package/src/domain/catalog/models/product-for-kit.js +14 -0
  58. package/src/domain/catalog/models/product-for-kit.js.map +1 -0
  59. package/src/domain/catalog/models/product.d.ts +9 -0
  60. package/src/domain/catalog/models/product.js +19 -0
  61. package/src/domain/catalog/models/product.js.map +1 -0
  62. package/src/domain/catalog/models/types/category-condition.type.d.ts +4 -0
  63. package/src/domain/catalog/models/types/category-condition.type.js +2 -0
  64. package/src/domain/catalog/models/types/category-condition.type.js.map +1 -0
  65. package/src/domain/catalog/models/types/category-metadata.type.d.ts +4 -0
  66. package/src/domain/catalog/models/types/category-metadata.type.js +2 -0
  67. package/src/domain/catalog/models/types/category-metadata.type.js.map +1 -0
  68. package/src/domain/catalog/models/types/category-product.d.ts +4 -0
  69. package/src/domain/catalog/models/types/category-product.js +2 -0
  70. package/src/domain/catalog/models/types/category-product.js.map +1 -0
  71. package/src/domain/catalog/models/types/index.d.ts +11 -0
  72. package/src/domain/catalog/models/types/index.js +12 -0
  73. package/src/domain/catalog/models/types/index.js.map +1 -0
  74. package/src/domain/catalog/models/types/product-evaluation.type.d.ts +6 -0
  75. package/src/domain/catalog/models/types/product-evaluation.type.js +2 -0
  76. package/src/domain/catalog/models/types/product-evaluation.type.js.map +1 -0
  77. package/src/domain/catalog/models/types/product-gender.type.d.ts +1 -0
  78. package/src/domain/catalog/models/types/product-gender.type.js +2 -0
  79. package/src/domain/catalog/models/types/product-gender.type.js.map +1 -0
  80. package/src/domain/catalog/models/types/product-metadata.type.d.ts +4 -0
  81. package/src/domain/catalog/models/types/product-metadata.type.js +2 -0
  82. package/src/domain/catalog/models/types/product-metadata.type.js.map +1 -0
  83. package/src/domain/catalog/models/types/product-review.type.d.ts +17 -0
  84. package/src/domain/catalog/models/types/product-review.type.js +2 -0
  85. package/src/domain/catalog/models/types/product-review.type.js.map +1 -0
  86. package/src/domain/catalog/models/types/shop-description.type.d.ts +8 -0
  87. package/src/domain/catalog/models/types/shop-description.type.js +2 -0
  88. package/src/domain/catalog/models/types/shop-description.type.js.map +1 -0
  89. package/src/domain/catalog/models/types/shop-price.type.d.ts +6 -0
  90. package/src/domain/catalog/models/types/shop-price.type.js +2 -0
  91. package/src/domain/catalog/models/types/shop-price.type.js.map +1 -0
  92. package/src/domain/catalog/models/types/stock.type.d.ts +3 -0
  93. package/src/domain/catalog/models/types/stock.type.js +2 -0
  94. package/src/domain/catalog/models/types/stock.type.js.map +1 -0
  95. package/src/domain/catalog/models/types/variant-grade.type.d.ts +4 -0
  96. package/src/domain/catalog/models/types/variant-grade.type.js +2 -0
  97. package/src/domain/catalog/models/types/variant-grade.type.js.map +1 -0
  98. package/src/domain/catalog/models/variant.d.ts +17 -0
  99. package/src/domain/catalog/models/variant.js +7 -0
  100. package/src/domain/catalog/models/variant.js.map +1 -0
  101. package/src/domain/catalog/models/wishlist.d.ts +6 -0
  102. package/src/domain/catalog/models/wishlist.js +7 -0
  103. package/src/domain/catalog/models/wishlist.js.map +1 -0
  104. package/src/domain/catalog/repositories/category-collection-children.repository.d.ts +4 -0
  105. package/src/domain/catalog/repositories/category-collection-children.repository.js +2 -0
  106. package/src/domain/catalog/repositories/category-collection-children.repository.js.map +1 -0
  107. package/src/domain/catalog/repositories/category-filter.repository.d.ts +6 -0
  108. package/src/domain/catalog/repositories/category-filter.repository.js +2 -0
  109. package/src/domain/catalog/repositories/category-filter.repository.js.map +1 -0
  110. package/src/domain/catalog/repositories/category.repository.d.ts +18 -0
  111. package/src/domain/catalog/repositories/category.repository.js +2 -0
  112. package/src/domain/catalog/repositories/category.repository.js.map +1 -0
  113. package/src/domain/catalog/repositories/filter-option.repository.d.ts +4 -0
  114. package/src/domain/catalog/repositories/filter-option.repository.js +2 -0
  115. package/src/domain/catalog/repositories/filter-option.repository.js.map +1 -0
  116. package/src/domain/catalog/repositories/filter.repository.d.ts +4 -0
  117. package/src/domain/catalog/repositories/filter.repository.js +2 -0
  118. package/src/domain/catalog/repositories/filter.repository.js.map +1 -0
  119. package/src/domain/catalog/repositories/index.d.ts +9 -0
  120. package/src/domain/catalog/repositories/index.js +10 -0
  121. package/src/domain/catalog/repositories/index.js.map +1 -0
  122. package/src/domain/catalog/repositories/product.repository.d.ts +15 -0
  123. package/src/domain/catalog/repositories/product.repository.js +2 -0
  124. package/src/domain/catalog/repositories/product.repository.js.map +1 -0
  125. package/src/domain/catalog/repositories/subscription-product.repository.d.ts +4 -0
  126. package/src/domain/catalog/repositories/subscription-product.repository.js +2 -0
  127. package/src/domain/catalog/repositories/subscription-product.repository.js.map +1 -0
  128. package/src/domain/catalog/repositories/variant.repository.d.ts +4 -0
  129. package/src/domain/catalog/repositories/variant.repository.js +2 -0
  130. package/src/domain/catalog/repositories/variant.repository.js.map +1 -0
  131. package/src/domain/catalog/repositories/wishlist.repository.d.ts +6 -0
  132. package/src/domain/catalog/repositories/wishlist.repository.js +2 -0
  133. package/src/domain/catalog/repositories/wishlist.repository.js.map +1 -0
  134. package/src/domain/generic/index.d.ts +2 -0
  135. package/src/domain/generic/index.js +3 -0
  136. package/src/domain/generic/index.js.map +1 -0
  137. package/src/domain/generic/model/base.model.d.ts +14 -0
  138. package/src/domain/generic/model/base.model.js +24 -0
  139. package/src/domain/generic/model/base.model.js.map +1 -0
  140. package/src/domain/generic/model/identifier-fields.d.ts +4 -0
  141. package/src/domain/generic/model/identifier-fields.js +2 -0
  142. package/src/domain/generic/model/identifier-fields.js.map +1 -0
  143. package/src/domain/generic/model/index.d.ts +3 -0
  144. package/src/domain/generic/model/index.js +4 -0
  145. package/src/domain/generic/model/index.js.map +1 -0
  146. package/src/domain/generic/model/types/base-model-builder.type.d.ts +17 -0
  147. package/src/domain/generic/model/types/base-model-builder.type.js +2 -0
  148. package/src/domain/generic/model/types/base-model-builder.type.js.map +1 -0
  149. package/src/domain/generic/model/types/identifier-model.type.d.ts +8 -0
  150. package/src/domain/generic/model/types/identifier-model.type.js +2 -0
  151. package/src/domain/generic/model/types/identifier-model.type.js.map +1 -0
  152. package/src/domain/generic/model/types/index.d.ts +5 -0
  153. package/src/domain/generic/model/types/index.js +6 -0
  154. package/src/domain/generic/model/types/index.js.map +1 -0
  155. package/src/domain/generic/model/types/model-base-structure.type.d.ts +12 -0
  156. package/src/domain/generic/model/types/model-base-structure.type.js +2 -0
  157. package/src/domain/generic/model/types/model-base-structure.type.js.map +1 -0
  158. package/src/domain/generic/model/types/non-function-properties.type.d.ts +12 -0
  159. package/src/domain/generic/model/types/non-function-properties.type.js +2 -0
  160. package/src/domain/generic/model/types/non-function-properties.type.js.map +1 -0
  161. package/src/domain/generic/model/types/non-function-property-name.type.d.ts +13 -0
  162. package/src/domain/generic/model/types/non-function-property-name.type.js +2 -0
  163. package/src/domain/generic/model/types/non-function-property-name.type.js.map +1 -0
  164. package/src/domain/generic/repository/create.repository.d.ts +8 -0
  165. package/src/domain/generic/repository/create.repository.js +2 -0
  166. package/src/domain/generic/repository/create.repository.js.map +1 -0
  167. package/src/domain/generic/repository/crud.repository.d.ts +19 -0
  168. package/src/domain/generic/repository/crud.repository.js +2 -0
  169. package/src/domain/generic/repository/crud.repository.js.map +1 -0
  170. package/src/domain/generic/repository/delete.repository.d.ts +7 -0
  171. package/src/domain/generic/repository/delete.repository.js +2 -0
  172. package/src/domain/generic/repository/delete.repository.js.map +1 -0
  173. package/src/domain/generic/repository/enums/index.d.ts +2 -0
  174. package/src/domain/generic/repository/enums/index.js +3 -0
  175. package/src/domain/generic/repository/enums/index.js.map +1 -0
  176. package/src/domain/generic/repository/enums/update-option-actions.enum.d.ts +7 -0
  177. package/src/domain/generic/repository/enums/update-option-actions.enum.js +9 -0
  178. package/src/domain/generic/repository/enums/update-option-actions.enum.js.map +1 -0
  179. package/src/domain/generic/repository/enums/where.enum.d.ts +14 -0
  180. package/src/domain/generic/repository/enums/where.enum.js +16 -0
  181. package/src/domain/generic/repository/enums/where.enum.js.map +1 -0
  182. package/src/domain/generic/repository/find.repository.d.ts +17 -0
  183. package/src/domain/generic/repository/find.repository.js +2 -0
  184. package/src/domain/generic/repository/find.repository.js.map +1 -0
  185. package/src/domain/generic/repository/get.repository.d.ts +5 -0
  186. package/src/domain/generic/repository/get.repository.js +2 -0
  187. package/src/domain/generic/repository/get.repository.js.map +1 -0
  188. package/src/domain/generic/repository/index.d.ts +9 -0
  189. package/src/domain/generic/repository/index.js +10 -0
  190. package/src/domain/generic/repository/index.js.map +1 -0
  191. package/src/domain/generic/repository/read.repository.d.ts +14 -0
  192. package/src/domain/generic/repository/read.repository.js +2 -0
  193. package/src/domain/generic/repository/read.repository.js.map +1 -0
  194. package/src/domain/generic/repository/types/index.d.ts +6 -0
  195. package/src/domain/generic/repository/types/index.js +7 -0
  196. package/src/domain/generic/repository/types/index.js.map +1 -0
  197. package/src/domain/generic/repository/types/repository-find-filters.type.d.ts +13 -0
  198. package/src/domain/generic/repository/types/repository-find-filters.type.js +2 -0
  199. package/src/domain/generic/repository/types/repository-find-filters.type.js.map +1 -0
  200. package/src/domain/generic/repository/types/repository-find-result.type.d.ts +14 -0
  201. package/src/domain/generic/repository/types/repository-find-result.type.js +2 -0
  202. package/src/domain/generic/repository/types/repository-find-result.type.js.map +1 -0
  203. package/src/domain/generic/repository/types/repository-limit-options.type.d.ts +4 -0
  204. package/src/domain/generic/repository/types/repository-limit-options.type.js +2 -0
  205. package/src/domain/generic/repository/types/repository-limit-options.type.js.map +1 -0
  206. package/src/domain/generic/repository/types/repository-order-by-list.type.d.ts +5 -0
  207. package/src/domain/generic/repository/types/repository-order-by-list.type.js +2 -0
  208. package/src/domain/generic/repository/types/repository-order-by-list.type.js.map +1 -0
  209. package/src/domain/generic/repository/types/repository-update-params.type.d.ts +11 -0
  210. package/src/domain/generic/repository/types/repository-update-params.type.js +2 -0
  211. package/src/domain/generic/repository/types/repository-update-params.type.js.map +1 -0
  212. package/src/domain/generic/repository/types/where-options.type.d.ts +2 -0
  213. package/src/domain/generic/repository/types/where-options.type.js +2 -0
  214. package/src/domain/generic/repository/types/where-options.type.js.map +1 -0
  215. package/src/domain/generic/repository/update.repository.d.ts +6 -0
  216. package/src/domain/generic/repository/update.repository.js +2 -0
  217. package/src/domain/generic/repository/update.repository.js.map +1 -0
  218. package/src/domain/index.d.ts +6 -0
  219. package/src/domain/index.js +7 -0
  220. package/src/domain/index.js.map +1 -0
  221. package/src/domain/location/index.d.ts +1 -0
  222. package/src/domain/location/index.js +2 -0
  223. package/src/domain/location/index.js.map +1 -0
  224. package/src/domain/location/models/address.d.ts +24 -0
  225. package/src/domain/location/models/address.js +7 -0
  226. package/src/domain/location/models/address.js.map +1 -0
  227. package/src/domain/location/models/index.d.ts +2 -0
  228. package/src/domain/location/models/index.js +3 -0
  229. package/src/domain/location/models/index.js.map +1 -0
  230. package/src/domain/location/models/types/index.d.ts +3 -0
  231. package/src/domain/location/models/types/index.js +4 -0
  232. package/src/domain/location/models/types/index.js.map +1 -0
  233. package/src/domain/location/models/types/location-bound.type.d.ts +6 -0
  234. package/src/domain/location/models/types/location-bound.type.js +2 -0
  235. package/src/domain/location/models/types/location-bound.type.js.map +1 -0
  236. package/src/domain/location/models/types/location-geometry.type.d.ts +7 -0
  237. package/src/domain/location/models/types/location-geometry.type.js +2 -0
  238. package/src/domain/location/models/types/location-geometry.type.js.map +1 -0
  239. package/src/domain/location/models/types/location-lat-lng.type.d.ts +4 -0
  240. package/src/domain/location/models/types/location-lat-lng.type.js +2 -0
  241. package/src/domain/location/models/types/location-lat-lng.type.js.map +1 -0
  242. package/src/domain/shop-settings/enums/filter-type.enum.d.ts +19 -0
  243. package/src/domain/shop-settings/enums/filter-type.enum.js +21 -0
  244. package/src/domain/shop-settings/enums/filter-type.enum.js.map +1 -0
  245. package/src/domain/shop-settings/enums/index.d.ts +2 -0
  246. package/src/domain/shop-settings/enums/index.js +3 -0
  247. package/src/domain/shop-settings/enums/index.js.map +1 -0
  248. package/src/domain/shop-settings/enums/questions-filters.enum.d.ts +19 -0
  249. package/src/domain/shop-settings/enums/questions-filters.enum.js +21 -0
  250. package/src/domain/shop-settings/enums/questions-filters.enum.js.map +1 -0
  251. package/src/domain/shop-settings/helpers/beauty-questions.helper.d.ts +9 -0
  252. package/src/domain/shop-settings/helpers/beauty-questions.helper.js +47 -0
  253. package/src/domain/shop-settings/helpers/beauty-questions.helper.js.map +1 -0
  254. package/src/domain/shop-settings/helpers/index.d.ts +1 -0
  255. package/src/domain/shop-settings/helpers/index.js +2 -0
  256. package/src/domain/shop-settings/helpers/index.js.map +1 -0
  257. package/src/domain/shop-settings/index.d.ts +4 -0
  258. package/src/domain/shop-settings/index.js +5 -0
  259. package/src/domain/shop-settings/index.js.map +1 -0
  260. package/src/domain/shop-settings/models/home.d.ts +18 -0
  261. package/src/domain/shop-settings/models/home.js +7 -0
  262. package/src/domain/shop-settings/models/home.js.map +1 -0
  263. package/src/domain/shop-settings/models/index.d.ts +4 -0
  264. package/src/domain/shop-settings/models/index.js +5 -0
  265. package/src/domain/shop-settings/models/index.js.map +1 -0
  266. package/src/domain/shop-settings/models/shop-menu.d.ts +7 -0
  267. package/src/domain/shop-settings/models/shop-menu.js +7 -0
  268. package/src/domain/shop-settings/models/shop-menu.js.map +1 -0
  269. package/src/domain/shop-settings/models/shop-settings.d.ts +9 -0
  270. package/src/domain/shop-settings/models/shop-settings.js +7 -0
  271. package/src/domain/shop-settings/models/shop-settings.js.map +1 -0
  272. package/src/domain/shop-settings/models/types/banner.type.d.ts +6 -0
  273. package/src/domain/shop-settings/models/types/banner.type.js +2 -0
  274. package/src/domain/shop-settings/models/types/banner.type.js.map +1 -0
  275. package/src/domain/shop-settings/models/types/benefit.type.d.ts +5 -0
  276. package/src/domain/shop-settings/models/types/benefit.type.js +2 -0
  277. package/src/domain/shop-settings/models/types/benefit.type.js.map +1 -0
  278. package/src/domain/shop-settings/models/types/home-data.type.d.ts +15 -0
  279. package/src/domain/shop-settings/models/types/home-data.type.js +2 -0
  280. package/src/domain/shop-settings/models/types/home-data.type.js.map +1 -0
  281. package/src/domain/shop-settings/models/types/index.d.ts +10 -0
  282. package/src/domain/shop-settings/models/types/index.js +11 -0
  283. package/src/domain/shop-settings/models/types/index.js.map +1 -0
  284. package/src/domain/shop-settings/models/types/menu-nav.type.d.ts +8 -0
  285. package/src/domain/shop-settings/models/types/menu-nav.type.js +2 -0
  286. package/src/domain/shop-settings/models/types/menu-nav.type.js.map +1 -0
  287. package/src/domain/shop-settings/models/types/shop-banner.type.d.ts +12 -0
  288. package/src/domain/shop-settings/models/types/shop-banner.type.js +2 -0
  289. package/src/domain/shop-settings/models/types/shop-banner.type.js.map +1 -0
  290. package/src/domain/shop-settings/models/types/shop-brands.type.d.ts +10 -0
  291. package/src/domain/shop-settings/models/types/shop-brands.type.js +2 -0
  292. package/src/domain/shop-settings/models/types/shop-brands.type.js.map +1 -0
  293. package/src/domain/shop-settings/models/types/shop-carousel.type.d.ts +5 -0
  294. package/src/domain/shop-settings/models/types/shop-carousel.type.js +2 -0
  295. package/src/domain/shop-settings/models/types/shop-carousel.type.js.map +1 -0
  296. package/src/domain/shop-settings/models/types/shop-collection.type.d.ts +9 -0
  297. package/src/domain/shop-settings/models/types/shop-collection.type.js +2 -0
  298. package/src/domain/shop-settings/models/types/shop-collection.type.js.map +1 -0
  299. package/src/domain/shop-settings/models/types/shop-section.type.d.ts +9 -0
  300. package/src/domain/shop-settings/models/types/shop-section.type.js +2 -0
  301. package/src/domain/shop-settings/models/types/shop-section.type.js.map +1 -0
  302. package/src/domain/shop-settings/models/types/sub-menu.type.d.ts +8 -0
  303. package/src/domain/shop-settings/models/types/sub-menu.type.js +2 -0
  304. package/src/domain/shop-settings/models/types/sub-menu.type.js.map +1 -0
  305. package/src/domain/shop-settings/repositories/home.repository.d.ts +4 -0
  306. package/src/domain/shop-settings/repositories/home.repository.js +2 -0
  307. package/src/domain/shop-settings/repositories/home.repository.js.map +1 -0
  308. package/src/domain/shop-settings/repositories/index.d.ts +3 -0
  309. package/src/domain/shop-settings/repositories/index.js +4 -0
  310. package/src/domain/shop-settings/repositories/index.js.map +1 -0
  311. package/src/domain/shop-settings/repositories/shop-menu.repository.d.ts +4 -0
  312. package/src/domain/shop-settings/repositories/shop-menu.repository.js +2 -0
  313. package/src/domain/shop-settings/repositories/shop-menu.repository.js.map +1 -0
  314. package/src/domain/shop-settings/repositories/shop-settings.repository.d.ts +4 -0
  315. package/src/domain/shop-settings/repositories/shop-settings.repository.js +2 -0
  316. package/src/domain/shop-settings/repositories/shop-settings.repository.js.map +1 -0
  317. package/src/domain/shopping/index.d.ts +2 -0
  318. package/src/domain/shopping/index.js +3 -0
  319. package/src/domain/shopping/index.js.map +1 -0
  320. package/src/domain/shopping/models/buy-2-win.d.ts +18 -0
  321. package/src/domain/shopping/models/buy-2-win.js +14 -0
  322. package/src/domain/shopping/models/buy-2-win.js.map +1 -0
  323. package/src/domain/shopping/models/campaign-dashboard.d.ts +15 -0
  324. package/src/domain/shopping/models/campaign-dashboard.js +7 -0
  325. package/src/domain/shopping/models/campaign-dashboard.js.map +1 -0
  326. package/src/domain/shopping/models/campaign-hashtag.d.ts +18 -0
  327. package/src/domain/shopping/models/campaign-hashtag.js +7 -0
  328. package/src/domain/shopping/models/campaign-hashtag.js.map +1 -0
  329. package/src/domain/shopping/models/checkout.d.ts +26 -0
  330. package/src/domain/shopping/models/checkout.js +37 -0
  331. package/src/domain/shopping/models/checkout.js.map +1 -0
  332. package/src/domain/shopping/models/coupons/coupon.d.ts +60 -0
  333. package/src/domain/shopping/models/coupons/coupon.js +38 -0
  334. package/src/domain/shopping/models/coupons/coupon.js.map +1 -0
  335. package/src/domain/shopping/models/coupons/enums/coupon-club-mens.enum.d.ts +5 -0
  336. package/src/domain/shopping/models/coupons/enums/coupon-club-mens.enum.js +7 -0
  337. package/src/domain/shopping/models/coupons/enums/coupon-club-mens.enum.js.map +1 -0
  338. package/src/domain/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +4 -0
  339. package/src/domain/shopping/models/coupons/enums/coupon-subtypes.enum.js +6 -0
  340. package/src/domain/shopping/models/coupons/enums/coupon-subtypes.enum.js.map +1 -0
  341. package/src/domain/shopping/models/coupons/enums/coupon-types.enum.d.ts +4 -0
  342. package/src/domain/shopping/models/coupons/enums/coupon-types.enum.js +10 -0
  343. package/src/domain/shopping/models/coupons/enums/coupon-types.enum.js.map +1 -0
  344. package/src/domain/shopping/models/coupons/enums/exclusivities.enum.d.ts +8 -0
  345. package/src/domain/shopping/models/coupons/enums/exclusivities.enum.js +10 -0
  346. package/src/domain/shopping/models/coupons/enums/exclusivities.enum.js.map +1 -0
  347. package/src/domain/shopping/models/coupons/enums/index.d.ts +3 -0
  348. package/src/domain/shopping/models/coupons/enums/index.js +4 -0
  349. package/src/domain/shopping/models/coupons/enums/index.js.map +1 -0
  350. package/src/domain/shopping/models/coupons/index.d.ts +2 -0
  351. package/src/domain/shopping/models/coupons/index.js +3 -0
  352. package/src/domain/shopping/models/coupons/index.js.map +1 -0
  353. package/src/domain/shopping/models/enums/checkout-types.enum.d.ts +5 -0
  354. package/src/domain/shopping/models/enums/checkout-types.enum.js +7 -0
  355. package/src/domain/shopping/models/enums/checkout-types.enum.js.map +1 -0
  356. package/src/domain/shopping/models/enums/index.d.ts +2 -0
  357. package/src/domain/shopping/models/enums/index.js +3 -0
  358. package/src/domain/shopping/models/enums/index.js.map +1 -0
  359. package/src/domain/shopping/models/enums/order-status.enum.d.ts +10 -0
  360. package/src/domain/shopping/models/enums/order-status.enum.js +12 -0
  361. package/src/domain/shopping/models/enums/order-status.enum.js.map +1 -0
  362. package/src/domain/shopping/models/index.d.ts +12 -0
  363. package/src/domain/shopping/models/index.js +13 -0
  364. package/src/domain/shopping/models/index.js.map +1 -0
  365. package/src/domain/shopping/models/line-item.d.ts +8 -0
  366. package/src/domain/shopping/models/line-item.js +4 -0
  367. package/src/domain/shopping/models/line-item.js.map +1 -0
  368. package/src/domain/shopping/models/order.d.ts +10 -0
  369. package/src/domain/shopping/models/order.js +11 -0
  370. package/src/domain/shopping/models/order.js.map +1 -0
  371. package/src/domain/shopping/models/payment.d.ts +67 -0
  372. package/src/domain/shopping/models/payment.js +169 -0
  373. package/src/domain/shopping/models/payment.js.map +1 -0
  374. package/src/domain/shopping/models/shipping-method.d.ts +17 -0
  375. package/src/domain/shopping/models/shipping-method.js +7 -0
  376. package/src/domain/shopping/models/shipping-method.js.map +1 -0
  377. package/src/domain/shopping/models/subscription/checkout.d.ts +20 -0
  378. package/src/domain/shopping/models/subscription/checkout.js +28 -0
  379. package/src/domain/shopping/models/subscription/checkout.js.map +1 -0
  380. package/src/domain/shopping/models/subscription/index.d.ts +2 -0
  381. package/src/domain/shopping/models/subscription/index.js +3 -0
  382. package/src/domain/shopping/models/subscription/index.js.map +1 -0
  383. package/src/domain/shopping/models/subscription/plan.d.ts +10 -0
  384. package/src/domain/shopping/models/subscription/plan.js +7 -0
  385. package/src/domain/shopping/models/subscription/plan.js.map +1 -0
  386. package/src/domain/shopping/models/types/index.d.ts +7 -0
  387. package/src/domain/shopping/models/types/index.js +8 -0
  388. package/src/domain/shopping/models/types/index.js.map +1 -0
  389. package/src/domain/shopping/models/types/payment-address.type.d.ts +12 -0
  390. package/src/domain/shopping/models/types/payment-address.type.js +2 -0
  391. package/src/domain/shopping/models/types/payment-address.type.js.map +1 -0
  392. package/src/domain/shopping/models/types/payment-billing.type.d.ts +7 -0
  393. package/src/domain/shopping/models/types/payment-billing.type.js +2 -0
  394. package/src/domain/shopping/models/types/payment-billing.type.js.map +1 -0
  395. package/src/domain/shopping/models/types/payment-card.type.d.ts +14 -0
  396. package/src/domain/shopping/models/types/payment-card.type.js +2 -0
  397. package/src/domain/shopping/models/types/payment-card.type.js.map +1 -0
  398. package/src/domain/shopping/models/types/payment-customer.type.d.ts +18 -0
  399. package/src/domain/shopping/models/types/payment-customer.type.js +2 -0
  400. package/src/domain/shopping/models/types/payment-customer.type.js.map +1 -0
  401. package/src/domain/shopping/models/types/payment-document.type.d.ts +6 -0
  402. package/src/domain/shopping/models/types/payment-document.type.js +2 -0
  403. package/src/domain/shopping/models/types/payment-document.type.js.map +1 -0
  404. package/src/domain/shopping/models/types/payment-item.type.d.ts +11 -0
  405. package/src/domain/shopping/models/types/payment-item.type.js +2 -0
  406. package/src/domain/shopping/models/types/payment-item.type.js.map +1 -0
  407. package/src/domain/shopping/models/types/payment-shipping.type.d.ts +10 -0
  408. package/src/domain/shopping/models/types/payment-shipping.type.js +2 -0
  409. package/src/domain/shopping/models/types/payment-shipping.type.js.map +1 -0
  410. package/src/domain/shopping/repositories/buy-2-win.repository.d.ts +4 -0
  411. package/src/domain/shopping/repositories/buy-2-win.repository.js +2 -0
  412. package/src/domain/shopping/repositories/buy-2-win.repository.js.map +1 -0
  413. package/src/domain/shopping/repositories/campaign-dashboard.repository.d.ts +4 -0
  414. package/src/domain/shopping/repositories/campaign-dashboard.repository.js +2 -0
  415. package/src/domain/shopping/repositories/campaign-dashboard.repository.js.map +1 -0
  416. package/src/domain/shopping/repositories/campaign-hashtag.repository.d.ts +4 -0
  417. package/src/domain/shopping/repositories/campaign-hashtag.repository.js +2 -0
  418. package/src/domain/shopping/repositories/campaign-hashtag.repository.js.map +1 -0
  419. package/src/domain/shopping/repositories/checkout.repository.d.ts +4 -0
  420. package/src/domain/shopping/repositories/checkout.repository.js +2 -0
  421. package/src/domain/shopping/repositories/checkout.repository.js.map +1 -0
  422. package/src/domain/shopping/repositories/coupon.repository.d.ts +4 -0
  423. package/src/domain/shopping/repositories/coupon.repository.js +2 -0
  424. package/src/domain/shopping/repositories/coupon.repository.js.map +1 -0
  425. package/src/domain/shopping/repositories/index.d.ts +9 -0
  426. package/src/domain/shopping/repositories/index.js +10 -0
  427. package/src/domain/shopping/repositories/index.js.map +1 -0
  428. package/src/domain/shopping/repositories/legacy-order.repository.d.ts +3 -0
  429. package/src/domain/shopping/repositories/legacy-order.repository.js +2 -0
  430. package/src/domain/shopping/repositories/legacy-order.repository.js.map +1 -0
  431. package/src/domain/shopping/repositories/order.repository.d.ts +4 -0
  432. package/src/domain/shopping/repositories/order.repository.js +2 -0
  433. package/src/domain/shopping/repositories/order.repository.js.map +1 -0
  434. package/src/domain/shopping/repositories/payment.repository.d.ts +4 -0
  435. package/src/domain/shopping/repositories/payment.repository.js +2 -0
  436. package/src/domain/shopping/repositories/payment.repository.js.map +1 -0
  437. package/src/domain/shopping/repositories/subscription/checkout.repository.d.ts +4 -0
  438. package/src/domain/shopping/repositories/subscription/checkout.repository.js +2 -0
  439. package/src/domain/shopping/repositories/subscription/checkout.repository.js.map +1 -0
  440. package/src/domain/shopping/repositories/subscription/index.d.ts +2 -0
  441. package/src/domain/shopping/repositories/subscription/index.js +3 -0
  442. package/src/domain/shopping/repositories/subscription/index.js.map +1 -0
  443. package/src/domain/shopping/repositories/subscription/plan.repository.d.ts +4 -0
  444. package/src/domain/shopping/repositories/subscription/plan.repository.js +2 -0
  445. package/src/domain/shopping/repositories/subscription/plan.repository.js.map +1 -0
  446. package/src/domain/users/errors/index.d.ts +3 -0
  447. package/src/domain/users/errors/index.js +4 -0
  448. package/src/domain/users/errors/index.js.map +1 -0
  449. package/src/domain/users/errors/unauthorized.error.d.ts +4 -0
  450. package/src/domain/users/errors/unauthorized.error.js +7 -0
  451. package/src/domain/users/errors/unauthorized.error.js.map +1 -0
  452. package/src/domain/users/errors/user-already-registered.error.d.ts +4 -0
  453. package/src/domain/users/errors/user-already-registered.error.js +7 -0
  454. package/src/domain/users/errors/user-already-registered.error.js.map +1 -0
  455. package/src/domain/users/errors/weak-password.error.d.ts +4 -0
  456. package/src/domain/users/errors/weak-password.error.js +7 -0
  457. package/src/domain/users/errors/weak-password.error.js.map +1 -0
  458. package/src/domain/users/index.d.ts +5 -0
  459. package/src/domain/users/index.js +6 -0
  460. package/src/domain/users/index.js.map +1 -0
  461. package/src/domain/users/models/beauty-profile.d.ts +11 -0
  462. package/src/domain/users/models/beauty-profile.js +12 -0
  463. package/src/domain/users/models/beauty-profile.js.map +1 -0
  464. package/src/domain/users/models/enums/accessory-importances.enum.d.ts +5 -0
  465. package/src/domain/users/models/enums/accessory-importances.enum.js +7 -0
  466. package/src/domain/users/models/enums/accessory-importances.enum.js.map +1 -0
  467. package/src/domain/users/models/enums/area.enum.d.ts +11 -0
  468. package/src/domain/users/models/enums/area.enum.js +13 -0
  469. package/src/domain/users/models/enums/area.enum.js.map +1 -0
  470. package/src/domain/users/models/enums/beard-problems.enum.d.ts +9 -0
  471. package/src/domain/users/models/enums/beard-problems.enum.js +11 -0
  472. package/src/domain/users/models/enums/beard-problems.enum.js.map +1 -0
  473. package/src/domain/users/models/enums/beard-sizes.enum.d.ts +7 -0
  474. package/src/domain/users/models/enums/beard-sizes.enum.js +9 -0
  475. package/src/domain/users/models/enums/beard-sizes.enum.js.map +1 -0
  476. package/src/domain/users/models/enums/beauty-product-importances.enum.d.ts +6 -0
  477. package/src/domain/users/models/enums/beauty-product-importances.enum.js +8 -0
  478. package/src/domain/users/models/enums/beauty-product-importances.enum.js.map +1 -0
  479. package/src/domain/users/models/enums/body-problems.enum.d.ts +11 -0
  480. package/src/domain/users/models/enums/body-problems.enum.js +13 -0
  481. package/src/domain/users/models/enums/body-problems.enum.js.map +1 -0
  482. package/src/domain/users/models/enums/body-shapes.enum.d.ts +7 -0
  483. package/src/domain/users/models/enums/body-shapes.enum.js +9 -0
  484. package/src/domain/users/models/enums/body-shapes.enum.js.map +1 -0
  485. package/src/domain/users/models/enums/body-tattoos.enum.d.ts +5 -0
  486. package/src/domain/users/models/enums/body-tattoos.enum.js +7 -0
  487. package/src/domain/users/models/enums/body-tattoos.enum.js.map +1 -0
  488. package/src/domain/users/models/enums/face-skin-oilinesses.enum.d.ts +7 -0
  489. package/src/domain/users/models/enums/face-skin-oilinesses.enum.js +9 -0
  490. package/src/domain/users/models/enums/face-skin-oilinesses.enum.js.map +1 -0
  491. package/src/domain/users/models/enums/face-skin-problems.enum.d.ts +10 -0
  492. package/src/domain/users/models/enums/face-skin-problems.enum.js +12 -0
  493. package/src/domain/users/models/enums/face-skin-problems.enum.js.map +1 -0
  494. package/src/domain/users/models/enums/face-skin-tones.enum.d.ts +8 -0
  495. package/src/domain/users/models/enums/face-skin-tones.enum.js +10 -0
  496. package/src/domain/users/models/enums/face-skin-tones.enum.js.map +1 -0
  497. package/src/domain/users/models/enums/family-incomes.enum.d.ts +8 -0
  498. package/src/domain/users/models/enums/family-incomes.enum.js +10 -0
  499. package/src/domain/users/models/enums/family-incomes.enum.js.map +1 -0
  500. package/src/domain/users/models/enums/fragrance-importances.enum.d.ts +5 -0
  501. package/src/domain/users/models/enums/fragrance-importances.enum.js +7 -0
  502. package/src/domain/users/models/enums/fragrance-importances.enum.js.map +1 -0
  503. package/src/domain/users/models/enums/hair-colors.enum.d.ts +10 -0
  504. package/src/domain/users/models/enums/hair-colors.enum.js +12 -0
  505. package/src/domain/users/models/enums/hair-colors.enum.js.map +1 -0
  506. package/src/domain/users/models/enums/hair-problems.enum.d.ts +10 -0
  507. package/src/domain/users/models/enums/hair-problems.enum.js +12 -0
  508. package/src/domain/users/models/enums/hair-problems.enum.js.map +1 -0
  509. package/src/domain/users/models/enums/hair-strands.enum.d.ts +8 -0
  510. package/src/domain/users/models/enums/hair-strands.enum.js +10 -0
  511. package/src/domain/users/models/enums/hair-strands.enum.js.map +1 -0
  512. package/src/domain/users/models/enums/hair-types.enum.d.ts +7 -0
  513. package/src/domain/users/models/enums/hair-types.enum.js +9 -0
  514. package/src/domain/users/models/enums/hair-types.enum.js.map +1 -0
  515. package/src/domain/users/models/enums/index.d.ts +20 -0
  516. package/src/domain/users/models/enums/index.js +21 -0
  517. package/src/domain/users/models/enums/index.js.map +1 -0
  518. package/src/domain/users/models/enums/office-position.enum.d.ts +6 -0
  519. package/src/domain/users/models/enums/office-position.enum.js +8 -0
  520. package/src/domain/users/models/enums/office-position.enum.js.map +1 -0
  521. package/src/domain/users/models/enums/product-spents.enum.d.ts +8 -0
  522. package/src/domain/users/models/enums/product-spents.enum.js +10 -0
  523. package/src/domain/users/models/enums/product-spents.enum.js.map +1 -0
  524. package/src/domain/users/models/enums/user-type.enum.d.ts +8 -0
  525. package/src/domain/users/models/enums/user-type.enum.js +10 -0
  526. package/src/domain/users/models/enums/user-type.enum.js.map +1 -0
  527. package/src/domain/users/models/index.d.ts +7 -0
  528. package/src/domain/users/models/index.js +8 -0
  529. package/src/domain/users/models/index.js.map +1 -0
  530. package/src/domain/users/models/lead.d.ts +8 -0
  531. package/src/domain/users/models/lead.js +7 -0
  532. package/src/domain/users/models/lead.js.map +1 -0
  533. package/src/domain/users/models/subscription/edition.d.ts +16 -0
  534. package/src/domain/users/models/subscription/edition.js +7 -0
  535. package/src/domain/users/models/subscription/edition.js.map +1 -0
  536. package/src/domain/users/models/subscription/enums/billing-status.enum.d.ts +3 -0
  537. package/src/domain/users/models/subscription/enums/billing-status.enum.js +5 -0
  538. package/src/domain/users/models/subscription/enums/billing-status.enum.js.map +1 -0
  539. package/src/domain/users/models/subscription/enums/edition-status.enum.d.ts +4 -0
  540. package/src/domain/users/models/subscription/enums/edition-status.enum.js +6 -0
  541. package/src/domain/users/models/subscription/enums/edition-status.enum.js.map +1 -0
  542. package/src/domain/users/models/subscription/enums/index.d.ts +4 -0
  543. package/src/domain/users/models/subscription/enums/index.js +5 -0
  544. package/src/domain/users/models/subscription/enums/index.js.map +1 -0
  545. package/src/domain/users/models/subscription/enums/payment-type.enum.d.ts +5 -0
  546. package/src/domain/users/models/subscription/enums/payment-type.enum.js +7 -0
  547. package/src/domain/users/models/subscription/enums/payment-type.enum.js.map +1 -0
  548. package/src/domain/users/models/subscription/enums/status.enum.d.ts +4 -0
  549. package/src/domain/users/models/subscription/enums/status.enum.js +6 -0
  550. package/src/domain/users/models/subscription/enums/status.enum.js.map +1 -0
  551. package/src/domain/users/models/subscription/index.d.ts +4 -0
  552. package/src/domain/users/models/subscription/index.js +5 -0
  553. package/src/domain/users/models/subscription/index.js.map +1 -0
  554. package/src/domain/users/models/subscription/payment.d.ts +13 -0
  555. package/src/domain/users/models/subscription/payment.js +14 -0
  556. package/src/domain/users/models/subscription/payment.js.map +1 -0
  557. package/src/domain/users/models/subscription/subscription.d.ts +28 -0
  558. package/src/domain/users/models/subscription/subscription.js +43 -0
  559. package/src/domain/users/models/subscription/subscription.js.map +1 -0
  560. package/src/domain/users/models/user-address.d.ts +6 -0
  561. package/src/domain/users/models/user-address.js +7 -0
  562. package/src/domain/users/models/user-address.js.map +1 -0
  563. package/src/domain/users/models/user-payment-method.d.ts +14 -0
  564. package/src/domain/users/models/user-payment-method.js +7 -0
  565. package/src/domain/users/models/user-payment-method.js.map +1 -0
  566. package/src/domain/users/models/user.d.ts +27 -0
  567. package/src/domain/users/models/user.js +26 -0
  568. package/src/domain/users/models/user.js.map +1 -0
  569. package/src/domain/users/repositories/beauty-profile.repository.d.ts +4 -0
  570. package/src/domain/users/repositories/beauty-profile.repository.js +2 -0
  571. package/src/domain/users/repositories/beauty-profile.repository.js.map +1 -0
  572. package/src/domain/users/repositories/edition.repository.d.ts +4 -0
  573. package/src/domain/users/repositories/edition.repository.js +2 -0
  574. package/src/domain/users/repositories/edition.repository.js.map +1 -0
  575. package/src/domain/users/repositories/index.d.ts +8 -0
  576. package/src/domain/users/repositories/index.js +9 -0
  577. package/src/domain/users/repositories/index.js.map +1 -0
  578. package/src/domain/users/repositories/lead.repository.d.ts +4 -0
  579. package/src/domain/users/repositories/lead.repository.js +2 -0
  580. package/src/domain/users/repositories/lead.repository.js.map +1 -0
  581. package/src/domain/users/repositories/subscription-payment.repository.d.ts +4 -0
  582. package/src/domain/users/repositories/subscription-payment.repository.js +2 -0
  583. package/src/domain/users/repositories/subscription-payment.repository.js.map +1 -0
  584. package/src/domain/users/repositories/subscription.repository.d.ts +4 -0
  585. package/src/domain/users/repositories/subscription.repository.js +2 -0
  586. package/src/domain/users/repositories/subscription.repository.js.map +1 -0
  587. package/src/domain/users/repositories/user-address.repository.d.ts +4 -0
  588. package/src/domain/users/repositories/user-address.repository.js +2 -0
  589. package/src/domain/users/repositories/user-address.repository.js.map +1 -0
  590. package/src/domain/users/repositories/user-payment-method.repository.d.ts +4 -0
  591. package/src/domain/users/repositories/user-payment-method.repository.js +2 -0
  592. package/src/domain/users/repositories/user-payment-method.repository.js.map +1 -0
  593. package/src/domain/users/repositories/user.repository.d.ts +6 -0
  594. package/src/domain/users/repositories/user.repository.js +2 -0
  595. package/src/domain/users/repositories/user.repository.js.map +1 -0
  596. package/src/domain/users/services/authentication.service.d.ts +12 -0
  597. package/src/domain/users/services/authentication.service.js +2 -0
  598. package/src/domain/users/services/authentication.service.js.map +1 -0
  599. package/src/domain/users/services/index.d.ts +3 -0
  600. package/src/domain/users/services/index.js +4 -0
  601. package/src/domain/users/services/index.js.map +1 -0
  602. package/src/domain/users/services/register.service.d.ts +7 -0
  603. package/src/domain/users/services/register.service.js +2 -0
  604. package/src/domain/users/services/register.service.js.map +1 -0
  605. package/src/domain/users/services/types/basic-user-data.type.d.ts +4 -0
  606. package/src/domain/users/services/types/basic-user-data.type.js +2 -0
  607. package/src/domain/users/services/types/basic-user-data.type.js.map +1 -0
  608. package/src/domain/users/services/types/index.d.ts +1 -0
  609. package/src/domain/users/services/types/index.js +2 -0
  610. package/src/domain/users/services/types/index.js.map +1 -0
  611. package/src/domain/users/use-cases/authentication.d.ts +21 -0
  612. package/src/domain/users/use-cases/authentication.js +35 -0
  613. package/src/domain/users/use-cases/authentication.js.map +1 -0
  614. package/src/domain/users/use-cases/index.d.ts +4 -0
  615. package/src/domain/users/use-cases/index.js +5 -0
  616. package/src/domain/users/use-cases/index.js.map +1 -0
  617. package/src/domain/users/use-cases/recovery-password.d.ts +6 -0
  618. package/src/domain/users/use-cases/recovery-password.js +9 -0
  619. package/src/domain/users/use-cases/recovery-password.js.map +1 -0
  620. package/src/domain/users/use-cases/register.d.ts +13 -0
  621. package/src/domain/users/use-cases/register.js +31 -0
  622. package/src/domain/users/use-cases/register.js.map +1 -0
  623. package/src/domain/users/use-cases/signout.d.ts +6 -0
  624. package/src/domain/users/use-cases/signout.js +9 -0
  625. package/src/domain/users/use-cases/signout.js.map +1 -0
  626. package/src/errors/duplicated-results.error.d.ts +4 -0
  627. package/src/errors/duplicated-results.error.js +7 -0
  628. package/src/errors/duplicated-results.error.js.map +1 -0
  629. package/src/errors/index.d.ts +4 -0
  630. package/src/errors/index.js +5 -0
  631. package/src/errors/index.js.map +1 -0
  632. package/src/errors/invalid-argument.error.d.ts +4 -0
  633. package/src/errors/invalid-argument.error.js +7 -0
  634. package/src/errors/invalid-argument.error.js.map +1 -0
  635. package/src/errors/not-found.error.d.ts +4 -0
  636. package/src/errors/not-found.error.js +7 -0
  637. package/src/errors/not-found.error.js.map +1 -0
  638. package/src/errors/required-argument.error.d.ts +6 -0
  639. package/src/errors/required-argument.error.js +9 -0
  640. package/src/errors/required-argument.error.js.map +1 -0
  641. package/src/index.d.ts +5 -0
  642. package/src/index.js +6 -0
  643. package/src/index.js.map +1 -0
  644. package/src/infra/elasticsearch/adapters/axios.adapter.d.ts +16 -0
  645. package/src/infra/elasticsearch/adapters/axios.adapter.js +67 -0
  646. package/src/infra/elasticsearch/adapters/axios.adapter.js.map +1 -0
  647. package/src/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +8 -0
  648. package/src/infra/elasticsearch/adapters/elastic-search.adapter.js +2 -0
  649. package/src/infra/elasticsearch/adapters/elastic-search.adapter.js.map +1 -0
  650. package/src/infra/elasticsearch/adapters/index.d.ts +2 -0
  651. package/src/infra/elasticsearch/adapters/index.js +3 -0
  652. package/src/infra/elasticsearch/adapters/index.js.map +1 -0
  653. package/src/infra/elasticsearch/index.d.ts +3 -0
  654. package/src/infra/elasticsearch/index.js +4 -0
  655. package/src/infra/elasticsearch/index.js.map +1 -0
  656. package/src/infra/elasticsearch/indexes/index.d.ts +1 -0
  657. package/src/infra/elasticsearch/indexes/index.js +2 -0
  658. package/src/infra/elasticsearch/indexes/index.js.map +1 -0
  659. package/src/infra/elasticsearch/indexes/products-index.d.ts +13 -0
  660. package/src/infra/elasticsearch/indexes/products-index.js +105 -0
  661. package/src/infra/elasticsearch/indexes/products-index.js.map +1 -0
  662. package/src/infra/elasticsearch/types/elastic-search-result.d.ts +9 -0
  663. package/src/infra/elasticsearch/types/elastic-search-result.js +2 -0
  664. package/src/infra/elasticsearch/types/elastic-search-result.js.map +1 -0
  665. package/src/infra/elasticsearch/types/index.d.ts +1 -0
  666. package/src/infra/elasticsearch/types/index.js +2 -0
  667. package/src/infra/elasticsearch/types/index.js.map +1 -0
  668. package/src/infra/firebase/auth/authentication-firebase-auth.service.d.ts +12 -0
  669. package/src/infra/firebase/auth/authentication-firebase-auth.service.js +41 -0
  670. package/src/infra/firebase/auth/authentication-firebase-auth.service.js.map +1 -0
  671. package/src/infra/firebase/auth/index.d.ts +2 -0
  672. package/src/infra/firebase/auth/index.js +3 -0
  673. package/src/infra/firebase/auth/index.js.map +1 -0
  674. package/src/infra/firebase/auth/register-firebase-auth.service.d.ts +8 -0
  675. package/src/infra/firebase/auth/register-firebase-auth.service.js +33 -0
  676. package/src/infra/firebase/auth/register-firebase-auth.service.js.map +1 -0
  677. package/src/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +5 -0
  678. package/src/infra/firebase/auth/types/firebase-user-with-id.type.js +2 -0
  679. package/src/infra/firebase/auth/types/firebase-user-with-id.type.js.map +1 -0
  680. package/src/infra/firebase/auth/types/index.d.ts +1 -0
  681. package/src/infra/firebase/auth/types/index.js +2 -0
  682. package/src/infra/firebase/auth/types/index.js.map +1 -0
  683. package/src/infra/firebase/firestore/enums/firestore-field-type.enum.d.ts +8 -0
  684. package/src/infra/firebase/firestore/enums/firestore-field-type.enum.js +10 -0
  685. package/src/infra/firebase/firestore/enums/firestore-field-type.enum.js.map +1 -0
  686. package/src/infra/firebase/firestore/enums/index.d.ts +1 -0
  687. package/src/infra/firebase/firestore/enums/index.js +2 -0
  688. package/src/infra/firebase/firestore/enums/index.js.map +1 -0
  689. package/src/infra/firebase/firestore/index.d.ts +3 -0
  690. package/src/infra/firebase/firestore/index.js +4 -0
  691. package/src/infra/firebase/firestore/index.js.map +1 -0
  692. package/src/infra/firebase/firestore/mixins/index.d.ts +9 -0
  693. package/src/infra/firebase/firestore/mixins/index.js +10 -0
  694. package/src/infra/firebase/firestore/mixins/index.js.map +1 -0
  695. package/src/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +4 -0
  696. package/src/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +33 -0
  697. package/src/infra/firebase/firestore/mixins/with-create-firestore.mixin.js.map +1 -0
  698. package/src/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +5 -0
  699. package/src/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +10 -0
  700. package/src/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js.map +1 -0
  701. package/src/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +4 -0
  702. package/src/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +19 -0
  703. package/src/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js.map +1 -0
  704. package/src/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +4 -0
  705. package/src/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +109 -0
  706. package/src/infra/firebase/firestore/mixins/with-find-firestore.mixin.js.map +1 -0
  707. package/src/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +13 -0
  708. package/src/infra/firebase/firestore/mixins/with-firestore.mixin.js +77 -0
  709. package/src/infra/firebase/firestore/mixins/with-firestore.mixin.js.map +1 -0
  710. package/src/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +4 -0
  711. package/src/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +24 -0
  712. package/src/infra/firebase/firestore/mixins/with-get-firestore.mixin.js.map +1 -0
  713. package/src/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +11 -0
  714. package/src/infra/firebase/firestore/mixins/with-helpers.mixin.js +17 -0
  715. package/src/infra/firebase/firestore/mixins/with-helpers.mixin.js.map +1 -0
  716. package/src/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +11 -0
  717. package/src/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +13 -0
  718. package/src/infra/firebase/firestore/mixins/with-sub-collection.mixin.js.map +1 -0
  719. package/src/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +7 -0
  720. package/src/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +52 -0
  721. package/src/infra/firebase/firestore/mixins/with-update-firestore.mixin.js.map +1 -0
  722. package/src/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +20 -0
  723. package/src/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +67 -0
  724. package/src/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js.map +1 -0
  725. package/src/infra/firebase/firestore/repositories/catalog/index.d.ts +4 -0
  726. package/src/infra/firebase/firestore/repositories/catalog/index.js +5 -0
  727. package/src/infra/firebase/firestore/repositories/catalog/index.js.map +1 -0
  728. package/src/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +12 -0
  729. package/src/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js +56 -0
  730. package/src/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js.map +1 -0
  731. package/src/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +12 -0
  732. package/src/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.js +16 -0
  733. package/src/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.js.map +1 -0
  734. package/src/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +7 -0
  735. package/src/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.js +14 -0
  736. package/src/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.js.map +1 -0
  737. package/src/infra/firebase/firestore/repositories/index.d.ts +4 -0
  738. package/src/infra/firebase/firestore/repositories/index.js +5 -0
  739. package/src/infra/firebase/firestore/repositories/index.js.map +1 -0
  740. package/src/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +16 -0
  741. package/src/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.js +66 -0
  742. package/src/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.js.map +1 -0
  743. package/src/infra/firebase/firestore/repositories/shop-settings/index.d.ts +3 -0
  744. package/src/infra/firebase/firestore/repositories/shop-settings/index.js +4 -0
  745. package/src/infra/firebase/firestore/repositories/shop-settings/index.js.map +1 -0
  746. package/src/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +7 -0
  747. package/src/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.js +14 -0
  748. package/src/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.js.map +1 -0
  749. package/src/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +7 -0
  750. package/src/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.js +14 -0
  751. package/src/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.js.map +1 -0
  752. package/src/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +7 -0
  753. package/src/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.js +14 -0
  754. package/src/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.js.map +1 -0
  755. package/src/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.d.ts +8 -0
  756. package/src/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.js +14 -0
  757. package/src/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.js.map +1 -0
  758. package/src/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.d.ts +8 -0
  759. package/src/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.js +14 -0
  760. package/src/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.js.map +1 -0
  761. package/src/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +7 -0
  762. package/src/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.js +14 -0
  763. package/src/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.js.map +1 -0
  764. package/src/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +7 -0
  765. package/src/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.js +14 -0
  766. package/src/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.js.map +1 -0
  767. package/src/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +12 -0
  768. package/src/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.js +31 -0
  769. package/src/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.js.map +1 -0
  770. package/src/infra/firebase/firestore/repositories/shopping/index.d.ts +10 -0
  771. package/src/infra/firebase/firestore/repositories/shopping/index.js +11 -0
  772. package/src/infra/firebase/firestore/repositories/shopping/index.js.map +1 -0
  773. package/src/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +6 -0
  774. package/src/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.js +11 -0
  775. package/src/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.js.map +1 -0
  776. package/src/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +13 -0
  777. package/src/infra/firebase/firestore/repositories/shopping/order-firestore.repository.js +41 -0
  778. package/src/infra/firebase/firestore/repositories/shopping/order-firestore.repository.js.map +1 -0
  779. package/src/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +7 -0
  780. package/src/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.js +14 -0
  781. package/src/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.js.map +1 -0
  782. package/src/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +7 -0
  783. package/src/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.js +14 -0
  784. package/src/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.js.map +1 -0
  785. package/src/infra/firebase/firestore/repositories/users/index.d.ts +8 -0
  786. package/src/infra/firebase/firestore/repositories/users/index.js +9 -0
  787. package/src/infra/firebase/firestore/repositories/users/index.js.map +1 -0
  788. package/src/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +7 -0
  789. package/src/infra/firebase/firestore/repositories/users/lead-firestore.repository.js +14 -0
  790. package/src/infra/firebase/firestore/repositories/users/lead-firestore.repository.js.map +1 -0
  791. package/src/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +12 -0
  792. package/src/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.js +16 -0
  793. package/src/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.js.map +1 -0
  794. package/src/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +7 -0
  795. package/src/infra/firebase/firestore/repositories/users/subscription-firestore.repository.js +14 -0
  796. package/src/infra/firebase/firestore/repositories/users/subscription-firestore.repository.js.map +1 -0
  797. package/src/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +12 -0
  798. package/src/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.js +16 -0
  799. package/src/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.js.map +1 -0
  800. package/src/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +12 -0
  801. package/src/infra/firebase/firestore/repositories/users/user-address-firestore.repository.js +16 -0
  802. package/src/infra/firebase/firestore/repositories/users/user-address-firestore.repository.js.map +1 -0
  803. package/src/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +12 -0
  804. package/src/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.js +16 -0
  805. package/src/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.js.map +1 -0
  806. package/src/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +17 -0
  807. package/src/infra/firebase/firestore/repositories/users/user-firestore.repository.js +50 -0
  808. package/src/infra/firebase/firestore/repositories/users/user-firestore.repository.js.map +1 -0
  809. package/src/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +12 -0
  810. package/src/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.js +16 -0
  811. package/src/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.js.map +1 -0
  812. package/src/infra/firebase/firestore/types/firestore-interceptors.type.d.ts +14 -0
  813. package/src/infra/firebase/firestore/types/firestore-interceptors.type.js +2 -0
  814. package/src/infra/firebase/firestore/types/firestore-interceptors.type.js.map +1 -0
  815. package/src/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +6 -0
  816. package/src/infra/firebase/firestore/types/firestore-sub.repository.type.js +2 -0
  817. package/src/infra/firebase/firestore/types/firestore-sub.repository.type.js.map +1 -0
  818. package/src/infra/firebase/firestore/types/firestore.helpers.type.d.ts +8 -0
  819. package/src/infra/firebase/firestore/types/firestore.helpers.type.js +2 -0
  820. package/src/infra/firebase/firestore/types/firestore.helpers.type.js.map +1 -0
  821. package/src/infra/firebase/firestore/types/firestore.repository.type.d.ts +16 -0
  822. package/src/infra/firebase/firestore/types/firestore.repository.type.js +2 -0
  823. package/src/infra/firebase/firestore/types/firestore.repository.type.js.map +1 -0
  824. package/src/infra/firebase/firestore/types/index.d.ts +4 -0
  825. package/src/infra/firebase/firestore/types/index.js +5 -0
  826. package/src/infra/firebase/firestore/types/index.js.map +1 -0
  827. package/src/infra/firebase/index.d.ts +2 -0
  828. package/src/infra/firebase/index.js +3 -0
  829. package/src/infra/firebase/index.js.map +1 -0
  830. package/src/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.d.ts +11 -0
  831. package/src/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.js +13 -0
  832. package/src/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.js.map +1 -0
  833. package/src/infra/hasura-graphql/enums/hasura-graphql-where.enum.d.ts +15 -0
  834. package/src/infra/hasura-graphql/enums/hasura-graphql-where.enum.js +17 -0
  835. package/src/infra/hasura-graphql/enums/hasura-graphql-where.enum.js.map +1 -0
  836. package/src/infra/hasura-graphql/enums/index.d.ts +2 -0
  837. package/src/infra/hasura-graphql/enums/index.js +3 -0
  838. package/src/infra/hasura-graphql/enums/index.js.map +1 -0
  839. package/src/infra/hasura-graphql/index.d.ts +4 -0
  840. package/src/infra/hasura-graphql/index.js +5 -0
  841. package/src/infra/hasura-graphql/index.js.map +1 -0
  842. package/src/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +19 -0
  843. package/src/infra/hasura-graphql/mixins/helpers/attribute-option.helper.js +32 -0
  844. package/src/infra/hasura-graphql/mixins/helpers/attribute-option.helper.js.map +1 -0
  845. package/src/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.d.ts +10 -0
  846. package/src/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.js +56 -0
  847. package/src/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.js.map +1 -0
  848. package/src/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +8 -0
  849. package/src/infra/hasura-graphql/mixins/helpers/filter-option.helper.js +22 -0
  850. package/src/infra/hasura-graphql/mixins/helpers/filter-option.helper.js.map +1 -0
  851. package/src/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +12 -0
  852. package/src/infra/hasura-graphql/mixins/helpers/graphql-field.helper.js +104 -0
  853. package/src/infra/hasura-graphql/mixins/helpers/graphql-field.helper.js.map +1 -0
  854. package/src/infra/hasura-graphql/mixins/helpers/index.d.ts +4 -0
  855. package/src/infra/hasura-graphql/mixins/helpers/index.js +5 -0
  856. package/src/infra/hasura-graphql/mixins/helpers/index.js.map +1 -0
  857. package/src/infra/hasura-graphql/mixins/index.d.ts +7 -0
  858. package/src/infra/hasura-graphql/mixins/index.js +8 -0
  859. package/src/infra/hasura-graphql/mixins/index.js.map +1 -0
  860. package/src/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +9 -0
  861. package/src/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.js +41 -0
  862. package/src/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.js.map +1 -0
  863. package/src/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +11 -0
  864. package/src/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.js +10 -0
  865. package/src/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.js.map +1 -0
  866. package/src/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +7 -0
  867. package/src/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.js +28 -0
  868. package/src/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.js.map +1 -0
  869. package/src/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +34 -0
  870. package/src/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.js +143 -0
  871. package/src/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.js.map +1 -0
  872. package/src/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +25 -0
  873. package/src/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.js +35 -0
  874. package/src/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.js.map +1 -0
  875. package/src/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +23 -0
  876. package/src/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.js +105 -0
  877. package/src/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.js.map +1 -0
  878. package/src/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +14 -0
  879. package/src/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.js +57 -0
  880. package/src/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.js.map +1 -0
  881. package/src/infra/hasura-graphql/models/category-hasura-graphql.d.ts +6 -0
  882. package/src/infra/hasura-graphql/models/category-hasura-graphql.js +4 -0
  883. package/src/infra/hasura-graphql/models/category-hasura-graphql.js.map +1 -0
  884. package/src/infra/hasura-graphql/models/index.d.ts +4 -0
  885. package/src/infra/hasura-graphql/models/index.js +5 -0
  886. package/src/infra/hasura-graphql/models/index.js.map +1 -0
  887. package/src/infra/hasura-graphql/models/kit-product-hasura-graphql.d.ts +6 -0
  888. package/src/infra/hasura-graphql/models/kit-product-hasura-graphql.js +15 -0
  889. package/src/infra/hasura-graphql/models/kit-product-hasura-graphql.js.map +1 -0
  890. package/src/infra/hasura-graphql/models/product-hasura-graphql.d.ts +18 -0
  891. package/src/infra/hasura-graphql/models/product-hasura-graphql.js +11 -0
  892. package/src/infra/hasura-graphql/models/product-hasura-graphql.js.map +1 -0
  893. package/src/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +10 -0
  894. package/src/infra/hasura-graphql/models/variant-hasura-graphql.js +9 -0
  895. package/src/infra/hasura-graphql/models/variant-hasura-graphql.js.map +1 -0
  896. package/src/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.d.ts +10 -0
  897. package/src/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.js +39 -0
  898. package/src/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.js.map +1 -0
  899. package/src/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.d.ts +12 -0
  900. package/src/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.js +107 -0
  901. package/src/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.js.map +1 -0
  902. package/src/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +34 -0
  903. package/src/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js +330 -0
  904. package/src/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js.map +1 -0
  905. package/src/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.d.ts +18 -0
  906. package/src/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.js +106 -0
  907. package/src/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.js.map +1 -0
  908. package/src/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.d.ts +10 -0
  909. package/src/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.js +22 -0
  910. package/src/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.js.map +1 -0
  911. package/src/infra/hasura-graphql/repositories/catalog/index.d.ts +8 -0
  912. package/src/infra/hasura-graphql/repositories/catalog/index.js +9 -0
  913. package/src/infra/hasura-graphql/repositories/catalog/index.js.map +1 -0
  914. package/src/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +30 -0
  915. package/src/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js +461 -0
  916. package/src/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js.map +1 -0
  917. package/src/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +14 -0
  918. package/src/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.js +107 -0
  919. package/src/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.js.map +1 -0
  920. package/src/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.d.ts +27 -0
  921. package/src/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.js +228 -0
  922. package/src/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.js.map +1 -0
  923. package/src/infra/hasura-graphql/repositories/index.d.ts +1 -0
  924. package/src/infra/hasura-graphql/repositories/index.js +2 -0
  925. package/src/infra/hasura-graphql/repositories/index.js.map +1 -0
  926. package/src/infra/hasura-graphql/types/fields.type.d.ts +2 -0
  927. package/src/infra/hasura-graphql/types/fields.type.js +2 -0
  928. package/src/infra/hasura-graphql/types/fields.type.js.map +1 -0
  929. package/src/infra/hasura-graphql/types/graphql.repository.type.d.ts +24 -0
  930. package/src/infra/hasura-graphql/types/graphql.repository.type.js +2 -0
  931. package/src/infra/hasura-graphql/types/graphql.repository.type.js.map +1 -0
  932. package/src/infra/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +8 -0
  933. package/src/infra/hasura-graphql/types/hasura-graphql-auth-options.type.js +2 -0
  934. package/src/infra/hasura-graphql/types/hasura-graphql-auth-options.type.js.map +1 -0
  935. package/src/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +44 -0
  936. package/src/infra/hasura-graphql/types/hasura-graphql-fields.type.js +2 -0
  937. package/src/infra/hasura-graphql/types/hasura-graphql-fields.type.js.map +1 -0
  938. package/src/infra/hasura-graphql/types/hasura-graphql-headers.type.d.ts +7 -0
  939. package/src/infra/hasura-graphql/types/hasura-graphql-headers.type.js +2 -0
  940. package/src/infra/hasura-graphql/types/hasura-graphql-headers.type.js.map +1 -0
  941. package/src/infra/hasura-graphql/types/index.d.ts +8 -0
  942. package/src/infra/hasura-graphql/types/index.js +9 -0
  943. package/src/infra/hasura-graphql/types/index.js.map +1 -0
  944. package/src/infra/hasura-graphql/types/nested-field.type.d.ts +7 -0
  945. package/src/infra/hasura-graphql/types/nested-field.type.js +2 -0
  946. package/src/infra/hasura-graphql/types/nested-field.type.js.map +1 -0
  947. package/src/infra/hasura-graphql/types/query-builder-options.type.d.ts +7 -0
  948. package/src/infra/hasura-graphql/types/query-builder-options.type.js +2 -0
  949. package/src/infra/hasura-graphql/types/query-builder-options.type.js.map +1 -0
  950. package/src/infra/hasura-graphql/types/variable-options.type.d.ts +9 -0
  951. package/src/infra/hasura-graphql/types/variable-options.type.js +2 -0
  952. package/src/infra/hasura-graphql/types/variable-options.type.js.map +1 -0
  953. package/src/infra/index.d.ts +3 -0
  954. package/src/infra/index.js +4 -0
  955. package/src/infra/index.js.map +1 -0
  956. package/src/utils/decorators/debug.class.decorator.d.ts +2 -0
  957. package/src/utils/decorators/debug.class.decorator.js +7 -0
  958. package/src/utils/decorators/debug.class.decorator.js.map +1 -0
  959. package/src/utils/decorators/index.d.ts +2 -0
  960. package/src/utils/decorators/index.js +3 -0
  961. package/src/utils/decorators/index.js.map +1 -0
  962. package/src/utils/decorators/trace.method.decorator.d.ts +14 -0
  963. package/src/utils/decorators/trace.method.decorator.js +81 -0
  964. package/src/utils/decorators/trace.method.decorator.js.map +1 -0
  965. package/src/utils/get.d.ts +1 -0
  966. package/src/utils/get.js +3 -0
  967. package/src/utils/get.js.map +1 -0
  968. package/src/utils/helpers/class-name.helper.d.ts +3 -0
  969. package/src/utils/helpers/class-name.helper.js +15 -0
  970. package/src/utils/helpers/class-name.helper.js.map +1 -0
  971. package/src/utils/helpers/debug-decorator.helper.d.ts +9 -0
  972. package/src/utils/helpers/debug-decorator.helper.js +18 -0
  973. package/src/utils/helpers/debug-decorator.helper.js.map +1 -0
  974. package/src/utils/helpers/debug.helper.d.ts +60 -0
  975. package/src/utils/helpers/debug.helper.js +150 -0
  976. package/src/utils/helpers/debug.helper.js.map +1 -0
  977. package/src/utils/helpers/index.d.ts +4 -0
  978. package/src/utils/helpers/index.js +5 -0
  979. package/src/utils/helpers/index.js.map +1 -0
  980. package/src/utils/helpers/reflect.helper.d.ts +50 -0
  981. package/src/utils/helpers/reflect.helper.js +165 -0
  982. package/src/utils/helpers/reflect.helper.js.map +1 -0
  983. package/src/utils/index.d.ts +13 -0
  984. package/src/utils/index.js +13 -0
  985. package/src/utils/index.js.map +1 -0
  986. package/src/utils/is-uuid.d.ts +1 -0
  987. package/src/utils/is-uuid.js +3 -0
  988. package/src/utils/is-uuid.js.map +1 -0
  989. package/src/utils/is.d.ts +1 -0
  990. package/src/utils/is.js +4 -0
  991. package/src/utils/is.js.map +1 -0
  992. package/src/utils/log.utils.d.ts +7 -0
  993. package/src/utils/log.utils.js +9 -0
  994. package/src/utils/log.utils.js.map +1 -0
  995. package/src/utils/mixins/base.mixin.d.ts +3 -0
  996. package/src/utils/mixins/base.mixin.js +6 -0
  997. package/src/utils/mixins/base.mixin.js.map +1 -0
  998. package/src/utils/mixins/index.d.ts +3 -0
  999. package/src/utils/mixins/index.js +4 -0
  1000. package/src/utils/mixins/index.js.map +1 -0
  1001. package/src/utils/mixins/merge-constructor-params.type.d.ts +3 -0
  1002. package/src/utils/mixins/merge-constructor-params.type.js +2 -0
  1003. package/src/utils/mixins/merge-constructor-params.type.js.map +1 -0
  1004. package/src/utils/mixins/mixin-ctor.type.d.ts +1 -0
  1005. package/src/utils/mixins/mixin-ctor.type.js +2 -0
  1006. package/src/utils/mixins/mixin-ctor.type.js.map +1 -0
  1007. package/src/utils/parse-datetime.d.ts +1 -0
  1008. package/src/utils/parse-datetime.js +14 -0
  1009. package/src/utils/parse-datetime.js.map +1 -0
  1010. package/src/utils/types/array-element.type.d.ts +1 -0
  1011. package/src/utils/types/array-element.type.js +2 -0
  1012. package/src/utils/types/array-element.type.js.map +1 -0
  1013. package/src/utils/types/index.d.ts +2 -0
  1014. package/src/utils/types/index.js +3 -0
  1015. package/src/utils/types/index.js.map +1 -0
  1016. package/src/utils/types/prop.type.d.ts +1 -0
  1017. package/src/utils/types/prop.type.js +2 -0
  1018. package/src/utils/types/prop.type.js.map +1 -0
@@ -0,0 +1,30 @@
1
+ import { CreateRepositoryParams, FindRepositoryParams, GetRepositoryParams, ProductGender, ProductRepository, RepositoryFindResult, ReviewStatusParams, ReviewWithProductData, UpdateRepositoryParams } from '../../../../domain';
2
+ import { HasuraConstructorParams } from '../../mixins';
3
+ import { ProductHasuraGraphQL } from '../../models';
4
+ declare const ProductHasuraGraphQLRepository_base: import("../../../../utils").MixinCtor<import("../../types").GraphQLRepository<ProductHasuraGraphQL> & import("../../../../domain").CrudRepository<ProductHasuraGraphQL, import("../../../../domain").CrudParams<ProductHasuraGraphQL>> & import("../../../../domain").UpdateRepository<ProductHasuraGraphQL, import("../../../../domain").RepositoryUpdateParams<ProductHasuraGraphQL>> & {
5
+ paramsToPlain(params: import("../../../../domain").RepositoryUpdateParams<ProductHasuraGraphQL>): Partial<ProductHasuraGraphQL>;
6
+ }, [HasuraConstructorParams<ProductHasuraGraphQL> & import("../../mixins").CreateConstructorParams & import("../../mixins").DeleteConstructorParams & import("../../mixins").GetConstructorParams & import("../../mixins").UpdateConstructorParams, ...any[]]>;
7
+ export declare class ProductHasuraGraphQLRepository extends ProductHasuraGraphQLRepository_base implements ProductRepository {
8
+ private get reviewsFields();
9
+ constructor({ endpoint, authOptions, interceptors, }: Pick<HasuraConstructorParams<ProductHasuraGraphQL>, 'endpoint' | 'authOptions' | 'interceptors'>);
10
+ create(params: CreateRepositoryParams<ProductHasuraGraphQL>): Promise<ProductHasuraGraphQL>;
11
+ get(identifiers: GetRepositoryParams<ProductHasuraGraphQL>): Promise<ProductHasuraGraphQL>;
12
+ find(params?: FindRepositoryParams<ProductHasuraGraphQL>): Promise<RepositoryFindResult<ProductHasuraGraphQL>>;
13
+ getBySlug(slug: string): Promise<ProductHasuraGraphQL>;
14
+ update(params: UpdateRepositoryParams<ProductHasuraGraphQL>): Promise<ProductHasuraGraphQL>;
15
+ fetchReviews(status: ReviewStatusParams): Promise<ReviewWithProductData[]>;
16
+ findCatalog(params: FindRepositoryParams<ProductHasuraGraphQL>, mainGender?: Extract<ProductGender, 'female' | 'male'>): Promise<RepositoryFindResult<ProductHasuraGraphQL>>;
17
+ private updateCategories;
18
+ private updateKitProducts;
19
+ private updateReviews;
20
+ private updateMetadata;
21
+ private getId;
22
+ private findReviewsByProduct;
23
+ private findReview;
24
+ private getReviewByPersonId;
25
+ private getReviewByAuthorAndEmail;
26
+ private bindReviewToModel;
27
+ private bindReviewToHasura;
28
+ cleanShoppingCountFromIds(ids: string[]): Promise<void>;
29
+ }
30
+ export {};
@@ -0,0 +1,461 @@
1
+ import { __rest } from "tslib";
2
+ import { RoundProductPricesHelper, Where, } from '../../../../domain';
3
+ import { NotFoundError } from '../../../../errors';
4
+ import { Base, is, isNil, omit } from '../../../../utils';
5
+ import { HasuraGraphQLColumnType, HasuraGraphQLWhere } from '../../enums';
6
+ import { withCrudHasuraGraphQL, withHasuraGraphQL } from '../../mixins';
7
+ import { ProductHasuraGraphQL } from '../../models';
8
+ export class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
9
+ constructor({ endpoint, authOptions, interceptors, }) {
10
+ super({
11
+ tableName: 'product',
12
+ model: ProductHasuraGraphQL,
13
+ endpoint,
14
+ authOptions,
15
+ interceptors,
16
+ fields: [],
17
+ });
18
+ this.bindReviewToModel = (plain) => (Object.assign(Object.assign({}, is(omit(plain, ['product_id', 'created_at', 'updated_at', 'person_id', 'order_id']))), { createdAt: typeof plain.created_at === 'string' ? new Date(plain.created_at) : plain.created_at, updatedAt: typeof plain.updated_at === 'string' ? new Date(plain.updated_at) : plain.updated_at, personId: plain.person_id, orderId: plain.order_id }));
19
+ this.bindReviewToHasura = (review) => (Object.assign(Object.assign({}, is(omit(review, ['productId', 'createdAt', 'updatedAt', 'personId', 'orderId']))), { person_id: review.personId, order_id: review.orderId }));
20
+ const commonFields = [
21
+ { id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },
22
+ { firestoreId: { columnName: 'firestore_id' } },
23
+ { productId: { columnName: 'main_product_id' } },
24
+ { CEST: { columnName: 'cest' } },
25
+ { EAN: { columnName: 'ean' } },
26
+ { NCM: { columnName: 'ncm' } },
27
+ 'brand',
28
+ { costPrice: { columnName: 'cost_price' } },
29
+ {
30
+ description: {
31
+ columnName: 'description',
32
+ from: (description, data) => ({
33
+ description,
34
+ differentials: data.differentials,
35
+ whoMustUse: data.who_must_use,
36
+ howToUse: data.how_to_use,
37
+ brand: data.brand_description,
38
+ ingredients: data.ingredients,
39
+ }),
40
+ bindFindFilter: (filters) => {
41
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, ((filters === null || filters === void 0 ? void 0 : filters.description) && { description: filters.description })), (filters.differentials && { differentials: filters.differentials })), (filters.whoMustUse && {
42
+ who_must_use: filters.whoMustUse,
43
+ })), (filters.howToUse && {
44
+ how_to_use: filters.howToUse,
45
+ })), (filters.brand && {
46
+ brand_description: filters.brand,
47
+ })), (filters.ingredients && {
48
+ ingredients: filters.ingredients,
49
+ }));
50
+ },
51
+ bindPersistData: (descriptionData) => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, ((descriptionData === null || descriptionData === void 0 ? void 0 : descriptionData.description) && { description: descriptionData.description })), (descriptionData.differentials && { differentials: descriptionData.differentials })), (descriptionData.whoMustUse && {
52
+ who_must_use: descriptionData.whoMustUse,
53
+ })), (descriptionData.howToUse && { how_to_use: descriptionData.howToUse })), (descriptionData.brand && { brand_description: descriptionData.brand })), (descriptionData.ingredients && { ingredients: descriptionData.ingredients }))),
54
+ },
55
+ },
56
+ { differentials: { columnName: 'differentials' } },
57
+ { whoMustUse: { columnName: 'who_must_use' } },
58
+ { howToUse: { columnName: 'how_to_use' } },
59
+ { brandDescription: { columnName: 'brand_description' } },
60
+ { ingredients: { columnName: 'ingredients' } },
61
+ { hasVariants: { columnName: 'has_variants' } },
62
+ {
63
+ images: {
64
+ columnName: 'images',
65
+ to: (value) => { var _a; return ((value === null || value === void 0 ? void 0 : value.length) > 0 ? `{"${((_a = value === null || value === void 0 ? void 0 : value.join) === null || _a === void 0 ? void 0 : _a.call(value, `","`)) || ''}"}` : `{}`); },
66
+ },
67
+ },
68
+ {
69
+ miniatures: {
70
+ columnName: 'miniatures',
71
+ to: (value) => { var _a; return ((value === null || value === void 0 ? void 0 : value.length) > 0 ? `{"${((_a = value === null || value === void 0 ? void 0 : value.join) === null || _a === void 0 ? void 0 : _a.call(value, `","`)) || ''}"}` : `{}`); },
72
+ },
73
+ },
74
+ 'name',
75
+ {
76
+ price: {
77
+ columnName: 'price',
78
+ from: (price, data) => ({
79
+ price,
80
+ fullPrice: data.full_price,
81
+ subscriberDiscountPercentage: data.subscriber_discount_percentage,
82
+ subscriberPrice: data.subscriber_price,
83
+ }),
84
+ bindFindFilter: (filters) => {
85
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, (((filters === null || filters === void 0 ? void 0 : filters.price) || (filters === null || filters === void 0 ? void 0 : filters.price) === 0) && { price: filters.price })), ((filters.fullPrice || filters.fullPrice === 0) && { full_price: filters.fullPrice })), ((filters.subscriberDiscountPercentage || filters.subscriberDiscountPercentage === 0) && {
86
+ subscriber_discount_percentage: filters.subscriberDiscountPercentage,
87
+ })), ((filters.subscriberPrice || filters.subscriberPrice === 0) && {
88
+ subscriber_price: filters.subscriberPrice,
89
+ }));
90
+ },
91
+ bindPersistData: (priceData) => (Object.assign(Object.assign(Object.assign(Object.assign({}, ((priceData === null || priceData === void 0 ? void 0 : priceData.price) >= 0 && { price: priceData.price })), (priceData.fullPrice >= 0 && { full_price: priceData.fullPrice })), (priceData.subscriberDiscountPercentage >= 0 && {
92
+ subscriber_discount_percentage: priceData.subscriberDiscountPercentage,
93
+ })), (priceData.subscriberPrice >= 0 && { subscriber_price: priceData.subscriberPrice }))),
94
+ },
95
+ },
96
+ { fullPrice: { columnName: 'full_price' } },
97
+ { subscriberDiscountPercentage: { columnName: 'subscriber_discount_percentage' } },
98
+ { subscriberPrice: { columnName: 'subscriber_price' } },
99
+ 'published',
100
+ 'sku',
101
+ {
102
+ stock: {
103
+ columnName: 'stock',
104
+ from: (quantity) => ({ quantity }),
105
+ to: (value) => (isNil(value === null || value === void 0 ? void 0 : value.quantity) ? value : value === null || value === void 0 ? void 0 : value.quantity),
106
+ },
107
+ },
108
+ { hasStock: { columnName: 'has_stock' } },
109
+ 'slug',
110
+ 'type',
111
+ 'video',
112
+ 'weight',
113
+ 'gender',
114
+ { intGender: { columnName: 'int_gender' } },
115
+ { tags: { columnName: 'tags', type: HasuraGraphQLColumnType.Jsonb } },
116
+ { filters: { columnName: 'filters', type: HasuraGraphQLColumnType.Jsonb } },
117
+ { isKit: { columnName: 'is_kit' } },
118
+ { createdAt: { columnName: 'created_at' } },
119
+ { updatedAt: { columnName: 'updated_at' } },
120
+ { rate: { columnName: 'rating' } },
121
+ { reviewsTotal: { columnName: 'reviews_total' } },
122
+ { shoppingCount: { columnName: 'shopping_count' } },
123
+ { categoryId: { columnName: 'category_id' } },
124
+ {
125
+ category: {
126
+ columnName: 'category',
127
+ foreignKeyColumn: { id: 'categoryId' },
128
+ fields: ['id', 'name', 'reference', 'slug'],
129
+ },
130
+ },
131
+ ];
132
+ this.fields = [
133
+ ...commonFields,
134
+ {
135
+ categories: {
136
+ columnName: 'categories',
137
+ fields: ['category_id'],
138
+ bindPersistData: (value) => ({
139
+ categories: { data: value.map((category) => ({ category_id: +category })) },
140
+ }),
141
+ to: (categories) => categories.map((categoryId) => +categoryId),
142
+ from: (categories) => (categories === null || categories === void 0 ? void 0 : categories.map((category) => { var _a; return (_a = category === null || category === void 0 ? void 0 : category.category_id) === null || _a === void 0 ? void 0 : _a.toString(); })) || [],
143
+ },
144
+ },
145
+ {
146
+ kitProducts: {
147
+ columnName: 'kit_products',
148
+ foreignKeyColumn: { productId: 'id' },
149
+ fields: [
150
+ { productId: { columnName: 'product_id' } },
151
+ { kitProductId: { columnName: 'kit_product_id' } },
152
+ 'quantity',
153
+ { product: { columnName: 'product', foreignKeyColumn: { id: 'product_id' }, fields: commonFields } },
154
+ ],
155
+ },
156
+ },
157
+ {
158
+ reviews: {
159
+ columnName: 'reviews',
160
+ foreignKeyColumn: { product_id: 'id' },
161
+ fields: this.reviewsFields,
162
+ },
163
+ },
164
+ {
165
+ metadata: {
166
+ columnName: 'metadata',
167
+ fields: ['title', 'description'],
168
+ bindPersistData: (value) => ({
169
+ metadata: { data: value },
170
+ }),
171
+ },
172
+ },
173
+ ];
174
+ }
175
+ get reviewsFields() {
176
+ return [
177
+ 'id',
178
+ 'shop',
179
+ 'rate',
180
+ 'author',
181
+ 'email',
182
+ 'location',
183
+ 'review',
184
+ 'status',
185
+ 'title',
186
+ { personId: { columnName: 'person_id' } },
187
+ 'points',
188
+ { orderId: { columnName: 'order_id' } },
189
+ { createdAt: { columnName: 'created_at' } },
190
+ { updatedAt: { columnName: 'updated_at' } },
191
+ ];
192
+ }
193
+ async create(params) {
194
+ const { metadata } = params, data = __rest(params, ["metadata"]);
195
+ const product = await super.create(omit(Object.assign(Object.assign({}, data), { metadata: metadata || { description: null, title: null } }), ['reviews']));
196
+ try {
197
+ product.reviews = data.reviews && (await this.updateReviews(+product.id, data));
198
+ }
199
+ catch (error) {
200
+ await this.delete({ id: product.id });
201
+ throw error;
202
+ }
203
+ return product;
204
+ }
205
+ async get(identifiers) {
206
+ var _a;
207
+ const product = Number.isNaN(+identifiers.id)
208
+ ? (_a = (await this.find({ filters: { firestoreId: identifiers.id }, options: { enableCount: false } })).data) === null || _a === void 0 ? void 0 : _a[0]
209
+ : await super.get(identifiers);
210
+ if (product.productId)
211
+ throw new NotFoundError('Product not found, it is a variant');
212
+ product.reviews = product.reviews || (await this.findReviewsByProduct(+product.id));
213
+ return product;
214
+ }
215
+ async find(params) {
216
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
217
+ const _o = params || {}, { filters, fields } = _o, options = __rest(_o, ["filters", "fields"]);
218
+ const bindFields = fields ||
219
+ this.fields
220
+ .map((field) => (typeof field === 'string' ? field : Object.keys(field).shift()))
221
+ .filter((field) => field !== 'reviews');
222
+ if ((_b = (_a = options.options) === null || _a === void 0 ? void 0 : _a.minimal) === null || _b === void 0 ? void 0 : _b.includes('price'))
223
+ (_c = options.options) === null || _c === void 0 ? void 0 : _c.minimal.push('price.price', 'price.fullPrice', 'price.subscriberPrice');
224
+ if ((_e = (_d = options.options) === null || _d === void 0 ? void 0 : _d.maximum) === null || _e === void 0 ? void 0 : _e.includes('price'))
225
+ (_f = options.options) === null || _f === void 0 ? void 0 : _f.maximum.push('price.price', 'price.fullPrice', 'price.subscriberPrice');
226
+ (_h = (_g = options.options) === null || _g === void 0 ? void 0 : _g.minimal) === null || _h === void 0 ? void 0 : _h.splice((_j = options.options) === null || _j === void 0 ? void 0 : _j.minimal.indexOf('price'), 1);
227
+ (_l = (_k = options.options) === null || _k === void 0 ? void 0 : _k.maximum) === null || _l === void 0 ? void 0 : _l.splice((_m = options.options) === null || _m === void 0 ? void 0 : _m.maximum.indexOf('price'), 1);
228
+ return super.find(Object.assign(Object.assign({}, options), { filters: Object.assign(Object.assign({}, filters), { productId: { operator: Where.ISNULL } }), fields: [
229
+ ...bindFields,
230
+ ...(bindFields.includes('price')
231
+ ? [
232
+ 'subscriberPrice',
233
+ 'subscriberDiscountPercentage',
234
+ 'fullPrice',
235
+ ]
236
+ : []),
237
+ ] }));
238
+ }
239
+ async getBySlug(slug) {
240
+ var _a;
241
+ const result = await this.find({
242
+ filters: {
243
+ slug,
244
+ },
245
+ fields: this.fields.map((field) => typeof field === 'string' ? field : Object.keys(field).shift()),
246
+ options: {
247
+ enableCount: false,
248
+ },
249
+ });
250
+ const product = (_a = result === null || result === void 0 ? void 0 : result.data) === null || _a === void 0 ? void 0 : _a.shift();
251
+ RoundProductPricesHelper.roundProductPrices(product);
252
+ return product;
253
+ }
254
+ async update(params) {
255
+ const { categories, kitProducts, reviews, id: checkId, rate, metadata } = params, data = __rest(params, ["categories", "kitProducts", "reviews", "id", "rate", "metadata"]);
256
+ const plainData = this.paramsToPlain({ id: checkId });
257
+ const id = await this.getId(plainData.id);
258
+ const product = await super.update(Object.assign({ id }, data));
259
+ product.categories = categories && (await this.updateCategories(+id, { categories }));
260
+ product.kitProducts = kitProducts && (await this.updateKitProducts(+id, { kitProducts }));
261
+ product.reviews = reviews && (await this.updateReviews(+id, { reviews }));
262
+ product.metadata = metadata && (await this.updateMetadata(+id, { metadata }));
263
+ return product;
264
+ }
265
+ async fetchReviews(status) {
266
+ const reviewsExpression = {
267
+ status: status === 'pending'
268
+ ? { [HasuraGraphQLWhere.ISNULL]: true }
269
+ : { [HasuraGraphQLWhere.EQUALS]: status === 'approved' },
270
+ };
271
+ const { product: data } = await this.query('product', ['id', 'name', 'sku', { reviews: { columnName: 'reviews', fields: this.reviewsFields } }], {
272
+ where: { value: { reviews: reviewsExpression }, type: 'product_bool_exp', required: true },
273
+ });
274
+ return data.reduce((reviews, product) => [
275
+ ...reviews,
276
+ ...product.reviews
277
+ .filter((review) => (status === 'pending' && [undefined, null].includes(review.status)) ||
278
+ (status === 'approved' && review.status === true) ||
279
+ (status === 'rejected' && review.status === false))
280
+ .map((review) => (Object.assign(Object.assign({}, this.bindReviewToModel(review)), { productId: product.id, productName: product.name, productSku: product.sku }))),
281
+ ], []);
282
+ }
283
+ async findCatalog(params, mainGender) {
284
+ return this.find(Object.assign(Object.assign({}, params), { filters: Object.assign(Object.assign({}, params.filters), { published: true }), orderBy: Object.assign(Object.assign({ hasStock: 'desc' }, (!mainGender ? {} : { intGender: mainGender === 'female' ? 'desc' : 'asc' })), omit(params.orderBy, ['hasStock', 'intGender'])) }));
285
+ }
286
+ async updateCategories(productId, { categories }) {
287
+ if ('action' in categories && categories.action === 'remove') {
288
+ await this.mutation('delete_category_product', ['affected_rows'], {
289
+ where: {
290
+ type: 'category_product_bool_exp',
291
+ required: true,
292
+ value: { product_id: { _eq: productId } },
293
+ },
294
+ });
295
+ return [];
296
+ }
297
+ const plainData = this.paramsToPlain({ categories });
298
+ if (!plainData.categories || plainData.categories.length <= 0)
299
+ return [];
300
+ await this.mutation('delete_category_product', ['affected_rows'], {
301
+ where: {
302
+ type: 'category_product_bool_exp',
303
+ required: true,
304
+ value: { product_id: { _eq: productId } },
305
+ },
306
+ });
307
+ await this.mutation('insert_category_product', ['affected_rows'], {
308
+ objects: {
309
+ type: '[category_product_insert_input!]',
310
+ required: true,
311
+ value: plainData.categories.map((categoryId) => ({ category_id: categoryId, product_id: productId })),
312
+ },
313
+ });
314
+ return plainData.categories;
315
+ }
316
+ async updateKitProducts(productId, { kitProducts }) {
317
+ const plainData = this.paramsToPlain({ kitProducts });
318
+ await this.mutation('delete_product_kit', ['affected_rows'], {
319
+ where: {
320
+ type: 'product_kit_bool_exp',
321
+ required: true,
322
+ value: { kit_product_id: { _eq: productId } },
323
+ },
324
+ });
325
+ await this.mutation('insert_product_kit', ['affected_rows'], {
326
+ objects: {
327
+ type: '[product_kit_insert_input!]',
328
+ required: true,
329
+ value: plainData.kitProducts.map((kitProduct) => ({
330
+ kit_product_id: productId,
331
+ product_id: kitProduct.productId || kitProduct.product.id,
332
+ quantity: kitProduct.quantity,
333
+ })),
334
+ },
335
+ });
336
+ return plainData.kitProducts;
337
+ }
338
+ async updateReviews(productId, { reviews }) {
339
+ if (!reviews)
340
+ return [];
341
+ if ('action' in reviews && reviews.action === 'remove') {
342
+ const reviewIds = await Promise.all(reviews.value.map(async (reviewData) => {
343
+ const review = await this.findReview(reviewData, productId);
344
+ return review === null || review === void 0 ? void 0 : review.id;
345
+ }));
346
+ await this.mutation('delete_product_review', ['affected_rows'], {
347
+ where: { value: { id: { _in: reviewIds.filter(Boolean) } }, type: 'product_review_bool_exp', required: true },
348
+ });
349
+ return reviews.value.map((review, index) => !reviewIds[index] && review).filter(Boolean);
350
+ }
351
+ const plainData = this.paramsToPlain({ reviews });
352
+ if (!plainData.reviews || plainData.reviews.length <= 0)
353
+ return [];
354
+ return Promise.all(plainData.reviews.map(async (reviewData) => {
355
+ const review = await this.findReview(reviewData, productId);
356
+ if (review.id)
357
+ return this.bindReviewToModel((await this.mutation('update_product_review_by_pk', this.reviewsFields, {
358
+ pk_columns: {
359
+ value: { id: review.id },
360
+ type: 'product_review_pk_columns_input',
361
+ required: true,
362
+ },
363
+ _set: {
364
+ value: omit(this.bindReviewToHasura(reviewData), ['id', 'product_id']),
365
+ type: 'product_review_set_input',
366
+ required: true,
367
+ },
368
+ })).update_product_review_by_pk);
369
+ return this.bindReviewToModel((await this.mutation('insert_product_review_one', this.reviewsFields, {
370
+ object: {
371
+ value: omit(Object.assign(Object.assign({}, this.bindReviewToHasura(reviewData)), { product_id: productId }), ['id']),
372
+ type: 'product_review_insert_input',
373
+ required: true,
374
+ },
375
+ })).insert_product_review_one);
376
+ }));
377
+ }
378
+ async updateMetadata(productId, { metadata }) {
379
+ const plainData = this.paramsToPlain({ metadata });
380
+ if (!plainData.metadata)
381
+ return null;
382
+ await this.mutation('update_product_metadata_by_pk', ['product_id'], {
383
+ pk_columns: {
384
+ value: { product_id: productId },
385
+ type: 'product_metadata_pk_columns_input',
386
+ required: true,
387
+ },
388
+ _set: {
389
+ value: omit(metadata, ['product_id']),
390
+ type: 'product_metadata_set_input',
391
+ required: true,
392
+ },
393
+ });
394
+ return plainData.metadata;
395
+ }
396
+ async getId(id) {
397
+ var _a, _b;
398
+ if (!Number.isNaN(+id))
399
+ return id;
400
+ const { data } = await this.find({ filters: { firestoreId: id }, options: { enableCount: false } });
401
+ if ((_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.id)
402
+ return (_b = data === null || data === void 0 ? void 0 : data[0]) === null || _b === void 0 ? void 0 : _b.id;
403
+ throw new NotFoundError(`Product with id ${id} not found`);
404
+ }
405
+ async findReviewsByProduct(productId) {
406
+ const { product_review: data } = await this.query('product_review', this.reviewsFields, {
407
+ where: {
408
+ value: {
409
+ product_id: { _eq: productId },
410
+ },
411
+ type: 'product_review_bool_exp',
412
+ required: true,
413
+ },
414
+ });
415
+ return data && data.map((review) => this.bindReviewToModel(review));
416
+ }
417
+ async findReview(review, productId) {
418
+ if (review.id)
419
+ return review;
420
+ let loadedReview;
421
+ if (review.personId)
422
+ loadedReview = await this.getReviewByPersonId(review.personId, productId, review.orderId);
423
+ if (!loadedReview && review.author && review.email)
424
+ loadedReview = await this.getReviewByAuthorAndEmail(review.author, review.email, productId, review.orderId);
425
+ return loadedReview || review;
426
+ }
427
+ async getReviewByPersonId(personId, productId, orderId) {
428
+ const { product_review: data } = await this.query('product_review', this.reviewsFields, {
429
+ where: {
430
+ value: Object.assign({ product_id: { _eq: productId }, person_id: { _eq: personId } }, (orderId && { order_id: { _eq: orderId } })),
431
+ type: `product_review_bool_exp`,
432
+ required: true,
433
+ },
434
+ });
435
+ return data && data[0] && this.bindReviewToModel(data[0]);
436
+ }
437
+ async getReviewByAuthorAndEmail(author, email, productId, orderId) {
438
+ const { product_review: data } = await this.query('product_review', this.reviewsFields, {
439
+ where: {
440
+ value: Object.assign({ product_id: { _eq: productId }, author: { _eq: author }, email: { _eq: email } }, (orderId && { order_id: { _eq: orderId } })),
441
+ type: `product_review_bool_exp`,
442
+ required: true,
443
+ },
444
+ });
445
+ return data && data[0] && this.bindReviewToModel(data[0]);
446
+ }
447
+ async cleanShoppingCountFromIds(ids) {
448
+ return await this.mutation('update_product', ['affected_rows'], {
449
+ where: {
450
+ value: { id: { _nin: ids } },
451
+ type: 'product_bool_exp',
452
+ required: true,
453
+ },
454
+ _set: {
455
+ value: { shopping_count: 0 },
456
+ type: 'product_set_input',
457
+ },
458
+ });
459
+ }
460
+ }
461
+ //# sourceMappingURL=product-hasura-graphql.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-hasura-graphql.repository.js","sourceRoot":"","sources":["../../../../../../../projects/connect/src/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n CreateRepositoryParams,\r\n FindRepositoryParams,\r\n GetRepositoryParams,\r\n NonFunctionPropertyNames,\r\n ProductGender,\r\n ProductMetadata,\r\n ProductRepository,\r\n ProductReview,\r\n RepositoryFindResult,\r\n ReviewStatusParams,\r\n ReviewWithProductData,\r\n RoundProductPricesHelper,\r\n ShopPrice,\r\n Shops,\r\n UpdateRepositoryParams,\r\n Where,\r\n} from '../../../../domain'\r\nimport { NotFoundError } from '../../../../errors'\r\nimport { Base, is, isNil, omit } from '../../../../utils'\r\nimport { HasuraGraphQLColumnType, HasuraGraphQLWhere } from '../../enums'\r\nimport { HasuraConstructorParams, withCrudHasuraGraphQL, withHasuraGraphQL } from '../../mixins'\r\nimport { ProductHasuraGraphQL } from '../../models'\r\nimport { HasuraGraphQLFields } from '../../types'\r\n\r\ntype ProductReviewFields = {\r\n id?: string\r\n shop: Shops\r\n rate: number\r\n author?: string\r\n email?: string\r\n location?: string\r\n review?: string\r\n status?: boolean\r\n title?: string\r\n person_id?: number\r\n points?: number\r\n order_id?: string\r\n created_at?: Date\r\n updated_at?: Date\r\n}\r\n\r\nexport class ProductHasuraGraphQLRepository\r\n extends withCrudHasuraGraphQL(withHasuraGraphQL<ProductHasuraGraphQL>(Base))\r\n implements ProductRepository\r\n{\r\n private get reviewsFields(): any {\r\n return [\r\n 'id',\r\n 'shop',\r\n 'rate',\r\n 'author',\r\n 'email',\r\n 'location',\r\n 'review',\r\n 'status',\r\n 'title',\r\n { personId: { columnName: 'person_id' } },\r\n 'points',\r\n { orderId: { columnName: 'order_id' } },\r\n { createdAt: { columnName: 'created_at' } },\r\n { updatedAt: { columnName: 'updated_at' } },\r\n ]\r\n }\r\n\r\n constructor({\r\n endpoint,\r\n authOptions,\r\n interceptors,\r\n }: Pick<HasuraConstructorParams<ProductHasuraGraphQL>, 'endpoint' | 'authOptions' | 'interceptors'>) {\r\n super({\r\n tableName: 'product',\r\n model: ProductHasuraGraphQL,\r\n endpoint,\r\n authOptions,\r\n interceptors,\r\n fields: [],\r\n })\r\n\r\n const commonFields: HasuraGraphQLFields<ProductHasuraGraphQL> = [\r\n { id: { columnName: 'id', to: (value: string) => +value, from: (value) => value.toString() } },\r\n { firestoreId: { columnName: 'firestore_id' } },\r\n { productId: { columnName: 'main_product_id' } },\r\n { CEST: { columnName: 'cest' } },\r\n { EAN: { columnName: 'ean' } },\r\n { NCM: { columnName: 'ncm' } },\r\n 'brand',\r\n { costPrice: { columnName: 'cost_price' } },\r\n {\r\n description: {\r\n columnName: 'description',\r\n from: (description, data) => ({\r\n description,\r\n differentials: data.differentials,\r\n whoMustUse: data.who_must_use,\r\n howToUse: data.how_to_use,\r\n brand: data.brand_description,\r\n ingredients: data.ingredients,\r\n }),\r\n bindFindFilter: (filters: any) => {\r\n return {\r\n ...(filters?.description && { description: filters.description }),\r\n ...(filters.differentials && { differentials: filters.differentials }),\r\n ...(filters.whoMustUse && {\r\n who_must_use: filters.whoMustUse,\r\n }),\r\n ...(filters.howToUse && {\r\n how_to_use: filters.howToUse,\r\n }),\r\n ...(filters.brand && {\r\n brand_description: filters.brand,\r\n }),\r\n ...(filters.ingredients && {\r\n ingredients: filters.ingredients,\r\n }),\r\n }\r\n },\r\n bindPersistData: (descriptionData: ProductHasuraGraphQL['description']) => ({\r\n ...(descriptionData?.description && { description: descriptionData.description }),\r\n ...(descriptionData.differentials && { differentials: descriptionData.differentials }),\r\n ...(descriptionData.whoMustUse && {\r\n who_must_use: descriptionData.whoMustUse,\r\n }),\r\n ...(descriptionData.howToUse && { how_to_use: descriptionData.howToUse }),\r\n ...(descriptionData.brand && { brand_description: descriptionData.brand }),\r\n ...(descriptionData.ingredients && { ingredients: descriptionData.ingredients }),\r\n }),\r\n },\r\n },\r\n { differentials: { columnName: 'differentials' } },\r\n { whoMustUse: { columnName: 'who_must_use' } },\r\n { howToUse: { columnName: 'how_to_use' } },\r\n { brandDescription: { columnName: 'brand_description' } },\r\n { ingredients: { columnName: 'ingredients' } },\r\n { hasVariants: { columnName: 'has_variants' } },\r\n {\r\n images: {\r\n columnName: 'images',\r\n to: (value: string[]) => (value?.length > 0 ? `{\"${value?.join?.(`\",\"`) || ''}\"}` : `{}`),\r\n },\r\n },\r\n {\r\n miniatures: {\r\n columnName: 'miniatures',\r\n to: (value: string[]) => (value?.length > 0 ? `{\"${value?.join?.(`\",\"`) || ''}\"}` : `{}`),\r\n },\r\n },\r\n 'name',\r\n {\r\n price: {\r\n columnName: 'price',\r\n from: (price, data): ShopPrice => ({\r\n price,\r\n fullPrice: data.full_price,\r\n subscriberDiscountPercentage: data.subscriber_discount_percentage,\r\n subscriberPrice: data.subscriber_price,\r\n }),\r\n bindFindFilter: (filters: any) => {\r\n return {\r\n ...((filters?.price || filters?.price === 0) && { price: filters.price }),\r\n ...((filters.fullPrice || filters.fullPrice === 0) && { full_price: filters.fullPrice }),\r\n ...((filters.subscriberDiscountPercentage || filters.subscriberDiscountPercentage === 0) && {\r\n subscriber_discount_percentage: filters.subscriberDiscountPercentage,\r\n }),\r\n ...((filters.subscriberPrice || filters.subscriberPrice === 0) && {\r\n subscriber_price: filters.subscriberPrice,\r\n }),\r\n }\r\n },\r\n bindPersistData: (priceData: ProductHasuraGraphQL['price']) => ({\r\n ...(priceData?.price >= 0 && { price: priceData.price }),\r\n ...(priceData.fullPrice >= 0 && { full_price: priceData.fullPrice }),\r\n ...(priceData.subscriberDiscountPercentage >= 0 && {\r\n subscriber_discount_percentage: priceData.subscriberDiscountPercentage,\r\n }),\r\n ...(priceData.subscriberPrice >= 0 && { subscriber_price: priceData.subscriberPrice }),\r\n }),\r\n },\r\n },\r\n { fullPrice: { columnName: 'full_price' } },\r\n { subscriberDiscountPercentage: { columnName: 'subscriber_discount_percentage' } },\r\n { subscriberPrice: { columnName: 'subscriber_price' } },\r\n 'published',\r\n 'sku',\r\n {\r\n stock: {\r\n columnName: 'stock',\r\n from: (quantity: number) => ({ quantity }),\r\n to: (value: ProductHasuraGraphQL['stock']) => (isNil(value?.quantity) ? value : value?.quantity),\r\n },\r\n },\r\n { hasStock: { columnName: 'has_stock' } },\r\n 'slug',\r\n 'type',\r\n 'video',\r\n 'weight',\r\n 'gender',\r\n { intGender: { columnName: 'int_gender' } },\r\n { tags: { columnName: 'tags', type: HasuraGraphQLColumnType.Jsonb } },\r\n { filters: { columnName: 'filters', type: HasuraGraphQLColumnType.Jsonb } },\r\n { isKit: { columnName: 'is_kit' } },\r\n { createdAt: { columnName: 'created_at' } },\r\n { updatedAt: { columnName: 'updated_at' } },\r\n { rate: { columnName: 'rating' } },\r\n { reviewsTotal: { columnName: 'reviews_total' } },\r\n { shoppingCount: { columnName: 'shopping_count' } },\r\n { categoryId: { columnName: 'category_id' } },\r\n {\r\n category: {\r\n columnName: 'category',\r\n foreignKeyColumn: { id: 'categoryId' },\r\n fields: ['id', 'name', 'reference', 'slug'],\r\n },\r\n },\r\n ]\r\n\r\n this.fields = [\r\n ...commonFields,\r\n {\r\n categories: {\r\n columnName: 'categories',\r\n fields: ['category_id'],\r\n bindPersistData: (value: ProductHasuraGraphQL['categories']) => ({\r\n categories: { data: value.map((category) => ({ category_id: +category })) },\r\n }),\r\n to: (categories: string[]) => categories.map((categoryId) => +categoryId),\r\n from: (categories: { category_id: number }[]) =>\r\n categories?.map((category) => category?.category_id?.toString()) || [],\r\n },\r\n },\r\n {\r\n kitProducts: {\r\n columnName: 'kit_products',\r\n foreignKeyColumn: { productId: 'id' },\r\n fields: [\r\n { productId: { columnName: 'product_id' } },\r\n { kitProductId: { columnName: 'kit_product_id' } },\r\n 'quantity',\r\n { product: { columnName: 'product', foreignKeyColumn: { id: 'product_id' }, fields: commonFields } },\r\n ],\r\n },\r\n },\r\n {\r\n reviews: {\r\n columnName: 'reviews',\r\n foreignKeyColumn: { product_id: 'id' },\r\n fields: this.reviewsFields,\r\n },\r\n },\r\n {\r\n metadata: {\r\n columnName: 'metadata',\r\n fields: ['title', 'description'],\r\n bindPersistData: (value: ProductHasuraGraphQL['metadata']) => ({\r\n metadata: { data: value },\r\n }),\r\n },\r\n },\r\n ]\r\n }\r\n\r\n override async create(params: CreateRepositoryParams<ProductHasuraGraphQL>): Promise<ProductHasuraGraphQL> {\r\n const { metadata, ...data } = params\r\n const product = await super.create(\r\n omit({ ...data, metadata: metadata || { description: null, title: null } }, ['reviews']),\r\n )\r\n\r\n try {\r\n product.reviews = data.reviews && (await this.updateReviews(+product.id, data))\r\n } catch (error) {\r\n await this.delete({ id: product.id })\r\n\r\n throw error\r\n }\r\n\r\n return product\r\n }\r\n\r\n override async get(identifiers: GetRepositoryParams<ProductHasuraGraphQL>): Promise<ProductHasuraGraphQL> {\r\n const product = Number.isNaN(+identifiers.id)\r\n ? (await this.find({ filters: { firestoreId: identifiers.id }, options: { enableCount: false } })).data?.[0]\r\n : await super.get(identifiers)\r\n\r\n if (product.productId) throw new NotFoundError('Product not found, it is a variant')\r\n\r\n product.reviews = product.reviews || (await this.findReviewsByProduct(+product.id))\r\n\r\n return product\r\n }\r\n\r\n override async find(\r\n params?: FindRepositoryParams<ProductHasuraGraphQL>,\r\n ): Promise<RepositoryFindResult<ProductHasuraGraphQL>> {\r\n const { filters, fields, ...options } = params || {}\r\n const bindFields =\r\n fields ||\r\n (this.fields\r\n .map((field) => (typeof field === 'string' ? field : Object.keys(field).shift()))\r\n .filter((field) => field !== 'reviews') as NonFunctionPropertyNames<\r\n ProductHasuraGraphQL,\r\n keyof ProductHasuraGraphQL\r\n >[])\r\n\r\n if (options.options?.minimal?.includes('price'))\r\n options.options?.minimal.push('price.price', 'price.fullPrice', 'price.subscriberPrice')\r\n if (options.options?.maximum?.includes('price'))\r\n options.options?.maximum.push('price.price', 'price.fullPrice', 'price.subscriberPrice')\r\n\r\n options.options?.minimal?.splice(options.options?.minimal.indexOf('price'), 1)\r\n options.options?.maximum?.splice(options.options?.maximum.indexOf('price'), 1)\r\n\r\n return super.find({\r\n ...options,\r\n filters: { ...filters, productId: { operator: Where.ISNULL } },\r\n fields: [\r\n ...bindFields,\r\n ...(bindFields.includes('price')\r\n ? ([\r\n 'subscriberPrice',\r\n 'subscriberDiscountPercentage',\r\n 'fullPrice',\r\n ] as NonFunctionPropertyNames<ProductHasuraGraphQL>[])\r\n : []),\r\n ],\r\n })\r\n }\r\n\r\n async getBySlug(slug: string): Promise<ProductHasuraGraphQL> {\r\n const result = await this.find({\r\n filters: {\r\n slug,\r\n },\r\n fields: this.fields.map((field) =>\r\n typeof field === 'string' ? field : Object.keys(field).shift(),\r\n ) as NonFunctionPropertyNames<ProductHasuraGraphQL, keyof ProductHasuraGraphQL>[],\r\n options: {\r\n enableCount: false,\r\n },\r\n })\r\n\r\n const product = result?.data?.shift()\r\n\r\n RoundProductPricesHelper.roundProductPrices(product)\r\n\r\n return product\r\n }\r\n\r\n override async update(params: UpdateRepositoryParams<ProductHasuraGraphQL>): Promise<ProductHasuraGraphQL> {\r\n const { categories, kitProducts, reviews, id: checkId, rate, metadata, ...data } = params\r\n const plainData = this.paramsToPlain({ id: checkId })\r\n const id = await this.getId(plainData.id)\r\n const product = await super.update({ id, ...data })\r\n\r\n product.categories = categories && (await this.updateCategories(+id, { categories }))\r\n product.kitProducts = kitProducts && (await this.updateKitProducts(+id, { kitProducts }))\r\n product.reviews = reviews && (await this.updateReviews(+id, { reviews }))\r\n product.metadata = metadata && (await this.updateMetadata(+id, { metadata }))\r\n\r\n return product\r\n }\r\n\r\n async fetchReviews(status: ReviewStatusParams): Promise<ReviewWithProductData[]> {\r\n const reviewsExpression = {\r\n status:\r\n status === 'pending'\r\n ? { [HasuraGraphQLWhere.ISNULL]: true }\r\n : { [HasuraGraphQLWhere.EQUALS]: status === 'approved' },\r\n }\r\n const { product: data } = await this.query(\r\n 'product',\r\n ['id', 'name', 'sku', { reviews: { columnName: 'reviews', fields: this.reviewsFields } }],\r\n {\r\n where: { value: { reviews: reviewsExpression }, type: 'product_bool_exp', required: true },\r\n },\r\n )\r\n\r\n return data.reduce(\r\n (\r\n reviews: ReviewWithProductData[],\r\n product: Omit<ProductHasuraGraphQL, 'reviews'> & {\r\n reviews: Array<Record<'person_id' | 'order_id' | 'created_at' | 'updated_at' | 'status', any>>\r\n },\r\n ) => [\r\n ...reviews,\r\n ...product.reviews\r\n .filter(\r\n (review) =>\r\n (status === 'pending' && [undefined, null].includes(review.status)) ||\r\n (status === 'approved' && review.status === true) ||\r\n (status === 'rejected' && review.status === false),\r\n )\r\n .map((review) => ({\r\n ...this.bindReviewToModel(review),\r\n productId: product.id,\r\n productName: product.name,\r\n productSku: product.sku,\r\n })),\r\n ],\r\n [] as ReviewWithProductData[],\r\n )\r\n }\r\n\r\n async findCatalog(\r\n params: FindRepositoryParams<ProductHasuraGraphQL>,\r\n mainGender?: Extract<ProductGender, 'female' | 'male'>,\r\n ): Promise<RepositoryFindResult<ProductHasuraGraphQL>> {\r\n return this.find({\r\n ...params,\r\n filters: { ...params.filters, published: true },\r\n orderBy: {\r\n hasStock: 'desc',\r\n ...(!mainGender ? {} : { intGender: mainGender === 'female' ? 'desc' : 'asc' }),\r\n ...omit(params.orderBy, ['hasStock', 'intGender']),\r\n },\r\n })\r\n }\r\n\r\n private async updateCategories(\r\n productId: number,\r\n { categories }: Pick<UpdateRepositoryParams<ProductHasuraGraphQL>, 'categories'>,\r\n ): Promise<ProductHasuraGraphQL['categories']> {\r\n if ('action' in categories && categories.action === 'remove') {\r\n await this.mutation('delete_category_product', ['affected_rows'], {\r\n where: {\r\n type: 'category_product_bool_exp',\r\n required: true,\r\n value: { product_id: { _eq: productId } },\r\n },\r\n })\r\n\r\n return []\r\n }\r\n\r\n const plainData = this.paramsToPlain({ categories })\r\n\r\n if (!plainData.categories || plainData.categories.length <= 0) return []\r\n\r\n await this.mutation('delete_category_product', ['affected_rows'], {\r\n where: {\r\n type: 'category_product_bool_exp',\r\n required: true,\r\n value: { product_id: { _eq: productId } },\r\n },\r\n })\r\n\r\n await this.mutation('insert_category_product', ['affected_rows'], {\r\n objects: {\r\n type: '[category_product_insert_input!]',\r\n required: true,\r\n value: plainData.categories.map((categoryId) => ({ category_id: categoryId, product_id: productId })),\r\n },\r\n })\r\n\r\n return plainData.categories\r\n }\r\n\r\n private async updateKitProducts(\r\n productId: number,\r\n { kitProducts }: Pick<UpdateRepositoryParams<ProductHasuraGraphQL>, 'kitProducts'>,\r\n ): Promise<ProductHasuraGraphQL['kitProducts']> {\r\n const plainData = this.paramsToPlain({ kitProducts })\r\n\r\n await this.mutation('delete_product_kit', ['affected_rows'], {\r\n where: {\r\n type: 'product_kit_bool_exp',\r\n required: true,\r\n value: { kit_product_id: { _eq: productId } },\r\n },\r\n })\r\n\r\n await this.mutation('insert_product_kit', ['affected_rows'], {\r\n objects: {\r\n type: '[product_kit_insert_input!]',\r\n required: true,\r\n value: plainData.kitProducts.map((kitProduct) => ({\r\n kit_product_id: productId,\r\n product_id: kitProduct.productId || kitProduct.product.id,\r\n quantity: kitProduct.quantity,\r\n })),\r\n },\r\n })\r\n\r\n return plainData.kitProducts\r\n }\r\n\r\n private async updateReviews(\r\n productId: number,\r\n { reviews }: Pick<UpdateRepositoryParams<ProductHasuraGraphQL>, 'reviews'>,\r\n ): Promise<ProductReview[]> {\r\n if (!reviews) return []\r\n if ('action' in reviews && reviews.action === 'remove') {\r\n const reviewIds = await Promise.all(\r\n reviews.value.map(async (reviewData) => {\r\n const review = await this.findReview(reviewData, productId)\r\n\r\n return review?.id\r\n }),\r\n )\r\n\r\n await this.mutation('delete_product_review', ['affected_rows'], {\r\n where: { value: { id: { _in: reviewIds.filter(Boolean) } }, type: 'product_review_bool_exp', required: true },\r\n })\r\n\r\n return reviews.value.map((review, index) => !reviewIds[index] && review).filter(Boolean)\r\n }\r\n\r\n const plainData = this.paramsToPlain({ reviews })\r\n\r\n if (!plainData.reviews || plainData.reviews.length <= 0) return []\r\n\r\n return Promise.all(\r\n plainData.reviews.map(async (reviewData) => {\r\n const review = await this.findReview(reviewData, productId)\r\n\r\n if (review.id)\r\n return this.bindReviewToModel(\r\n (\r\n await this.mutation('update_product_review_by_pk', this.reviewsFields, {\r\n pk_columns: {\r\n value: { id: review.id },\r\n type: 'product_review_pk_columns_input',\r\n required: true,\r\n },\r\n _set: {\r\n value: omit(this.bindReviewToHasura(reviewData), ['id', 'product_id']),\r\n type: 'product_review_set_input',\r\n required: true,\r\n },\r\n })\r\n ).update_product_review_by_pk,\r\n )\r\n\r\n return this.bindReviewToModel(\r\n (\r\n await this.mutation('insert_product_review_one', this.reviewsFields, {\r\n object: {\r\n value: omit({ ...this.bindReviewToHasura(reviewData), product_id: productId }, ['id']),\r\n type: 'product_review_insert_input',\r\n required: true,\r\n },\r\n })\r\n ).insert_product_review_one,\r\n )\r\n }),\r\n )\r\n }\r\n\r\n private async updateMetadata(\r\n productId: number,\r\n { metadata }: Pick<UpdateRepositoryParams<ProductHasuraGraphQL>, 'metadata'>,\r\n ): Promise<ProductMetadata> {\r\n const plainData = this.paramsToPlain({ metadata })\r\n\r\n if (!plainData.metadata) return null\r\n\r\n await this.mutation('update_product_metadata_by_pk', ['product_id'], {\r\n pk_columns: {\r\n value: { product_id: productId },\r\n type: 'product_metadata_pk_columns_input',\r\n required: true,\r\n },\r\n _set: {\r\n value: omit(metadata, ['product_id']),\r\n type: 'product_metadata_set_input',\r\n required: true,\r\n },\r\n })\r\n\r\n return plainData.metadata\r\n }\r\n\r\n private async getId(id: string): Promise<string> {\r\n if (!Number.isNaN(+id)) return id\r\n\r\n const { data } = await this.find({ filters: { firestoreId: id }, options: { enableCount: false } })\r\n\r\n if (data?.[0]?.id) return data?.[0]?.id\r\n\r\n throw new NotFoundError(`Product with id ${id} not found`)\r\n }\r\n\r\n private async findReviewsByProduct(productId: number): Promise<ProductReview[]> {\r\n const { product_review: data } = await this.query('product_review', this.reviewsFields, {\r\n where: {\r\n value: {\r\n product_id: { _eq: productId },\r\n },\r\n type: 'product_review_bool_exp',\r\n required: true,\r\n },\r\n })\r\n\r\n return data && data.map((review: Record<string, any>) => this.bindReviewToModel(review))\r\n }\r\n\r\n private async findReview(review: ProductReview, productId: number): Promise<ProductReview> {\r\n if (review.id) return review\r\n\r\n let loadedReview: ProductReview\r\n\r\n if (review.personId) loadedReview = await this.getReviewByPersonId(review.personId, productId, review.orderId)\r\n if (!loadedReview && review.author && review.email)\r\n loadedReview = await this.getReviewByAuthorAndEmail(review.author, review.email, productId, review.orderId)\r\n\r\n return loadedReview || review\r\n }\r\n\r\n private async getReviewByPersonId(personId: number, productId: number, orderId?: string): Promise<ProductReview> {\r\n const { product_review: data } = await this.query('product_review', this.reviewsFields, {\r\n where: {\r\n value: {\r\n product_id: { _eq: productId },\r\n person_id: { _eq: personId },\r\n ...(orderId && { order_id: { _eq: orderId } }),\r\n },\r\n type: `product_review_bool_exp`,\r\n required: true,\r\n },\r\n })\r\n\r\n return data && data[0] && this.bindReviewToModel(data[0])\r\n }\r\n\r\n private async getReviewByAuthorAndEmail(\r\n author: string,\r\n email: string,\r\n productId: number,\r\n orderId?: string,\r\n ): Promise<ProductReview> {\r\n const { product_review: data } = await this.query('product_review', this.reviewsFields, {\r\n where: {\r\n value: {\r\n product_id: { _eq: productId },\r\n author: { _eq: author },\r\n email: { _eq: email },\r\n ...(orderId && { order_id: { _eq: orderId } }),\r\n },\r\n type: `product_review_bool_exp`,\r\n required: true,\r\n },\r\n })\r\n\r\n return data && data[0] && this.bindReviewToModel(data[0])\r\n }\r\n\r\n private bindReviewToModel = (\r\n plain: Record<'person_id' | 'order_id' | 'created_at' | 'updated_at', any>,\r\n ): ProductReview => ({\r\n ...is<ProductReview>(omit(plain, ['product_id', 'created_at', 'updated_at', 'person_id', 'order_id'])),\r\n createdAt: typeof plain.created_at === 'string' ? new Date(plain.created_at) : plain.created_at,\r\n updatedAt: typeof plain.updated_at === 'string' ? new Date(plain.updated_at) : plain.updated_at,\r\n personId: plain.person_id,\r\n orderId: plain.order_id,\r\n })\r\n\r\n private bindReviewToHasura = (review: ProductReview): ProductReviewFields => ({\r\n ...is<ProductReviewFields>(omit(review, ['productId', 'createdAt', 'updatedAt', 'personId', 'orderId'])),\r\n person_id: review.personId,\r\n order_id: review.orderId,\r\n })\r\n\r\n async cleanShoppingCountFromIds(ids: string[]): Promise<void> {\r\n return await this.mutation('update_product', ['affected_rows'], {\r\n where: {\r\n value: { id: { _nin: ids } },\r\n type: 'product_bool_exp',\r\n required: true,\r\n },\r\n _set: {\r\n value: { shopping_count: 0 },\r\n type: 'product_set_input',\r\n },\r\n })\r\n }\r\n}\r\n"]}
@@ -0,0 +1,14 @@
1
+ import { FindRepositoryParams, GetRepositoryParams, RepositoryFindResult, UpdateRepositoryParams, VariantRepository } from '../../../../domain';
2
+ import { HasuraConstructorParams } from '../../mixins';
3
+ import { VariantHasuraGraphQL } from '../../models';
4
+ declare const VariantHasuraGraphQLRepository_base: import("../../../../utils").MixinCtor<import("../..").GraphQLRepository<VariantHasuraGraphQL> & import("../../../../domain").CrudRepository<VariantHasuraGraphQL, import("../../../../domain").CrudParams<VariantHasuraGraphQL>> & import("../../../../domain").UpdateRepository<VariantHasuraGraphQL, import("../../../../domain").RepositoryUpdateParams<VariantHasuraGraphQL>> & {
5
+ paramsToPlain(params: import("../../../../domain").RepositoryUpdateParams<VariantHasuraGraphQL>): Partial<VariantHasuraGraphQL>;
6
+ }, [HasuraConstructorParams<VariantHasuraGraphQL> & import("../../mixins").CreateConstructorParams & import("../../mixins").DeleteConstructorParams & import("../../mixins").GetConstructorParams & import("../../mixins").UpdateConstructorParams, ...any[]]>;
7
+ export declare class VariantHasuraGraphQLRepository extends VariantHasuraGraphQLRepository_base implements VariantRepository {
8
+ constructor({ endpoint, authOptions, interceptors, }: Pick<HasuraConstructorParams<VariantHasuraGraphQL>, 'endpoint' | 'authOptions' | 'interceptors'>);
9
+ get(identifiers: GetRepositoryParams<VariantHasuraGraphQL>): Promise<VariantHasuraGraphQL>;
10
+ find(params?: FindRepositoryParams<VariantHasuraGraphQL>): Promise<RepositoryFindResult<VariantHasuraGraphQL>>;
11
+ update(params: UpdateRepositoryParams<VariantHasuraGraphQL>): Promise<VariantHasuraGraphQL>;
12
+ private getId;
13
+ }
14
+ export {};