addio-admin-sdk 1.7.193 → 1.7.195

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 (578) hide show
  1. package/.babelrc +17 -17
  2. package/.env.dev +14 -14
  3. package/.github/workflows/run_unit_test.yaml +48 -48
  4. package/.github/workflows/update_docs.yaml +32 -32
  5. package/addio-sdk-doc.md +1473 -1473
  6. package/changelog.md +582 -573
  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 +182 -182
  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 +53 -53
  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 +25 -25
  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 +74 -74
  30. package/dist/Interfaces/Booking/index.js +17 -17
  31. package/dist/Interfaces/Brand/index.d.ts +15 -15
  32. package/dist/Interfaces/Brand/index.js +2 -2
  33. package/dist/Interfaces/Buylist/index.d.ts +19 -19
  34. package/dist/Interfaces/Buylist/index.js +2 -2
  35. package/dist/Interfaces/CMS/index.d.ts +28 -28
  36. package/dist/Interfaces/CMS/index.js +5 -5
  37. package/dist/Interfaces/Cart/IElavonPayload.d.ts +93 -93
  38. package/dist/Interfaces/Cart/IElavonPayload.js +17 -17
  39. package/dist/Interfaces/Cart/IMarketPayload.d.ts +12 -12
  40. package/dist/Interfaces/Cart/IMarketPayload.js +2 -2
  41. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  42. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  43. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  44. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  45. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  46. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  47. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  48. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  49. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  50. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  51. package/dist/Interfaces/Cart/index.d.ts +471 -471
  52. package/dist/Interfaces/Cart/index.js +279 -279
  53. package/dist/Interfaces/CartReservedQuantities/index.d.ts +10 -10
  54. package/dist/Interfaces/CartReservedQuantities/index.js +2 -2
  55. package/dist/Interfaces/CashDrawers/index.d.ts +38 -38
  56. package/dist/Interfaces/CashDrawers/index.js +19 -19
  57. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  58. package/dist/Interfaces/Catalogue/index.js +37 -37
  59. package/dist/Interfaces/Category/index.d.ts +33 -33
  60. package/dist/Interfaces/Category/index.js +2 -2
  61. package/dist/Interfaces/Chart/index.d.ts +11 -11
  62. package/dist/Interfaces/Chart/index.js +2 -2
  63. package/dist/Interfaces/Class/index.d.ts +8 -8
  64. package/dist/Interfaces/Class/index.js +2 -2
  65. package/dist/Interfaces/Consent/index.d.ts +6 -6
  66. package/dist/Interfaces/Consent/index.js +2 -2
  67. package/dist/Interfaces/Context/IContextProps.d.ts +4 -4
  68. package/dist/Interfaces/Context/IContextProps.js +2 -2
  69. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  70. package/dist/Interfaces/Context/IContextState.js +2 -2
  71. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  72. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  73. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  74. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  75. package/dist/Interfaces/Customer/IStoreCredit.d.ts +13 -13
  76. package/dist/Interfaces/Customer/IStoreCredit.js +2 -2
  77. package/dist/Interfaces/Customer/index.d.ts +104 -104
  78. package/dist/Interfaces/Customer/index.js +148 -148
  79. package/dist/Interfaces/Declination/index.d.ts +117 -117
  80. package/dist/Interfaces/Declination/index.js +66 -66
  81. package/dist/Interfaces/Document/index.d.ts +8 -8
  82. package/dist/Interfaces/Document/index.js +2 -2
  83. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  84. package/dist/Interfaces/Elastic/index.js +2 -2
  85. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  86. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  87. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  88. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  89. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  90. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  91. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  92. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  93. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  94. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  95. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  96. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  97. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  98. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  99. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  100. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  101. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  102. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  103. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  104. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  105. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  106. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  107. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  108. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  109. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  110. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  111. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  112. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  113. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  114. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  115. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  116. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  117. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  118. package/dist/Interfaces/Email/IEmail.js +46 -46
  119. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  120. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  121. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  122. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  123. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  124. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  125. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  126. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  127. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  128. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  129. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  130. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  131. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  132. package/dist/Interfaces/ExportSchema/index.js +2 -2
  133. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  134. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  135. package/dist/Interfaces/ExternalService/ExternalProductsService.d.ts +4 -4
  136. package/dist/Interfaces/ExternalService/ExternalProductsService.js +2 -2
  137. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  138. package/dist/Interfaces/ExternalService/index.js +2 -2
  139. package/dist/Interfaces/FirstOrderTracking/index.d.ts +5 -5
  140. package/dist/Interfaces/FirstOrderTracking/index.js +2 -2
  141. package/dist/Interfaces/G2/index.d.ts +557 -557
  142. package/dist/Interfaces/G2/index.js +39 -39
  143. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  144. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  145. package/dist/Interfaces/Indexed/Product/index.d.ts +111 -111
  146. package/dist/Interfaces/Indexed/Product/index.js +302 -302
  147. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  148. package/dist/Interfaces/Inventory/index.js +8 -8
  149. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  150. package/dist/Interfaces/Invoice/index.js +2 -2
  151. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  152. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  153. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  154. package/dist/Interfaces/MarketplacePublication/index.js +22 -22
  155. package/dist/Interfaces/Menu/index.d.ts +40 -40
  156. package/dist/Interfaces/Menu/index.js +16 -16
  157. package/dist/Interfaces/Note/index.d.ts +10 -10
  158. package/dist/Interfaces/Note/index.js +7 -7
  159. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  160. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  161. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  162. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  163. package/dist/Interfaces/Order/index.d.ts +4 -4
  164. package/dist/Interfaces/Order/index.js +2 -2
  165. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  166. package/dist/Interfaces/Org/IRelUser.js +2 -2
  167. package/dist/Interfaces/Org/index.d.ts +29 -29
  168. package/dist/Interfaces/Org/index.js +12 -12
  169. package/dist/Interfaces/Payment/index.d.ts +26 -26
  170. package/dist/Interfaces/Payment/index.js +14 -14
  171. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  172. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  173. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  174. package/dist/Interfaces/Product/IImportProduct.js +882 -882
  175. package/dist/Interfaces/Product/IInventoryItem.d.ts +74 -74
  176. package/dist/Interfaces/Product/IInventoryItem.js +38 -38
  177. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  178. package/dist/Interfaces/Product/IPricing.js +180 -180
  179. package/dist/Interfaces/Product/index.d.ts +137 -137
  180. package/dist/Interfaces/Product/index.js +64 -64
  181. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  182. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  183. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  184. package/dist/Interfaces/PromiseToPurchase/BankType.js +41 -41
  185. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  186. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  187. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  188. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  189. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  190. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  191. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  192. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  193. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  194. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  195. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  196. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  197. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
  198. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  199. package/dist/Interfaces/Quote/index.d.ts +5 -5
  200. package/dist/Interfaces/Quote/index.js +2 -2
  201. package/dist/Interfaces/Refunds/index.d.ts +106 -106
  202. package/dist/Interfaces/Refunds/index.js +2 -2
  203. package/dist/Interfaces/Rules/IDiscountRule.d.ts +156 -156
  204. package/dist/Interfaces/Rules/IDiscountRule.js +114 -114
  205. package/dist/Interfaces/Schedule/index.d.ts +48 -48
  206. package/dist/Interfaces/Schedule/index.js +2 -2
  207. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  208. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  209. package/dist/Interfaces/Services/IService.d.ts +16 -16
  210. package/dist/Interfaces/Services/IService.js +2 -2
  211. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  212. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  213. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  214. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  215. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  216. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  217. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  218. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  219. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  220. package/dist/Interfaces/Shipping/Shiptime/order.js +71 -71
  221. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  222. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  223. package/dist/Interfaces/Slider/GR.d.ts +114 -114
  224. package/dist/Interfaces/Slider/GR.js +271 -271
  225. package/dist/Interfaces/Slider/index.d.ts +30 -30
  226. package/dist/Interfaces/Slider/index.js +2 -2
  227. package/dist/Interfaces/Space/IExternalService.d.ts +54 -54
  228. package/dist/Interfaces/Space/IExternalService.js +45 -45
  229. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  230. package/dist/Interfaces/Space/IMember.js +9 -9
  231. package/dist/Interfaces/Space/index.d.ts +414 -414
  232. package/dist/Interfaces/Space/index.js +176 -176
  233. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  234. package/dist/Interfaces/Specials/gr.js +2 -2
  235. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  236. package/dist/Interfaces/StockNotification/index.js +2 -2
  237. package/dist/Interfaces/Store/index.d.ts +63 -63
  238. package/dist/Interfaces/Store/index.js +27 -27
  239. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  240. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  241. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  242. package/dist/Interfaces/Supplier/index.js +24 -24
  243. package/dist/Interfaces/TCG/index.d.ts +200 -200
  244. package/dist/Interfaces/TCG/index.js +59 -59
  245. package/dist/Interfaces/Tag/index.d.ts +18 -18
  246. package/dist/Interfaces/Tag/index.js +2 -2
  247. package/dist/Interfaces/Tax/index.d.ts +13 -13
  248. package/dist/Interfaces/Tax/index.js +2 -2
  249. package/dist/Interfaces/TransferRequest/index.d.ts +103 -103
  250. package/dist/Interfaces/TransferRequest/index.js +46 -46
  251. package/dist/Interfaces/Translation/index.d.ts +8 -8
  252. package/dist/Interfaces/Translation/index.js +5 -5
  253. package/dist/Interfaces/Update/index.d.ts +10 -10
  254. package/dist/Interfaces/Update/index.js +2 -2
  255. package/dist/Interfaces/User/IUser.d.ts +65 -65
  256. package/dist/Interfaces/User/IUser.js +8 -8
  257. package/dist/Interfaces/Version/index.d.ts +11 -11
  258. package/dist/Interfaces/Version/index.js +2 -2
  259. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  260. package/dist/Interfaces/Wishlist/index.js +2 -2
  261. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  262. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  263. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  264. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  265. package/dist/constants/enums.d.ts +6 -6
  266. package/dist/constants/enums.js +10 -10
  267. package/dist/constants/services.d.ts +2 -2
  268. package/dist/constants/services.js +122 -122
  269. package/dist/constants/version.d.ts +2 -2
  270. package/dist/constants/version.js +5 -5
  271. package/dist/index.d.ts +50 -50
  272. package/dist/index.js +266 -266
  273. package/dist/lib/Attribute/index.d.ts +14 -14
  274. package/dist/lib/Attribute/index.js +186 -186
  275. package/dist/lib/BGJob/index.d.ts +9 -9
  276. package/dist/lib/BGJob/index.js +216 -216
  277. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  278. package/dist/lib/BackgroundWorker/index.js +59 -59
  279. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  280. package/dist/lib/Blog/BlogArticle.js +10 -10
  281. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  282. package/dist/lib/Blog/BlogAuthor.js +10 -10
  283. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  284. package/dist/lib/Blog/BlogCategory.js +10 -10
  285. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  286. package/dist/lib/Blog/BlogKeyword.js +10 -10
  287. package/dist/lib/Booking/index.d.ts +85 -85
  288. package/dist/lib/Booking/index.js +596 -596
  289. package/dist/lib/Brand/index.d.ts +26 -26
  290. package/dist/lib/Brand/index.js +131 -131
  291. package/dist/lib/Cart/index.d.ts +357 -357
  292. package/dist/lib/Cart/index.js +4052 -4062
  293. package/dist/lib/Cart/index.js.map +1 -1
  294. package/dist/lib/CartReservedQuantities/index.d.ts +49 -49
  295. package/dist/lib/CartReservedQuantities/index.js +159 -159
  296. package/dist/lib/CashDrawerShift/index.d.ts +84 -84
  297. package/dist/lib/CashDrawerShift/index.js +206 -206
  298. package/dist/lib/Catalogue/index.d.ts +15 -15
  299. package/dist/lib/Catalogue/index.js +78 -78
  300. package/dist/lib/Category/index.d.ts +34 -34
  301. package/dist/lib/Category/index.js +230 -230
  302. package/dist/lib/Class/index.d.ts +16 -16
  303. package/dist/lib/Class/index.js +66 -66
  304. package/dist/lib/Consent/index.d.ts +4 -4
  305. package/dist/lib/Consent/index.js +29 -29
  306. package/dist/lib/Customer/index.d.ts +30 -30
  307. package/dist/lib/Customer/index.js +92 -92
  308. package/dist/lib/Declination/index.d.ts +9 -9
  309. package/dist/lib/Declination/index.js +26 -26
  310. package/dist/lib/Discount/index.d.ts +27 -27
  311. package/dist/lib/Discount/index.js +493 -493
  312. package/dist/lib/ElasticSearch/index.d.ts +13 -13
  313. package/dist/lib/ElasticSearch/index.js +50 -50
  314. package/dist/lib/Elavon/index.d.ts +18 -18
  315. package/dist/lib/Elavon/index.js +135 -135
  316. package/dist/lib/Email/AbandonedCartEmail.d.ts +16 -16
  317. package/dist/lib/Email/AbandonedCartEmail.js +24 -24
  318. package/dist/lib/Email/AccountConfirmationEmail.d.ts +19 -19
  319. package/dist/lib/Email/AccountConfirmationEmail.js +30 -30
  320. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +16 -16
  321. package/dist/lib/Email/AdminOrderConfirmationEmail.js +24 -24
  322. package/dist/lib/Email/ApplicationEmail.d.ts +16 -16
  323. package/dist/lib/Email/ApplicationEmail.js +24 -24
  324. package/dist/lib/Email/BackInStockEmail.d.ts +16 -16
  325. package/dist/lib/Email/BackInStockEmail.js +24 -24
  326. package/dist/lib/Email/ContactEmail.d.ts +16 -16
  327. package/dist/lib/Email/ContactEmail.js +24 -24
  328. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +16 -16
  329. package/dist/lib/Email/CustomerBookingAdminEmail.js +24 -24
  330. package/dist/lib/Email/CustomerBookingEmail.d.ts +16 -16
  331. package/dist/lib/Email/CustomerBookingEmail.js +24 -24
  332. package/dist/lib/Email/OrderConfirmationEmail.d.ts +16 -16
  333. package/dist/lib/Email/OrderConfirmationEmail.js +24 -24
  334. package/dist/lib/Email/OrderDenounciationEmail.d.ts +16 -16
  335. package/dist/lib/Email/OrderDenounciationEmail.js +24 -24
  336. package/dist/lib/Email/OrderSampleEmail.d.ts +16 -16
  337. package/dist/lib/Email/OrderSampleEmail.js +24 -24
  338. package/dist/lib/Email/OtherTypeEmails.d.ts +16 -16
  339. package/dist/lib/Email/OtherTypeEmails.js +27 -27
  340. package/dist/lib/Email/PasswordResetEmail.d.ts +16 -16
  341. package/dist/lib/Email/PasswordResetEmail.js +24 -24
  342. package/dist/lib/Email/PhotoShootEmail.d.ts +16 -16
  343. package/dist/lib/Email/PhotoShootEmail.js +24 -24
  344. package/dist/lib/Email/PickUpConfirmation.d.ts +16 -16
  345. package/dist/lib/Email/PickUpConfirmation.js +24 -24
  346. package/dist/lib/Email/ShippingConfirmation.d.ts +16 -16
  347. package/dist/lib/Email/ShippingConfirmation.js +24 -24
  348. package/dist/lib/Email/WelcomeEmail.d.ts +16 -16
  349. package/dist/lib/Email/WelcomeEmail.js +24 -24
  350. package/dist/lib/Email/index.d.ts +16 -16
  351. package/dist/lib/Email/index.js +31 -31
  352. package/dist/lib/ExternalService/Ebay.d.ts +74 -74
  353. package/dist/lib/ExternalService/Ebay.js +124 -124
  354. package/dist/lib/ExternalService/index.d.ts +5 -5
  355. package/dist/lib/ExternalService/index.js +10 -10
  356. package/dist/lib/FirstOrderTracking/index.d.ts +5 -5
  357. package/dist/lib/FirstOrderTracking/index.js +10 -10
  358. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  359. package/dist/lib/Indexed/IndexedCart.js +91 -91
  360. package/dist/lib/Indexed/Product.d.ts +17 -17
  361. package/dist/lib/Indexed/Product.js +98 -98
  362. package/dist/lib/Inventory/index.d.ts +131 -131
  363. package/dist/lib/Inventory/index.js +545 -545
  364. package/dist/lib/Invoice/index.d.ts +16 -16
  365. package/dist/lib/Invoice/index.js +21 -21
  366. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  367. package/dist/lib/MarketplacePublication/index.js +426 -426
  368. package/dist/lib/Menu/index.d.ts +11 -11
  369. package/dist/lib/Menu/index.js +107 -107
  370. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  371. package/dist/lib/MongoDB/BaseAPI.js +200 -200
  372. package/dist/lib/Note/index.d.ts +4 -4
  373. package/dist/lib/Note/index.js +6 -6
  374. package/dist/lib/Order/index.d.ts +27 -27
  375. package/dist/lib/Order/index.js +56 -56
  376. package/dist/lib/Org/index.d.ts +68 -68
  377. package/dist/lib/Org/index.js +216 -216
  378. package/dist/lib/PandaPay/index.d.ts +16 -16
  379. package/dist/lib/PandaPay/index.js +176 -176
  380. package/dist/lib/Paysafe/index.d.ts +11 -11
  381. package/dist/lib/Paysafe/index.js +41 -41
  382. package/dist/lib/Product/index.d.ts +182 -182
  383. package/dist/lib/Product/index.js +847 -847
  384. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  385. package/dist/lib/ProductAttribute/index.js +45 -45
  386. package/dist/lib/PromiseToPurchase/index.d.ts +109 -109
  387. package/dist/lib/PromiseToPurchase/index.js +343 -343
  388. package/dist/lib/PurchaseOrder/index.d.ts +20 -20
  389. package/dist/lib/PurchaseOrder/index.js +28 -28
  390. package/dist/lib/Schedule/index.d.ts +5 -5
  391. package/dist/lib/Schedule/index.js +12 -12
  392. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  393. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  394. package/dist/lib/Service/index.d.ts +13 -13
  395. package/dist/lib/Service/index.js +21 -21
  396. package/dist/lib/Shipment/index.d.ts +28 -28
  397. package/dist/lib/Shipment/index.js +370 -370
  398. package/dist/lib/Slider/index.d.ts +22 -22
  399. package/dist/lib/Slider/index.js +119 -119
  400. package/dist/lib/Space/index.d.ts +1181 -1181
  401. package/dist/lib/Space/index.js +5841 -5841
  402. package/dist/lib/StockNotification/index.d.ts +4 -4
  403. package/dist/lib/StockNotification/index.js +6 -6
  404. package/dist/lib/Store/index.d.ts +5 -5
  405. package/dist/lib/Store/index.js +12 -12
  406. package/dist/lib/Supplier/Command.d.ts +5 -5
  407. package/dist/lib/Supplier/Command.js +10 -10
  408. package/dist/lib/Supplier/index.d.ts +25 -25
  409. package/dist/lib/Supplier/index.js +27 -27
  410. package/dist/lib/Tags/index.d.ts +6 -6
  411. package/dist/lib/Tags/index.js +26 -26
  412. package/dist/lib/Tax/index.d.ts +8 -8
  413. package/dist/lib/Tax/index.js +54 -54
  414. package/dist/lib/TransferRequest/index.d.ts +298 -298
  415. package/dist/lib/TransferRequest/index.js +1106 -1106
  416. package/dist/lib/Update/index.d.ts +10 -10
  417. package/dist/lib/Update/index.js +22 -22
  418. package/dist/lib/User/index.d.ts +89 -89
  419. package/dist/lib/User/index.js +328 -328
  420. package/dist/lib/Wishlist/index.d.ts +5 -5
  421. package/dist/lib/Wishlist/index.js +10 -10
  422. package/dist/lib/base.d.ts +14 -14
  423. package/dist/lib/base.js +62 -62
  424. package/dist/lib/baseService.d.ts +17 -17
  425. package/dist/lib/baseService.js +69 -69
  426. package/dist/rules/ADD/utils/buyback.d.ts +4 -4
  427. package/dist/rules/ADD/utils/buyback.js +135 -135
  428. package/dist/rules/GR/constants/data.d.ts +26 -26
  429. package/dist/rules/GR/constants/data.js +81 -81
  430. package/dist/rules/GR/constants/expedition.d.ts +4 -4
  431. package/dist/rules/GR/constants/expedition.js +9 -9
  432. package/dist/rules/GR/constants/products.d.ts +22 -22
  433. package/dist/rules/GR/constants/products.js +263 -263
  434. package/dist/rules/GR/interfaces/cart.d.ts +84 -84
  435. package/dist/rules/GR/interfaces/cart.js +41 -41
  436. package/dist/rules/GR/interfaces/data.d.ts +101 -101
  437. package/dist/rules/GR/interfaces/data.js +114 -114
  438. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  439. package/dist/rules/GR/interfaces/products.js +10 -10
  440. package/dist/rules/GR/utils/cart.d.ts +95 -95
  441. package/dist/rules/GR/utils/cart.js +839 -839
  442. package/dist/rules/GR/utils/data.d.ts +3 -3
  443. package/dist/rules/GR/utils/data.js +28 -28
  444. package/dist/rules/GR/utils/expedition.d.ts +140 -140
  445. package/dist/rules/GR/utils/expedition.js +2017 -2017
  446. package/dist/rules/GR/utils/g2.d.ts +209 -209
  447. package/dist/rules/GR/utils/g2.js +1002 -1002
  448. package/dist/rules/GR/utils/invoices.d.ts +51 -51
  449. package/dist/rules/GR/utils/invoices.js +215 -215
  450. package/dist/rules/GR/utils/products.d.ts +277 -277
  451. package/dist/rules/GR/utils/products.js +1350 -1350
  452. package/dist/rules/GR/utils/upsells.d.ts +111 -111
  453. package/dist/rules/GR/utils/upsells.js +215 -215
  454. package/dist/services/database/BaseProvider.d.ts +29 -29
  455. package/dist/services/database/BaseProvider.js +28 -28
  456. package/dist/services/database/BatchUtils.d.ts +14 -14
  457. package/dist/services/database/BatchUtils.js +43 -43
  458. package/dist/services/database/Config.d.ts +2 -2
  459. package/dist/services/database/Config.js +5 -5
  460. package/dist/services/database/DatabaseService.d.ts +125 -125
  461. package/dist/services/database/DatabaseService.js +237 -237
  462. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  463. package/dist/services/database/FirebaseProvider.js +235 -235
  464. package/dist/services/database/NotFirebaseProvider.d.ts +49 -49
  465. package/dist/services/database/NotFirebaseProvider.js +262 -262
  466. package/dist/services/g2/G2OrderSlip.d.ts +49 -49
  467. package/dist/services/g2/G2OrderSlip.js +228 -228
  468. package/dist/services/g2/utils.d.ts +19 -19
  469. package/dist/services/g2/utils.js +968 -968
  470. package/dist/services/logs/index.d.ts +23 -23
  471. package/dist/services/logs/index.js +66 -66
  472. package/dist/services/marketplace/BaseMarketServiceClass.d.ts +78 -78
  473. package/dist/services/marketplace/BaseMarketServiceClass.js +141 -141
  474. package/dist/services/marketplace/CardtraderServiceClass.d.ts +38 -38
  475. package/dist/services/marketplace/CardtraderServiceClass.js +226 -226
  476. package/dist/services/marketplace/utils.d.ts +17 -17
  477. package/dist/services/marketplace/utils.js +32 -32
  478. package/dist/services/products/BaseClass.d.ts +79 -79
  479. package/dist/services/products/BaseClass.js +144 -144
  480. package/dist/services/products/TCGService.d.ts +29 -29
  481. package/dist/services/products/TCGService.js +503 -503
  482. package/dist/services/products/utils.d.ts +31 -31
  483. package/dist/services/products/utils.js +144 -144
  484. package/dist/utils/algolia.d.ts +46 -46
  485. package/dist/utils/algolia.js +21 -21
  486. package/dist/utils/anonymisation.d.ts +54 -54
  487. package/dist/utils/anonymisation.js +280 -280
  488. package/dist/utils/array.d.ts +5 -5
  489. package/dist/utils/array.js +14 -14
  490. package/dist/utils/aws.d.ts +36 -36
  491. package/dist/utils/aws.js +154 -154
  492. package/dist/utils/booking.d.ts +30 -30
  493. package/dist/utils/booking.js +127 -127
  494. package/dist/utils/cart.d.ts +274 -274
  495. package/dist/utils/cart.js +1143 -1143
  496. package/dist/utils/categories.d.ts +2 -2
  497. package/dist/utils/categories.js +54 -54
  498. package/dist/utils/cmv.d.ts +12 -12
  499. package/dist/utils/cmv.js +108 -108
  500. package/dist/utils/console.d.ts +6 -6
  501. package/dist/utils/console.js +59 -59
  502. package/dist/utils/context.d.ts +20 -20
  503. package/dist/utils/context.js +61 -61
  504. package/dist/utils/currency.d.ts +6 -6
  505. package/dist/utils/currency.js +91 -91
  506. package/dist/utils/data.d.ts +31 -31
  507. package/dist/utils/data.js +302 -302
  508. package/dist/utils/date.d.ts +1 -1
  509. package/dist/utils/date.js +16 -16
  510. package/dist/utils/dimensions.d.ts +3 -3
  511. package/dist/utils/dimensions.js +16 -16
  512. package/dist/utils/discount.d.ts +192 -192
  513. package/dist/utils/discount.js +1180 -1180
  514. package/dist/utils/errors.d.ts +133 -133
  515. package/dist/utils/errors.js +171 -171
  516. package/dist/utils/file-admin.d.ts +8 -8
  517. package/dist/utils/file-admin.js +39 -39
  518. package/dist/utils/file.d.ts +39 -39
  519. package/dist/utils/file.js +208 -208
  520. package/dist/utils/firebase-admin.d.ts +11 -11
  521. package/dist/utils/firebase-admin.js +73 -73
  522. package/dist/utils/firebase.d.ts +58 -58
  523. package/dist/utils/firebase.js +148 -148
  524. package/dist/utils/import.d.ts +1 -1
  525. package/dist/utils/import.js +21 -21
  526. package/dist/utils/inventories.d.ts +101 -101
  527. package/dist/utils/inventories.js +467 -467
  528. package/dist/utils/locale.d.ts +24 -24
  529. package/dist/utils/locale.js +91 -91
  530. package/dist/utils/mailchimp.d.ts +58 -58
  531. package/dist/utils/mailchimp.js +531 -531
  532. package/dist/utils/mathUtils.d.ts +17 -17
  533. package/dist/utils/mathUtils.js +324 -324
  534. package/dist/utils/mongodb.d.ts +1 -1
  535. package/dist/utils/mongodb.js +22 -22
  536. package/dist/utils/object.d.ts +32 -32
  537. package/dist/utils/object.js +133 -133
  538. package/dist/utils/payment.d.ts +10 -10
  539. package/dist/utils/payment.js +23 -23
  540. package/dist/utils/products.d.ts +47 -47
  541. package/dist/utils/products.js +214 -214
  542. package/dist/utils/products.js.map +1 -1
  543. package/dist/utils/promiseToPurchase.d.ts +121 -121
  544. package/dist/utils/promiseToPurchase.js +329 -329
  545. package/dist/utils/prosprsearch.d.ts +42 -42
  546. package/dist/utils/prosprsearch.js +216 -216
  547. package/dist/utils/refunds.d.ts +2 -2
  548. package/dist/utils/refunds.js +21 -21
  549. package/dist/utils/sdc.d.ts +10 -10
  550. package/dist/utils/sdc.js +1309 -1309
  551. package/dist/utils/searchIndexes.d.ts +58 -58
  552. package/dist/utils/searchIndexes.js +247 -247
  553. package/dist/utils/services.d.ts +44 -44
  554. package/dist/utils/services.js +415 -415
  555. package/dist/utils/shipment.d.ts +110 -110
  556. package/dist/utils/shipment.js +345 -345
  557. package/dist/utils/simpletexting.d.ts +2 -2
  558. package/dist/utils/simpletexting.js +45 -45
  559. package/dist/utils/sliders.d.ts +4 -4
  560. package/dist/utils/sliders.js +24 -24
  561. package/dist/utils/string.d.ts +16 -16
  562. package/dist/utils/string.js +192 -192
  563. package/dist/utils/tcgService.d.ts +98 -98
  564. package/dist/utils/tcgService.js +425 -425
  565. package/dist/utils/tools.d.ts +5 -5
  566. package/dist/utils/tools.js +13 -13
  567. package/dist/utils/transferRequests.d.ts +43 -43
  568. package/dist/utils/transferRequests.js +67 -67
  569. package/dist/utils/update.d.ts +7 -7
  570. package/dist/utils/update.js +137 -137
  571. package/dist/utils/weight.d.ts +3 -3
  572. package/dist/utils/weight.js +16 -16
  573. package/dist/utils/zones.d.ts +11 -11
  574. package/dist/utils/zones.js +218 -218
  575. package/package.json +107 -107
  576. package/publish.sh +143 -143
  577. package/readme.md +182 -182
  578. package/.env +0 -14
@@ -1,426 +1,426 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getBuybackPricesForTcgCards = exports.getTcgAttributesToShow = exports.constructTcgAttributeLabels = exports.getProductNameToUse = exports.getAvailableInventoryForCurrentStore = exports.findCorrespondingDecliByAttributes = exports.getProductSetLabelTranslationObj = exports.getProductSetLabel = exports.constructAllFinishOptions = exports.constructAllLangOptions = exports.filterAndOrderDeclinations = exports.getGradientForFinish = exports.getTcgFinishAttrOrder = exports.getDefaultTcgExternalServiceParams = void 0;
7
- const uniqBy_1 = __importDefault(require("lodash/uniqBy"));
8
- const orderBy_1 = __importDefault(require("lodash/orderBy"));
9
- const round_1 = __importDefault(require("lodash/round"));
10
- const TCG_1 = require("../Interfaces/TCG");
11
- const TCG_2 = require("../Interfaces/TCG");
12
- const object_1 = require("../utils/object");
13
- const locale_1 = require("../utils/locale");
14
- const getDefaultTcgExternalServiceParams = () => ({
15
- cardgame_slugs: [],
16
- default_parent_category: null,
17
- buyback_cards_active: false
18
- });
19
- exports.getDefaultTcgExternalServiceParams = getDefaultTcgExternalServiceParams;
20
- /**
21
- * Get show order for a given value
22
- * @param finishAttrValue
23
- */
24
- const getTcgFinishAttrOrder = (finishAttrValue = TCG_2.TCGCardFinishEnum.NORMAL) => {
25
- const expectedFinishOrder = [
26
- TCG_2.TCGCardFinishEnum.NORMAL,
27
- TCG_2.TCGCardFinishEnum.FOIL,
28
- TCG_2.TCGCardFinishEnum.HOLO,
29
- TCG_2.TCGCardFinishEnum.HOLOFOIL,
30
- TCG_2.TCGCardFinishEnum.RAINBOW_FOIL,
31
- TCG_2.TCGCardFinishEnum.COLDFOIL,
32
- TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL,
33
- TCG_2.TCGCardFinishEnum.ETCHED,
34
- TCG_2.TCGCardFinishEnum.UNLIMITED,
35
- TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL,
36
- TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL,
37
- TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL,
38
- TCG_2.TCGCardFinishEnum.FIRST_EDITION,
39
- TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
40
- TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
41
- TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
42
- TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
43
- ];
44
- return expectedFinishOrder.indexOf(finishAttrValue) + 1;
45
- };
46
- exports.getTcgFinishAttrOrder = getTcgFinishAttrOrder;
47
- const getGradientForFinish = (finish) => {
48
- switch (finish) {
49
- case TCG_2.TCGCardFinishEnum.NORMAL:
50
- return 'normal';
51
- case TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL:
52
- case TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL:
53
- case TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL:
54
- case TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL:
55
- case TCG_2.TCGCardFinishEnum.RAINBOW_FOIL:
56
- case TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL:
57
- return 'multi';
58
- case TCG_2.TCGCardFinishEnum.COLDFOIL:
59
- case TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL:
60
- return 'cold';
61
- case TCG_2.TCGCardFinishEnum.UNLIMITED:
62
- case TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL:
63
- case TCG_2.TCGCardFinishEnum.ETCHED:
64
- case TCG_2.TCGCardFinishEnum.FIRST_EDITION:
65
- case TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL:
66
- return 'other';
67
- case TCG_2.TCGCardFinishEnum.FOIL:
68
- case TCG_2.TCGCardFinishEnum.HOLO:
69
- case TCG_2.TCGCardFinishEnum.HOLOFOIL:
70
- default:
71
- return 'gold';
72
- }
73
- };
74
- exports.getGradientForFinish = getGradientForFinish;
75
- /**
76
- * Get currently available declinations, ordered by finish attribute (TCG), and by current POS space lang (language attribute TCG)
77
- * @param declinationData - Array of data used to order entries + full entry to return
78
- * @param locale
79
- * @param allInventories
80
- */
81
- const filterAndOrderDeclinations = (declinationData = [],
82
- // declinations: IIndexedDeclinationAlgolia[] | IIndexedDeclination[] | undefined,
83
- locale, allInventories, skipInventoryCheck) => {
84
- if (!declinationData.length)
85
- return [];
86
- // A. Filter out any unavailable declinations from possible options
87
- const removedUnavailableDeclis = skipInventoryCheck
88
- ? declinationData
89
- : declinationData.filter((d) => {
90
- return allInventories.some((i) => i.sku == d.sku);
91
- });
92
- // B. Order by finish attribute first, then by lang
93
- const orderedValues = (0, orderBy_1.default)(removedUnavailableDeclis, (d) => {
94
- let startNb = 2;
95
- const finishAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_finish');
96
- if (finishAttr) {
97
- // Multiply start number by finish attr order
98
- startNb *= (0, exports.getTcgFinishAttrOrder)(finishAttr[0]);
99
- }
100
- // If lang attr same as current lang for POS, remove 1 to bring higher up in array
101
- const langAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_language');
102
- if (locale && langAttr && langAttr[0] == `tcg_lang_${locale}`) {
103
- startNb -= 1;
104
- }
105
- return startNb;
106
- });
107
- return orderedValues.map((o) => o.fullDecli);
108
- };
109
- exports.filterAndOrderDeclinations = filterAndOrderDeclinations;
110
- const _getDefaultLangOption = (defaultLangToReturn, allTcgAttrLabels, locale) => {
111
- if (!allTcgAttrLabels || !defaultLangToReturn)
112
- return [];
113
- const sameInAllLabels = allTcgAttrLabels.tcg_language[defaultLangToReturn];
114
- if (sameInAllLabels) {
115
- return [
116
- {
117
- slug: defaultLangToReturn,
118
- label: sameInAllLabels.tag || defaultLangToReturn,
119
- fullLabel: (0, locale_1.getLocaleOfDictionnary)(sameInAllLabels.value, locale)
120
- }
121
- ];
122
- }
123
- return [];
124
- };
125
- /**
126
- * Construct all options for Language attribute (TCG), based on available declinations
127
- * @param declinations
128
- * @param allTcgAttrLabels All constructed labels based on expected TCG attributes
129
- * @param locale Current POS locale
130
- * @param defaultLangToReturn Optionnal. If a default value should be returned, even if declination array is empty. Corresponds to the value for the specific language attribute (ex. tcg_lang_en)
131
- */
132
- const constructAllLangOptions = (declinations, allTcgAttrLabels, locale, defaultLangToReturn) => {
133
- if (!declinations.length) {
134
- // Check to return default value
135
- return _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
136
- }
137
- const allOptions = [];
138
- for (let variation of declinations) {
139
- const tcgLangAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.LANG}`);
140
- if (!tcgLangAttr) {
141
- // Check to return default value
142
- const defaultOpt = _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
143
- if (!!defaultOpt.length)
144
- allOptions.push(defaultOpt[0]);
145
- continue;
146
- }
147
- const langSlug = tcgLangAttr[0];
148
- if (langSlug && !allOptions.some((o) => o.slug == langSlug)) {
149
- const sameLabel = !!allTcgAttrLabels ? allTcgAttrLabels.tcg_language[langSlug] : undefined;
150
- allOptions.push({
151
- slug: langSlug,
152
- label: sameLabel && sameLabel.tag ? sameLabel.tag : tcgLangAttr[0],
153
- fullLabel: sameLabel ? (0, locale_1.getLocaleOfDictionnary)(sameLabel.value, locale) : tcgLangAttr[0]
154
- });
155
- }
156
- }
157
- return allOptions;
158
- };
159
- exports.constructAllLangOptions = constructAllLangOptions;
160
- /**
161
- * Construct all unique finish and condition attribute combinations (TCG), based on available declinations
162
- * @param declinations
163
- * @param allTcgAttrLabels
164
- */
165
- const constructAllFinishOptions = (declinations, allTcgAttrLabels, locale) => {
166
- if (!allTcgAttrLabels)
167
- return [];
168
- if (!declinations.length)
169
- return [];
170
- // a. Create combinations based on variations
171
- // Only keep combos where condition attr is set
172
- const allCombinaitions = declinations
173
- .map((variation) => {
174
- const tcgFinishAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.FINISH}`);
175
- const tcgConditionAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${[TCG_2.TCGVariationAttributesEnum.CONDITION]}`);
176
- return {
177
- [TCG_2.TCGVariationAttributesEnum.CONDITION]: !tcgConditionAttr || !tcgConditionAttr.length
178
- ? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.CONDITION]
179
- : tcgConditionAttr[0],
180
- [TCG_2.TCGVariationAttributesEnum.FINISH]: !tcgFinishAttr || !tcgFinishAttr.length
181
- ? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.FINISH]
182
- : tcgFinishAttr[0]
183
- };
184
- })
185
- .filter((v) => v.tcg_condition);
186
- // b. Filter out duplicates
187
- const removedDuplicates = (0, uniqBy_1.default)(allCombinaitions, (v) => `${v.tcg_condition}${v.tcg_finish ? '_' + v.tcg_finish : ''}`);
188
- // c. Return constructed options object array
189
- return removedDuplicates.map((combAttr) => {
190
- const condLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.value`);
191
- const finishLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.FINISH}.${combAttr.tcg_finish}.value`);
192
- let fullLabelArray = [];
193
- if (finishLabel)
194
- fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(finishLabel, locale));
195
- if (condLabel)
196
- fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(condLabel, locale));
197
- return {
198
- label: `${(0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.tag`) || combAttr.tcg_condition}`,
199
- variant: combAttr.tcg_finish,
200
- value: combAttr,
201
- fullLabel: fullLabelArray.join(' - '),
202
- extraLabel: [
203
- TCG_2.TCGCardFinishEnum.FIRST_EDITION,
204
- TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
205
- TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
206
- TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
207
- TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
208
- ].includes(combAttr.tcg_finish)
209
- ? ' 1st'
210
- : ''
211
- };
212
- });
213
- };
214
- exports.constructAllFinishOptions = constructAllFinishOptions;
215
- /**
216
- * Get set label for a given card attributes in specified locale
217
- * @param prodAttributes
218
- * @param allAttributes
219
- * @param locale
220
- */
221
- const getProductSetLabel = (prodAttributes, allAttributes, locale) => {
222
- if (!prodAttributes)
223
- return '';
224
- const result = (0, exports.getProductSetLabelTranslationObj)(prodAttributes, allAttributes, [locale || 'fr']);
225
- return (0, locale_1.getLocaleOfDictionnary)(result, locale);
226
- };
227
- exports.getProductSetLabel = getProductSetLabel;
228
- /**
229
- * Get set label ITranslation array for a given card attributes
230
- * @param prodAttributes Indexed product attributes to check
231
- * @param allAttributes Full IAttribute array
232
- * @param spaceSupportedLocales Optionnal. Defaults to ['fr', 'en']
233
- */
234
- const getProductSetLabelTranslationObj = (prodAttributes, allAttributes, spaceSupportedLocales = ['fr', 'en']) => {
235
- if (!prodAttributes)
236
- return [];
237
- const tcgSetAttr = prodAttributes[TCG_1.TCGAttributesEnum.SET];
238
- if (!tcgSetAttr)
239
- return [];
240
- const defaultValue = (0, locale_1.getLanguageDictFromString)(tcgSetAttr[0], spaceSupportedLocales);
241
- if (!allAttributes.length)
242
- return defaultValue;
243
- const sameAttr = allAttributes.find((a) => a.slug == TCG_1.TCGAttributesEnum.SET);
244
- if (!sameAttr)
245
- return defaultValue;
246
- const sameValue = sameAttr.values.find((v) => v.slug == tcgSetAttr[0]);
247
- return (sameValue === null || sameValue === void 0 ? void 0 : sameValue.value) || defaultValue;
248
- };
249
- exports.getProductSetLabelTranslationObj = getProductSetLabelTranslationObj;
250
- /**
251
- * Get first found declination from list where passed attribute values found in decli
252
- * @param decliList
253
- * @param attributesToCheck Values of chosen TCG attributes to check for in decli.
254
- */
255
- const findCorrespondingDecliByAttributes = (decliList, attributesToCheck) => {
256
- if (Object.values(attributesToCheck).every((attr) => attr == undefined))
257
- return;
258
- const decliWithSameValues = decliList.find((d) => {
259
- let foundSameCount = 0;
260
- const arrayToCheck = Object.entries(attributesToCheck);
261
- for (let [attrSlug, value] of arrayToCheck) {
262
- const attrValueToCheck = (0, object_1.recursiveCheckObject)(d, `attributes.${attrSlug}.0`) ||
263
- (0, object_1.recursiveCheckObject)(TCG_2.defaultValuesForTcgAttributes, attrSlug);
264
- if (attrValueToCheck == value) {
265
- foundSameCount += 1;
266
- }
267
- }
268
- return foundSameCount == arrayToCheck.length;
269
- });
270
- return decliWithSameValues;
271
- };
272
- exports.findCorrespondingDecliByAttributes = findCorrespondingDecliByAttributes;
273
- /**
274
- * Get the available inventory for the currently selected store (found in local storage)
275
- * @param inventoryItem
276
- */
277
- const getAvailableInventoryForCurrentStore = (inventoryItem) => {
278
- const currentStore = localStorage.getItem('branch') || '';
279
- const sameStoreInv = inventoryItem.inventories.find((i) => i.store_id == currentStore);
280
- if (!sameStoreInv)
281
- return 0;
282
- return sameStoreInv.qty.available;
283
- };
284
- exports.getAvailableInventoryForCurrentStore = getAvailableInventoryForCurrentStore;
285
- /**
286
- * Construct product or decli name to show (mostly for cart item retroactions)
287
- * @param item - The cart item
288
- * @param locale
289
- * @param type - Which name(s) to use (either parent name, decli name, or both)
290
- */
291
- const getProductNameToUse = (item, locale, type) => {
292
- const productName = !!item.parent_name ? (0, locale_1.getLocaleOfDictionnary)(item.parent_name, locale) : '';
293
- const decliName = !!item.name ? (0, locale_1.getLocaleOfDictionnary)(item.name, locale) : '';
294
- let bothNames = [];
295
- if (!!productName)
296
- bothNames.push(productName);
297
- if (!!decliName)
298
- bothNames.push(decliName);
299
- const nameStr = type === TCG_1.ItemNameVariantEnum.BOTH
300
- ? bothNames.join(' | ')
301
- : type === TCG_1.ItemNameVariantEnum.PARENT
302
- ? productName
303
- : decliName;
304
- return nameStr;
305
- };
306
- exports.getProductNameToUse = getProductNameToUse;
307
- /**
308
- * Construct labels for TCG Service attributes from full array of space attributes
309
- * @param allAttributes
310
- */
311
- const constructTcgAttributeLabels = (allAttributes) => {
312
- let allValues = { tcg_finish: {}, tcg_condition: {}, tcg_language: {} };
313
- if (!!!allAttributes.length)
314
- return allValues;
315
- const fullFinishAttr = allAttributes.find((a) => a.slug == 'tcg_finish');
316
- const fullConditionAttr = allAttributes.find((a) => a.slug == 'tcg_condition');
317
- const fullLangAttr = allAttributes.find((a) => a.slug == 'tcg_language');
318
- // a. FINISH VALUES
319
- if (fullFinishAttr && fullFinishAttr.values.length) {
320
- for (let value of fullFinishAttr.values) {
321
- if (value.default_tag) {
322
- allValues.tcg_finish[value.slug] = Object.assign({ tag: value.default_tag, value: value.value }, (value.default_tag == 'nor' ? { shortLabel: value.value } : {}));
323
- }
324
- }
325
- }
326
- // b. CONDITION VALUES
327
- if (fullConditionAttr && fullConditionAttr.values.length) {
328
- for (let value of fullConditionAttr.values) {
329
- if (value.default_tag) {
330
- allValues.tcg_condition[value.slug] = { tag: value.default_tag, value: value.value };
331
- }
332
- }
333
- }
334
- // c. LANG VALUES
335
- if (fullLangAttr && fullLangAttr.values.length) {
336
- for (let value of fullLangAttr.values) {
337
- if (value.default_tag) {
338
- allValues.tcg_language[value.slug] = { tag: value.default_tag, value: value.value };
339
- }
340
- }
341
- }
342
- return allValues;
343
- };
344
- exports.constructTcgAttributeLabels = constructTcgAttributeLabels;
345
- /**
346
- * Construct and return attribute string for cart item based on TCG attribute values
347
- * @param itemAttributes Current item attributes
348
- * @param allTcgAttributes All potential TCG attribute values
349
- * @returns {string} Pertinent attribute values seperated by '-'. Attributes options returned are : FINISH - CONDITION - LANG
350
- */
351
- const getTcgAttributesToShow = (itemAttributes, allTcgAttributes) => {
352
- if (!allTcgAttributes)
353
- return '';
354
- const attrStr = [];
355
- for (let [id, values] of Object.entries(allTcgAttributes)) {
356
- const sameAttr = itemAttributes[id];
357
- if (!sameAttr)
358
- continue;
359
- const sameValue = values[sameAttr[0]];
360
- if (!sameValue)
361
- continue;
362
- const strToUse = sameValue.shortLabel
363
- ? (0, locale_1.getLocaleOfDictionnary)(sameValue.shortLabel, 'en')
364
- : id == TCG_1.TCGAttributesEnum.FINISH
365
- ? (0, locale_1.getLocaleOfDictionnary)(sameValue.value, 'en')
366
- : sameValue.tag || '';
367
- attrStr.push(id != TCG_1.TCGAttributesEnum.FINISH ? strToUse.toUpperCase() : strToUse);
368
- }
369
- return attrStr.join(' - ');
370
- };
371
- exports.getTcgAttributesToShow = getTcgAttributesToShow;
372
- // -------------------------------------------------------------------------------------------
373
- // #region BUYBACK PRICES
374
- const _checkIfPriceInTier = (priceToCheck, operator, values) => {
375
- if (typeof values[0] != 'number')
376
- return false;
377
- switch (operator) {
378
- case '<':
379
- return typeof values[0] == 'number' && priceToCheck < values[0];
380
- case '<=':
381
- return typeof values[0] == 'number' && priceToCheck <= values[0];
382
- case '>':
383
- return typeof values[0] == 'number' && priceToCheck > values[0];
384
- case '>=':
385
- return typeof values[0] == 'number' && priceToCheck >= values[0];
386
- case 'between':
387
- return (typeof values[0] == 'number' &&
388
- typeof values[1] == 'number' &&
389
- priceToCheck >= values[0] &&
390
- priceToCheck <= values[1]);
391
- }
392
- };
393
- /**
394
- * Calculate buyback price for a specified regular price and category slug
395
- * @param logicReferenceObj The logic reference object ot check. Defined and provided by space.
396
- * @param price The price to check
397
- * @param category The TCG category slug from supported list. Defined and provided by space.
398
- */
399
- function _calculateBuyBackPrice(logicReferenceObj, price, category, finish) {
400
- const sameCatLogic = logicReferenceObj[category];
401
- let foundPrice = { buyback: false, regTcgPrice: price, finish };
402
- for (let tier of sameCatLogic) {
403
- if (_checkIfPriceInTier(price, tier.operator, tier.regPrice)) {
404
- foundPrice.buyback = tier.buyback;
405
- if (tier.buyback && tier.buyBackPercent) {
406
- foundPrice.calculatedPrice = (0, round_1.default)((price * tier.buyBackPercent) / 100, 2);
407
- }
408
- break;
409
- }
410
- }
411
- return foundPrice;
412
- }
413
- /**
414
- * Calculate buyback prices for a list of tcg card price data
415
- * @param cards The tcg card prices to check
416
- */
417
- function getBuybackPricesForTcgCards(logicReferenceObj, cards) {
418
- let buybackPrices = {};
419
- for (let [slug, values] of Object.entries(cards)) {
420
- buybackPrices[slug] = values.map((v) => _calculateBuyBackPrice(logicReferenceObj, v.price, v.category, v.subType));
421
- }
422
- return buybackPrices;
423
- }
424
- exports.getBuybackPricesForTcgCards = getBuybackPricesForTcgCards;
425
- // #endregion
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getBuybackPricesForTcgCards = exports.getTcgAttributesToShow = exports.constructTcgAttributeLabels = exports.getProductNameToUse = exports.getAvailableInventoryForCurrentStore = exports.findCorrespondingDecliByAttributes = exports.getProductSetLabelTranslationObj = exports.getProductSetLabel = exports.constructAllFinishOptions = exports.constructAllLangOptions = exports.filterAndOrderDeclinations = exports.getGradientForFinish = exports.getTcgFinishAttrOrder = exports.getDefaultTcgExternalServiceParams = void 0;
7
+ const uniqBy_1 = __importDefault(require("lodash/uniqBy"));
8
+ const orderBy_1 = __importDefault(require("lodash/orderBy"));
9
+ const round_1 = __importDefault(require("lodash/round"));
10
+ const TCG_1 = require("../Interfaces/TCG");
11
+ const TCG_2 = require("../Interfaces/TCG");
12
+ const object_1 = require("../utils/object");
13
+ const locale_1 = require("../utils/locale");
14
+ const getDefaultTcgExternalServiceParams = () => ({
15
+ cardgame_slugs: [],
16
+ default_parent_category: null,
17
+ buyback_cards_active: false
18
+ });
19
+ exports.getDefaultTcgExternalServiceParams = getDefaultTcgExternalServiceParams;
20
+ /**
21
+ * Get show order for a given value
22
+ * @param finishAttrValue
23
+ */
24
+ const getTcgFinishAttrOrder = (finishAttrValue = TCG_2.TCGCardFinishEnum.NORMAL) => {
25
+ const expectedFinishOrder = [
26
+ TCG_2.TCGCardFinishEnum.NORMAL,
27
+ TCG_2.TCGCardFinishEnum.FOIL,
28
+ TCG_2.TCGCardFinishEnum.HOLO,
29
+ TCG_2.TCGCardFinishEnum.HOLOFOIL,
30
+ TCG_2.TCGCardFinishEnum.RAINBOW_FOIL,
31
+ TCG_2.TCGCardFinishEnum.COLDFOIL,
32
+ TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL,
33
+ TCG_2.TCGCardFinishEnum.ETCHED,
34
+ TCG_2.TCGCardFinishEnum.UNLIMITED,
35
+ TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL,
36
+ TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL,
37
+ TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL,
38
+ TCG_2.TCGCardFinishEnum.FIRST_EDITION,
39
+ TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
40
+ TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
41
+ TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
42
+ TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
43
+ ];
44
+ return expectedFinishOrder.indexOf(finishAttrValue) + 1;
45
+ };
46
+ exports.getTcgFinishAttrOrder = getTcgFinishAttrOrder;
47
+ const getGradientForFinish = (finish) => {
48
+ switch (finish) {
49
+ case TCG_2.TCGCardFinishEnum.NORMAL:
50
+ return 'normal';
51
+ case TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL:
52
+ case TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL:
53
+ case TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL:
54
+ case TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL:
55
+ case TCG_2.TCGCardFinishEnum.RAINBOW_FOIL:
56
+ case TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL:
57
+ return 'multi';
58
+ case TCG_2.TCGCardFinishEnum.COLDFOIL:
59
+ case TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL:
60
+ return 'cold';
61
+ case TCG_2.TCGCardFinishEnum.UNLIMITED:
62
+ case TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL:
63
+ case TCG_2.TCGCardFinishEnum.ETCHED:
64
+ case TCG_2.TCGCardFinishEnum.FIRST_EDITION:
65
+ case TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL:
66
+ return 'other';
67
+ case TCG_2.TCGCardFinishEnum.FOIL:
68
+ case TCG_2.TCGCardFinishEnum.HOLO:
69
+ case TCG_2.TCGCardFinishEnum.HOLOFOIL:
70
+ default:
71
+ return 'gold';
72
+ }
73
+ };
74
+ exports.getGradientForFinish = getGradientForFinish;
75
+ /**
76
+ * Get currently available declinations, ordered by finish attribute (TCG), and by current POS space lang (language attribute TCG)
77
+ * @param declinationData - Array of data used to order entries + full entry to return
78
+ * @param locale
79
+ * @param allInventories
80
+ */
81
+ const filterAndOrderDeclinations = (declinationData = [],
82
+ // declinations: IIndexedDeclinationAlgolia[] | IIndexedDeclination[] | undefined,
83
+ locale, allInventories, skipInventoryCheck) => {
84
+ if (!declinationData.length)
85
+ return [];
86
+ // A. Filter out any unavailable declinations from possible options
87
+ const removedUnavailableDeclis = skipInventoryCheck
88
+ ? declinationData
89
+ : declinationData.filter((d) => {
90
+ return allInventories.some((i) => i.sku == d.sku);
91
+ });
92
+ // B. Order by finish attribute first, then by lang
93
+ const orderedValues = (0, orderBy_1.default)(removedUnavailableDeclis, (d) => {
94
+ let startNb = 2;
95
+ const finishAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_finish');
96
+ if (finishAttr) {
97
+ // Multiply start number by finish attr order
98
+ startNb *= (0, exports.getTcgFinishAttrOrder)(finishAttr[0]);
99
+ }
100
+ // If lang attr same as current lang for POS, remove 1 to bring higher up in array
101
+ const langAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_language');
102
+ if (locale && langAttr && langAttr[0] == `tcg_lang_${locale}`) {
103
+ startNb -= 1;
104
+ }
105
+ return startNb;
106
+ });
107
+ return orderedValues.map((o) => o.fullDecli);
108
+ };
109
+ exports.filterAndOrderDeclinations = filterAndOrderDeclinations;
110
+ const _getDefaultLangOption = (defaultLangToReturn, allTcgAttrLabels, locale) => {
111
+ if (!allTcgAttrLabels || !defaultLangToReturn)
112
+ return [];
113
+ const sameInAllLabels = allTcgAttrLabels.tcg_language[defaultLangToReturn];
114
+ if (sameInAllLabels) {
115
+ return [
116
+ {
117
+ slug: defaultLangToReturn,
118
+ label: sameInAllLabels.tag || defaultLangToReturn,
119
+ fullLabel: (0, locale_1.getLocaleOfDictionnary)(sameInAllLabels.value, locale)
120
+ }
121
+ ];
122
+ }
123
+ return [];
124
+ };
125
+ /**
126
+ * Construct all options for Language attribute (TCG), based on available declinations
127
+ * @param declinations
128
+ * @param allTcgAttrLabels All constructed labels based on expected TCG attributes
129
+ * @param locale Current POS locale
130
+ * @param defaultLangToReturn Optionnal. If a default value should be returned, even if declination array is empty. Corresponds to the value for the specific language attribute (ex. tcg_lang_en)
131
+ */
132
+ const constructAllLangOptions = (declinations, allTcgAttrLabels, locale, defaultLangToReturn) => {
133
+ if (!declinations.length) {
134
+ // Check to return default value
135
+ return _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
136
+ }
137
+ const allOptions = [];
138
+ for (let variation of declinations) {
139
+ const tcgLangAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.LANG}`);
140
+ if (!tcgLangAttr) {
141
+ // Check to return default value
142
+ const defaultOpt = _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
143
+ if (!!defaultOpt.length)
144
+ allOptions.push(defaultOpt[0]);
145
+ continue;
146
+ }
147
+ const langSlug = tcgLangAttr[0];
148
+ if (langSlug && !allOptions.some((o) => o.slug == langSlug)) {
149
+ const sameLabel = !!allTcgAttrLabels ? allTcgAttrLabels.tcg_language[langSlug] : undefined;
150
+ allOptions.push({
151
+ slug: langSlug,
152
+ label: sameLabel && sameLabel.tag ? sameLabel.tag : tcgLangAttr[0],
153
+ fullLabel: sameLabel ? (0, locale_1.getLocaleOfDictionnary)(sameLabel.value, locale) : tcgLangAttr[0]
154
+ });
155
+ }
156
+ }
157
+ return allOptions;
158
+ };
159
+ exports.constructAllLangOptions = constructAllLangOptions;
160
+ /**
161
+ * Construct all unique finish and condition attribute combinations (TCG), based on available declinations
162
+ * @param declinations
163
+ * @param allTcgAttrLabels
164
+ */
165
+ const constructAllFinishOptions = (declinations, allTcgAttrLabels, locale) => {
166
+ if (!allTcgAttrLabels)
167
+ return [];
168
+ if (!declinations.length)
169
+ return [];
170
+ // a. Create combinations based on variations
171
+ // Only keep combos where condition attr is set
172
+ const allCombinaitions = declinations
173
+ .map((variation) => {
174
+ const tcgFinishAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.FINISH}`);
175
+ const tcgConditionAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${[TCG_2.TCGVariationAttributesEnum.CONDITION]}`);
176
+ return {
177
+ [TCG_2.TCGVariationAttributesEnum.CONDITION]: !tcgConditionAttr || !tcgConditionAttr.length
178
+ ? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.CONDITION]
179
+ : tcgConditionAttr[0],
180
+ [TCG_2.TCGVariationAttributesEnum.FINISH]: !tcgFinishAttr || !tcgFinishAttr.length
181
+ ? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.FINISH]
182
+ : tcgFinishAttr[0]
183
+ };
184
+ })
185
+ .filter((v) => v.tcg_condition);
186
+ // b. Filter out duplicates
187
+ const removedDuplicates = (0, uniqBy_1.default)(allCombinaitions, (v) => `${v.tcg_condition}${v.tcg_finish ? '_' + v.tcg_finish : ''}`);
188
+ // c. Return constructed options object array
189
+ return removedDuplicates.map((combAttr) => {
190
+ const condLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.value`);
191
+ const finishLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.FINISH}.${combAttr.tcg_finish}.value`);
192
+ let fullLabelArray = [];
193
+ if (finishLabel)
194
+ fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(finishLabel, locale));
195
+ if (condLabel)
196
+ fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(condLabel, locale));
197
+ return {
198
+ label: `${(0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.tag`) || combAttr.tcg_condition}`,
199
+ variant: combAttr.tcg_finish,
200
+ value: combAttr,
201
+ fullLabel: fullLabelArray.join(' - '),
202
+ extraLabel: [
203
+ TCG_2.TCGCardFinishEnum.FIRST_EDITION,
204
+ TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
205
+ TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
206
+ TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
207
+ TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
208
+ ].includes(combAttr.tcg_finish)
209
+ ? ' 1st'
210
+ : ''
211
+ };
212
+ });
213
+ };
214
+ exports.constructAllFinishOptions = constructAllFinishOptions;
215
+ /**
216
+ * Get set label for a given card attributes in specified locale
217
+ * @param prodAttributes
218
+ * @param allAttributes
219
+ * @param locale
220
+ */
221
+ const getProductSetLabel = (prodAttributes, allAttributes, locale) => {
222
+ if (!prodAttributes)
223
+ return '';
224
+ const result = (0, exports.getProductSetLabelTranslationObj)(prodAttributes, allAttributes, [locale || 'fr']);
225
+ return (0, locale_1.getLocaleOfDictionnary)(result, locale);
226
+ };
227
+ exports.getProductSetLabel = getProductSetLabel;
228
+ /**
229
+ * Get set label ITranslation array for a given card attributes
230
+ * @param prodAttributes Indexed product attributes to check
231
+ * @param allAttributes Full IAttribute array
232
+ * @param spaceSupportedLocales Optionnal. Defaults to ['fr', 'en']
233
+ */
234
+ const getProductSetLabelTranslationObj = (prodAttributes, allAttributes, spaceSupportedLocales = ['fr', 'en']) => {
235
+ if (!prodAttributes)
236
+ return [];
237
+ const tcgSetAttr = prodAttributes[TCG_1.TCGAttributesEnum.SET];
238
+ if (!tcgSetAttr)
239
+ return [];
240
+ const defaultValue = (0, locale_1.getLanguageDictFromString)(tcgSetAttr[0], spaceSupportedLocales);
241
+ if (!allAttributes.length)
242
+ return defaultValue;
243
+ const sameAttr = allAttributes.find((a) => a.slug == TCG_1.TCGAttributesEnum.SET);
244
+ if (!sameAttr)
245
+ return defaultValue;
246
+ const sameValue = sameAttr.values.find((v) => v.slug == tcgSetAttr[0]);
247
+ return (sameValue === null || sameValue === void 0 ? void 0 : sameValue.value) || defaultValue;
248
+ };
249
+ exports.getProductSetLabelTranslationObj = getProductSetLabelTranslationObj;
250
+ /**
251
+ * Get first found declination from list where passed attribute values found in decli
252
+ * @param decliList
253
+ * @param attributesToCheck Values of chosen TCG attributes to check for in decli.
254
+ */
255
+ const findCorrespondingDecliByAttributes = (decliList, attributesToCheck) => {
256
+ if (Object.values(attributesToCheck).every((attr) => attr == undefined))
257
+ return;
258
+ const decliWithSameValues = decliList.find((d) => {
259
+ let foundSameCount = 0;
260
+ const arrayToCheck = Object.entries(attributesToCheck);
261
+ for (let [attrSlug, value] of arrayToCheck) {
262
+ const attrValueToCheck = (0, object_1.recursiveCheckObject)(d, `attributes.${attrSlug}.0`) ||
263
+ (0, object_1.recursiveCheckObject)(TCG_2.defaultValuesForTcgAttributes, attrSlug);
264
+ if (attrValueToCheck == value) {
265
+ foundSameCount += 1;
266
+ }
267
+ }
268
+ return foundSameCount == arrayToCheck.length;
269
+ });
270
+ return decliWithSameValues;
271
+ };
272
+ exports.findCorrespondingDecliByAttributes = findCorrespondingDecliByAttributes;
273
+ /**
274
+ * Get the available inventory for the currently selected store (found in local storage)
275
+ * @param inventoryItem
276
+ */
277
+ const getAvailableInventoryForCurrentStore = (inventoryItem) => {
278
+ const currentStore = localStorage.getItem('branch') || '';
279
+ const sameStoreInv = inventoryItem.inventories.find((i) => i.store_id == currentStore);
280
+ if (!sameStoreInv)
281
+ return 0;
282
+ return sameStoreInv.qty.available;
283
+ };
284
+ exports.getAvailableInventoryForCurrentStore = getAvailableInventoryForCurrentStore;
285
+ /**
286
+ * Construct product or decli name to show (mostly for cart item retroactions)
287
+ * @param item - The cart item
288
+ * @param locale
289
+ * @param type - Which name(s) to use (either parent name, decli name, or both)
290
+ */
291
+ const getProductNameToUse = (item, locale, type) => {
292
+ const productName = !!item.parent_name ? (0, locale_1.getLocaleOfDictionnary)(item.parent_name, locale) : '';
293
+ const decliName = !!item.name ? (0, locale_1.getLocaleOfDictionnary)(item.name, locale) : '';
294
+ let bothNames = [];
295
+ if (!!productName)
296
+ bothNames.push(productName);
297
+ if (!!decliName)
298
+ bothNames.push(decliName);
299
+ const nameStr = type === TCG_1.ItemNameVariantEnum.BOTH
300
+ ? bothNames.join(' | ')
301
+ : type === TCG_1.ItemNameVariantEnum.PARENT
302
+ ? productName
303
+ : decliName;
304
+ return nameStr;
305
+ };
306
+ exports.getProductNameToUse = getProductNameToUse;
307
+ /**
308
+ * Construct labels for TCG Service attributes from full array of space attributes
309
+ * @param allAttributes
310
+ */
311
+ const constructTcgAttributeLabels = (allAttributes) => {
312
+ let allValues = { tcg_finish: {}, tcg_condition: {}, tcg_language: {} };
313
+ if (!!!allAttributes.length)
314
+ return allValues;
315
+ const fullFinishAttr = allAttributes.find((a) => a.slug == 'tcg_finish');
316
+ const fullConditionAttr = allAttributes.find((a) => a.slug == 'tcg_condition');
317
+ const fullLangAttr = allAttributes.find((a) => a.slug == 'tcg_language');
318
+ // a. FINISH VALUES
319
+ if (fullFinishAttr && fullFinishAttr.values.length) {
320
+ for (let value of fullFinishAttr.values) {
321
+ if (value.default_tag) {
322
+ allValues.tcg_finish[value.slug] = Object.assign({ tag: value.default_tag, value: value.value }, (value.default_tag == 'nor' ? { shortLabel: value.value } : {}));
323
+ }
324
+ }
325
+ }
326
+ // b. CONDITION VALUES
327
+ if (fullConditionAttr && fullConditionAttr.values.length) {
328
+ for (let value of fullConditionAttr.values) {
329
+ if (value.default_tag) {
330
+ allValues.tcg_condition[value.slug] = { tag: value.default_tag, value: value.value };
331
+ }
332
+ }
333
+ }
334
+ // c. LANG VALUES
335
+ if (fullLangAttr && fullLangAttr.values.length) {
336
+ for (let value of fullLangAttr.values) {
337
+ if (value.default_tag) {
338
+ allValues.tcg_language[value.slug] = { tag: value.default_tag, value: value.value };
339
+ }
340
+ }
341
+ }
342
+ return allValues;
343
+ };
344
+ exports.constructTcgAttributeLabels = constructTcgAttributeLabels;
345
+ /**
346
+ * Construct and return attribute string for cart item based on TCG attribute values
347
+ * @param itemAttributes Current item attributes
348
+ * @param allTcgAttributes All potential TCG attribute values
349
+ * @returns {string} Pertinent attribute values seperated by '-'. Attributes options returned are : FINISH - CONDITION - LANG
350
+ */
351
+ const getTcgAttributesToShow = (itemAttributes, allTcgAttributes) => {
352
+ if (!allTcgAttributes)
353
+ return '';
354
+ const attrStr = [];
355
+ for (let [id, values] of Object.entries(allTcgAttributes)) {
356
+ const sameAttr = itemAttributes[id];
357
+ if (!sameAttr)
358
+ continue;
359
+ const sameValue = values[sameAttr[0]];
360
+ if (!sameValue)
361
+ continue;
362
+ const strToUse = sameValue.shortLabel
363
+ ? (0, locale_1.getLocaleOfDictionnary)(sameValue.shortLabel, 'en')
364
+ : id == TCG_1.TCGAttributesEnum.FINISH
365
+ ? (0, locale_1.getLocaleOfDictionnary)(sameValue.value, 'en')
366
+ : sameValue.tag || '';
367
+ attrStr.push(id != TCG_1.TCGAttributesEnum.FINISH ? strToUse.toUpperCase() : strToUse);
368
+ }
369
+ return attrStr.join(' - ');
370
+ };
371
+ exports.getTcgAttributesToShow = getTcgAttributesToShow;
372
+ // -------------------------------------------------------------------------------------------
373
+ // #region BUYBACK PRICES
374
+ const _checkIfPriceInTier = (priceToCheck, operator, values) => {
375
+ if (typeof values[0] != 'number')
376
+ return false;
377
+ switch (operator) {
378
+ case '<':
379
+ return typeof values[0] == 'number' && priceToCheck < values[0];
380
+ case '<=':
381
+ return typeof values[0] == 'number' && priceToCheck <= values[0];
382
+ case '>':
383
+ return typeof values[0] == 'number' && priceToCheck > values[0];
384
+ case '>=':
385
+ return typeof values[0] == 'number' && priceToCheck >= values[0];
386
+ case 'between':
387
+ return (typeof values[0] == 'number' &&
388
+ typeof values[1] == 'number' &&
389
+ priceToCheck >= values[0] &&
390
+ priceToCheck <= values[1]);
391
+ }
392
+ };
393
+ /**
394
+ * Calculate buyback price for a specified regular price and category slug
395
+ * @param logicReferenceObj The logic reference object ot check. Defined and provided by space.
396
+ * @param price The price to check
397
+ * @param category The TCG category slug from supported list. Defined and provided by space.
398
+ */
399
+ function _calculateBuyBackPrice(logicReferenceObj, price, category, finish) {
400
+ const sameCatLogic = logicReferenceObj[category];
401
+ let foundPrice = { buyback: false, regTcgPrice: price, finish };
402
+ for (let tier of sameCatLogic) {
403
+ if (_checkIfPriceInTier(price, tier.operator, tier.regPrice)) {
404
+ foundPrice.buyback = tier.buyback;
405
+ if (tier.buyback && tier.buyBackPercent) {
406
+ foundPrice.calculatedPrice = (0, round_1.default)((price * tier.buyBackPercent) / 100, 2);
407
+ }
408
+ break;
409
+ }
410
+ }
411
+ return foundPrice;
412
+ }
413
+ /**
414
+ * Calculate buyback prices for a list of tcg card price data
415
+ * @param cards The tcg card prices to check
416
+ */
417
+ function getBuybackPricesForTcgCards(logicReferenceObj, cards) {
418
+ let buybackPrices = {};
419
+ for (let [slug, values] of Object.entries(cards)) {
420
+ buybackPrices[slug] = values.map((v) => _calculateBuyBackPrice(logicReferenceObj, v.price, v.category, v.subType));
421
+ }
422
+ return buybackPrices;
423
+ }
424
+ exports.getBuybackPricesForTcgCards = getBuybackPricesForTcgCards;
425
+ // #endregion
426
426
  //# sourceMappingURL=tcgService.js.map