@medusajs/medusa 1.1.63 → 1.2.0

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 (293) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/api/index.d.ts +2 -0
  3. package/dist/api/index.js +2 -0
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/routes/admin/collections/add-products.d.ts +32 -0
  6. package/dist/api/routes/admin/{product-tags/update-collection.js → collections/add-products.js} +25 -45
  7. package/dist/api/routes/admin/collections/add-products.js.map +1 -0
  8. package/dist/api/routes/admin/collections/index.d.ts +2 -0
  9. package/dist/api/routes/admin/collections/index.js +11 -1
  10. package/dist/api/routes/admin/collections/index.js.map +1 -1
  11. package/dist/api/routes/admin/collections/remove-products.d.ts +32 -0
  12. package/dist/api/routes/admin/{product-tags/create-collection.js → collections/remove-products.js} +35 -49
  13. package/dist/api/routes/admin/collections/remove-products.js.map +1 -0
  14. package/dist/api/routes/admin/customer-groups/create-customer-group.d.ts +27 -0
  15. package/dist/api/routes/admin/customer-groups/create-customer-group.js +103 -0
  16. package/dist/api/routes/admin/customer-groups/create-customer-group.js.map +1 -0
  17. package/dist/api/routes/admin/customer-groups/delete-customer-group.d.ts +28 -0
  18. package/dist/api/routes/admin/{product-tags/delete-collection.js → customer-groups/delete-customer-group.js} +25 -25
  19. package/dist/api/routes/admin/customer-groups/delete-customer-group.js.map +1 -0
  20. package/dist/api/routes/admin/customer-groups/delete-customers-batch.d.ts +27 -0
  21. package/dist/api/routes/admin/customer-groups/delete-customers-batch.js +106 -0
  22. package/dist/api/routes/admin/customer-groups/delete-customers-batch.js.map +1 -0
  23. package/dist/api/routes/admin/customer-groups/get-customer-group.d.ts +25 -0
  24. package/dist/api/routes/admin/customer-groups/get-customer-group.js +113 -0
  25. package/dist/api/routes/admin/customer-groups/get-customer-group.js.map +1 -0
  26. package/dist/api/routes/admin/customer-groups/index.d.ts +13 -0
  27. package/dist/api/routes/admin/customer-groups/index.js +31 -0
  28. package/dist/api/routes/admin/customer-groups/index.js.map +1 -0
  29. package/dist/api/routes/admin/customer-groups/update-customer-group.d.ts +28 -0
  30. package/dist/api/routes/admin/customer-groups/update-customer-group.js +124 -0
  31. package/dist/api/routes/admin/customer-groups/update-customer-group.js.map +1 -0
  32. package/dist/api/routes/admin/customers/get-customer.js +18 -5
  33. package/dist/api/routes/admin/customers/get-customer.js.map +1 -1
  34. package/dist/api/routes/admin/customers/index.d.ts +1 -0
  35. package/dist/api/routes/admin/customers/index.js +2 -0
  36. package/dist/api/routes/admin/customers/index.js.map +1 -1
  37. package/dist/api/routes/admin/customers/update-customer.d.ts +14 -0
  38. package/dist/api/routes/admin/customers/update-customer.js +49 -10
  39. package/dist/api/routes/admin/customers/update-customer.js.map +1 -1
  40. package/dist/api/routes/admin/draft-orders/create-draft-order.d.ts +3 -3
  41. package/dist/api/routes/admin/draft-orders/create-draft-order.js.map +1 -1
  42. package/dist/api/routes/admin/draft-orders/create-line-item.d.ts +1 -1
  43. package/dist/api/routes/admin/draft-orders/create-line-item.js.map +1 -1
  44. package/dist/api/routes/admin/draft-orders/update-line-item.d.ts +1 -1
  45. package/dist/api/routes/admin/draft-orders/update-line-item.js.map +1 -1
  46. package/dist/api/routes/admin/index.js +6 -0
  47. package/dist/api/routes/admin/index.js.map +1 -1
  48. package/dist/api/routes/admin/orders/add-shipping-method.d.ts +1 -1
  49. package/dist/api/routes/admin/orders/add-shipping-method.js.map +1 -1
  50. package/dist/api/routes/admin/orders/create-claim.js +9 -1
  51. package/dist/api/routes/admin/orders/create-claim.js.map +1 -1
  52. package/dist/api/routes/admin/orders/create-swap-shipment.js +1 -0
  53. package/dist/api/routes/admin/orders/create-swap-shipment.js.map +1 -1
  54. package/dist/api/routes/admin/orders/create-swap.js +7 -1
  55. package/dist/api/routes/admin/orders/create-swap.js.map +1 -1
  56. package/dist/api/routes/admin/orders/index.d.ts +0 -1
  57. package/dist/api/routes/admin/orders/index.js +2 -5
  58. package/dist/api/routes/admin/orders/index.js.map +1 -1
  59. package/dist/api/routes/admin/product-types/index.d.ts +15 -0
  60. package/dist/api/routes/admin/product-types/index.js +40 -0
  61. package/dist/api/routes/admin/product-types/index.js.map +1 -0
  62. package/dist/api/routes/admin/product-types/list-product-types.d.ts +39 -0
  63. package/dist/api/routes/admin/{product-tags/list-collections.js → product-types/list-product-types.js} +72 -76
  64. package/dist/api/routes/admin/product-types/list-product-types.js.map +1 -0
  65. package/dist/api/routes/admin/regions/index.js +3 -0
  66. package/dist/api/routes/admin/regions/index.js.map +1 -1
  67. package/dist/api/routes/admin/regions/list-regions.d.ts +27 -3
  68. package/dist/api/routes/admin/regions/list-regions.js +91 -11
  69. package/dist/api/routes/admin/regions/list-regions.js.map +1 -1
  70. package/dist/api/routes/admin/regions/update-region.d.ts +12 -0
  71. package/dist/api/routes/admin/regions/update-region.js +24 -0
  72. package/dist/api/routes/admin/regions/update-region.js.map +1 -1
  73. package/dist/api/routes/admin/shipping-options/index.d.ts +2 -2
  74. package/dist/api/routes/admin/shipping-options/list-shipping-options.js +23 -7
  75. package/dist/api/routes/admin/shipping-options/list-shipping-options.js.map +1 -1
  76. package/dist/api/routes/admin/store/index.d.ts +4 -1
  77. package/dist/api/routes/admin/store/index.js +1 -0
  78. package/dist/api/routes/admin/store/index.js.map +1 -1
  79. package/dist/api/routes/admin/store/list-tax-providers.d.ts +22 -0
  80. package/dist/api/routes/admin/{product-tags/get-collection.js → store/list-tax-providers.js} +21 -22
  81. package/dist/api/routes/admin/store/list-tax-providers.js.map +1 -0
  82. package/dist/api/routes/admin/swaps/index.js +0 -6
  83. package/dist/api/routes/admin/swaps/index.js.map +1 -1
  84. package/dist/api/routes/admin/tax-rates/add-to-product-types.d.ts +1 -1
  85. package/dist/api/routes/admin/tax-rates/add-to-product-types.js +4 -59
  86. package/dist/api/routes/admin/tax-rates/add-to-product-types.js.map +1 -1
  87. package/dist/api/routes/admin/tax-rates/add-to-products.d.ts +1 -1
  88. package/dist/api/routes/admin/tax-rates/add-to-products.js +4 -55
  89. package/dist/api/routes/admin/tax-rates/add-to-products.js.map +1 -1
  90. package/dist/api/routes/admin/tax-rates/add-to-shipping-options.d.ts +1 -1
  91. package/dist/api/routes/admin/tax-rates/add-to-shipping-options.js +4 -59
  92. package/dist/api/routes/admin/tax-rates/add-to-shipping-options.js.map +1 -1
  93. package/dist/api/routes/admin/tax-rates/create-tax-rate.js +14 -113
  94. package/dist/api/routes/admin/tax-rates/create-tax-rate.js.map +1 -1
  95. package/dist/api/routes/admin/tax-rates/index.d.ts +3 -0
  96. package/dist/api/routes/admin/tax-rates/index.js +18 -3
  97. package/dist/api/routes/admin/tax-rates/index.js.map +1 -1
  98. package/dist/api/routes/admin/tax-rates/list-tax-rates.d.ts +2 -2
  99. package/dist/api/routes/admin/tax-rates/list-tax-rates.js.map +1 -1
  100. package/dist/api/routes/admin/tax-rates/remove-from-product-types.d.ts +29 -0
  101. package/dist/api/routes/admin/tax-rates/remove-from-product-types.js +122 -0
  102. package/dist/api/routes/admin/tax-rates/remove-from-product-types.js.map +1 -0
  103. package/dist/api/routes/admin/tax-rates/remove-from-products.d.ts +29 -0
  104. package/dist/api/routes/admin/tax-rates/remove-from-products.js +122 -0
  105. package/dist/api/routes/admin/tax-rates/remove-from-products.js.map +1 -0
  106. package/dist/api/routes/admin/tax-rates/remove-from-shipping-options.d.ts +29 -0
  107. package/dist/api/routes/admin/tax-rates/remove-from-shipping-options.js +122 -0
  108. package/dist/api/routes/admin/tax-rates/remove-from-shipping-options.js.map +1 -0
  109. package/dist/api/routes/admin/tax-rates/update-tax-rate.js +15 -116
  110. package/dist/api/routes/admin/tax-rates/update-tax-rate.js.map +1 -1
  111. package/dist/api/routes/store/carts/add-shipping-method.d.ts +1 -1
  112. package/dist/api/routes/store/carts/add-shipping-method.js.map +1 -1
  113. package/dist/api/routes/store/carts/complete-cart.js +11 -247
  114. package/dist/api/routes/store/carts/complete-cart.js.map +1 -1
  115. package/dist/api/routes/store/carts/index.js +2 -0
  116. package/dist/api/routes/store/carts/index.js.map +1 -1
  117. package/dist/api/routes/store/swaps/create-swap.js +7 -1
  118. package/dist/api/routes/store/swaps/create-swap.js.map +1 -1
  119. package/dist/db-subscribers/region.d.ts +6 -0
  120. package/dist/db-subscribers/region.js +84 -0
  121. package/dist/db-subscribers/region.js.map +1 -0
  122. package/dist/entity-subscribers/region.d.ts +6 -0
  123. package/dist/entity-subscribers/region.js +27 -0
  124. package/dist/entity-subscribers/region.js.map +1 -0
  125. package/dist/helpers/test-request.js +2 -0
  126. package/dist/helpers/test-request.js.map +1 -1
  127. package/dist/index.d.ts +59 -50
  128. package/dist/index.js +60 -101
  129. package/dist/index.js.map +1 -1
  130. package/dist/loaders/db-subscribers.d.ts +6 -0
  131. package/dist/loaders/db-subscribers.js +53 -0
  132. package/dist/loaders/db-subscribers.js.map +1 -0
  133. package/dist/loaders/index.d.ts +2 -1
  134. package/dist/loaders/index.js +17 -4
  135. package/dist/loaders/index.js.map +1 -1
  136. package/dist/loaders/models.js.map +1 -1
  137. package/dist/loaders/passport.js.map +1 -1
  138. package/dist/loaders/plugins.js +26 -0
  139. package/dist/loaders/plugins.js.map +1 -1
  140. package/dist/loaders/services.d.ts +2 -1
  141. package/dist/loaders/services.js +9 -7
  142. package/dist/loaders/services.js.map +1 -1
  143. package/dist/migrations/1641636508055-new_tax_system.js +9 -9
  144. package/dist/migrations/1641636508055-new_tax_system.js.map +1 -1
  145. package/dist/migrations/1644943746861-customer_groups.d.ts +6 -0
  146. package/dist/migrations/1644943746861-customer_groups.js +107 -0
  147. package/dist/migrations/1644943746861-customer_groups.js.map +1 -0
  148. package/dist/models/cart.d.ts +2 -1
  149. package/dist/models/cart.js +1 -0
  150. package/dist/models/cart.js.map +1 -1
  151. package/dist/models/customer-group.d.ts +11 -0
  152. package/dist/models/customer-group.js +81 -0
  153. package/dist/models/customer-group.js.map +1 -0
  154. package/dist/models/customer.d.ts +2 -0
  155. package/dist/models/customer.js +18 -1
  156. package/dist/models/customer.js.map +1 -1
  157. package/dist/models/line-item.d.ts +3 -0
  158. package/dist/models/line-item.js +9 -0
  159. package/dist/models/line-item.js.map +1 -1
  160. package/dist/models/order.d.ts +2 -1
  161. package/dist/models/order.js +3 -2
  162. package/dist/models/order.js.map +1 -1
  163. package/dist/models/product-tax-rate.d.ts +0 -1
  164. package/dist/models/product-tax-rate.js +5 -7
  165. package/dist/models/product-tax-rate.js.map +1 -1
  166. package/dist/models/product-type-tax-rate.d.ts +0 -1
  167. package/dist/models/product-type-tax-rate.js +2 -6
  168. package/dist/models/product-type-tax-rate.js.map +1 -1
  169. package/dist/models/product.d.ts +1 -1
  170. package/dist/models/product.js +2 -2
  171. package/dist/models/product.js.map +1 -1
  172. package/dist/models/region.d.ts +7 -0
  173. package/dist/models/region.js +31 -2
  174. package/dist/models/region.js.map +1 -1
  175. package/dist/models/shipping-method.d.ts +2 -0
  176. package/dist/models/shipping-method.js +7 -0
  177. package/dist/models/shipping-method.js.map +1 -1
  178. package/dist/models/shipping-tax-rate.d.ts +0 -1
  179. package/dist/models/shipping-tax-rate.js +2 -6
  180. package/dist/models/shipping-tax-rate.js.map +1 -1
  181. package/dist/models/swap.d.ts +1 -1
  182. package/dist/models/swap.js +1 -1
  183. package/dist/models/swap.js.map +1 -1
  184. package/dist/repositories/customer-group.d.ts +5 -0
  185. package/dist/repositories/customer-group.js +91 -0
  186. package/dist/repositories/customer-group.js.map +1 -0
  187. package/dist/repositories/line-item.d.ts +12 -0
  188. package/dist/repositories/line-item.js +61 -0
  189. package/dist/repositories/line-item.js.map +1 -1
  190. package/dist/repositories/money-amount.d.ts +6 -0
  191. package/dist/repositories/money-amount.js +97 -0
  192. package/dist/repositories/money-amount.js.map +1 -1
  193. package/dist/repositories/product.d.ts +2 -0
  194. package/dist/repositories/product.js +32 -0
  195. package/dist/repositories/product.js.map +1 -1
  196. package/dist/repositories/tax-provider.d.ts +4 -0
  197. package/dist/repositories/tax-provider.js +38 -0
  198. package/dist/repositories/tax-provider.js.map +1 -0
  199. package/dist/repositories/tax-rate.d.ts +7 -4
  200. package/dist/repositories/tax-rate.js +96 -21
  201. package/dist/repositories/tax-rate.js.map +1 -1
  202. package/dist/services/cart.d.ts +92 -114
  203. package/dist/services/cart.js +142 -144
  204. package/dist/services/cart.js.map +1 -1
  205. package/dist/services/claim.d.ts +22 -33
  206. package/dist/services/claim.js +106 -95
  207. package/dist/services/claim.js.map +1 -1
  208. package/dist/services/customer-group.d.ts +54 -0
  209. package/dist/services/customer-group.js +265 -0
  210. package/dist/services/customer-group.js.map +1 -0
  211. package/dist/services/customer.d.ts +3 -1
  212. package/dist/services/customer.js +28 -17
  213. package/dist/services/customer.js.map +1 -1
  214. package/dist/services/fulfillment.js +1 -1
  215. package/dist/services/fulfillment.js.map +1 -1
  216. package/dist/services/gift-card.js +1 -1
  217. package/dist/services/gift-card.js.map +1 -1
  218. package/dist/services/index.d.ts +4 -0
  219. package/dist/services/index.js +9 -1
  220. package/dist/services/index.js.map +1 -1
  221. package/dist/services/invite.d.ts +3 -3
  222. package/dist/services/invite.js +4 -2
  223. package/dist/services/invite.js.map +1 -1
  224. package/dist/services/line-item.d.ts +12 -1
  225. package/dist/services/line-item.js +49 -1
  226. package/dist/services/line-item.js.map +1 -1
  227. package/dist/services/order.d.ts +6 -2
  228. package/dist/services/order.js +186 -80
  229. package/dist/services/order.js.map +1 -1
  230. package/dist/services/product-collection.d.ts +2 -0
  231. package/dist/services/product-collection.js +49 -0
  232. package/dist/services/product-collection.js.map +1 -1
  233. package/dist/services/product-type.d.ts +15 -0
  234. package/dist/services/product-type.js +44 -0
  235. package/dist/services/product-type.js.map +1 -1
  236. package/dist/services/product-variant.d.ts +2 -1
  237. package/dist/services/product-variant.js +96 -85
  238. package/dist/services/product-variant.js.map +1 -1
  239. package/dist/services/product.js +3 -1
  240. package/dist/services/product.js.map +1 -1
  241. package/dist/services/region.d.ts +4 -1
  242. package/dist/services/region.js +25 -10
  243. package/dist/services/region.js.map +1 -1
  244. package/dist/services/return.d.ts +3 -1
  245. package/dist/services/return.js +37 -26
  246. package/dist/services/return.js.map +1 -1
  247. package/dist/services/shipping-option.d.ts +7 -4
  248. package/dist/services/shipping-option.js +22 -5
  249. package/dist/services/shipping-option.js.map +1 -1
  250. package/dist/services/swap.d.ts +5 -22
  251. package/dist/services/swap.js +308 -454
  252. package/dist/services/swap.js.map +1 -1
  253. package/dist/services/tax-provider.d.ts +3 -0
  254. package/dist/services/tax-provider.js +10 -0
  255. package/dist/services/tax-provider.js.map +1 -1
  256. package/dist/services/tax-rate.d.ts +13 -6
  257. package/dist/services/tax-rate.js +235 -41
  258. package/dist/services/tax-rate.js.map +1 -1
  259. package/dist/services/totals.d.ts +194 -59
  260. package/dist/services/totals.js +581 -106
  261. package/dist/services/totals.js.map +1 -1
  262. package/dist/subscribers/region.d.ts +14 -0
  263. package/dist/subscribers/region.js +65 -0
  264. package/dist/subscribers/region.js.map +1 -0
  265. package/dist/types/cart.d.ts +2 -1
  266. package/dist/types/cart.js +6 -1
  267. package/dist/types/cart.js.map +1 -1
  268. package/dist/types/common.d.ts +5 -1
  269. package/dist/types/common.js +22 -7
  270. package/dist/types/common.js.map +1 -1
  271. package/dist/types/customer-groups.d.ts +11 -0
  272. package/dist/types/customer-groups.js +43 -0
  273. package/dist/types/customer-groups.js.map +1 -0
  274. package/dist/types/orders.d.ts +2 -0
  275. package/dist/types/orders.js +6 -1
  276. package/dist/types/orders.js.map +1 -1
  277. package/dist/types/product.d.ts +6 -0
  278. package/dist/types/product.js +25 -1
  279. package/dist/types/product.js.map +1 -1
  280. package/dist/utils/format-registration-name.js +3 -0
  281. package/dist/utils/format-registration-name.js.map +1 -1
  282. package/package.json +5 -4
  283. package/yarn-error.log +5 -79
  284. package/dist/api/routes/admin/product-tags/create-collection.d.ts +0 -41
  285. package/dist/api/routes/admin/product-tags/create-collection.js.map +0 -1
  286. package/dist/api/routes/admin/product-tags/delete-collection.d.ts +0 -28
  287. package/dist/api/routes/admin/product-tags/delete-collection.js.map +0 -1
  288. package/dist/api/routes/admin/product-tags/get-collection.d.ts +0 -22
  289. package/dist/api/routes/admin/product-tags/get-collection.js.map +0 -1
  290. package/dist/api/routes/admin/product-tags/list-collections.d.ts +0 -40
  291. package/dist/api/routes/admin/product-tags/list-collections.js.map +0 -1
  292. package/dist/api/routes/admin/product-tags/update-collection.d.ts +0 -41
  293. package/dist/api/routes/admin/product-tags/update-collection.js.map +0 -1
@@ -109,8 +109,8 @@ var __values = (this && this.__values) || function(o) {
109
109
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
110
110
  };
111
111
  Object.defineProperty(exports, "__esModule", { value: true });
112
- var medusa_interfaces_1 = require("medusa-interfaces");
113
112
  var medusa_core_utils_1 = require("medusa-core-utils");
113
+ var medusa_interfaces_1 = require("medusa-interfaces");
114
114
  /**
115
115
  * Handles swaps
116
116
  * @extends BaseService
@@ -118,7 +118,7 @@ var medusa_core_utils_1 = require("medusa-core-utils");
118
118
  var SwapService = /** @class */ (function (_super) {
119
119
  __extends(SwapService, _super);
120
120
  function SwapService(_a) {
121
- var manager = _a.manager, swapRepository = _a.swapRepository, eventBusService = _a.eventBusService, cartService = _a.cartService, totalsService = _a.totalsService, returnService = _a.returnService, lineItemService = _a.lineItemService, paymentProviderService = _a.paymentProviderService, shippingOptionService = _a.shippingOptionService, fulfillmentService = _a.fulfillmentService, orderService = _a.orderService, inventoryService = _a.inventoryService, customShippingOptionService = _a.customShippingOptionService;
121
+ var manager = _a.manager, swapRepository = _a.swapRepository, eventBusService = _a.eventBusService, cartService = _a.cartService, totalsService = _a.totalsService, returnService = _a.returnService, lineItemService = _a.lineItemService, paymentProviderService = _a.paymentProviderService, shippingMethodTaxLineRepository = _a.shippingMethodTaxLineRepository, shippingOptionService = _a.shippingOptionService, fulfillmentService = _a.fulfillmentService, orderService = _a.orderService, inventoryService = _a.inventoryService, customShippingOptionService = _a.customShippingOptionService;
122
122
  var _this = _super.call(this) || this;
123
123
  /** @private @const {EntityManager} */
124
124
  _this.manager_ = manager;
@@ -144,6 +144,8 @@ var SwapService = /** @class */ (function (_super) {
144
144
  _this.inventoryService_ = inventoryService;
145
145
  /** @private @const {EventBusService} */
146
146
  _this.eventBus_ = eventBusService;
147
+ /** @private @const {typeof ShippingMethodTaxLineRepository} */
148
+ _this.shippingTaxLineRepo_ = shippingMethodTaxLineRepository;
147
149
  /** @private @const {CustomShippingOptionService} */
148
150
  _this.customShippingOptionService_ = customShippingOptionService;
149
151
  return _this;
@@ -160,6 +162,7 @@ var SwapService = /** @class */ (function (_super) {
160
162
  totalsService: this.totalsService_,
161
163
  returnService: this.returnService_,
162
164
  lineItemService: this.lineItemService_,
165
+ shippingMethodTaxLineRepository: this.shippingTaxLineRepo_,
163
166
  paymentProviderService: this.paymentProviderService_,
164
167
  shippingOptionService: this.shippingOptionService_,
165
168
  orderService: this.orderService_,
@@ -170,87 +173,46 @@ var SwapService = /** @class */ (function (_super) {
170
173
  cloned.transactionManager_ = transactionManager;
171
174
  return cloned;
172
175
  };
173
- SwapService.prototype.transformQueryForTotals_ = function (config) {
176
+ SwapService.prototype.transformQueryForCart_ = function (config) {
174
177
  var select = config.select, relations = config.relations;
175
- if (!select) {
176
- return __assign(__assign({}, config), { totalsToSelect: [] });
177
- }
178
- var totalFields = [
179
- "cart.subtotal",
180
- "cart.tax_total",
181
- "cart.shipping_total",
182
- "cart.discount_total",
183
- "cart.gift_card_total",
184
- "cart.total",
185
- ];
186
- var totalsToSelect = select.filter(function (v) { return totalFields.includes(v); });
187
- if (totalsToSelect.length > 0) {
188
- var relationSet = new Set(relations);
189
- relationSet.add("cart");
190
- relationSet.add("cart.items");
191
- relationSet.add("cart.gift_cards");
192
- relationSet.add("cart.discounts");
193
- relationSet.add("cart.discounts.rule");
194
- relationSet.add("cart.discounts.rule.valid_for");
195
- relationSet.add("cart.shipping_methods");
196
- relationSet.add("cart.region");
197
- relations = __spreadArray([], __read(relationSet), false);
198
- select = select.filter(function (v) { return !totalFields.includes(v); });
199
- }
200
- return __assign(__assign({}, config), { relations: relations, select: select, totalsToSelect: totalsToSelect });
201
- };
202
- SwapService.prototype.decorateTotals_ = function (cart, totalsFields) {
203
- if (totalsFields === void 0) { totalsFields = []; }
204
- return __awaiter(this, void 0, void 0, function () {
205
- var _a, _b, _c, _d, _e, _f;
206
- return __generator(this, function (_g) {
207
- switch (_g.label) {
208
- case 0:
209
- if (!totalsFields.includes("cart.shipping_total")) return [3 /*break*/, 2];
210
- _a = cart;
211
- return [4 /*yield*/, this.totalsService_.getShippingTotal(cart)];
212
- case 1:
213
- _a.shipping_total = _g.sent();
214
- _g.label = 2;
215
- case 2:
216
- if (!totalsFields.includes("cart.discount_total")) return [3 /*break*/, 4];
217
- _b = cart;
218
- return [4 /*yield*/, this.totalsService_.getDiscountTotal(cart)];
219
- case 3:
220
- _b.discount_total = _g.sent();
221
- _g.label = 4;
222
- case 4:
223
- if (!totalsFields.includes("cart.tax_total")) return [3 /*break*/, 6];
224
- _c = cart;
225
- return [4 /*yield*/, this.totalsService_.getTaxTotal(cart)];
226
- case 5:
227
- _c.tax_total = _g.sent();
228
- _g.label = 6;
229
- case 6:
230
- if (!totalsFields.includes("cart.gift_card_total")) return [3 /*break*/, 8];
231
- _d = cart;
232
- return [4 /*yield*/, this.totalsService_.getGiftCardTotal(cart)];
233
- case 7:
234
- _d.gift_card_total = _g.sent();
235
- _g.label = 8;
236
- case 8:
237
- if (!totalsFields.includes("cart.subtotal")) return [3 /*break*/, 10];
238
- _e = cart;
239
- return [4 /*yield*/, this.totalsService_.getSubtotal(cart)];
240
- case 9:
241
- _e.subtotal = _g.sent();
242
- _g.label = 10;
243
- case 10:
244
- if (!totalsFields.includes("cart.total")) return [3 /*break*/, 12];
245
- _f = cart;
246
- return [4 /*yield*/, this.totalsService_.getTotal(cart)];
247
- case 11:
248
- _f.total = _g.sent();
249
- _g.label = 12;
250
- case 12: return [2 /*return*/, cart];
178
+ var cartSelects = null;
179
+ var cartRelations = null;
180
+ if (typeof relations !== "undefined" && relations.includes("cart")) {
181
+ var _a = __read(relations.reduce(function (acc, next) {
182
+ if (next === "cart") {
183
+ return acc;
251
184
  }
252
- });
253
- });
185
+ if (next.startsWith("cart.")) {
186
+ var _a = __read(next.split(".")), rel = _a.slice(1);
187
+ acc[1].push(rel.join("."));
188
+ }
189
+ else {
190
+ acc[0].push(next);
191
+ }
192
+ return acc;
193
+ }, [[], []]), 2), swapRelations = _a[0], cartRels = _a[1];
194
+ relations = swapRelations;
195
+ cartRelations = cartRels;
196
+ var foundCartId_1 = false;
197
+ if (typeof select !== "undefined") {
198
+ var _b = __read(select.reduce(function (acc, next) {
199
+ if (next.startsWith("cart.")) {
200
+ var _a = __read(next.split(".")), rel = _a.slice(1);
201
+ acc[1].push(rel.join("."));
202
+ }
203
+ else {
204
+ if (next === "cart_id") {
205
+ foundCartId_1 = true;
206
+ }
207
+ acc[0].push(next);
208
+ }
209
+ return acc;
210
+ }, [[], []]), 2), swapSelects = _b[0], cartSels = _b[1];
211
+ select = foundCartId_1 ? swapSelects : __spreadArray(__spreadArray([], __read(swapSelects), false), ["cart_id"], false);
212
+ cartSelects = cartSels;
213
+ }
214
+ }
215
+ return __assign(__assign({}, config), { relations: relations, select: select, cartSelects: cartSelects, cartRelations: cartRelations });
254
216
  };
255
217
  /**
256
218
  * Retrieves a swap with the given id.
@@ -261,13 +223,13 @@ var SwapService = /** @class */ (function (_super) {
261
223
  SwapService.prototype.retrieve = function (id, config) {
262
224
  if (config === void 0) { config = {}; }
263
225
  return __awaiter(this, void 0, void 0, function () {
264
- var swapRepo, validatedId, _a, totalsToSelect, newConfig, query, rels, swap, cart;
226
+ var swapRepo, validatedId, _a, cartSelects, cartRelations, newConfig, query, rels, swap, cart;
265
227
  return __generator(this, function (_b) {
266
228
  switch (_b.label) {
267
229
  case 0:
268
230
  swapRepo = this.manager_.getCustomRepository(this.swapRepository_);
269
231
  validatedId = this.validateId_(id);
270
- _a = this.transformQueryForTotals_(config), totalsToSelect = _a.totalsToSelect, newConfig = __rest(_a, ["totalsToSelect"]);
232
+ _a = this.transformQueryForCart_(config), cartSelects = _a.cartSelects, cartRelations = _a.cartRelations, newConfig = __rest(_a, ["cartSelects", "cartRelations"]);
271
233
  query = this.buildQuery_({ id: validatedId }, newConfig);
272
234
  rels = query.relations;
273
235
  delete query.relations;
@@ -277,8 +239,11 @@ var SwapService = /** @class */ (function (_super) {
277
239
  if (!swap) {
278
240
  throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.NOT_FOUND, "Swap was not found");
279
241
  }
280
- if (!(rels && rels.includes("cart"))) return [3 /*break*/, 3];
281
- return [4 /*yield*/, this.decorateTotals_(swap.cart, totalsToSelect)];
242
+ if (!(cartRelations || cartSelects)) return [3 /*break*/, 3];
243
+ return [4 /*yield*/, this.cartService_.retrieve(swap.cart_id, {
244
+ select: cartSelects,
245
+ relations: cartRelations,
246
+ })];
282
247
  case 2:
283
248
  cart = _b.sent();
284
249
  swap.cart = cart;
@@ -649,11 +614,11 @@ var SwapService = /** @class */ (function (_super) {
649
614
  var _this = this;
650
615
  return __generator(this, function (_a) {
651
616
  return [2 /*return*/, this.atomicPhase_(function (manager) { return __awaiter(_this, void 0, void 0, function () {
652
- var swap, order, discounts, cart, customShippingOptions_1, customShippingOptions_1_1, customShippingOption, e_2_1, _a, _b, item, e_3_1, _loop_1, this_1, _c, _d, r, e_4_1, swapRepo, result;
653
- var e_2, _e, e_3, _f, e_4, _g;
654
- var _h;
655
- return __generator(this, function (_j) {
656
- switch (_j.label) {
617
+ var swap, order, discounts, cart, customShippingOptions_1, customShippingOptions_1_1, customShippingOption, e_2_1, _a, _b, item, e_3_1, shippingTaxLineRepo_1, swapRepo;
618
+ var e_2, _c, e_3, _d;
619
+ var _e;
620
+ return __generator(this, function (_f) {
621
+ switch (_f.label) {
657
622
  case 0: return [4 /*yield*/, this.retrieve(swapId, {
658
623
  relations: [
659
624
  "order",
@@ -668,10 +633,11 @@ var SwapService = /** @class */ (function (_super) {
668
633
  "return_order",
669
634
  "return_order.items",
670
635
  "return_order.shipping_method",
636
+ "return_order.shipping_method.tax_lines",
671
637
  ],
672
638
  })];
673
639
  case 1:
674
- swap = _j.sent();
640
+ swap = _f.sent();
675
641
  if (swap.canceled_at) {
676
642
  throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.NOT_ALLOWED, "Canceled swap cannot be used to create a cart");
677
643
  }
@@ -679,7 +645,7 @@ var SwapService = /** @class */ (function (_super) {
679
645
  throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.DUPLICATE_ERROR, "A cart has already been created for the swap");
680
646
  }
681
647
  order = swap.order;
682
- discounts = ((_h = order === null || order === void 0 ? void 0 : order.discounts) === null || _h === void 0 ? void 0 : _h.filter(function (_a) {
648
+ discounts = ((_e = order === null || order === void 0 ? void 0 : order.discounts) === null || _e === void 0 ? void 0 : _e.filter(function (_a) {
683
649
  var rule = _a.rule;
684
650
  return rule.type !== "free_shipping";
685
651
  })) ||
@@ -698,12 +664,12 @@ var SwapService = /** @class */ (function (_super) {
698
664
  },
699
665
  })];
700
666
  case 2:
701
- cart = _j.sent();
702
- _j.label = 3;
667
+ cart = _f.sent();
668
+ _f.label = 3;
703
669
  case 3:
704
- _j.trys.push([3, 8, 9, 10]);
670
+ _f.trys.push([3, 8, 9, 10]);
705
671
  customShippingOptions_1 = __values(customShippingOptions), customShippingOptions_1_1 = customShippingOptions_1.next();
706
- _j.label = 4;
672
+ _f.label = 4;
707
673
  case 4:
708
674
  if (!!customShippingOptions_1_1.done) return [3 /*break*/, 7];
709
675
  customShippingOption = customShippingOptions_1_1.value;
@@ -715,26 +681,26 @@ var SwapService = /** @class */ (function (_super) {
715
681
  price: customShippingOption.price,
716
682
  })];
717
683
  case 5:
718
- _j.sent();
719
- _j.label = 6;
684
+ _f.sent();
685
+ _f.label = 6;
720
686
  case 6:
721
687
  customShippingOptions_1_1 = customShippingOptions_1.next();
722
688
  return [3 /*break*/, 4];
723
689
  case 7: return [3 /*break*/, 10];
724
690
  case 8:
725
- e_2_1 = _j.sent();
691
+ e_2_1 = _f.sent();
726
692
  e_2 = { error: e_2_1 };
727
693
  return [3 /*break*/, 10];
728
694
  case 9:
729
695
  try {
730
- if (customShippingOptions_1_1 && !customShippingOptions_1_1.done && (_e = customShippingOptions_1.return)) _e.call(customShippingOptions_1);
696
+ if (customShippingOptions_1_1 && !customShippingOptions_1_1.done && (_c = customShippingOptions_1.return)) _c.call(customShippingOptions_1);
731
697
  }
732
698
  finally { if (e_2) throw e_2.error; }
733
699
  return [7 /*endfinally*/];
734
700
  case 10:
735
- _j.trys.push([10, 15, 16, 17]);
701
+ _f.trys.push([10, 15, 16, 17]);
736
702
  _a = __values(swap.additional_items), _b = _a.next();
737
- _j.label = 11;
703
+ _f.label = 11;
738
704
  case 11:
739
705
  if (!!_b.done) return [3 /*break*/, 14];
740
706
  item = _b.value;
@@ -742,24 +708,25 @@ var SwapService = /** @class */ (function (_super) {
742
708
  cart_id: cart.id,
743
709
  })];
744
710
  case 12:
745
- _j.sent();
746
- _j.label = 13;
711
+ _f.sent();
712
+ _f.label = 13;
747
713
  case 13:
748
714
  _b = _a.next();
749
715
  return [3 /*break*/, 11];
750
716
  case 14: return [3 /*break*/, 17];
751
717
  case 15:
752
- e_3_1 = _j.sent();
718
+ e_3_1 = _f.sent();
753
719
  e_3 = { error: e_3_1 };
754
720
  return [3 /*break*/, 17];
755
721
  case 16:
756
722
  try {
757
- if (_b && !_b.done && (_f = _a.return)) _f.call(_a);
723
+ if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
758
724
  }
759
725
  finally { if (e_3) throw e_3.error; }
760
726
  return [7 /*endfinally*/];
761
727
  case 17:
762
728
  if (!(swap.return_order && swap.return_order.shipping_method)) return [3 /*break*/, 19];
729
+ shippingTaxLineRepo_1 = this.manager_.getCustomRepository(this.shippingTaxLineRepo_);
763
730
  return [4 /*yield*/, this.lineItemService_.withTransaction(manager).create({
764
731
  cart_id: cart.id,
765
732
  title: "Return shipping",
@@ -767,103 +734,28 @@ var SwapService = /** @class */ (function (_super) {
767
734
  has_shipping: true,
768
735
  allow_discounts: false,
769
736
  unit_price: swap.return_order.shipping_method.price,
770
- metadata: {
771
- is_return_line: true,
772
- },
737
+ is_return: true,
738
+ tax_lines: swap.return_order.shipping_method.tax_lines.map(function (tl) {
739
+ return shippingTaxLineRepo_1.create({
740
+ name: tl.name,
741
+ code: tl.code,
742
+ rate: tl.rate,
743
+ metadata: tl.metadata,
744
+ });
745
+ }),
773
746
  })];
774
747
  case 18:
775
- _j.sent();
776
- _j.label = 19;
777
- case 19:
778
- _loop_1 = function (r) {
779
- var allItems, _k, _l, s, _m, _o, c, lineItem, toCreate;
780
- var e_5, _p, e_6, _q;
781
- return __generator(this, function (_r) {
782
- switch (_r.label) {
783
- case 0:
784
- allItems = __spreadArray([], __read(order.items), false);
785
- if (order.swaps && order.swaps.length) {
786
- try {
787
- for (_k = (e_5 = void 0, __values(order.swaps)), _l = _k.next(); !_l.done; _l = _k.next()) {
788
- s = _l.value;
789
- allItems = __spreadArray(__spreadArray([], __read(allItems), false), __read(s.additional_items), false);
790
- }
791
- }
792
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
793
- finally {
794
- try {
795
- if (_l && !_l.done && (_p = _k.return)) _p.call(_k);
796
- }
797
- finally { if (e_5) throw e_5.error; }
798
- }
799
- }
800
- if (order.claims && order.claims.length) {
801
- try {
802
- for (_m = (e_6 = void 0, __values(order.claims)), _o = _m.next(); !_o.done; _o = _m.next()) {
803
- c = _o.value;
804
- allItems = __spreadArray(__spreadArray([], __read(allItems), false), __read(c.additional_items), false);
805
- }
806
- }
807
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
808
- finally {
809
- try {
810
- if (_o && !_o.done && (_q = _m.return)) _q.call(_m);
811
- }
812
- finally { if (e_6) throw e_6.error; }
813
- }
814
- }
815
- lineItem = allItems.find(function (i) { return i.id === r.item_id; });
816
- toCreate = {
817
- cart_id: cart.id,
818
- thumbnail: lineItem.thumbnail,
819
- title: lineItem.title,
820
- variant_id: lineItem.variant_id,
821
- unit_price: -1 * lineItem.unit_price,
822
- quantity: r.quantity,
823
- allow_discounts: lineItem.allow_discounts,
824
- metadata: __assign(__assign({}, lineItem.metadata), { is_return_line: true }),
825
- };
826
- return [4 /*yield*/, this_1.lineItemService_.withTransaction(manager).create(toCreate)];
827
- case 1:
828
- _r.sent();
829
- return [2 /*return*/];
830
- }
831
- });
832
- };
833
- this_1 = this;
834
- _j.label = 20;
748
+ _f.sent();
749
+ _f.label = 19;
750
+ case 19: return [4 /*yield*/, this.lineItemService_
751
+ .withTransaction(manager)
752
+ .createReturnLines(swap.return_order.id, cart.id)];
835
753
  case 20:
836
- _j.trys.push([20, 25, 26, 27]);
837
- _c = __values(swap.return_order.items), _d = _c.next();
838
- _j.label = 21;
839
- case 21:
840
- if (!!_d.done) return [3 /*break*/, 24];
841
- r = _d.value;
842
- return [5 /*yield**/, _loop_1(r)];
843
- case 22:
844
- _j.sent();
845
- _j.label = 23;
846
- case 23:
847
- _d = _c.next();
848
- return [3 /*break*/, 21];
849
- case 24: return [3 /*break*/, 27];
850
- case 25:
851
- e_4_1 = _j.sent();
852
- e_4 = { error: e_4_1 };
853
- return [3 /*break*/, 27];
854
- case 26:
855
- try {
856
- if (_d && !_d.done && (_g = _c.return)) _g.call(_c);
857
- }
858
- finally { if (e_4) throw e_4.error; }
859
- return [7 /*endfinally*/];
860
- case 27:
754
+ _f.sent();
861
755
  swap.cart_id = cart.id;
862
756
  swapRepo = manager.getCustomRepository(this.swapRepository_);
863
757
  return [4 /*yield*/, swapRepo.save(swap)];
864
- case 28:
865
- result = _j.sent();
866
- return [2 /*return*/, result];
758
+ case 21: return [2 /*return*/, _f.sent()];
867
759
  }
868
760
  });
869
761
  }); })];
@@ -877,242 +769,201 @@ var SwapService = /** @class */ (function (_super) {
877
769
  return __awaiter(this, void 0, void 0, function () {
878
770
  var _this = this;
879
771
  return __generator(this, function (_a) {
880
- return [2 /*return*/, this.atomicPhase_(function (manager) { return __awaiter(_this, void 0, void 0, function () {
881
- var swap, cart, payment, items, items_1, items_1_1, item, err_3, e_7_1, total, paymentStatus, items_2, items_2_1, item, e_8_1, now, swapRepo, result, _a, _b, method, e_9_1;
882
- var e_7, _c, e_8, _d, e_9, _e;
883
- return __generator(this, function (_f) {
884
- switch (_f.label) {
885
- case 0: return [4 /*yield*/, this.retrieve(swapId, {
886
- relations: [
887
- "cart",
888
- "cart.region",
889
- "cart.shipping_methods",
890
- "cart.shipping_address",
891
- "cart.items",
892
- "cart.discounts",
893
- "cart.discounts.rule",
894
- "cart.payment",
895
- "cart.gift_cards",
896
- ],
897
- })
898
- // If we already registered the cart completion we just return
899
- ];
900
- case 1:
901
- swap = _f.sent();
902
- // If we already registered the cart completion we just return
903
- if (swap.confirmed_at) {
904
- return [2 /*return*/, swap];
905
- }
906
- if (swap.canceled_at) {
907
- throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.NOT_ALLOWED, "Cart related to canceled swap cannot be completed");
908
- }
909
- cart = swap.cart;
910
- payment = cart.payment;
911
- items = swap.cart.items;
912
- if (!!swap.allow_backorder) return [3 /*break*/, 14];
913
- _f.label = 2;
914
- case 2:
915
- _f.trys.push([2, 12, 13, 14]);
916
- items_1 = __values(items), items_1_1 = items_1.next();
917
- _f.label = 3;
918
- case 3:
919
- if (!!items_1_1.done) return [3 /*break*/, 11];
920
- item = items_1_1.value;
921
- _f.label = 4;
922
- case 4:
923
- _f.trys.push([4, 6, , 10]);
924
- return [4 /*yield*/, this.inventoryService_
925
- .withTransaction(manager)
926
- .confirmInventory(item.variant_id, item.quantity)];
927
- case 5:
928
- _f.sent();
929
- return [3 /*break*/, 10];
930
- case 6:
931
- err_3 = _f.sent();
932
- if (!payment) return [3 /*break*/, 8];
933
- return [4 /*yield*/, this.paymentProviderService_
934
- .withTransaction(manager)
935
- .cancelPayment(payment)];
936
- case 7:
937
- _f.sent();
938
- _f.label = 8;
939
- case 8: return [4 /*yield*/, this.cartService_
940
- .withTransaction(manager)
941
- .update(cart.id, { payment_authorized_at: null })];
942
- case 9:
943
- _f.sent();
944
- throw err_3;
945
- case 10:
946
- items_1_1 = items_1.next();
947
- return [3 /*break*/, 3];
948
- case 11: return [3 /*break*/, 14];
949
- case 12:
950
- e_7_1 = _f.sent();
951
- e_7 = { error: e_7_1 };
952
- return [3 /*break*/, 14];
953
- case 13:
954
- try {
955
- if (items_1_1 && !items_1_1.done && (_c = items_1.return)) _c.call(items_1);
956
- }
957
- finally { if (e_7) throw e_7.error; }
958
- return [7 /*endfinally*/];
959
- case 14: return [4 /*yield*/, this.totalsService_.getTotal(cart)];
960
- case 15:
961
- total = _f.sent();
962
- if (!(total > 0)) return [3 /*break*/, 25];
963
- if (!payment) {
964
- throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.INVALID_ARGUMENT, "Cart does not contain a payment");
965
- }
966
- return [4 /*yield*/, this.paymentProviderService_
967
- .withTransaction(manager)
968
- .getStatus(payment)
969
- // If payment status is not authorized, we throw
772
+ switch (_a.label) {
773
+ case 0: return [4 /*yield*/, this.atomicPhase_(function (manager) { return __awaiter(_this, void 0, void 0, function () {
774
+ var swap, cart, payment, items, items_1, items_1_1, item, err_3, e_4_1, total, paymentStatus, items_2, items_2_1, item, e_5_1, now, swapRepo, result, _a, _b, method, e_6_1;
775
+ var e_4, _c, e_5, _d, e_6, _e;
776
+ return __generator(this, function (_f) {
777
+ switch (_f.label) {
778
+ case 0: return [4 /*yield*/, this.retrieve(swapId, {
779
+ select: [
780
+ "id",
781
+ "order_id",
782
+ "no_notification",
783
+ "allow_backorder",
784
+ "canceled_at",
785
+ "confirmed_at",
786
+ "cart_id",
787
+ ],
788
+ })
789
+ // If we already registered the cart completion we just return
970
790
  ];
971
- case 16:
972
- paymentStatus = _f.sent();
973
- // If payment status is not authorized, we throw
974
- if (paymentStatus !== "authorized" && paymentStatus !== "succeeded") {
975
- throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.INVALID_ARGUMENT, "Payment method is not authorized");
976
- }
977
- return [4 /*yield*/, this.paymentProviderService_
978
- .withTransaction(manager)
979
- .updatePayment(payment.id, {
980
- swap_id: swapId,
981
- order_id: swap.order_id,
982
- })];
983
- case 17:
984
- _f.sent();
985
- _f.label = 18;
986
- case 18:
987
- _f.trys.push([18, 23, 24, 25]);
988
- items_2 = __values(items), items_2_1 = items_2.next();
989
- _f.label = 19;
990
- case 19:
991
- if (!!items_2_1.done) return [3 /*break*/, 22];
992
- item = items_2_1.value;
993
- return [4 /*yield*/, this.inventoryService_
994
- .withTransaction(manager)
995
- .adjustInventory(item.variant_id, -item.quantity)];
996
- case 20:
997
- _f.sent();
998
- _f.label = 21;
999
- case 21:
1000
- items_2_1 = items_2.next();
1001
- return [3 /*break*/, 19];
1002
- case 22: return [3 /*break*/, 25];
1003
- case 23:
1004
- e_8_1 = _f.sent();
1005
- e_8 = { error: e_8_1 };
1006
- return [3 /*break*/, 25];
1007
- case 24:
1008
- try {
1009
- if (items_2_1 && !items_2_1.done && (_d = items_2.return)) _d.call(items_2);
1010
- }
1011
- finally { if (e_8) throw e_8.error; }
1012
- return [7 /*endfinally*/];
1013
- case 25:
1014
- now = new Date();
1015
- swap.difference_due = total;
1016
- swap.shipping_address_id = cart.shipping_address_id;
1017
- swap.shipping_methods = cart.shipping_methods;
1018
- swap.confirmed_at = now.toISOString();
1019
- swap.payment_status = total === 0 ? "confirmed" : "awaiting";
1020
- swapRepo = manager.getCustomRepository(this.swapRepository_);
1021
- return [4 /*yield*/, swapRepo.save(swap)];
1022
- case 26:
1023
- result = _f.sent();
1024
- _f.label = 27;
1025
- case 27:
1026
- _f.trys.push([27, 32, 33, 34]);
1027
- _a = __values(cart.shipping_methods), _b = _a.next();
1028
- _f.label = 28;
1029
- case 28:
1030
- if (!!_b.done) return [3 /*break*/, 31];
1031
- method = _b.value;
1032
- return [4 /*yield*/, this.shippingOptionService_
1033
- .withTransaction(manager)
1034
- .updateShippingMethod(method.id, {
1035
- swap_id: result.id,
1036
- })];
1037
- case 29:
1038
- _f.sent();
1039
- _f.label = 30;
1040
- case 30:
1041
- _b = _a.next();
1042
- return [3 /*break*/, 28];
1043
- case 31: return [3 /*break*/, 34];
1044
- case 32:
1045
- e_9_1 = _f.sent();
1046
- e_9 = { error: e_9_1 };
1047
- return [3 /*break*/, 34];
1048
- case 33:
1049
- try {
1050
- if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
1051
- }
1052
- finally { if (e_9) throw e_9.error; }
1053
- return [7 /*endfinally*/];
1054
- case 34:
1055
- this.eventBus_
1056
- .withTransaction(manager)
1057
- .emit(SwapService.Events.PAYMENT_COMPLETED, {
1058
- id: swap.id,
1059
- no_notification: swap.no_notification,
1060
- });
1061
- return [4 /*yield*/, this.cartService_
791
+ case 1:
792
+ swap = _f.sent();
793
+ // If we already registered the cart completion we just return
794
+ if (swap.confirmed_at) {
795
+ return [2 /*return*/, swap];
796
+ }
797
+ if (swap.canceled_at) {
798
+ throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.NOT_ALLOWED, "Cart related to canceled swap cannot be completed");
799
+ }
800
+ return [4 /*yield*/, this.cartService_.retrieve(swap.cart_id, {
801
+ select: ["total"],
802
+ relations: ["payment", "shipping_methods", "items"],
803
+ })];
804
+ case 2:
805
+ cart = _f.sent();
806
+ payment = cart.payment;
807
+ items = cart.items;
808
+ if (!!swap.allow_backorder) return [3 /*break*/, 15];
809
+ _f.label = 3;
810
+ case 3:
811
+ _f.trys.push([3, 13, 14, 15]);
812
+ items_1 = __values(items), items_1_1 = items_1.next();
813
+ _f.label = 4;
814
+ case 4:
815
+ if (!!items_1_1.done) return [3 /*break*/, 12];
816
+ item = items_1_1.value;
817
+ _f.label = 5;
818
+ case 5:
819
+ _f.trys.push([5, 7, , 11]);
820
+ return [4 /*yield*/, this.inventoryService_
821
+ .withTransaction(manager)
822
+ .confirmInventory(item.variant_id, item.quantity)];
823
+ case 6:
824
+ _f.sent();
825
+ return [3 /*break*/, 11];
826
+ case 7:
827
+ err_3 = _f.sent();
828
+ if (!payment) return [3 /*break*/, 9];
829
+ return [4 /*yield*/, this.paymentProviderService_
830
+ .withTransaction(manager)
831
+ .cancelPayment(payment)];
832
+ case 8:
833
+ _f.sent();
834
+ _f.label = 9;
835
+ case 9: return [4 /*yield*/, this.cartService_
1062
836
  .withTransaction(manager)
1063
- .update(cart.id, { completed_at: new Date() })];
1064
- case 35:
1065
- _f.sent();
1066
- return [2 /*return*/, result];
1067
- }
1068
- });
1069
- }); })];
1070
- });
1071
- });
1072
- };
1073
- /**
1074
- * Registers the return associated with a swap as received. If the return
1075
- * is received with mismatching return items the swap's status will be updated
1076
- * to requires_action.
1077
- * @param {string} swapId - the id of the swap to receive.
1078
- * @param {Array<ReturnItem>} returnItems - the return items that have been returned
1079
- * @return {Promise<Swap>} the resulting swap, with an updated return and
1080
- * status.
1081
- */
1082
- SwapService.prototype.receiveReturn = function (swapId, returnItems) {
1083
- return __awaiter(this, void 0, void 0, function () {
1084
- var _this = this;
1085
- return __generator(this, function (_a) {
1086
- return [2 /*return*/, this.atomicPhase_(function (manager) { return __awaiter(_this, void 0, void 0, function () {
1087
- var swap, returnId, updatedRet, swapRepo, result;
1088
- return __generator(this, function (_a) {
1089
- switch (_a.label) {
1090
- case 0: return [4 /*yield*/, this.retrieve(swapId, { relations: ["return_order"] })];
1091
- case 1:
1092
- swap = _a.sent();
1093
- if (swap.canceled_at) {
1094
- throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.NOT_ALLOWED, "Canceled swap cannot be registered as received");
1095
- }
1096
- returnId = swap.return_order && swap.return_order.id;
1097
- if (!returnId) {
1098
- throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.INVALID_DATA, "Swap has no return request");
1099
- }
1100
- return [4 /*yield*/, this.returnService_
837
+ .update(cart.id, { payment_authorized_at: null })];
838
+ case 10:
839
+ _f.sent();
840
+ throw err_3;
841
+ case 11:
842
+ items_1_1 = items_1.next();
843
+ return [3 /*break*/, 4];
844
+ case 12: return [3 /*break*/, 15];
845
+ case 13:
846
+ e_4_1 = _f.sent();
847
+ e_4 = { error: e_4_1 };
848
+ return [3 /*break*/, 15];
849
+ case 14:
850
+ try {
851
+ if (items_1_1 && !items_1_1.done && (_c = items_1.return)) _c.call(items_1);
852
+ }
853
+ finally { if (e_4) throw e_4.error; }
854
+ return [7 /*endfinally*/];
855
+ case 15:
856
+ total = cart.total;
857
+ if (!(total > 0)) return [3 /*break*/, 25];
858
+ if (!payment) {
859
+ throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.INVALID_ARGUMENT, "Cart does not contain a payment");
860
+ }
861
+ return [4 /*yield*/, this.paymentProviderService_
862
+ .withTransaction(manager)
863
+ .getStatus(payment)
864
+ // If payment status is not authorized, we throw
865
+ ];
866
+ case 16:
867
+ paymentStatus = _f.sent();
868
+ // If payment status is not authorized, we throw
869
+ if (paymentStatus !== "authorized" && paymentStatus !== "succeeded") {
870
+ throw new medusa_core_utils_1.MedusaError(medusa_core_utils_1.MedusaError.Types.INVALID_ARGUMENT, "Payment method is not authorized");
871
+ }
872
+ return [4 /*yield*/, this.paymentProviderService_
873
+ .withTransaction(manager)
874
+ .updatePayment(payment.id, {
875
+ swap_id: swapId,
876
+ order_id: swap.order_id,
877
+ })];
878
+ case 17:
879
+ _f.sent();
880
+ _f.label = 18;
881
+ case 18:
882
+ _f.trys.push([18, 23, 24, 25]);
883
+ items_2 = __values(items), items_2_1 = items_2.next();
884
+ _f.label = 19;
885
+ case 19:
886
+ if (!!items_2_1.done) return [3 /*break*/, 22];
887
+ item = items_2_1.value;
888
+ return [4 /*yield*/, this.inventoryService_
889
+ .withTransaction(manager)
890
+ .adjustInventory(item.variant_id, -item.quantity)];
891
+ case 20:
892
+ _f.sent();
893
+ _f.label = 21;
894
+ case 21:
895
+ items_2_1 = items_2.next();
896
+ return [3 /*break*/, 19];
897
+ case 22: return [3 /*break*/, 25];
898
+ case 23:
899
+ e_5_1 = _f.sent();
900
+ e_5 = { error: e_5_1 };
901
+ return [3 /*break*/, 25];
902
+ case 24:
903
+ try {
904
+ if (items_2_1 && !items_2_1.done && (_d = items_2.return)) _d.call(items_2);
905
+ }
906
+ finally { if (e_5) throw e_5.error; }
907
+ return [7 /*endfinally*/];
908
+ case 25:
909
+ now = new Date();
910
+ swap.difference_due = total;
911
+ swap.shipping_address_id = cart.shipping_address_id;
912
+ swap.shipping_methods = cart.shipping_methods;
913
+ swap.confirmed_at = now.toISOString();
914
+ swap.payment_status = total === 0 ? "confirmed" : "awaiting";
915
+ swapRepo = manager.getCustomRepository(this.swapRepository_);
916
+ return [4 /*yield*/, swapRepo.save(swap)];
917
+ case 26:
918
+ result = _f.sent();
919
+ _f.label = 27;
920
+ case 27:
921
+ _f.trys.push([27, 32, 33, 34]);
922
+ _a = __values(cart.shipping_methods), _b = _a.next();
923
+ _f.label = 28;
924
+ case 28:
925
+ if (!!_b.done) return [3 /*break*/, 31];
926
+ method = _b.value;
927
+ return [4 /*yield*/, this.shippingOptionService_
928
+ .withTransaction(manager)
929
+ .updateShippingMethod(method.id, {
930
+ swap_id: result.id,
931
+ })];
932
+ case 29:
933
+ _f.sent();
934
+ _f.label = 30;
935
+ case 30:
936
+ _b = _a.next();
937
+ return [3 /*break*/, 28];
938
+ case 31: return [3 /*break*/, 34];
939
+ case 32:
940
+ e_6_1 = _f.sent();
941
+ e_6 = { error: e_6_1 };
942
+ return [3 /*break*/, 34];
943
+ case 33:
944
+ try {
945
+ if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
946
+ }
947
+ finally { if (e_6) throw e_6.error; }
948
+ return [7 /*endfinally*/];
949
+ case 34:
950
+ this.eventBus_
1101
951
  .withTransaction(manager)
1102
- .receiveReturn(returnId, returnItems, undefined, false)];
1103
- case 2:
1104
- updatedRet = _a.sent();
1105
- if (!(updatedRet.status === "requires_action")) return [3 /*break*/, 4];
1106
- swapRepo = manager.getCustomRepository(this.swapRepository_);
1107
- swap.fulfillment_status = "requires_action";
1108
- return [4 /*yield*/, swapRepo.save(swap)];
1109
- case 3:
1110
- result = _a.sent();
1111
- return [2 /*return*/, result];
1112
- case 4: return [2 /*return*/, this.retrieve(swapId)];
1113
- }
1114
- });
1115
- }); })];
952
+ .emit(SwapService.Events.PAYMENT_COMPLETED, {
953
+ id: swap.id,
954
+ no_notification: swap.no_notification,
955
+ });
956
+ return [4 /*yield*/, this.cartService_
957
+ .withTransaction(manager)
958
+ .update(cart.id, { completed_at: new Date() })];
959
+ case 35:
960
+ _f.sent();
961
+ return [2 /*return*/, result];
962
+ }
963
+ });
964
+ }); })];
965
+ case 1: return [2 /*return*/, _a.sent()];
966
+ }
1116
967
  });
1117
968
  });
1118
969
  };
@@ -1129,7 +980,7 @@ var SwapService = /** @class */ (function (_super) {
1129
980
  return __generator(this, function (_a) {
1130
981
  return [2 /*return*/, this.atomicPhase_(function (manager) { return __awaiter(_this, void 0, void 0, function () {
1131
982
  var swap, _a, _b, f, swapRepo, result;
1132
- var e_10, _c;
983
+ var e_7, _c;
1133
984
  return __generator(this, function (_d) {
1134
985
  switch (_d.label) {
1135
986
  case 0: return [4 /*yield*/, this.retrieve(swapId, {
@@ -1151,12 +1002,12 @@ var SwapService = /** @class */ (function (_super) {
1151
1002
  }
1152
1003
  }
1153
1004
  }
1154
- catch (e_10_1) { e_10 = { error: e_10_1 }; }
1005
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
1155
1006
  finally {
1156
1007
  try {
1157
1008
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
1158
1009
  }
1159
- finally { if (e_10) throw e_10.error; }
1010
+ finally { if (e_7) throw e_7.error; }
1160
1011
  }
1161
1012
  }
1162
1013
  if (swap.return_order && swap.return_order.status !== "canceled") {
@@ -1202,8 +1053,8 @@ var SwapService = /** @class */ (function (_super) {
1202
1053
  return __generator(this, function (_a) {
1203
1054
  metadata = config.metadata, no_notification = config.no_notification;
1204
1055
  return [2 /*return*/, this.atomicPhase_(function (manager) { return __awaiter(_this, void 0, void 0, function () {
1205
- var swap, order, evaluatedNoNotification, _a, successfullyFulfilled, _b, _c, f, _loop_2, this_2, _d, _e, item, e_11_1, swapRepo, result;
1206
- var e_12, _f, e_11, _g;
1056
+ var swap, order, evaluatedNoNotification, _a, successfullyFulfilled, _b, _c, f, _loop_1, this_1, _d, _e, item, e_8_1, swapRepo, result;
1057
+ var e_9, _f, e_8, _g;
1207
1058
  var _h;
1208
1059
  return __generator(this, function (_j) {
1209
1060
  switch (_j.label) {
@@ -1212,8 +1063,11 @@ var SwapService = /** @class */ (function (_super) {
1212
1063
  "payment",
1213
1064
  "shipping_address",
1214
1065
  "additional_items",
1066
+ "additional_items.tax_lines",
1215
1067
  "shipping_methods",
1068
+ "shipping_methods.tax_lines",
1216
1069
  "order",
1070
+ "order.region",
1217
1071
  "order.billing_address",
1218
1072
  "order.discounts",
1219
1073
  "order.discounts.rule",
@@ -1237,7 +1091,7 @@ var SwapService = /** @class */ (function (_super) {
1237
1091
  _a = swap;
1238
1092
  return [4 /*yield*/, this.fulfillmentService_
1239
1093
  .withTransaction(manager)
1240
- .createFulfillment(__assign(__assign({}, swap), { payments: swap.payment ? [swap.payment] : order.payments, email: order.email, discounts: order.discounts, currency_code: order.currency_code, tax_rate: order.tax_rate, region_id: order.region_id, display_id: order.display_id, billing_address: order.billing_address, items: swap.additional_items, shipping_methods: swap.shipping_methods, is_swap: true, no_notification: evaluatedNoNotification }), swap.additional_items.map(function (i) { return ({
1094
+ .createFulfillment(__assign(__assign({}, swap), { payments: swap.payment ? [swap.payment] : order.payments, email: order.email, discounts: order.discounts, currency_code: order.currency_code, tax_rate: order.tax_rate, region_id: order.region_id, region: order.region, display_id: order.display_id, billing_address: order.billing_address, items: swap.additional_items, shipping_methods: swap.shipping_methods, is_swap: true, no_notification: evaluatedNoNotification }), swap.additional_items.map(function (i) { return ({
1241
1095
  item_id: i.id,
1242
1096
  quantity: i.quantity,
1243
1097
  }); }), { swap_id: swapId, metadata: metadata })];
@@ -1250,15 +1104,15 @@ var SwapService = /** @class */ (function (_super) {
1250
1104
  successfullyFulfilled = successfullyFulfilled.concat(f.items);
1251
1105
  }
1252
1106
  }
1253
- catch (e_12_1) { e_12 = { error: e_12_1 }; }
1107
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
1254
1108
  finally {
1255
1109
  try {
1256
1110
  if (_c && !_c.done && (_f = _b.return)) _f.call(_b);
1257
1111
  }
1258
- finally { if (e_12) throw e_12.error; }
1112
+ finally { if (e_9) throw e_9.error; }
1259
1113
  }
1260
1114
  swap.fulfillment_status = "fulfilled";
1261
- _loop_2 = function (item) {
1115
+ _loop_1 = function (item) {
1262
1116
  var fulfillmentItem, fulfilledQuantity;
1263
1117
  return __generator(this, function (_k) {
1264
1118
  switch (_k.label) {
@@ -1267,7 +1121,7 @@ var SwapService = /** @class */ (function (_super) {
1267
1121
  if (!fulfillmentItem) return [3 /*break*/, 2];
1268
1122
  fulfilledQuantity = (item.fulfilled_quantity || 0) + fulfillmentItem.quantity;
1269
1123
  // Update the fulfilled quantity
1270
- return [4 /*yield*/, this_2.lineItemService_.withTransaction(manager).update(item.id, {
1124
+ return [4 /*yield*/, this_1.lineItemService_.withTransaction(manager).update(item.id, {
1271
1125
  fulfilled_quantity: fulfilledQuantity,
1272
1126
  })];
1273
1127
  case 1:
@@ -1286,7 +1140,7 @@ var SwapService = /** @class */ (function (_super) {
1286
1140
  }
1287
1141
  });
1288
1142
  };
1289
- this_2 = this;
1143
+ this_1 = this;
1290
1144
  _j.label = 3;
1291
1145
  case 3:
1292
1146
  _j.trys.push([3, 8, 9, 10]);
@@ -1295,7 +1149,7 @@ var SwapService = /** @class */ (function (_super) {
1295
1149
  case 4:
1296
1150
  if (!!_e.done) return [3 /*break*/, 7];
1297
1151
  item = _e.value;
1298
- return [5 /*yield**/, _loop_2(item)];
1152
+ return [5 /*yield**/, _loop_1(item)];
1299
1153
  case 5:
1300
1154
  _j.sent();
1301
1155
  _j.label = 6;
@@ -1304,14 +1158,14 @@ var SwapService = /** @class */ (function (_super) {
1304
1158
  return [3 /*break*/, 4];
1305
1159
  case 7: return [3 /*break*/, 10];
1306
1160
  case 8:
1307
- e_11_1 = _j.sent();
1308
- e_11 = { error: e_11_1 };
1161
+ e_8_1 = _j.sent();
1162
+ e_8 = { error: e_8_1 };
1309
1163
  return [3 /*break*/, 10];
1310
1164
  case 9:
1311
1165
  try {
1312
1166
  if (_e && !_e.done && (_g = _d.return)) _g.call(_d);
1313
1167
  }
1314
- finally { if (e_11) throw e_11.error; }
1168
+ finally { if (e_8) throw e_8.error; }
1315
1169
  return [7 /*endfinally*/];
1316
1170
  case 10:
1317
1171
  swapRepo = manager.getCustomRepository(this.swapRepository_);
@@ -1389,8 +1243,8 @@ var SwapService = /** @class */ (function (_super) {
1389
1243
  return __generator(this, function (_a) {
1390
1244
  metadata = config.metadata, no_notification = config.no_notification;
1391
1245
  return [2 /*return*/, this.atomicPhase_(function (manager) { return __awaiter(_this, void 0, void 0, function () {
1392
- var swap, evaluatedNoNotification, shipment, _loop_3, this_3, _a, _b, i, e_13_1, swapRepo, result;
1393
- var e_13, _c;
1246
+ var swap, evaluatedNoNotification, shipment, _loop_2, this_2, _a, _b, i, e_10_1, swapRepo, result;
1247
+ var e_10, _c;
1394
1248
  return __generator(this, function (_d) {
1395
1249
  switch (_d.label) {
1396
1250
  case 0: return [4 /*yield*/, this.retrieve(swapId, {
@@ -1411,7 +1265,7 @@ var SwapService = /** @class */ (function (_super) {
1411
1265
  case 2:
1412
1266
  shipment = _d.sent();
1413
1267
  swap.fulfillment_status = "shipped";
1414
- _loop_3 = function (i) {
1268
+ _loop_2 = function (i) {
1415
1269
  var shipped, shippedQty;
1416
1270
  return __generator(this, function (_e) {
1417
1271
  switch (_e.label) {
@@ -1419,7 +1273,7 @@ var SwapService = /** @class */ (function (_super) {
1419
1273
  shipped = shipment.items.find(function (si) { return si.item_id === i.id; });
1420
1274
  if (!shipped) return [3 /*break*/, 2];
1421
1275
  shippedQty = (i.shipped_quantity || 0) + shipped.quantity;
1422
- return [4 /*yield*/, this_3.lineItemService_.withTransaction(manager).update(i.id, {
1276
+ return [4 /*yield*/, this_2.lineItemService_.withTransaction(manager).update(i.id, {
1423
1277
  shipped_quantity: shippedQty,
1424
1278
  })];
1425
1279
  case 1:
@@ -1437,7 +1291,7 @@ var SwapService = /** @class */ (function (_super) {
1437
1291
  }
1438
1292
  });
1439
1293
  };
1440
- this_3 = this;
1294
+ this_2 = this;
1441
1295
  _d.label = 3;
1442
1296
  case 3:
1443
1297
  _d.trys.push([3, 8, 9, 10]);
@@ -1446,7 +1300,7 @@ var SwapService = /** @class */ (function (_super) {
1446
1300
  case 4:
1447
1301
  if (!!_b.done) return [3 /*break*/, 7];
1448
1302
  i = _b.value;
1449
- return [5 /*yield**/, _loop_3(i)];
1303
+ return [5 /*yield**/, _loop_2(i)];
1450
1304
  case 5:
1451
1305
  _d.sent();
1452
1306
  _d.label = 6;
@@ -1455,14 +1309,14 @@ var SwapService = /** @class */ (function (_super) {
1455
1309
  return [3 /*break*/, 4];
1456
1310
  case 7: return [3 /*break*/, 10];
1457
1311
  case 8:
1458
- e_13_1 = _d.sent();
1459
- e_13 = { error: e_13_1 };
1312
+ e_10_1 = _d.sent();
1313
+ e_10 = { error: e_10_1 };
1460
1314
  return [3 /*break*/, 10];
1461
1315
  case 9:
1462
1316
  try {
1463
1317
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
1464
1318
  }
1465
- finally { if (e_13) throw e_13.error; }
1319
+ finally { if (e_10) throw e_10.error; }
1466
1320
  return [7 /*endfinally*/];
1467
1321
  case 10:
1468
1322
  swapRepo = manager.getCustomRepository(this.swapRepository_);