@unchainedshop/core-orders 3.0.0-alpha7 → 3.0.0-rc2

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 (204) hide show
  1. package/lib/db/OrderDeliveriesCollection.d.ts +21 -2
  2. package/lib/db/OrderDeliveriesCollection.d.ts.map +1 -1
  3. package/lib/db/OrderDeliveriesCollection.js +6 -0
  4. package/lib/db/OrderDeliveriesCollection.js.map +1 -1
  5. package/lib/db/OrderDiscountsCollection.d.ts +16 -2
  6. package/lib/db/OrderDiscountsCollection.d.ts.map +1 -1
  7. package/lib/db/OrderDiscountsCollection.js +5 -0
  8. package/lib/db/OrderDiscountsCollection.js.map +1 -1
  9. package/lib/db/OrderPaymentsCollection.d.ts +22 -2
  10. package/lib/db/OrderPaymentsCollection.d.ts.map +1 -1
  11. package/lib/db/OrderPaymentsCollection.js +6 -0
  12. package/lib/db/OrderPaymentsCollection.js.map +1 -1
  13. package/lib/db/OrderPositionsCollection.d.ts +22 -2
  14. package/lib/db/OrderPositionsCollection.d.ts.map +1 -1
  15. package/lib/db/OrderPositionsCollection.js.map +1 -1
  16. package/lib/db/OrdersCollection.d.ts +33 -2
  17. package/lib/db/OrdersCollection.d.ts.map +1 -1
  18. package/lib/db/OrdersCollection.js +8 -1
  19. package/lib/db/OrdersCollection.js.map +1 -1
  20. package/lib/director/OrderDiscountAdapter.d.ts +2 -2
  21. package/lib/director/OrderDiscountAdapter.d.ts.map +1 -1
  22. package/lib/director/OrderDiscountAdapter.js.map +1 -1
  23. package/lib/director/OrderDiscountDirector.d.ts +1 -1
  24. package/lib/director/OrderDiscountDirector.d.ts.map +1 -1
  25. package/lib/director/OrderDiscountDirector.js.map +1 -1
  26. package/lib/director/OrderPricingAdapter.d.ts +3 -3
  27. package/lib/director/OrderPricingAdapter.d.ts.map +1 -1
  28. package/lib/director/OrderPricingAdapter.js.map +1 -1
  29. package/lib/director/OrderPricingDirector.d.ts +1 -1
  30. package/lib/director/OrderPricingDirector.d.ts.map +1 -1
  31. package/lib/module/buildFindSelector.d.ts +5 -0
  32. package/lib/module/buildFindSelector.d.ts.map +1 -0
  33. package/lib/module/buildFindSelector.js +18 -0
  34. package/lib/module/buildFindSelector.js.map +1 -0
  35. package/lib/module/configureOrderDeliveriesModule.d.ts +14 -27
  36. package/lib/module/configureOrderDeliveriesModule.d.ts.map +1 -1
  37. package/lib/module/configureOrderDeliveriesModule.js +8 -69
  38. package/lib/module/configureOrderDeliveriesModule.js.map +1 -1
  39. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts +24 -0
  40. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts.map +1 -0
  41. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js +101 -0
  42. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js.map +1 -0
  43. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts +36 -0
  44. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts.map +1 -0
  45. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js +162 -0
  46. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js.map +1 -0
  47. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts +23 -0
  48. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts.map +1 -0
  49. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js +97 -0
  50. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js.map +1 -0
  51. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts +37 -0
  52. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts.map +1 -0
  53. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js +166 -0
  54. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js.map +1 -0
  55. package/lib/module/configureOrderDiscountsModule.d.ts +17 -18
  56. package/lib/module/configureOrderDiscountsModule.d.ts.map +1 -1
  57. package/lib/module/configureOrderDiscountsModule.js +34 -143
  58. package/lib/module/configureOrderDiscountsModule.js.map +1 -1
  59. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts +26 -0
  60. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts.map +1 -0
  61. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js +69 -0
  62. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js.map +1 -0
  63. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts +26 -0
  64. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts.map +1 -0
  65. package/lib/module/configureOrderDiscountsModule_BASE_55046.js +178 -0
  66. package/lib/module/configureOrderDiscountsModule_BASE_55046.js.map +1 -0
  67. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts +25 -0
  68. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts.map +1 -0
  69. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js +65 -0
  70. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js.map +1 -0
  71. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts +27 -0
  72. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts.map +1 -0
  73. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js +182 -0
  74. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js.map +1 -0
  75. package/lib/module/configureOrderPaymentsModule.d.ts +17 -37
  76. package/lib/module/configureOrderPaymentsModule.d.ts.map +1 -1
  77. package/lib/module/configureOrderPaymentsModule.js +16 -124
  78. package/lib/module/configureOrderPaymentsModule.js.map +1 -1
  79. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts +32 -0
  80. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts.map +1 -0
  81. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js +135 -0
  82. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js.map +1 -0
  83. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts +32 -0
  84. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts.map +1 -0
  85. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js +135 -0
  86. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js.map +1 -0
  87. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts +51 -0
  88. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts.map +1 -0
  89. package/lib/module/configureOrderPaymentsModule_BASE_55464.js +243 -0
  90. package/lib/module/configureOrderPaymentsModule_BASE_55464.js.map +1 -0
  91. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts +51 -0
  92. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts.map +1 -0
  93. package/lib/module/configureOrderPaymentsModule_BASE_55877.js +243 -0
  94. package/lib/module/configureOrderPaymentsModule_BASE_55877.js.map +1 -0
  95. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts +31 -0
  96. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts.map +1 -0
  97. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js +131 -0
  98. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js.map +1 -0
  99. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts +31 -0
  100. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts.map +1 -0
  101. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js +131 -0
  102. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js.map +1 -0
  103. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts +52 -0
  104. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts.map +1 -0
  105. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js +247 -0
  106. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js.map +1 -0
  107. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts +52 -0
  108. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts.map +1 -0
  109. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js +247 -0
  110. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js.map +1 -0
  111. package/lib/module/configureOrderPositionsModule.d.ts +22 -41
  112. package/lib/module/configureOrderPositionsModule.d.ts.map +1 -1
  113. package/lib/module/configureOrderPositionsModule.js +22 -85
  114. package/lib/module/configureOrderPositionsModule.js.map +1 -1
  115. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts +44 -0
  116. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts.map +1 -0
  117. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js +138 -0
  118. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js.map +1 -0
  119. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts +60 -0
  120. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts.map +1 -0
  121. package/lib/module/configureOrderPositionsModule_BASE_56197.js +201 -0
  122. package/lib/module/configureOrderPositionsModule_BASE_56197.js.map +1 -0
  123. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts +43 -0
  124. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts.map +1 -0
  125. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js +134 -0
  126. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js.map +1 -0
  127. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts +61 -0
  128. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts.map +1 -0
  129. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js +205 -0
  130. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js.map +1 -0
  131. package/lib/module/configureOrdersModule-mutations.d.ts +5 -11
  132. package/lib/module/configureOrdersModule-mutations.d.ts.map +1 -1
  133. package/lib/module/configureOrdersModule-mutations.js +11 -50
  134. package/lib/module/configureOrdersModule-mutations.js.map +1 -1
  135. package/lib/module/configureOrdersModule-processing.d.ts +4 -8
  136. package/lib/module/configureOrdersModule-processing.d.ts.map +1 -1
  137. package/lib/module/configureOrdersModule-processing.js +3 -1
  138. package/lib/module/configureOrdersModule-processing.js.map +1 -1
  139. package/lib/module/configureOrdersModule-queries.d.ts +18 -6
  140. package/lib/module/configureOrdersModule-queries.d.ts.map +1 -1
  141. package/lib/module/configureOrdersModule-queries.js +35 -22
  142. package/lib/module/configureOrdersModule-queries.js.map +1 -1
  143. package/lib/module/configureOrdersModule-transformations.d.ts +2 -3
  144. package/lib/module/configureOrdersModule-transformations.d.ts.map +1 -1
  145. package/lib/module/configureOrdersModule-transformations.js +3 -3
  146. package/lib/module/configureOrdersModule-transformations.js.map +1 -1
  147. package/lib/module/configureOrdersModule.d.ts +11 -8
  148. package/lib/module/configureOrdersModule.d.ts.map +1 -1
  149. package/lib/module/configureOrdersModule.js +133 -154
  150. package/lib/module/configureOrdersModule.js.map +1 -1
  151. package/lib/orders-index.d.ts +11 -8
  152. package/lib/orders-index.d.ts.map +1 -1
  153. package/lib/orders-index.js +11 -8
  154. package/lib/orders-index.js.map +1 -1
  155. package/lib/orders-settings.d.ts +4 -8
  156. package/lib/orders-settings.d.ts.map +1 -1
  157. package/lib/orders-settings.js.map +1 -1
  158. package/lib/types.d.ts +7 -22
  159. package/lib/types.d.ts.map +1 -1
  160. package/lib/types.js +0 -5
  161. package/lib/types.js.map +1 -1
  162. package/package.json +9 -12
  163. package/src/db/OrderDeliveriesCollection.ts +25 -2
  164. package/src/db/OrderDiscountsCollection.ts +18 -2
  165. package/src/db/OrderPaymentsCollection.ts +26 -2
  166. package/src/db/OrderPositionsCollection.ts +21 -2
  167. package/src/db/OrdersCollection.ts +44 -2
  168. package/src/module/buildFindSelector.test.ts +8 -8
  169. package/src/module/buildFindSelector.ts +24 -0
  170. package/src/module/configureOrderDeliveriesModule.ts +29 -172
  171. package/src/module/configureOrderDiscountsModule.ts +46 -213
  172. package/src/module/configureOrderPaymentsModule.ts +58 -266
  173. package/src/module/configureOrderPositionsModule.ts +57 -208
  174. package/src/module/configureOrdersModule-mutations.ts +13 -85
  175. package/src/module/configureOrdersModule-queries.ts +61 -29
  176. package/src/module/configureOrdersModule.ts +180 -264
  177. package/src/orders-index.ts +11 -10
  178. package/src/orders-settings.ts +5 -7
  179. package/tsconfig.json +5 -7
  180. package/lib/service/migrateOrderCartService.d.ts +0 -10
  181. package/lib/service/migrateOrderCartService.d.ts.map +0 -1
  182. package/lib/service/migrateOrderCartService.js +0 -32
  183. package/lib/service/migrateOrderCartService.js.map +0 -1
  184. package/lib/service/nextUserCartService.d.ts +0 -11
  185. package/lib/service/nextUserCartService.d.ts.map +0 -1
  186. package/lib/service/nextUserCartService.js +0 -34
  187. package/lib/service/nextUserCartService.js.map +0 -1
  188. package/lib/service/orderServices.d.ts +0 -8
  189. package/lib/service/orderServices.d.ts.map +0 -1
  190. package/lib/service/orderServices.js +0 -7
  191. package/lib/service/orderServices.js.map +0 -1
  192. package/src/db/OrderDiscountTrigger.ts +0 -4
  193. package/src/director/OrderDiscountAdapter.ts +0 -8
  194. package/src/director/OrderDiscountConfiguration.ts +0 -5
  195. package/src/director/OrderDiscountDirector.ts +0 -5
  196. package/src/director/OrderPricingAdapter.ts +0 -61
  197. package/src/director/OrderPricingDirector.ts +0 -72
  198. package/src/director/OrderPricingSheet.ts +0 -146
  199. package/src/module/configureOrdersModule-processing.ts +0 -508
  200. package/src/module/configureOrdersModule-transformations.ts +0 -171
  201. package/src/service/migrateOrderCartService.ts +0 -53
  202. package/src/service/nextUserCartService.ts +0 -54
  203. package/src/service/orderServices.ts +0 -12
  204. package/src/types.ts +0 -129
@@ -1,16 +1,10 @@
1
- import { UnchainedCore } from '@unchainedshop/core';
2
- import { OrderDelivery } from '@unchainedshop/core-orders';
3
- import { OrderPayment } from '@unchainedshop/core-orders';
4
- import { generateDbFilterById, ModuleInput } from '@unchainedshop/mongodb';
1
+ import { generateDbFilterById, ModuleInput, mongodb } from '@unchainedshop/mongodb';
5
2
  import { createRequire } from 'node:module';
6
3
  import { OrderDeliveriesCollection } from '../db/OrderDeliveriesCollection.js';
7
4
  import { OrderDiscountsCollection } from '../db/OrderDiscountsCollection.js';
8
- import { OrderDiscountTrigger } from '../db/OrderDiscountTrigger.js';
9
5
  import { OrderPaymentsCollection } from '../db/OrderPaymentsCollection.js';
10
6
  import { OrderPositionsCollection } from '../db/OrderPositionsCollection.js';
11
- import { OrdersCollection } from '../db/OrdersCollection.js';
12
- import { OrderDiscountDirector } from '../director/OrderDiscountDirector.js';
13
- import { OrderPricingDirector } from '../director/OrderPricingDirector.js';
7
+ import { OrdersCollection, Order, OrderStatus } from '../db/OrdersCollection.js';
14
8
  import { ordersSettings, OrdersSettingsOptions } from '../orders-settings.js';
15
9
  import {
16
10
  configureOrderDeliveriesModule,
@@ -20,37 +14,44 @@ import { configureOrderDiscountsModule, OrderDiscountsModule } from './configure
20
14
  import { configureOrderPaymentsModule, OrderPaymentsModule } from './configureOrderPaymentsModule.js';
21
15
  import { configureOrderPositionsModule, OrderPositionsModule } from './configureOrderPositionsModule.js';
22
16
  import { configureOrderModuleMutations, OrderMutations } from './configureOrdersModule-mutations.js';
23
- import { configureOrderModuleProcessing, OrderProcessing } from './configureOrdersModule-processing.js';
24
17
  import { configureOrdersModuleQueries, OrderQueries } from './configureOrdersModule-queries.js';
25
- import {
26
- configureOrderModuleTransformations,
27
- OrderTransformations,
28
- } from './configureOrdersModule-transformations.js';
29
- import { Order, OrderPosition } from '../types.js';
18
+
19
+ import { emit, registerEvents } from '@unchainedshop/events';
30
20
 
31
21
  export type OrdersModule = OrderQueries &
32
- OrderTransformations &
33
- OrderProcessing &
34
22
  OrderMutations & {
35
- // Order context recalculations
36
- initProviders: (order: Order, unchainedAPI: UnchainedCore) => Promise<Order>;
37
- updateCalculation: (orderId: string, unchainedAPI: UnchainedCore) => Promise<Order>;
38
- invalidateProviders: (unchainedAPI: UnchainedCore, maxAgeDays: number) => Promise<void>;
39
-
40
23
  // Sub entities
41
24
  deliveries: OrderDeliveriesModule;
42
25
  discounts: OrderDiscountsModule;
43
26
  positions: OrderPositionsModule;
44
27
  payments: OrderPaymentsModule;
28
+
29
+ updateStatus: (orderId: string, params: { status: OrderStatus; info?: string }) => Promise<Order>;
30
+ acquireLock: (
31
+ orderId: string,
32
+ identifier: string,
33
+ timeout?: number,
34
+ ) => Promise<{ release: () => void }>;
35
+ setDeliveryProvider: (orderId: string, deliveryProviderId: string) => Promise<Order>;
36
+ setPaymentProvider: (orderId: string, paymentProviderId: string) => Promise<Order>;
45
37
  };
46
38
 
47
39
  const require = createRequire(import.meta.url);
48
40
  const { Locker, MongoAdapter } = require('@kontsedal/locco');
49
41
 
42
+ const ORDER_EVENTS: string[] = [
43
+ 'ORDER_CHECKOUT',
44
+ 'ORDER_CONFIRMED',
45
+ 'ORDER_REJECTED',
46
+ 'ORDER_FULLFILLED',
47
+ ];
48
+
50
49
  export const configureOrdersModule = async ({
51
50
  db,
52
51
  options: orderOptions = {},
53
52
  }: ModuleInput<OrdersSettingsOptions>): Promise<OrdersModule> => {
53
+ registerEvents(ORDER_EVENTS);
54
+
54
55
  ordersSettings.configureSettings(orderOptions);
55
56
 
56
57
  const Orders = await OrdersCollection(db);
@@ -69,246 +70,10 @@ export const configureOrdersModule = async ({
69
70
  retrySettings: { retryDelay: 200, retryTimes: 10 },
70
71
  });
71
72
 
72
- const findOrderPositions = async (order: Order) =>
73
- OrderPositions.find(
74
- {
75
- orderId: order._id,
76
- quantity: { $gt: 0 },
77
- },
78
- {},
79
- ).toArray();
80
-
81
- const findOrderDelivery = async (order: Order) =>
82
- OrderDeliveries.findOne(generateDbFilterById(order.deliveryId), {});
83
-
84
- const findOrderPayment = async (order: Order) =>
85
- OrderPayments.findOne(generateDbFilterById(order.paymentId), {});
86
-
87
- const updateDiscounts = async (order: Order, unchainedAPI: UnchainedCore) => {
88
- const { modules } = unchainedAPI;
89
-
90
- // 1. go through existing order-discounts and check if discount still valid,
91
- // those who are not valid anymore should get removed
92
- const discounts = await modules.orders.discounts.findOrderDiscounts({
93
- orderId: order._id,
94
- });
95
-
96
- await Promise.all(
97
- discounts.map(async (discount) => {
98
- const isValid = await modules.orders.discounts.isValid(discount, unchainedAPI);
99
-
100
- if (!isValid) {
101
- await modules.orders.discounts.delete(discount._id, unchainedAPI);
102
- }
103
- }),
104
- );
105
-
106
- // 2. run auto-system discount
107
- const cleanedDiscounts = await modules.orders.discounts.findOrderDiscounts({
108
- orderId: order._id,
109
- });
110
-
111
- const currentDiscountKeys = cleanedDiscounts.map(({ discountKey }) => discountKey);
112
-
113
- const director = await OrderDiscountDirector.actions({ order, code: null }, unchainedAPI);
114
- const systemDiscounts = await director.findSystemDiscounts();
115
-
116
- await Promise.all(
117
- systemDiscounts
118
- .filter((key) => currentDiscountKeys.indexOf(key) === -1)
119
- .map(async (discountKey) =>
120
- modules.orders.discounts.create({
121
- orderId: order._id,
122
- discountKey,
123
- trigger: OrderDiscountTrigger.SYSTEM,
124
- }),
125
- ),
126
- );
127
- };
128
-
129
- const initProviders = async (order: Order, unchainedAPI: UnchainedCore) => {
130
- const { modules } = unchainedAPI;
131
-
132
- let updatedOrder = order;
133
-
134
- // Init delivery provider
135
- const supportedDeliveryProviders = await modules.delivery.findSupported(
136
- { order: updatedOrder },
137
- unchainedAPI,
138
- );
139
-
140
- const orderDelivery = await modules.orders.deliveries.findDelivery({
141
- orderDeliveryId: updatedOrder.deliveryId,
142
- });
143
- const deliveryProviderId = orderDelivery?.deliveryProviderId;
144
-
145
- const isAlreadyInitializedWithSupportedDeliveryProvider = supportedDeliveryProviders?.some(
146
- (provider) => {
147
- return provider._id === deliveryProviderId;
148
- },
149
- );
150
-
151
- if (supportedDeliveryProviders?.length > 0 && !isAlreadyInitializedWithSupportedDeliveryProvider) {
152
- const defaultOrderDeliveryProvider = await modules.delivery.determineDefault(
153
- supportedDeliveryProviders,
154
- { order: updatedOrder },
155
- unchainedAPI,
156
- );
157
- if (defaultOrderDeliveryProvider) {
158
- updatedOrder = await modules.orders.setDeliveryProvider(
159
- updatedOrder._id,
160
- defaultOrderDeliveryProvider._id,
161
- unchainedAPI,
162
- );
163
- }
164
- }
165
-
166
- // Init payment provider
167
- const supportedPaymentProviders = await modules.payment.paymentProviders.findSupported(
168
- { order: updatedOrder },
169
- unchainedAPI,
170
- );
171
-
172
- const orderPayment = await modules.orders.payments.findOrderPayment({
173
- orderPaymentId: updatedOrder.paymentId,
174
- });
175
- const paymentProviderId = orderPayment?.paymentProviderId;
176
-
177
- const isAlreadyInitializedWithSupportedPaymentProvider = supportedPaymentProviders?.some(
178
- (provider) => {
179
- return provider._id === paymentProviderId;
180
- },
181
- );
182
-
183
- if (supportedPaymentProviders?.length > 0 && !isAlreadyInitializedWithSupportedPaymentProvider) {
184
- const paymentCredentials = await modules.payment.paymentCredentials.findPaymentCredentials(
185
- { userId: updatedOrder.userId, isPreferred: true },
186
- {
187
- sort: {
188
- created: -1,
189
- },
190
- },
191
- );
192
-
193
- const defaultOrderPaymentProvider = await modules.payment.paymentProviders.determineDefault(
194
- supportedPaymentProviders,
195
- { order: updatedOrder, paymentCredentials },
196
- unchainedAPI,
197
- );
198
-
199
- if (defaultOrderPaymentProvider) {
200
- updatedOrder = await modules.orders.setPaymentProvider(
201
- updatedOrder._id,
202
- defaultOrderPaymentProvider._id,
203
- unchainedAPI,
204
- );
205
- }
206
- }
207
- return updatedOrder;
208
- };
209
-
210
- const updateCalculation: OrdersModule['updateCalculation'] = async (orderId, unchainedAPI) => {
211
- const { modules } = unchainedAPI;
212
-
213
- const selector = generateDbFilterById(orderId);
214
- const order = (await Orders.findOne(selector, {})) as Order;
215
-
216
- // Don't recalculate orders, only carts
217
- if (order.status !== null) return order;
218
-
219
- await updateDiscounts(order, unchainedAPI);
220
-
221
- let orderPositions = (await findOrderPositions(order)) as OrderPosition[];
222
- orderPositions = await Promise.all(
223
- orderPositions.map(async (orderPosition) =>
224
- modules.orders.positions.updateCalculation(orderPosition, unchainedAPI),
225
- ),
226
- );
227
-
228
- let orderDelivery = (await findOrderDelivery(order)) as OrderDelivery;
229
- if (orderDelivery) {
230
- orderDelivery = await modules.orders.deliveries.updateCalculation(orderDelivery, unchainedAPI);
231
- }
232
- let orderPayment = (await findOrderPayment(order)) as OrderPayment;
233
- if (orderPayment) {
234
- orderPayment = await modules.orders.payments.updateCalculation(orderPayment, unchainedAPI);
235
- }
236
-
237
- orderPositions = await Promise.all(
238
- orderPositions.map(async (orderPosition) =>
239
- modules.orders.positions.updateScheduling({ order, orderDelivery, orderPosition }, unchainedAPI),
240
- ),
241
- );
242
-
243
- const pricing = await OrderPricingDirector.actions(
244
- { order, orderPositions, orderDelivery, orderPayment },
245
- unchainedAPI,
246
- );
247
-
248
- const calculation = await pricing.calculate();
249
- const updated = new Date();
250
-
251
- await Orders.updateOne(selector, {
252
- $set: {
253
- calculation,
254
- updated,
255
- },
256
- });
257
-
258
- /*
259
- // We have to do initProviders after calculation, only then filterSupportedProviders will work correctly and has access to recent pricing
260
- // initProviders calls updateCalculation anyways recursively when a new payment or delivery provider gets set
261
- // Thus, if for example a discount change leads to a free delivery and free payment due to free items amount, the following happens in the stack:
262
- // 1. create discount
263
- // 2. update calculation -> order pricing updated to items 0
264
- // 3. initProviders with updated order -> filterSupportedProviders -> delivery provider is invalid -> set new delivery provider
265
- // 4. update calculation -> order pricing updated to items 0 and delivery 0
266
- // 5. initProviders with updated order -> filterSupportedProviders -> payment provider is invalid -> set new payment provider
267
- // 6. update calculation -> order pricing updated to items 0, delivery 0, payment 0
268
- // 7. initProviders with updated order -> all providers are valid -> return order
269
- */
270
- return initProviders(
271
- {
272
- ...order,
273
- calculation,
274
- updated,
275
- },
276
- unchainedAPI,
277
- );
278
- };
279
-
280
- const invalidateProviders = async (unchainedAPI, maxAgeDays = 30) => {
281
- const ONE_DAY_IN_MILLISECONDS = 86400000;
282
-
283
- const minValidDate = new Date(new Date().getTime() - maxAgeDays * ONE_DAY_IN_MILLISECONDS);
284
-
285
- const orders = await Orders.find({
286
- status: { $eq: null },
287
- updated: { $gte: minValidDate },
288
- }).toArray();
289
-
290
- await Promise.allSettled(
291
- orders.map(async (order) => {
292
- await updateCalculation(order._id, unchainedAPI);
293
- }),
294
- );
295
- };
296
-
297
73
  const orderQueries = configureOrdersModuleQueries({ Orders });
298
- const orderTransformations = configureOrderModuleTransformations({
299
- Orders,
300
- });
301
- const orderProcessing = configureOrderModuleProcessing({
302
- Orders,
303
- OrderDeliveries,
304
- OrderPayments,
305
- OrderPositions,
306
- locker,
307
- });
74
+
308
75
  const orderMutations = configureOrderModuleMutations({
309
76
  Orders,
310
- OrderDeliveries,
311
- OrderPayments,
312
77
  OrderPositions,
313
78
  });
314
79
 
@@ -328,20 +93,171 @@ export const configureOrdersModule = async ({
328
93
  OrderDeliveries,
329
94
  });
330
95
 
96
+ const findNewOrderNumber = async (order: Order, index = 0) => {
97
+ const newHashID = ordersSettings.orderNumberHashFn(order, index);
98
+ if ((await Orders.countDocuments({ orderNumber: newHashID }, { limit: 1 })) === 0) {
99
+ return newHashID;
100
+ }
101
+ return findNewOrderNumber(order, index + 1);
102
+ };
103
+
331
104
  return {
332
105
  ...orderQueries,
333
- ...orderTransformations,
334
- ...orderProcessing,
335
106
  ...orderMutations,
336
107
 
337
- initProviders,
338
- updateCalculation,
339
- invalidateProviders,
340
-
341
108
  // Subentities
342
109
  deliveries: orderDeliveriesModule,
343
110
  discounts: orderDiscountsModule,
344
111
  positions: orderPositionsModule,
345
112
  payments: orderPaymentsModule,
113
+
114
+ updateStatus: async (orderId, { status, info }) => {
115
+ const selector = generateDbFilterById(orderId);
116
+ const order = await Orders.findOne(selector, {});
117
+
118
+ if (order.status === status) return order;
119
+
120
+ const date = new Date();
121
+ const $set: Partial<Order> = {
122
+ status,
123
+ updated: new Date(),
124
+ };
125
+ switch (status) {
126
+ // explicitly use fallthrough here!
127
+ case OrderStatus.FULLFILLED:
128
+ $set.fullfilled = order.fullfilled || date;
129
+ case OrderStatus.REJECTED: // eslint-disable-line no-fallthrough
130
+ case OrderStatus.CONFIRMED: // eslint-disable-line no-fallthrough
131
+ if (status === OrderStatus.REJECTED) {
132
+ $set.rejected = order.rejected || date;
133
+ } else {
134
+ $set.confirmed = order.confirmed || date;
135
+ }
136
+ case OrderStatus.PENDING: // eslint-disable-line no-fallthrough
137
+ $set.ordered = order.ordered || date;
138
+ $set.orderNumber = order.orderNumber || (await findNewOrderNumber(order));
139
+ break;
140
+ default:
141
+ break;
142
+ }
143
+
144
+ const modifier: mongodb.UpdateFilter<Order> = {
145
+ $set,
146
+ $push: {
147
+ log: {
148
+ date,
149
+ status,
150
+ info,
151
+ },
152
+ },
153
+ };
154
+
155
+ const modificationResult = await Orders.findOneAndUpdate(
156
+ {
157
+ ...selector,
158
+ status: { $ne: status }, // Only update if status is different
159
+ },
160
+ modifier,
161
+ {
162
+ returnDocument: 'after',
163
+ includeResultMetadata: true,
164
+ },
165
+ );
166
+
167
+ if (modificationResult.ok) {
168
+ if (order.status === null) {
169
+ // The first time that an order transitions away from cart is a checkout event
170
+ await emit('ORDER_CHECKOUT', { order: modificationResult.value, oldStatus: order.status });
171
+ }
172
+ switch (status) {
173
+ case OrderStatus.FULLFILLED:
174
+ await emit('ORDER_FULLFILLED', { order: modificationResult.value, oldStatus: order.status });
175
+ break;
176
+ case OrderStatus.REJECTED:
177
+ await emit('ORDER_REJECTED', { order: modificationResult.value, oldStatus: order.status });
178
+ break;
179
+ case OrderStatus.CONFIRMED:
180
+ await emit('ORDER_CONFIRMED', { order: modificationResult.value, oldStatus: order.status });
181
+ break;
182
+ default:
183
+ break;
184
+ }
185
+ }
186
+
187
+ return modificationResult.value || Orders.findOne(selector, {});
188
+ },
189
+
190
+ acquireLock: async (orderId: string, identifier: string, timeout = 5000) => {
191
+ return await locker.lock(`order:${identifier}:${orderId}`, timeout).acquire();
192
+ },
193
+
194
+ setDeliveryProvider: async (orderId, deliveryProviderId) => {
195
+ const delivery = await OrderDeliveries.findOne({
196
+ orderId,
197
+ deliveryProviderId,
198
+ });
199
+ const deliveryId =
200
+ delivery?._id ||
201
+ (
202
+ await orderDeliveriesModule.create({
203
+ calculation: [],
204
+ deliveryProviderId,
205
+ log: [],
206
+ orderId,
207
+ status: null,
208
+ })
209
+ )._id;
210
+
211
+ const order = await Orders.findOneAndUpdate(
212
+ { _id: orderId },
213
+ {
214
+ $set: {
215
+ deliveryId,
216
+ updated: new Date(),
217
+ },
218
+ },
219
+ { returnDocument: 'after' },
220
+ );
221
+
222
+ await emit('ORDER_SET_DELIVERY_PROVIDER', {
223
+ order,
224
+ deliveryProviderId,
225
+ });
226
+
227
+ return order;
228
+ },
229
+
230
+ setPaymentProvider: async (orderId, paymentProviderId) => {
231
+ const payment = await OrderPayments.findOne({
232
+ orderId,
233
+ paymentProviderId,
234
+ });
235
+
236
+ const paymentId =
237
+ payment?._id ||
238
+ (
239
+ await orderPaymentsModule.create({
240
+ calculation: [],
241
+ paymentProviderId,
242
+ log: [],
243
+ orderId,
244
+ status: null,
245
+ })
246
+ )._id;
247
+ const order = await Orders.findOneAndUpdate(
248
+ { _id: orderId },
249
+ {
250
+ $set: { paymentId, updated: new Date() },
251
+ },
252
+ { returnDocument: 'after' },
253
+ );
254
+
255
+ await emit('ORDER_SET_PAYMENT_PROVIDER', {
256
+ order,
257
+ paymentProviderId,
258
+ });
259
+
260
+ return order;
261
+ },
346
262
  };
347
263
  };
@@ -1,12 +1,13 @@
1
- export * from './types.js';
2
1
  export * from './module/configureOrdersModule.js';
3
- export * from './service/orderServices.js';
2
+ export * from './module/configureOrderDeliveriesModule.js';
3
+ export * from './module/configureOrderDiscountsModule.js';
4
+ export * from './module/configureOrderPaymentsModule.js';
5
+ export * from './module/configureOrderPositionsModule.js';
6
+ export * from './module/configureOrdersModule-mutations.js';
7
+ export * from './module/configureOrdersModule-queries.js';
8
+ export * from './db/OrderDeliveriesCollection.js';
9
+ export * from './db/OrderDiscountsCollection.js';
10
+ export * from './db/OrderPaymentsCollection.js';
11
+ export * from './db/OrderPositionsCollection.js';
12
+ export * from './db/OrdersCollection.js';
4
13
  export * from './orders-settings.js';
5
-
6
- export * from './director/OrderDiscountConfiguration.js';
7
- export * from './director/OrderDiscountAdapter.js';
8
- export * from './director/OrderDiscountDirector.js';
9
-
10
- export * from './director/OrderPricingAdapter.js';
11
- export * from './director/OrderPricingDirector.js';
12
- export * from './director/OrderPricingSheet.js';
@@ -1,9 +1,7 @@
1
1
  import { generateRandomHash } from '@unchainedshop/utils';
2
- import { Order } from './types.js';
3
- import { UnchainedCore } from '@unchainedshop/core';
4
- import { Product } from '@unchainedshop/core-products';
2
+ import { Order } from './db/OrdersCollection.js';
5
3
 
6
- export interface OrderSettingsOrderPositionValidation {
4
+ export interface OrderSettingsOrderPositionValidation<Product = unknown> {
7
5
  order: Order;
8
6
  product: Product;
9
7
  quantityDiff?: number;
@@ -13,14 +11,14 @@ export interface OrderSettingsOrderPositionValidation {
13
11
  export interface OrdersSettingsOptions {
14
12
  ensureUserHasCart?: boolean;
15
13
  orderNumberHashFn?: (order: Order, index: number) => string;
16
- validateOrderPosition?: (
14
+ validateOrderPosition?: <UnchainedAPI = unknown>(
17
15
  validationParams: OrderSettingsOrderPositionValidation,
18
- context: UnchainedCore,
16
+ unchainedAPI: UnchainedAPI,
19
17
  ) => Promise<void>;
20
18
  lockOrderDuringCheckout?: boolean;
21
19
  }
22
20
 
23
- export const defaultValidateOrderPosition = async ({ product }, { modules }) => {
21
+ export const defaultValidateOrderPosition = async ({ product }, { modules }: any) => {
24
22
  if (!modules.products.isActive(product)) {
25
23
  throw new Error('This product is inactive');
26
24
  }
package/tsconfig.json CHANGED
@@ -1,11 +1,9 @@
1
1
  {
2
2
  "extends": "../shared/base.tsconfig.json",
3
3
  "compilerOptions": {
4
- "rootDir": "src",
5
- "outDir": "lib",
4
+ "declarationDir": "./lib",
5
+ "rootDir": "./src",
6
+ "outDir": "./lib"
6
7
  },
7
- "exclude": ["**/*.test.ts", "**/*.test.js", "tests"],
8
- "include": [
9
- "./src"
10
- ]
11
- }
8
+ "exclude": ["**/*.test.ts", "**/*.test.js", "tests", "lib"]
9
+ }
@@ -1,10 +0,0 @@
1
- import { UnchainedCore } from '@unchainedshop/core';
2
- import { Order } from '../types.js';
3
- export type MigrateOrderCartsService = (params: {
4
- fromUserId: string;
5
- toUserId: string;
6
- shouldMerge: boolean;
7
- countryContext: string;
8
- }, unchainedAPI: UnchainedCore) => Promise<Order>;
9
- export declare const migrateOrderCartsService: MigrateOrderCartsService;
10
- //# sourceMappingURL=migrateOrderCartService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrateOrderCartService.d.ts","sourceRoot":"","sources":["../../src/service/migrateOrderCartService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,MAAM,wBAAwB,GAAG,CACrC,MAAM,EAAE;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB,EACD,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,KAAK,CAAC,CAAC;AAEpB,eAAO,MAAM,wBAAwB,EAAE,wBAuCtC,CAAC"}
@@ -1,32 +0,0 @@
1
- export const migrateOrderCartsService = async ({ fromUserId, toUserId, shouldMerge, countryContext }, unchainedAPI) => {
2
- const fromCart = await unchainedAPI.modules.orders.cart({
3
- countryContext,
4
- userId: fromUserId,
5
- });
6
- const toCart = await unchainedAPI.modules.orders.cart({
7
- countryContext,
8
- userId: toUserId,
9
- });
10
- if (!fromCart) {
11
- // No cart, don't copy
12
- return toCart;
13
- }
14
- if (!toCart || !shouldMerge) {
15
- // No destination cart, move whole cart
16
- unchainedAPI.modules.orders.setCartOwner({ orderId: fromCart._id, userId: toUserId });
17
- return unchainedAPI.modules.orders.updateCalculation(fromCart._id, unchainedAPI);
18
- }
19
- // Move positions
20
- unchainedAPI.modules.orders.moveCartPositions({ fromOrderId: fromCart._id, toOrderId: toCart._id });
21
- // Move billing address if target order has none
22
- if (fromCart.billingAddress && !toCart.billingAddress) {
23
- await unchainedAPI.modules.orders.updateBillingAddress(toCart._id, fromCart.billingAddress);
24
- }
25
- // Move contact data if target order has none
26
- if (fromCart.contact && !toCart.contact) {
27
- await unchainedAPI.modules.orders.updateContact(toCart._id, fromCart.contact);
28
- }
29
- await unchainedAPI.modules.orders.updateCalculation(fromCart._id, unchainedAPI);
30
- return unchainedAPI.modules.orders.updateCalculation(toCart._id, unchainedAPI);
31
- };
32
- //# sourceMappingURL=migrateOrderCartService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrateOrderCartService.js","sourceRoot":"","sources":["../../src/service/migrateOrderCartService.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,wBAAwB,GAA6B,KAAK,EACrE,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,EACrD,YAAY,EACZ,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACtD,cAAc;QACd,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACpD,cAAc;QACd,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,sBAAsB;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,uCAAuC;QACvC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtF,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB;IACjB,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAEpG,gDAAgD;IAChD,IAAI,QAAQ,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACtD,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC9F,CAAC;IAED,6CAA6C;IAC7C,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAChF,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AACjF,CAAC,CAAC"}
@@ -1,11 +0,0 @@
1
- import { User } from '@unchainedshop/core-users';
2
- import { UnchainedCore } from '@unchainedshop/core';
3
- import { Order } from '../types.js';
4
- export type NextUserCartService = (params: {
5
- user: User;
6
- orderNumber?: string;
7
- countryCode?: string;
8
- forceCartCreation?: boolean;
9
- }, unchainedAPI: UnchainedCore) => Promise<Order | null>;
10
- export declare const nextUserCartService: NextUserCartService;
11
- //# sourceMappingURL=nextUserCartService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nextUserCartService.d.ts","sourceRoot":"","sources":["../../src/service/nextUserCartService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,EACD,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAE3B,eAAO,MAAM,mBAAmB,EAAE,mBAqCjC,CAAC"}
@@ -1,34 +0,0 @@
1
- import { ordersSettings } from '../orders-settings.js';
2
- import { resolveBestCurrency } from '@unchainedshop/utils';
3
- export const nextUserCartService = async ({ user, orderNumber, countryCode, forceCartCreation }, unchainedAPI) => {
4
- const { modules } = unchainedAPI;
5
- const cart = await modules.orders.cart({
6
- countryContext: countryCode || user.lastLogin?.countryCode,
7
- orderNumber,
8
- userId: user._id,
9
- });
10
- if (cart)
11
- return cart;
12
- const shouldCreateNewCart = forceCartCreation || ordersSettings.ensureUserHasCart;
13
- if (!shouldCreateNewCart)
14
- return null;
15
- const countryObject = await modules.countries.findCountry({ isoCode: countryCode });
16
- const currencies = await modules.currencies.findCurrencies({ includeInactive: false });
17
- const currency = resolveBestCurrency(countryObject.defaultCurrencyCode, currencies);
18
- const order = await modules.orders.create({
19
- userId: user._id,
20
- orderNumber,
21
- currency,
22
- countryCode,
23
- billingAddress: user.lastBillingAddress || user.profile?.address,
24
- contact: user.lastContact ||
25
- (!user.guest
26
- ? {
27
- telNumber: user.profile?.phoneMobile,
28
- emailAddress: modules.users.primaryEmail(user)?.address,
29
- }
30
- : {}),
31
- });
32
- return modules.orders.initProviders(order, unchainedAPI);
33
- };
34
- //# sourceMappingURL=nextUserCartService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nextUserCartService.js","sourceRoot":"","sources":["../../src/service/nextUserCartService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAc3D,MAAM,CAAC,MAAM,mBAAmB,GAAwB,KAAK,EAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,EACrD,YAAY,EACZ,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAEjC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACrC,cAAc,EAAE,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW;QAC1D,WAAW;QACX,MAAM,EAAE,IAAI,CAAC,GAAG;KACjB,CAAC,CAAC;IACH,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,mBAAmB,GAAG,iBAAiB,IAAI,cAAc,CAAC,iBAAiB,CAAC;IAClF,IAAI,CAAC,mBAAmB;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAEpF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QACxC,MAAM,EAAE,IAAI,CAAC,GAAG;QAChB,WAAW;QACX,QAAQ;QACR,WAAW;QACX,cAAc,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO;QAChE,OAAO,EACL,IAAI,CAAC,WAAW;YAChB,CAAC,CAAC,IAAI,CAAC,KAAK;gBACV,CAAC,CAAC;oBACE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW;oBACpC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO;iBACxD;gBACH,CAAC,CAAC,EAAE,CAAC;KACV,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAC3D,CAAC,CAAC"}