@vendure/core 1.9.4 → 2.0.0-beta.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 (1065) hide show
  1. package/cli/index.js +5 -1
  2. package/cli/index.js.map +1 -1
  3. package/cli/populate.js +7 -25
  4. package/cli/populate.js.map +1 -1
  5. package/cli/vendure-cli.js +12 -12
  6. package/cli/vendure-cli.js.map +1 -1
  7. package/dist/api/api-internal-modules.d.ts +4 -2
  8. package/dist/api/api-internal-modules.js +15 -7
  9. package/dist/api/api-internal-modules.js.map +1 -1
  10. package/dist/api/api.module.d.ts +1 -1
  11. package/dist/api/api.module.js +7 -6
  12. package/dist/api/api.module.js.map +1 -1
  13. package/dist/api/common/configurable-operation-codec.js +1 -1
  14. package/dist/api/common/configurable-operation-codec.js.map +1 -1
  15. package/dist/api/common/custom-field-relation-resolver.service.js +2 -2
  16. package/dist/api/common/custom-field-relation-resolver.service.js.map +1 -1
  17. package/dist/api/common/get-api-type.d.ts +1 -1
  18. package/dist/api/common/graphql-value-transformer.d.ts +2 -2
  19. package/dist/api/common/graphql-value-transformer.js +9 -9
  20. package/dist/api/common/graphql-value-transformer.js.map +1 -1
  21. package/dist/api/common/id-codec.d.ts +1 -1
  22. package/dist/api/common/id-codec.js +6 -3
  23. package/dist/api/common/id-codec.js.map +1 -1
  24. package/dist/api/common/id-codec.service.js +1 -1
  25. package/dist/api/common/id-codec.service.js.map +1 -1
  26. package/dist/api/common/parse-context.d.ts +2 -2
  27. package/dist/api/common/request-context.d.ts +5 -2
  28. package/dist/api/common/request-context.js +10 -6
  29. package/dist/api/common/request-context.js.map +1 -1
  30. package/dist/api/common/set-session-token.js +1 -1
  31. package/dist/api/common/set-session-token.js.map +1 -1
  32. package/dist/api/common/validate-custom-field-value.js +2 -1
  33. package/dist/api/common/validate-custom-field-value.js.map +1 -1
  34. package/dist/api/config/configure-graphql-module.js +24 -21
  35. package/dist/api/config/configure-graphql-module.js.map +1 -1
  36. package/dist/api/config/generate-active-order-types.d.ts +1 -1
  37. package/dist/api/config/generate-active-order-types.js +6 -5
  38. package/dist/api/config/generate-active-order-types.js.map +1 -1
  39. package/dist/api/config/generate-auth-types.js +3 -3
  40. package/dist/api/config/generate-auth-types.js.map +1 -1
  41. package/dist/api/config/generate-error-code-enum.js +2 -2
  42. package/dist/api/config/generate-error-code-enum.js.map +1 -1
  43. package/dist/api/config/generate-list-options.d.ts +1 -1
  44. package/dist/api/config/generate-list-options.js +40 -31
  45. package/dist/api/config/generate-list-options.js.map +1 -1
  46. package/dist/api/config/generate-permissions.js +2 -2
  47. package/dist/api/config/generate-permissions.js.map +1 -1
  48. package/dist/api/config/generate-resolvers.d.ts +53 -51
  49. package/dist/api/config/generate-resolvers.js +9 -4
  50. package/dist/api/config/generate-resolvers.js.map +1 -1
  51. package/dist/api/config/graphql-custom-fields.js +59 -51
  52. package/dist/api/config/graphql-custom-fields.js.map +1 -1
  53. package/dist/api/config/money-scalar.d.ts +9 -0
  54. package/dist/api/config/money-scalar.js +74 -0
  55. package/dist/api/config/money-scalar.js.map +1 -0
  56. package/dist/api/decorators/allow.decorator.js +1 -1
  57. package/dist/api/decorators/allow.decorator.js.map +1 -1
  58. package/dist/api/decorators/api.decorator.js +2 -2
  59. package/dist/api/decorators/api.decorator.js.map +1 -1
  60. package/dist/api/decorators/relations.decorator.d.ts +5 -5
  61. package/dist/api/decorators/relations.decorator.js +14 -15
  62. package/dist/api/decorators/relations.decorator.js.map +1 -1
  63. package/dist/api/decorators/request-context.decorator.js +2 -1
  64. package/dist/api/decorators/request-context.decorator.js.map +1 -1
  65. package/dist/api/decorators/transaction.decorator.d.ts +1 -1
  66. package/dist/api/decorators/transaction.decorator.js +1 -1
  67. package/dist/api/decorators/transaction.decorator.js.map +1 -1
  68. package/dist/api/index.js +5 -1
  69. package/dist/api/index.js.map +1 -1
  70. package/dist/api/middleware/asset-interceptor-plugin.d.ts +2 -2
  71. package/dist/api/middleware/asset-interceptor-plugin.js +4 -4
  72. package/dist/api/middleware/asset-interceptor-plugin.js.map +1 -1
  73. package/dist/api/middleware/auth-guard.js +5 -5
  74. package/dist/api/middleware/auth-guard.js.map +1 -1
  75. package/dist/api/middleware/exception-logger.filter.js +1 -1
  76. package/dist/api/middleware/exception-logger.filter.js.map +1 -1
  77. package/dist/api/middleware/id-codec-plugin.d.ts +2 -2
  78. package/dist/api/middleware/id-codec-plugin.js +5 -4
  79. package/dist/api/middleware/id-codec-plugin.js.map +1 -1
  80. package/dist/api/middleware/id-interceptor.js +2 -2
  81. package/dist/api/middleware/id-interceptor.js.map +1 -1
  82. package/dist/api/middleware/transaction-interceptor.js +6 -4
  83. package/dist/api/middleware/transaction-interceptor.js.map +1 -1
  84. package/dist/api/middleware/translate-error-result-interceptor.js +3 -3
  85. package/dist/api/middleware/translate-error-result-interceptor.js.map +1 -1
  86. package/dist/api/middleware/translate-errors-plugin.d.ts +1 -1
  87. package/dist/api/middleware/translate-errors-plugin.js +2 -2
  88. package/dist/api/middleware/translate-errors-plugin.js.map +1 -1
  89. package/dist/api/middleware/validate-custom-fields-interceptor.js +4 -4
  90. package/dist/api/middleware/validate-custom-fields-interceptor.js.map +1 -1
  91. package/dist/api/resolvers/admin/administrator.resolver.js +39 -39
  92. package/dist/api/resolvers/admin/administrator.resolver.js.map +1 -1
  93. package/dist/api/resolvers/admin/asset.resolver.js +36 -36
  94. package/dist/api/resolvers/admin/asset.resolver.js.map +1 -1
  95. package/dist/api/resolvers/admin/auth.resolver.js +24 -24
  96. package/dist/api/resolvers/admin/auth.resolver.js.map +1 -1
  97. package/dist/api/resolvers/admin/channel.resolver.js +31 -30
  98. package/dist/api/resolvers/admin/channel.resolver.js.map +1 -1
  99. package/dist/api/resolvers/admin/collection.resolver.d.ts +1 -1
  100. package/dist/api/resolvers/admin/collection.resolver.js +56 -56
  101. package/dist/api/resolvers/admin/collection.resolver.js.map +1 -1
  102. package/dist/api/resolvers/admin/country.resolver.js +26 -26
  103. package/dist/api/resolvers/admin/country.resolver.js.map +1 -1
  104. package/dist/api/resolvers/admin/customer-group.resolver.js +36 -36
  105. package/dist/api/resolvers/admin/customer-group.resolver.js.map +1 -1
  106. package/dist/api/resolvers/admin/customer.resolver.js +56 -56
  107. package/dist/api/resolvers/admin/customer.resolver.js.map +1 -1
  108. package/dist/api/resolvers/admin/draft-order.resolver.d.ts +3 -3
  109. package/dist/api/resolvers/admin/draft-order.resolver.js +62 -62
  110. package/dist/api/resolvers/admin/draft-order.resolver.js.map +1 -1
  111. package/dist/api/resolvers/admin/facet.resolver.d.ts +1 -1
  112. package/dist/api/resolvers/admin/facet.resolver.js +62 -62
  113. package/dist/api/resolvers/admin/facet.resolver.js.map +1 -1
  114. package/dist/api/resolvers/admin/global-settings.resolver.js +20 -17
  115. package/dist/api/resolvers/admin/global-settings.resolver.js.map +1 -1
  116. package/dist/api/resolvers/admin/import.resolver.d.ts +2 -2
  117. package/dist/api/resolvers/admin/import.resolver.js +5 -5
  118. package/dist/api/resolvers/admin/import.resolver.js.map +1 -1
  119. package/dist/api/resolvers/admin/job.resolver.js +25 -25
  120. package/dist/api/resolvers/admin/job.resolver.js.map +1 -1
  121. package/dist/api/resolvers/admin/order.resolver.d.ts +1 -1
  122. package/dist/api/resolvers/admin/order.resolver.js +87 -87
  123. package/dist/api/resolvers/admin/order.resolver.js.map +1 -1
  124. package/dist/api/resolvers/admin/payment-method.resolver.js +32 -32
  125. package/dist/api/resolvers/admin/payment-method.resolver.js.map +1 -1
  126. package/dist/api/resolvers/admin/product-option.resolver.d.ts +1 -1
  127. package/dist/api/resolvers/admin/product-option.resolver.js +36 -36
  128. package/dist/api/resolvers/admin/product-option.resolver.js.map +1 -1
  129. package/dist/api/resolvers/admin/product.resolver.d.ts +1 -1
  130. package/dist/api/resolvers/admin/product.resolver.js +98 -98
  131. package/dist/api/resolvers/admin/product.resolver.js.map +1 -1
  132. package/dist/api/resolvers/admin/promotion.resolver.js +42 -42
  133. package/dist/api/resolvers/admin/promotion.resolver.js.map +1 -1
  134. package/dist/api/resolvers/admin/role.resolver.js +26 -26
  135. package/dist/api/resolvers/admin/role.resolver.js.map +1 -1
  136. package/dist/api/resolvers/admin/search.resolver.js +17 -17
  137. package/dist/api/resolvers/admin/search.resolver.js.map +1 -1
  138. package/dist/api/resolvers/admin/seller.resolver.d.ts +13 -0
  139. package/dist/api/resolvers/admin/seller.resolver.js +96 -0
  140. package/dist/api/resolvers/admin/seller.resolver.js.map +1 -0
  141. package/dist/api/resolvers/admin/shipping-method.resolver.js +43 -43
  142. package/dist/api/resolvers/admin/shipping-method.resolver.js.map +1 -1
  143. package/dist/api/resolvers/admin/stock-location.resolver.d.ts +12 -0
  144. package/dist/api/resolvers/admin/stock-location.resolver.js +96 -0
  145. package/dist/api/resolvers/admin/stock-location.resolver.js.map +1 -0
  146. package/dist/api/resolvers/admin/tag.resolver.js +24 -24
  147. package/dist/api/resolvers/admin/tag.resolver.js.map +1 -1
  148. package/dist/api/resolvers/admin/tax-category.resolver.js +23 -23
  149. package/dist/api/resolvers/admin/tax-category.resolver.js.map +1 -1
  150. package/dist/api/resolvers/admin/tax-rate.resolver.js +26 -26
  151. package/dist/api/resolvers/admin/tax-rate.resolver.js.map +1 -1
  152. package/dist/api/resolvers/admin/zone.resolver.js +33 -33
  153. package/dist/api/resolvers/admin/zone.resolver.js.map +1 -1
  154. package/dist/api/resolvers/base/base-auth.resolver.js +6 -6
  155. package/dist/api/resolvers/base/base-auth.resolver.js.map +1 -1
  156. package/dist/api/resolvers/entity/administrator-entity.resolver.js +4 -4
  157. package/dist/api/resolvers/entity/administrator-entity.resolver.js.map +1 -1
  158. package/dist/api/resolvers/entity/asset-entity.resolver.js +4 -4
  159. package/dist/api/resolvers/entity/asset-entity.resolver.js.map +1 -1
  160. package/dist/api/resolvers/entity/channel-entity.resolver.d.ts +10 -0
  161. package/dist/api/resolvers/entity/channel-entity.resolver.js +56 -0
  162. package/dist/api/resolvers/entity/channel-entity.resolver.js.map +1 -0
  163. package/dist/api/resolvers/entity/collection-entity.resolver.js +42 -42
  164. package/dist/api/resolvers/entity/collection-entity.resolver.js.map +1 -1
  165. package/dist/api/resolvers/entity/country-entity.resolver.js +7 -7
  166. package/dist/api/resolvers/entity/country-entity.resolver.js.map +1 -1
  167. package/dist/api/resolvers/entity/customer-entity.resolver.d.ts +2 -2
  168. package/dist/api/resolvers/entity/customer-entity.resolver.js +23 -23
  169. package/dist/api/resolvers/entity/customer-entity.resolver.js.map +1 -1
  170. package/dist/api/resolvers/entity/customer-group-entity.resolver.d.ts +1 -1
  171. package/dist/api/resolvers/entity/customer-group-entity.resolver.js +6 -6
  172. package/dist/api/resolvers/entity/customer-group-entity.resolver.js.map +1 -1
  173. package/dist/api/resolvers/entity/facet-entity.resolver.d.ts +1 -1
  174. package/dist/api/resolvers/entity/facet-entity.resolver.js +11 -11
  175. package/dist/api/resolvers/entity/facet-entity.resolver.js.map +1 -1
  176. package/dist/api/resolvers/entity/facet-value-entity.resolver.d.ts +1 -1
  177. package/dist/api/resolvers/entity/facet-value-entity.resolver.js +10 -10
  178. package/dist/api/resolvers/entity/facet-value-entity.resolver.js.map +1 -1
  179. package/dist/api/resolvers/entity/fulfillment-entity.resolver.d.ts +3 -6
  180. package/dist/api/resolvers/entity/fulfillment-entity.resolver.js +14 -14
  181. package/dist/api/resolvers/entity/fulfillment-entity.resolver.js.map +1 -1
  182. package/dist/api/resolvers/entity/fulfillment-line-entity.resolver.d.ts +11 -0
  183. package/dist/api/resolvers/entity/fulfillment-line-entity.resolver.js +59 -0
  184. package/dist/api/resolvers/entity/fulfillment-line-entity.resolver.js.map +1 -0
  185. package/dist/api/resolvers/entity/job-entity.resolver.js +7 -7
  186. package/dist/api/resolvers/entity/job-entity.resolver.js.map +1 -1
  187. package/dist/api/resolvers/entity/order-entity.resolver.d.ts +12 -7
  188. package/dist/api/resolvers/entity/order-entity.resolver.js +88 -32
  189. package/dist/api/resolvers/entity/order-entity.resolver.js.map +1 -1
  190. package/dist/api/resolvers/entity/order-line-entity.resolver.d.ts +2 -2
  191. package/dist/api/resolvers/entity/order-line-entity.resolver.js +18 -20
  192. package/dist/api/resolvers/entity/order-line-entity.resolver.js.map +1 -1
  193. package/dist/api/resolvers/entity/payment-entity.resolver.js +11 -11
  194. package/dist/api/resolvers/entity/payment-entity.resolver.js.map +1 -1
  195. package/dist/api/resolvers/entity/payment-method-entity.resolver.js +1 -1
  196. package/dist/api/resolvers/entity/payment-method-entity.resolver.js.map +1 -1
  197. package/dist/api/resolvers/entity/product-entity.resolver.d.ts +1 -1
  198. package/dist/api/resolvers/entity/product-entity.resolver.js +47 -47
  199. package/dist/api/resolvers/entity/product-entity.resolver.js.map +1 -1
  200. package/dist/api/resolvers/entity/product-option-entity.resolver.d.ts +1 -1
  201. package/dist/api/resolvers/entity/product-option-entity.resolver.js +12 -12
  202. package/dist/api/resolvers/entity/product-option-entity.resolver.js.map +1 -1
  203. package/dist/api/resolvers/entity/product-option-group-entity.resolver.d.ts +1 -1
  204. package/dist/api/resolvers/entity/product-option-group-entity.resolver.js +11 -11
  205. package/dist/api/resolvers/entity/product-option-group-entity.resolver.js.map +1 -1
  206. package/dist/api/resolvers/entity/product-variant-entity.resolver.d.ts +11 -2
  207. package/dist/api/resolvers/entity/product-variant-entity.resolver.js +93 -50
  208. package/dist/api/resolvers/entity/product-variant-entity.resolver.js.map +1 -1
  209. package/dist/api/resolvers/entity/refund-entity.resolver.d.ts +0 -4
  210. package/dist/api/resolvers/entity/refund-entity.resolver.js +1 -23
  211. package/dist/api/resolvers/entity/refund-entity.resolver.js.map +1 -1
  212. package/dist/api/resolvers/entity/refund-line-entity.resolver.d.ts +11 -0
  213. package/dist/api/resolvers/entity/refund-line-entity.resolver.js +55 -0
  214. package/dist/api/resolvers/entity/refund-line-entity.resolver.js.map +1 -0
  215. package/dist/api/resolvers/entity/role-entity.resolver.js +4 -4
  216. package/dist/api/resolvers/entity/role-entity.resolver.js.map +1 -1
  217. package/dist/api/resolvers/entity/shipping-line-entity.resolver.d.ts +1 -1
  218. package/dist/api/resolvers/entity/shipping-line-entity.resolver.js +4 -4
  219. package/dist/api/resolvers/entity/shipping-line-entity.resolver.js.map +1 -1
  220. package/dist/api/resolvers/entity/shipping-method-entity.resolver.d.ts +1 -1
  221. package/dist/api/resolvers/entity/shipping-method-entity.resolver.js +14 -14
  222. package/dist/api/resolvers/entity/shipping-method-entity.resolver.js.map +1 -1
  223. package/dist/api/resolvers/entity/tax-rate-entity.resolver.js +5 -5
  224. package/dist/api/resolvers/entity/tax-rate-entity.resolver.js.map +1 -1
  225. package/dist/api/resolvers/entity/user-entity.resolver.js +4 -4
  226. package/dist/api/resolvers/entity/user-entity.resolver.js.map +1 -1
  227. package/dist/api/resolvers/entity/zone-entity.resolver.d.ts +3 -2
  228. package/dist/api/resolvers/entity/zone-entity.resolver.js +8 -8
  229. package/dist/api/resolvers/entity/zone-entity.resolver.js.map +1 -1
  230. package/dist/api/resolvers/shop/shop-auth.resolver.js +80 -80
  231. package/dist/api/resolvers/shop/shop-auth.resolver.js.map +1 -1
  232. package/dist/api/resolvers/shop/shop-customer.resolver.js +27 -27
  233. package/dist/api/resolvers/shop/shop-customer.resolver.js.map +1 -1
  234. package/dist/api/resolvers/shop/shop-environment.resolver.js +3 -3
  235. package/dist/api/resolvers/shop/shop-environment.resolver.js.map +1 -1
  236. package/dist/api/resolvers/shop/shop-order.resolver.d.ts +2 -2
  237. package/dist/api/resolvers/shop/shop-order.resolver.js +105 -107
  238. package/dist/api/resolvers/shop/shop-order.resolver.js.map +1 -1
  239. package/dist/api/resolvers/shop/shop-products.resolver.js +30 -30
  240. package/dist/api/resolvers/shop/shop-products.resolver.js.map +1 -1
  241. package/dist/api/schema/admin-api/channel.api.graphql +2 -0
  242. package/dist/api/schema/admin-api/collection-admin.type.graphql +1 -0
  243. package/dist/api/schema/admin-api/collection.api.graphql +3 -0
  244. package/dist/api/schema/admin-api/order-admin.type.graphql +14 -2
  245. package/dist/api/schema/admin-api/order.api.graphql +4 -9
  246. package/dist/api/schema/admin-api/payment-method.api.graphql +9 -4
  247. package/dist/api/schema/admin-api/product-admin.type.graphql +3 -2
  248. package/dist/api/schema/admin-api/product.api.graphql +9 -2
  249. package/dist/api/schema/admin-api/promotion.api.graphql +8 -2
  250. package/dist/api/schema/admin-api/seller.api.graphql +29 -0
  251. package/dist/api/schema/admin-api/shipping-method.api.graphql +2 -2
  252. package/dist/api/schema/admin-api/stock-level.type.graphql +9 -0
  253. package/dist/api/schema/admin-api/stock-location.api.graphql +34 -0
  254. package/dist/api/schema/admin-api/stock-location.type.graphql +7 -0
  255. package/dist/api/schema/common/asset.type.graphql +1 -0
  256. package/dist/api/schema/common/channel.type.graphql +3 -1
  257. package/dist/api/schema/common/common-error-results.graphql +7 -0
  258. package/dist/api/schema/common/common-types.graphql +7 -3
  259. package/dist/api/schema/common/custom-field-types.graphql +13 -0
  260. package/dist/api/schema/common/order.type.graphql +68 -49
  261. package/dist/api/schema/common/payment-method.type.graphql +9 -0
  262. package/dist/api/schema/common/product-search.type.graphql +3 -3
  263. package/dist/api/schema/common/product.type.graphql +2 -2
  264. package/dist/api/schema/common/promotion.type.graphql +12 -0
  265. package/dist/api/schema/common/seller.type.graphql +6 -0
  266. package/dist/api/schema/shop-api/shop.api.graphql +8 -3
  267. package/dist/app.module.js +1 -1
  268. package/dist/app.module.js.map +1 -1
  269. package/dist/bootstrap.d.ts +1 -1
  270. package/dist/bootstrap.js +27 -43
  271. package/dist/bootstrap.js.map +1 -1
  272. package/dist/cache/cache.module.js +1 -1
  273. package/dist/cache/cache.module.js.map +1 -1
  274. package/dist/cache/index.js +5 -1
  275. package/dist/cache/index.js.map +1 -1
  276. package/dist/common/async-queue.d.ts +3 -3
  277. package/dist/common/async-queue.js +2 -2
  278. package/dist/common/async-queue.js.map +1 -1
  279. package/dist/common/configurable-operation.d.ts +11 -11
  280. package/dist/common/configurable-operation.js +5 -5
  281. package/dist/common/configurable-operation.js.map +1 -1
  282. package/dist/common/constants.js +4 -3
  283. package/dist/common/constants.js.map +1 -1
  284. package/dist/common/error/error-result.d.ts +3 -3
  285. package/dist/common/error/errors.d.ts +1 -2
  286. package/dist/common/error/errors.js.map +1 -1
  287. package/dist/common/error/generated-graphql-admin-errors.d.ts +160 -89
  288. package/dist/common/error/generated-graphql-admin-errors.js +123 -113
  289. package/dist/common/error/generated-graphql-admin-errors.js.map +1 -1
  290. package/dist/common/error/generated-graphql-shop-errors.d.ts +79 -43
  291. package/dist/common/error/generated-graphql-shop-errors.js +65 -55
  292. package/dist/common/error/generated-graphql-shop-errors.js.map +1 -1
  293. package/dist/common/finite-state-machine/finite-state-machine.d.ts +4 -2
  294. package/dist/common/finite-state-machine/finite-state-machine.js +20 -8
  295. package/dist/common/finite-state-machine/finite-state-machine.js.map +1 -1
  296. package/dist/common/finite-state-machine/merge-transition-definitions.js +1 -1
  297. package/dist/common/finite-state-machine/merge-transition-definitions.js.map +1 -1
  298. package/dist/common/finite-state-machine/types.d.ts +4 -4
  299. package/dist/common/generate-public-id.js +3 -2
  300. package/dist/common/generate-public-id.js.map +1 -1
  301. package/dist/common/index.js +5 -1
  302. package/dist/common/index.js.map +1 -1
  303. package/dist/common/permission-definition.d.ts +1 -1
  304. package/dist/common/round-money.d.ts +1 -0
  305. package/dist/common/round-money.js +13 -0
  306. package/dist/common/round-money.js.map +1 -0
  307. package/dist/common/self-refreshing-cache.d.ts +1 -2
  308. package/dist/common/self-refreshing-cache.js +11 -7
  309. package/dist/common/self-refreshing-cache.js.map +1 -1
  310. package/dist/common/tax-utils.js +2 -2
  311. package/dist/common/tax-utils.js.map +1 -1
  312. package/dist/common/types/adjustment-source.d.ts +1 -1
  313. package/dist/common/types/common-types.d.ts +11 -11
  314. package/dist/common/types/entity-relation-paths.d.ts +8 -8
  315. package/dist/common/types/locale-types.d.ts +7 -7
  316. package/dist/common/utils.d.ts +5 -1
  317. package/dist/common/utils.js +21 -3
  318. package/dist/common/utils.js.map +1 -1
  319. package/dist/config/asset-import-strategy/default-asset-import-strategy.js +4 -6
  320. package/dist/config/asset-import-strategy/default-asset-import-strategy.js.map +1 -1
  321. package/dist/config/asset-naming-strategy/default-asset-naming-strategy.js +1 -1
  322. package/dist/config/asset-naming-strategy/default-asset-naming-strategy.js.map +1 -1
  323. package/dist/config/asset-storage-strategy/asset-storage-strategy.d.ts +1 -0
  324. package/dist/config/asset-storage-strategy/no-asset-storage-strategy.d.ts +1 -0
  325. package/dist/config/auth/native-authentication-strategy.js +7 -26
  326. package/dist/config/auth/native-authentication-strategy.js.map +1 -1
  327. package/dist/config/catalog/collection-filter.d.ts +1 -1
  328. package/dist/config/catalog/collection-filter.js +1 -1
  329. package/dist/config/catalog/collection-filter.js.map +1 -1
  330. package/dist/config/catalog/default-collection-filters.js +10 -7
  331. package/dist/config/catalog/default-collection-filters.js.map +1 -1
  332. package/dist/config/catalog/default-product-variant-price-calculation-strategy.js +3 -2
  333. package/dist/config/catalog/default-product-variant-price-calculation-strategy.js.map +1 -1
  334. package/dist/config/catalog/default-product-variant-price-selection-strategy.d.ts +10 -0
  335. package/dist/config/catalog/default-product-variant-price-selection-strategy.js +15 -0
  336. package/dist/config/catalog/default-product-variant-price-selection-strategy.js.map +1 -0
  337. package/dist/config/catalog/default-stock-location-strategy.d.ts +25 -0
  338. package/dist/config/catalog/default-stock-location-strategy.js +70 -0
  339. package/dist/config/catalog/default-stock-location-strategy.js.map +1 -0
  340. package/dist/config/catalog/product-variant-price-calculation-strategy.d.ts +3 -2
  341. package/dist/config/catalog/product-variant-price-selection-strategy.d.ts +6 -0
  342. package/dist/config/catalog/product-variant-price-selection-strategy.js +3 -0
  343. package/dist/config/catalog/product-variant-price-selection-strategy.js.map +1 -0
  344. package/dist/config/catalog/stock-location-strategy.d.ts +74 -0
  345. package/dist/config/{fulfillment/custom-fulfillment-process.js → catalog/stock-location-strategy.js} +1 -1
  346. package/dist/config/catalog/stock-location-strategy.js.map +1 -0
  347. package/dist/config/config-helpers.d.ts +6 -1
  348. package/dist/config/config-helpers.js +34 -6
  349. package/dist/config/config-helpers.js.map +1 -1
  350. package/dist/config/config.module.js +14 -7
  351. package/dist/config/config.module.js.map +1 -1
  352. package/dist/config/config.service.d.ts +3 -3
  353. package/dist/config/config.service.js +3 -3
  354. package/dist/config/config.service.js.map +1 -1
  355. package/dist/config/custom-field/custom-field-types.d.ts +18 -15
  356. package/dist/config/default-config.js +21 -2
  357. package/dist/config/default-config.js.map +1 -1
  358. package/dist/config/entity/auto-increment-id-strategy.js.map +1 -0
  359. package/dist/config/entity/bigint-money-strategy.d.ts +17 -0
  360. package/dist/config/entity/bigint-money-strategy.js +45 -0
  361. package/dist/config/entity/bigint-money-strategy.js.map +1 -0
  362. package/dist/config/entity/default-money-strategy.d.ts +14 -0
  363. package/dist/config/entity/default-money-strategy.js +23 -0
  364. package/dist/config/entity/default-money-strategy.js.map +1 -0
  365. package/dist/config/{entity-id-strategy → entity}/entity-id-strategy.d.ts +1 -1
  366. package/dist/config/entity/entity-id-strategy.js.map +1 -0
  367. package/dist/config/entity/money-strategy.d.ts +61 -0
  368. package/dist/config/{order/custom-order-process.js → entity/money-strategy.js} +1 -1
  369. package/dist/config/entity/money-strategy.js.map +1 -0
  370. package/dist/config/entity/uuid-id-strategy.js.map +1 -0
  371. package/dist/config/entity-metadata/add-foreign-key-indices.js +1 -1
  372. package/dist/config/entity-metadata/add-foreign-key-indices.js.map +1 -1
  373. package/dist/config/entity-metadata/entity-metadata-modifier.d.ts +1 -1
  374. package/dist/config/fulfillment/default-fulfillment-process.d.ts +24 -0
  375. package/dist/config/fulfillment/default-fulfillment-process.js +131 -0
  376. package/dist/config/fulfillment/default-fulfillment-process.js.map +1 -0
  377. package/dist/config/fulfillment/fulfillment-handler.d.ts +5 -6
  378. package/dist/config/fulfillment/fulfillment-handler.js +3 -3
  379. package/dist/config/fulfillment/fulfillment-handler.js.map +1 -1
  380. package/dist/config/fulfillment/{custom-fulfillment-process.d.ts → fulfillment-process.d.ts} +16 -2
  381. package/dist/config/{payment/custom-payment-process.js → fulfillment/fulfillment-process.js} +1 -1
  382. package/dist/config/fulfillment/fulfillment-process.js.map +1 -0
  383. package/dist/config/index.d.ts +27 -8
  384. package/dist/config/index.js +32 -9
  385. package/dist/config/index.js.map +1 -1
  386. package/dist/config/job-queue/job-queue-strategy.d.ts +3 -3
  387. package/dist/config/logger/default-logger.js +5 -5
  388. package/dist/config/logger/typeorm-logger.js +4 -3
  389. package/dist/config/logger/typeorm-logger.js.map +1 -1
  390. package/dist/config/merge-config.js +4 -4
  391. package/dist/config/merge-config.js.map +1 -1
  392. package/dist/config/order/active-order-strategy.d.ts +1 -1
  393. package/dist/config/order/changed-price-handling-strategy.d.ts +3 -3
  394. package/dist/config/order/default-active-order-strategy.js +3 -22
  395. package/dist/config/order/default-active-order-strategy.js.map +1 -1
  396. package/dist/config/order/default-guest-checkout-strategy.d.ts +63 -0
  397. package/dist/config/order/default-guest-checkout-strategy.js +55 -0
  398. package/dist/config/order/default-guest-checkout-strategy.js.map +1 -0
  399. package/dist/config/order/default-order-process.d.ts +143 -0
  400. package/dist/config/order/default-order-process.js +307 -0
  401. package/dist/config/order/default-order-process.js.map +1 -0
  402. package/dist/config/order/default-order-seller-strategy.d.ts +11 -0
  403. package/dist/config/order/default-order-seller-strategy.js +15 -0
  404. package/dist/config/order/default-order-seller-strategy.js.map +1 -0
  405. package/dist/config/order/guest-checkout-strategy.d.ts +30 -0
  406. package/dist/config/order/guest-checkout-strategy.js +3 -0
  407. package/dist/config/order/guest-checkout-strategy.js.map +1 -0
  408. package/dist/config/order/merge-orders-strategy.js +1 -1
  409. package/dist/config/order/merge-orders-strategy.js.map +1 -1
  410. package/dist/config/order/order-by-code-access-strategy.js +1 -1
  411. package/dist/config/order/order-by-code-access-strategy.js.map +1 -1
  412. package/dist/config/order/order-code-strategy.js +1 -1
  413. package/dist/config/order/order-code-strategy.js.map +1 -1
  414. package/dist/config/order/order-merge-strategy.d.ts +1 -1
  415. package/dist/config/order/{custom-order-process.d.ts → order-process.d.ts} +15 -2
  416. package/dist/config/order/order-process.js +3 -0
  417. package/dist/config/order/order-process.js.map +1 -0
  418. package/dist/config/order/order-seller-strategy.d.ts +56 -0
  419. package/dist/config/order/order-seller-strategy.js +3 -0
  420. package/dist/config/order/order-seller-strategy.js.map +1 -0
  421. package/dist/config/payment/default-payment-process.d.ts +16 -0
  422. package/dist/config/payment/default-payment-process.js +70 -0
  423. package/dist/config/payment/default-payment-process.js.map +1 -0
  424. package/dist/config/payment/example-payment-method-handler.js +1 -1
  425. package/dist/config/payment/example-payment-method-handler.js.map +1 -1
  426. package/dist/config/payment/payment-method-eligibility-checker.d.ts +2 -2
  427. package/dist/config/payment/payment-method-eligibility-checker.js.map +1 -1
  428. package/dist/config/payment/payment-method-handler.d.ts +9 -9
  429. package/dist/config/payment/payment-method-handler.js +1 -1
  430. package/dist/config/payment/payment-method-handler.js.map +1 -1
  431. package/dist/config/payment/{custom-payment-process.d.ts → payment-process.d.ts} +17 -3
  432. package/dist/config/payment/payment-process.js +3 -0
  433. package/dist/config/payment/payment-process.js.map +1 -0
  434. package/dist/config/promotion/actions/buy-x-get-y-free-action.d.ts +4 -3
  435. package/dist/config/promotion/actions/buy-x-get-y-free-action.js +6 -9
  436. package/dist/config/promotion/actions/buy-x-get-y-free-action.js.map +1 -1
  437. package/dist/config/promotion/actions/facet-values-percentage-discount-action.js +1 -1
  438. package/dist/config/promotion/actions/facet-values-percentage-discount-action.js.map +1 -1
  439. package/dist/config/promotion/actions/product-percentage-discount-action.js +2 -2
  440. package/dist/config/promotion/actions/product-percentage-discount-action.js.map +1 -1
  441. package/dist/config/promotion/conditions/buy-x-get-y-free-condition.d.ts +3 -2
  442. package/dist/config/promotion/conditions/buy-x-get-y-free-condition.js +16 -10
  443. package/dist/config/promotion/conditions/buy-x-get-y-free-condition.js.map +1 -1
  444. package/dist/config/promotion/conditions/contains-products-condition.js +1 -1
  445. package/dist/config/promotion/conditions/contains-products-condition.js.map +1 -1
  446. package/dist/config/promotion/conditions/customer-group-condition.js +2 -21
  447. package/dist/config/promotion/conditions/customer-group-condition.js.map +1 -1
  448. package/dist/config/promotion/conditions/has-facet-values-condition.js +1 -1
  449. package/dist/config/promotion/conditions/has-facet-values-condition.js.map +1 -1
  450. package/dist/config/promotion/index.d.ts +6 -2
  451. package/dist/config/promotion/index.js +5 -1
  452. package/dist/config/promotion/index.js.map +1 -1
  453. package/dist/config/promotion/promotion-action.d.ts +13 -14
  454. package/dist/config/promotion/promotion-action.js +5 -5
  455. package/dist/config/promotion/promotion-action.js.map +1 -1
  456. package/dist/config/promotion/promotion-condition.d.ts +4 -4
  457. package/dist/config/promotion/promotion-condition.js +3 -3
  458. package/dist/config/promotion/promotion-condition.js.map +1 -1
  459. package/dist/config/promotion/utils/facet-value-checker.d.ts +0 -1
  460. package/dist/config/promotion/utils/facet-value-checker.js +6 -5
  461. package/dist/config/promotion/utils/facet-value-checker.js.map +1 -1
  462. package/dist/config/session-cache/in-memory-session-cache-strategy.js +1 -1
  463. package/dist/config/session-cache/session-cache-strategy.d.ts +6 -6
  464. package/dist/config/shipping-method/default-shipping-calculator.d.ts +1 -2
  465. package/dist/config/shipping-method/default-shipping-calculator.js +2 -2
  466. package/dist/config/shipping-method/default-shipping-calculator.js.map +1 -1
  467. package/dist/config/shipping-method/default-shipping-line-assignment-strategy.d.ts +8 -0
  468. package/dist/config/shipping-method/default-shipping-line-assignment-strategy.js +10 -0
  469. package/dist/config/shipping-method/default-shipping-line-assignment-strategy.js.map +1 -0
  470. package/dist/config/shipping-method/shipping-calculator.d.ts +2 -2
  471. package/dist/config/shipping-method/shipping-eligibility-checker.d.ts +2 -2
  472. package/dist/config/shipping-method/shipping-eligibility-checker.js +1 -1
  473. package/dist/config/shipping-method/shipping-eligibility-checker.js.map +1 -1
  474. package/dist/config/shipping-method/shipping-line-assignment-strategy.d.ts +20 -0
  475. package/dist/config/shipping-method/shipping-line-assignment-strategy.js +3 -0
  476. package/dist/config/shipping-method/shipping-line-assignment-strategy.js.map +1 -0
  477. package/dist/config/tax/default-tax-line-calculation-strategy.js +2 -2
  478. package/dist/config/tax/tax-line-calculation-strategy.d.ts +1 -3
  479. package/dist/config/vendure-config.d.ts +90 -14
  480. package/dist/connection/connection.module.d.ts +2 -2
  481. package/dist/connection/connection.module.js +1 -1
  482. package/dist/connection/connection.module.js.map +1 -1
  483. package/dist/connection/index.js +5 -1
  484. package/dist/connection/index.js.map +1 -1
  485. package/dist/connection/transaction-subscriber.d.ts +1 -1
  486. package/dist/connection/transaction-subscriber.js +6 -7
  487. package/dist/connection/transaction-subscriber.js.map +1 -1
  488. package/dist/connection/transaction-wrapper.js +2 -4
  489. package/dist/connection/transaction-wrapper.js.map +1 -1
  490. package/dist/connection/transactional-connection.d.ts +7 -6
  491. package/dist/connection/transactional-connection.js +18 -37
  492. package/dist/connection/transactional-connection.js.map +1 -1
  493. package/dist/data-import/data-import.module.js +1 -1
  494. package/dist/data-import/data-import.module.js.map +1 -1
  495. package/dist/data-import/index.js +5 -1
  496. package/dist/data-import/index.js.map +1 -1
  497. package/dist/data-import/providers/asset-importer/asset-importer.js +2 -2
  498. package/dist/data-import/providers/asset-importer/asset-importer.js.map +1 -1
  499. package/dist/data-import/providers/import-parser/import-parser.js +7 -7
  500. package/dist/data-import/providers/import-parser/import-parser.js.map +1 -1
  501. package/dist/data-import/providers/importer/fast-importer.service.d.ts +1 -2
  502. package/dist/data-import/providers/importer/fast-importer.service.js +15 -16
  503. package/dist/data-import/providers/importer/fast-importer.service.js.map +1 -1
  504. package/dist/data-import/providers/importer/importer.d.ts +1 -1
  505. package/dist/data-import/providers/importer/importer.js +6 -6
  506. package/dist/data-import/providers/importer/importer.js.map +1 -1
  507. package/dist/data-import/providers/populator/populator.js +11 -12
  508. package/dist/data-import/providers/populator/populator.js.map +1 -1
  509. package/dist/data-import/types.d.ts +2 -2
  510. package/dist/entity/address/address.entity.d.ts +1 -1
  511. package/dist/entity/address/address.entity.js +17 -15
  512. package/dist/entity/address/address.entity.js.map +1 -1
  513. package/dist/entity/administrator/administrator.entity.js +8 -8
  514. package/dist/entity/administrator/administrator.entity.js.map +1 -1
  515. package/dist/entity/asset/asset.entity.js +15 -15
  516. package/dist/entity/asset/asset.entity.js.map +1 -1
  517. package/dist/entity/asset/orderable-asset.entity.js +4 -3
  518. package/dist/entity/asset/orderable-asset.entity.js.map +1 -1
  519. package/dist/entity/authentication-method/authentication-method.entity.js +4 -3
  520. package/dist/entity/authentication-method/authentication-method.entity.js.map +1 -1
  521. package/dist/entity/authentication-method/external-authentication-method.entity.js +4 -4
  522. package/dist/entity/authentication-method/external-authentication-method.entity.js.map +1 -1
  523. package/dist/entity/authentication-method/native-authentication-method.entity.js +7 -7
  524. package/dist/entity/authentication-method/native-authentication-method.entity.js.map +1 -1
  525. package/dist/entity/base/base.entity.js +3 -3
  526. package/dist/entity/base/base.entity.js.map +1 -1
  527. package/dist/entity/channel/channel.entity.d.ts +6 -2
  528. package/dist/entity/channel/channel.entity.js +26 -10
  529. package/dist/entity/channel/channel.entity.js.map +1 -1
  530. package/dist/entity/collection/collection-asset.entity.js +3 -3
  531. package/dist/entity/collection/collection-asset.entity.js.map +1 -1
  532. package/dist/entity/collection/collection-translation.entity.js +9 -7
  533. package/dist/entity/collection/collection-translation.entity.js.map +1 -1
  534. package/dist/entity/collection/collection.entity.d.ts +4 -0
  535. package/dist/entity/collection/collection.entity.js +22 -28
  536. package/dist/entity/collection/collection.entity.js.map +1 -1
  537. package/dist/entity/country/country-translation.entity.js +6 -5
  538. package/dist/entity/country/country-translation.entity.js.map +1 -1
  539. package/dist/entity/country/country.entity.js +5 -5
  540. package/dist/entity/country/country.entity.js.map +1 -1
  541. package/dist/entity/custom-entity-fields.d.ts +8 -0
  542. package/dist/entity/custom-entity-fields.js +13 -1
  543. package/dist/entity/custom-entity-fields.js.map +1 -1
  544. package/dist/entity/customer/customer.entity.js +16 -16
  545. package/dist/entity/customer/customer.entity.js.map +1 -1
  546. package/dist/entity/customer-group/customer-group.entity.js +4 -4
  547. package/dist/entity/customer-group/customer-group.entity.js.map +1 -1
  548. package/dist/entity/entities.d.ts +28 -12
  549. package/dist/entity/entities.js +28 -12
  550. package/dist/entity/entities.js.map +1 -1
  551. package/dist/entity/entity-id.decorator.js +1 -1
  552. package/dist/entity/facet/facet-translation.entity.js +6 -5
  553. package/dist/entity/facet/facet-translation.entity.js.map +1 -1
  554. package/dist/entity/facet/facet.entity.js +8 -8
  555. package/dist/entity/facet/facet.entity.js.map +1 -1
  556. package/dist/entity/facet-value/facet-value-translation.entity.js +6 -5
  557. package/dist/entity/facet-value/facet-value-translation.entity.js.map +1 -1
  558. package/dist/entity/facet-value/facet-value.entity.js +8 -7
  559. package/dist/entity/facet-value/facet-value.entity.js.map +1 -1
  560. package/dist/entity/fulfillment/fulfillment.entity.d.ts +3 -3
  561. package/dist/entity/fulfillment/fulfillment.entity.js +10 -10
  562. package/dist/entity/fulfillment/fulfillment.entity.js.map +1 -1
  563. package/dist/entity/global-settings/global-settings.entity.js +5 -5
  564. package/dist/entity/global-settings/global-settings.entity.js.map +1 -1
  565. package/dist/entity/history-entry/customer-history-entry.entity.js +3 -2
  566. package/dist/entity/history-entry/customer-history-entry.entity.js.map +1 -1
  567. package/dist/entity/history-entry/history-entry.entity.js +7 -6
  568. package/dist/entity/history-entry/history-entry.entity.js.map +1 -1
  569. package/dist/entity/history-entry/order-history-entry.entity.js +3 -2
  570. package/dist/entity/history-entry/order-history-entry.entity.js.map +1 -1
  571. package/dist/entity/index.d.ts +30 -18
  572. package/dist/entity/index.js +35 -19
  573. package/dist/entity/index.js.map +1 -1
  574. package/dist/entity/money.decorator.d.ts +27 -0
  575. package/dist/entity/money.decorator.js +36 -0
  576. package/dist/entity/money.decorator.js.map +1 -0
  577. package/dist/entity/order/order.entity.d.ts +7 -3
  578. package/dist/entity/order/order.entity.js +60 -42
  579. package/dist/entity/order/order.entity.js.map +1 -1
  580. package/dist/entity/order-line/order-line.entity.d.ts +79 -20
  581. package/dist/entity/order-line/order-line.entity.js +205 -107
  582. package/dist/entity/order-line/order-line.entity.js.map +1 -1
  583. package/dist/entity/order-line-reference/fulfillment-line.entity.d.ts +15 -0
  584. package/dist/entity/order-line-reference/fulfillment-line.entity.js +43 -0
  585. package/dist/entity/order-line-reference/fulfillment-line.entity.js.map +1 -0
  586. package/dist/entity/order-line-reference/order-line-reference.entity.d.ts +15 -0
  587. package/dist/entity/order-line-reference/order-line-reference.entity.js +44 -0
  588. package/dist/entity/order-line-reference/order-line-reference.entity.js.map +1 -0
  589. package/dist/entity/order-line-reference/order-modification-line.entity.d.ts +15 -0
  590. package/dist/entity/order-line-reference/order-modification-line.entity.js +43 -0
  591. package/dist/entity/order-line-reference/order-modification-line.entity.js.map +1 -0
  592. package/dist/entity/order-line-reference/refund-line.entity.d.ts +15 -0
  593. package/dist/entity/order-line-reference/refund-line.entity.js +43 -0
  594. package/dist/entity/order-line-reference/refund-line.entity.js.map +1 -0
  595. package/dist/entity/order-modification/order-modification.entity.d.ts +2 -2
  596. package/dist/entity/order-modification/order-modification.entity.js +17 -16
  597. package/dist/entity/order-modification/order-modification.entity.js.map +1 -1
  598. package/dist/entity/payment/payment.entity.js +11 -9
  599. package/dist/entity/payment/payment.entity.js.map +1 -1
  600. package/dist/entity/payment-method/payment-method-translation.entity.d.ts +15 -0
  601. package/dist/entity/payment-method/payment-method-translation.entity.js +49 -0
  602. package/dist/entity/payment-method/payment-method-translation.entity.js.map +1 -0
  603. package/dist/entity/payment-method/payment-method.entity.d.ts +5 -3
  604. package/dist/entity/payment-method/payment-method.entity.js +12 -15
  605. package/dist/entity/payment-method/payment-method.entity.js.map +1 -1
  606. package/dist/entity/product/product-asset.entity.js +3 -3
  607. package/dist/entity/product/product-asset.entity.js.map +1 -1
  608. package/dist/entity/product/product-translation.entity.js +9 -7
  609. package/dist/entity/product/product-translation.entity.js.map +1 -1
  610. package/dist/entity/product/product.entity.js +14 -13
  611. package/dist/entity/product/product.entity.js.map +1 -1
  612. package/dist/entity/product-option/product-option-translation.entity.js +6 -5
  613. package/dist/entity/product-option/product-option-translation.entity.js.map +1 -1
  614. package/dist/entity/product-option/product-option.entity.js +8 -7
  615. package/dist/entity/product-option/product-option.entity.js.map +1 -1
  616. package/dist/entity/product-option-group/product-option-group-translation.entity.js +6 -5
  617. package/dist/entity/product-option-group/product-option-group-translation.entity.js.map +1 -1
  618. package/dist/entity/product-option-group/product-option-group.entity.d.ts +1 -1
  619. package/dist/entity/product-option-group/product-option-group.entity.js +9 -8
  620. package/dist/entity/product-option-group/product-option-group.entity.js.map +1 -1
  621. package/dist/entity/product-variant/product-variant-asset.entity.js +3 -3
  622. package/dist/entity/product-variant/product-variant-asset.entity.js.map +1 -1
  623. package/dist/entity/product-variant/product-variant-price.entity.d.ts +2 -0
  624. package/dist/entity/product-variant/product-variant-price.entity.js +11 -4
  625. package/dist/entity/product-variant/product-variant-price.entity.js.map +1 -1
  626. package/dist/entity/product-variant/product-variant-translation.entity.js +6 -5
  627. package/dist/entity/product-variant/product-variant-translation.entity.js.map +1 -1
  628. package/dist/entity/product-variant/product-variant.entity.d.ts +3 -3
  629. package/dist/entity/product-variant/product-variant.entity.js +37 -36
  630. package/dist/entity/product-variant/product-variant.entity.js.map +1 -1
  631. package/dist/entity/promotion/promotion-translation.entity.d.ts +15 -0
  632. package/dist/entity/promotion/promotion-translation.entity.js +49 -0
  633. package/dist/entity/promotion/promotion-translation.entity.js.map +1 -0
  634. package/dist/entity/promotion/promotion.entity.d.ts +7 -6
  635. package/dist/entity/promotion/promotion.entity.js +26 -23
  636. package/dist/entity/promotion/promotion.entity.js.map +1 -1
  637. package/dist/entity/refund/refund.entity.d.ts +2 -2
  638. package/dist/entity/refund/refund.entity.js +19 -17
  639. package/dist/entity/refund/refund.entity.js.map +1 -1
  640. package/dist/entity/register-custom-entity-fields.js +16 -12
  641. package/dist/entity/register-custom-entity-fields.js.map +1 -1
  642. package/dist/entity/role/role.entity.js +6 -6
  643. package/dist/entity/role/role.entity.js.map +1 -1
  644. package/dist/entity/run-entity-metadata-modifiers.d.ts +1 -1
  645. package/dist/entity/run-entity-metadata-modifiers.js +1 -1
  646. package/dist/entity/run-entity-metadata-modifiers.js.map +1 -1
  647. package/dist/entity/seller/seller.entity.d.ts +17 -0
  648. package/dist/entity/seller/seller.entity.js +44 -0
  649. package/dist/entity/seller/seller.entity.js.map +1 -0
  650. package/dist/entity/session/anonymous-session.entity.js +1 -1
  651. package/dist/entity/session/anonymous-session.entity.js.map +1 -1
  652. package/dist/entity/session/authenticated-session.entity.js +4 -3
  653. package/dist/entity/session/authenticated-session.entity.js.map +1 -1
  654. package/dist/entity/session/session.entity.js +12 -10
  655. package/dist/entity/session/session.entity.js.map +1 -1
  656. package/dist/entity/set-entity-id-strategy.d.ts +1 -1
  657. package/dist/entity/set-entity-id-strategy.js +4 -4
  658. package/dist/entity/set-entity-id-strategy.js.map +1 -1
  659. package/dist/entity/set-money-strategy.d.ts +3 -0
  660. package/dist/entity/set-money-strategy.js +16 -0
  661. package/dist/entity/set-money-strategy.js.map +1 -0
  662. package/dist/entity/shipping-line/shipping-line.entity.d.ts +1 -1
  663. package/dist/entity/shipping-line/shipping-line.entity.js +30 -26
  664. package/dist/entity/shipping-line/shipping-line.entity.js.map +1 -1
  665. package/dist/entity/shipping-method/shipping-method-translation.entity.js +7 -6
  666. package/dist/entity/shipping-method/shipping-method-translation.entity.js.map +1 -1
  667. package/dist/entity/shipping-method/shipping-method.entity.js +14 -13
  668. package/dist/entity/shipping-method/shipping-method.entity.js.map +1 -1
  669. package/dist/entity/stock-level/stock-level.entity.d.ts +20 -0
  670. package/dist/entity/stock-level/stock-level.entity.js +60 -0
  671. package/dist/entity/stock-level/stock-level.entity.js.map +1 -0
  672. package/dist/entity/stock-location/stock-location.entity.d.ts +19 -0
  673. package/dist/entity/stock-location/stock-location.entity.js +50 -0
  674. package/dist/entity/stock-location/stock-location.entity.js.map +1 -0
  675. package/dist/entity/stock-movement/allocation.entity.js +3 -2
  676. package/dist/entity/stock-movement/allocation.entity.js.map +1 -1
  677. package/dist/entity/stock-movement/cancellation.entity.d.ts +2 -2
  678. package/dist/entity/stock-movement/cancellation.entity.js +5 -5
  679. package/dist/entity/stock-movement/cancellation.entity.js.map +1 -1
  680. package/dist/entity/stock-movement/release.entity.d.ts +2 -2
  681. package/dist/entity/stock-movement/release.entity.js +5 -5
  682. package/dist/entity/stock-movement/release.entity.js.map +1 -1
  683. package/dist/entity/stock-movement/sale.entity.js +2 -2
  684. package/dist/entity/stock-movement/sale.entity.js.map +1 -1
  685. package/dist/entity/stock-movement/stock-adjustment.entity.js +1 -1
  686. package/dist/entity/stock-movement/stock-adjustment.entity.js.map +1 -1
  687. package/dist/entity/stock-movement/stock-movement.entity.d.ts +4 -0
  688. package/dist/entity/stock-movement/stock-movement.entity.js +17 -5
  689. package/dist/entity/stock-movement/stock-movement.entity.js.map +1 -1
  690. package/dist/entity/subscribers.js +2 -1
  691. package/dist/entity/subscribers.js.map +1 -1
  692. package/dist/entity/surcharge/surcharge.entity.d.ts +1 -1
  693. package/dist/entity/surcharge/surcharge.entity.js +18 -15
  694. package/dist/entity/surcharge/surcharge.entity.js.map +1 -1
  695. package/dist/entity/tag/tag.entity.js +2 -2
  696. package/dist/entity/tag/tag.entity.js.map +1 -1
  697. package/dist/entity/tax-category/tax-category.entity.js +4 -4
  698. package/dist/entity/tax-category/tax-category.entity.js.map +1 -1
  699. package/dist/entity/tax-rate/tax-rate.entity.js +16 -13
  700. package/dist/entity/tax-rate/tax-rate.entity.js.map +1 -1
  701. package/dist/entity/user/user.entity.js +9 -9
  702. package/dist/entity/user/user.entity.js.map +1 -1
  703. package/dist/entity/validate-custom-fields-config.js +5 -3
  704. package/dist/entity/validate-custom-fields-config.js.map +1 -1
  705. package/dist/entity/zone/zone.entity.js +5 -5
  706. package/dist/entity/zone/zone.entity.js.map +1 -1
  707. package/dist/event-bus/event-bus.d.ts +10 -0
  708. package/dist/event-bus/event-bus.js +14 -2
  709. package/dist/event-bus/event-bus.js.map +1 -1
  710. package/dist/event-bus/event-bus.module.js +1 -1
  711. package/dist/event-bus/event-bus.module.js.map +1 -1
  712. package/dist/event-bus/events/administrator-event.d.ts +1 -1
  713. package/dist/event-bus/events/asset-event.d.ts +1 -1
  714. package/dist/event-bus/events/channel-event.d.ts +1 -1
  715. package/dist/event-bus/events/collection-event.d.ts +1 -1
  716. package/dist/event-bus/events/country-event.d.ts +1 -1
  717. package/dist/event-bus/events/customer-address-event.d.ts +1 -1
  718. package/dist/event-bus/events/customer-event.d.ts +1 -1
  719. package/dist/event-bus/events/customer-group-entity-event.d.ts +1 -1
  720. package/dist/event-bus/events/customer-group-event.d.ts +1 -1
  721. package/dist/event-bus/events/facet-event.d.ts +1 -1
  722. package/dist/event-bus/events/facet-value-event.d.ts +1 -1
  723. package/dist/event-bus/events/fulfillment-event.d.ts +4 -4
  724. package/dist/event-bus/events/history-entry-event.d.ts +1 -1
  725. package/dist/event-bus/events/payment-method-event.d.ts +1 -1
  726. package/dist/event-bus/events/product-event.d.ts +1 -1
  727. package/dist/event-bus/events/product-option-event.d.ts +1 -1
  728. package/dist/event-bus/events/product-option-group-event.d.ts +1 -1
  729. package/dist/event-bus/events/product-variant-event.d.ts +1 -1
  730. package/dist/event-bus/events/promotion-event.d.ts +1 -1
  731. package/dist/event-bus/events/role-event.d.ts +1 -1
  732. package/dist/event-bus/events/search-event.d.ts +1 -1
  733. package/dist/event-bus/events/shipping-method-event.d.ts +1 -1
  734. package/dist/event-bus/events/tax-category-event.d.ts +1 -1
  735. package/dist/event-bus/events/tax-rate-event.d.ts +1 -1
  736. package/dist/event-bus/events/zone-event.d.ts +1 -1
  737. package/dist/event-bus/index.js +5 -1
  738. package/dist/event-bus/index.js.map +1 -1
  739. package/dist/health-check/health-check.controller.js +3 -3
  740. package/dist/health-check/health-check.controller.js.map +1 -1
  741. package/dist/health-check/health-check.module.js +2 -2
  742. package/dist/health-check/health-check.module.js.map +1 -1
  743. package/dist/health-check/index.js +5 -1
  744. package/dist/health-check/index.js.map +1 -1
  745. package/dist/health-check/worker-health-indicator.js +2 -2
  746. package/dist/health-check/worker-health-indicator.js.map +1 -1
  747. package/dist/i18n/i18n.module.js +1 -1
  748. package/dist/i18n/i18n.module.js.map +1 -1
  749. package/dist/i18n/i18n.service.js +11 -5
  750. package/dist/i18n/i18n.service.js.map +1 -1
  751. package/dist/i18n/index.js +5 -1
  752. package/dist/i18n/index.js.map +1 -1
  753. package/dist/index.js +5 -1
  754. package/dist/index.js.map +1 -1
  755. package/dist/job-queue/in-memory-job-queue-strategy.d.ts +1 -1
  756. package/dist/job-queue/in-memory-job-queue-strategy.js +14 -15
  757. package/dist/job-queue/in-memory-job-queue-strategy.js.map +1 -1
  758. package/dist/job-queue/index.js +5 -1
  759. package/dist/job-queue/index.js.map +1 -1
  760. package/dist/job-queue/injectable-job-queue-strategy.d.ts +2 -2
  761. package/dist/job-queue/job-buffer/job-buffer.d.ts +1 -1
  762. package/dist/job-queue/job-buffer/job-buffer.service.js +2 -2
  763. package/dist/job-queue/job-buffer/job-buffer.service.js.map +1 -1
  764. package/dist/job-queue/job-queue.d.ts +1 -1
  765. package/dist/job-queue/job-queue.js +6 -6
  766. package/dist/job-queue/job-queue.js.map +1 -1
  767. package/dist/job-queue/job-queue.module.js +1 -1
  768. package/dist/job-queue/job-queue.module.js.map +1 -1
  769. package/dist/job-queue/job-queue.service.js +4 -4
  770. package/dist/job-queue/job-queue.service.js.map +1 -1
  771. package/dist/job-queue/job.d.ts +2 -2
  772. package/dist/job-queue/job.js +36 -27
  773. package/dist/job-queue/job.js.map +1 -1
  774. package/dist/job-queue/polling-job-queue-strategy.d.ts +3 -3
  775. package/dist/job-queue/polling-job-queue-strategy.js +12 -13
  776. package/dist/job-queue/polling-job-queue-strategy.js.map +1 -1
  777. package/dist/job-queue/subscribable-job.d.ts +2 -2
  778. package/dist/job-queue/subscribable-job.js +11 -10
  779. package/dist/job-queue/subscribable-job.js.map +1 -1
  780. package/dist/job-queue/types.d.ts +1 -1
  781. package/dist/migrate.js +19 -19
  782. package/dist/migrate.js.map +1 -1
  783. package/dist/plugin/default-job-queue-plugin/default-job-queue-plugin.d.ts +1 -1
  784. package/dist/plugin/default-job-queue-plugin/default-job-queue-plugin.js +1 -1
  785. package/dist/plugin/default-job-queue-plugin/default-job-queue-plugin.js.map +1 -1
  786. package/dist/plugin/default-job-queue-plugin/job-record-buffer.entity.js +3 -3
  787. package/dist/plugin/default-job-queue-plugin/job-record-buffer.entity.js.map +1 -1
  788. package/dist/plugin/default-job-queue-plugin/job-record.entity.js +12 -12
  789. package/dist/plugin/default-job-queue-plugin/job-record.entity.js.map +1 -1
  790. package/dist/plugin/default-job-queue-plugin/sql-job-buffer-storage-strategy.js +6 -7
  791. package/dist/plugin/default-job-queue-plugin/sql-job-buffer-storage-strategy.js.map +1 -1
  792. package/dist/plugin/default-job-queue-plugin/sql-job-queue-strategy.d.ts +1 -1
  793. package/dist/plugin/default-job-queue-plugin/sql-job-queue-strategy.js +3 -3
  794. package/dist/plugin/default-job-queue-plugin/sql-job-queue-strategy.js.map +1 -1
  795. package/dist/plugin/default-search-plugin/api/api-extensions.js +1 -1
  796. package/dist/plugin/default-search-plugin/api/api-extensions.js.map +1 -1
  797. package/dist/plugin/default-search-plugin/api/fulltext-search.resolver.d.ts +3 -2
  798. package/dist/plugin/default-search-plugin/api/fulltext-search.resolver.js +30 -30
  799. package/dist/plugin/default-search-plugin/api/fulltext-search.resolver.js.map +1 -1
  800. package/dist/plugin/default-search-plugin/default-search-plugin.js +8 -8
  801. package/dist/plugin/default-search-plugin/default-search-plugin.js.map +1 -1
  802. package/dist/plugin/default-search-plugin/entities/search-index-item.entity.js +28 -27
  803. package/dist/plugin/default-search-plugin/entities/search-index-item.entity.js.map +1 -1
  804. package/dist/plugin/default-search-plugin/fulltext-search.service.js +5 -5
  805. package/dist/plugin/default-search-plugin/fulltext-search.service.js.map +1 -1
  806. package/dist/plugin/default-search-plugin/index.js +5 -1
  807. package/dist/plugin/default-search-plugin/index.js.map +1 -1
  808. package/dist/plugin/default-search-plugin/indexer/indexer.controller.js +48 -31
  809. package/dist/plugin/default-search-plugin/indexer/indexer.controller.js.map +1 -1
  810. package/dist/plugin/default-search-plugin/indexer/mutable-request-context.js.map +1 -1
  811. package/dist/plugin/default-search-plugin/indexer/search-index.service.d.ts +12 -12
  812. package/dist/plugin/default-search-plugin/indexer/search-index.service.js +22 -14
  813. package/dist/plugin/default-search-plugin/indexer/search-index.service.js.map +1 -1
  814. package/dist/plugin/default-search-plugin/search-job-buffer/collection-job-buffer.js +1 -1
  815. package/dist/plugin/default-search-plugin/search-job-buffer/collection-job-buffer.js.map +1 -1
  816. package/dist/plugin/default-search-plugin/search-job-buffer/search-index-job-buffer.js +1 -1
  817. package/dist/plugin/default-search-plugin/search-job-buffer/search-index-job-buffer.js.map +1 -1
  818. package/dist/plugin/default-search-plugin/search-job-buffer/search-job-buffer.service.js +4 -4
  819. package/dist/plugin/default-search-plugin/search-job-buffer/search-job-buffer.service.js.map +1 -1
  820. package/dist/plugin/default-search-plugin/search-strategy/mysql-search-strategy.js +11 -11
  821. package/dist/plugin/default-search-plugin/search-strategy/mysql-search-strategy.js.map +1 -1
  822. package/dist/plugin/default-search-plugin/search-strategy/postgres-search-strategy.js +12 -12
  823. package/dist/plugin/default-search-plugin/search-strategy/postgres-search-strategy.js.map +1 -1
  824. package/dist/plugin/default-search-plugin/search-strategy/search-strategy-common.js.map +1 -1
  825. package/dist/plugin/default-search-plugin/search-strategy/search-strategy-utils.js +12 -8
  826. package/dist/plugin/default-search-plugin/search-strategy/search-strategy-utils.js.map +1 -1
  827. package/dist/plugin/default-search-plugin/search-strategy/sqlite-search-strategy.js +9 -9
  828. package/dist/plugin/default-search-plugin/search-strategy/sqlite-search-strategy.js.map +1 -1
  829. package/dist/plugin/default-search-plugin/types.d.ts +22 -22
  830. package/dist/plugin/dynamic-plugin-api.module.js +8 -8
  831. package/dist/plugin/dynamic-plugin-api.module.js.map +1 -1
  832. package/dist/plugin/index.js +5 -1
  833. package/dist/plugin/index.js.map +1 -1
  834. package/dist/plugin/plugin-common.module.js +1 -1
  835. package/dist/plugin/plugin-common.module.js.map +1 -1
  836. package/dist/plugin/plugin-utils.js +2 -2
  837. package/dist/plugin/plugin-utils.js.map +1 -1
  838. package/dist/plugin/plugin.module.js +2 -2
  839. package/dist/plugin/plugin.module.js.map +1 -1
  840. package/dist/plugin/vendure-plugin.d.ts +1 -1
  841. package/dist/plugin/vendure-plugin.js +3 -3
  842. package/dist/plugin/vendure-plugin.js.map +1 -1
  843. package/dist/process-context/process-context.d.ts +1 -1
  844. package/dist/process-context/process-context.module.js +2 -2
  845. package/dist/process-context/process-context.module.js.map +1 -1
  846. package/dist/service/helpers/active-order/active-order.service.d.ts +2 -2
  847. package/dist/service/helpers/active-order/active-order.service.js +8 -8
  848. package/dist/service/helpers/active-order/active-order.service.js.map +1 -1
  849. package/dist/service/helpers/config-arg/config-arg.service.d.ts +2 -2
  850. package/dist/service/helpers/config-arg/config-arg.service.js +2 -2
  851. package/dist/service/helpers/config-arg/config-arg.service.js.map +1 -1
  852. package/dist/service/helpers/custom-field-relation/custom-field-relation.service.js +10 -5
  853. package/dist/service/helpers/custom-field-relation/custom-field-relation.service.js.map +1 -1
  854. package/dist/service/helpers/entity-hydrator/entity-hydrator.service.js +7 -8
  855. package/dist/service/helpers/entity-hydrator/entity-hydrator.service.js.map +1 -1
  856. package/dist/service/helpers/external-authentication/external-authentication.service.js +2 -2
  857. package/dist/service/helpers/external-authentication/external-authentication.service.js.map +1 -1
  858. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state-machine.d.ts +7 -13
  859. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state-machine.js +18 -48
  860. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state-machine.js.map +1 -1
  861. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state.d.ts +13 -5
  862. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state.js +0 -18
  863. package/dist/service/helpers/fulfillment-state-machine/fulfillment-state.js.map +1 -1
  864. package/dist/service/helpers/list-query-builder/list-query-builder.d.ts +3 -3
  865. package/dist/service/helpers/list-query-builder/list-query-builder.js +25 -21
  866. package/dist/service/helpers/list-query-builder/list-query-builder.js.map +1 -1
  867. package/dist/service/helpers/list-query-builder/parse-filter-params.js +8 -6
  868. package/dist/service/helpers/list-query-builder/parse-filter-params.js.map +1 -1
  869. package/dist/service/helpers/list-query-builder/parse-sort-params.d.ts +1 -1
  870. package/dist/service/helpers/list-query-builder/parse-sort-params.js +4 -4
  871. package/dist/service/helpers/list-query-builder/parse-sort-params.js.map +1 -1
  872. package/dist/service/helpers/locale-string-hydrator/locale-string-hydrator.js +5 -3
  873. package/dist/service/helpers/locale-string-hydrator/locale-string-hydrator.js.map +1 -1
  874. package/dist/service/helpers/order-calculator/order-calculator.d.ts +3 -14
  875. package/dist/service/helpers/order-calculator/order-calculator.js +46 -118
  876. package/dist/service/helpers/order-calculator/order-calculator.js.map +1 -1
  877. package/dist/service/helpers/order-merger/order-merger.d.ts +5 -5
  878. package/dist/service/helpers/order-merger/order-merger.js +4 -4
  879. package/dist/service/helpers/order-merger/order-merger.js.map +1 -1
  880. package/dist/service/helpers/order-modifier/order-modifier.d.ts +4 -2
  881. package/dist/service/helpers/order-modifier/order-modifier.js +205 -104
  882. package/dist/service/helpers/order-modifier/order-modifier.js.map +1 -1
  883. package/dist/service/helpers/order-splitter/order-splitter.d.ts +16 -0
  884. package/dist/service/helpers/order-splitter/order-splitter.js +122 -0
  885. package/dist/service/helpers/order-splitter/order-splitter.js.map +1 -0
  886. package/dist/service/helpers/order-state-machine/order-state-machine.d.ts +6 -23
  887. package/dist/service/helpers/order-state-machine/order-state-machine.js +16 -188
  888. package/dist/service/helpers/order-state-machine/order-state-machine.js.map +1 -1
  889. package/dist/service/helpers/order-state-machine/order-state.d.ts +32 -4
  890. package/dist/service/helpers/order-state-machine/order-state.js +0 -64
  891. package/dist/service/helpers/order-state-machine/order-state.js.map +1 -1
  892. package/dist/service/helpers/password-cipher/password-cipher.js +1 -1
  893. package/dist/service/helpers/password-cipher/password-cipher.js.map +1 -1
  894. package/dist/service/helpers/payment-state-machine/payment-state-machine.d.ts +5 -10
  895. package/dist/service/helpers/payment-state-machine/payment-state-machine.js +16 -38
  896. package/dist/service/helpers/payment-state-machine/payment-state-machine.js.map +1 -1
  897. package/dist/service/helpers/payment-state-machine/payment-state.d.ts +10 -4
  898. package/dist/service/helpers/payment-state-machine/payment-state.js +0 -21
  899. package/dist/service/helpers/payment-state-machine/payment-state.js.map +1 -1
  900. package/dist/service/helpers/product-price-applicator/product-price-applicator.js +7 -8
  901. package/dist/service/helpers/product-price-applicator/product-price-applicator.js.map +1 -1
  902. package/dist/service/helpers/refund-state-machine/refund-state-machine.d.ts +4 -2
  903. package/dist/service/helpers/refund-state-machine/refund-state-machine.js +3 -2
  904. package/dist/service/helpers/refund-state-machine/refund-state-machine.js.map +1 -1
  905. package/dist/service/helpers/refund-state-machine/refund-state.d.ts +1 -1
  906. package/dist/service/helpers/request-context/request-context.service.d.ts +2 -1
  907. package/dist/service/helpers/request-context/request-context.service.js +12 -6
  908. package/dist/service/helpers/request-context/request-context.service.js.map +1 -1
  909. package/dist/service/helpers/shipping-calculator/shipping-calculator.d.ts +1 -1
  910. package/dist/service/helpers/shipping-calculator/shipping-calculator.js +1 -1
  911. package/dist/service/helpers/shipping-calculator/shipping-calculator.js.map +1 -1
  912. package/dist/service/helpers/slug-validator/slug-validator.d.ts +2 -2
  913. package/dist/service/helpers/slug-validator/slug-validator.js +7 -7
  914. package/dist/service/helpers/slug-validator/slug-validator.js.map +1 -1
  915. package/dist/service/helpers/translatable-saver/translatable-saver.js +3 -3
  916. package/dist/service/helpers/translatable-saver/translatable-saver.js.map +1 -1
  917. package/dist/service/helpers/translatable-saver/translation-differ.d.ts +1 -1
  918. package/dist/service/helpers/translatable-saver/translation-differ.js +2 -2
  919. package/dist/service/helpers/translatable-saver/translation-differ.js.map +1 -1
  920. package/dist/service/helpers/translator/translator.service.js +2 -2
  921. package/dist/service/helpers/translator/translator.service.js.map +1 -1
  922. package/dist/service/helpers/utils/get-user-channels-permissions.d.ts +1 -1
  923. package/dist/service/helpers/utils/get-user-channels-permissions.js +1 -1
  924. package/dist/service/helpers/utils/get-user-channels-permissions.js.map +1 -1
  925. package/dist/service/helpers/utils/move-to-index.js +2 -2
  926. package/dist/service/helpers/utils/move-to-index.js.map +1 -1
  927. package/dist/service/helpers/utils/order-utils.d.ts +5 -1
  928. package/dist/service/helpers/utils/order-utils.js +58 -27
  929. package/dist/service/helpers/utils/order-utils.js.map +1 -1
  930. package/dist/service/helpers/utils/patch-entity.d.ts +1 -1
  931. package/dist/service/helpers/utils/translate-entity.d.ts +5 -5
  932. package/dist/service/helpers/utils/translate-entity.js +1 -1
  933. package/dist/service/helpers/utils/translate-entity.js.map +1 -1
  934. package/dist/service/helpers/verification-token-generator/verification-token-generator.js +3 -3
  935. package/dist/service/helpers/verification-token-generator/verification-token-generator.js.map +1 -1
  936. package/dist/service/index.d.ts +7 -2
  937. package/dist/service/index.js +12 -3
  938. package/dist/service/index.js.map +1 -1
  939. package/dist/service/initializer.service.d.ts +5 -1
  940. package/dist/service/initializer.service.js +12 -4
  941. package/dist/service/initializer.service.js.map +1 -1
  942. package/dist/service/service.module.js +10 -2
  943. package/dist/service/service.module.js.map +1 -1
  944. package/dist/service/services/administrator.service.js +30 -18
  945. package/dist/service/services/administrator.service.js.map +1 -1
  946. package/dist/service/services/asset.service.d.ts +1 -0
  947. package/dist/service/services/asset.service.js +36 -27
  948. package/dist/service/services/asset.service.js.map +1 -1
  949. package/dist/service/services/auth.service.js +5 -5
  950. package/dist/service/services/auth.service.js.map +1 -1
  951. package/dist/service/services/channel.service.d.ts +7 -4
  952. package/dist/service/services/channel.service.js +64 -28
  953. package/dist/service/services/channel.service.js.map +1 -1
  954. package/dist/service/services/collection.service.d.ts +6 -1
  955. package/dist/service/services/collection.service.js +50 -30
  956. package/dist/service/services/collection.service.js.map +1 -1
  957. package/dist/service/services/country.service.js +5 -5
  958. package/dist/service/services/country.service.js.map +1 -1
  959. package/dist/service/services/customer-group.service.d.ts +1 -1
  960. package/dist/service/services/customer-group.service.js +13 -10
  961. package/dist/service/services/customer-group.service.js.map +1 -1
  962. package/dist/service/services/customer.service.d.ts +2 -2
  963. package/dist/service/services/customer.service.js +40 -37
  964. package/dist/service/services/customer.service.js.map +1 -1
  965. package/dist/service/services/facet-value.service.d.ts +1 -1
  966. package/dist/service/services/facet-value.service.js +9 -8
  967. package/dist/service/services/facet-value.service.js.map +1 -1
  968. package/dist/service/services/facet.service.js +26 -17
  969. package/dist/service/services/facet.service.js.map +1 -1
  970. package/dist/service/services/fulfillment.service.d.ts +6 -24
  971. package/dist/service/services/fulfillment.service.js +50 -70
  972. package/dist/service/services/fulfillment.service.js.map +1 -1
  973. package/dist/service/services/global-settings.service.d.ts +3 -1
  974. package/dist/service/services/global-settings.service.js +16 -11
  975. package/dist/service/services/global-settings.service.js.map +1 -1
  976. package/dist/service/services/history.service.d.ts +5 -5
  977. package/dist/service/services/history.service.js +3 -3
  978. package/dist/service/services/history.service.js.map +1 -1
  979. package/dist/service/services/order-testing.service.js +11 -18
  980. package/dist/service/services/order-testing.service.js.map +1 -1
  981. package/dist/service/services/order.service.d.ts +11 -18
  982. package/dist/service/services/order.service.js +250 -411
  983. package/dist/service/services/order.service.js.map +1 -1
  984. package/dist/service/services/payment-method.service.d.ts +5 -1
  985. package/dist/service/services/payment-method.service.js +62 -35
  986. package/dist/service/services/payment-method.service.js.map +1 -1
  987. package/dist/service/services/payment.service.d.ts +2 -3
  988. package/dist/service/services/payment.service.js +74 -20
  989. package/dist/service/services/payment.service.js.map +1 -1
  990. package/dist/service/services/product-option-group.service.js +19 -16
  991. package/dist/service/services/product-option-group.service.js.map +1 -1
  992. package/dist/service/services/product-option.service.d.ts +1 -1
  993. package/dist/service/services/product-option.service.js +11 -10
  994. package/dist/service/services/product-option.service.js.map +1 -1
  995. package/dist/service/services/product-variant.service.d.ts +4 -2
  996. package/dist/service/services/product-variant.service.js +51 -32
  997. package/dist/service/services/product-variant.service.js.map +1 -1
  998. package/dist/service/services/product.service.js +43 -36
  999. package/dist/service/services/product.service.js.map +1 -1
  1000. package/dist/service/services/promotion.service.d.ts +7 -3
  1001. package/dist/service/services/promotion.service.js +80 -55
  1002. package/dist/service/services/promotion.service.js.map +1 -1
  1003. package/dist/service/services/role.service.js +20 -16
  1004. package/dist/service/services/role.service.js.map +1 -1
  1005. package/dist/service/services/search.service.js +2 -2
  1006. package/dist/service/services/search.service.js.map +1 -1
  1007. package/dist/service/services/seller.service.d.ts +25 -0
  1008. package/dist/service/services/seller.service.js +79 -0
  1009. package/dist/service/services/seller.service.js.map +1 -0
  1010. package/dist/service/services/session.service.d.ts +3 -3
  1011. package/dist/service/services/session.service.js +22 -19
  1012. package/dist/service/services/session.service.js.map +1 -1
  1013. package/dist/service/services/shipping-method.service.js +15 -12
  1014. package/dist/service/services/shipping-method.service.js.map +1 -1
  1015. package/dist/service/services/stock-level.service.d.ts +43 -0
  1016. package/dist/service/services/stock-level.service.js +125 -0
  1017. package/dist/service/services/stock-level.service.js.map +1 -0
  1018. package/dist/service/services/stock-location.service.d.ts +34 -0
  1019. package/dist/service/services/stock-location.service.js +129 -0
  1020. package/dist/service/services/stock-location.service.js.map +1 -0
  1021. package/dist/service/services/stock-movement.service.d.ts +14 -13
  1022. package/dist/service/services/stock-movement.service.js +128 -105
  1023. package/dist/service/services/stock-movement.service.js.map +1 -1
  1024. package/dist/service/services/tag.service.js +6 -3
  1025. package/dist/service/services/tag.service.js.map +1 -1
  1026. package/dist/service/services/tax-category.service.js +9 -6
  1027. package/dist/service/services/tax-category.service.js.map +1 -1
  1028. package/dist/service/services/tax-rate.service.d.ts +2 -2
  1029. package/dist/service/services/tax-rate.service.js +14 -10
  1030. package/dist/service/services/tax-rate.service.js.map +1 -1
  1031. package/dist/service/services/user.service.js +26 -13
  1032. package/dist/service/services/user.service.js.map +1 -1
  1033. package/dist/service/services/zone.service.js +12 -10
  1034. package/dist/service/services/zone.service.js.map +1 -1
  1035. package/dist/worker/index.js +5 -1
  1036. package/dist/worker/index.js.map +1 -1
  1037. package/dist/worker/worker-health.service.js +2 -2
  1038. package/dist/worker/worker-health.service.js.map +1 -1
  1039. package/dist/worker/worker.module.js +1 -1
  1040. package/dist/worker/worker.module.js.map +1 -1
  1041. package/package.json +105 -103
  1042. package/dist/api/resolvers/entity/order-item-entity.resolver.d.ts +0 -10
  1043. package/dist/api/resolvers/entity/order-item-entity.resolver.js +0 -52
  1044. package/dist/api/resolvers/entity/order-item-entity.resolver.js.map +0 -1
  1045. package/dist/api/schema/admin-api/asset-admin.type.graphql +0 -3
  1046. package/dist/config/entity-id-strategy/auto-increment-id-strategy.js.map +0 -1
  1047. package/dist/config/entity-id-strategy/entity-id-strategy.js.map +0 -1
  1048. package/dist/config/entity-id-strategy/uuid-id-strategy.js.map +0 -1
  1049. package/dist/config/fulfillment/custom-fulfillment-process.js.map +0 -1
  1050. package/dist/config/order/custom-order-process.js.map +0 -1
  1051. package/dist/config/payment/custom-payment-process.js.map +0 -1
  1052. package/dist/connection/remove-custom-fields-with-eager-relations.d.ts +0 -34
  1053. package/dist/connection/remove-custom-fields-with-eager-relations.js +0 -58
  1054. package/dist/connection/remove-custom-fields-with-eager-relations.js.map +0 -1
  1055. package/dist/entity/order-item/order-item.entity.d.ts +0 -97
  1056. package/dist/entity/order-item/order-item.entity.js +0 -228
  1057. package/dist/entity/order-item/order-item.entity.js.map +0 -1
  1058. package/dist/service/helpers/list-query-builder/parse-channel-param.d.ts +0 -9
  1059. package/dist/service/helpers/list-query-builder/parse-channel-param.js +0 -22
  1060. package/dist/service/helpers/list-query-builder/parse-channel-param.js.map +0 -1
  1061. /package/dist/config/{entity-id-strategy → entity}/auto-increment-id-strategy.d.ts +0 -0
  1062. /package/dist/config/{entity-id-strategy → entity}/auto-increment-id-strategy.js +0 -0
  1063. /package/dist/config/{entity-id-strategy → entity}/entity-id-strategy.js +0 -0
  1064. /package/dist/config/{entity-id-strategy → entity}/uuid-id-strategy.d.ts +0 -0
  1065. /package/dist/config/{entity-id-strategy → entity}/uuid-id-strategy.js +0 -0
@@ -12,7 +12,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.OrderService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const generated_types_1 = require("@vendure/common/lib/generated-types");
15
+ const omit_1 = require("@vendure/common/lib/omit");
15
16
  const shared_utils_1 = require("@vendure/common/lib/shared-utils");
17
+ const typeorm_1 = require("typeorm");
16
18
  const FindOptionsUtils_1 = require("typeorm/find-options/FindOptionsUtils");
17
19
  const request_context_cache_service_1 = require("../../cache/request-context-cache.service");
18
20
  const error_result_1 = require("../../common/error/error-result");
@@ -22,26 +24,19 @@ const generated_graphql_shop_errors_1 = require("../../common/error/generated-gr
22
24
  const tax_utils_1 = require("../../common/tax-utils");
23
25
  const utils_1 = require("../../common/utils");
24
26
  const config_service_1 = require("../../config/config.service");
25
- const remove_custom_fields_with_eager_relations_1 = require("../../connection/remove-custom-fields-with-eager-relations");
26
27
  const transactional_connection_1 = require("../../connection/transactional-connection");
27
- const fulfillment_entity_1 = require("../../entity/fulfillment/fulfillment.entity");
28
- const index_1 = require("../../entity/index");
29
- const order_item_entity_1 = require("../../entity/order-item/order-item.entity");
28
+ const order_entity_1 = require("../../entity/order/order.entity");
30
29
  const order_line_entity_1 = require("../../entity/order-line/order-line.entity");
30
+ const fulfillment_line_entity_1 = require("../../entity/order-line-reference/fulfillment-line.entity");
31
31
  const order_modification_entity_1 = require("../../entity/order-modification/order-modification.entity");
32
- const order_entity_1 = require("../../entity/order/order.entity");
33
32
  const payment_entity_1 = require("../../entity/payment/payment.entity");
34
33
  const product_variant_entity_1 = require("../../entity/product-variant/product-variant.entity");
35
34
  const refund_entity_1 = require("../../entity/refund/refund.entity");
35
+ const session_entity_1 = require("../../entity/session/session.entity");
36
36
  const shipping_line_entity_1 = require("../../entity/shipping-line/shipping-line.entity");
37
- const allocation_entity_1 = require("../../entity/stock-movement/allocation.entity");
38
37
  const surcharge_entity_1 = require("../../entity/surcharge/surcharge.entity");
39
38
  const event_bus_1 = require("../../event-bus/event-bus");
40
- const index_2 = require("../../event-bus/index");
41
- const index_3 = require("../../event-bus/index");
42
- const index_4 = require("../../event-bus/index");
43
- const index_5 = require("../../event-bus/index");
44
- const index_6 = require("../../event-bus/index");
39
+ const index_1 = require("../../event-bus/index");
45
40
  const custom_field_relation_service_1 = require("../helpers/custom-field-relation/custom-field-relation.service");
46
41
  const list_query_builder_1 = require("../helpers/list-query-builder/list-query-builder");
47
42
  const order_calculator_1 = require("../helpers/order-calculator/order-calculator");
@@ -63,6 +58,7 @@ const payment_method_service_1 = require("./payment-method.service");
63
58
  const payment_service_1 = require("./payment.service");
64
59
  const product_variant_service_1 = require("./product-variant.service");
65
60
  const promotion_service_1 = require("./promotion.service");
61
+ const stock_level_service_1 = require("./stock-level.service");
66
62
  const stock_movement_service_1 = require("./stock-movement.service");
67
63
  /**
68
64
  * @description
@@ -71,7 +67,7 @@ const stock_movement_service_1 = require("./stock-movement.service");
71
67
  * @docsCategory services
72
68
  */
73
69
  let OrderService = class OrderService {
74
- constructor(connection, configService, productVariantService, customerService, countryService, orderCalculator, shippingCalculator, orderStateMachine, orderMerger, paymentService, paymentStateMachine, paymentMethodService, fulfillmentService, listQueryBuilder, stockMovementService, refundStateMachine, historyService, promotionService, eventBus, channelService, orderModifier, customFieldRelationService, requestCache, translator) {
70
+ constructor(connection, configService, productVariantService, customerService, countryService, orderCalculator, shippingCalculator, orderStateMachine, orderMerger, paymentService, paymentStateMachine, paymentMethodService, fulfillmentService, listQueryBuilder, stockMovementService, refundStateMachine, historyService, promotionService, eventBus, channelService, orderModifier, customFieldRelationService, requestCache, translator, stockLevelService) {
75
71
  this.connection = connection;
76
72
  this.configService = configService;
77
73
  this.productVariantService = productVariantService;
@@ -96,6 +92,7 @@ let OrderService = class OrderService {
96
92
  this.customFieldRelationService = customFieldRelationService;
97
93
  this.requestCache = requestCache;
98
94
  this.translator = translator;
95
+ this.stockLevelService = stockLevelService;
99
96
  }
100
97
  /**
101
98
  * @description
@@ -117,7 +114,6 @@ let OrderService = class OrderService {
117
114
  'lines',
118
115
  'customer',
119
116
  'lines.productVariant',
120
- 'lines.items',
121
117
  'channels',
122
118
  'shippingLines',
123
119
  'payments',
@@ -138,13 +134,11 @@ let OrderService = class OrderService {
138
134
  }
139
135
  async findOne(ctx, orderId, relations) {
140
136
  const qb = this.connection.getRepository(ctx, order_entity_1.Order).createQueryBuilder('order');
141
- let effectiveRelations = relations !== null && relations !== void 0 ? relations : [
137
+ const effectiveRelations = relations !== null && relations !== void 0 ? relations : [
142
138
  'channels',
143
139
  'customer',
144
140
  'customer.user',
145
141
  'lines',
146
- 'lines.items',
147
- 'lines.items.fulfillments',
148
142
  'lines.productVariant',
149
143
  'lines.productVariant.taxCategory',
150
144
  'lines.productVariant.productVariantPrices',
@@ -159,19 +153,14 @@ let OrderService = class OrderService {
159
153
  !effectiveRelations.includes('lines.productVariant.taxCategory')) {
160
154
  effectiveRelations.push('lines.productVariant.taxCategory');
161
155
  }
162
- effectiveRelations = remove_custom_fields_with_eager_relations_1.removeCustomFieldsWithEagerRelations(qb, effectiveRelations);
163
- FindOptionsUtils_1.FindOptionsUtils.applyFindManyOptionsOrConditionsToQueryBuilder(qb, {
164
- relations: effectiveRelations,
165
- });
166
- qb.leftJoin('order.channels', 'channel')
156
+ qb.setFindOptions({ relations: effectiveRelations })
157
+ .leftJoin('order.channels', 'channel')
167
158
  .where('order.id = :orderId', { orderId })
168
159
  .andWhere('channel.id = :channelId', { channelId: ctx.channelId });
169
- if (effectiveRelations.includes('lines') && effectiveRelations.includes('lines.items')) {
170
- qb.addOrderBy('order__lines.createdAt', 'ASC')
171
- .addOrderBy('order__lines__items.createdAt', 'ASC')
172
- .addOrderBy('order__lines.productVariantId', 'ASC');
160
+ if (effectiveRelations.includes('lines')) {
161
+ qb.addOrderBy(`order__order_lines.${qb.escape('createdAt')}`, 'ASC').addOrderBy(`order__order_lines.${qb.escape('productVariantId')}`, 'ASC');
173
162
  }
174
- // tslint:disable-next-line:no-non-null-assertion
163
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
175
164
  FindOptionsUtils_1.FindOptionsUtils.joinEagerRelations(qb, qb.alias, qb.expressionMap.mainAlias.metadata);
176
165
  const order = await qb.getOne();
177
166
  if (order) {
@@ -201,13 +190,13 @@ let OrderService = class OrderService {
201
190
  return order ? this.findOne(ctx, order.id, relations) : undefined;
202
191
  }
203
192
  async findByCustomerId(ctx, customerId, options, relations) {
204
- const effectiveRelations = (relations !== null && relations !== void 0 ? relations : ['lines', 'lines.items', 'customer', 'channels', 'shippingLines']).filter(r =>
193
+ const effectiveRelations = (relations !== null && relations !== void 0 ? relations : ['lines', 'customer', 'channels', 'shippingLines']).filter(r =>
205
194
  // Don't join productVariant because it messes with the
206
195
  // price calculation in certain edge-case field resolver scenarios
207
196
  !r.includes('productVariant'));
208
197
  return this.listQueryBuilder
209
198
  .build(order_entity_1.Order, options, {
210
- relations: relations !== null && relations !== void 0 ? relations : ['lines', 'lines.items', 'customer', 'channels', 'shippingLines'],
199
+ relations: relations !== null && relations !== void 0 ? relations : ['lines', 'customer', 'channels', 'shippingLines'],
211
200
  channelId: ctx.channelId,
212
201
  ctx,
213
202
  })
@@ -233,16 +222,6 @@ let OrderService = class OrderService {
233
222
  },
234
223
  });
235
224
  }
236
- /**
237
- * @description
238
- * Returns all OrderItems associated with the given {@link Refund}.
239
- */
240
- async getRefundOrderItems(ctx, refundId) {
241
- const refund = await this.connection.getEntityOrThrow(ctx, refund_entity_1.Refund, refundId, {
242
- relations: ['orderItems'],
243
- });
244
- return refund.orderItems;
245
- }
246
225
  /**
247
226
  * @description
248
227
  * Returns an array of any {@link OrderModification} entities associated with the Order.
@@ -250,9 +229,9 @@ let OrderService = class OrderService {
250
229
  getOrderModifications(ctx, orderId) {
251
230
  return this.connection.getRepository(ctx, order_modification_entity_1.OrderModification).find({
252
231
  where: {
253
- order: orderId,
232
+ order: { id: orderId },
254
233
  },
255
- relations: ['orderItems', 'payment', 'refund', 'surcharges'],
234
+ relations: ['lines', 'payment', 'refund', 'surcharges'],
256
235
  });
257
236
  }
258
237
  /**
@@ -266,6 +245,30 @@ let OrderService = class OrderService {
266
245
  },
267
246
  });
268
247
  }
248
+ getSellerOrders(ctx, order) {
249
+ return this.connection.getRepository(ctx, order_entity_1.Order).find({
250
+ where: {
251
+ aggregateOrderId: order.id,
252
+ },
253
+ relations: ['channels'],
254
+ });
255
+ }
256
+ async getAggregateOrder(ctx, order) {
257
+ return order.aggregateOrderId == null
258
+ ? undefined
259
+ : this.connection
260
+ .getRepository(ctx, order_entity_1.Order)
261
+ .findOne({ where: { id: order.aggregateOrderId }, relations: ['channels', 'lines'] })
262
+ .then(result => result !== null && result !== void 0 ? result : undefined);
263
+ }
264
+ getOrderChannels(ctx, order) {
265
+ return this.connection
266
+ .getRepository(ctx, order_entity_1.Order)
267
+ .createQueryBuilder('order')
268
+ .relation('channels')
269
+ .of(order)
270
+ .loadMany();
271
+ }
269
272
  /**
270
273
  * @description
271
274
  * Returns any Order associated with the specified User's Customer account
@@ -306,9 +309,9 @@ let OrderService = class OrderService {
306
309
  }
307
310
  await this.channelService.assignToCurrentChannel(newOrder, ctx);
308
311
  const order = await this.connection.getRepository(ctx, order_entity_1.Order).save(newOrder);
309
- this.eventBus.publish(new index_3.OrderEvent(ctx, order, 'created'));
312
+ this.eventBus.publish(new index_1.OrderEvent(ctx, order, 'created'));
310
313
  const transitionResult = await this.transitionToState(ctx, order.id, 'AddingItems');
311
- if (error_result_1.isGraphQlErrorResult(transitionResult)) {
314
+ if ((0, error_result_1.isGraphQlErrorResult)(transitionResult)) {
312
315
  // this should never occur, so we will throw rather than return
313
316
  throw transitionResult;
314
317
  }
@@ -319,9 +322,9 @@ let OrderService = class OrderService {
319
322
  newOrder.active = false;
320
323
  await this.channelService.assignToCurrentChannel(newOrder, ctx);
321
324
  const order = await this.connection.getRepository(ctx, order_entity_1.Order).save(newOrder);
322
- this.eventBus.publish(new index_3.OrderEvent(ctx, order, 'created'));
325
+ this.eventBus.publish(new index_1.OrderEvent(ctx, order, 'created'));
323
326
  const transitionResult = await this.transitionToState(ctx, order.id, 'Draft');
324
- if (error_result_1.isGraphQlErrorResult(transitionResult)) {
327
+ if ((0, error_result_1.isGraphQlErrorResult)(transitionResult)) {
325
328
  // this should never occur, so we will throw rather than return
326
329
  throw transitionResult;
327
330
  }
@@ -329,6 +332,7 @@ let OrderService = class OrderService {
329
332
  }
330
333
  async createEmptyOrderEntity(ctx) {
331
334
  return new order_entity_1.Order({
335
+ type: generated_types_1.OrderType.Regular,
332
336
  code: await this.configService.orderOptions.orderCodeStrategy.generate(ctx),
333
337
  state: this.orderStateMachine.getInitialState(),
334
338
  lines: [],
@@ -339,7 +343,7 @@ let OrderService = class OrderService {
339
343
  billingAddress: {},
340
344
  subTotal: 0,
341
345
  subTotalWithTax: 0,
342
- currencyCode: ctx.channel.currencyCode,
346
+ currencyCode: ctx.currencyCode,
343
347
  });
344
348
  }
345
349
  /**
@@ -348,10 +352,10 @@ let OrderService = class OrderService {
348
352
  */
349
353
  async updateCustomFields(ctx, orderId, customFields) {
350
354
  let order = await this.getOrderOrThrow(ctx, orderId);
351
- order = patch_entity_1.patchEntity(order, { customFields });
355
+ order = (0, patch_entity_1.patchEntity)(order, { customFields });
352
356
  await this.customFieldRelationService.updateRelations(ctx, order_entity_1.Order, { customFields }, order);
353
357
  const updatedOrder = await this.connection.getRepository(ctx, order_entity_1.Order).save(order);
354
- this.eventBus.publish(new index_3.OrderEvent(ctx, updatedOrder, 'updated'));
358
+ this.eventBus.publish(new index_1.OrderEvent(ctx, updatedOrder, 'updated'));
355
359
  return updatedOrder;
356
360
  }
357
361
  /**
@@ -373,7 +377,7 @@ let OrderService = class OrderService {
373
377
  relations: ['product'],
374
378
  where: {
375
379
  enabled: true,
376
- deletedAt: null,
380
+ deletedAt: (0, typeorm_1.IsNull)(),
377
381
  },
378
382
  });
379
383
  if (variant.product.enabled === false) {
@@ -381,7 +385,7 @@ let OrderService = class OrderService {
381
385
  }
382
386
  const correctedQuantity = await this.orderModifier.constrainQuantityToSaleable(ctx, variant, quantity, existingOrderLine === null || existingOrderLine === void 0 ? void 0 : existingOrderLine.quantity);
383
387
  if (correctedQuantity === 0) {
384
- return new generated_graphql_shop_errors_1.InsufficientStockError(correctedQuantity, order);
388
+ return new generated_graphql_shop_errors_1.InsufficientStockError({ order, quantityAvailable: correctedQuantity });
385
389
  }
386
390
  const orderLine = await this.orderModifier.getOrCreateOrderLine(ctx, order, productVariantId, customFields);
387
391
  if (correctedQuantity < quantity) {
@@ -394,7 +398,7 @@ let OrderService = class OrderService {
394
398
  const quantityWasAdjustedDown = correctedQuantity < quantity;
395
399
  const updatedOrder = await this.applyPriceAdjustments(ctx, order, [orderLine]);
396
400
  if (quantityWasAdjustedDown) {
397
- return new generated_graphql_shop_errors_1.InsufficientStockError(correctedQuantity, updatedOrder);
401
+ return new generated_graphql_shop_errors_1.InsufficientStockError({ quantityAvailable: correctedQuantity, order: updatedOrder });
398
402
  }
399
403
  else {
400
404
  return updatedOrder;
@@ -421,9 +425,9 @@ let OrderService = class OrderService {
421
425
  const correctedQuantity = await this.orderModifier.constrainQuantityToSaleable(ctx, orderLine.productVariant, quantity);
422
426
  let updatedOrderLines = [orderLine];
423
427
  if (correctedQuantity === 0) {
424
- order.lines = order.lines.filter(l => !utils_1.idsAreEqual(l.id, orderLine.id));
428
+ order.lines = order.lines.filter(l => !(0, utils_1.idsAreEqual)(l.id, orderLine.id));
425
429
  await this.connection.getRepository(ctx, order_line_entity_1.OrderLine).remove(orderLine);
426
- this.eventBus.publish(new index_6.OrderLineEvent(ctx, order, orderLine, 'deleted'));
430
+ this.eventBus.publish(new index_1.OrderLineEvent(ctx, order, orderLine, 'deleted'));
427
431
  updatedOrderLines = [];
428
432
  }
429
433
  else {
@@ -432,7 +436,7 @@ let OrderService = class OrderService {
432
436
  const quantityWasAdjustedDown = correctedQuantity < quantity;
433
437
  const updatedOrder = await this.applyPriceAdjustments(ctx, order, updatedOrderLines);
434
438
  if (quantityWasAdjustedDown) {
435
- return new generated_graphql_shop_errors_1.InsufficientStockError(correctedQuantity, updatedOrder);
439
+ return new generated_graphql_shop_errors_1.InsufficientStockError({ quantityAvailable: correctedQuantity, order: updatedOrder });
436
440
  }
437
441
  else {
438
442
  return updatedOrder;
@@ -449,10 +453,10 @@ let OrderService = class OrderService {
449
453
  return validationError;
450
454
  }
451
455
  const orderLine = this.getOrderLineOrThrow(order, orderLineId);
452
- order.lines = order.lines.filter(line => !utils_1.idsAreEqual(line.id, orderLineId));
456
+ order.lines = order.lines.filter(line => !(0, utils_1.idsAreEqual)(line.id, orderLineId));
453
457
  const updatedOrder = await this.applyPriceAdjustments(ctx, order);
454
458
  await this.connection.getRepository(ctx, order_line_entity_1.OrderLine).remove(orderLine);
455
- this.eventBus.publish(new index_6.OrderLineEvent(ctx, order, orderLine, 'deleted'));
459
+ this.eventBus.publish(new index_1.OrderLineEvent(ctx, order, orderLine, 'deleted'));
456
460
  return updatedOrder;
457
461
  }
458
462
  /**
@@ -488,8 +492,8 @@ let OrderService = class OrderService {
488
492
  async removeSurchargeFromOrder(ctx, orderId, surchargeId) {
489
493
  const order = await this.getOrderOrThrow(ctx, orderId);
490
494
  const surcharge = await this.connection.getEntityOrThrow(ctx, surcharge_entity_1.Surcharge, surchargeId);
491
- if (order.surcharges.find(s => utils_1.idsAreEqual(s.id, surcharge.id))) {
492
- order.surcharges = order.surcharges.filter(s => !utils_1.idsAreEqual(s.id, surchargeId));
495
+ if (order.surcharges.find(s => (0, utils_1.idsAreEqual)(s.id, surcharge.id))) {
496
+ order.surcharges = order.surcharges.filter(s => !(0, utils_1.idsAreEqual)(s.id, surchargeId));
493
497
  const updatedOrder = await this.applyPriceAdjustments(ctx, order);
494
498
  await this.connection.getRepository(ctx, surcharge_entity_1.Surcharge).remove(surcharge);
495
499
  return updatedOrder;
@@ -509,7 +513,7 @@ let OrderService = class OrderService {
509
513
  return order;
510
514
  }
511
515
  const validationResult = await this.promotionService.validateCouponCode(ctx, couponCode, order.customer && order.customer.id);
512
- if (error_result_1.isGraphQlErrorResult(validationResult)) {
516
+ if ((0, error_result_1.isGraphQlErrorResult)(validationResult)) {
513
517
  return validationResult;
514
518
  }
515
519
  order.couponCodes.push(couponCode);
@@ -519,7 +523,7 @@ let OrderService = class OrderService {
519
523
  type: generated_types_1.HistoryEntryType.ORDER_COUPON_APPLIED,
520
524
  data: { couponCode, promotionId: validationResult.id },
521
525
  });
522
- this.eventBus.publish(new index_2.CouponCodeEvent(ctx, couponCode, orderId, 'assigned'));
526
+ this.eventBus.publish(new index_1.CouponCodeEvent(ctx, couponCode, orderId, 'assigned'));
523
527
  return this.applyPriceAdjustments(ctx, order);
524
528
  }
525
529
  /**
@@ -531,10 +535,8 @@ let OrderService = class OrderService {
531
535
  if (order.couponCodes.includes(couponCode)) {
532
536
  // When removing a couponCode which has triggered an Order-level discount
533
537
  // we need to make sure we persist the changes to the adjustments array of
534
- // any affected OrderItems.
535
- const affectedOrderItems = order.lines
536
- .reduce((items, l) => [...items, ...l.items], [])
537
- .filter(i => i.adjustments.filter(a => a.type === generated_types_1.AdjustmentType.DISTRIBUTED_ORDER_PROMOTION)
538
+ // any affected OrderLines.
539
+ const affectedOrderLines = order.lines.filter(line => line.adjustments.filter(a => a.type === generated_types_1.AdjustmentType.DISTRIBUTED_ORDER_PROMOTION)
538
540
  .length);
539
541
  order.couponCodes = order.couponCodes.filter(cc => cc !== couponCode);
540
542
  await this.historyService.createHistoryEntryForOrder({
@@ -543,9 +545,9 @@ let OrderService = class OrderService {
543
545
  type: generated_types_1.HistoryEntryType.ORDER_COUPON_REMOVED,
544
546
  data: { couponCode },
545
547
  });
546
- this.eventBus.publish(new index_2.CouponCodeEvent(ctx, couponCode, orderId, 'removed'));
548
+ this.eventBus.publish(new index_1.CouponCodeEvent(ctx, couponCode, orderId, 'removed'));
547
549
  const result = await this.applyPriceAdjustments(ctx, order);
548
- await this.connection.getRepository(ctx, order_item_entity_1.OrderItem).save(affectedOrderItems);
550
+ await this.connection.getRepository(ctx, order_line_entity_1.OrderLine).save(affectedOrderLines);
549
551
  return result;
550
552
  }
551
553
  else {
@@ -562,7 +564,7 @@ let OrderService = class OrderService {
562
564
  channelId: ctx.channelId,
563
565
  relations: ['promotions'],
564
566
  });
565
- return order.promotions || [];
567
+ return order.promotions.map(p => this.translator.translate(p, ctx)) || [];
566
568
  }
567
569
  /**
568
570
  * @description
@@ -584,7 +586,8 @@ let OrderService = class OrderService {
584
586
  .createQueryBuilder('order')
585
587
  .update(order_entity_1.Order)
586
588
  .set({ shippingAddress })
587
- .where('id = :id', { id: order.id });
589
+ .where('id = :id', { id: order.id })
590
+ .execute();
588
591
  order.shippingAddress = shippingAddress;
589
592
  // Since a changed ShippingAddress could alter the activeTaxZone,
590
593
  // we will remove any cached activeTaxZone, so it can be re-calculated
@@ -605,7 +608,8 @@ let OrderService = class OrderService {
605
608
  .createQueryBuilder('order')
606
609
  .update(order_entity_1.Order)
607
610
  .set({ billingAddress })
608
- .where('id = :id', { id: order.id });
611
+ .where('id = :id', { id: order.id })
612
+ .execute();
609
613
  order.billingAddress = billingAddress;
610
614
  // Since a changed BillingAddress could alter the activeTaxZone,
611
615
  // we will remove any cached activeTaxZone, so it can be re-calculated
@@ -628,8 +632,8 @@ let OrderService = class OrderService {
628
632
  const { price, taxRate, priceIncludesTax, metadata } = eligible.result;
629
633
  return {
630
634
  id: eligible.method.id,
631
- price: priceIncludesTax ? tax_utils_1.netPriceOf(price, taxRate) : price,
632
- priceWithTax: priceIncludesTax ? price : tax_utils_1.grossPriceOf(price, taxRate),
635
+ price: priceIncludesTax ? (0, tax_utils_1.netPriceOf)(price, taxRate) : price,
636
+ priceWithTax: priceIncludesTax ? price : (0, tax_utils_1.grossPriceOf)(price, taxRate),
633
637
  description: eligible.method.description,
634
638
  name: eligible.method.name,
635
639
  code: eligible.method.code,
@@ -650,32 +654,61 @@ let OrderService = class OrderService {
650
654
  * @description
651
655
  * Sets the ShippingMethod to be used on this Order.
652
656
  */
653
- async setShippingMethod(ctx, orderId, shippingMethodId) {
657
+ async setShippingMethod(ctx, orderId, shippingMethodIds) {
654
658
  const order = await this.getOrderOrThrow(ctx, orderId);
655
659
  const validationError = this.assertAddingItemsState(order);
656
660
  if (validationError) {
657
661
  return validationError;
658
662
  }
659
- const shippingMethod = await this.shippingCalculator.getMethodIfEligible(ctx, order, shippingMethodId);
660
- if (!shippingMethod) {
661
- return new generated_graphql_shop_errors_1.IneligibleShippingMethodError();
663
+ for (const [i, shippingMethodId] of shippingMethodIds.entries()) {
664
+ const shippingMethod = await this.shippingCalculator.getMethodIfEligible(ctx, order, shippingMethodId);
665
+ if (!shippingMethod) {
666
+ return new generated_graphql_shop_errors_1.IneligibleShippingMethodError();
667
+ }
668
+ let shippingLine = order.shippingLines[i];
669
+ if (shippingLine) {
670
+ shippingLine.shippingMethod = shippingMethod;
671
+ }
672
+ else {
673
+ shippingLine = await this.connection.getRepository(ctx, shipping_line_entity_1.ShippingLine).save(new shipping_line_entity_1.ShippingLine({
674
+ shippingMethod,
675
+ order,
676
+ adjustments: [],
677
+ listPrice: 0,
678
+ listPriceIncludesTax: ctx.channel.pricesIncludeTax,
679
+ taxLines: [],
680
+ }));
681
+ if (order.shippingLines) {
682
+ order.shippingLines.push(shippingLine);
683
+ }
684
+ else {
685
+ order.shippingLines = [shippingLine];
686
+ }
687
+ }
688
+ await this.connection.getRepository(ctx, shipping_line_entity_1.ShippingLine).save(shippingLine);
662
689
  }
663
- let shippingLine = order.shippingLines[0];
664
- if (shippingLine) {
665
- shippingLine.shippingMethod = shippingMethod;
690
+ // remove any now-unused ShippingLines
691
+ if (shippingMethodIds.length < order.shippingLines.length) {
692
+ const shippingLinesToDelete = order.shippingLines.splice(shippingMethodIds.length - 1);
693
+ await this.connection.getRepository(ctx, shipping_line_entity_1.ShippingLine).remove(shippingLinesToDelete);
666
694
  }
667
- else {
668
- shippingLine = await this.connection.getRepository(ctx, shipping_line_entity_1.ShippingLine).save(new shipping_line_entity_1.ShippingLine({
669
- shippingMethod,
670
- order,
671
- adjustments: [],
672
- listPrice: 0,
673
- listPriceIncludesTax: ctx.channel.pricesIncludeTax,
674
- taxLines: [],
675
- }));
676
- order.shippingLines = [shippingLine];
695
+ // assign the ShippingLines to the OrderLines
696
+ await this.connection
697
+ .getRepository(ctx, order_line_entity_1.OrderLine)
698
+ .createQueryBuilder('line')
699
+ .update({ shippingLine: undefined })
700
+ .whereInIds(order.lines.map(l => l.id))
701
+ .execute();
702
+ const { shippingLineAssignmentStrategy } = this.configService.shippingOptions;
703
+ for (const shippingLine of order.shippingLines) {
704
+ const orderLinesForShippingLine = await shippingLineAssignmentStrategy.assignShippingLineToOrderLines(ctx, shippingLine, order);
705
+ await this.connection
706
+ .getRepository(ctx, order_line_entity_1.OrderLine)
707
+ .createQueryBuilder('line')
708
+ .update({ shippingLine })
709
+ .whereInIds(orderLinesForShippingLine.map(l => l.id))
710
+ .execute();
677
711
  }
678
- await this.connection.getRepository(ctx, shipping_line_entity_1.ShippingLine).save(shippingLine);
679
712
  await this.connection.getRepository(ctx, order_entity_1.Order).save(order, { reload: false });
680
713
  await this.applyPriceAdjustments(ctx, order);
681
714
  return this.connection.getRepository(ctx, order_entity_1.Order).save(order);
@@ -688,15 +721,19 @@ let OrderService = class OrderService {
688
721
  const order = await this.getOrderOrThrow(ctx, orderId);
689
722
  order.payments = await this.getOrderPayments(ctx, orderId);
690
723
  const fromState = order.state;
724
+ let finalize;
691
725
  try {
692
- await this.orderStateMachine.transition(ctx, order, state);
726
+ const result = await this.orderStateMachine.transition(ctx, order, state);
727
+ finalize = result.finalize;
693
728
  }
694
729
  catch (e) {
695
730
  const transitionError = ctx.translate(e.message, { fromState, toState: state });
696
- return new generated_graphql_shop_errors_1.OrderStateTransitionError(transitionError, fromState, state);
731
+ return new generated_graphql_shop_errors_1.OrderStateTransitionError({ transitionError, fromState, toState: state });
697
732
  }
698
733
  await this.connection.getRepository(ctx, order_entity_1.Order).save(order, { reload: false });
699
- this.eventBus.publish(new index_4.OrderStateTransitionEvent(fromState, state, ctx, order));
734
+ this.eventBus.publish(new index_1.OrderStateTransitionEvent(fromState, state, ctx, order));
735
+ await finalize();
736
+ await this.connection.getRepository(ctx, order_entity_1.Order).save(order, { reload: false });
700
737
  return order;
701
738
  }
702
739
  /**
@@ -706,17 +743,10 @@ let OrderService = class OrderService {
706
743
  */
707
744
  async transitionFulfillmentToState(ctx, fulfillmentId, state) {
708
745
  const result = await this.fulfillmentService.transitionToState(ctx, fulfillmentId, state);
709
- if (error_result_1.isGraphQlErrorResult(result)) {
746
+ if ((0, error_result_1.isGraphQlErrorResult)(result)) {
710
747
  return result;
711
748
  }
712
- const { fulfillment, fromState, toState, orders } = result;
713
- if (toState === 'Cancelled') {
714
- await this.stockMovementService.createCancellationsForOrderItems(ctx, fulfillment.orderItems);
715
- const lines = await this.groupOrderItemsIntoLines(ctx, fulfillment.orderItems);
716
- await this.stockMovementService.createAllocationsForOrderLines(ctx, lines);
717
- }
718
- await Promise.all(orders.map(order => this.handleFulfillmentStateTransitByOrder(ctx, order, fromState, toState)));
719
- return fulfillment;
749
+ return result.fulfillment;
720
750
  }
721
751
  /**
722
752
  * @description
@@ -736,7 +766,7 @@ let OrderService = class OrderService {
736
766
  async modifyOrder(ctx, input) {
737
767
  const order = await this.getOrderOrThrow(ctx, input.orderId);
738
768
  const result = await this.orderModifier.modifyOrder(ctx, input, order);
739
- if (error_result_1.isGraphQlErrorResult(result)) {
769
+ if ((0, error_result_1.isGraphQlErrorResult)(result)) {
740
770
  return result;
741
771
  }
742
772
  if (input.dryRun) {
@@ -752,28 +782,6 @@ let OrderService = class OrderService {
752
782
  });
753
783
  return this.getOrderOrThrow(ctx, input.orderId);
754
784
  }
755
- async handleFulfillmentStateTransitByOrder(ctx, order, fromState, toState) {
756
- const nextOrderStates = this.getNextOrderStates(order);
757
- const transitionOrderIfStateAvailable = (state) => nextOrderStates.includes(state) && this.transitionToState(ctx, order.id, state);
758
- if (toState === 'Shipped') {
759
- const orderWithFulfillment = await this.getOrderWithFulfillments(ctx, order.id);
760
- if (order_utils_1.orderItemsAreShipped(orderWithFulfillment)) {
761
- await transitionOrderIfStateAvailable('Shipped');
762
- }
763
- else {
764
- await transitionOrderIfStateAvailable('PartiallyShipped');
765
- }
766
- }
767
- if (toState === 'Delivered') {
768
- const orderWithFulfillment = await this.getOrderWithFulfillments(ctx, order.id);
769
- if (order_utils_1.orderItemsAreDelivered(orderWithFulfillment)) {
770
- await transitionOrderIfStateAvailable('Delivered');
771
- }
772
- else {
773
- await transitionOrderIfStateAvailable('PartiallyDelivered');
774
- }
775
- }
776
- }
777
785
  /**
778
786
  * @description
779
787
  * Transitions the given {@link Payment} to a new state. If the order totalWithTax price is then
@@ -782,14 +790,9 @@ let OrderService = class OrderService {
782
790
  */
783
791
  async transitionPaymentToState(ctx, paymentId, state) {
784
792
  const result = await this.paymentService.transitionToState(ctx, paymentId, state);
785
- if (error_result_1.isGraphQlErrorResult(result)) {
793
+ if ((0, error_result_1.isGraphQlErrorResult)(result)) {
786
794
  return result;
787
795
  }
788
- const order = await this.findOne(ctx, result.order.id);
789
- if (order) {
790
- order.payments = await this.getOrderPayments(ctx, order.id);
791
- await this.transitionOrderIfTotalIsCovered(ctx, order);
792
- }
793
796
  return result;
794
797
  }
795
798
  /**
@@ -803,21 +806,24 @@ let OrderService = class OrderService {
803
806
  return new generated_graphql_shop_errors_1.OrderPaymentStateError();
804
807
  }
805
808
  order.payments = await this.getOrderPayments(ctx, order.id);
806
- const amountToPay = order.totalWithTax - order_utils_1.totalCoveredByPayments(order);
809
+ const amountToPay = order.totalWithTax - (0, order_utils_1.totalCoveredByPayments)(order);
807
810
  const payment = await this.paymentService.createPayment(ctx, order, amountToPay, input.method, input.metadata);
808
- if (error_result_1.isGraphQlErrorResult(payment)) {
811
+ if ((0, error_result_1.isGraphQlErrorResult)(payment)) {
809
812
  return payment;
810
813
  }
811
- const existingPayments = await this.getOrderPayments(ctx, orderId);
812
- order.payments = [...existingPayments, payment];
813
- await this.connection.getRepository(ctx, order_entity_1.Order).save(order, { reload: false });
814
+ await this.connection
815
+ .getRepository(ctx, order_entity_1.Order)
816
+ .createQueryBuilder()
817
+ .relation('payments')
818
+ .of(order)
819
+ .add(payment);
814
820
  if (payment.state === 'Error') {
815
- return new generated_graphql_shop_errors_1.PaymentFailedError(payment.errorMessage || '');
821
+ return new generated_graphql_shop_errors_1.PaymentFailedError({ paymentErrorMessage: payment.errorMessage || '' });
816
822
  }
817
823
  if (payment.state === 'Declined') {
818
- return new generated_graphql_shop_errors_1.PaymentDeclinedError(payment.errorMessage || '');
824
+ return new generated_graphql_shop_errors_1.PaymentDeclinedError({ paymentErrorMessage: payment.errorMessage || '' });
819
825
  }
820
- return this.transitionOrderIfTotalIsCovered(ctx, order);
826
+ return (0, utils_1.assertFound)(this.findOne(ctx, order.id));
821
827
  }
822
828
  /**
823
829
  * @description
@@ -833,16 +839,6 @@ let OrderService = class OrderService {
833
839
  const canTransitionToPaymentSettled = this.orderStateMachine.canTransition(order.state, 'PaymentSettled');
834
840
  return canTransitionToPaymentAuthorized && canTransitionToPaymentSettled;
835
841
  }
836
- async transitionOrderIfTotalIsCovered(ctx, order) {
837
- const orderId = order.id;
838
- if (order_utils_1.orderTotalIsCovered(order, 'Settled') && order.state !== 'PaymentSettled') {
839
- return this.transitionToState(ctx, orderId, 'PaymentSettled');
840
- }
841
- if (order_utils_1.orderTotalIsCovered(order, ['Authorized', 'Settled']) && order.state !== 'PaymentAuthorized') {
842
- return this.transitionToState(ctx, orderId, 'PaymentAuthorized');
843
- }
844
- return order;
845
- }
846
842
  /**
847
843
  * @description
848
844
  * This method is used after modifying an existing completed order using the `modifyOrder()` method. If the modifications
@@ -859,11 +855,11 @@ let OrderService = class OrderService {
859
855
  }
860
856
  const existingPayments = await this.getOrderPayments(ctx, order.id);
861
857
  order.payments = existingPayments;
862
- const amount = order.totalWithTax - order_utils_1.totalCoveredByPayments(order);
858
+ const amount = order.totalWithTax - (0, order_utils_1.totalCoveredByPayments)(order);
863
859
  const modifications = await this.getOrderModifications(ctx, order.id);
864
860
  const unsettledModifications = modifications.filter(m => !m.isSettled);
865
861
  if (0 < unsettledModifications.length) {
866
- const outstandingModificationsTotal = shared_utils_1.summate(unsettledModifications, 'priceChange');
862
+ const outstandingModificationsTotal = (0, shared_utils_1.summate)(unsettledModifications, 'priceChange');
867
863
  if (outstandingModificationsTotal !== amount) {
868
864
  throw new errors_1.InternalServerError(`The outstanding order amount (${amount}) should equal the unsettled OrderModifications total (${outstandingModificationsTotal})`);
869
865
  }
@@ -875,7 +871,7 @@ let OrderService = class OrderService {
875
871
  modification.payment = payment;
876
872
  await this.connection.getRepository(ctx, order_modification_entity_1.OrderModification).save(modification);
877
873
  }
878
- return order;
874
+ return (0, utils_1.assertFound)(this.findOne(ctx, order.id));
879
875
  }
880
876
  /**
881
877
  * @description
@@ -884,17 +880,9 @@ let OrderService = class OrderService {
884
880
  */
885
881
  async settlePayment(ctx, paymentId) {
886
882
  const payment = await this.paymentService.settlePayment(ctx, paymentId);
887
- if (!error_result_1.isGraphQlErrorResult(payment)) {
883
+ if (!(0, error_result_1.isGraphQlErrorResult)(payment)) {
888
884
  if (payment.state !== 'Settled') {
889
- return new generated_graphql_admin_errors_1.SettlePaymentError(payment.errorMessage || '');
890
- }
891
- const order = await this.findOne(ctx, payment.order.id);
892
- if (order) {
893
- order.payments = await this.getOrderPayments(ctx, order.id);
894
- const orderTransitionResult = await this.transitionOrderIfTotalIsCovered(ctx, order);
895
- if (error_result_1.isGraphQlErrorResult(orderTransitionResult)) {
896
- return orderTransitionResult;
897
- }
885
+ return new generated_graphql_admin_errors_1.SettlePaymentError({ paymentErrorMessage: payment.errorMessage || '' });
898
886
  }
899
887
  }
900
888
  return payment;
@@ -906,9 +894,9 @@ let OrderService = class OrderService {
906
894
  */
907
895
  async cancelPayment(ctx, paymentId) {
908
896
  const payment = await this.paymentService.cancelPayment(ctx, paymentId);
909
- if (!error_result_1.isGraphQlErrorResult(payment)) {
897
+ if (!(0, error_result_1.isGraphQlErrorResult)(payment)) {
910
898
  if (payment.state !== 'Cancelled') {
911
- return new generated_graphql_admin_errors_1.CancelPaymentError(payment.errorMessage || '');
899
+ return new generated_graphql_admin_errors_1.CancelPaymentError({ paymentErrorMessage: payment.errorMessage || '' });
912
900
  }
913
901
  }
914
902
  return payment;
@@ -918,23 +906,28 @@ let OrderService = class OrderService {
918
906
  * Creates a new Fulfillment associated with the given Order and OrderItems.
919
907
  */
920
908
  async createFulfillment(ctx, input) {
921
- if (!input.lines || input.lines.length === 0 || shared_utils_1.summate(input.lines, 'quantity') === 0) {
909
+ if (!input.lines || input.lines.length === 0 || (0, shared_utils_1.summate)(input.lines, 'quantity') === 0) {
922
910
  return new generated_graphql_admin_errors_1.EmptyOrderLineSelectionError();
923
911
  }
924
- const ordersAndItems = await this.getOrdersAndItemsFromLines(ctx, input.lines, i => !i.fulfillment && !i.cancelled);
925
- if (!ordersAndItems) {
912
+ const orders = await (0, order_utils_1.getOrdersFromLines)(ctx, this.connection, input.lines);
913
+ if (await this.requestedFulfillmentQuantityExceedsLineQuantity(ctx, input)) {
926
914
  return new generated_graphql_admin_errors_1.ItemsAlreadyFulfilledError();
927
915
  }
928
916
  const stockCheckResult = await this.ensureSufficientStockForFulfillment(ctx, input);
929
- if (error_result_1.isGraphQlErrorResult(stockCheckResult)) {
917
+ if ((0, error_result_1.isGraphQlErrorResult)(stockCheckResult)) {
930
918
  return stockCheckResult;
931
919
  }
932
- const fulfillment = await this.fulfillmentService.create(ctx, ordersAndItems.orders, ordersAndItems.items, input.handler);
933
- if (error_result_1.isGraphQlErrorResult(fulfillment)) {
920
+ const fulfillment = await this.fulfillmentService.create(ctx, orders, input.lines, input.handler);
921
+ if ((0, error_result_1.isGraphQlErrorResult)(fulfillment)) {
934
922
  return fulfillment;
935
923
  }
936
- await this.stockMovementService.createSalesForOrder(ctx, ordersAndItems.items);
937
- for (const order of ordersAndItems.orders) {
924
+ await this.connection
925
+ .getRepository(ctx, order_entity_1.Order)
926
+ .createQueryBuilder()
927
+ .relation('fulfillments')
928
+ .of(orders)
929
+ .add(fulfillment);
930
+ for (const order of orders) {
938
931
  await this.historyService.createHistoryEntryForOrder({
939
932
  ctx,
940
933
  orderId: order.id,
@@ -945,20 +938,51 @@ let OrderService = class OrderService {
945
938
  });
946
939
  }
947
940
  const result = await this.fulfillmentService.transitionToState(ctx, fulfillment.id, 'Pending');
948
- if (error_result_1.isGraphQlErrorResult(result)) {
941
+ if ((0, error_result_1.isGraphQlErrorResult)(result)) {
949
942
  return result;
950
943
  }
951
944
  return result.fulfillment;
952
945
  }
946
+ async requestedFulfillmentQuantityExceedsLineQuantity(ctx, input) {
947
+ var _a;
948
+ const linesToBeFulfilled = await this.connection
949
+ .getRepository(ctx, fulfillment_line_entity_1.FulfillmentLine)
950
+ .createQueryBuilder('fulfillmentLine')
951
+ .leftJoinAndSelect('fulfillmentLine.orderLine', 'orderLine')
952
+ .leftJoinAndSelect('fulfillmentLine.fulfillment', 'fulfillment')
953
+ .where('fulfillmentLine.orderLineId IN (:...orderLineIds)', {
954
+ orderLineIds: input.lines.map(l => l.orderLineId),
955
+ })
956
+ .andWhere('fulfillment.state != :state', { state: 'Cancelled' })
957
+ .getMany();
958
+ for (const lineToBeFulfilled of linesToBeFulfilled) {
959
+ const unfulfilledQuantity = lineToBeFulfilled.orderLine.quantity - lineToBeFulfilled.quantity;
960
+ const lineInput = input.lines.find(l => (0, utils_1.idsAreEqual)(l.orderLineId, lineToBeFulfilled.orderLine.id));
961
+ if (unfulfilledQuantity < ((_a = lineInput === null || lineInput === void 0 ? void 0 : lineInput.quantity) !== null && _a !== void 0 ? _a : 0)) {
962
+ return true;
963
+ }
964
+ }
965
+ return false;
966
+ }
953
967
  async ensureSufficientStockForFulfillment(ctx, input) {
954
- const lines = await this.connection.getRepository(ctx, order_line_entity_1.OrderLine).findByIds(input.lines.map(l => l.orderLineId), { relations: ['productVariant'] });
968
+ const lines = await this.connection.getRepository(ctx, order_line_entity_1.OrderLine).find({
969
+ where: {
970
+ id: (0, typeorm_1.In)(input.lines.map(l => l.orderLineId)),
971
+ },
972
+ relations: ['productVariant'],
973
+ });
955
974
  for (const line of lines) {
956
- // tslint:disable-next-line:no-non-null-assertion
957
- const lineInput = input.lines.find(l => utils_1.idsAreEqual(l.orderLineId, line.id));
975
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
976
+ const lineInput = input.lines.find(l => (0, utils_1.idsAreEqual)(l.orderLineId, line.id));
958
977
  const fulfillableStockLevel = await this.productVariantService.getFulfillableStockLevel(ctx, line.productVariant);
959
978
  if (fulfillableStockLevel < lineInput.quantity) {
979
+ const { stockOnHand } = await this.stockLevelService.getAvailableStock(ctx, line.productVariant.id);
960
980
  const productVariant = this.translator.translate(line.productVariant, ctx);
961
- return new generated_graphql_admin_errors_1.InsufficientStockOnHandError(productVariant.id, productVariant.name, productVariant.stockOnHand);
981
+ return new generated_graphql_admin_errors_1.InsufficientStockOnHandError({
982
+ productVariantId: productVariant.id,
983
+ productVariantName: productVariant.name,
984
+ stockOnHand,
985
+ });
962
986
  }
963
987
  }
964
988
  }
@@ -967,20 +991,9 @@ let OrderService = class OrderService {
967
991
  * Returns an array of all Fulfillments associated with the Order.
968
992
  */
969
993
  async getOrderFulfillments(ctx, order) {
970
- const itemIdsQb = await this.connection
971
- .getRepository(ctx, order_item_entity_1.OrderItem)
972
- .createQueryBuilder('item')
973
- .select('item.id', 'id')
974
- .leftJoin('item.line', 'line')
975
- .leftJoin('line.order', 'order')
976
- .where('order.id = :orderId', { orderId: order.id });
977
- const fulfillments = await this.connection
978
- .getRepository(ctx, fulfillment_entity_1.Fulfillment)
979
- .createQueryBuilder('fulfillment')
980
- .leftJoinAndSelect('fulfillment.orderItems', 'item')
981
- .where(`item.id IN (${itemIdsQb.getQuery()})`)
982
- .setParameters(itemIdsQb.getParameters())
983
- .getMany();
994
+ const { fulfillments } = await this.connection.getEntityOrThrow(ctx, order_entity_1.Order, order.id, {
995
+ relations: ['fulfillments'],
996
+ });
984
997
  return fulfillments;
985
998
  }
986
999
  /**
@@ -1002,9 +1015,9 @@ let OrderService = class OrderService {
1002
1015
  async cancelOrder(ctx, input) {
1003
1016
  let allOrderItemsCancelled = false;
1004
1017
  const cancelResult = input.lines != null
1005
- ? await this.cancelOrderByOrderLines(ctx, input, input.lines)
1018
+ ? await this.orderModifier.cancelOrderByOrderLines(ctx, input, input.lines)
1006
1019
  : await this.cancelOrderById(ctx, input);
1007
- if (error_result_1.isGraphQlErrorResult(cancelResult)) {
1020
+ if ((0, error_result_1.isGraphQlErrorResult)(cancelResult)) {
1008
1021
  return cancelResult;
1009
1022
  }
1010
1023
  else {
@@ -1012,11 +1025,11 @@ let OrderService = class OrderService {
1012
1025
  }
1013
1026
  if (allOrderItemsCancelled) {
1014
1027
  const transitionResult = await this.transitionToState(ctx, input.orderId, 'Cancelled');
1015
- if (error_result_1.isGraphQlErrorResult(transitionResult)) {
1028
+ if ((0, error_result_1.isGraphQlErrorResult)(transitionResult)) {
1016
1029
  return transitionResult;
1017
1030
  }
1018
1031
  }
1019
- return utils_1.assertFound(this.findOne(ctx, input.orderId));
1032
+ return (0, utils_1.assertFound)(this.findOne(ctx, input.orderId));
1020
1033
  }
1021
1034
  async cancelOrderById(ctx, input) {
1022
1035
  const order = await this.getOrderOrThrow(ctx, input.orderId);
@@ -1028,118 +1041,37 @@ let OrderService = class OrderService {
1028
1041
  orderLineId: l.id,
1029
1042
  quantity: l.quantity,
1030
1043
  }));
1031
- return this.cancelOrderByOrderLines(ctx, input, lines);
1044
+ return this.orderModifier.cancelOrderByOrderLines(ctx, input, lines);
1032
1045
  }
1033
1046
  }
1034
- async cancelOrderByOrderLines(ctx, input, lines) {
1035
- if (lines.length === 0 || shared_utils_1.summate(lines, 'quantity') === 0) {
1036
- return new generated_graphql_admin_errors_1.EmptyOrderLineSelectionError();
1037
- }
1038
- const ordersAndItems = await this.getOrdersAndItemsFromLines(ctx, lines, i => !i.cancelled);
1039
- if (!ordersAndItems) {
1040
- return new generated_graphql_admin_errors_1.QuantityTooGreatError();
1041
- }
1042
- if (1 < ordersAndItems.orders.length) {
1043
- return new generated_graphql_admin_errors_1.MultipleOrderError();
1044
- }
1045
- const { orders, items } = ordersAndItems;
1046
- const order = orders[0];
1047
- if (!utils_1.idsAreEqual(order.id, input.orderId)) {
1048
- return new generated_graphql_admin_errors_1.MultipleOrderError();
1049
- }
1050
- if (order.active) {
1051
- return new generated_graphql_admin_errors_1.CancelActiveOrderError(order.state);
1052
- }
1053
- const fullOrder = await this.findOne(ctx, order.id);
1054
- const soldItems = items.filter(i => !!i.fulfillment);
1055
- const allocatedItems = await this.getAllocatedItems(ctx, items);
1056
- await this.stockMovementService.createCancellationsForOrderItems(ctx, soldItems);
1057
- await this.stockMovementService.createReleasesForOrderItems(ctx, allocatedItems);
1058
- items.forEach(i => (i.cancelled = true));
1059
- await this.connection.getRepository(ctx, order_item_entity_1.OrderItem).save(items, { reload: false });
1060
- const orderWithItems = await this.connection.getEntityOrThrow(ctx, order_entity_1.Order, order.id, {
1061
- relations: ['lines', 'lines.items', 'surcharges', 'shippingLines'],
1062
- });
1063
- if (input.cancelShipping === true) {
1064
- for (const shippingLine of orderWithItems.shippingLines) {
1065
- shippingLine.adjustments.push({
1066
- adjustmentSource: 'CANCEL_ORDER',
1067
- type: generated_types_1.AdjustmentType.OTHER,
1068
- description: 'shipping cancellation',
1069
- amount: -shippingLine.discountedPriceWithTax,
1070
- });
1071
- this.connection.getRepository(ctx, shipping_line_entity_1.ShippingLine).save(shippingLine, { reload: false });
1072
- }
1073
- }
1074
- // Update totals after cancellation
1075
- this.orderCalculator.calculateOrderTotals(orderWithItems);
1076
- await this.connection.getRepository(ctx, order_entity_1.Order).save(orderWithItems, { reload: false });
1077
- await this.historyService.createHistoryEntryForOrder({
1078
- ctx,
1079
- orderId: order.id,
1080
- type: generated_types_1.HistoryEntryType.ORDER_CANCELLATION,
1081
- data: {
1082
- orderItemIds: items.map(i => i.id),
1083
- reason: input.reason || undefined,
1084
- shippingCancelled: !!input.cancelShipping,
1085
- },
1086
- });
1087
- return order_utils_1.orderItemsAreAllCancelled(orderWithItems);
1088
- }
1089
- async getAllocatedItems(ctx, items) {
1090
- const allocatedItems = [];
1091
- const allocationMap = new Map();
1092
- for (const item of items) {
1093
- let allocation = allocationMap.get(item.lineId);
1094
- if (!allocation) {
1095
- allocation = await this.connection
1096
- .getRepository(ctx, allocation_entity_1.Allocation)
1097
- .createQueryBuilder('allocation')
1098
- .where('allocation.orderLine = :lineId', { lineId: item.lineId })
1099
- .getOne();
1100
- allocationMap.set(item.lineId, allocation || false);
1101
- }
1102
- if (allocation && !item.fulfillment) {
1103
- allocatedItems.push(item);
1104
- }
1105
- }
1106
- return allocatedItems;
1107
- }
1108
1047
  /**
1109
1048
  * @description
1110
1049
  * Creates a {@link Refund} against the order and in doing so invokes the `createRefund()` method of the
1111
1050
  * {@link PaymentMethodHandler}.
1112
1051
  */
1113
1052
  async refundOrder(ctx, input) {
1114
- if ((!input.lines || input.lines.length === 0 || shared_utils_1.summate(input.lines, 'quantity') === 0) &&
1053
+ var _a;
1054
+ if ((!input.lines || input.lines.length === 0 || (0, shared_utils_1.summate)(input.lines, 'quantity') === 0) &&
1115
1055
  input.shipping === 0) {
1116
1056
  return new generated_graphql_admin_errors_1.NothingToRefundError();
1117
1057
  }
1118
- const ordersAndItems = await this.getOrdersAndItemsFromLines(ctx, input.lines, i => { var _a; return ((_a = i.refund) === null || _a === void 0 ? void 0 : _a.state) !== 'Settled'; });
1119
- if (!ordersAndItems) {
1120
- return new generated_graphql_admin_errors_1.QuantityTooGreatError();
1121
- }
1122
- const { orders, items } = ordersAndItems;
1058
+ const orders = await (0, order_utils_1.getOrdersFromLines)(ctx, this.connection, (_a = input.lines) !== null && _a !== void 0 ? _a : []);
1123
1059
  if (1 < orders.length) {
1124
1060
  return new generated_graphql_admin_errors_1.MultipleOrderError();
1125
1061
  }
1126
1062
  const payment = await this.connection.getEntityOrThrow(ctx, payment_entity_1.Payment, input.paymentId, {
1127
1063
  relations: ['order'],
1128
1064
  });
1129
- if (orders && orders.length && !utils_1.idsAreEqual(payment.order.id, orders[0].id)) {
1065
+ if (orders && orders.length && !(0, utils_1.idsAreEqual)(payment.order.id, orders[0].id)) {
1130
1066
  return new generated_graphql_admin_errors_1.PaymentOrderMismatchError();
1131
1067
  }
1132
1068
  const order = payment.order;
1133
1069
  if (order.state === 'AddingItems' ||
1134
1070
  order.state === 'ArrangingPayment' ||
1135
1071
  order.state === 'PaymentAuthorized') {
1136
- return new generated_graphql_admin_errors_1.RefundOrderStateError(order.state);
1072
+ return new generated_graphql_admin_errors_1.RefundOrderStateError({ orderState: order.state });
1137
1073
  }
1138
- const alreadyRefunded = items.find(i => { var _a, _b; return ((_a = i.refund) === null || _a === void 0 ? void 0 : _a.state) === 'Pending' || ((_b = i.refund) === null || _b === void 0 ? void 0 : _b.state) === 'Settled'; });
1139
- if (alreadyRefunded) {
1140
- return new generated_graphql_admin_errors_1.AlreadyRefundedError(alreadyRefunded.refundId);
1141
- }
1142
- return await this.paymentService.createRefund(ctx, input, order, items, payment);
1074
+ return await this.paymentService.createRefund(ctx, input, order, payment);
1143
1075
  }
1144
1076
  /**
1145
1077
  * @description
@@ -1152,9 +1084,10 @@ let OrderService = class OrderService {
1152
1084
  refund.transactionId = input.transactionId;
1153
1085
  const fromState = refund.state;
1154
1086
  const toState = 'Settled';
1155
- await this.refundStateMachine.transition(ctx, refund.payment.order, refund, toState);
1087
+ const { finalize } = await this.refundStateMachine.transition(ctx, refund.payment.order, refund, toState);
1156
1088
  await this.connection.getRepository(ctx, refund_entity_1.Refund).save(refund);
1157
- this.eventBus.publish(new index_5.RefundStateTransitionEvent(fromState, toState, ctx, refund, refund.payment.order));
1089
+ await finalize();
1090
+ this.eventBus.publish(new index_1.RefundStateTransitionEvent(fromState, toState, ctx, refund, refund.payment.order));
1158
1091
  return refund;
1159
1092
  }
1160
1093
  /**
@@ -1167,20 +1100,16 @@ let OrderService = class OrderService {
1167
1100
  await this.connection.getRepository(ctx, order_entity_1.Order).save(order, { reload: false });
1168
1101
  // Check that any applied couponCodes are still valid now that
1169
1102
  // we know the Customer.
1103
+ let updatedOrder = order;
1170
1104
  if (order.couponCodes) {
1171
- let codesRemoved = false;
1172
1105
  for (const couponCode of order.couponCodes.slice()) {
1173
1106
  const validationResult = await this.promotionService.validateCouponCode(ctx, couponCode, customer.id);
1174
- if (error_result_1.isGraphQlErrorResult(validationResult)) {
1175
- order.couponCodes = order.couponCodes.filter(c => c !== couponCode);
1176
- codesRemoved = true;
1107
+ if ((0, error_result_1.isGraphQlErrorResult)(validationResult)) {
1108
+ updatedOrder = await this.removeCouponCode(ctx, orderId, couponCode);
1177
1109
  }
1178
1110
  }
1179
- if (codesRemoved) {
1180
- return this.applyPriceAdjustments(ctx, order);
1181
- }
1182
1111
  }
1183
- return order;
1112
+ return updatedOrder;
1184
1113
  }
1185
1114
  /**
1186
1115
  * @description
@@ -1233,15 +1162,15 @@ let OrderService = class OrderService {
1233
1162
  ? orderOrId
1234
1163
  : await this.connection
1235
1164
  .getRepository(ctx, order_entity_1.Order)
1236
- .findOneOrFail(orderOrId, { relations: ['lines', 'shippingLines'] });
1165
+ .findOneOrFail({ where: { id: orderOrId }, relations: ['lines', 'shippingLines'] });
1237
1166
  // If there is a Session referencing the Order to be deleted, we must first remove that
1238
1167
  // reference in order to avoid a foreign key error. See https://github.com/vendure-ecommerce/vendure/issues/1454
1239
1168
  const sessions = await this.connection
1240
- .getRepository(ctx, index_1.Session)
1169
+ .getRepository(ctx, session_entity_1.Session)
1241
1170
  .find({ where: { activeOrderId: orderToDelete.id } });
1242
1171
  if (sessions.length) {
1243
1172
  await this.connection
1244
- .getRepository(ctx, index_1.Session)
1173
+ .getRepository(ctx, session_entity_1.Session)
1245
1174
  .update(sessions.map(s => s.id), { activeOrder: null });
1246
1175
  }
1247
1176
  // TODO: v2 - Will not be needed after adding `{ onDelete: 'CASCADE' }` constraint to ShippingLine.order
@@ -1263,7 +1192,7 @@ let OrderService = class OrderService {
1263
1192
  // so we do not want to merge at all. See https://github.com/vendure-ecommerce/vendure/issues/263
1264
1193
  return existingOrder;
1265
1194
  }
1266
- const mergeResult = await this.orderMerger.merge(ctx, guestOrder, existingOrder);
1195
+ const mergeResult = this.orderMerger.merge(ctx, guestOrder, existingOrder);
1267
1196
  const { orderToDelete, linesToInsert, linesToDelete, linesToModify } = mergeResult;
1268
1197
  let { order } = mergeResult;
1269
1198
  if (orderToDelete) {
@@ -1273,7 +1202,7 @@ let OrderService = class OrderService {
1273
1202
  const orderId = order.id;
1274
1203
  for (const line of linesToInsert) {
1275
1204
  const result = await this.addItemToOrder(ctx, orderId, line.productVariantId, line.quantity, line.customFields);
1276
- if (!error_result_1.isGraphQlErrorResult(result)) {
1205
+ if (!(0, error_result_1.isGraphQlErrorResult)(result)) {
1277
1206
  order = result;
1278
1207
  }
1279
1208
  }
@@ -1282,7 +1211,7 @@ let OrderService = class OrderService {
1282
1211
  const orderId = order.id;
1283
1212
  for (const line of linesToModify) {
1284
1213
  const result = await this.adjustOrderLine(ctx, orderId, line.orderLineId, line.quantity, line.customFields);
1285
- if (!error_result_1.isGraphQlErrorResult(result)) {
1214
+ if (!(0, error_result_1.isGraphQlErrorResult)(result)) {
1286
1215
  order = result;
1287
1216
  }
1288
1217
  }
@@ -1291,7 +1220,7 @@ let OrderService = class OrderService {
1291
1220
  const orderId = order.id;
1292
1221
  for (const line of linesToDelete) {
1293
1222
  const result = await this.removeItemFromOrder(ctx, orderId, line.orderLineId);
1294
- if (!error_result_1.isGraphQlErrorResult(result)) {
1223
+ if (!(0, error_result_1.isGraphQlErrorResult)(result)) {
1295
1224
  order = result;
1296
1225
  }
1297
1226
  }
@@ -1311,9 +1240,9 @@ let OrderService = class OrderService {
1311
1240
  return order;
1312
1241
  }
1313
1242
  getOrderLineOrThrow(order, orderLineId) {
1314
- const orderLine = order.lines.find(line => utils_1.idsAreEqual(line.id, orderLineId));
1243
+ const orderLine = order.lines.find(line => (0, utils_1.idsAreEqual)(line.id, orderLineId));
1315
1244
  if (!orderLine) {
1316
- throw new errors_1.UserInputError(`error.order-does-not-contain-line-with-id`, { id: orderLineId });
1245
+ throw new errors_1.UserInputError('error.order-does-not-contain-line-with-id', { id: orderLineId });
1317
1246
  }
1318
1247
  return orderLine;
1319
1248
  }
@@ -1338,10 +1267,10 @@ let OrderService = class OrderService {
1338
1267
  * maximum limit specified in the config.
1339
1268
  */
1340
1269
  assertNotOverOrderItemsLimit(order, quantityToAdd) {
1341
- const currentItemsCount = shared_utils_1.summate(order.lines, 'quantity');
1270
+ const currentItemsCount = (0, shared_utils_1.summate)(order.lines, 'quantity');
1342
1271
  const { orderItemsLimit } = this.configService.orderOptions;
1343
1272
  if (orderItemsLimit < currentItemsCount + quantityToAdd) {
1344
- return new generated_graphql_shop_errors_1.OrderLimitError(orderItemsLimit);
1273
+ return new generated_graphql_shop_errors_1.OrderLimitError({ maxItems: orderItemsLimit });
1345
1274
  }
1346
1275
  }
1347
1276
  /**
@@ -1352,7 +1281,7 @@ let OrderService = class OrderService {
1352
1281
  const currentQuantity = (orderLine === null || orderLine === void 0 ? void 0 : orderLine.quantity) || 0;
1353
1282
  const { orderLineItemsLimit } = this.configService.orderOptions;
1354
1283
  if (orderLineItemsLimit < currentQuantity + quantityToAdd) {
1355
- return new generated_graphql_shop_errors_1.OrderLimitError(orderLineItemsLimit);
1284
+ return new generated_graphql_shop_errors_1.OrderLimitError({ maxItems: orderLineItemsLimit });
1356
1285
  }
1357
1286
  }
1358
1287
  /**
@@ -1361,7 +1290,7 @@ let OrderService = class OrderService {
1361
1290
  * then all of those OrderLines will have their prices re-calculated using the configured {@link OrderItemPriceCalculationStrategy}.
1362
1291
  */
1363
1292
  async applyPriceAdjustments(ctx, order, updatedOrderLines) {
1364
- var _a, _b;
1293
+ var _a;
1365
1294
  const promotions = await this.promotionService.getActivePromotionsInChannel(ctx);
1366
1295
  const activePromotionsPre = await this.promotionService.getActivePromotionsOnOrder(ctx, order.id);
1367
1296
  if (updatedOrderLines === null || updatedOrderLines === void 0 ? void 0 : updatedOrderLines.length) {
@@ -1369,123 +1298,32 @@ let OrderService = class OrderService {
1369
1298
  for (const updatedOrderLine of updatedOrderLines) {
1370
1299
  const variant = await this.productVariantService.applyChannelPriceAndTax(updatedOrderLine.productVariant, ctx, order);
1371
1300
  let priceResult = await orderItemPriceCalculationStrategy.calculateUnitPrice(ctx, variant, updatedOrderLine.customFields || {}, order);
1372
- const initialListPrice = (_b = (_a = updatedOrderLine.items.find(i => i.initialListPrice != null)) === null || _a === void 0 ? void 0 : _a.initialListPrice) !== null && _b !== void 0 ? _b : priceResult.price;
1301
+ const initialListPrice = (_a = updatedOrderLine.initialListPrice) !== null && _a !== void 0 ? _a : priceResult.price;
1373
1302
  if (initialListPrice !== priceResult.price) {
1374
- priceResult = await changedPriceHandlingStrategy.handlePriceChange(ctx, priceResult, updatedOrderLine.items, order);
1303
+ priceResult = await changedPriceHandlingStrategy.handlePriceChange(ctx, priceResult, updatedOrderLine, order);
1375
1304
  }
1376
- for (const item of updatedOrderLine.items) {
1377
- if (item.initialListPrice == null) {
1378
- item.initialListPrice = initialListPrice;
1379
- }
1380
- item.listPrice = priceResult.price;
1381
- item.listPriceIncludesTax = priceResult.priceIncludesTax;
1305
+ if (updatedOrderLine.initialListPrice == null) {
1306
+ updatedOrderLine.initialListPrice = initialListPrice;
1382
1307
  }
1308
+ updatedOrderLine.listPrice = priceResult.price;
1309
+ updatedOrderLine.listPriceIncludesTax = priceResult.priceIncludesTax;
1383
1310
  }
1384
1311
  }
1385
- const updatedItems = await this.orderCalculator.applyPriceAdjustments(ctx, order, promotions, updatedOrderLines !== null && updatedOrderLines !== void 0 ? updatedOrderLines : []);
1386
- const updateFields = [
1387
- 'initialListPrice',
1388
- 'listPrice',
1389
- 'listPriceIncludesTax',
1390
- 'adjustments',
1391
- 'taxLines',
1392
- ];
1312
+ const updatedOrder = await this.orderCalculator.applyPriceAdjustments(ctx, order, promotions, updatedOrderLines !== null && updatedOrderLines !== void 0 ? updatedOrderLines : []);
1393
1313
  await this.connection
1394
- .getRepository(ctx, order_item_entity_1.OrderItem)
1395
- .createQueryBuilder()
1396
- .insert()
1397
- .into(order_item_entity_1.OrderItem, [...updateFields, 'id', 'lineId'])
1398
- .values(updatedItems)
1399
- .orUpdate({
1400
- conflict_target: ['id'],
1401
- overwrite: updateFields,
1402
- })
1403
- .updateEntity(false)
1404
- .execute();
1405
- await this.connection.getRepository(ctx, order_entity_1.Order).save(order, { reload: false });
1314
+ .getRepository(ctx, order_entity_1.Order)
1315
+ // Explicitly omit the shippingAddress and billingAddress properties to avoid
1316
+ // a race condition where changing one or the other in parallel can
1317
+ // overwrite the other's changes.
1318
+ .save((0, omit_1.omit)(updatedOrder, ['shippingAddress', 'billingAddress']), { reload: false });
1319
+ await this.connection.getRepository(ctx, order_line_entity_1.OrderLine).save(updatedOrder.lines, { reload: false });
1406
1320
  await this.connection.getRepository(ctx, shipping_line_entity_1.ShippingLine).save(order.shippingLines, { reload: false });
1407
1321
  await this.promotionService.runPromotionSideEffects(ctx, order, activePromotionsPre);
1408
- return utils_1.assertFound(this.findOne(ctx, order.id));
1409
- }
1410
- async getOrderWithFulfillments(ctx, orderId) {
1411
- return await this.connection.getEntityOrThrow(ctx, order_entity_1.Order, orderId, {
1412
- relations: ['lines', 'lines.items', 'lines.items.fulfillments'],
1413
- });
1414
- }
1415
- async getOrdersAndItemsFromLines(ctx, orderLinesInput, itemMatcher) {
1416
- const orders = new Map();
1417
- const items = new Map();
1418
- const lines = await this.connection.getRepository(ctx, order_line_entity_1.OrderLine).findByIds(orderLinesInput.map(l => l.orderLineId), {
1419
- relations: ['order', 'items', 'items.fulfillments', 'order.channels', 'items.refund'],
1420
- order: { id: 'ASC' },
1421
- });
1422
- for (const line of lines) {
1423
- const inputLine = orderLinesInput.find(l => utils_1.idsAreEqual(l.orderLineId, line.id));
1424
- if (!inputLine) {
1425
- continue;
1426
- }
1427
- const order = line.order;
1428
- if (!order.channels.some(channel => channel.id === ctx.channelId)) {
1429
- throw new errors_1.EntityNotFoundError('Order', order.id);
1430
- }
1431
- if (!orders.has(order.id)) {
1432
- orders.set(order.id, order);
1433
- }
1434
- const matchingItems = line.items.sort((a, b) => (a.id < b.id ? -1 : 1)).filter(itemMatcher);
1435
- if (matchingItems.length < inputLine.quantity) {
1436
- return false;
1437
- }
1438
- matchingItems
1439
- .slice(0)
1440
- .sort((a, b) =>
1441
- // sort the OrderItems so that those without Fulfillments come first, as
1442
- // it makes sense to cancel these prior to cancelling fulfilled items.
1443
- !a.fulfillment && b.fulfillment ? -1 : a.fulfillment && !b.fulfillment ? 1 : 0)
1444
- .slice(0, inputLine.quantity)
1445
- .forEach(item => {
1446
- items.set(item.id, item);
1447
- });
1448
- }
1449
- return {
1450
- orders: Array.from(orders.values()),
1451
- items: Array.from(items.values()),
1452
- };
1453
- }
1454
- mergePaymentMetadata(m1, m2) {
1455
- if (!m2) {
1456
- return m1;
1457
- }
1458
- const merged = Object.assign(Object.assign({}, m1), m2);
1459
- if (m1.public && m1.public) {
1460
- merged.public = Object.assign(Object.assign({}, m1.public), m2.public);
1461
- }
1462
- return merged;
1463
- }
1464
- async groupOrderItemsIntoLines(ctx, orderItems) {
1465
- const orderLineIdQuantityMap = new Map();
1466
- for (const item of orderItems) {
1467
- const quantity = orderLineIdQuantityMap.get(item.lineId);
1468
- if (quantity == null) {
1469
- orderLineIdQuantityMap.set(item.lineId, 1);
1470
- }
1471
- else {
1472
- orderLineIdQuantityMap.set(item.lineId, quantity + 1);
1473
- }
1474
- }
1475
- const orderLines = await this.connection
1476
- .getRepository(ctx, order_line_entity_1.OrderLine)
1477
- .findByIds([...orderLineIdQuantityMap.keys()], {
1478
- relations: ['productVariant'],
1479
- });
1480
- return orderLines.map(orderLine => ({
1481
- orderLine,
1482
- // tslint:disable-next-line:no-non-null-assertion
1483
- quantity: orderLineIdQuantityMap.get(orderLine.id),
1484
- }));
1322
+ return (0, utils_1.assertFound)(this.findOne(ctx, order.id));
1485
1323
  }
1486
1324
  };
1487
1325
  OrderService = __decorate([
1488
- common_1.Injectable(),
1326
+ (0, common_1.Injectable)(),
1489
1327
  __metadata("design:paramtypes", [transactional_connection_1.TransactionalConnection,
1490
1328
  config_service_1.ConfigService,
1491
1329
  product_variant_service_1.ProductVariantService,
@@ -1509,7 +1347,8 @@ OrderService = __decorate([
1509
1347
  order_modifier_1.OrderModifier,
1510
1348
  custom_field_relation_service_1.CustomFieldRelationService,
1511
1349
  request_context_cache_service_1.RequestContextCacheService,
1512
- translator_service_1.TranslatorService])
1350
+ translator_service_1.TranslatorService,
1351
+ stock_level_service_1.StockLevelService])
1513
1352
  ], OrderService);
1514
1353
  exports.OrderService = OrderService;
1515
1354
  //# sourceMappingURL=order.service.js.map