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

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 (190) hide show
  1. package/lib/db/OrderDeliveriesCollection.d.ts +1 -1
  2. package/lib/db/OrderDeliveriesCollection.d.ts.map +1 -1
  3. package/lib/db/OrderDiscountsCollection.d.ts +1 -1
  4. package/lib/db/OrderDiscountsCollection.d.ts.map +1 -1
  5. package/lib/db/OrderPaymentsCollection.d.ts +1 -1
  6. package/lib/db/OrderPaymentsCollection.d.ts.map +1 -1
  7. package/lib/db/OrderPositionsCollection.d.ts +1 -1
  8. package/lib/db/OrderPositionsCollection.d.ts.map +1 -1
  9. package/lib/director/OrderDiscountAdapter.d.ts +2 -2
  10. package/lib/director/OrderDiscountAdapter.d.ts.map +1 -1
  11. package/lib/director/OrderDiscountAdapter.js.map +1 -1
  12. package/lib/director/OrderDiscountDirector.d.ts +1 -1
  13. package/lib/director/OrderDiscountDirector.d.ts.map +1 -1
  14. package/lib/director/OrderDiscountDirector.js.map +1 -1
  15. package/lib/director/OrderPricingAdapter.d.ts +3 -3
  16. package/lib/director/OrderPricingAdapter.d.ts.map +1 -1
  17. package/lib/director/OrderPricingAdapter.js.map +1 -1
  18. package/lib/director/OrderPricingDirector.d.ts +1 -1
  19. package/lib/director/OrderPricingDirector.d.ts.map +1 -1
  20. package/lib/module/buildFindSelector.d.ts +5 -0
  21. package/lib/module/buildFindSelector.d.ts.map +1 -0
  22. package/lib/module/buildFindSelector.js +18 -0
  23. package/lib/module/buildFindSelector.js.map +1 -0
  24. package/lib/module/configureOrderDeliveriesModule.d.ts +14 -27
  25. package/lib/module/configureOrderDeliveriesModule.d.ts.map +1 -1
  26. package/lib/module/configureOrderDeliveriesModule.js +7 -68
  27. package/lib/module/configureOrderDeliveriesModule.js.map +1 -1
  28. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts +24 -0
  29. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.d.ts.map +1 -0
  30. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js +101 -0
  31. package/lib/module/configureOrderDeliveriesModule_BACKUP_54554.js.map +1 -0
  32. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts +36 -0
  33. package/lib/module/configureOrderDeliveriesModule_BASE_54554.d.ts.map +1 -0
  34. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js +162 -0
  35. package/lib/module/configureOrderDeliveriesModule_BASE_54554.js.map +1 -0
  36. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts +23 -0
  37. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.d.ts.map +1 -0
  38. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js +97 -0
  39. package/lib/module/configureOrderDeliveriesModule_LOCAL_54554.js.map +1 -0
  40. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts +37 -0
  41. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.d.ts.map +1 -0
  42. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js +166 -0
  43. package/lib/module/configureOrderDeliveriesModule_REMOTE_54554.js.map +1 -0
  44. package/lib/module/configureOrderDiscountsModule.d.ts +17 -18
  45. package/lib/module/configureOrderDiscountsModule.d.ts.map +1 -1
  46. package/lib/module/configureOrderDiscountsModule.js +31 -140
  47. package/lib/module/configureOrderDiscountsModule.js.map +1 -1
  48. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts +26 -0
  49. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.d.ts.map +1 -0
  50. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js +69 -0
  51. package/lib/module/configureOrderDiscountsModule_BACKUP_55046.js.map +1 -0
  52. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts +26 -0
  53. package/lib/module/configureOrderDiscountsModule_BASE_55046.d.ts.map +1 -0
  54. package/lib/module/configureOrderDiscountsModule_BASE_55046.js +178 -0
  55. package/lib/module/configureOrderDiscountsModule_BASE_55046.js.map +1 -0
  56. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts +25 -0
  57. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.d.ts.map +1 -0
  58. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js +65 -0
  59. package/lib/module/configureOrderDiscountsModule_LOCAL_55046.js.map +1 -0
  60. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts +27 -0
  61. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.d.ts.map +1 -0
  62. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js +182 -0
  63. package/lib/module/configureOrderDiscountsModule_REMOTE_55046.js.map +1 -0
  64. package/lib/module/configureOrderPaymentsModule.d.ts +17 -37
  65. package/lib/module/configureOrderPaymentsModule.d.ts.map +1 -1
  66. package/lib/module/configureOrderPaymentsModule.js +10 -118
  67. package/lib/module/configureOrderPaymentsModule.js.map +1 -1
  68. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts +32 -0
  69. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.d.ts.map +1 -0
  70. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js +135 -0
  71. package/lib/module/configureOrderPaymentsModule_BACKUP_55464.js.map +1 -0
  72. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts +32 -0
  73. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.d.ts.map +1 -0
  74. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js +135 -0
  75. package/lib/module/configureOrderPaymentsModule_BACKUP_55877.js.map +1 -0
  76. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts +51 -0
  77. package/lib/module/configureOrderPaymentsModule_BASE_55464.d.ts.map +1 -0
  78. package/lib/module/configureOrderPaymentsModule_BASE_55464.js +243 -0
  79. package/lib/module/configureOrderPaymentsModule_BASE_55464.js.map +1 -0
  80. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts +51 -0
  81. package/lib/module/configureOrderPaymentsModule_BASE_55877.d.ts.map +1 -0
  82. package/lib/module/configureOrderPaymentsModule_BASE_55877.js +243 -0
  83. package/lib/module/configureOrderPaymentsModule_BASE_55877.js.map +1 -0
  84. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts +31 -0
  85. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.d.ts.map +1 -0
  86. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js +131 -0
  87. package/lib/module/configureOrderPaymentsModule_LOCAL_55464.js.map +1 -0
  88. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts +31 -0
  89. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.d.ts.map +1 -0
  90. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js +131 -0
  91. package/lib/module/configureOrderPaymentsModule_LOCAL_55877.js.map +1 -0
  92. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts +52 -0
  93. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.d.ts.map +1 -0
  94. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js +247 -0
  95. package/lib/module/configureOrderPaymentsModule_REMOTE_55464.js.map +1 -0
  96. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts +52 -0
  97. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.d.ts.map +1 -0
  98. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js +247 -0
  99. package/lib/module/configureOrderPaymentsModule_REMOTE_55877.js.map +1 -0
  100. package/lib/module/configureOrderPositionsModule.d.ts +22 -41
  101. package/lib/module/configureOrderPositionsModule.d.ts.map +1 -1
  102. package/lib/module/configureOrderPositionsModule.js +19 -82
  103. package/lib/module/configureOrderPositionsModule.js.map +1 -1
  104. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts +44 -0
  105. package/lib/module/configureOrderPositionsModule_BACKUP_56197.d.ts.map +1 -0
  106. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js +138 -0
  107. package/lib/module/configureOrderPositionsModule_BACKUP_56197.js.map +1 -0
  108. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts +60 -0
  109. package/lib/module/configureOrderPositionsModule_BASE_56197.d.ts.map +1 -0
  110. package/lib/module/configureOrderPositionsModule_BASE_56197.js +201 -0
  111. package/lib/module/configureOrderPositionsModule_BASE_56197.js.map +1 -0
  112. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts +43 -0
  113. package/lib/module/configureOrderPositionsModule_LOCAL_56197.d.ts.map +1 -0
  114. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js +134 -0
  115. package/lib/module/configureOrderPositionsModule_LOCAL_56197.js.map +1 -0
  116. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts +61 -0
  117. package/lib/module/configureOrderPositionsModule_REMOTE_56197.d.ts.map +1 -0
  118. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js +205 -0
  119. package/lib/module/configureOrderPositionsModule_REMOTE_56197.js.map +1 -0
  120. package/lib/module/configureOrdersModule-mutations.d.ts +4 -11
  121. package/lib/module/configureOrdersModule-mutations.d.ts.map +1 -1
  122. package/lib/module/configureOrdersModule-mutations.js +10 -49
  123. package/lib/module/configureOrdersModule-mutations.js.map +1 -1
  124. package/lib/module/configureOrdersModule-processing.d.ts +4 -8
  125. package/lib/module/configureOrdersModule-processing.d.ts.map +1 -1
  126. package/lib/module/configureOrdersModule-processing.js +3 -1
  127. package/lib/module/configureOrdersModule-processing.js.map +1 -1
  128. package/lib/module/configureOrdersModule-queries.d.ts +10 -5
  129. package/lib/module/configureOrdersModule-queries.d.ts.map +1 -1
  130. package/lib/module/configureOrdersModule-queries.js +35 -22
  131. package/lib/module/configureOrdersModule-queries.js.map +1 -1
  132. package/lib/module/configureOrdersModule-transformations.d.ts +2 -3
  133. package/lib/module/configureOrdersModule-transformations.d.ts.map +1 -1
  134. package/lib/module/configureOrdersModule-transformations.js +3 -3
  135. package/lib/module/configureOrdersModule-transformations.js.map +1 -1
  136. package/lib/module/configureOrdersModule.d.ts +11 -8
  137. package/lib/module/configureOrdersModule.d.ts.map +1 -1
  138. package/lib/module/configureOrdersModule.js +133 -153
  139. package/lib/module/configureOrdersModule.js.map +1 -1
  140. package/lib/orders-index.d.ts +0 -7
  141. package/lib/orders-index.d.ts.map +1 -1
  142. package/lib/orders-index.js +0 -7
  143. package/lib/orders-index.js.map +1 -1
  144. package/lib/orders-settings.d.ts +3 -7
  145. package/lib/orders-settings.d.ts.map +1 -1
  146. package/lib/orders-settings.js.map +1 -1
  147. package/lib/types.d.ts +8 -9
  148. package/lib/types.d.ts.map +1 -1
  149. package/lib/types.js.map +1 -1
  150. package/package.json +9 -12
  151. package/src/db/OrderDeliveriesCollection.ts +1 -1
  152. package/src/db/OrderDiscountsCollection.ts +1 -1
  153. package/src/db/OrderPaymentsCollection.ts +1 -1
  154. package/src/db/OrderPositionsCollection.ts +1 -1
  155. package/src/module/buildFindSelector.test.ts +1 -1
  156. package/src/module/buildFindSelector.ts +24 -0
  157. package/src/module/configureOrderDeliveriesModule.ts +29 -172
  158. package/src/module/configureOrderDiscountsModule.ts +44 -210
  159. package/src/module/configureOrderPaymentsModule.ts +51 -261
  160. package/src/module/configureOrderPositionsModule.ts +54 -205
  161. package/src/module/configureOrdersModule-mutations.ts +12 -85
  162. package/src/module/configureOrdersModule-queries.ts +53 -29
  163. package/src/module/configureOrdersModule.ts +180 -263
  164. package/src/orders-index.ts +0 -9
  165. package/src/orders-settings.ts +4 -6
  166. package/src/types.ts +8 -9
  167. package/tsconfig.json +5 -7
  168. package/lib/service/migrateOrderCartService.d.ts +0 -10
  169. package/lib/service/migrateOrderCartService.d.ts.map +0 -1
  170. package/lib/service/migrateOrderCartService.js +0 -32
  171. package/lib/service/migrateOrderCartService.js.map +0 -1
  172. package/lib/service/nextUserCartService.d.ts +0 -11
  173. package/lib/service/nextUserCartService.d.ts.map +0 -1
  174. package/lib/service/nextUserCartService.js +0 -34
  175. package/lib/service/nextUserCartService.js.map +0 -1
  176. package/lib/service/orderServices.d.ts +0 -8
  177. package/lib/service/orderServices.d.ts.map +0 -1
  178. package/lib/service/orderServices.js +0 -7
  179. package/lib/service/orderServices.js.map +0 -1
  180. package/src/director/OrderDiscountAdapter.ts +0 -8
  181. package/src/director/OrderDiscountConfiguration.ts +0 -5
  182. package/src/director/OrderDiscountDirector.ts +0 -5
  183. package/src/director/OrderPricingAdapter.ts +0 -61
  184. package/src/director/OrderPricingDirector.ts +0 -72
  185. package/src/director/OrderPricingSheet.ts +0 -146
  186. package/src/module/configureOrdersModule-processing.ts +0 -508
  187. package/src/module/configureOrdersModule-transformations.ts +0 -171
  188. package/src/service/migrateOrderCartService.ts +0 -53
  189. package/src/service/nextUserCartService.ts +0 -54
  190. package/src/service/orderServices.ts +0 -12
@@ -1,95 +1,14 @@
1
1
  import { emit, registerEvents } from '@unchainedshop/events';
2
2
  import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
3
3
  import { OrderDiscountTrigger } from '../db/OrderDiscountTrigger.js';
4
- import { OrderDiscountDirector } from '../director/OrderDiscountDirector.js';
5
4
  const ORDER_DISCOUNT_EVENTS = [
6
5
  'ORDER_CREATE_DISCOUNT',
7
6
  'ORDER_UPDATE_DISCOUNT',
8
7
  'ORDER_REMOVE_DISCOUNT',
9
- 'ORDER_ADD_DISCOUNT',
10
8
  ];
11
- const OrderDiscountErrorCode = {
12
- CODE_ALREADY_PRESENT: 'CODE_ALREADY_PRESENT',
13
- CODE_NOT_VALID: 'CODE_NOT_VALID',
14
- };
15
9
  export const buildFindByIdSelector = (orderDiscountId) => generateDbFilterById(orderDiscountId);
16
10
  export const configureOrderDiscountsModule = ({ OrderDiscounts, }) => {
17
11
  registerEvents(ORDER_DISCOUNT_EVENTS);
18
- const getAdapter = async (orderDiscount, unchainedAPI) => {
19
- const order = await unchainedAPI.modules.orders.findOrder({
20
- orderId: orderDiscount.orderId,
21
- });
22
- const Adapter = OrderDiscountDirector.getAdapter(orderDiscount.discountKey);
23
- if (!Adapter)
24
- return null;
25
- const adapter = await Adapter.actions({
26
- context: { order, orderDiscount, code: orderDiscount.code, ...unchainedAPI },
27
- });
28
- return adapter;
29
- };
30
- const createDiscount = async (doc) => {
31
- const normalizedTrigger = doc.trigger || OrderDiscountTrigger.USER;
32
- const { insertedId: discountId } = await OrderDiscounts.insertOne({
33
- _id: generateDbObjectId(),
34
- created: new Date(),
35
- ...doc,
36
- trigger: normalizedTrigger,
37
- });
38
- const discount = await OrderDiscounts.findOne(buildFindByIdSelector(discountId));
39
- return discount;
40
- };
41
- const deleteDiscount = async (orderDiscountId, unchainedAPI) => {
42
- const selector = buildFindByIdSelector(orderDiscountId);
43
- const discount = await OrderDiscounts.findOne(selector, {});
44
- if (discount.trigger === OrderDiscountTrigger.USER) {
45
- // Release
46
- const adapter = await getAdapter(discount, unchainedAPI);
47
- if (!adapter)
48
- return null;
49
- await adapter.release();
50
- }
51
- await OrderDiscounts.deleteOne(selector);
52
- await emit('ORDER_REMOVE_DISCOUNT', { discount });
53
- return discount;
54
- };
55
- const updateDiscount = async (orderDiscountId, doc) => {
56
- const discount = await OrderDiscounts.findOneAndUpdate(generateDbFilterById(orderDiscountId), {
57
- $set: {
58
- updated: new Date(),
59
- ...doc,
60
- },
61
- }, { returnDocument: 'after' });
62
- await emit('ORDER_UPDATE_DISCOUNT', { discount });
63
- return discount;
64
- };
65
- const reserveDiscount = async (orderDiscount, unchainedAPI) => {
66
- const adapter = await getAdapter(orderDiscount, unchainedAPI);
67
- if (!adapter)
68
- return null;
69
- const reservation = await adapter.reserve({
70
- code: orderDiscount.code,
71
- });
72
- return updateDiscount(orderDiscount._id, { orderId: orderDiscount.orderId, reservation });
73
- };
74
- const grabDiscount = async ({ code, orderId }, unchainedAPI) => {
75
- const existingDiscount = await OrderDiscounts.findOne({ code, orderId });
76
- if (existingDiscount)
77
- throw new Error(OrderDiscountErrorCode.CODE_ALREADY_PRESENT);
78
- const discount = await OrderDiscounts.findOne({ code, orderId: null });
79
- if (!discount)
80
- return null;
81
- const discountId = discount._id;
82
- try {
83
- const updatedDiscount = await updateDiscount(discountId, { orderId });
84
- const reservedDiscount = await reserveDiscount(updatedDiscount, unchainedAPI);
85
- return reservedDiscount;
86
- }
87
- catch (error) {
88
- // Rollback
89
- await updateDiscount(discountId, { orderId: discount.orderId });
90
- throw error;
91
- }
92
- };
93
12
  return {
94
13
  // Queries
95
14
  findOrderDiscount: async ({ discountId }, options) => {
@@ -99,72 +18,40 @@ export const configureOrderDiscountsModule = ({ OrderDiscounts, }) => {
99
18
  const discounts = OrderDiscounts.find({ orderId });
100
19
  return discounts.toArray();
101
20
  },
102
- // Transformations
103
- interface: async (orderDiscount, unchainedAPI) => {
104
- const adapter = await getAdapter(orderDiscount, unchainedAPI);
105
- return adapter;
106
- },
107
- isValid: async (orderDiscount, unchainedAPI) => {
108
- const adapter = await getAdapter(orderDiscount, unchainedAPI);
109
- if (!adapter)
110
- return null;
111
- if (orderDiscount.trigger === OrderDiscountTrigger.SYSTEM) {
112
- return adapter.isValidForSystemTriggering();
113
- }
114
- return adapter.isValidForCodeTriggering({
115
- code: orderDiscount.code,
21
+ create: async (doc) => {
22
+ const normalizedTrigger = doc.trigger || OrderDiscountTrigger.USER;
23
+ const { insertedId: discountId } = await OrderDiscounts.insertOne({
24
+ _id: generateDbObjectId(),
25
+ created: new Date(),
26
+ ...doc,
27
+ trigger: normalizedTrigger,
116
28
  });
117
- },
118
- // Adapter
119
- configurationForPricingAdapterKey: async (orderDiscount, adapterKey, calculationSheet, unchainedAPI) => {
120
- const adapter = await getAdapter(orderDiscount, unchainedAPI);
121
- if (!adapter)
122
- return null;
123
- return adapter.discountForPricingAdapterKey({
124
- pricingAdapterKey: adapterKey,
125
- calculationSheet,
29
+ const discount = await OrderDiscounts.findOne({
30
+ _id: discountId,
126
31
  });
32
+ await emit('ORDER_CREATE_DISCOUNT', { discount });
33
+ return discount;
127
34
  },
128
- // Mutations
129
- createManualOrderDiscount: async ({ order, code }, unchainedAPI) => {
130
- // Try to grab single-usage-discount
131
- if (!code)
132
- throw new Error(OrderDiscountErrorCode.CODE_NOT_VALID);
133
- const fetchedDiscount = await grabDiscount({ code, orderId: order._id }, unchainedAPI);
134
- if (fetchedDiscount)
135
- return fetchedDiscount;
136
- const director = await OrderDiscountDirector.actions({ order, code }, unchainedAPI);
137
- const discountKey = await director.resolveDiscountKeyFromStaticCode({
35
+ delete: async (orderDiscountId) => {
36
+ const selector = buildFindByIdSelector(orderDiscountId);
37
+ const orderDiscount = await OrderDiscounts.findOneAndDelete(selector);
38
+ await emit('ORDER_REMOVE_DISCOUNT', { discount: orderDiscount });
39
+ return orderDiscount;
40
+ },
41
+ isDiscountCodeUsed: async ({ code, orderId }) => {
42
+ return ((await OrderDiscounts.countDocuments({
138
43
  code,
139
- });
140
- if (discountKey) {
141
- const newDiscount = await createDiscount({
142
- orderId: order._id,
143
- code,
144
- discountKey,
145
- });
146
- try {
147
- const reservedDiscount = await reserveDiscount(newDiscount, unchainedAPI);
148
- await emit('ORDER_ADD_DISCOUNT', { discount: reserveDiscount });
149
- return reservedDiscount;
150
- }
151
- catch (error) {
152
- await deleteDiscount(newDiscount._id, unchainedAPI);
153
- throw error;
154
- }
155
- }
156
- throw new Error(OrderDiscountErrorCode.CODE_NOT_VALID);
44
+ orderId,
45
+ })) > 0);
157
46
  },
158
- create: async (doc) => {
159
- const discount = await createDiscount(doc);
160
- if (discount.trigger === OrderDiscountTrigger.USER) {
161
- await emit('ORDER_CREATE_DISCOUNT', { discount });
162
- }
163
- return discount;
47
+ findSpareDiscount: async ({ code }) => {
48
+ return OrderDiscounts.findOne({
49
+ code,
50
+ orderId: { $in: [undefined, null] },
51
+ });
164
52
  },
165
- delete: deleteDiscount,
166
53
  update: async (orderDiscountId, doc) => {
167
- const discount = await OrderDiscounts.findOneAndUpdate(generateDbFilterById(orderDiscountId), {
54
+ const discount = await OrderDiscounts.findOneAndUpdate({ _id: orderDiscountId }, {
168
55
  $set: {
169
56
  updated: new Date(),
170
57
  ...doc,
@@ -173,6 +60,10 @@ export const configureOrderDiscountsModule = ({ OrderDiscounts, }) => {
173
60
  await emit('ORDER_UPDATE_DISCOUNT', { discount });
174
61
  return discount;
175
62
  },
63
+ deleteOrderDiscounts: async (orderId) => {
64
+ const { deletedCount } = await OrderDiscounts.deleteMany({ orderId });
65
+ return deletedCount;
66
+ },
176
67
  };
177
68
  };
178
69
  //# sourceMappingURL=configureOrderDiscountsModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configureOrderDiscountsModule.js","sourceRoot":"","sources":["../../src/module/configureOrderDiscountsModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureOrderDiscountsModule.js","sourceRoot":"","sources":["../../src/module/configureOrderDiscountsModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { mongodb } from '@unchainedshop/mongodb';
2
+ import { OrderDiscount } from '../types.js';
3
+ export declare const buildFindByIdSelector: (orderDiscountId: string) => mongodb.Filter<OrderDiscount>;
4
+ export declare const configureOrderDiscountsModule: ({ OrderDiscounts, }: {
5
+ OrderDiscounts: mongodb.Collection<OrderDiscount>;
6
+ }) => {
7
+ findOrderDiscount: ({ discountId }: {
8
+ discountId: string;
9
+ }, options?: mongodb.FindOptions) => Promise<OrderDiscount>;
10
+ findOrderDiscounts: ({ orderId }: {
11
+ orderId: string;
12
+ }) => Promise<Array<OrderDiscount>>;
13
+ create: (doc: OrderDiscount) => Promise<OrderDiscount>;
14
+ delete: (orderDiscountId: string) => Promise<OrderDiscount>;
15
+ isDiscountCodeUsed: ({ code, orderId }: {
16
+ code: any;
17
+ orderId: any;
18
+ }) => Promise<boolean>;
19
+ findSpareDiscount: ({ code }: {
20
+ code: any;
21
+ }) => Promise<OrderDiscount>;
22
+ update: (orderDiscountId: string, doc: OrderDiscount) => Promise<OrderDiscount>;
23
+ deleteOrderDiscounts: (orderId: string) => Promise<number>;
24
+ };
25
+ export type OrderDiscountsModule = ReturnType<typeof configureOrderDiscountsModule>;
26
+ //# sourceMappingURL=configureOrderDiscountsModule_BACKUP_55046.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDiscountsModule_BACKUP_55046.d.ts","sourceRoot":"","sources":["../../src/module/configureOrderDiscountsModule_BACKUP_55046.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAG3F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAmD5C,eAAO,MAAM,qBAAqB,oBAAqB,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzE,eAAO,MAAM,6BAA6B,wBAEvC;IACD,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CACnD;wCAMqB;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,YAC5B,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,aAAa,CAAC;sCAIe;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;kBAKvE,aAAa,KAAG,OAAO,CAAC,aAAa,CAAC;8BAe1B,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC;;;;UAOhB,OAAO,CAAC,OAAO,CAAC;;;UAS1B,OAAO,CAAC,aAAa,CAAC;8BAO3B,MAAM,OAAO,aAAa,KAAG,OAAO,CAAC,aAAa,CAAC;oCAe7C,MAAM;CAK/C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { emit, registerEvents } from '@unchainedshop/events';
2
+ import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
3
+ import { OrderDiscountTrigger } from '../db/OrderDiscountTrigger.js';
4
+ const ORDER_DISCOUNT_EVENTS = [
5
+ 'ORDER_CREATE_DISCOUNT',
6
+ 'ORDER_UPDATE_DISCOUNT',
7
+ 'ORDER_REMOVE_DISCOUNT',
8
+ ];
9
+ export const buildFindByIdSelector = (orderDiscountId) => generateDbFilterById(orderDiscountId);
10
+ export const configureOrderDiscountsModule = ({ OrderDiscounts, }) => {
11
+ registerEvents(ORDER_DISCOUNT_EVENTS);
12
+ return {
13
+ // Queries
14
+ findOrderDiscount: async ({ discountId }, options) => {
15
+ return OrderDiscounts.findOne(buildFindByIdSelector(discountId), options);
16
+ },
17
+ findOrderDiscounts: async ({ orderId }) => {
18
+ const discounts = OrderDiscounts.find({ orderId });
19
+ return discounts.toArray();
20
+ },
21
+ create: async (doc) => {
22
+ const normalizedTrigger = doc.trigger || OrderDiscountTrigger.USER;
23
+ const { insertedId: discountId } = await OrderDiscounts.insertOne({
24
+ _id: generateDbObjectId(),
25
+ created: new Date(),
26
+ ...doc,
27
+ trigger: normalizedTrigger,
28
+ });
29
+ const discount = await OrderDiscounts.findOne({
30
+ _id: discountId,
31
+ });
32
+ await emit('ORDER_CREATE_DISCOUNT', { discount });
33
+ return discount;
34
+ },
35
+ delete: async (orderDiscountId) => {
36
+ const selector = buildFindByIdSelector(orderDiscountId);
37
+ const orderDiscount = await OrderDiscounts.findOneAndDelete(selector);
38
+ await emit('ORDER_REMOVE_DISCOUNT', { discount: orderDiscount });
39
+ return orderDiscount;
40
+ },
41
+ isDiscountCodeUsed: async ({ code, orderId }) => {
42
+ return ((await OrderDiscounts.countDocuments({
43
+ code,
44
+ orderId,
45
+ })) > 0);
46
+ },
47
+ findSpareDiscount: async ({ code }) => {
48
+ return OrderDiscounts.findOne({
49
+ code,
50
+ orderId: { $in: [undefined, null] },
51
+ });
52
+ },
53
+ update: async (orderDiscountId, doc) => {
54
+ const discount = await OrderDiscounts.findOneAndUpdate({ _id: orderDiscountId }, {
55
+ $set: {
56
+ updated: new Date(),
57
+ ...doc,
58
+ },
59
+ }, { returnDocument: 'after' });
60
+ await emit('ORDER_UPDATE_DISCOUNT', { discount });
61
+ return discount;
62
+ },
63
+ deleteOrderDiscounts: async (orderId) => {
64
+ const { deletedCount } = await OrderDiscounts.deleteMany({ orderId });
65
+ return deletedCount;
66
+ },
67
+ };
68
+ };
69
+ //# sourceMappingURL=configureOrderDiscountsModule_BACKUP_55046.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDiscountsModule_BACKUP_55046.js","sourceRoot":"","sources":["../../src/module/configureOrderDiscountsModule_BACKUP_55046.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { mongodb } from '@unchainedshop/mongodb';
2
+ import { Order, OrderDiscount } from '../types.js';
3
+ import { IPricingSheet, PricingCalculation, DiscountAdapterActions, DiscountContext } from '@unchainedshop/utils';
4
+ export type OrderDiscountsModule = {
5
+ findOrderDiscount: (params: {
6
+ discountId: string;
7
+ }, options?: mongodb.FindOptions) => Promise<OrderDiscount>;
8
+ findOrderDiscounts: (params: {
9
+ orderId: string;
10
+ }) => Promise<Array<OrderDiscount>>;
11
+ interface: (orderDiscount: OrderDiscount, unchainedAPI: any) => Promise<DiscountAdapterActions<any>>;
12
+ isValid: (orderDiscount: OrderDiscount, unchainedAPI: any) => Promise<boolean>;
13
+ configurationForPricingAdapterKey: (orderDiscount: OrderDiscount, adapterKey: string, calculationSheet: IPricingSheet<PricingCalculation>, pricingContext: DiscountContext) => Promise<any>;
14
+ createManualOrderDiscount: (params: {
15
+ code: string;
16
+ order: Order;
17
+ }, unchainedAPI: any) => Promise<OrderDiscount>;
18
+ create: (doc: OrderDiscount) => Promise<OrderDiscount>;
19
+ update: (orderDiscountId: string, doc: OrderDiscount) => Promise<OrderDiscount>;
20
+ delete: (orderDiscountId: string, unchainedAPI: any) => Promise<OrderDiscount>;
21
+ };
22
+ export declare const buildFindByIdSelector: (orderDiscountId: string) => mongodb.Filter<OrderDiscount>;
23
+ export declare const configureOrderDiscountsModule: ({ OrderDiscounts, }: {
24
+ OrderDiscounts: mongodb.Collection<OrderDiscount>;
25
+ }) => OrderDiscountsModule;
26
+ //# sourceMappingURL=configureOrderDiscountsModule_BASE_55046.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDiscountsModule_BASE_55046.d.ts","sourceRoot":"","sources":["../../src/module/configureOrderDiscountsModule_BASE_55046.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAG3F,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,oBAAoB,GAAG;IAEjC,iBAAiB,EAAE,CACjB,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,KAC1B,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5B,kBAAkB,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAGnF,SAAS,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;IAEhG,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAG1E,iCAAiC,EAAE,CACjC,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,aAAa,CAAC,kBAAkB,CAAC,EACnD,cAAc,EAAE,eAAe,KAC5B,OAAO,CAAC,GAAG,CAAC,CAAC;IAGlB,yBAAyB,EAAE,CACzB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EACtC,YAAY,KAAA,KACT,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5B,MAAM,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAChF,MAAM,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,YAAY,KAAA,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3E,CAAC;AAcF,eAAO,MAAM,qBAAqB,oBAAqB,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzE,eAAO,MAAM,6BAA6B,wBAEvC;IACD,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CACnD,KAAG,oBA+LH,CAAC"}
@@ -0,0 +1,178 @@
1
+ import { emit, registerEvents } from '@unchainedshop/events';
2
+ import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
3
+ import { OrderDiscountTrigger } from '../db/OrderDiscountTrigger.js';
4
+ import { OrderDiscountDirector } from '../director/OrderDiscountDirector.js';
5
+ const ORDER_DISCOUNT_EVENTS = [
6
+ 'ORDER_CREATE_DISCOUNT',
7
+ 'ORDER_UPDATE_DISCOUNT',
8
+ 'ORDER_REMOVE_DISCOUNT',
9
+ 'ORDER_ADD_DISCOUNT',
10
+ ];
11
+ const OrderDiscountErrorCode = {
12
+ CODE_ALREADY_PRESENT: 'CODE_ALREADY_PRESENT',
13
+ CODE_NOT_VALID: 'CODE_NOT_VALID',
14
+ };
15
+ export const buildFindByIdSelector = (orderDiscountId) => generateDbFilterById(orderDiscountId);
16
+ export const configureOrderDiscountsModule = ({ OrderDiscounts, }) => {
17
+ registerEvents(ORDER_DISCOUNT_EVENTS);
18
+ const getAdapter = async (orderDiscount, unchainedAPI) => {
19
+ const order = await unchainedAPI.modules.orders.findOrder({
20
+ orderId: orderDiscount.orderId,
21
+ });
22
+ const Adapter = OrderDiscountDirector.getAdapter(orderDiscount.discountKey);
23
+ if (!Adapter)
24
+ return null;
25
+ const adapter = await Adapter.actions({
26
+ context: { order, orderDiscount, code: orderDiscount.code, ...unchainedAPI },
27
+ });
28
+ return adapter;
29
+ };
30
+ const createDiscount = async (doc) => {
31
+ const normalizedTrigger = doc.trigger || OrderDiscountTrigger.USER;
32
+ const { insertedId: discountId } = await OrderDiscounts.insertOne({
33
+ _id: generateDbObjectId(),
34
+ created: new Date(),
35
+ ...doc,
36
+ trigger: normalizedTrigger,
37
+ });
38
+ const discount = await OrderDiscounts.findOne(buildFindByIdSelector(discountId));
39
+ return discount;
40
+ };
41
+ const deleteDiscount = async (orderDiscountId, unchainedAPI) => {
42
+ const selector = buildFindByIdSelector(orderDiscountId);
43
+ const discount = await OrderDiscounts.findOne(selector, {});
44
+ if (discount.trigger === OrderDiscountTrigger.USER) {
45
+ // Release
46
+ const adapter = await getAdapter(discount, unchainedAPI);
47
+ if (!adapter)
48
+ return null;
49
+ await adapter.release();
50
+ }
51
+ await OrderDiscounts.deleteOne(selector);
52
+ await emit('ORDER_REMOVE_DISCOUNT', { discount });
53
+ return discount;
54
+ };
55
+ const updateDiscount = async (orderDiscountId, doc) => {
56
+ const discount = await OrderDiscounts.findOneAndUpdate(generateDbFilterById(orderDiscountId), {
57
+ $set: {
58
+ updated: new Date(),
59
+ ...doc,
60
+ },
61
+ }, { returnDocument: 'after' });
62
+ await emit('ORDER_UPDATE_DISCOUNT', { discount });
63
+ return discount;
64
+ };
65
+ const reserveDiscount = async (orderDiscount, unchainedAPI) => {
66
+ const adapter = await getAdapter(orderDiscount, unchainedAPI);
67
+ if (!adapter)
68
+ return null;
69
+ const reservation = await adapter.reserve({
70
+ code: orderDiscount.code,
71
+ });
72
+ return updateDiscount(orderDiscount._id, { orderId: orderDiscount.orderId, reservation });
73
+ };
74
+ const grabDiscount = async ({ code, orderId }, unchainedAPI) => {
75
+ const existingDiscount = await OrderDiscounts.findOne({ code, orderId });
76
+ if (existingDiscount)
77
+ throw new Error(OrderDiscountErrorCode.CODE_ALREADY_PRESENT);
78
+ const discount = await OrderDiscounts.findOne({ code, orderId: null });
79
+ if (!discount)
80
+ return null;
81
+ const discountId = discount._id;
82
+ try {
83
+ const updatedDiscount = await updateDiscount(discountId, { orderId });
84
+ const reservedDiscount = await reserveDiscount(updatedDiscount, unchainedAPI);
85
+ return reservedDiscount;
86
+ }
87
+ catch (error) {
88
+ // Rollback
89
+ await updateDiscount(discountId, { orderId: discount.orderId });
90
+ throw error;
91
+ }
92
+ };
93
+ return {
94
+ // Queries
95
+ findOrderDiscount: async ({ discountId }, options) => {
96
+ return OrderDiscounts.findOne(buildFindByIdSelector(discountId), options);
97
+ },
98
+ findOrderDiscounts: async ({ orderId }) => {
99
+ const discounts = OrderDiscounts.find({ orderId });
100
+ return discounts.toArray();
101
+ },
102
+ // Transformations
103
+ interface: async (orderDiscount, unchainedAPI) => {
104
+ const adapter = await getAdapter(orderDiscount, unchainedAPI);
105
+ return adapter;
106
+ },
107
+ isValid: async (orderDiscount, unchainedAPI) => {
108
+ const adapter = await getAdapter(orderDiscount, unchainedAPI);
109
+ if (!adapter)
110
+ return null;
111
+ if (orderDiscount.trigger === OrderDiscountTrigger.SYSTEM) {
112
+ return adapter.isValidForSystemTriggering();
113
+ }
114
+ return adapter.isValidForCodeTriggering({
115
+ code: orderDiscount.code,
116
+ });
117
+ },
118
+ // Adapter
119
+ configurationForPricingAdapterKey: async (orderDiscount, adapterKey, calculationSheet, unchainedAPI) => {
120
+ const adapter = await getAdapter(orderDiscount, unchainedAPI);
121
+ if (!adapter)
122
+ return null;
123
+ return adapter.discountForPricingAdapterKey({
124
+ pricingAdapterKey: adapterKey,
125
+ calculationSheet,
126
+ });
127
+ },
128
+ // Mutations
129
+ createManualOrderDiscount: async ({ order, code }, unchainedAPI) => {
130
+ // Try to grab single-usage-discount
131
+ if (!code)
132
+ throw new Error(OrderDiscountErrorCode.CODE_NOT_VALID);
133
+ const fetchedDiscount = await grabDiscount({ code, orderId: order._id }, unchainedAPI);
134
+ if (fetchedDiscount)
135
+ return fetchedDiscount;
136
+ const director = await OrderDiscountDirector.actions({ order, code }, unchainedAPI);
137
+ const discountKey = await director.resolveDiscountKeyFromStaticCode({
138
+ code,
139
+ });
140
+ if (discountKey) {
141
+ const newDiscount = await createDiscount({
142
+ orderId: order._id,
143
+ code,
144
+ discountKey,
145
+ });
146
+ try {
147
+ const reservedDiscount = await reserveDiscount(newDiscount, unchainedAPI);
148
+ await emit('ORDER_ADD_DISCOUNT', { discount: reserveDiscount });
149
+ return reservedDiscount;
150
+ }
151
+ catch (error) {
152
+ await deleteDiscount(newDiscount._id, unchainedAPI);
153
+ throw error;
154
+ }
155
+ }
156
+ throw new Error(OrderDiscountErrorCode.CODE_NOT_VALID);
157
+ },
158
+ create: async (doc) => {
159
+ const discount = await createDiscount(doc);
160
+ if (discount.trigger === OrderDiscountTrigger.USER) {
161
+ await emit('ORDER_CREATE_DISCOUNT', { discount });
162
+ }
163
+ return discount;
164
+ },
165
+ delete: deleteDiscount,
166
+ update: async (orderDiscountId, doc) => {
167
+ const discount = await OrderDiscounts.findOneAndUpdate(generateDbFilterById(orderDiscountId), {
168
+ $set: {
169
+ updated: new Date(),
170
+ ...doc,
171
+ },
172
+ }, { returnDocument: 'after' });
173
+ await emit('ORDER_UPDATE_DISCOUNT', { discount });
174
+ return discount;
175
+ },
176
+ };
177
+ };
178
+ //# sourceMappingURL=configureOrderDiscountsModule_BASE_55046.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDiscountsModule_BASE_55046.js","sourceRoot":"","sources":["../../src/module/configureOrderDiscountsModule_BASE_55046.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { mongodb } from '@unchainedshop/mongodb';
2
+ import { OrderDiscount } from '../types.js';
3
+ export declare const buildFindByIdSelector: (orderDiscountId: string) => mongodb.Filter<OrderDiscount>;
4
+ export declare const configureOrderDiscountsModule: ({ OrderDiscounts, }: {
5
+ OrderDiscounts: mongodb.Collection<OrderDiscount>;
6
+ }) => {
7
+ findOrderDiscount: ({ discountId }: {
8
+ discountId: string;
9
+ }, options?: mongodb.FindOptions) => Promise<OrderDiscount>;
10
+ findOrderDiscounts: ({ orderId }: {
11
+ orderId: string;
12
+ }) => Promise<Array<OrderDiscount>>;
13
+ create: (doc: OrderDiscount) => Promise<OrderDiscount>;
14
+ delete: (orderDiscountId: string) => Promise<OrderDiscount>;
15
+ isDiscountCodeUsed: ({ code, orderId }: {
16
+ code: any;
17
+ orderId: any;
18
+ }) => Promise<boolean>;
19
+ findSpareDiscount: ({ code }: {
20
+ code: any;
21
+ }) => Promise<OrderDiscount>;
22
+ update: (orderDiscountId: string, doc: OrderDiscount) => Promise<OrderDiscount>;
23
+ };
24
+ export type OrderDiscountsModule = ReturnType<typeof configureOrderDiscountsModule>;
25
+ //# sourceMappingURL=configureOrderDiscountsModule_LOCAL_55046.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureOrderDiscountsModule_LOCAL_55046.d.ts","sourceRoot":"","sources":["../../src/module/configureOrderDiscountsModule_LOCAL_55046.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C,eAAO,MAAM,qBAAqB,oBAAqB,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzE,eAAO,MAAM,6BAA6B,wBAEvC;IACD,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;CACnD;wCAMqB;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,YAC5B,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,aAAa,CAAC;sCAIe;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;kBAKvE,aAAa,KAAG,OAAO,CAAC,aAAa,CAAC;8BAe1B,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC;;;;UAOhB,OAAO,CAAC,OAAO,CAAC;;;UAS1B,OAAO,CAAC,aAAa,CAAC;8BAO3B,MAAM,OAAO,aAAa,KAAG,OAAO,CAAC,aAAa,CAAC;CAgBtF,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC"}