@mercurjs/core 2.3.7-canary.0 → 2.3.7

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 (112) hide show
  1. package/.medusa/server/src/api/admin/middlewares.js +41 -39
  2. package/.medusa/server/src/api/admin/offer-conditions/[id]/route.d.ts +6 -0
  3. package/.medusa/server/src/api/admin/offer-conditions/[id]/route.js +51 -0
  4. package/.medusa/server/src/api/admin/offer-conditions/middlewares.d.ts +2 -0
  5. package/.medusa/server/src/api/admin/offer-conditions/middlewares.js +49 -0
  6. package/.medusa/server/src/api/admin/offer-conditions/query-config.d.ts +11 -0
  7. package/.medusa/server/src/api/admin/offer-conditions/query-config.js +25 -0
  8. package/.medusa/server/src/api/admin/offer-conditions/route.d.ts +5 -0
  9. package/.medusa/server/src/api/admin/offer-conditions/route.js +35 -0
  10. package/.medusa/server/src/api/admin/offer-conditions/validators.d.ts +61 -0
  11. package/.medusa/server/src/api/admin/offer-conditions/validators.js +38 -0
  12. package/.medusa/server/src/api/admin/offers/batch/route.js +2 -1
  13. package/.medusa/server/src/api/admin/offers/query-config.js +5 -1
  14. package/.medusa/server/src/api/admin/offers/validators.d.ts +2 -0
  15. package/.medusa/server/src/api/admin/offers/validators.js +3 -1
  16. package/.medusa/server/src/api/admin/order-groups/helpers.js +9 -3
  17. package/.medusa/server/src/api/admin/order-groups/validators.d.ts +1 -0
  18. package/.medusa/server/src/api/admin/order-groups/validators.js +2 -1
  19. package/.medusa/server/src/api/store/offers/query-config.js +5 -1
  20. package/.medusa/server/src/api/store/offers/validators.d.ts +1 -0
  21. package/.medusa/server/src/api/store/offers/validators.js +2 -1
  22. package/.medusa/server/src/api/utils/index.d.ts +1 -0
  23. package/.medusa/server/src/api/utils/index.js +2 -1
  24. package/.medusa/server/src/api/utils/restrict-vendor-fields.d.ts +12 -0
  25. package/.medusa/server/src/api/utils/restrict-vendor-fields.js +29 -0
  26. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.js +10 -6
  27. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/batch/route.js +10 -3
  28. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/route.js +9 -5
  29. package/.medusa/server/src/api/vendor/inventory-items/helpers.d.ts +2 -0
  30. package/.medusa/server/src/api/vendor/inventory-items/helpers.js +35 -8
  31. package/.medusa/server/src/api/vendor/inventory-items/location-levels/batch/route.js +8 -1
  32. package/.medusa/server/src/api/vendor/members/middlewares.js +4 -1
  33. package/.medusa/server/src/api/vendor/middlewares.js +60 -57
  34. package/.medusa/server/src/api/vendor/offer-conditions/[id]/route.d.ts +3 -0
  35. package/.medusa/server/src/api/vendor/offer-conditions/[id]/route.js +18 -0
  36. package/.medusa/server/src/api/vendor/offer-conditions/middlewares.d.ts +2 -0
  37. package/.medusa/server/src/api/vendor/offer-conditions/middlewares.js +31 -0
  38. package/.medusa/server/src/api/vendor/offer-conditions/query-config.d.ts +11 -0
  39. package/.medusa/server/src/api/vendor/offer-conditions/query-config.js +23 -0
  40. package/.medusa/server/src/api/vendor/offer-conditions/route.d.ts +4 -0
  41. package/.medusa/server/src/api/vendor/offer-conditions/route.js +21 -0
  42. package/.medusa/server/src/api/vendor/offer-conditions/validators.d.ts +16 -0
  43. package/.medusa/server/src/api/vendor/offer-conditions/validators.js +16 -0
  44. package/.medusa/server/src/api/vendor/offers/[id]/inventory-items/batch/route.js +10 -4
  45. package/.medusa/server/src/api/vendor/offers/batch/route.js +3 -1
  46. package/.medusa/server/src/api/vendor/offers/query-config.js +5 -1
  47. package/.medusa/server/src/api/vendor/offers/route.js +3 -1
  48. package/.medusa/server/src/api/vendor/offers/validators.d.ts +5 -0
  49. package/.medusa/server/src/api/vendor/offers/validators.js +5 -1
  50. package/.medusa/server/src/api/vendor/payments/[id]/capture/route.js +4 -2
  51. package/.medusa/server/src/api/vendor/payments/helpers.d.ts +3 -1
  52. package/.medusa/server/src/api/vendor/payments/helpers.js +10 -6
  53. package/.medusa/server/src/api/vendor/products/helpers.d.ts +4 -0
  54. package/.medusa/server/src/api/vendor/products/helpers.js +12 -2
  55. package/.medusa/server/src/api/vendor/products/middlewares.js +32 -2
  56. package/.medusa/server/src/api/vendor/sellers/middlewares.js +13 -1
  57. package/.medusa/server/src/api/vendor/stock-locations/helpers.d.ts +1 -0
  58. package/.medusa/server/src/api/vendor/stock-locations/helpers.js +16 -8
  59. package/.medusa/server/src/modules/offer/index.d.ts +14 -0
  60. package/.medusa/server/src/modules/offer/migrations/Migration20261007000000.d.ts +5 -0
  61. package/.medusa/server/src/modules/offer/migrations/Migration20261007000000.js +23 -0
  62. package/.medusa/server/src/modules/offer/models/index.d.ts +1 -0
  63. package/.medusa/server/src/modules/offer/models/index.js +4 -2
  64. package/.medusa/server/src/modules/offer/models/offer-condition.d.ts +26 -0
  65. package/.medusa/server/src/modules/offer/models/offer-condition.js +27 -0
  66. package/.medusa/server/src/modules/offer/models/offer.d.ts +17 -0
  67. package/.medusa/server/src/modules/offer/models/offer.js +13 -1
  68. package/.medusa/server/src/modules/offer/service.d.ts +42 -0
  69. package/.medusa/server/src/modules/offer/service.js +2 -1
  70. package/.medusa/server/src/modules/seller/repositories/order-group.js +113 -3
  71. package/.medusa/server/src/patches/manifest.js +11 -1
  72. package/.medusa/server/src/patches/patches/@medusajs+core-flows@2.21.2-seller-promotion-scope.patch +62 -0
  73. package/.medusa/server/src/workflows/cart/steps/get-promotion-seller-ids.d.ts +5 -0
  74. package/.medusa/server/src/workflows/cart/steps/get-promotion-seller-ids.js +12 -0
  75. package/.medusa/server/src/workflows/cart/steps/index.d.ts +1 -0
  76. package/.medusa/server/src/workflows/cart/steps/index.js +2 -1
  77. package/.medusa/server/src/workflows/cart/utils/index.d.ts +1 -0
  78. package/.medusa/server/src/workflows/cart/utils/index.js +2 -1
  79. package/.medusa/server/src/workflows/cart/utils/seller-promotion-scope.d.ts +12 -0
  80. package/.medusa/server/src/workflows/cart/utils/seller-promotion-scope.js +28 -0
  81. package/.medusa/server/src/workflows/cart/workflows/complete-cart-with-split-orders.js +14 -4
  82. package/.medusa/server/src/workflows/cart/workflows/update-cart-seller-promotions.js +2 -3
  83. package/.medusa/server/src/workflows/events.d.ts +5 -0
  84. package/.medusa/server/src/workflows/events.js +7 -2
  85. package/.medusa/server/src/workflows/offer/steps/create-offer-conditions.d.ts +35 -0
  86. package/.medusa/server/src/workflows/offer/steps/create-offer-conditions.js +18 -0
  87. package/.medusa/server/src/workflows/offer/steps/create-offers.d.ts +13 -0
  88. package/.medusa/server/src/workflows/offer/steps/delete-offer-conditions.d.ts +2 -0
  89. package/.medusa/server/src/workflows/offer/steps/delete-offer-conditions.js +18 -0
  90. package/.medusa/server/src/workflows/offer/steps/index.d.ts +5 -0
  91. package/.medusa/server/src/workflows/offer/steps/index.js +6 -1
  92. package/.medusa/server/src/workflows/offer/steps/update-offer-conditions.d.ts +35 -0
  93. package/.medusa/server/src/workflows/offer/steps/update-offer-conditions.js +28 -0
  94. package/.medusa/server/src/workflows/offer/steps/update-offers.d.ts +14 -0
  95. package/.medusa/server/src/workflows/offer/steps/update-offers.js +2 -1
  96. package/.medusa/server/src/workflows/offer/steps/validate-offer-conditions-deletable.d.ts +2 -0
  97. package/.medusa/server/src/workflows/offer/steps/validate-offer-conditions-deletable.js +23 -0
  98. package/.medusa/server/src/workflows/offer/steps/validate-offer-conditions.d.ts +5 -0
  99. package/.medusa/server/src/workflows/offer/steps/validate-offer-conditions.js +26 -0
  100. package/.medusa/server/src/workflows/offer/workflows/create-offer-conditions.d.ts +12 -0
  101. package/.medusa/server/src/workflows/offer/workflows/create-offer-conditions.js +23 -0
  102. package/.medusa/server/src/workflows/offer/workflows/create-offers.js +6 -1
  103. package/.medusa/server/src/workflows/offer/workflows/delete-offer-conditions.d.ts +11 -0
  104. package/.medusa/server/src/workflows/offer/workflows/delete-offer-conditions.js +24 -0
  105. package/.medusa/server/src/workflows/offer/workflows/index.d.ts +3 -0
  106. package/.medusa/server/src/workflows/offer/workflows/index.js +4 -1
  107. package/.medusa/server/src/workflows/offer/workflows/update-offer-conditions.d.ts +12 -0
  108. package/.medusa/server/src/workflows/offer/workflows/update-offer-conditions.js +23 -0
  109. package/.medusa/server/src/workflows/offer/workflows/update-offers.js +6 -1
  110. package/package.json +3 -3
  111. package/.medusa/server/src/workflows/cart/steps/prepare-adjustments-from-promotion-actions.d.ts +0 -6
  112. package/.medusa/server/src/workflows/cart/steps/prepare-adjustments-from-promotion-actions.js +0 -104
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.prepareSellerAdjustmentsFromPromotionActionsStep = void 0;
4
- const utils_1 = require("@medusajs/framework/utils");
5
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
6
- exports.prepareSellerAdjustmentsFromPromotionActionsStep = (0, workflows_sdk_1.createStep)("prepare-seller-adjustments-from-promotion-actions", async (data, { container }) => {
7
- const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
- const { actions = [] } = data;
9
- if (!actions.length) {
10
- return new workflows_sdk_1.StepResponse({
11
- lineItemAdjustmentsToCreate: [],
12
- lineItemAdjustmentIdsToRemove: [],
13
- shippingMethodAdjustmentsToCreate: [],
14
- shippingMethodAdjustmentIdsToRemove: [],
15
- computedPromotionCodes: [],
16
- skippedPromoCodes: [],
17
- });
18
- }
19
- const [{ data: promotions }, { data: lineItems }, { data: shippingMethods }] = await (0, utils_1.promiseAll)([query.graph({
20
- entity: "promotion",
21
- fields: ["id", "code", 'seller.id'],
22
- filters: { code: actions.map((a) => a.code) },
23
- }, { cache: { enable: true } }), query.graph({
24
- entity: "line_item",
25
- fields: ['id', 'offer.seller_id', 'variant.product.seller.id'],
26
- filters: { id: actions.filter((a) => a.action === utils_1.ComputedActions.ADD_ITEM_ADJUSTMENT).map((a) => a.item_id) },
27
- }, { cache: { enable: true } }), query.graph({
28
- entity: "shipping_method",
29
- fields: ['id', 'shipping_option_id'],
30
- filters: { id: actions.filter((a) => a.action === utils_1.ComputedActions.ADD_SHIPPING_METHOD_ADJUSTMENT).map((a) => a.shipping_method_id) },
31
- }, { cache: { enable: true } })]);
32
- const { data: shippingOptions } = await query.graph({
33
- entity: "shipping_option",
34
- fields: ['id', 'seller.id'],
35
- filters: { id: shippingMethods.map((sm) => sm.shipping_option_id) },
36
- }, { cache: { enable: true } });
37
- const promotionsMap = new Map(promotions.map((promotion) => [promotion.code, promotion]));
38
- const shippingMethodsMap = new Map(shippingMethods.map((shippingMethod) => [shippingMethod.id, shippingMethod]));
39
- const shippingOptionsMap = new Map(shippingOptions.map((shippingOption) => [shippingOption.id, shippingOption]));
40
- const lineItemsMap = new Map(lineItems.map((lineItem) => [lineItem.id, lineItem]));
41
- const lineItemAdjustmentsToCreate = [];
42
- const lineItemAdjustmentIdsToRemove = [];
43
- const shippingMethodAdjustmentsToCreate = [];
44
- const shippingMethodAdjustmentIdsToRemove = [];
45
- for (const action of actions) {
46
- switch (action.action) {
47
- case utils_1.ComputedActions.ADD_ITEM_ADJUSTMENT:
48
- const itemAction = action;
49
- const promotion = promotionsMap.get(itemAction.code);
50
- const lineItem = lineItemsMap.get(itemAction.item_id);
51
- if (promotion && lineItem) {
52
- const promotionSellerId = promotion.seller?.id;
53
- const itemSellerId = lineItem.offer?.seller_id;
54
- if (!promotionSellerId || promotionSellerId === itemSellerId) {
55
- lineItemAdjustmentsToCreate.push({
56
- code: action.code,
57
- amount: itemAction.amount,
58
- is_tax_inclusive: itemAction.is_tax_inclusive,
59
- item_id: itemAction.item_id,
60
- promotion_id: promotion.id,
61
- });
62
- }
63
- }
64
- break;
65
- case utils_1.ComputedActions.REMOVE_ITEM_ADJUSTMENT:
66
- lineItemAdjustmentIdsToRemove.push(action.adjustment_id);
67
- break;
68
- case utils_1.ComputedActions.ADD_SHIPPING_METHOD_ADJUSTMENT:
69
- const shippingAction = action;
70
- const shippingMethod = shippingMethodsMap.get(shippingAction.shipping_method_id);
71
- const shippingOption = shippingOptionsMap.get(shippingMethod?.shipping_option_id);
72
- const shippingPromotion = promotionsMap.get(action.code);
73
- if (shippingMethod && shippingPromotion) {
74
- const promotionSellerId = shippingPromotion.seller?.id;
75
- const shippingMethodSellerId = shippingOption?.seller?.id;
76
- if (!promotionSellerId || promotionSellerId === shippingMethodSellerId) {
77
- shippingMethodAdjustmentsToCreate.push({
78
- code: action.code,
79
- amount: shippingAction.amount,
80
- shipping_method_id: shippingAction.shipping_method_id,
81
- promotion_id: shippingPromotion.id,
82
- });
83
- }
84
- }
85
- break;
86
- case utils_1.ComputedActions.REMOVE_SHIPPING_METHOD_ADJUSTMENT:
87
- shippingMethodAdjustmentIdsToRemove.push(action.adjustment_id);
88
- break;
89
- }
90
- }
91
- const computedPromotionCodes = [
92
- ...lineItemAdjustmentsToCreate,
93
- ...shippingMethodAdjustmentsToCreate,
94
- ].map((adjustment) => adjustment.code);
95
- return new workflows_sdk_1.StepResponse({
96
- lineItemAdjustmentsToCreate,
97
- lineItemAdjustmentIdsToRemove,
98
- shippingMethodAdjustmentsToCreate,
99
- shippingMethodAdjustmentIdsToRemove,
100
- computedPromotionCodes,
101
- skippedPromoCodes: [],
102
- });
103
- });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1hZGp1c3RtZW50cy1mcm9tLXByb21vdGlvbi1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYXJ0L3N0ZXBzL3ByZXBhcmUtYWRqdXN0bWVudHMtZnJvbS1wcm9tb3Rpb24tYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFTQSxxREFJa0M7QUFDbEMscUVBQTRFO0FBUS9ELFFBQUEsZ0RBQWdELEdBQUcsSUFBQSwwQkFBVSxFQUN0RSxtREFBbUQsRUFDbkQsS0FBSyxFQUNELElBQTJELEVBQzNELEVBQUUsU0FBUyxFQUFFLEVBQ2YsRUFBRTtJQUNBLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQVEsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFdkUsTUFBTSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUE7SUFFN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksNEJBQVksQ0FBQztZQUNwQiwyQkFBMkIsRUFBRSxFQUFFO1lBQy9CLDZCQUE2QixFQUFFLEVBQUU7WUFDakMsaUNBQWlDLEVBQUUsRUFBRTtZQUNyQyxtQ0FBbUMsRUFBRSxFQUFFO1lBQ3ZDLHNCQUFzQixFQUFFLEVBQUU7WUFDMUIsaUJBQWlCLEVBQUUsRUFBRTtTQUM0QixDQUFDLENBQUE7SUFDMUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQyxHQUFHLE1BQU0sSUFBQSxrQkFBVSxFQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FDeEc7WUFDSSxNQUFNLEVBQUUsV0FBVztZQUNuQixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFB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