@unchainedshop/core 4.0.0-rc.16 → 4.0.0-rc.18

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 (412) hide show
  1. package/lib/bulk-importer/createBulkImporter.d.ts +29 -6
  2. package/lib/bulk-importer/createBulkImporter.d.ts.map +1 -1
  3. package/lib/bulk-importer/createBulkImporter.js +26 -19
  4. package/lib/bulk-importer/createBulkImporter.js.map +1 -1
  5. package/lib/bulk-importer/handlers/assortment/create.d.ts +552 -2
  6. package/lib/bulk-importer/handlers/assortment/create.d.ts.map +1 -1
  7. package/lib/bulk-importer/handlers/assortment/create.js +32 -5
  8. package/lib/bulk-importer/handlers/assortment/create.js.map +1 -1
  9. package/lib/bulk-importer/handlers/assortment/remove.d.ts +20 -2
  10. package/lib/bulk-importer/handlers/assortment/remove.d.ts.map +1 -1
  11. package/lib/bulk-importer/handlers/assortment/remove.js +7 -2
  12. package/lib/bulk-importer/handlers/assortment/remove.js.map +1 -1
  13. package/lib/bulk-importer/handlers/assortment/update.d.ts +552 -2
  14. package/lib/bulk-importer/handlers/assortment/update.d.ts.map +1 -1
  15. package/lib/bulk-importer/handlers/assortment/update.js +43 -7
  16. package/lib/bulk-importer/handlers/assortment/update.js.map +1 -1
  17. package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.d.ts +23 -3
  18. package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.d.ts.map +1 -1
  19. package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.js +14 -6
  20. package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.js.map +1 -1
  21. package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.d.ts +23 -3
  22. package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.d.ts.map +1 -1
  23. package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.js +15 -6
  24. package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.js.map +1 -1
  25. package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.d.ts +23 -3
  26. package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.d.ts.map +1 -1
  27. package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.js +17 -8
  28. package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.js.map +1 -1
  29. package/lib/bulk-importer/handlers/assortment/upsertMedia.d.ts +67 -2
  30. package/lib/bulk-importer/handlers/assortment/upsertMedia.d.ts.map +1 -1
  31. package/lib/bulk-importer/handlers/assortment/upsertMedia.js +18 -4
  32. package/lib/bulk-importer/handlers/assortment/upsertMedia.js.map +1 -1
  33. package/lib/bulk-importer/handlers/filter/create.d.ts +125 -0
  34. package/lib/bulk-importer/handlers/filter/create.d.ts.map +1 -1
  35. package/lib/bulk-importer/handlers/filter/create.js +22 -0
  36. package/lib/bulk-importer/handlers/filter/create.js.map +1 -1
  37. package/lib/bulk-importer/handlers/filter/remove.d.ts +10 -2
  38. package/lib/bulk-importer/handlers/filter/remove.d.ts.map +1 -1
  39. package/lib/bulk-importer/handlers/filter/remove.js +4 -0
  40. package/lib/bulk-importer/handlers/filter/remove.js.map +1 -1
  41. package/lib/bulk-importer/handlers/filter/update.d.ts +125 -0
  42. package/lib/bulk-importer/handlers/filter/update.d.ts.map +1 -1
  43. package/lib/bulk-importer/handlers/filter/update.js +22 -0
  44. package/lib/bulk-importer/handlers/filter/update.js.map +1 -1
  45. package/lib/bulk-importer/handlers/product/create.d.ts +1317 -2
  46. package/lib/bulk-importer/handlers/product/create.d.ts.map +1 -1
  47. package/lib/bulk-importer/handlers/product/create.js +87 -8
  48. package/lib/bulk-importer/handlers/product/create.js.map +1 -1
  49. package/lib/bulk-importer/handlers/product/remove.d.ts +20 -2
  50. package/lib/bulk-importer/handlers/product/remove.d.ts.map +1 -1
  51. package/lib/bulk-importer/handlers/product/remove.js +5 -0
  52. package/lib/bulk-importer/handlers/product/remove.js.map +1 -1
  53. package/lib/bulk-importer/handlers/product/transformSpecificationToProductStructure.d.ts +278 -1
  54. package/lib/bulk-importer/handlers/product/transformSpecificationToProductStructure.d.ts.map +1 -1
  55. package/lib/bulk-importer/handlers/product/transformSpecificationToProductStructure.js +64 -3
  56. package/lib/bulk-importer/handlers/product/transformSpecificationToProductStructure.js.map +1 -1
  57. package/lib/bulk-importer/handlers/product/update.d.ts +1317 -2
  58. package/lib/bulk-importer/handlers/product/update.d.ts.map +1 -1
  59. package/lib/bulk-importer/handlers/product/update.js +89 -5
  60. package/lib/bulk-importer/handlers/product/update.js.map +1 -1
  61. package/lib/bulk-importer/handlers/product/upsertMedia.d.ts +67 -2
  62. package/lib/bulk-importer/handlers/product/upsertMedia.d.ts.map +1 -1
  63. package/lib/bulk-importer/handlers/product/upsertMedia.js +16 -2
  64. package/lib/bulk-importer/handlers/product/upsertMedia.js.map +1 -1
  65. package/lib/bulk-importer/handlers/product/upsertVariations.d.ts +73 -2
  66. package/lib/bulk-importer/handlers/product/upsertVariations.d.ts.map +1 -1
  67. package/lib/bulk-importer/handlers/product/upsertVariations.js +26 -2
  68. package/lib/bulk-importer/handlers/product/upsertVariations.js.map +1 -1
  69. package/lib/bulk-importer/handlers/utils/convertTagsToLowerCase.d.ts +1 -1
  70. package/lib/bulk-importer/handlers/utils/convertTagsToLowerCase.d.ts.map +1 -1
  71. package/lib/bulk-importer/handlers/utils/convertTagsToLowerCase.js.map +1 -1
  72. package/lib/bulk-importer/handlers/utils/event-schema.d.ts +21 -0
  73. package/lib/bulk-importer/handlers/utils/event-schema.d.ts.map +1 -0
  74. package/lib/bulk-importer/handlers/utils/event-schema.js +64 -0
  75. package/lib/bulk-importer/handlers/utils/event-schema.js.map +1 -0
  76. package/lib/bulk-importer/index.d.ts +4 -0
  77. package/lib/bulk-importer/index.d.ts.map +1 -0
  78. package/lib/bulk-importer/index.js +4 -0
  79. package/lib/bulk-importer/index.js.map +1 -0
  80. package/lib/bulk-importer/upsertAsset.d.ts +21 -5
  81. package/lib/bulk-importer/upsertAsset.d.ts.map +1 -1
  82. package/lib/bulk-importer/upsertAsset.js +8 -0
  83. package/lib/bulk-importer/upsertAsset.js.map +1 -1
  84. package/lib/core-index.d.ts +4 -3
  85. package/lib/core-index.d.ts.map +1 -1
  86. package/lib/core-index.js +2 -2
  87. package/lib/core-index.js.map +1 -1
  88. package/lib/directors/BaseDiscountAdapter.d.ts +4 -4
  89. package/lib/directors/BaseDiscountAdapter.d.ts.map +1 -1
  90. package/lib/directors/BaseDiscountAdapter.js +1 -1
  91. package/lib/directors/BaseDiscountAdapter.js.map +1 -1
  92. package/lib/directors/BaseDiscountDirector.d.ts +1 -1
  93. package/lib/directors/BaseDiscountDirector.d.ts.map +1 -1
  94. package/lib/directors/BaseDiscountDirector.js +1 -1
  95. package/lib/directors/BaseDiscountDirector.js.map +1 -1
  96. package/lib/directors/BasePricingAdapter.d.ts +2 -2
  97. package/lib/directors/BasePricingAdapter.d.ts.map +1 -1
  98. package/lib/directors/BasePricingDirector.d.ts.map +1 -1
  99. package/lib/directors/BasePricingDirector.js +3 -3
  100. package/lib/directors/BasePricingDirector.js.map +1 -1
  101. package/lib/directors/BasePricingSheet.js.map +1 -1
  102. package/lib/directors/BaseWorker.js +1 -1
  103. package/lib/directors/BaseWorker.js.map +1 -1
  104. package/lib/directors/DeliveryAdapter.d.ts +3 -3
  105. package/lib/directors/DeliveryAdapter.d.ts.map +1 -1
  106. package/lib/directors/DeliveryDirector.d.ts +3 -3
  107. package/lib/directors/DeliveryDirector.d.ts.map +1 -1
  108. package/lib/directors/DeliveryDirector.js +29 -16
  109. package/lib/directors/DeliveryDirector.js.map +1 -1
  110. package/lib/directors/DeliveryPricingAdapter.d.ts +1 -1
  111. package/lib/directors/DeliveryPricingAdapter.d.ts.map +1 -1
  112. package/lib/directors/DeliveryPricingDirector.d.ts.map +1 -1
  113. package/lib/directors/DeliveryPricingDirector.js +3 -4
  114. package/lib/directors/DeliveryPricingDirector.js.map +1 -1
  115. package/lib/directors/DeliveryPricingSheet.d.ts.map +1 -1
  116. package/lib/directors/DeliveryPricingSheet.js +2 -1
  117. package/lib/directors/DeliveryPricingSheet.js.map +1 -1
  118. package/lib/directors/EnrollmentAdapter.d.ts +7 -4
  119. package/lib/directors/EnrollmentAdapter.d.ts.map +1 -1
  120. package/lib/directors/EnrollmentAdapter.js +1 -4
  121. package/lib/directors/EnrollmentAdapter.js.map +1 -1
  122. package/lib/directors/EnrollmentDirector.d.ts +1 -1
  123. package/lib/directors/EnrollmentDirector.d.ts.map +1 -1
  124. package/lib/directors/EnrollmentDirector.js +1 -5
  125. package/lib/directors/EnrollmentDirector.js.map +1 -1
  126. package/lib/directors/FilterAdapter.d.ts +3 -3
  127. package/lib/directors/FilterAdapter.d.ts.map +1 -1
  128. package/lib/directors/FilterDirector.d.ts +1 -1
  129. package/lib/directors/FilterDirector.d.ts.map +1 -1
  130. package/lib/directors/FilterDirector.js +1 -1
  131. package/lib/directors/FilterDirector.js.map +1 -1
  132. package/lib/directors/MessagingDirector.d.ts +1 -1
  133. package/lib/directors/OrderDiscountAdapter.d.ts +1 -1
  134. package/lib/directors/OrderDiscountAdapter.d.ts.map +1 -1
  135. package/lib/directors/OrderDiscountAdapter.js.map +1 -1
  136. package/lib/directors/OrderPricingAdapter.d.ts +2 -2
  137. package/lib/directors/OrderPricingAdapter.d.ts.map +1 -1
  138. package/lib/directors/OrderPricingDirector.d.ts +2 -2
  139. package/lib/directors/OrderPricingDirector.d.ts.map +1 -1
  140. package/lib/directors/OrderPricingDirector.js +1 -1
  141. package/lib/directors/OrderPricingDirector.js.map +1 -1
  142. package/lib/directors/OrderPricingSheet.d.ts.map +1 -1
  143. package/lib/directors/OrderPricingSheet.js +2 -1
  144. package/lib/directors/OrderPricingSheet.js.map +1 -1
  145. package/lib/directors/PaymentAdapter.d.ts +2 -2
  146. package/lib/directors/PaymentAdapter.d.ts.map +1 -1
  147. package/lib/directors/PaymentDirector.d.ts +4 -4
  148. package/lib/directors/PaymentDirector.d.ts.map +1 -1
  149. package/lib/directors/PaymentDirector.js +22 -4
  150. package/lib/directors/PaymentDirector.js.map +1 -1
  151. package/lib/directors/PaymentPricingAdapter.d.ts +2 -2
  152. package/lib/directors/PaymentPricingAdapter.d.ts.map +1 -1
  153. package/lib/directors/PaymentPricingDirector.d.ts +1 -1
  154. package/lib/directors/PaymentPricingDirector.d.ts.map +1 -1
  155. package/lib/directors/PaymentPricingDirector.js +3 -5
  156. package/lib/directors/PaymentPricingDirector.js.map +1 -1
  157. package/lib/directors/PaymentPricingSheet.d.ts.map +1 -1
  158. package/lib/directors/PaymentPricingSheet.js +2 -1
  159. package/lib/directors/PaymentPricingSheet.js.map +1 -1
  160. package/lib/directors/ProductDiscountAdapter.d.ts +1 -1
  161. package/lib/directors/ProductDiscountAdapter.d.ts.map +1 -1
  162. package/lib/directors/ProductDiscountAdapter.js.map +1 -1
  163. package/lib/directors/ProductDiscountConfiguration.d.ts +1 -1
  164. package/lib/directors/ProductDiscountConfiguration.d.ts.map +1 -1
  165. package/lib/directors/ProductPricingAdapter.d.ts +1 -1
  166. package/lib/directors/ProductPricingAdapter.d.ts.map +1 -1
  167. package/lib/directors/ProductPricingDirector.d.ts +2 -2
  168. package/lib/directors/ProductPricingDirector.d.ts.map +1 -1
  169. package/lib/directors/ProductPricingDirector.js +3 -3
  170. package/lib/directors/ProductPricingDirector.js.map +1 -1
  171. package/lib/directors/ProductPricingSheet.d.ts +2 -2
  172. package/lib/directors/ProductPricingSheet.d.ts.map +1 -1
  173. package/lib/directors/ProductPricingSheet.js +2 -1
  174. package/lib/directors/ProductPricingSheet.js.map +1 -1
  175. package/lib/directors/QuotationAdapter.d.ts +2 -2
  176. package/lib/directors/QuotationAdapter.d.ts.map +1 -1
  177. package/lib/directors/QuotationDirector.js +2 -2
  178. package/lib/directors/WarehousingAdapter.d.ts +3 -4
  179. package/lib/directors/WarehousingAdapter.d.ts.map +1 -1
  180. package/lib/directors/WarehousingAdapter.js.map +1 -1
  181. package/lib/directors/WarehousingDirector.d.ts +5 -5
  182. package/lib/directors/WarehousingDirector.d.ts.map +1 -1
  183. package/lib/directors/WarehousingDirector.js +10 -13
  184. package/lib/directors/WarehousingDirector.js.map +1 -1
  185. package/lib/directors/WorkerAdapter.d.ts +1 -1
  186. package/lib/directors/WorkerAdapter.d.ts.map +1 -1
  187. package/lib/directors/WorkerAdapter.js +1 -1
  188. package/lib/directors/WorkerAdapter.js.map +1 -1
  189. package/lib/directors/WorkerDirector.d.ts +2 -2
  190. package/lib/directors/WorkerDirector.d.ts.map +1 -1
  191. package/lib/directors/WorkerDirector.js +2 -3
  192. package/lib/directors/WorkerDirector.js.map +1 -1
  193. package/lib/modules.d.ts +1 -1
  194. package/lib/modules.d.ts.map +1 -1
  195. package/lib/services/activateEnrollment.js +3 -3
  196. package/lib/services/activateEnrollment.js.map +1 -1
  197. package/lib/services/calculateDiscountTotal.js +2 -2
  198. package/lib/services/calculateDiscountTotal.js.map +1 -1
  199. package/lib/services/checkoutOrder.d.ts +1 -1
  200. package/lib/services/checkoutOrder.d.ts.map +1 -1
  201. package/lib/services/checkoutOrder.js +9 -3
  202. package/lib/services/checkoutOrder.js.map +1 -1
  203. package/lib/services/confirmOrder.d.ts +1 -1
  204. package/lib/services/confirmOrder.d.ts.map +1 -1
  205. package/lib/services/createDownloadStream.d.ts +1 -1
  206. package/lib/services/createDownloadStream.d.ts.map +1 -1
  207. package/lib/services/createDownloadStream.js +2 -0
  208. package/lib/services/createDownloadStream.js.map +1 -1
  209. package/lib/services/createEnrollmentFromCheckout.d.ts.map +1 -1
  210. package/lib/services/createEnrollmentFromCheckout.js +2 -2
  211. package/lib/services/createEnrollmentFromCheckout.js.map +1 -1
  212. package/lib/services/createManualOrderDiscount.d.ts +2 -2
  213. package/lib/services/createManualOrderDiscount.d.ts.map +1 -1
  214. package/lib/services/createSignedURL.d.ts.map +1 -1
  215. package/lib/services/createSignedURL.js +2 -0
  216. package/lib/services/createSignedURL.js.map +1 -1
  217. package/lib/services/deleteUser.d.ts +1 -1
  218. package/lib/services/deleteUser.d.ts.map +1 -1
  219. package/lib/services/deleteUser.js +4 -2
  220. package/lib/services/deleteUser.js.map +1 -1
  221. package/lib/services/discountedEntities.js.map +1 -1
  222. package/lib/services/findOrInitCart.d.ts +1 -2
  223. package/lib/services/findOrInitCart.d.ts.map +1 -1
  224. package/lib/services/findOrInitCart.js.map +1 -1
  225. package/lib/services/fullfillQuotation.d.ts +1 -1
  226. package/lib/services/fullfillQuotation.d.ts.map +1 -1
  227. package/lib/services/fullfillQuotation.js.map +1 -1
  228. package/lib/services/generateOrderFromEnrollment.d.ts +7 -0
  229. package/lib/services/generateOrderFromEnrollment.d.ts.map +1 -0
  230. package/lib/services/generateOrderFromEnrollment.js +34 -0
  231. package/lib/services/generateOrderFromEnrollment.js.map +1 -0
  232. package/lib/services/index.d.ts +2 -0
  233. package/lib/services/index.d.ts.map +1 -1
  234. package/lib/services/index.js +2 -0
  235. package/lib/services/index.js.map +1 -1
  236. package/lib/services/initCartProviders.js.map +1 -1
  237. package/lib/services/initializeEnrollment.d.ts +1 -1
  238. package/lib/services/initializeEnrollment.d.ts.map +1 -1
  239. package/lib/services/initializeEnrollment.js +6 -3
  240. package/lib/services/initializeEnrollment.js.map +1 -1
  241. package/lib/services/linkFileService.d.ts +1 -1
  242. package/lib/services/linkFileService.d.ts.map +1 -1
  243. package/lib/services/linkFileService.js +3 -1
  244. package/lib/services/linkFileService.js.map +1 -1
  245. package/lib/services/loadFilterOptions.d.ts +2 -2
  246. package/lib/services/loadFilterOptions.d.ts.map +1 -1
  247. package/lib/services/migrateOrderCart.d.ts +1 -1
  248. package/lib/services/migrateOrderCart.d.ts.map +1 -1
  249. package/lib/services/nextUserCart.d.ts +1 -1
  250. package/lib/services/nextUserCart.d.ts.map +1 -1
  251. package/lib/services/nextUserCart.js +1 -1
  252. package/lib/services/nextUserCart.js.map +1 -1
  253. package/lib/services/processEnrollment.d.ts.map +1 -1
  254. package/lib/services/processEnrollment.js +13 -5
  255. package/lib/services/processEnrollment.js.map +1 -1
  256. package/lib/services/processOrder.d.ts.map +1 -1
  257. package/lib/services/processOrder.js +26 -30
  258. package/lib/services/processOrder.js.map +1 -1
  259. package/lib/services/processQuotation.js +6 -6
  260. package/lib/services/processQuotation.js.map +1 -1
  261. package/lib/services/proposeQuotation.d.ts +1 -1
  262. package/lib/services/proposeQuotation.d.ts.map +1 -1
  263. package/lib/services/proposeQuotation.js +2 -2
  264. package/lib/services/proposeQuotation.js.map +1 -1
  265. package/lib/services/registerPaymentCredentials.d.ts +1 -2
  266. package/lib/services/registerPaymentCredentials.d.ts.map +1 -1
  267. package/lib/services/registerPaymentCredentials.js +4 -6
  268. package/lib/services/registerPaymentCredentials.js.map +1 -1
  269. package/lib/services/rejectOrder.d.ts +1 -1
  270. package/lib/services/rejectOrder.d.ts.map +1 -1
  271. package/lib/services/rejectQuotation.d.ts +1 -1
  272. package/lib/services/rejectQuotation.d.ts.map +1 -1
  273. package/lib/services/rejectQuotation.js +2 -2
  274. package/lib/services/rejectQuotation.js.map +1 -1
  275. package/lib/services/removeProduct.js +3 -3
  276. package/lib/services/removeProduct.js.map +1 -1
  277. package/lib/services/searchAssortments.js +1 -1
  278. package/lib/services/searchAssortments.js.map +1 -1
  279. package/lib/services/searchProducts.js +1 -1
  280. package/lib/services/searchProducts.js.map +1 -1
  281. package/lib/services/simulateProductDispatching.d.ts +1 -1
  282. package/lib/services/simulateProductDispatching.d.ts.map +1 -1
  283. package/lib/services/simulateProductInventory.d.ts +1 -1
  284. package/lib/services/simulateProductInventory.d.ts.map +1 -1
  285. package/lib/services/simulateProductInventory.js.map +1 -1
  286. package/lib/services/simulateProductPricing.d.ts +7 -4
  287. package/lib/services/simulateProductPricing.d.ts.map +1 -1
  288. package/lib/services/simulateProductPricing.js.map +1 -1
  289. package/lib/services/updateCalculation.d.ts +2 -1
  290. package/lib/services/updateCalculation.d.ts.map +1 -1
  291. package/lib/services/updateCalculation.js +16 -10
  292. package/lib/services/updateCalculation.js.map +1 -1
  293. package/lib/services/updateScheduling.d.ts +1 -1
  294. package/lib/services/updateScheduling.d.ts.map +1 -1
  295. package/lib/services/updateScheduling.js +7 -11
  296. package/lib/services/updateScheduling.js.map +1 -1
  297. package/lib/services/updateUserAvatarAfterUpload.d.ts +1 -1
  298. package/lib/services/updateUserAvatarAfterUpload.d.ts.map +1 -1
  299. package/lib/services/updateUserAvatarAfterUpload.js.map +1 -1
  300. package/lib/services/uploadFileFromStream.d.ts.map +1 -1
  301. package/lib/services/uploadFileFromStream.js +4 -1
  302. package/lib/services/uploadFileFromStream.js.map +1 -1
  303. package/lib/services/uploadFileFromURL.d.ts +1 -2
  304. package/lib/services/uploadFileFromURL.d.ts.map +1 -1
  305. package/lib/services/uploadFileFromURL.js.map +1 -1
  306. package/lib/services/validateOrder.d.ts +1 -1
  307. package/lib/services/validateOrder.d.ts.map +1 -1
  308. package/lib/services/validateOrder.js +17 -24
  309. package/lib/services/validateOrder.js.map +1 -1
  310. package/lib/services/verifyQuotation.d.ts +1 -1
  311. package/lib/services/verifyQuotation.d.ts.map +1 -1
  312. package/lib/services/verifyQuotation.js +2 -2
  313. package/lib/services/verifyQuotation.js.map +1 -1
  314. package/package.json +20 -20
  315. package/src/bulk-importer/createBulkImporter.ts +34 -22
  316. package/src/bulk-importer/handlers/assortment/create.ts +38 -7
  317. package/src/bulk-importer/handlers/assortment/remove.ts +14 -3
  318. package/src/bulk-importer/handlers/assortment/update.ts +53 -9
  319. package/src/bulk-importer/handlers/assortment/upsertAssortmentChildren.ts +44 -19
  320. package/src/bulk-importer/handlers/assortment/upsertAssortmentFilters.ts +37 -9
  321. package/src/bulk-importer/handlers/assortment/upsertAssortmentProducts.ts +35 -9
  322. package/src/bulk-importer/handlers/assortment/upsertMedia.ts +23 -5
  323. package/src/bulk-importer/handlers/filter/create.ts +28 -0
  324. package/src/bulk-importer/handlers/filter/remove.ts +6 -1
  325. package/src/bulk-importer/handlers/filter/update.ts +28 -1
  326. package/src/bulk-importer/handlers/product/create.ts +109 -9
  327. package/src/bulk-importer/handlers/product/remove.ts +7 -1
  328. package/src/bulk-importer/handlers/product/update.ts +117 -8
  329. package/src/bulk-importer/handlers/product/upsertMedia.ts +20 -3
  330. package/src/bulk-importer/handlers/product/upsertVariations.ts +43 -4
  331. package/src/bulk-importer/handlers/utils/convertTagsToLowerCase.ts +1 -1
  332. package/src/bulk-importer/index.ts +3 -0
  333. package/src/bulk-importer/upsertAsset.ts +10 -2
  334. package/src/core-index.ts +4 -6
  335. package/src/directors/BaseDiscountAdapter.test.ts +1 -1
  336. package/src/directors/BaseDiscountAdapter.ts +5 -5
  337. package/src/directors/BaseDiscountDirector.ts +2 -2
  338. package/src/directors/BasePricingAdapter.ts +2 -2
  339. package/src/directors/BasePricingDirector.ts +47 -44
  340. package/src/directors/BasePricingSheet.ts +1 -1
  341. package/src/directors/BaseWorker.ts +1 -1
  342. package/src/directors/DeliveryAdapter.ts +3 -3
  343. package/src/directors/DeliveryDirector.ts +33 -23
  344. package/src/directors/DeliveryPricingAdapter.ts +1 -1
  345. package/src/directors/DeliveryPricingDirector.ts +5 -6
  346. package/src/directors/DeliveryPricingSheet.ts +3 -2
  347. package/src/directors/EnrollmentAdapter.ts +9 -6
  348. package/src/directors/EnrollmentDirector.ts +9 -8
  349. package/src/directors/FilterAdapter.ts +3 -3
  350. package/src/directors/FilterDirector.ts +5 -5
  351. package/src/directors/OrderDiscountAdapter.ts +2 -2
  352. package/src/directors/OrderPricingAdapter.ts +2 -2
  353. package/src/directors/OrderPricingDirector.ts +3 -3
  354. package/src/directors/OrderPricingSheet.ts +3 -2
  355. package/src/directors/PaymentAdapter.ts +2 -2
  356. package/src/directors/PaymentDirector.ts +32 -8
  357. package/src/directors/PaymentPricingAdapter.ts +2 -2
  358. package/src/directors/PaymentPricingDirector.ts +6 -8
  359. package/src/directors/PaymentPricingSheet.ts +3 -2
  360. package/src/directors/ProductDiscountAdapter.ts +2 -2
  361. package/src/directors/ProductDiscountConfiguration.ts +1 -1
  362. package/src/directors/ProductPricingAdapter.ts +1 -1
  363. package/src/directors/ProductPricingDirector.ts +7 -7
  364. package/src/directors/ProductPricingSheet.ts +4 -3
  365. package/src/directors/QuotationAdapter.ts +2 -2
  366. package/src/directors/QuotationDirector.ts +2 -2
  367. package/src/directors/WarehousingAdapter.ts +3 -4
  368. package/src/directors/WarehousingDirector.ts +20 -23
  369. package/src/directors/WorkerAdapter.ts +2 -2
  370. package/src/directors/WorkerDirector.ts +5 -6
  371. package/src/modules.ts +1 -1
  372. package/src/services/activateEnrollment.ts +5 -5
  373. package/src/services/calculateDiscountTotal.ts +4 -4
  374. package/src/services/checkoutOrder.ts +9 -4
  375. package/src/services/createDownloadStream.ts +1 -0
  376. package/src/services/createEnrollmentFromCheckout.ts +22 -20
  377. package/src/services/createManualOrderDiscount.ts +2 -2
  378. package/src/services/createSignedURL.ts +1 -0
  379. package/src/services/deleteUser.ts +7 -2
  380. package/src/services/discountedEntities.ts +6 -6
  381. package/src/services/findOrInitCart.ts +1 -2
  382. package/src/services/fullfillQuotation.ts +1 -1
  383. package/src/services/generateOrderFromEnrollment.ts +54 -0
  384. package/src/services/index.ts +4 -0
  385. package/src/services/initCartProviders.ts +2 -2
  386. package/src/services/initializeEnrollment.ts +11 -4
  387. package/src/services/linkFileService.ts +3 -1
  388. package/src/services/nextUserCart.ts +1 -1
  389. package/src/services/processEnrollment.ts +18 -6
  390. package/src/services/processOrder.ts +33 -36
  391. package/src/services/processQuotation.ts +6 -6
  392. package/src/services/proposeQuotation.ts +2 -2
  393. package/src/services/registerPaymentCredentials.ts +6 -8
  394. package/src/services/rejectQuotation.ts +2 -2
  395. package/src/services/removeProduct.ts +3 -3
  396. package/src/services/searchAssortments.ts +1 -1
  397. package/src/services/searchProducts.ts +1 -1
  398. package/src/services/simulateProductDispatching.ts +1 -1
  399. package/src/services/simulateProductInventory.ts +7 -3
  400. package/src/services/simulateProductPricing.ts +6 -3
  401. package/src/services/updateCalculation.ts +33 -18
  402. package/src/services/updateScheduling.ts +19 -20
  403. package/src/services/updateUserAvatarAfterUpload.ts +4 -1
  404. package/src/services/uploadFileFromStream.ts +3 -1
  405. package/src/services/uploadFileFromURL.ts +2 -2
  406. package/src/services/validateOrder.ts +34 -38
  407. package/src/services/verifyQuotation.ts +2 -2
  408. package/lib/factory/registerProductDiscoverabilityFilter copy.d.ts +0 -5
  409. package/lib/factory/registerProductDiscoverabilityFilter copy.d.ts.map +0 -1
  410. package/lib/factory/registerProductDiscoverabilityFilter copy.js +0 -28
  411. package/lib/factory/registerProductDiscoverabilityFilter copy.js.map +0 -1
  412. package/src/bulk-importer/handlers/product/transformSpecificationToProductStructure.ts +0 -22
@@ -6,7 +6,7 @@ import {
6
6
  DeliveryError,
7
7
  } from './DeliveryAdapter.js';
8
8
  import { DeliveryProvider } from '@unchainedshop/core-delivery';
9
- import { OrderDelivery, OrderDeliveryStatus } from '@unchainedshop/core-orders';
9
+ import { Order, OrderDeliveryStatus } from '@unchainedshop/core-orders';
10
10
  import { Modules } from '../modules.js';
11
11
  import { createLogger } from '@unchainedshop/logger';
12
12
 
@@ -14,10 +14,10 @@ const logger = createLogger('unchained:core');
14
14
 
15
15
  export type IDeliveryDirector = IBaseDirector<IDeliveryAdapter> & {
16
16
  sendOrderDelivery: (
17
- orderDelivery: OrderDelivery,
17
+ order: Order,
18
18
  transactionContext: Record<string, any>,
19
19
  unchainedAPI: { modules: Modules },
20
- ) => Promise<OrderDelivery>;
20
+ ) => Promise<void>;
21
21
  actions: (
22
22
  deliveryProvider: DeliveryProvider,
23
23
  deliveryContext: DeliveryContext,
@@ -33,21 +33,24 @@ export const DeliveryDirector: IDeliveryDirector = {
33
33
  actions: async (deliveryProvider, deliveryContext, unchainedAPI) => {
34
34
  const Adapter = baseDirector.getAdapter(deliveryProvider.adapterKey);
35
35
 
36
+ if (!Adapter) {
37
+ throw new Error(`Delivery Plugin ${deliveryProvider.adapterKey} not available`);
38
+ }
39
+
36
40
  const context = { ...deliveryContext, ...unchainedAPI };
37
- const adapter = Adapter?.actions(deliveryProvider.configuration, context);
41
+ const adapter = Adapter.actions(deliveryProvider.configuration, context);
38
42
 
39
43
  return {
40
44
  configurationError: () => {
41
- try {
42
- return adapter.configurationError();
43
- } catch {
45
+ if (!adapter) {
44
46
  return DeliveryError.ADAPTER_NOT_FOUND;
45
47
  }
48
+ return adapter.configurationError();
46
49
  },
47
50
 
48
51
  estimatedDeliveryThroughput: async (warehousingThroughputTime) => {
49
52
  try {
50
- const throughput = await adapter.estimatedDeliveryThroughput(warehousingThroughputTime);
53
+ const throughput = await adapter?.estimatedDeliveryThroughput(warehousingThroughputTime);
51
54
  return throughput;
52
55
  } catch (error) {
53
56
  logger.warn('Delivery Director -> Error while estimating delivery throughput', {
@@ -58,6 +61,7 @@ export const DeliveryDirector: IDeliveryDirector = {
58
61
  },
59
62
 
60
63
  isActive: () => {
64
+ if (!adapter) return false;
61
65
  try {
62
66
  return adapter.isActive();
63
67
  } catch (error) {
@@ -69,6 +73,7 @@ export const DeliveryDirector: IDeliveryDirector = {
69
73
  },
70
74
 
71
75
  isAutoReleaseAllowed: () => {
76
+ if (!adapter) return false;
72
77
  try {
73
78
  return adapter.isAutoReleaseAllowed();
74
79
  } catch (error) {
@@ -80,39 +85,47 @@ export const DeliveryDirector: IDeliveryDirector = {
80
85
  },
81
86
 
82
87
  send: async () => {
88
+ if (!adapter) throw new Error('Delivery adapter not found');
83
89
  return adapter.send();
84
90
  },
85
91
 
86
92
  pickUpLocationById: async (locationId) => {
87
- return adapter.pickUpLocationById(locationId);
93
+ if (!adapter) throw new Error('Delivery adapter not found');
94
+ return adapter?.pickUpLocationById(locationId);
88
95
  },
89
96
 
90
97
  pickUpLocations: async () => {
98
+ if (!adapter) throw new Error('Delivery adapter not found');
91
99
  return adapter.pickUpLocations();
92
100
  },
93
101
  };
94
102
  },
95
103
 
96
- sendOrderDelivery: async (orderDelivery, transactionContext, unchainedAPI) => {
104
+ sendOrderDelivery: async (order, transactionContext, unchainedAPI) => {
105
+ const orderDelivery = await unchainedAPI.modules.orders.deliveries.findDelivery({
106
+ orderDeliveryId: order.deliveryId!,
107
+ });
108
+
97
109
  if (
98
- unchainedAPI.modules.orders.deliveries.normalizedStatus(orderDelivery) !== OrderDeliveryStatus.OPEN
110
+ unchainedAPI.modules.orders.deliveries.normalizedStatus(orderDelivery!) !==
111
+ OrderDeliveryStatus.OPEN
99
112
  )
100
- return orderDelivery;
113
+ return;
101
114
 
102
- const order = await unchainedAPI.modules.orders.findOrder({ orderId: orderDelivery.orderId });
103
115
  const deliveryProvider = await unchainedAPI.modules.delivery.findProvider({
104
- deliveryProviderId: orderDelivery.deliveryProviderId,
116
+ deliveryProviderId: orderDelivery!.deliveryProviderId,
105
117
  });
106
- const address = orderDelivery.context?.address || order || order.billingAddress;
118
+
119
+ const address = orderDelivery!.context?.address || order!.billingAddress;
107
120
 
108
121
  const adapter = await DeliveryDirector.actions(
109
- deliveryProvider,
122
+ deliveryProvider!,
110
123
  {
111
- order,
112
- orderDelivery,
124
+ order: order!,
125
+ orderDelivery: orderDelivery!,
113
126
  transactionContext: {
114
127
  ...(transactionContext || {}),
115
- ...(orderDelivery.context || {}),
128
+ ...(orderDelivery!.context || {}),
116
129
  ...(address || {}),
117
130
  },
118
131
  },
@@ -120,14 +133,11 @@ export const DeliveryDirector: IDeliveryDirector = {
120
133
  );
121
134
 
122
135
  const arbitraryResponseData = await adapter.send();
123
-
124
136
  if (arbitraryResponseData) {
125
- return await unchainedAPI.modules.orders.deliveries.updateStatus(orderDelivery._id, {
137
+ await unchainedAPI.modules.orders.deliveries.updateStatus(orderDelivery!._id, {
126
138
  status: OrderDeliveryStatus.DELIVERED,
127
139
  info: JSON.stringify(arbitraryResponseData),
128
140
  });
129
141
  }
130
-
131
- return orderDelivery;
132
142
  },
133
143
  };
@@ -42,7 +42,7 @@ export interface DeliveryPricingAdapterContext extends BasePricingAdapterContext
42
42
  provider: DeliveryProvider;
43
43
  providerContext?: any;
44
44
  order: Order;
45
- orderDelivery: OrderDelivery;
45
+ orderDelivery?: OrderDelivery;
46
46
  user: User;
47
47
  discounts: OrderDiscount[];
48
48
  }
@@ -52,18 +52,18 @@ export const DeliveryPricingDirector: IDeliveryPricingDirector<any> = {
52
52
  const provider = await modules.delivery.findProvider({
53
53
  deliveryProviderId: item.deliveryProviderId,
54
54
  });
55
- const user = await modules.users.findUserById(order.userId);
55
+ const user = await modules.users.findUserById(order!.userId);
56
56
  const discounts = await modules.orders.discounts.findOrderDiscounts({
57
57
  orderId: item.orderId,
58
58
  });
59
59
 
60
60
  return {
61
61
  ...unchainedAPI,
62
- countryCode: order.countryCode,
62
+ countryCode: order!.countryCode,
63
63
  currencyCode,
64
- order,
65
- provider,
66
- user,
64
+ order: order!,
65
+ provider: provider!,
66
+ user: user!,
67
67
  discounts,
68
68
  orderDelivery: item,
69
69
  providerContext: null,
@@ -78,7 +78,6 @@ export const DeliveryPricingDirector: IDeliveryPricingDirector<any> = {
78
78
  provider: context.provider,
79
79
  user: context.user,
80
80
  discounts: [],
81
- orderDelivery: null,
82
81
  providerContext: context.providerContext,
83
82
  };
84
83
  },
@@ -61,7 +61,8 @@ export const DeliveryPricingSheet = (
61
61
  category: DeliveryPricingRowCategory.Discount,
62
62
  discountId: explicitDiscountId,
63
63
  })
64
- .map(({ discountId }) => discountId);
64
+ .map(({ discountId }) => discountId)
65
+ .filter(Boolean) as string[];
65
66
 
66
67
  return [...new Set(discountIds)]
67
68
  .map((discountId) => {
@@ -78,7 +79,7 @@ export const DeliveryPricingSheet = (
78
79
  currencyCode,
79
80
  };
80
81
  })
81
- .filter(Boolean);
82
+ .filter(Boolean) as { discountId: string; amount: number; currencyCode: string }[];
82
83
  },
83
84
  };
84
85
 
@@ -1,6 +1,7 @@
1
1
  import { BaseAdapter, IBaseAdapter } from '@unchainedshop/utils';
2
2
  import {
3
3
  Enrollment,
4
+ EnrollmentOrderPositionTemplate,
4
5
  EnrollmentPeriod,
5
6
  EnrollmentPlan,
6
7
  addToDate,
@@ -10,13 +11,17 @@ import type { OrderPosition } from '@unchainedshop/core-orders';
10
11
 
11
12
  export interface EnrollmentContext {
12
13
  enrollment: Enrollment;
14
+ product: Product;
13
15
  }
14
16
 
15
17
  export interface EnrollmentAdapterActions {
16
- configurationForOrder: (params: { period: EnrollmentPeriod; products: Product[] }) => Promise<any>;
18
+ configurationForOrder: (params: { period: EnrollmentPeriod }) => Promise<{
19
+ orderContext?: Record<string, any>;
20
+ orderPositionTemplates: EnrollmentOrderPositionTemplate[];
21
+ } | null>;
17
22
  isOverdue: () => Promise<boolean>;
18
23
  isValidForActivation: () => Promise<boolean>;
19
- nextPeriod: () => Promise<EnrollmentPeriod>;
24
+ nextPeriod: () => Promise<EnrollmentPeriod | null>;
20
25
  }
21
26
 
22
27
  export type IEnrollmentAdapter = IBaseAdapter & {
@@ -71,10 +76,8 @@ export const EnrollmentAdapter: Omit<IEnrollmentAdapter, 'key' | 'label' | 'vers
71
76
  isValidForActivation: async () => false,
72
77
 
73
78
  nextPeriod: async () => {
74
- const { enrollment } = context;
75
- const product = await (context as any).modules.products.findProduct({
76
- productId: enrollment.productId,
77
- });
79
+ const { enrollment, product } = context;
80
+
78
81
  const plan = product?.plan;
79
82
  const referenceDate = new Date();
80
83
  if (!plan) return null;
@@ -10,9 +10,15 @@ const logger = createLogger('unchained:core');
10
10
  export type IEnrollmentDirector = IBaseDirector<IEnrollmentAdapter> & {
11
11
  transformOrderItemToEnrollment: (
12
12
  item: { orderPosition: OrderPosition; product: Product },
13
- doc: Omit<Enrollment, 'configuration' | 'productId' | 'quantity' | 'status' | 'periods' | 'log'>,
13
+ doc: Omit<
14
+ Enrollment,
15
+ 'configuration' | 'productId' | 'quantity' | 'status' | 'periods' | 'log' | '_id' | 'created'
16
+ >,
14
17
  unchainedAPI,
15
- ) => Promise<Omit<Enrollment, 'status' | 'periods' | 'log'>>;
18
+ ) => Promise<
19
+ Omit<Enrollment, 'status' | 'periods' | 'log' | '_id' | 'created'> &
20
+ Pick<Partial<Enrollment>, '_id' | 'created'>
21
+ >;
16
22
 
17
23
  actions: (enrollmentContext: EnrollmentContext, unchainedAPI) => Promise<EnrollmentAdapterActions>;
18
24
  };
@@ -53,12 +59,7 @@ export const EnrollmentDirector: IEnrollmentDirector = {
53
59
  actions: async (enrollmentContext, unchainedAPI) => {
54
60
  const context = { ...enrollmentContext, ...unchainedAPI };
55
61
 
56
- // Resolve adapter
57
- const product = await context.modules.products.findProduct({
58
- productId: context.enrollment.productId,
59
- });
60
-
61
- const Adapter = findAppropriateAdapters(product?.plan)?.[0];
62
+ const Adapter = findAppropriateAdapters(enrollmentContext.product.plan)?.[0];
62
63
 
63
64
  if (!Adapter) {
64
65
  throw new Error('No suitable enrollment plugin available for this plan configuration');
@@ -21,7 +21,7 @@ export interface FilterAdapterActions {
21
21
 
22
22
  searchAssortments: (
23
23
  params: {
24
- assortmentIds: string[];
24
+ assortmentIds?: string[];
25
25
  },
26
26
  options: {
27
27
  filterSelector: mongodb.Filter<Filter>;
@@ -29,7 +29,7 @@ export interface FilterAdapterActions {
29
29
  sortStage: mongodb.FindOptions['sort'];
30
30
  locale: Intl.Locale;
31
31
  },
32
- ) => Promise<string[]>;
32
+ ) => Promise<string[] | undefined>;
33
33
 
34
34
  searchProducts: (
35
35
  params: {
@@ -41,7 +41,7 @@ export interface FilterAdapterActions {
41
41
  sortStage: mongodb.FindOptions['sort'];
42
42
  locale: Intl.Locale;
43
43
  },
44
- ) => Promise<string[] | null>;
44
+ ) => Promise<string[] | undefined>;
45
45
 
46
46
  transformFilterSelector: (
47
47
  query: mongodb.Filter<Filter>,
@@ -12,7 +12,7 @@ import {
12
12
  import { Product } from '@unchainedshop/core-products';
13
13
  import { Modules } from '../modules.js';
14
14
 
15
- export const parseQueryArray = (query: SearchFilterQuery): Record<string, string[]> =>
15
+ export const parseQueryArray = (query?: SearchFilterQuery): Record<string, string[]> =>
16
16
  (query || []).reduce(
17
17
  (accumulator, { key, value }) => ({
18
18
  ...accumulator,
@@ -96,14 +96,14 @@ export const FilterDirector: IFilterDirector = {
96
96
  },
97
97
 
98
98
  searchAssortments: async (params, options) => {
99
- return reduceAdapters<string[]>(async (lastSearchPromise, adapter) => {
99
+ return reduceAdapters<string[] | undefined>(async (lastSearchPromise, adapter) => {
100
100
  const assortmentIds = await lastSearchPromise;
101
101
  return adapter.searchAssortments({ assortmentIds }, options);
102
102
  }, params.assortmentIds);
103
103
  },
104
104
 
105
105
  searchProducts: async (params, options) => {
106
- return reduceAdapters<string[]>(async (lastSearchPromise, adapter) => {
106
+ return reduceAdapters<string[] | undefined>(async (lastSearchPromise, adapter) => {
107
107
  const productIds = await lastSearchPromise;
108
108
  return adapter.searchProducts({ productIds }, options);
109
109
  }, params.productIds);
@@ -187,7 +187,7 @@ export const FilterDirector: IFilterDirector = {
187
187
  values,
188
188
  Object.keys(keyToProductIdMap),
189
189
  );
190
- const result = [];
190
+ const result: string[] = [];
191
191
  for (const key of filteredKeys) {
192
192
  const additionalValues = key === undefined ? allProductIds : keyToProductIdMap[key];
193
193
  if (additionalValues) {
@@ -244,7 +244,7 @@ export const FilterDirector: IFilterDirector = {
244
244
  async filterFacets(filter, params, unchainedAPI) {
245
245
  const { allProductIds, searchQuery, forceLiveCollection, otherFilters } = params;
246
246
 
247
- const filterQueryParsed = parseQueryArray(searchQuery?.filterQuery);
247
+ const filterQueryParsed = parseQueryArray(searchQuery.filterQuery);
248
248
 
249
249
  // The examinedProductIdSet is a set of product id's that:
250
250
  // - Fit this filter generally
@@ -4,7 +4,7 @@ import {
4
4
  OrderDiscountConfiguration,
5
5
  } from '../directors/index.js';
6
6
 
7
- export const OrderDiscountAdapter: Omit<
7
+ export const OrderDiscountAdapter = BaseDiscountAdapter as Omit<
8
8
  IDiscountAdapter<OrderDiscountConfiguration>,
9
9
  'key' | 'label' | 'version'
10
- > = BaseDiscountAdapter;
10
+ >;
@@ -20,9 +20,9 @@ export interface OrderPricingAdapterContext extends BasePricingAdapterContext {
20
20
  currencyCode?: string;
21
21
  discounts: OrderDiscount[];
22
22
  order: Order;
23
- orderDelivery: OrderDelivery;
24
23
  orderPositions: OrderPosition[];
25
- orderPayment: OrderPayment;
24
+ orderDelivery: OrderDelivery | null;
25
+ orderPayment: OrderPayment | null;
26
26
  user: User;
27
27
  }
28
28
 
@@ -13,9 +13,9 @@ import { Order, OrderDelivery, OrderPayment, OrderPosition } from '@unchainedsho
13
13
  export interface OrderPricingContext {
14
14
  currencyCode: string;
15
15
  order: Order;
16
- orderDelivery: OrderDelivery;
16
+ orderDelivery: OrderDelivery | null;
17
17
  orderPositions: OrderPosition[];
18
- orderPayment: OrderPayment;
18
+ orderPayment: OrderPayment | null;
19
19
  }
20
20
 
21
21
  export type OrderPricingDiscount = PricingDiscount & {
@@ -61,7 +61,7 @@ export const OrderPricingDirector: IOrderPricingDirector<any> = {
61
61
  orderDelivery: context.orderDelivery,
62
62
  orderPayment: context.orderPayment,
63
63
  orderPositions: context.orderPositions,
64
- user,
64
+ user: user!,
65
65
  };
66
66
  },
67
67
 
@@ -122,7 +122,8 @@ export const OrderPricingSheet = (
122
122
  category: OrderPricingRowCategory.Discounts,
123
123
  discountId: explicitDiscountId,
124
124
  })
125
- .map(({ discountId }) => discountId);
125
+ .map(({ discountId }) => discountId)
126
+ .filter(Boolean) as string[];
126
127
 
127
128
  return [...new Set(discountIds)]
128
129
  .map((discountId) => {
@@ -139,7 +140,7 @@ export const OrderPricingSheet = (
139
140
  currencyCode: basePricingSheet.currencyCode,
140
141
  };
141
142
  })
142
- .filter(Boolean);
143
+ .filter(Boolean) as { discountId: string; amount: number; currencyCode: string }[];
143
144
  },
144
145
  };
145
146
 
@@ -23,11 +23,11 @@ export type PaymentChargeActionResult = ChargeResult & {
23
23
  };
24
24
  export interface IPaymentActions {
25
25
  charge: (transactionContext?: any) => Promise<PaymentChargeActionResult | false>;
26
- configurationError: (transactionContext?: any) => PaymentError;
26
+ configurationError: (transactionContext?: any) => PaymentError | null;
27
27
  isActive: (transactionContext?: any) => boolean;
28
28
  isPayLaterAllowed: (transactionContext?: any) => boolean;
29
29
  register: (transactionContext?: any) => Promise<any>;
30
- sign: (transactionContext?: any) => Promise<string>;
30
+ sign: (transactionContext?: any) => Promise<string | null>;
31
31
  validate: (token?: any) => Promise<boolean>;
32
32
  cancel: (transactionContext?: any) => Promise<boolean>;
33
33
  confirm: (transactionContext?: any) => Promise<boolean>;
@@ -2,7 +2,7 @@ import { BaseDirector, IBaseDirector } from '@unchainedshop/utils';
2
2
  import { createLogger } from '@unchainedshop/logger';
3
3
  import { PaymentError, IPaymentActions, IPaymentAdapter, PaymentContext } from './PaymentAdapter.js';
4
4
  import { PaymentProvider } from '@unchainedshop/core-payment';
5
- import { OrderPayment, OrderPaymentStatus } from '@unchainedshop/core-orders';
5
+ import { Order, OrderPayment, OrderPaymentStatus } from '@unchainedshop/core-orders';
6
6
 
7
7
  const buildPaymentProviderActionsContext = (
8
8
  orderPayment: OrderPayment,
@@ -19,7 +19,7 @@ const buildPaymentProviderActionsContext = (
19
19
 
20
20
  export type IPaymentDirector = IBaseDirector<IPaymentAdapter> & {
21
21
  confirmOrderPayment: (
22
- orderPayment: OrderPayment,
22
+ order: Order,
23
23
  paymentContext: {
24
24
  transactionContext: any;
25
25
  userId: string;
@@ -28,7 +28,7 @@ export type IPaymentDirector = IBaseDirector<IPaymentAdapter> & {
28
28
  ) => Promise<OrderPayment>;
29
29
 
30
30
  cancelOrderPayment: (
31
- orderPayment: OrderPayment,
31
+ order: Order,
32
32
  paymentContext: {
33
33
  transactionContext: any;
34
34
  userId: string;
@@ -37,7 +37,7 @@ export type IPaymentDirector = IBaseDirector<IPaymentAdapter> & {
37
37
  ) => Promise<OrderPayment>;
38
38
 
39
39
  chargeOrderPayment: (
40
- orderPayment: OrderPayment,
40
+ order: Order,
41
41
  context: {
42
42
  transactionContext: any;
43
43
  userId: string;
@@ -51,7 +51,7 @@ export type IPaymentDirector = IBaseDirector<IPaymentAdapter> & {
51
51
  unchainedAPI,
52
52
  ) => Promise<IPaymentActions>;
53
53
  };
54
- const logger = createLogger('unchained:core-payment');
54
+ const logger = createLogger('unchained:core:payment');
55
55
  const baseDirector = BaseDirector<IPaymentAdapter>('PaymentDirector');
56
56
 
57
57
  export const PaymentDirector: IPaymentDirector = {
@@ -143,7 +143,7 @@ export const PaymentDirector: IPaymentDirector = {
143
143
  },
144
144
 
145
145
  confirmOrderPayment: async (
146
- orderPayment: OrderPayment,
146
+ order: Order,
147
147
  paymentContext: {
148
148
  transactionContext: any;
149
149
  userId: string;
@@ -152,6 +152,14 @@ export const PaymentDirector: IPaymentDirector = {
152
152
  ): Promise<OrderPayment> => {
153
153
  const { modules } = unchainedAPI;
154
154
 
155
+ const orderPayment =
156
+ order.paymentId &&
157
+ (await modules.orders.payments.findOrderPayment({
158
+ orderPaymentId: order.paymentId,
159
+ }));
160
+
161
+ if (!orderPayment) throw new Error('Order payment not set');
162
+
155
163
  if (modules.orders.payments.normalizedStatus(orderPayment) !== OrderPaymentStatus.PAID) {
156
164
  return orderPayment;
157
165
  }
@@ -178,7 +186,7 @@ export const PaymentDirector: IPaymentDirector = {
178
186
  },
179
187
 
180
188
  cancelOrderPayment: async (
181
- orderPayment: OrderPayment,
189
+ order: Order,
182
190
  paymentContext: {
183
191
  transactionContext: any;
184
192
  userId: string;
@@ -187,6 +195,14 @@ export const PaymentDirector: IPaymentDirector = {
187
195
  ): Promise<OrderPayment> => {
188
196
  const { modules } = unchainedAPI;
189
197
 
198
+ const orderPayment =
199
+ order.paymentId &&
200
+ (await modules.orders.payments.findOrderPayment({
201
+ orderPaymentId: order.paymentId,
202
+ }));
203
+
204
+ if (!orderPayment) throw new Error('Order payment not set');
205
+
190
206
  if (modules.orders.payments.normalizedStatus(orderPayment) !== OrderPaymentStatus.PAID) {
191
207
  return orderPayment;
192
208
  }
@@ -212,7 +228,7 @@ export const PaymentDirector: IPaymentDirector = {
212
228
  },
213
229
 
214
230
  chargeOrderPayment: async (
215
- orderPayment: OrderPayment,
231
+ order: Order,
216
232
  context: {
217
233
  transactionContext: any;
218
234
  userId: string;
@@ -221,6 +237,14 @@ export const PaymentDirector: IPaymentDirector = {
221
237
  ): Promise<OrderPayment> => {
222
238
  const { modules } = unchainedAPI;
223
239
 
240
+ const orderPayment =
241
+ order.paymentId &&
242
+ (await modules.orders.payments.findOrderPayment({
243
+ orderPaymentId: order.paymentId,
244
+ }));
245
+
246
+ if (!orderPayment) throw new Error('Order payment not set');
247
+
224
248
  if (modules.orders.payments.normalizedStatus(orderPayment) !== OrderPaymentStatus.OPEN) {
225
249
  return orderPayment;
226
250
  }
@@ -20,8 +20,8 @@ export interface PaymentPricingCalculation extends PricingCalculation {
20
20
  export interface PaymentPricingAdapterContext extends BasePricingAdapterContext {
21
21
  countryCode?: string;
22
22
  currency?: string;
23
- user: User;
24
- orderPayment: OrderPayment;
23
+ user: User | null;
24
+ orderPayment?: OrderPayment;
25
25
  order: Order;
26
26
  provider: PaymentProvider;
27
27
  discounts: OrderDiscount[];
@@ -15,7 +15,7 @@ export type PaymentPricingContext =
15
15
  | {
16
16
  countryCode?: string;
17
17
  currencyCode?: string;
18
- user: User;
18
+ user?: User;
19
19
  order: Order;
20
20
  provider: PaymentProvider;
21
21
  providerContext?: any;
@@ -54,21 +54,20 @@ export const PaymentPricingDirector: IPaymentPricingDirector<any> = {
54
54
  const provider = await modules.payment.paymentProviders.findProvider({
55
55
  paymentProviderId: item.paymentProviderId,
56
56
  });
57
- const user = await modules.users.findUserById(order.userId);
57
+ const user = await modules.users.findUserById(order!.userId);
58
58
  const discounts = await modules.orders.discounts.findOrderDiscounts({
59
59
  orderId: item.orderId,
60
60
  });
61
61
 
62
62
  return {
63
63
  ...unchainedAPI,
64
- countryCode: order.countryCode,
64
+ countryCode: order!.countryCode,
65
65
  currencyCode,
66
- order,
67
- provider,
66
+ order: order!,
67
+ provider: provider!,
68
68
  user,
69
69
  discounts,
70
70
  orderPayment: item,
71
- providerContext: null,
72
71
  };
73
72
  }
74
73
 
@@ -78,9 +77,8 @@ export const PaymentPricingDirector: IPaymentPricingDirector<any> = {
78
77
  currencyCode: context.currencyCode,
79
78
  order: context.order,
80
79
  provider: context.provider,
81
- user: context.user,
80
+ user: context.user || null,
82
81
  discounts: [],
83
- orderPayment: null,
84
82
  providerContext: context.providerContext,
85
83
  };
86
84
  },
@@ -66,7 +66,8 @@ export const PaymentPricingSheet = (
66
66
  category: PaymentPricingRowCategory.Discount,
67
67
  discountId: explicitDiscountId,
68
68
  })
69
- .map(({ discountId }) => discountId);
69
+ .map(({ discountId }) => discountId)
70
+ .filter(Boolean) as string[];
70
71
 
71
72
  return [...new Set(discountIds)]
72
73
  .map((discountId) => {
@@ -83,7 +84,7 @@ export const PaymentPricingSheet = (
83
84
  currencyCode: basePricingSheet.currencyCode,
84
85
  };
85
86
  })
86
- .filter(Boolean);
87
+ .filter(Boolean) as { discountId: string; amount: number; currencyCode: string }[];
87
88
  },
88
89
  };
89
90
 
@@ -4,7 +4,7 @@ import {
4
4
  ProductDiscountConfiguration,
5
5
  } from '../directors/index.js';
6
6
 
7
- export const ProductDiscountAdapter: Omit<
7
+ export const ProductDiscountAdapter = BaseDiscountAdapter as Omit<
8
8
  IDiscountAdapter<ProductDiscountConfiguration>,
9
9
  'key' | 'label' | 'version'
10
- > = BaseDiscountAdapter;
10
+ >;
@@ -10,7 +10,7 @@ type ResolvedConfiguration = {
10
10
  export type PriceConfigurationResolver = (
11
11
  product: Product,
12
12
  quantity: number,
13
- configuration: ProductConfiguration[],
13
+ configuration?: ProductConfiguration[],
14
14
  ) => ResolvedConfiguration | null;
15
15
 
16
16
  export interface ProductDiscountConfiguration extends ResolvedConfiguration {
@@ -16,7 +16,7 @@ export interface ProductPricingAdapterContext extends BasePricingAdapterContext
16
16
  currencyCode: string;
17
17
  product: Product;
18
18
  quantity: number;
19
- configuration: ProductConfiguration[];
19
+ configuration?: ProductConfiguration[];
20
20
  order?: Order;
21
21
  user?: User;
22
22
  }