addio-admin-sdk 1.7.165 → 1.7.167

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