addio-admin-sdk 1.7.21 → 1.7.22

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 (541) hide show
  1. package/.babelrc +17 -17
  2. package/.env +14 -14
  3. package/.env.dev +14 -14
  4. package/.github/workflows/publish_coverage.yaml +69 -69
  5. package/addio-sdk-doc.md +1473 -1380
  6. package/changelog.md +469 -469
  7. package/dist/Interfaces/Address/index.d.ts +21 -21
  8. package/dist/Interfaces/Address/index.js +16 -16
  9. package/dist/Interfaces/Algolia/index.d.ts +149 -148
  10. package/dist/Interfaces/Algolia/index.js +2 -2
  11. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  12. package/dist/Interfaces/Attachement/index.js +2 -2
  13. package/dist/Interfaces/Attribute/index.d.ts +47 -47
  14. package/dist/Interfaces/Attribute/index.js +10 -10
  15. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  16. package/dist/Interfaces/BGJob/index.js +36 -36
  17. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  18. package/dist/Interfaces/BaseClass/index.js +2 -2
  19. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  20. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  21. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  22. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  23. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  24. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  25. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  26. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  27. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  28. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  29. package/dist/Interfaces/Booking/index.d.ts +68 -68
  30. package/dist/Interfaces/Booking/index.js +17 -17
  31. package/dist/Interfaces/Brand/index.d.ts +13 -13
  32. package/dist/Interfaces/Brand/index.js +2 -2
  33. package/dist/Interfaces/CMS/index.d.ts +25 -25
  34. package/dist/Interfaces/CMS/index.js +2 -2
  35. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  36. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  37. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  38. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  39. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  40. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  41. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  42. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  43. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  44. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  45. package/dist/Interfaces/Cart/index.d.ts +412 -410
  46. package/dist/Interfaces/Cart/index.js +191 -191
  47. package/dist/Interfaces/Cart/index.js.map +1 -1
  48. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  49. package/dist/Interfaces/Catalogue/index.js +37 -37
  50. package/dist/Interfaces/Category/index.d.ts +26 -26
  51. package/dist/Interfaces/Category/index.js +2 -2
  52. package/dist/Interfaces/Chart/index.d.ts +11 -11
  53. package/dist/Interfaces/Chart/index.js +2 -2
  54. package/dist/Interfaces/Class/index.d.ts +8 -8
  55. package/dist/Interfaces/Class/index.js +2 -2
  56. package/dist/Interfaces/Consent/index.d.ts +6 -6
  57. package/dist/Interfaces/Consent/index.js +2 -2
  58. package/dist/Interfaces/Context/IContextProps.d.ts +4 -4
  59. package/dist/Interfaces/Context/IContextProps.js +2 -2
  60. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  61. package/dist/Interfaces/Context/IContextState.js +2 -2
  62. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  63. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  64. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  65. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  66. package/dist/Interfaces/Customer/index.d.ts +95 -95
  67. package/dist/Interfaces/Customer/index.js +158 -158
  68. package/dist/Interfaces/Declination/index.d.ts +111 -111
  69. package/dist/Interfaces/Declination/index.js +77 -77
  70. package/dist/Interfaces/Document/index.d.ts +8 -8
  71. package/dist/Interfaces/Document/index.js +2 -2
  72. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  73. package/dist/Interfaces/Elastic/index.js +2 -2
  74. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  75. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  76. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  77. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  78. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  79. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  80. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  81. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  82. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  83. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  84. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  85. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  86. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  87. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  88. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  89. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  90. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  91. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  92. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  93. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  94. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  95. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  96. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  97. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  98. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  99. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  100. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  101. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  102. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  103. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  104. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  105. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  106. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  107. package/dist/Interfaces/Email/IEmail.js +69 -69
  108. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  109. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  110. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  111. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  112. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  113. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  114. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  115. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  116. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  117. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  118. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  119. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  120. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  121. package/dist/Interfaces/ExportSchema/index.js +2 -2
  122. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  123. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  124. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  125. package/dist/Interfaces/ExternalService/index.js +2 -2
  126. package/dist/Interfaces/FirstOrderTracking/index.d.ts +5 -5
  127. package/dist/Interfaces/FirstOrderTracking/index.js +2 -2
  128. package/dist/Interfaces/G2/index.d.ts +556 -556
  129. package/dist/Interfaces/G2/index.js +36 -36
  130. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  131. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  132. package/dist/Interfaces/Indexed/Product/index.d.ts +94 -94
  133. package/dist/Interfaces/Indexed/Product/index.js +287 -287
  134. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  135. package/dist/Interfaces/Inventory/index.js +8 -8
  136. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  137. package/dist/Interfaces/Invoice/index.js +2 -2
  138. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  139. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  140. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  141. package/dist/Interfaces/MarketplacePublication/index.js +33 -33
  142. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  143. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  144. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  145. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  146. package/dist/Interfaces/Order/index.d.ts +4 -4
  147. package/dist/Interfaces/Order/index.js +2 -2
  148. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  149. package/dist/Interfaces/Org/IRelUser.js +2 -2
  150. package/dist/Interfaces/Org/index.d.ts +29 -29
  151. package/dist/Interfaces/Org/index.js +12 -12
  152. package/dist/Interfaces/Payment/index.d.ts +13 -13
  153. package/dist/Interfaces/Payment/index.js +2 -2
  154. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  155. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  156. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  157. package/dist/Interfaces/Product/IImportProduct.js +971 -971
  158. package/dist/Interfaces/Product/IInventoryItem.d.ts +84 -84
  159. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  160. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  161. package/dist/Interfaces/Product/IPricing.js +174 -174
  162. package/dist/Interfaces/Product/index.d.ts +121 -121
  163. package/dist/Interfaces/Product/index.js +56 -56
  164. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  165. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  166. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  167. package/dist/Interfaces/PromiseToPurchase/BankType.js +42 -42
  168. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  169. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  170. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  171. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  172. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  173. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  174. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  175. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  176. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  177. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  178. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  179. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  180. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
  181. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  182. package/dist/Interfaces/Quote/index.d.ts +5 -5
  183. package/dist/Interfaces/Quote/index.js +2 -2
  184. package/dist/Interfaces/Refunds/index.d.ts +106 -106
  185. package/dist/Interfaces/Refunds/index.js +2 -2
  186. package/dist/Interfaces/Rules/IDiscountRule.d.ts +137 -137
  187. package/dist/Interfaces/Rules/IDiscountRule.js +107 -107
  188. package/dist/Interfaces/Schedule/index.d.ts +47 -46
  189. package/dist/Interfaces/Schedule/index.js +2 -2
  190. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  191. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  192. package/dist/Interfaces/Services/IService.d.ts +12 -12
  193. package/dist/Interfaces/Services/IService.js +2 -2
  194. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  195. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  196. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  197. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  198. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  199. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  200. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  201. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  202. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  203. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  204. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  205. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  206. package/dist/Interfaces/Slider/GR.d.ts +130 -130
  207. package/dist/Interfaces/Slider/GR.js +271 -271
  208. package/dist/Interfaces/Slider/index.d.ts +14 -14
  209. package/dist/Interfaces/Slider/index.js +2 -2
  210. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  211. package/dist/Interfaces/Space/IMember.js +9 -9
  212. package/dist/Interfaces/Space/index.d.ts +403 -387
  213. package/dist/Interfaces/Space/index.js +139 -123
  214. package/dist/Interfaces/Space/index.js.map +1 -1
  215. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  216. package/dist/Interfaces/Specials/gr.js +2 -2
  217. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  218. package/dist/Interfaces/StockNotification/index.js +2 -2
  219. package/dist/Interfaces/Store/index.d.ts +62 -62
  220. package/dist/Interfaces/Store/index.js +27 -27
  221. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  222. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  223. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  224. package/dist/Interfaces/Supplier/index.js +24 -24
  225. package/dist/Interfaces/Tag/index.d.ts +18 -18
  226. package/dist/Interfaces/Tag/index.js +2 -2
  227. package/dist/Interfaces/Tax/index.d.ts +12 -12
  228. package/dist/Interfaces/Tax/index.js +2 -2
  229. package/dist/Interfaces/TransferRequest/index.d.ts +91 -59
  230. package/dist/Interfaces/TransferRequest/index.js +38 -31
  231. package/dist/Interfaces/TransferRequest/index.js.map +1 -1
  232. package/dist/Interfaces/Translation/index.d.ts +8 -4
  233. package/dist/Interfaces/Translation/index.js +5 -2
  234. package/dist/Interfaces/Translation/index.js.map +1 -1
  235. package/dist/Interfaces/Update/index.d.ts +10 -10
  236. package/dist/Interfaces/Update/index.js +2 -2
  237. package/dist/Interfaces/User/IUser.d.ts +65 -65
  238. package/dist/Interfaces/User/IUser.js +8 -8
  239. package/dist/Interfaces/Version/index.d.ts +11 -11
  240. package/dist/Interfaces/Version/index.js +2 -2
  241. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  242. package/dist/Interfaces/Wishlist/index.js +2 -2
  243. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  244. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  245. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  246. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  247. package/dist/constants/enums.d.ts +6 -6
  248. package/dist/constants/enums.js +10 -10
  249. package/dist/constants/version.d.ts +2 -2
  250. package/dist/constants/version.js +5 -5
  251. package/dist/index.d.ts +32 -32
  252. package/dist/index.js +416 -416
  253. package/dist/lib/Attribute/index.d.ts +14 -14
  254. package/dist/lib/Attribute/index.js +248 -248
  255. package/dist/lib/BGJob/index.d.ts +9 -9
  256. package/dist/lib/BGJob/index.js +376 -376
  257. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  258. package/dist/lib/BackgroundWorker/index.js +72 -72
  259. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  260. package/dist/lib/Blog/BlogArticle.js +28 -28
  261. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  262. package/dist/lib/Blog/BlogAuthor.js +28 -28
  263. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  264. package/dist/lib/Blog/BlogCategory.js +28 -28
  265. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  266. package/dist/lib/Blog/BlogKeyword.js +28 -28
  267. package/dist/lib/Booking/index.d.ts +65 -65
  268. package/dist/lib/Booking/index.js +839 -839
  269. package/dist/lib/Brand/index.d.ts +17 -17
  270. package/dist/lib/Brand/index.js +275 -275
  271. package/dist/lib/Cart/index.d.ts +195 -186
  272. package/dist/lib/Cart/index.js +4120 -3982
  273. package/dist/lib/Cart/index.js.map +1 -1
  274. package/dist/lib/Catalogue/index.d.ts +9 -9
  275. package/dist/lib/Catalogue/index.js +207 -207
  276. package/dist/lib/Category/index.d.ts +26 -26
  277. package/dist/lib/Category/index.js +361 -361
  278. package/dist/lib/Class/index.d.ts +12 -12
  279. package/dist/lib/Class/index.js +159 -159
  280. package/dist/lib/Consent/index.d.ts +4 -4
  281. package/dist/lib/Consent/index.js +79 -79
  282. package/dist/lib/Customer/index.d.ts +10 -10
  283. package/dist/lib/Customer/index.js +147 -147
  284. package/dist/lib/Declination/index.d.ts +9 -9
  285. package/dist/lib/Declination/index.js +84 -84
  286. package/dist/lib/Discount/index.d.ts +18 -18
  287. package/dist/lib/Discount/index.js +759 -759
  288. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  289. package/dist/lib/ElasticSearch/index.js +101 -101
  290. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  291. package/dist/lib/Email/AbandonedCartEmail.js +78 -78
  292. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  293. package/dist/lib/Email/AccountConfirmationEmail.js +95 -95
  294. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  295. package/dist/lib/Email/AdminOrderConfirmationEmail.js +78 -78
  296. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  297. package/dist/lib/Email/ApplicationEmail.js +78 -78
  298. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  299. package/dist/lib/Email/BackInStockEmail.js +78 -78
  300. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  301. package/dist/lib/Email/ContactEmail.js +78 -78
  302. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  303. package/dist/lib/Email/CustomerBookingAdminEmail.js +78 -78
  304. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  305. package/dist/lib/Email/CustomerBookingEmail.js +78 -78
  306. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  307. package/dist/lib/Email/OrderConfirmationEmail.js +79 -78
  308. package/dist/lib/Email/OrderConfirmationEmail.js.map +1 -1
  309. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  310. package/dist/lib/Email/OrderDenounciationEmail.js +78 -78
  311. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  312. package/dist/lib/Email/OrderSampleEmail.js +78 -78
  313. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  314. package/dist/lib/Email/OtherTypeEmails.js +90 -90
  315. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  316. package/dist/lib/Email/PasswordResetEmail.js +78 -78
  317. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  318. package/dist/lib/Email/PhotoShootEmail.js +78 -78
  319. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  320. package/dist/lib/Email/PickUpConfirmation.js +78 -78
  321. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  322. package/dist/lib/Email/ShippingConfirmation.js +78 -78
  323. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  324. package/dist/lib/Email/WelcomeEmail.js +78 -78
  325. package/dist/lib/Email/index.d.ts +8 -8
  326. package/dist/lib/Email/index.js +82 -82
  327. package/dist/lib/ExternalService/Ebay.d.ts +62 -62
  328. package/dist/lib/ExternalService/Ebay.js +184 -184
  329. package/dist/lib/ExternalService/index.d.ts +5 -5
  330. package/dist/lib/ExternalService/index.js +28 -28
  331. package/dist/lib/FirstOrderTracking/index.d.ts +5 -5
  332. package/dist/lib/FirstOrderTracking/index.js +28 -28
  333. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  334. package/dist/lib/Indexed/IndexedCart.js +194 -194
  335. package/dist/lib/Indexed/Product.d.ts +17 -17
  336. package/dist/lib/Indexed/Product.js +116 -116
  337. package/dist/lib/Inventory/index.d.ts +48 -32
  338. package/dist/lib/Inventory/index.js +629 -579
  339. package/dist/lib/Inventory/index.js.map +1 -1
  340. package/dist/lib/Invoice/index.d.ts +5 -5
  341. package/dist/lib/Invoice/index.js +28 -28
  342. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  343. package/dist/lib/MarketplacePublication/index.js +220 -220
  344. package/dist/lib/MarketplacePublication/index.js.map +1 -1
  345. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  346. package/dist/lib/MongoDB/BaseAPI.js +308 -308
  347. package/dist/lib/Order/index.d.ts +7 -7
  348. package/dist/lib/Order/index.js +62 -62
  349. package/dist/lib/Org/index.d.ts +26 -26
  350. package/dist/lib/Org/index.js +283 -283
  351. package/dist/lib/PandaPay/index.d.ts +16 -16
  352. package/dist/lib/PandaPay/index.js +218 -218
  353. package/dist/lib/Paysafe/index.d.ts +11 -11
  354. package/dist/lib/Paysafe/index.js +100 -100
  355. package/dist/lib/Product/index.d.ts +143 -143
  356. package/dist/lib/Product/index.js +1326 -1326
  357. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  358. package/dist/lib/ProductAttribute/index.js +114 -114
  359. package/dist/lib/PromiseToPurchase/index.d.ts +37 -37
  360. package/dist/lib/PromiseToPurchase/index.js +475 -475
  361. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  362. package/dist/lib/PurchaseOrder/index.js +72 -72
  363. package/dist/lib/Schedule/index.d.ts +5 -5
  364. package/dist/lib/Schedule/index.js +30 -30
  365. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  366. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  367. package/dist/lib/Service/index.d.ts +5 -5
  368. package/dist/lib/Service/index.js +57 -57
  369. package/dist/lib/Shipment/index.d.ts +28 -28
  370. package/dist/lib/Shipment/index.js +562 -562
  371. package/dist/lib/Slider/index.d.ts +16 -16
  372. package/dist/lib/Slider/index.js +235 -235
  373. package/dist/lib/Space/index.d.ts +817 -801
  374. package/dist/lib/Space/index.js +6981 -6862
  375. package/dist/lib/Space/index.js.map +1 -1
  376. package/dist/lib/StockNotification/index.d.ts +4 -4
  377. package/dist/lib/StockNotification/index.js +26 -26
  378. package/dist/lib/Store/index.d.ts +5 -5
  379. package/dist/lib/Store/index.js +30 -30
  380. package/dist/lib/Supplier/Command.d.ts +5 -5
  381. package/dist/lib/Supplier/Command.js +28 -28
  382. package/dist/lib/Supplier/index.d.ts +25 -25
  383. package/dist/lib/Supplier/index.js +86 -86
  384. package/dist/lib/Tags/index.d.ts +6 -6
  385. package/dist/lib/Tags/index.js +84 -84
  386. package/dist/lib/Tax/index.d.ts +8 -8
  387. package/dist/lib/Tax/index.js +136 -136
  388. package/dist/lib/TransferRequest/index.d.ts +98 -21
  389. package/dist/lib/TransferRequest/index.js +1149 -302
  390. package/dist/lib/TransferRequest/index.js.map +1 -1
  391. package/dist/lib/Update/index.d.ts +10 -10
  392. package/dist/lib/Update/index.js +71 -71
  393. package/dist/lib/User/index.d.ts +33 -33
  394. package/dist/lib/User/index.js +360 -360
  395. package/dist/lib/Wishlist/index.d.ts +5 -5
  396. package/dist/lib/Wishlist/index.js +28 -28
  397. package/dist/lib/base.d.ts +14 -14
  398. package/dist/lib/base.js +135 -135
  399. package/dist/lib/baseService.d.ts +17 -17
  400. package/dist/lib/baseService.js +113 -113
  401. package/dist/rules/GR/constants/data.d.ts +25 -25
  402. package/dist/rules/GR/constants/data.js +54 -54
  403. package/dist/rules/GR/constants/products.d.ts +8 -8
  404. package/dist/rules/GR/constants/products.js +234 -234
  405. package/dist/rules/GR/interfaces/cart.d.ts +83 -83
  406. package/dist/rules/GR/interfaces/cart.js +51 -51
  407. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  408. package/dist/rules/GR/interfaces/data.js +104 -104
  409. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  410. package/dist/rules/GR/interfaces/products.js +10 -10
  411. package/dist/rules/GR/utils/cart.d.ts +53 -53
  412. package/dist/rules/GR/utils/cart.js +767 -767
  413. package/dist/rules/GR/utils/data.d.ts +3 -3
  414. package/dist/rules/GR/utils/data.js +25 -25
  415. package/dist/rules/GR/utils/expedition.d.ts +65 -65
  416. package/dist/rules/GR/utils/expedition.js +1676 -1676
  417. package/dist/rules/GR/utils/expedition.js.map +1 -1
  418. package/dist/rules/GR/utils/g2.d.ts +174 -174
  419. package/dist/rules/GR/utils/g2.js +1025 -1025
  420. package/dist/rules/GR/utils/invoices.d.ts +16 -16
  421. package/dist/rules/GR/utils/invoices.js +181 -181
  422. package/dist/rules/GR/utils/products.d.ts +103 -96
  423. package/dist/rules/GR/utils/products.js +1101 -1085
  424. package/dist/rules/GR/utils/products.js.map +1 -1
  425. package/dist/rules/GR/utils/upsells.d.ts +75 -75
  426. package/dist/rules/GR/utils/upsells.js +278 -278
  427. package/dist/rules/GR/utils/upsells.js.map +1 -1
  428. package/dist/services/database/BaseProvider.d.ts +29 -29
  429. package/dist/services/database/BaseProvider.js +77 -77
  430. package/dist/services/database/BatchUtils.d.ts +14 -14
  431. package/dist/services/database/BatchUtils.js +88 -88
  432. package/dist/services/database/Config.d.ts +2 -2
  433. package/dist/services/database/Config.js +5 -5
  434. package/dist/services/database/DatabaseService.d.ts +41 -41
  435. package/dist/services/database/DatabaseService.js +297 -297
  436. package/dist/services/database/DatabaseService.js.map +1 -1
  437. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  438. package/dist/services/database/FirebaseProvider.js +312 -312
  439. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  440. package/dist/services/database/NotFirebaseProvider.js +380 -380
  441. package/dist/services/g2/G2OrderSlip.d.ts +42 -42
  442. package/dist/services/g2/G2OrderSlip.js +264 -264
  443. package/dist/services/g2/utils.d.ts +9 -9
  444. package/dist/services/g2/utils.js +919 -919
  445. package/dist/services/logs/index.d.ts +20 -20
  446. package/dist/services/logs/index.js +126 -126
  447. package/dist/utils/algolia.d.ts +6 -6
  448. package/dist/utils/algolia.js +22 -22
  449. package/dist/utils/anonymisation.d.ts +30 -30
  450. package/dist/utils/anonymisation.js +264 -264
  451. package/dist/utils/array.d.ts +5 -5
  452. package/dist/utils/array.js +36 -36
  453. package/dist/utils/aws.d.ts +14 -14
  454. package/dist/utils/aws.js +220 -220
  455. package/dist/utils/booking.d.ts +22 -22
  456. package/dist/utils/booking.js +175 -175
  457. package/dist/utils/cart.d.ts +88 -69
  458. package/dist/utils/cart.js +767 -656
  459. package/dist/utils/cart.js.map +1 -1
  460. package/dist/utils/cmv.d.ts +10 -10
  461. package/dist/utils/cmv.js +107 -107
  462. package/dist/utils/console.d.ts +6 -6
  463. package/dist/utils/console.js +121 -121
  464. package/dist/utils/context.d.ts +20 -19
  465. package/dist/utils/context.js +59 -41
  466. package/dist/utils/context.js.map +1 -1
  467. package/dist/utils/currency.d.ts +6 -6
  468. package/dist/utils/currency.js +62 -62
  469. package/dist/utils/data.d.ts +31 -31
  470. package/dist/utils/data.js +300 -300
  471. package/dist/utils/date.d.ts +1 -1
  472. package/dist/utils/date.js +16 -16
  473. package/dist/utils/dimensions.d.ts +3 -3
  474. package/dist/utils/dimensions.js +18 -18
  475. package/dist/utils/discount.d.ts +46 -46
  476. package/dist/utils/discount.js +981 -981
  477. package/dist/utils/errors.d.ts +113 -113
  478. package/dist/utils/errors.js +113 -113
  479. package/dist/utils/file-admin.d.ts +8 -8
  480. package/dist/utils/file-admin.js +94 -94
  481. package/dist/utils/file.d.ts +38 -38
  482. package/dist/utils/file.js +318 -318
  483. package/dist/utils/firebase-admin.d.ts +2 -2
  484. package/dist/utils/firebase-admin.js +118 -118
  485. package/dist/utils/firebase.d.ts +41 -41
  486. package/dist/utils/firebase.js +220 -220
  487. package/dist/utils/import.d.ts +1 -1
  488. package/dist/utils/import.js +81 -81
  489. package/dist/utils/inventories.d.ts +35 -34
  490. package/dist/utils/inventories.js +445 -432
  491. package/dist/utils/inventories.js.map +1 -1
  492. package/dist/utils/locale.d.ts +13 -13
  493. package/dist/utils/locale.js +67 -67
  494. package/dist/utils/mailchimp.d.ts +58 -58
  495. package/dist/utils/mailchimp.js +735 -735
  496. package/dist/utils/mongodb.d.ts +1 -1
  497. package/dist/utils/mongodb.js +68 -68
  498. package/dist/utils/object.d.ts +12 -12
  499. package/dist/utils/object.js +129 -129
  500. package/dist/utils/payment.d.ts +10 -10
  501. package/dist/utils/payment.js +25 -25
  502. package/dist/utils/products.d.ts +32 -26
  503. package/dist/utils/products.js +307 -301
  504. package/dist/utils/products.js.map +1 -1
  505. package/dist/utils/promiseToPurchase.d.ts +56 -56
  506. package/dist/utils/promiseToPurchase.js +228 -228
  507. package/dist/utils/prosprsearch.d.ts +21 -21
  508. package/dist/utils/prosprsearch.js +276 -276
  509. package/dist/utils/refunds.d.ts +2 -2
  510. package/dist/utils/refunds.js +21 -21
  511. package/dist/utils/sdc.d.ts +10 -10
  512. package/dist/utils/sdc.js +1308 -1308
  513. package/dist/utils/searchIndexes.d.ts +21 -21
  514. package/dist/utils/searchIndexes.js +318 -318
  515. package/dist/utils/services.d.ts +40 -40
  516. package/dist/utils/services.js +407 -407
  517. package/dist/utils/shipment.d.ts +110 -110
  518. package/dist/utils/shipment.js +410 -410
  519. package/dist/utils/simpletexting.d.ts +2 -2
  520. package/dist/utils/simpletexting.js +91 -91
  521. package/dist/utils/sliders.d.ts +4 -4
  522. package/dist/utils/sliders.js +70 -70
  523. package/dist/utils/string.d.ts +16 -16
  524. package/dist/utils/string.js +194 -194
  525. package/dist/utils/tools.d.ts +1 -1
  526. package/dist/utils/tools.js +49 -49
  527. package/dist/utils/transferRequests.d.ts +19 -16
  528. package/dist/utils/transferRequests.js +44 -33
  529. package/dist/utils/transferRequests.js.map +1 -1
  530. package/dist/utils/update.d.ts +7 -7
  531. package/dist/utils/update.js +245 -245
  532. package/dist/utils/weight.d.ts +3 -3
  533. package/dist/utils/weight.js +18 -18
  534. package/dist/utils/zones.d.ts +11 -11
  535. package/dist/utils/zones.js +313 -313
  536. package/package.json +110 -110
  537. package/publish.sh +143 -143
  538. package/readme.md +182 -182
  539. package/dist/lib/Queue/index.d.ts +0 -40
  540. package/dist/lib/Queue/index.js +0 -255
  541. package/dist/lib/Queue/index.js.map +0 -1
@@ -1,760 +1,760 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
- return new (P || (P = Promise))(function (resolve, reject) {
31
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
- step((generator = generator.apply(thisArg, _arguments || [])).next());
35
- });
36
- };
37
- var __generator = (this && this.__generator) || function (thisArg, body) {
38
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
- function verb(n) { return function (v) { return step([n, v]); }; }
41
- function step(op) {
42
- if (f) throw new TypeError("Generator is already executing.");
43
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
44
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
- if (y = 0, t) op = [op[0] & 2, t.value];
46
- switch (op[0]) {
47
- case 0: case 1: t = op; break;
48
- case 4: _.label++; return { value: op[1], done: false };
49
- case 5: _.label++; y = op[1]; op = [0]; continue;
50
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
- default:
52
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
- if (t[2]) _.ops.pop();
57
- _.trys.pop(); continue;
58
- }
59
- op = body.call(thisArg, _);
60
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
- }
63
- };
64
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
65
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
66
- if (ar || !(i in from)) {
67
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
68
- ar[i] = from[i];
69
- }
70
- }
71
- return to.concat(ar || Array.prototype.slice.call(from));
72
- };
73
- var __importDefault = (this && this.__importDefault) || function (mod) {
74
- return (mod && mod.__esModule) ? mod : { "default": mod };
75
- };
76
- Object.defineProperty(exports, "__esModule", { value: true });
77
- var console_1 = require("../../utils/console");
78
- var discount_1 = require("../../utils/discount");
79
- var Space_1 = __importDefault(require("../Space"));
80
- var chunk_1 = __importDefault(require("lodash/chunk"));
81
- var baseService_1 = require("../baseService");
82
- var DatabaseService_1 = __importDefault(require("../../services/database/DatabaseService"));
83
- var BatchUtils_1 = __importDefault(require("../../services/database/BatchUtils"));
84
- var Discount = (function (_super) {
85
- __extends(Discount, _super);
86
- function Discount() {
87
- var _this = _super !== null && _super.apply(this, arguments) || this;
88
- _this.data = function () { return _this._data; };
89
- _this._spread = function () { return __awaiter(_this, void 0, void 0, function () {
90
- var associations, association, error_1;
91
- return __generator(this, function (_a) {
92
- switch (_a.label) {
93
- case 0:
94
- (0, console_1.workingMessage)('Spreading...');
95
- associations = [];
96
- _a.label = 1;
97
- case 1:
98
- _a.trys.push([1, 3, , 4]);
99
- return [4, this._spreadTo(this.data().appliesTo.label)];
100
- case 2:
101
- association = _a.sent();
102
- associations.push(association);
103
- return [3, 4];
104
- case 3:
105
- error_1 = _a.sent();
106
- (0, console_1.errorMessage)("Can't spread ".concat(this.data().appliesTo.label));
107
- throw error_1;
108
- case 4:
109
- (0, console_1.workingMessage)('Done spreading!');
110
- return [2];
111
- }
112
- });
113
- }); };
114
- _this._unspread = function (label) { return __awaiter(_this, void 0, void 0, function () {
115
- var associations, association, error_2;
116
- return __generator(this, function (_a) {
117
- switch (_a.label) {
118
- case 0:
119
- (0, console_1.workingMessage)('Unspreading...');
120
- console.log('dans le _unspread');
121
- associations = [];
122
- _a.label = 1;
123
- case 1:
124
- _a.trys.push([1, 3, , 4]);
125
- return [4, this._unspreadTo(!!label ? label : this.data().appliesTo.label)];
126
- case 2:
127
- association = _a.sent();
128
- associations.push(association);
129
- return [3, 4];
130
- case 3:
131
- error_2 = _a.sent();
132
- (0, console_1.errorMessage)("Can't unspread ".concat(this.data().appliesTo.label));
133
- throw error_2;
134
- case 4:
135
- (0, console_1.workingMessage)('Done unspreading!');
136
- return [2];
137
- }
138
- });
139
- }); };
140
- _this._spreadTo = function (typeOfSpread) { return __awaiter(_this, void 0, void 0, function () {
141
- var _a, error_3;
142
- return __generator(this, function (_b) {
143
- switch (_b.label) {
144
- case 0:
145
- _b.trys.push([0, 9, , 10]);
146
- _a = typeOfSpread;
147
- switch (_a) {
148
- case 'allproducts': return [3, 1];
149
- case 'product': return [3, 3];
150
- case 'category': return [3, 5];
151
- }
152
- return [3, 7];
153
- case 1: return [4, this._spreadToProducts()];
154
- case 2: return [2, _b.sent()];
155
- case 3: return [4, this._spreadToProduct()];
156
- case 4: return [2, _b.sent()];
157
- case 5: return [4, this._spreadToProductCategories()];
158
- case 6: return [2, _b.sent()];
159
- case 7: return [3, 8];
160
- case 8: return [3, 10];
161
- case 9:
162
- error_3 = _b.sent();
163
- console.log('error: ', error_3);
164
- return [3, 10];
165
- case 10: return [2];
166
- }
167
- });
168
- }); };
169
- _this._unspreadTo = function (typeOfSpread) { return __awaiter(_this, void 0, void 0, function () {
170
- var _a;
171
- return __generator(this, function (_b) {
172
- switch (_b.label) {
173
- case 0:
174
- console.log('dans le _unspreadTo: ', typeOfSpread);
175
- _a = typeOfSpread;
176
- switch (_a) {
177
- case 'allproducts': return [3, 1];
178
- case 'product': return [3, 3];
179
- case 'category': return [3, 5];
180
- }
181
- return [3, 7];
182
- case 1: return [4, this._unspreadToProducts()];
183
- case 2: return [2, _b.sent()];
184
- case 3: return [4, this._unspreadToProduct()];
185
- case 4: return [2, _b.sent()];
186
- case 5:
187
- console.log('calling unspread to Categories');
188
- return [4, this._unspreadToCategories()];
189
- case 6: return [2, _b.sent()];
190
- case 7: return [3, 8];
191
- case 8: return [2];
192
- }
193
- });
194
- }); };
195
- _this._unspreadToProducts = function () { return __awaiter(_this, void 0, void 0, function () {
196
- var allProducts, _i, _a, products, batch, _b, products_1, productSnap, productData, declinations, error_4, error_5;
197
- var _this = this;
198
- return __generator(this, function (_c) {
199
- switch (_c.label) {
200
- case 0:
201
- console.log('dans le _unspreadToProducts');
202
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
203
- throw new Error("Can't access products collection to fetch all products");
204
- }
205
- _c.label = 1;
206
- case 1:
207
- _c.trys.push([1, 9, , 10]);
208
- return [4, this._fetchProductsByBatch({})];
209
- case 2:
210
- allProducts = _c.sent();
211
- _i = 0, _a = (0, chunk_1.default)(allProducts, 100);
212
- _c.label = 3;
213
- case 3:
214
- if (!(_i < _a.length)) return [3, 8];
215
- products = _a[_i];
216
- batch = new BatchUtils_1.default();
217
- for (_b = 0, products_1 = products; _b < products_1.length; _b++) {
218
- productSnap = products_1[_b];
219
- if (!productSnap.exists)
220
- continue;
221
- productData = productSnap.data;
222
- if (!!!productData)
223
- continue;
224
- if (!!!productData.declinations)
225
- continue;
226
- if (!!!productData.declinations.length)
227
- continue;
228
- declinations = productData.declinations;
229
- try {
230
- batch.set(productSnap.path, productSnap.id, {
231
- declinations: declinations.map(function (_declination, _dIndex) {
232
- if (!!_declination.discount_rules.find(function (_dr) { return _dr.id === _this.data().id; })) {
233
- var newDiscountRules = _declination.discount_rules
234
- .filter(function (_dr) { return _dr.id !== _this.data().id; })
235
- .filter(function (_dr) { return !!_dr; });
236
- return __assign(__assign({}, _declination), { discount_rules: newDiscountRules });
237
- }
238
- return _declination;
239
- })
240
- }, { merge: true });
241
- }
242
- catch (error) {
243
- throw error;
244
- }
245
- }
246
- _c.label = 4;
247
- case 4:
248
- _c.trys.push([4, 6, , 7]);
249
- return [4, batch.commit()];
250
- case 5:
251
- _c.sent();
252
- return [3, 7];
253
- case 6:
254
- error_4 = _c.sent();
255
- (0, console_1.errorMessage)("Error while commiting products spread: ".concat(error_4, " - ").concat(JSON.stringify(error_4)));
256
- throw error_4;
257
- case 7:
258
- _i++;
259
- return [3, 3];
260
- case 8: return [3, 10];
261
- case 9:
262
- error_5 = _c.sent();
263
- throw error_5;
264
- case 10: return [2];
265
- }
266
- });
267
- }); };
268
- _this._unspreadToProduct = function () { return __awaiter(_this, void 0, void 0, function () {
269
- var productSlug, productSnap, product, productData, declinations, error_6;
270
- var _this = this;
271
- return __generator(this, function (_a) {
272
- switch (_a.label) {
273
- case 0:
274
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
275
- throw new Error("Can't access products collection to fetch all products");
276
- }
277
- productSlug = this.data().appliesTo.value;
278
- return [4, DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), { query: [{ field: 'slug', operator: '==', value: productSlug }] })];
279
- case 1:
280
- productSnap = _a.sent();
281
- if (!!!productSnap.length)
282
- return [2];
283
- product = productSnap[0];
284
- if (!product.exists)
285
- return [2];
286
- if (!!!product)
287
- return [2];
288
- productData = product.data;
289
- if (!!!productData)
290
- return [2];
291
- if (!!!productData.declinations)
292
- return [2];
293
- declinations = productData.declinations;
294
- _a.label = 2;
295
- case 2:
296
- _a.trys.push([2, 4, , 5]);
297
- return [4, DatabaseService_1.default.saveDocument(product.path, product.id, product.timestamp, {
298
- declinations: declinations.map(function (_declination, _dIndex) {
299
- if (!!_declination.discount_rules.find(function (_dr) { return _dr.id === _this.data().id; })) {
300
- var newDiscountRules = _declination.discount_rules
301
- .filter(function (_dr) { return _dr.id !== _this.data().id; })
302
- .filter(function (_dr) { return !!_dr; });
303
- return __assign(__assign({}, _declination), { discount_rules: newDiscountRules });
304
- }
305
- return _declination;
306
- })
307
- }, { merge: true })];
308
- case 3:
309
- _a.sent();
310
- return [3, 5];
311
- case 4:
312
- error_6 = _a.sent();
313
- throw error_6;
314
- case 5: return [2];
315
- }
316
- });
317
- }); };
318
- _this._spreadToProducts = function () { return __awaiter(_this, void 0, void 0, function () {
319
- var space, allProducts, _i, _a, products, batch, _loop_1, _b, products_2, productSnap, error_7, error_8;
320
- var _this = this;
321
- return __generator(this, function (_c) {
322
- switch (_c.label) {
323
- case 0:
324
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
325
- throw new Error("Can't access products collection to fetch all products");
326
- }
327
- return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
328
- case 1:
329
- space = _c.sent();
330
- if (!!!space)
331
- return [2];
332
- _c.label = 2;
333
- case 2:
334
- _c.trys.push([2, 10, , 11]);
335
- return [4, this._fetchProductsByBatch()];
336
- case 3:
337
- allProducts = _c.sent();
338
- console.log("".concat(allProducts.length, " products fetched"));
339
- _i = 0, _a = (0, chunk_1.default)(allProducts, 100);
340
- _c.label = 4;
341
- case 4:
342
- if (!(_i < _a.length)) return [3, 9];
343
- products = _a[_i];
344
- batch = new BatchUtils_1.default();
345
- _loop_1 = function (productSnap) {
346
- if (!productSnap.exists)
347
- return "continue";
348
- var productData = productSnap.data;
349
- if (!!!productData)
350
- return "continue";
351
- if (!!!productData.declinations)
352
- return "continue";
353
- if (!!!productData.declinations.length)
354
- return "continue";
355
- var declinations = productData.declinations;
356
- var declinationsToAddDiscount = declinations
357
- .filter(function (declination) { return !!(0, discount_1.shouldApplyRuleToDeclination)(_this.data(), declination); })
358
- .map(function (d) { return d.sku; });
359
- var isSameSku = function (sku) {
360
- return !!declinationsToAddDiscount.some(function (aSku) { return !!aSku && !!sku && aSku.toLowerCase().trim() === sku.toLowerCase().trim(); });
361
- };
362
- try {
363
- batch.set(productSnap.path, productSnap.id, {
364
- declinations: declinations.map(function (_declination, _dIndex) {
365
- if (_declination.discount_rules.some(function (_dr) { return _dr.id === _this.data().id; }))
366
- return __assign(__assign({}, _declination), { discount_rules: _declination.discount_rules
367
- .map(function (_dr) {
368
- if (_dr.id !== _this.data().id)
369
- return _dr;
370
- if (!!isSameSku(_declination.sku)) {
371
- if (!!!_this.data().draft)
372
- return _this.data();
373
- }
374
- return undefined;
375
- })
376
- .filter(function (_dr) { return !!_dr; }) });
377
- return __assign(__assign({}, _declination), { discount_rules: __spreadArray(__spreadArray([], _declination.discount_rules, true), (!!isSameSku(_declination.sku) ? [_this.data()] : []), true) });
378
- })
379
- }, { merge: true });
380
- }
381
- catch (error) {
382
- console.log('error dans le catch: ', error);
383
- throw error;
384
- }
385
- };
386
- for (_b = 0, products_2 = products; _b < products_2.length; _b++) {
387
- productSnap = products_2[_b];
388
- _loop_1(productSnap);
389
- }
390
- _c.label = 5;
391
- case 5:
392
- _c.trys.push([5, 7, , 8]);
393
- return [4, batch.commit()];
394
- case 6:
395
- _c.sent();
396
- return [3, 8];
397
- case 7:
398
- error_7 = _c.sent();
399
- (0, console_1.errorMessage)("Error while commiting products spread: ".concat(error_7, " - ").concat(JSON.stringify(error_7)));
400
- throw error_7;
401
- case 8:
402
- _i++;
403
- return [3, 4];
404
- case 9:
405
- console.log("Batch is done");
406
- return [3, 11];
407
- case 10:
408
- error_8 = _c.sent();
409
- throw error_8;
410
- case 11: return [2];
411
- }
412
- });
413
- }); };
414
- _this._spreadToProduct = function () { return __awaiter(_this, void 0, void 0, function () {
415
- var productSlug, productSnap, product, productData, declinations, space, declinationsToAddDiscount, error_9;
416
- var _this = this;
417
- return __generator(this, function (_a) {
418
- switch (_a.label) {
419
- case 0:
420
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
421
- throw new Error("Can't access products collection to fetch all products");
422
- }
423
- productSlug = this.data().appliesTo.value;
424
- return [4, DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), { query: [{ field: 'slug', operator: '==', value: productSlug }] })];
425
- case 1:
426
- productSnap = _a.sent();
427
- if (!!!productSnap.length)
428
- return [2];
429
- product = productSnap[0];
430
- if (!product.exists)
431
- return [2];
432
- if (!!!product)
433
- return [2];
434
- productData = product.data;
435
- if (!!!productData)
436
- return [2];
437
- if (!!!productData.declinations)
438
- return [2];
439
- declinations = productData.declinations;
440
- return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
441
- case 2:
442
- space = _a.sent();
443
- if (!!!space)
444
- return [2];
445
- declinationsToAddDiscount = declinations.filter(function (declination) { return !!(0, discount_1.shouldApplyRuleToDeclination)(_this.data(), declination); });
446
- _a.label = 3;
447
- case 3:
448
- _a.trys.push([3, 5, , 6]);
449
- return [4, DatabaseService_1.default.saveDocument(product.path, product.id, product.timestamp, {
450
- declinations: declinations.map(function (_declination, _dIndex) {
451
- if (!!_declination.discount_rules.find(function (_dr) { return _dr.id === _this.data().id; }))
452
- return __assign(__assign({}, _declination), { discount_rules: _declination.discount_rules
453
- .map(function (_dr) {
454
- if (_dr.id !== _this.data().id)
455
- return _dr;
456
- if (!!declinationsToAddDiscount.some(function (decliDiscount) {
457
- return decliDiscount.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim();
458
- })) {
459
- if (!!_this.data().draft)
460
- return undefined;
461
- return _this.data();
462
- }
463
- return undefined;
464
- })
465
- .filter(function (_dr) { return !!_dr; }) });
466
- return __assign(__assign({}, _declination), { discount_rules: __spreadArray(__spreadArray([], _declination.discount_rules, true), (!!declinationsToAddDiscount.some(function (decliDiscount) { return decliDiscount.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim(); })
467
- ? [_this.data()]
468
- : []), true) });
469
- })
470
- }, { merge: true })];
471
- case 4:
472
- _a.sent();
473
- return [3, 6];
474
- case 5:
475
- error_9 = _a.sent();
476
- throw error_9;
477
- case 6: return [2];
478
- }
479
- });
480
- }); };
481
- _this._spreadToProductCategories = function () { return __awaiter(_this, void 0, void 0, function () {
482
- var discountData, space, allProducts, _i, _a, products, batch, _loop_2, _b, products_3, productSnap, error_10, error_11;
483
- var _this = this;
484
- return __generator(this, function (_c) {
485
- switch (_c.label) {
486
- case 0:
487
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
488
- throw new Error("Can't access products collection to fetch all products");
489
- }
490
- discountData = this.data();
491
- if (!!!discountData)
492
- return [2];
493
- return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
494
- case 1:
495
- space = _c.sent();
496
- if (!!!space)
497
- return [2];
498
- _c.label = 2;
499
- case 2:
500
- _c.trys.push([2, 10, , 11]);
501
- return [4, this._fetchProductsByBatch({
502
- queryToApply: [{ field: 'category', operator: '==', value: discountData.appliesTo.value }]
503
- })];
504
- case 3:
505
- allProducts = _c.sent();
506
- _i = 0, _a = (0, chunk_1.default)(allProducts, 100);
507
- _c.label = 4;
508
- case 4:
509
- if (!(_i < _a.length)) return [3, 9];
510
- products = _a[_i];
511
- batch = new BatchUtils_1.default();
512
- _loop_2 = function (productSnap) {
513
- if (!productSnap.exists)
514
- return "continue";
515
- var productData = productSnap.data;
516
- if (!!!productData)
517
- return "continue";
518
- if (!!!productData.category)
519
- return "continue";
520
- if (!!discountData.rules && !!discountData.rules.length) {
521
- if (!!discountData.rules.find(function (rule) { return rule.field === 'product'; })) {
522
- var rulesOnProduct = discountData.rules.filter(function (rule) { return rule.field === 'product'; });
523
- if (!!!rulesOnProduct.find(function (rule) {
524
- return !!rule.ruleDetails.find(function (ruleDetail) { return ruleDetail.value.includes(productData.slug); });
525
- })) {
526
- return "continue";
527
- }
528
- }
529
- }
530
- if (!!!productData.declinations)
531
- return "continue";
532
- if (!!!productData.declinations.length)
533
- return "continue";
534
- var declinations = productData.declinations;
535
- var declinationsToAddDiscount = declinations.filter(function (declination) { return !!(0, discount_1.shouldApplyRuleToDeclination)(_this.data(), declination); });
536
- try {
537
- batch.set(productSnap.path, productSnap.id, {
538
- declinations: declinations.map(function (_declination, _dIndex) {
539
- if (!!_declination.discount_rules.find(function (_dr) { return _dr.id === _this.data().id; }))
540
- return __assign(__assign({}, _declination), { discount_rules: _declination.discount_rules
541
- .map(function (_dr) {
542
- if (_dr.id !== _this.data().id)
543
- return _dr;
544
- if (!!declinationsToAddDiscount.some(function (__declination) {
545
- return __declination.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim();
546
- })) {
547
- if (!!_this.data().draft)
548
- return undefined;
549
- return _this.data();
550
- }
551
- return undefined;
552
- })
553
- .filter(function (_dr) { return !!_dr; }) });
554
- return __assign(__assign({}, _declination), { discount_rules: __spreadArray(__spreadArray([], _declination.discount_rules, true), (!!declinationsToAddDiscount.some(function (__declination) {
555
- return __declination.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim();
556
- })
557
- ? [_this.data()]
558
- : []), true) });
559
- })
560
- }, { merge: true });
561
- }
562
- catch (error) {
563
- throw error;
564
- }
565
- };
566
- for (_b = 0, products_3 = products; _b < products_3.length; _b++) {
567
- productSnap = products_3[_b];
568
- _loop_2(productSnap);
569
- }
570
- _c.label = 5;
571
- case 5:
572
- _c.trys.push([5, 7, , 8]);
573
- return [4, batch.commit()];
574
- case 6:
575
- _c.sent();
576
- return [3, 8];
577
- case 7:
578
- error_10 = _c.sent();
579
- (0, console_1.errorMessage)("Error while commiting products spread: ".concat(error_10, " - ").concat(JSON.stringify(error_10)));
580
- throw error_10;
581
- case 8:
582
- _i++;
583
- return [3, 4];
584
- case 9: return [3, 11];
585
- case 10:
586
- error_11 = _c.sent();
587
- throw error_11;
588
- case 11: return [2];
589
- }
590
- });
591
- }); };
592
- _this._unspreadToCategories = function () { return __awaiter(_this, void 0, void 0, function () {
593
- var discountData, space, allProducts, _i, _a, products, batch, _loop_3, _b, products_4, productSnap, error_12, error_13;
594
- var _this = this;
595
- return __generator(this, function (_c) {
596
- switch (_c.label) {
597
- case 0:
598
- if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
599
- console.log('path is /, returning');
600
- throw new Error("Can't access products collection to fetch all categories");
601
- }
602
- discountData = this.data();
603
- if (!!!discountData) {
604
- console.log('no discount data! Returning');
605
- return [2];
606
- }
607
- return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
608
- case 1:
609
- space = _c.sent();
610
- if (!!!space) {
611
- console.log('no space! returning');
612
- return [2];
613
- }
614
- _c.label = 2;
615
- case 2:
616
- _c.trys.push([2, 10, , 11]);
617
- return [4, this._fetchProductsByBatch({
618
- queryToApply: [{ field: 'category', operator: '==', value: discountData.appliesTo.value }]
619
- })];
620
- case 3:
621
- allProducts = _c.sent();
622
- if (!!!allProducts.length) {
623
- console.log('no products with category found, returning!');
624
- return [2];
625
- }
626
- console.log('allProducts with category ', discountData.appliesTo.value, ': ', allProducts.length);
627
- _i = 0, _a = (0, chunk_1.default)(allProducts, 100);
628
- _c.label = 4;
629
- case 4:
630
- if (!(_i < _a.length)) return [3, 9];
631
- products = _a[_i];
632
- batch = new BatchUtils_1.default();
633
- _loop_3 = function (productSnap) {
634
- console.log('does it exist?: ', productSnap.exists);
635
- if (!productSnap.exists)
636
- return "continue";
637
- var productData = productSnap.data;
638
- console.log('got productData ? :', !!productData);
639
- if (!!!productData)
640
- return "continue";
641
- console.log('got category?: ', productData.category);
642
- if (!!!productData.category)
643
- return "continue";
644
- if (!!discountData.rules && !!discountData.rules.length) {
645
- var rulesOnProduct = discountData.rules.filter(function (rule) { return rule.field === 'product'; });
646
- if (!!rulesOnProduct.length) {
647
- if (!!!rulesOnProduct.find(function (rule) {
648
- return !!rule.ruleDetails.find(function (ruleDetail) { return ruleDetail.value.includes(productData.slug); });
649
- })) {
650
- return "continue";
651
- }
652
- }
653
- }
654
- console.log('has declinations? : ', !!productData.declinations && !!productData.declinations.length);
655
- if (!!!productData.declinations)
656
- return "continue";
657
- if (!!!productData.declinations.length)
658
- return "continue";
659
- var declinations = productData.declinations;
660
- try {
661
- batch.set(productSnap.path, productSnap.id, {
662
- declinations: declinations.map(function (_declination, _dIndex) {
663
- if (!!_declination.discount_rules.some(function (_dr) { return _dr.id === _this.data().id; })) {
664
- var newDiscountRules = _declination.discount_rules
665
- .filter(function (_dr) { return _dr.id !== _this.data().id; })
666
- .filter(function (_dr) { return !!_dr; });
667
- return __assign(__assign({}, _declination), { discount_rules: newDiscountRules });
668
- }
669
- return _declination;
670
- })
671
- }, { merge: true });
672
- }
673
- catch (error) {
674
- throw error;
675
- }
676
- };
677
- for (_b = 0, products_4 = products; _b < products_4.length; _b++) {
678
- productSnap = products_4[_b];
679
- _loop_3(productSnap);
680
- }
681
- _c.label = 5;
682
- case 5:
683
- _c.trys.push([5, 7, , 8]);
684
- return [4, batch.commit()];
685
- case 6:
686
- _c.sent();
687
- return [3, 8];
688
- case 7:
689
- error_12 = _c.sent();
690
- (0, console_1.errorMessage)("Error while commiting products unspread: ".concat(error_12, " - ").concat(JSON.stringify(error_12)));
691
- throw error_12;
692
- case 8:
693
- _i++;
694
- return [3, 4];
695
- case 9: return [3, 11];
696
- case 10:
697
- error_13 = _c.sent();
698
- throw error_13;
699
- case 11: return [2];
700
- }
701
- });
702
- }); };
703
- _this._fetchProductsByBatch = function (props) { return __awaiter(_this, void 0, void 0, function () {
704
- var allProducts, lastID, fetchProductLimit, fetchProducts, result, lastEntryData, e_1;
705
- var _this = this;
706
- return __generator(this, function (_a) {
707
- switch (_a.label) {
708
- case 0:
709
- allProducts = [];
710
- lastID = '';
711
- fetchProductLimit = 500;
712
- fetchProducts = function (lastID) { return __awaiter(_this, void 0, void 0, function () {
713
- var result;
714
- return __generator(this, function (_a) {
715
- switch (_a.label) {
716
- case 0: return [4, DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), __assign(__assign({ orderBy: !!props && !!props.orderByField ? props.orderByField : 'id', limit: !!props && !!props.fetchLimit ? props.fetchLimit : 500 }, (!!lastID ? { startAfter: lastID } : {})), (!!props && !!props.queryToApply ? { query: props.queryToApply } : {})))];
717
- case 1:
718
- result = _a.sent();
719
- return [2, result];
720
- }
721
- });
722
- }); };
723
- _a.label = 1;
724
- case 1:
725
- _a.trys.push([1, 5, , 6]);
726
- _a.label = 2;
727
- case 2:
728
- if (!true) return [3, 4];
729
- return [4, fetchProducts(lastID)];
730
- case 3:
731
- result = _a.sent();
732
- allProducts.push.apply(allProducts, result);
733
- if (!!result.length) {
734
- lastEntryData = result[result.length - 1].data;
735
- if (!!!lastEntryData || !!!lastEntryData.id) {
736
- console.log('cannot continue checks for bulk fetch, last entry has no data or no id. Returning found entries up to this point.');
737
- return [3, 4];
738
- }
739
- lastID = lastEntryData.id;
740
- }
741
- if (result.length < fetchProductLimit)
742
- return [3, 4];
743
- return [3, 2];
744
- case 4: return [3, 6];
745
- case 5:
746
- e_1 = _a.sent();
747
- console.log('error on fetching products with category: ', e_1);
748
- return [3, 6];
749
- case 6: return [2, allProducts];
750
- }
751
- });
752
- }); };
753
- _this.spread = _this._spread;
754
- _this.unspread = _this._unspread;
755
- return _this;
756
- }
757
- return Discount;
758
- }(baseService_1.BaseServiceClass));
759
- exports.default = Discount;
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __generator = (this && this.__generator) || function (thisArg, body) {
38
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
+ function verb(n) { return function (v) { return step([n, v]); }; }
41
+ function step(op) {
42
+ if (f) throw new TypeError("Generator is already executing.");
43
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
44
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
+ if (y = 0, t) op = [op[0] & 2, t.value];
46
+ switch (op[0]) {
47
+ case 0: case 1: t = op; break;
48
+ case 4: _.label++; return { value: op[1], done: false };
49
+ case 5: _.label++; y = op[1]; op = [0]; continue;
50
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
+ default:
52
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
+ if (t[2]) _.ops.pop();
57
+ _.trys.pop(); continue;
58
+ }
59
+ op = body.call(thisArg, _);
60
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
+ }
63
+ };
64
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
65
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
66
+ if (ar || !(i in from)) {
67
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
68
+ ar[i] = from[i];
69
+ }
70
+ }
71
+ return to.concat(ar || Array.prototype.slice.call(from));
72
+ };
73
+ var __importDefault = (this && this.__importDefault) || function (mod) {
74
+ return (mod && mod.__esModule) ? mod : { "default": mod };
75
+ };
76
+ Object.defineProperty(exports, "__esModule", { value: true });
77
+ var console_1 = require("../../utils/console");
78
+ var discount_1 = require("../../utils/discount");
79
+ var Space_1 = __importDefault(require("../Space"));
80
+ var chunk_1 = __importDefault(require("lodash/chunk"));
81
+ var baseService_1 = require("../baseService");
82
+ var DatabaseService_1 = __importDefault(require("../../services/database/DatabaseService"));
83
+ var BatchUtils_1 = __importDefault(require("../../services/database/BatchUtils"));
84
+ var Discount = (function (_super) {
85
+ __extends(Discount, _super);
86
+ function Discount() {
87
+ var _this = _super !== null && _super.apply(this, arguments) || this;
88
+ _this.data = function () { return _this._data; };
89
+ _this._spread = function () { return __awaiter(_this, void 0, void 0, function () {
90
+ var associations, association, error_1;
91
+ return __generator(this, function (_a) {
92
+ switch (_a.label) {
93
+ case 0:
94
+ (0, console_1.workingMessage)('Spreading...');
95
+ associations = [];
96
+ _a.label = 1;
97
+ case 1:
98
+ _a.trys.push([1, 3, , 4]);
99
+ return [4, this._spreadTo(this.data().appliesTo.label)];
100
+ case 2:
101
+ association = _a.sent();
102
+ associations.push(association);
103
+ return [3, 4];
104
+ case 3:
105
+ error_1 = _a.sent();
106
+ (0, console_1.errorMessage)("Can't spread ".concat(this.data().appliesTo.label));
107
+ throw error_1;
108
+ case 4:
109
+ (0, console_1.workingMessage)('Done spreading!');
110
+ return [2];
111
+ }
112
+ });
113
+ }); };
114
+ _this._unspread = function (label) { return __awaiter(_this, void 0, void 0, function () {
115
+ var associations, association, error_2;
116
+ return __generator(this, function (_a) {
117
+ switch (_a.label) {
118
+ case 0:
119
+ (0, console_1.workingMessage)('Unspreading...');
120
+ console.log('dans le _unspread');
121
+ associations = [];
122
+ _a.label = 1;
123
+ case 1:
124
+ _a.trys.push([1, 3, , 4]);
125
+ return [4, this._unspreadTo(!!label ? label : this.data().appliesTo.label)];
126
+ case 2:
127
+ association = _a.sent();
128
+ associations.push(association);
129
+ return [3, 4];
130
+ case 3:
131
+ error_2 = _a.sent();
132
+ (0, console_1.errorMessage)("Can't unspread ".concat(this.data().appliesTo.label));
133
+ throw error_2;
134
+ case 4:
135
+ (0, console_1.workingMessage)('Done unspreading!');
136
+ return [2];
137
+ }
138
+ });
139
+ }); };
140
+ _this._spreadTo = function (typeOfSpread) { return __awaiter(_this, void 0, void 0, function () {
141
+ var _a, error_3;
142
+ return __generator(this, function (_b) {
143
+ switch (_b.label) {
144
+ case 0:
145
+ _b.trys.push([0, 9, , 10]);
146
+ _a = typeOfSpread;
147
+ switch (_a) {
148
+ case 'allproducts': return [3, 1];
149
+ case 'product': return [3, 3];
150
+ case 'category': return [3, 5];
151
+ }
152
+ return [3, 7];
153
+ case 1: return [4, this._spreadToProducts()];
154
+ case 2: return [2, _b.sent()];
155
+ case 3: return [4, this._spreadToProduct()];
156
+ case 4: return [2, _b.sent()];
157
+ case 5: return [4, this._spreadToProductCategories()];
158
+ case 6: return [2, _b.sent()];
159
+ case 7: return [3, 8];
160
+ case 8: return [3, 10];
161
+ case 9:
162
+ error_3 = _b.sent();
163
+ console.log('error: ', error_3);
164
+ return [3, 10];
165
+ case 10: return [2];
166
+ }
167
+ });
168
+ }); };
169
+ _this._unspreadTo = function (typeOfSpread) { return __awaiter(_this, void 0, void 0, function () {
170
+ var _a;
171
+ return __generator(this, function (_b) {
172
+ switch (_b.label) {
173
+ case 0:
174
+ console.log('dans le _unspreadTo: ', typeOfSpread);
175
+ _a = typeOfSpread;
176
+ switch (_a) {
177
+ case 'allproducts': return [3, 1];
178
+ case 'product': return [3, 3];
179
+ case 'category': return [3, 5];
180
+ }
181
+ return [3, 7];
182
+ case 1: return [4, this._unspreadToProducts()];
183
+ case 2: return [2, _b.sent()];
184
+ case 3: return [4, this._unspreadToProduct()];
185
+ case 4: return [2, _b.sent()];
186
+ case 5:
187
+ console.log('calling unspread to Categories');
188
+ return [4, this._unspreadToCategories()];
189
+ case 6: return [2, _b.sent()];
190
+ case 7: return [3, 8];
191
+ case 8: return [2];
192
+ }
193
+ });
194
+ }); };
195
+ _this._unspreadToProducts = function () { return __awaiter(_this, void 0, void 0, function () {
196
+ var allProducts, _i, _a, products, batch, _b, products_1, productSnap, productData, declinations, error_4, error_5;
197
+ var _this = this;
198
+ return __generator(this, function (_c) {
199
+ switch (_c.label) {
200
+ case 0:
201
+ console.log('dans le _unspreadToProducts');
202
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
203
+ throw new Error("Can't access products collection to fetch all products");
204
+ }
205
+ _c.label = 1;
206
+ case 1:
207
+ _c.trys.push([1, 9, , 10]);
208
+ return [4, this._fetchProductsByBatch({})];
209
+ case 2:
210
+ allProducts = _c.sent();
211
+ _i = 0, _a = (0, chunk_1.default)(allProducts, 100);
212
+ _c.label = 3;
213
+ case 3:
214
+ if (!(_i < _a.length)) return [3, 8];
215
+ products = _a[_i];
216
+ batch = new BatchUtils_1.default();
217
+ for (_b = 0, products_1 = products; _b < products_1.length; _b++) {
218
+ productSnap = products_1[_b];
219
+ if (!productSnap.exists)
220
+ continue;
221
+ productData = productSnap.data;
222
+ if (!!!productData)
223
+ continue;
224
+ if (!!!productData.declinations)
225
+ continue;
226
+ if (!!!productData.declinations.length)
227
+ continue;
228
+ declinations = productData.declinations;
229
+ try {
230
+ batch.set(productSnap.path, productSnap.id, {
231
+ declinations: declinations.map(function (_declination, _dIndex) {
232
+ if (!!_declination.discount_rules.find(function (_dr) { return _dr.id === _this.data().id; })) {
233
+ var newDiscountRules = _declination.discount_rules
234
+ .filter(function (_dr) { return _dr.id !== _this.data().id; })
235
+ .filter(function (_dr) { return !!_dr; });
236
+ return __assign(__assign({}, _declination), { discount_rules: newDiscountRules });
237
+ }
238
+ return _declination;
239
+ })
240
+ }, { merge: true });
241
+ }
242
+ catch (error) {
243
+ throw error;
244
+ }
245
+ }
246
+ _c.label = 4;
247
+ case 4:
248
+ _c.trys.push([4, 6, , 7]);
249
+ return [4, batch.commit()];
250
+ case 5:
251
+ _c.sent();
252
+ return [3, 7];
253
+ case 6:
254
+ error_4 = _c.sent();
255
+ (0, console_1.errorMessage)("Error while commiting products spread: ".concat(error_4, " - ").concat(JSON.stringify(error_4)));
256
+ throw error_4;
257
+ case 7:
258
+ _i++;
259
+ return [3, 3];
260
+ case 8: return [3, 10];
261
+ case 9:
262
+ error_5 = _c.sent();
263
+ throw error_5;
264
+ case 10: return [2];
265
+ }
266
+ });
267
+ }); };
268
+ _this._unspreadToProduct = function () { return __awaiter(_this, void 0, void 0, function () {
269
+ var productSlug, productSnap, product, productData, declinations, error_6;
270
+ var _this = this;
271
+ return __generator(this, function (_a) {
272
+ switch (_a.label) {
273
+ case 0:
274
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
275
+ throw new Error("Can't access products collection to fetch all products");
276
+ }
277
+ productSlug = this.data().appliesTo.value;
278
+ return [4, DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), { query: [{ field: 'slug', operator: '==', value: productSlug }] })];
279
+ case 1:
280
+ productSnap = _a.sent();
281
+ if (!!!productSnap.length)
282
+ return [2];
283
+ product = productSnap[0];
284
+ if (!product.exists)
285
+ return [2];
286
+ if (!!!product)
287
+ return [2];
288
+ productData = product.data;
289
+ if (!!!productData)
290
+ return [2];
291
+ if (!!!productData.declinations)
292
+ return [2];
293
+ declinations = productData.declinations;
294
+ _a.label = 2;
295
+ case 2:
296
+ _a.trys.push([2, 4, , 5]);
297
+ return [4, DatabaseService_1.default.saveDocument(product.path, product.id, product.timestamp, {
298
+ declinations: declinations.map(function (_declination, _dIndex) {
299
+ if (!!_declination.discount_rules.find(function (_dr) { return _dr.id === _this.data().id; })) {
300
+ var newDiscountRules = _declination.discount_rules
301
+ .filter(function (_dr) { return _dr.id !== _this.data().id; })
302
+ .filter(function (_dr) { return !!_dr; });
303
+ return __assign(__assign({}, _declination), { discount_rules: newDiscountRules });
304
+ }
305
+ return _declination;
306
+ })
307
+ }, { merge: true })];
308
+ case 3:
309
+ _a.sent();
310
+ return [3, 5];
311
+ case 4:
312
+ error_6 = _a.sent();
313
+ throw error_6;
314
+ case 5: return [2];
315
+ }
316
+ });
317
+ }); };
318
+ _this._spreadToProducts = function () { return __awaiter(_this, void 0, void 0, function () {
319
+ var space, allProducts, _i, _a, products, batch, _loop_1, _b, products_2, productSnap, error_7, error_8;
320
+ var _this = this;
321
+ return __generator(this, function (_c) {
322
+ switch (_c.label) {
323
+ case 0:
324
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
325
+ throw new Error("Can't access products collection to fetch all products");
326
+ }
327
+ return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
328
+ case 1:
329
+ space = _c.sent();
330
+ if (!!!space)
331
+ return [2];
332
+ _c.label = 2;
333
+ case 2:
334
+ _c.trys.push([2, 10, , 11]);
335
+ return [4, this._fetchProductsByBatch()];
336
+ case 3:
337
+ allProducts = _c.sent();
338
+ console.log("".concat(allProducts.length, " products fetched"));
339
+ _i = 0, _a = (0, chunk_1.default)(allProducts, 100);
340
+ _c.label = 4;
341
+ case 4:
342
+ if (!(_i < _a.length)) return [3, 9];
343
+ products = _a[_i];
344
+ batch = new BatchUtils_1.default();
345
+ _loop_1 = function (productSnap) {
346
+ if (!productSnap.exists)
347
+ return "continue";
348
+ var productData = productSnap.data;
349
+ if (!!!productData)
350
+ return "continue";
351
+ if (!!!productData.declinations)
352
+ return "continue";
353
+ if (!!!productData.declinations.length)
354
+ return "continue";
355
+ var declinations = productData.declinations;
356
+ var declinationsToAddDiscount = declinations
357
+ .filter(function (declination) { return !!(0, discount_1.shouldApplyRuleToDeclination)(_this.data(), declination); })
358
+ .map(function (d) { return d.sku; });
359
+ var isSameSku = function (sku) {
360
+ return !!declinationsToAddDiscount.some(function (aSku) { return !!aSku && !!sku && aSku.toLowerCase().trim() === sku.toLowerCase().trim(); });
361
+ };
362
+ try {
363
+ batch.set(productSnap.path, productSnap.id, {
364
+ declinations: declinations.map(function (_declination, _dIndex) {
365
+ if (_declination.discount_rules.some(function (_dr) { return _dr.id === _this.data().id; }))
366
+ return __assign(__assign({}, _declination), { discount_rules: _declination.discount_rules
367
+ .map(function (_dr) {
368
+ if (_dr.id !== _this.data().id)
369
+ return _dr;
370
+ if (!!isSameSku(_declination.sku)) {
371
+ if (!!!_this.data().draft)
372
+ return _this.data();
373
+ }
374
+ return undefined;
375
+ })
376
+ .filter(function (_dr) { return !!_dr; }) });
377
+ return __assign(__assign({}, _declination), { discount_rules: __spreadArray(__spreadArray([], _declination.discount_rules, true), (!!isSameSku(_declination.sku) ? [_this.data()] : []), true) });
378
+ })
379
+ }, { merge: true });
380
+ }
381
+ catch (error) {
382
+ console.log('error dans le catch: ', error);
383
+ throw error;
384
+ }
385
+ };
386
+ for (_b = 0, products_2 = products; _b < products_2.length; _b++) {
387
+ productSnap = products_2[_b];
388
+ _loop_1(productSnap);
389
+ }
390
+ _c.label = 5;
391
+ case 5:
392
+ _c.trys.push([5, 7, , 8]);
393
+ return [4, batch.commit()];
394
+ case 6:
395
+ _c.sent();
396
+ return [3, 8];
397
+ case 7:
398
+ error_7 = _c.sent();
399
+ (0, console_1.errorMessage)("Error while commiting products spread: ".concat(error_7, " - ").concat(JSON.stringify(error_7)));
400
+ throw error_7;
401
+ case 8:
402
+ _i++;
403
+ return [3, 4];
404
+ case 9:
405
+ console.log("Batch is done");
406
+ return [3, 11];
407
+ case 10:
408
+ error_8 = _c.sent();
409
+ throw error_8;
410
+ case 11: return [2];
411
+ }
412
+ });
413
+ }); };
414
+ _this._spreadToProduct = function () { return __awaiter(_this, void 0, void 0, function () {
415
+ var productSlug, productSnap, product, productData, declinations, space, declinationsToAddDiscount, error_9;
416
+ var _this = this;
417
+ return __generator(this, function (_a) {
418
+ switch (_a.label) {
419
+ case 0:
420
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
421
+ throw new Error("Can't access products collection to fetch all products");
422
+ }
423
+ productSlug = this.data().appliesTo.value;
424
+ return [4, DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), { query: [{ field: 'slug', operator: '==', value: productSlug }] })];
425
+ case 1:
426
+ productSnap = _a.sent();
427
+ if (!!!productSnap.length)
428
+ return [2];
429
+ product = productSnap[0];
430
+ if (!product.exists)
431
+ return [2];
432
+ if (!!!product)
433
+ return [2];
434
+ productData = product.data;
435
+ if (!!!productData)
436
+ return [2];
437
+ if (!!!productData.declinations)
438
+ return [2];
439
+ declinations = productData.declinations;
440
+ return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
441
+ case 2:
442
+ space = _a.sent();
443
+ if (!!!space)
444
+ return [2];
445
+ declinationsToAddDiscount = declinations.filter(function (declination) { return !!(0, discount_1.shouldApplyRuleToDeclination)(_this.data(), declination); });
446
+ _a.label = 3;
447
+ case 3:
448
+ _a.trys.push([3, 5, , 6]);
449
+ return [4, DatabaseService_1.default.saveDocument(product.path, product.id, product.timestamp, {
450
+ declinations: declinations.map(function (_declination, _dIndex) {
451
+ if (!!_declination.discount_rules.find(function (_dr) { return _dr.id === _this.data().id; }))
452
+ return __assign(__assign({}, _declination), { discount_rules: _declination.discount_rules
453
+ .map(function (_dr) {
454
+ if (_dr.id !== _this.data().id)
455
+ return _dr;
456
+ if (!!declinationsToAddDiscount.some(function (decliDiscount) {
457
+ return decliDiscount.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim();
458
+ })) {
459
+ if (!!_this.data().draft)
460
+ return undefined;
461
+ return _this.data();
462
+ }
463
+ return undefined;
464
+ })
465
+ .filter(function (_dr) { return !!_dr; }) });
466
+ return __assign(__assign({}, _declination), { discount_rules: __spreadArray(__spreadArray([], _declination.discount_rules, true), (!!declinationsToAddDiscount.some(function (decliDiscount) { return decliDiscount.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim(); })
467
+ ? [_this.data()]
468
+ : []), true) });
469
+ })
470
+ }, { merge: true })];
471
+ case 4:
472
+ _a.sent();
473
+ return [3, 6];
474
+ case 5:
475
+ error_9 = _a.sent();
476
+ throw error_9;
477
+ case 6: return [2];
478
+ }
479
+ });
480
+ }); };
481
+ _this._spreadToProductCategories = function () { return __awaiter(_this, void 0, void 0, function () {
482
+ var discountData, space, allProducts, _i, _a, products, batch, _loop_2, _b, products_3, productSnap, error_10, error_11;
483
+ var _this = this;
484
+ return __generator(this, function (_c) {
485
+ switch (_c.label) {
486
+ case 0:
487
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
488
+ throw new Error("Can't access products collection to fetch all products");
489
+ }
490
+ discountData = this.data();
491
+ if (!!!discountData)
492
+ return [2];
493
+ return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
494
+ case 1:
495
+ space = _c.sent();
496
+ if (!!!space)
497
+ return [2];
498
+ _c.label = 2;
499
+ case 2:
500
+ _c.trys.push([2, 10, , 11]);
501
+ return [4, this._fetchProductsByBatch({
502
+ queryToApply: [{ field: 'category', operator: '==', value: discountData.appliesTo.value }]
503
+ })];
504
+ case 3:
505
+ allProducts = _c.sent();
506
+ _i = 0, _a = (0, chunk_1.default)(allProducts, 100);
507
+ _c.label = 4;
508
+ case 4:
509
+ if (!(_i < _a.length)) return [3, 9];
510
+ products = _a[_i];
511
+ batch = new BatchUtils_1.default();
512
+ _loop_2 = function (productSnap) {
513
+ if (!productSnap.exists)
514
+ return "continue";
515
+ var productData = productSnap.data;
516
+ if (!!!productData)
517
+ return "continue";
518
+ if (!!!productData.category)
519
+ return "continue";
520
+ if (!!discountData.rules && !!discountData.rules.length) {
521
+ if (!!discountData.rules.find(function (rule) { return rule.field === 'product'; })) {
522
+ var rulesOnProduct = discountData.rules.filter(function (rule) { return rule.field === 'product'; });
523
+ if (!!!rulesOnProduct.find(function (rule) {
524
+ return !!rule.ruleDetails.find(function (ruleDetail) { return ruleDetail.value.includes(productData.slug); });
525
+ })) {
526
+ return "continue";
527
+ }
528
+ }
529
+ }
530
+ if (!!!productData.declinations)
531
+ return "continue";
532
+ if (!!!productData.declinations.length)
533
+ return "continue";
534
+ var declinations = productData.declinations;
535
+ var declinationsToAddDiscount = declinations.filter(function (declination) { return !!(0, discount_1.shouldApplyRuleToDeclination)(_this.data(), declination); });
536
+ try {
537
+ batch.set(productSnap.path, productSnap.id, {
538
+ declinations: declinations.map(function (_declination, _dIndex) {
539
+ if (!!_declination.discount_rules.find(function (_dr) { return _dr.id === _this.data().id; }))
540
+ return __assign(__assign({}, _declination), { discount_rules: _declination.discount_rules
541
+ .map(function (_dr) {
542
+ if (_dr.id !== _this.data().id)
543
+ return _dr;
544
+ if (!!declinationsToAddDiscount.some(function (__declination) {
545
+ return __declination.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim();
546
+ })) {
547
+ if (!!_this.data().draft)
548
+ return undefined;
549
+ return _this.data();
550
+ }
551
+ return undefined;
552
+ })
553
+ .filter(function (_dr) { return !!_dr; }) });
554
+ return __assign(__assign({}, _declination), { discount_rules: __spreadArray(__spreadArray([], _declination.discount_rules, true), (!!declinationsToAddDiscount.some(function (__declination) {
555
+ return __declination.sku.toLowerCase().trim() === _declination.sku.toLowerCase().trim();
556
+ })
557
+ ? [_this.data()]
558
+ : []), true) });
559
+ })
560
+ }, { merge: true });
561
+ }
562
+ catch (error) {
563
+ throw error;
564
+ }
565
+ };
566
+ for (_b = 0, products_3 = products; _b < products_3.length; _b++) {
567
+ productSnap = products_3[_b];
568
+ _loop_2(productSnap);
569
+ }
570
+ _c.label = 5;
571
+ case 5:
572
+ _c.trys.push([5, 7, , 8]);
573
+ return [4, batch.commit()];
574
+ case 6:
575
+ _c.sent();
576
+ return [3, 8];
577
+ case 7:
578
+ error_10 = _c.sent();
579
+ (0, console_1.errorMessage)("Error while commiting products spread: ".concat(error_10, " - ").concat(JSON.stringify(error_10)));
580
+ throw error_10;
581
+ case 8:
582
+ _i++;
583
+ return [3, 4];
584
+ case 9: return [3, 11];
585
+ case 10:
586
+ error_11 = _c.sent();
587
+ throw error_11;
588
+ case 11: return [2];
589
+ }
590
+ });
591
+ }); };
592
+ _this._unspreadToCategories = function () { return __awaiter(_this, void 0, void 0, function () {
593
+ var discountData, space, allProducts, _i, _a, products, batch, _loop_3, _b, products_4, productSnap, error_12, error_13;
594
+ var _this = this;
595
+ return __generator(this, function (_c) {
596
+ switch (_c.label) {
597
+ case 0:
598
+ if (DatabaseService_1.default.getPathParent(this._collection.path) == '/') {
599
+ console.log('path is /, returning');
600
+ throw new Error("Can't access products collection to fetch all categories");
601
+ }
602
+ discountData = this.data();
603
+ if (!!!discountData) {
604
+ console.log('no discount data! Returning');
605
+ return [2];
606
+ }
607
+ return [4, Space_1.default.getCurrentSpaceWithRef(this._collection.path, this._user)];
608
+ case 1:
609
+ space = _c.sent();
610
+ if (!!!space) {
611
+ console.log('no space! returning');
612
+ return [2];
613
+ }
614
+ _c.label = 2;
615
+ case 2:
616
+ _c.trys.push([2, 10, , 11]);
617
+ return [4, this._fetchProductsByBatch({
618
+ queryToApply: [{ field: 'category', operator: '==', value: discountData.appliesTo.value }]
619
+ })];
620
+ case 3:
621
+ allProducts = _c.sent();
622
+ if (!!!allProducts.length) {
623
+ console.log('no products with category found, returning!');
624
+ return [2];
625
+ }
626
+ console.log('allProducts with category ', discountData.appliesTo.value, ': ', allProducts.length);
627
+ _i = 0, _a = (0, chunk_1.default)(allProducts, 100);
628
+ _c.label = 4;
629
+ case 4:
630
+ if (!(_i < _a.length)) return [3, 9];
631
+ products = _a[_i];
632
+ batch = new BatchUtils_1.default();
633
+ _loop_3 = function (productSnap) {
634
+ console.log('does it exist?: ', productSnap.exists);
635
+ if (!productSnap.exists)
636
+ return "continue";
637
+ var productData = productSnap.data;
638
+ console.log('got productData ? :', !!productData);
639
+ if (!!!productData)
640
+ return "continue";
641
+ console.log('got category?: ', productData.category);
642
+ if (!!!productData.category)
643
+ return "continue";
644
+ if (!!discountData.rules && !!discountData.rules.length) {
645
+ var rulesOnProduct = discountData.rules.filter(function (rule) { return rule.field === 'product'; });
646
+ if (!!rulesOnProduct.length) {
647
+ if (!!!rulesOnProduct.find(function (rule) {
648
+ return !!rule.ruleDetails.find(function (ruleDetail) { return ruleDetail.value.includes(productData.slug); });
649
+ })) {
650
+ return "continue";
651
+ }
652
+ }
653
+ }
654
+ console.log('has declinations? : ', !!productData.declinations && !!productData.declinations.length);
655
+ if (!!!productData.declinations)
656
+ return "continue";
657
+ if (!!!productData.declinations.length)
658
+ return "continue";
659
+ var declinations = productData.declinations;
660
+ try {
661
+ batch.set(productSnap.path, productSnap.id, {
662
+ declinations: declinations.map(function (_declination, _dIndex) {
663
+ if (!!_declination.discount_rules.some(function (_dr) { return _dr.id === _this.data().id; })) {
664
+ var newDiscountRules = _declination.discount_rules
665
+ .filter(function (_dr) { return _dr.id !== _this.data().id; })
666
+ .filter(function (_dr) { return !!_dr; });
667
+ return __assign(__assign({}, _declination), { discount_rules: newDiscountRules });
668
+ }
669
+ return _declination;
670
+ })
671
+ }, { merge: true });
672
+ }
673
+ catch (error) {
674
+ throw error;
675
+ }
676
+ };
677
+ for (_b = 0, products_4 = products; _b < products_4.length; _b++) {
678
+ productSnap = products_4[_b];
679
+ _loop_3(productSnap);
680
+ }
681
+ _c.label = 5;
682
+ case 5:
683
+ _c.trys.push([5, 7, , 8]);
684
+ return [4, batch.commit()];
685
+ case 6:
686
+ _c.sent();
687
+ return [3, 8];
688
+ case 7:
689
+ error_12 = _c.sent();
690
+ (0, console_1.errorMessage)("Error while commiting products unspread: ".concat(error_12, " - ").concat(JSON.stringify(error_12)));
691
+ throw error_12;
692
+ case 8:
693
+ _i++;
694
+ return [3, 4];
695
+ case 9: return [3, 11];
696
+ case 10:
697
+ error_13 = _c.sent();
698
+ throw error_13;
699
+ case 11: return [2];
700
+ }
701
+ });
702
+ }); };
703
+ _this._fetchProductsByBatch = function (props) { return __awaiter(_this, void 0, void 0, function () {
704
+ var allProducts, lastID, fetchProductLimit, fetchProducts, result, lastEntryData, e_1;
705
+ var _this = this;
706
+ return __generator(this, function (_a) {
707
+ switch (_a.label) {
708
+ case 0:
709
+ allProducts = [];
710
+ lastID = '';
711
+ fetchProductLimit = 500;
712
+ fetchProducts = function (lastID) { return __awaiter(_this, void 0, void 0, function () {
713
+ var result;
714
+ return __generator(this, function (_a) {
715
+ switch (_a.label) {
716
+ case 0: return [4, DatabaseService_1.default.getDocuments(DatabaseService_1.default.addToPath(DatabaseService_1.default.getPathParent(this._collection.path), 'products'), __assign(__assign({ orderBy: !!props && !!props.orderByField ? props.orderByField : 'id', limit: !!props && !!props.fetchLimit ? props.fetchLimit : 500 }, (!!lastID ? { startAfter: lastID } : {})), (!!props && !!props.queryToApply ? { query: props.queryToApply } : {})))];
717
+ case 1:
718
+ result = _a.sent();
719
+ return [2, result];
720
+ }
721
+ });
722
+ }); };
723
+ _a.label = 1;
724
+ case 1:
725
+ _a.trys.push([1, 5, , 6]);
726
+ _a.label = 2;
727
+ case 2:
728
+ if (!true) return [3, 4];
729
+ return [4, fetchProducts(lastID)];
730
+ case 3:
731
+ result = _a.sent();
732
+ allProducts.push.apply(allProducts, result);
733
+ if (!!result.length) {
734
+ lastEntryData = result[result.length - 1].data;
735
+ if (!!!lastEntryData || !!!lastEntryData.id) {
736
+ console.log('cannot continue checks for bulk fetch, last entry has no data or no id. Returning found entries up to this point.');
737
+ return [3, 4];
738
+ }
739
+ lastID = lastEntryData.id;
740
+ }
741
+ if (result.length < fetchProductLimit)
742
+ return [3, 4];
743
+ return [3, 2];
744
+ case 4: return [3, 6];
745
+ case 5:
746
+ e_1 = _a.sent();
747
+ console.log('error on fetching products with category: ', e_1);
748
+ return [3, 6];
749
+ case 6: return [2, allProducts];
750
+ }
751
+ });
752
+ }); };
753
+ _this.spread = _this._spread;
754
+ _this.unspread = _this._unspread;
755
+ return _this;
756
+ }
757
+ return Discount;
758
+ }(baseService_1.BaseServiceClass));
759
+ exports.default = Discount;
760
760
  //# sourceMappingURL=index.js.map